From c1d39c7de250e180f2a6b39a07c3cc1ac0a86da6 Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Mon, 5 Aug 2024 22:43:04 +0000 Subject: [PATCH] Implement AES-KW / KWP, RFC 3394, RFC 5649. --- src/aes.ts | 196 +- test/aes.test.js | 112 +- test/basic.test.js | 80 +- test/wycheproof/aes_kwp_test.json | 2842 ++++++++++++++++++++++++++++ test/wycheproof/aes_wrap_test.json | 1875 ++++++++++++++++++ 5 files changed, 5073 insertions(+), 32 deletions(-) create mode 100644 test/wycheproof/aes_kwp_test.json create mode 100644 test/wycheproof/aes_wrap_test.json diff --git a/src/aes.ts b/src/aes.ts index a85e02c..a04f483 100644 --- a/src/aes.ts +++ b/src/aes.ts @@ -5,6 +5,7 @@ import { Cipher, CipherWithOutput, clean, + concatBytes, copyBytes, createView, equalBytes, @@ -71,6 +72,12 @@ const invSbox = /* @__PURE__ */ sbox.map((_, j) => sbox.indexOf(j)); // Rotate u32 by 8 const rotr32_8 = (n: number) => (n << 24) | (n >>> 8); const rotl32_8 = (n: number) => (n << 8) | (n >>> 24); +// The byte swap operation for uint32 (LE<->BE) +const byteSwap = (word: number) => + ((word << 24) & 0xff000000) | + ((word << 8) & 0xff0000) | + ((word >>> 8) & 0xff00) | + ((word >>> 24) & 0xff); // T-table is optimization suggested in 5.2 of original proposal (missed from FIPS-197). Changes: // - LE instead of BE @@ -197,6 +204,7 @@ function encrypt(xk: Uint32Array, s0: number, s1: number, s2: number, s3: number return { s0: t0, s1: t1, s2: t2, s3: t3 }; } +// Can't be merged with encrypt: arg positions for apply0123 / applySbox are different function decrypt(xk: Uint32Array, s0: number, s1: number, s2: number, s3: number) { const { sbox2, T01, T23 } = tableDecoding; let k = 0; @@ -560,7 +568,7 @@ function computeTag( h.update(data); const num = new Uint8Array(16); const view = createView(num); - if (AAD) setBigUint64(view, 0, BigInt(AAD.length * 8), isLE); + if (AAD) setBigUint64(view, 0, BigInt(aadLength * 8), isLE); setBigUint64(view, 8, BigInt(data.length * 8), isLE); h.update(num); const res = h.digest(); @@ -782,8 +790,190 @@ function decryptBlock(xk: Uint32Array, block: Uint8Array) { return block; } -// Highly unsafe private functions for implementing new modes or ciphers based on AES -// Can change at any time, no API guarantees +/** + * AES-W (base for AESKW/AESKWP). + * Specs: [SP800-38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf), + * [RFC 3394](https://datatracker.ietf.org/doc/rfc3394/), + * [RFC 5649](https://datatracker.ietf.org/doc/rfc5649/). + */ +const AESW = { + /* + High-level pseudocode: + ``` + A: u64 = IV + out = [] + for (let i=0, ctr = 0; i<6; i++) { + for (const chunk of chunks(plaintext, 8)) { + A ^= swapEndianess(ctr++) + [A, res] = chunks(encrypt(A || chunk), 8); + out ||= res + } + } + out = A || out + ``` + Decrypt is the same, but reversed. + */ + encrypt(kek: Uint8Array, out: Uint8Array) { + // Size is limited to 4GB, otherwise ctr will overflow and we'll need to switch to bigints. + // If you need it larger, open an issue. + if (out.length >= 2 ** 32) throw new Error('plaintext should be less than 4gb'); + const xk = expandKeyLE(kek); + if (out.length === 16) encryptBlock(xk, out); + else { + const o32 = u32(out); + // prettier-ignore + let a0 = o32[0], a1 = o32[1]; // A + for (let j = 0, ctr = 1; j < 6; j++) { + for (let pos = 2; pos < o32.length; pos += 2, ctr++) { + const { s0, s1, s2, s3 } = encrypt(xk, a0, a1, o32[pos], o32[pos + 1]); + // A = MSB(64, B) ^ t where t = (n*j)+i + (a0 = s0), (a1 = s1 ^ byteSwap(ctr)), (o32[pos] = s2), (o32[pos + 1] = s3); + } + } + (o32[0] = a0), (o32[1] = a1); // out = A || out + } + xk.fill(0); + }, + decrypt(kek: Uint8Array, out: Uint8Array) { + if (out.length - 8 >= 2 ** 32) throw new Error('ciphertext should be less than 4gb'); + const xk = expandKeyDecLE(kek); + const chunks = out.length / 8 - 1; // first chunk is IV + if (chunks === 1) decryptBlock(xk, out); + else { + const o32 = u32(out); + // prettier-ignore + let a0 = o32[0], a1 = o32[1]; // A + for (let j = 0, ctr = chunks * 6; j < 6; j++) { + for (let pos = chunks * 2; pos >= 1; pos -= 2, ctr--) { + a1 ^= byteSwap(ctr); + const { s0, s1, s2, s3 } = decrypt(xk, a0, a1, o32[pos], o32[pos + 1]); + (a0 = s0), (a1 = s1), (o32[pos] = s2), (o32[pos + 1] = s3); + } + } + (o32[0] = a0), (o32[1] = a1); + } + xk.fill(0); + }, +}; + +const AESKW_IV = new Uint8Array(8).fill(0xa6); // A6A6A6A6A6A6A6A6 + +/** + * AES-KW (key-wrap). Injects static IV into plaintext, adds counter, encrypts 6 times. + * Reduces block size from 16 to 8 bytes. + * For padded version, use aeskwp. + * [RFC 3394](https://datatracker.ietf.org/doc/rfc3394/), + * [NIST.SP.800-38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf). + */ +export const aeskw = wrapCipher( + { blockSize: 8 }, + (kek: Uint8Array): Cipher => ({ + encrypt(plaintext: Uint8Array) { + abytes(plaintext); + if (!plaintext.length || plaintext.length % 8 !== 0) + throw new Error('plaintext length must be non-empty and a multiple of 8 bytes'); + if (plaintext.length === 8) + throw new Error('8-byte keys not allowed in AESKW, use AESKWP instead'); + const out = concatBytes(AESKW_IV, plaintext); + AESW.encrypt(kek, out); + return out; + }, + decrypt(ciphertext: Uint8Array) { + abytes(ciphertext); + // 24 because should have at least two block (1 iv + 2). + // Replace with 16 to enable '8-byte keys' + if (ciphertext.length % 8 !== 0 || ciphertext.length < 3 * 8) + throw new Error('ciphertext must be at least 24 bytes and a multiple of 8 bytes'); + const out = copyBytes(ciphertext); + AESW.decrypt(kek, out); + if (!equalBytes(out.subarray(0, 8), AESKW_IV)) throw new Error('integrity check failed'); + out.subarray(0, 8).fill(0); // ciphertext.subarray(0, 8) === IV, but we clean it anyway + return out.subarray(8); + }, + }) +); + +/* +We don't support 8-byte keys. The rabbit hole: + +- Wycheproof says: "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." + - https://github.com/C2SP/wycheproof/blob/master/doc/key_wrap.md + - "RFC 3394 specifies in Section 2, that the input for the key wrap + algorithm must be at least two blocks and otherwise the constant + field and key are simply encrypted with ECB as a single block" +- What RFC 3394 actually says (in Section 2): + - "Before being wrapped, the key data is parsed into n blocks of 64 bits. + The only restriction the key wrap algorithm places on n is that n be + at least two" + - "For key data with length less than or equal to 64 bits, the constant + field used in this specification and the key data form a single + 128-bit codebook input making this key wrap unnecessary." +- Which means "assert(n >= 2)" and "use something else for 8 byte keys" +- NIST SP800-38F actually prohibits 8-byte in "5.3.1 Mandatory Limits". + It states that plaintext for KW should be "2 to 2^54 -1 semiblocks". +- So, where does "directly encrypt single block with AES" come from? + - Not RFC 3394. Pseudocode of key wrap in 2.2 explicitly uses + loop of 6 for any code path + - There is a weird W3C spec: + https://www.w3.org/TR/2002/REC-xmlenc-core-20021210/Overview.html#kw-aes128 + - This spec is outdated, as admitted by Wycheproof authors + - There is RFC 5649 for padded key wrap, which is padding construction on + top of AESKW. In '4.1.2' it says: "If the padded plaintext contains exactly + eight octets, then prepend the AIV as defined in Section 3 above to P[1] and + encrypt the resulting 128-bit block using AES in ECB mode [Modes] with key + K (the KEK). In this case, the output is two 64-bit blocks C[0] and C[1]:" + - Browser subtle crypto is actually crashes on wrapping keys less than 16 bytes: + `Error: error:1C8000E6:Provider routines::invalid input length] { opensslErrorStack: [ 'error:030000BD:digital envelope routines::update error' ]` + +In the end, seems like a bug in Wycheproof. +The 8-byte check can be easily disabled inside of AES_W. +*/ + +const AESKWP_IV = 0xa65959a6; // single u32le value + +/** + * AES-KW, but with padding and allows random keys. + * Second u32 of IV is used as counter for length. + * [RFC 5649](https://www.rfc-editor.org/rfc/rfc5649) + */ +export const aeskwp = wrapCipher( + { blockSize: 8 }, + (kek: Uint8Array): Cipher => ({ + encrypt(plaintext: Uint8Array) { + abytes(plaintext); + if (!plaintext.length) throw new Error('plaintext length must be non-empty'); + const padded = Math.ceil(plaintext.length / 8) * 8; + const out = new Uint8Array(8 + padded); + out.set(plaintext, 8); + const out32 = u32(out); + out32[0] = AESKWP_IV; + out32[1] = byteSwap(plaintext.length); + AESW.encrypt(kek, out); + return out; + }, + decrypt(ciphertext: Uint8Array) { + abytes(ciphertext); + // 16 because should have at least one block + if (ciphertext.length < 16) + throw new Error('ciphertext must be at least 16 bytes and a multiple of 8 bytes'); + const out = copyBytes(ciphertext); + const o32 = u32(out); + AESW.decrypt(kek, out); + const len = byteSwap(o32[1]) >>> 0; + const padded = Math.ceil(len / 8) * 8; + if (o32[0] !== AESKWP_IV || out.length - 8 !== padded) + throw new Error('integrity check failed'); + for (let i = len; i < padded; i++) + if (out[8 + i] !== 0) throw new Error('integrity check failed'); + out.subarray(0, 8).fill(0); // ciphertext.subarray(0, 8) === IV, but we clean it anyway + return out.subarray(8, 8 + len); + }, + }) +); + +// Private, unsafe low-level methods. Can change at any time. export const unsafe = { expandKeyLE, expandKeyDecLE, diff --git a/test/aes.test.js b/test/aes.test.js index 642bba0..4a3b35f 100644 --- a/test/aes.test.js +++ b/test/aes.test.js @@ -3,13 +3,15 @@ const { should, describe } = require('micro-should'); const crypto = require('node:crypto'); const { hex } = require('@scure/base'); const { concatBytes } = require('../utils.js'); -const { ecb, cbc, ctr, siv, gcm } = require('../aes.js'); +const { ecb, cbc, ctr, siv, gcm, aeskw, aeskwp } = require('../aes.js'); // https://datatracker.ietf.org/doc/html/rfc8452#appendix-C const NIST_VECTORS = require('./vectors/nist_800_38a.json'); const VECTORS = require('./vectors/siv.json'); const aes_gcm_test = require('./wycheproof/aes_gcm_test.json'); const aes_gcm_siv_test = require('./wycheproof/aes_gcm_siv_test.json'); -const aes_cbc = require('./wycheproof/aes_cbc_pkcs5_test.json'); +const aes_cbc_test = require('./wycheproof/aes_cbc_pkcs5_test.json'); +const aes_kw_test = require('./wycheproof/aes_wrap_test.json'); +const aes_kwp_test = require('./wycheproof/aes_kwp_test.json'); // https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf @@ -82,7 +84,7 @@ describe('AES', () => { const cases = [ { name: 'GCM-SIV', groups: aes_gcm_siv_test.testGroups, cipher: 'siv' }, { name: 'GCM', groups: aes_gcm_test.testGroups, cipher: 'gcm' }, - { name: 'CBC', groups: aes_cbc.testGroups, cipher: 'cbc' }, // PCKS5 is enabled by default + { name: 'CBC', groups: aes_cbc_test.testGroups, cipher: 'cbc' }, // PCKS5 is enabled by default ]; for (const c of cases) { for (const g of c.groups) { @@ -108,6 +110,110 @@ describe('AES', () => { } } }); + describe('AESKW', () => { + should('RFC3394', () => { + // https://www.rfc-editor.org/rfc/rfc3394#section-4.1 + const vectors = [ + // 4.1 Wrap 128 bits of Key Data with a 128-bit KEK + { + KEK: hex.decode('000102030405060708090A0B0C0D0E0F'), + KeyData: hex.decode('00112233445566778899AABBCCDDEEFF'), + Ciphertext: hex.decode('1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5'), + }, + // 4.2 Wrap 128 bits of Key Data with a 192-bit KEK + { + KEK: hex.decode('000102030405060708090A0B0C0D0E0F1011121314151617'), + KeyData: hex.decode('00112233445566778899AABBCCDDEEFF'), + Ciphertext: hex.decode('96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D'), + }, + // 4.3 Wrap 128 bits of Key Data with a 256-bit KEK + { + KEK: hex.decode('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'), + KeyData: hex.decode('00112233445566778899AABBCCDDEEFF'), + Ciphertext: hex.decode('64E8C3F9CE0F5BA263E9777905818A2A93C8191E7D6E8AE7'), + }, + // 4.4 Wrap 192 bits of Key Data with a 192-bit KEK + { + KEK: hex.decode('000102030405060708090A0B0C0D0E0F1011121314151617'), + KeyData: hex.decode('00112233445566778899AABBCCDDEEFF0001020304050607'), + Ciphertext: hex.decode( + '031D33264E15D33268F24EC260743EDCE1C6C7DDEE725A936BA814915C6762D2' + ), + }, + // 4.5 Wrap 192 bits of Key Data with a 256-bit KEK + { + KEK: hex.decode('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'), + KeyData: hex.decode('00112233445566778899AABBCCDDEEFF0001020304050607'), + Ciphertext: hex.decode( + 'A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1' + ), + }, + // 4.6 Wrap 256 bits of Key Data with a 256-bit KEK + { + KEK: hex.decode('000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'), + KeyData: hex.decode('00112233445566778899AABBCCDDEEFF000102030405060708090A0B0C0D0E0F'), + Ciphertext: hex.decode( + '28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21' + ), + }, + ]; + for (const t of vectors) { + const kw = aeskw(t.KEK); + deepStrictEqual(kw.encrypt(t.KeyData), t.Ciphertext); + deepStrictEqual(kw.decrypt(t.Ciphertext), t.KeyData); + } + }); + should('Wycheproof', () => { + for (const group of aes_kw_test.testGroups) { + for (const t of group.tests) { + const kw = aeskw(hex.decode(t.key)); + // 8-byte keys considered 'acceptable' by Wychenproof, but seems like bug. + if (t.flags.includes('ShortKey')) continue; + if (t.result === 'valid' || t.result === 'acceptable') { + deepStrictEqual(hex.encode(kw.encrypt(hex.decode(t.msg))), t.ct); + deepStrictEqual(hex.encode(kw.decrypt(hex.decode(t.ct))), t.msg); + } else { + throws(() => kw.decrypt(hex.decode(t.ct))); + throws(() => deepStrictEqual(kw.encrypt(hex.decode(t.msg)), hex.decode(t.ct))); + } + } + } + }); + should('KWP', () => { + // https://www.rfc-editor.org/rfc/rfc5649 + const vectors = [ + { + KEK: hex.decode('5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8'), + Key: hex.decode('c37b7e6492584340bed12207808941155068f738'), + Wrap: hex.decode('138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a'), + }, + { + KEK: hex.decode('5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8'), + Key: hex.decode('466f7250617369'), + Wrap: hex.decode('afbeb0f07dfbf5419200f2ccb50bb24f'), + }, + ]; + for (const t of vectors) { + const kwp = aeskwp(t.KEK); + deepStrictEqual(kwp.encrypt(t.Key), t.Wrap); + deepStrictEqual(kwp.decrypt(t.Wrap), t.Key); + } + }); + should('AESKWP: Wycheproof', () => { + for (const group of aes_kwp_test.testGroups) { + for (const t of group.tests) { + const kwp = aeskwp(hex.decode(t.key)); + if (t.result === 'valid' || t.result === 'acceptable') { + deepStrictEqual(hex.encode(kwp.encrypt(hex.decode(t.msg))), t.ct); + deepStrictEqual(hex.encode(kwp.decrypt(hex.decode(t.ct))), t.msg); + } else { + throws(() => kwp.decrypt(hex.decode(t.ct)), 'decrypt'); + throws(() => deepStrictEqual(kwp.encrypt(hex.decode(t.msg)), hex.decode(t.ct))); + } + } + } + }); + }); }); if (require.main === module) should.run(); diff --git a/test/basic.test.js b/test/basic.test.js index 6e4b286..254498d 100644 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -2,7 +2,7 @@ const { deepStrictEqual } = require('assert'); const { should, describe } = require('micro-should'); const { hex } = require('@scure/base'); const { managedNonce, randomBytes } = require('../webcrypto.js'); -const { siv, gcm, ctr, ecb, cbc, cfb } = require('../aes.js'); +const { siv, gcm, ctr, ecb, cbc, cfb, aeskw, aeskwp } = require('../aes.js'); const { xsalsa20poly1305 } = require('../salsa.js'); const { chacha20poly1305, xchacha20poly1305 } = require('../chacha.js'); const { unalign } = require('./utils.js'); @@ -19,10 +19,18 @@ const CIPHERS = { micro_xchacha20poly1305: { fn: micro.xchacha20poly1305, keyLen: 32, withNonce: true }, }; -for (const [name, fn] of Object.entries({ ecb, cbc, ctr, gcm, siv, cfb })) { - for (const keyLen of [16, 24, 32]) { - CIPHERS[`${name}_${keyLen * 8}`] = { fn, keyLen, withNonce: name !== 'ecb' }; - } +for (const keyLen of [16, 24, 32]) { + for (const [name, fn] of Object.entries({ cbc, ctr, gcm, siv, cfb })) + CIPHERS[`${name}_${keyLen * 8}`] = { fn, keyLen, withNonce: true }; + CIPHERS[`ecb_${keyLen * 8}`] = { fn: ecb, keyLen, withNonce: false }; + CIPHERS[`aeskw_${keyLen * 8}`] = { + fn: aeskw, + keyLen, + withNonce: false, + blockSize: 8, + minLength: 16, + }; + CIPHERS[`aeskwp_${keyLen * 8}`] = { fn: aeskwp, keyLen, disableEmptyBlock: true }; } for (const k in CIPHERS) { @@ -30,9 +38,19 @@ for (const k in CIPHERS) { if (!opts.withNonce) continue; CIPHERS[`${k}_managedNonce`] = { ...opts, fn: managedNonce(opts.fn), withNonce: false }; } +CIPHERS.managedCbcNoPadding = { + fn: managedNonce(cbc), + args: [{ disablePadding: true }], + blockSize: 16, +}; -// Just to verify parameter passing works, should throw on round-trip test, but pass blockSize -// CIPHERS.test = { fn: managedNonce(cbc), args: [{ disablePadding: true }] }; +const checkBlockSize = (opts, len) => { + if (opts.minLength && len < opts.minLength) return false; + if (!len && opts.disableEmptyBlock) return false; + if (!opts.blockSize) return true; + if (len % opts.blockSize === 0) return true; + return false; +}; const initCipher = (opts) => { const { fn, keyLen, withNonce } = opts; @@ -50,11 +68,13 @@ describe('Basic', () => { const { c, key, nonce, copy } = initCipher(opts); const msg = new Uint8Array(opts.fn.blockSize).fill(12); const msgCopy = msg.slice(); - deepStrictEqual(c.decrypt(c.encrypt(msgCopy)), msg); - deepStrictEqual(msg, msgCopy); - // Verify that key/nonce is not modified - deepStrictEqual(key, copy.key); - deepStrictEqual(nonce, copy.nonce); + if (checkBlockSize(opts, msgCopy.length)) { + deepStrictEqual(c.decrypt(c.encrypt(msgCopy)), msg); + deepStrictEqual(msg, msgCopy); + // Verify that key/nonce is not modified + deepStrictEqual(key, copy.key); + deepStrictEqual(nonce, copy.nonce); + } }); should(`${k}: round-trip`, () => { @@ -62,19 +82,23 @@ describe('Basic', () => { // slice, so cipher has no way to corrupt msg const msg = new Uint8Array(2).fill(12); const msgCopy = msg.slice(); - deepStrictEqual(c.decrypt(c.encrypt(msgCopy)), msg); - deepStrictEqual(msg, msgCopy); + if (checkBlockSize(opts, msgCopy.length)) { + deepStrictEqual(c.decrypt(c.encrypt(msgCopy)), msg); + deepStrictEqual(msg, msgCopy); + } const msg2 = new Uint8Array(2048).fill(255); const msg2Copy = msg2.slice(); - deepStrictEqual(c.decrypt(c.encrypt(msg2)), msg2); - deepStrictEqual(msg2, msg2Copy); - + if (checkBlockSize(opts, msg2Copy.length)) { + deepStrictEqual(c.decrypt(c.encrypt(msg2)), msg2); + deepStrictEqual(msg2, msg2Copy); + } const msg3 = new Uint8Array(256); const msg3Copy = msg3.slice(); - deepStrictEqual(c.decrypt(c.encrypt(msg3Copy)), msg3); - deepStrictEqual(msg3, msg3Copy); - + if (!checkBlockSize(opts, msg3Copy.length)) { + deepStrictEqual(c.decrypt(c.encrypt(msg3Copy)), msg3); + deepStrictEqual(msg3, msg3Copy); + } // Verify that key/nonce is not modified deepStrictEqual(key, copy.key); deepStrictEqual(nonce, copy.nonce); @@ -84,8 +108,10 @@ describe('Basic', () => { for (let i = 0; i < 2048; i++) { const msg = new Uint8Array(i).fill(i); const msgCopy = msg.slice(); - deepStrictEqual(c.decrypt(c.encrypt(msg)), msg); - deepStrictEqual(msg, msgCopy); + if (checkBlockSize(opts, msgCopy.length)) { + deepStrictEqual(c.decrypt(c.encrypt(msg)), msg); + deepStrictEqual(msg, msgCopy); + } } // Verify that key/nonce is not modified deepStrictEqual(key, copy.key); @@ -98,10 +124,12 @@ describe('Basic', () => { const nonce = unalign(randomBytes(fn.nonceLength), i); const AAD = unalign(randomBytes(64), i); const msg = unalign(new Uint8Array(2048).fill(255), i); - const cipher = fn(key, nonce, AAD); - const encrypted = unalign(cipher.encrypt(msg), i); - const decrypted = cipher.decrypt(encrypted); - deepStrictEqual(decrypted, msg); + if (checkBlockSize(opts, msg.length)) { + const cipher = fn(key, nonce, AAD); + const encrypted = unalign(cipher.encrypt(msg), i); + const decrypted = cipher.decrypt(encrypted); + deepStrictEqual(decrypted, msg); + } }); } } diff --git a/test/wycheproof/aes_kwp_test.json b/test/wycheproof/aes_kwp_test.json new file mode 100644 index 0000000..2523a2a --- /dev/null +++ b/test/wycheproof/aes_kwp_test.json @@ -0,0 +1,2842 @@ +{ + "algorithm" : "AES-KWP", + "schema" : "keywrap_test_schema.json", + "generatorVersion" : "0.9", + "numberOfTests" : 254, + "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 overflows at 256." + }, + "ModifiedPadding" : { + "bugType" : "MISSING_STEP", + "description" : "The test vector contains a ciphertext that was obtained with a modified padding. Unwrapping should verify the padding 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." + }, + "SmallKey" : { + "bugType" : "FUNCTIONALITY", + "description" : "This test vector wraps a key smaller than 128-bits. Rejecting such keys may be reasonable to detect weak keys. Rejecting the keys also simplifies the implementation. " + } + }, + "testGroups" : [ + { + "type" : "KeywrapTest", + "keySize" : 128, + "tests" : [ + { + "tcId" : 1, + "comment" : "key size=16 data size=16", + "flags" : [ + "Normal" + ], + "key" : "6f67486d1e914419cb43c28509c7c1ea", + "msg" : "8dc0632d92ee0be4f740028410b08270", + "ct" : "8cd63fa6788aa5edfa753fc87d645a672b14107c3b4519e7", + "result" : "valid" + }, + { + "tcId" : 2, + "comment" : "key size=16 data size=16", + "flags" : [ + "Normal" + ], + "key" : "a0b17172bb296db7f5c869e9a36b5ce3", + "msg" : "615dd022d607c910f20178cbdf42060f", + "ct" : "e8bac475d1429034b32f9bdeec09a37f9b3704028f1e0270", + "result" : "valid" + }, + { + "tcId" : 3, + "comment" : "key size=16 data size=16", + "flags" : [ + "Normal" + ], + "key" : "0e49d571c19b5250effd41d94bde39d6", + "msg" : "f25e4de8caca363fd5f29442eb147b55", + "ct" : "4c8bcd601b508ef399f71b841294497a4493c4a0014c0103", + "result" : "valid" + }, + { + "tcId" : 4, + "comment" : "key size=16 data size=24", + "flags" : [ + "Normal" + ], + "key" : "e0e12959109103e30ae8b5684a22e662", + "msg" : "dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e", + "ct" : "9e4510cc84c4bd7abab0a8a5d7f1e6ff3e6777ca2dff9be7e223652239fe57d8", + "result" : "valid" + }, + { + "tcId" : 5, + "comment" : "key size=16 data size=24", + "flags" : [ + "Normal" + ], + "key" : "dd583d9f1059861430ec8b5d8a180e9b", + "msg" : "f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487", + "ct" : "8fbf39ae583bd4efa7a3e8f7b86870b34766ae7d8923a8e97b0cd289ad98cacb", + "result" : "valid" + }, + { + "tcId" : 6, + "comment" : "key size=16 data size=24", + "flags" : [ + "Normal" + ], + "key" : "faf5ccfae42b43cee2c5f0f3177a7c5d", + "msg" : "4e02084833660c463830483b36dab866c64c8cf7429cac3d", + "ct" : "df2fbe5fa86418edc7b5b04a4aea724aca17e88cedc84ca8b0b0f048e64590cb", + "result" : "valid" + }, + { + "tcId" : 7, + "comment" : "key size=16 data size=32", + "flags" : [ + "Normal" + ], + "key" : "c2b9d23f2831ddcdeb456853d4014db9", + "msg" : "f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907", + "ct" : "67f8edf57f84ea0a35b35511d67d3f299c9984b2c07d3809c3d7f5f45091f1a8fbb937ed447677f6", + "result" : "valid" + }, + { + "tcId" : 8, + "comment" : "key size=16 data size=32", + "flags" : [ + "Normal" + ], + "key" : "620a08f320cdedbf7ae551add348d95e", + "msg" : "cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291", + "ct" : "60d55a22ba7dbd7d8f317388e01e6be561d15d29f85c566f1259aa7e7dc3d5d30e0ef5f4c6267553", + "result" : "valid" + }, + { + "tcId" : 9, + "comment" : "key size=16 data size=32", + "flags" : [ + "Normal" + ], + "key" : "ed089ac274f8c7cea2415671a94b5e53", + "msg" : "6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299", + "ct" : "d78a8291108f0f2d8be0ec10ec08240bf4d3021f0a5ed7faba0748db73762f34a0504bd373212df2", + "result" : "valid" + }, + { + "tcId" : 10, + "comment" : "Round counter overflows 256", + "flags" : [ + "CounterOverflow" + ], + "key" : "b6121acad51038e11873aaa7e6c7be06", + "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "9341221aca1c647e2afc2bdd9cf4ed6e60058eb0a84cb3fc2daf3a87d9fad0a1f8268b27aaf7201d705e72f7e2240309ad98742094e3f1c99b7faa9ae181b441f5004b8bc93cdd4160d403d0884749a3c379d47c112a45788c05c2106c98f59758d393e04c880691b0e8683a12df7f876e1e1f68b4acbae9cc8310b34d59ccf4617cee72e845df1e0e32e5b4938f2923d55f1bb5156dd8c787401e6ef241ea4073d0a59ddfcd7a53db5d89b480b030cfb9084ea8479b964f090bb612d5251eee9ef8870a45f1e76fd24abdd9b350fe148b15a4cfeb032d57b5743b3548a7ce9eec8e21a31ce832530edfd1cffd9bb37369e6463c6b373ab60d80b0a2677e92e658f7daf2a5234b7312bf2d967cd0bc809e9be2f706ae63bd632fd611f161e48ee19677f3243aa0e91f6651a1cef62feff7a72eedf830bae1dc6d89e55ccb5e6f97889c6266f7d3f2eb0aea6c8c42200febccc5916825368adc87e04e835de06fd7bc2805c219e7f0b6252563f29969b1f30cfa1a8da4b90ae7534fb849d068a7e77de7360f8af173", + "result" : "valid" + }, + { + "tcId" : 11, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "4c", + "ct" : "09bcbab50b8dd45ad83412e2919030d3", + "result" : "valid" + }, + { + "tcId" : 12, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "be52", + "ct" : "0cbe852cdce4f0b5333366f446b2b1c5", + "result" : "valid" + }, + { + "tcId" : 13, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "2d5244", + "ct" : "a9dc66e03435ab3d4f97ff66f2c911a3", + "result" : "valid" + }, + { + "tcId" : 14, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "6c3d3b4c", + "ct" : "1b970c8ecb4187447e60e6083da03086", + "result" : "valid" + }, + { + "tcId" : 15, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "0412ab3ec6", + "ct" : "0344f7b34ab8ef28aaa843f276b0b3d5", + "result" : "valid" + }, + { + "tcId" : 16, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "8ae08938929c", + "ct" : "17356c7148334ca1a24aab7e82a66e18", + "result" : "valid" + }, + { + "tcId" : 17, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "7c8dfbb68d72af", + "ct" : "1db7510a55591a455d9f8167e6db3c88", + "result" : "valid" + }, + { + "tcId" : 18, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "536f8f83b64771c1", + "ct" : "936fe58b629ea6ec158145218f2361c7", + "result" : "valid" + }, + { + "tcId" : 19, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "8571f282b18b64ec5e", + "ct" : "6787816804b3127d0ca4073f1dba5c4d3db1ec9c227e6556", + "result" : "valid" + }, + { + "tcId" : 20, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "8ada889862813e364c4d", + "ct" : "34131c3bfcc48af15eea8672e52927b462f81d5ba0e6260f", + "result" : "valid" + }, + { + "tcId" : 21, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "f9c56e8058758a5c7c2baa", + "ct" : "4d1ec9287cd4dd378b9aefee79d4ed35bcb98ad9fa9fe529", + "result" : "valid" + }, + { + "tcId" : 22, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "7c7dbc83fa62206a521ed4ad", + "ct" : "7209f5b6bd5d4916f4995d280e9aa89edd5e96e3c9283ad2", + "result" : "valid" + }, + { + "tcId" : 23, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "a6614daf00df6d14f50388bad5", + "ct" : "d85a1efc6ab3a40948f723d9810a5deb019b3ce0208a0d94", + "result" : "valid" + }, + { + "tcId" : 24, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "450580a47d7008321496bfb82f48", + "ct" : "43509b5df3688b6e44c1a994592f4c03da34712f886e63d5", + "result" : "valid" + }, + { + "tcId" : 25, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dca", + "msg" : "9efd21e13855eea8907afdcd8935f4", + "ct" : "16e369351c40f220d3fb1197f35da652a3a40ca3b1e99bfb", + "result" : "valid" + }, + { + "tcId" : 26, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "4cdd2962f23ec897d41d14c3f818516c055799185f459e2d", + "result" : "invalid" + }, + { + "tcId" : 27, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "de895192c35ec58ee6e5614fd2b20a85f8e9c8234cdc5319", + "result" : "invalid" + }, + { + "tcId" : 28, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "4a24069a050af7bbcf6c2160d54525e017e3ac1b3a2e71f0", + "result" : "invalid" + }, + { + "tcId" : 29, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "6252ab0e688d0638df7d87ec5be3b2f9c0c245c0f0794012", + "result" : "invalid" + }, + { + "tcId" : 30, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "a2ed5982a604512d85d87630cd50705b1a70189b81575e3f", + "result" : "invalid" + }, + { + "tcId" : 31, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "fed7d02db4081728c55cc17f45f267117347e526f4231651", + "result" : "invalid" + }, + { + "tcId" : 32, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "ed37722b94b08b6a6f7663fe90acd81dc25f85abd2f65c06", + "result" : "invalid" + }, + { + "tcId" : 33, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "0adb0f47b890efed426e7cf5dbd67d5cd3d9d4807c34bc7d", + "result" : "invalid" + }, + { + "tcId" : 34, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "a0c51e687c46f342c78e3c59eee076a85312206a37213ac3", + "result" : "invalid" + }, + { + "tcId" : 35, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "8ac142d100eab0808b5f34ed29650163db77ab281e6f1e58", + "result" : "invalid" + }, + { + "tcId" : 36, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "db345851a09bf92c35855c367c8787e5ab3ff16e9d8b0f3b", + "result" : "invalid" + }, + { + "tcId" : 37, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "a90cb672f232eb693a290523a10d8f988a18829a11cabd96", + "result" : "invalid" + }, + { + "tcId" : 38, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "c9b3a55603e490c450b49c8b79c9a169030e6985b6e95b54", + "result" : "invalid" + }, + { + "tcId" : 39, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "1c90d7613c7e81e66d9374d72a8a6a0c40163fc69bccafb1", + "result" : "invalid" + }, + { + "tcId" : 40, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "e381bb56d1354e40c01cb414118b9518934c9ad92663f5e8", + "result" : "invalid" + }, + { + "tcId" : 41, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "f2a87686a3baa37810eea23232e9b784f628b1c0b4a557a1", + "result" : "invalid" + }, + { + "tcId" : 42, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "36ef8fc13d0f1f5745e3939877b62b8ecba2f5f0b19f9e90", + "result" : "invalid" + }, + { + "tcId" : 43, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "7255c4eacb4105a68095e9e5b5a4bd8f9623a0da5c6fc230", + "result" : "invalid" + }, + { + "tcId" : 44, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "ea26eec89a46ff1a628834c7247a8e4e45d8a8d3229e26cc", + "result" : "invalid" + }, + { + "tcId" : 45, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "508593fa85a8effd27c8a225981978fcec6e992eb488c9c2", + "result" : "invalid" + }, + { + "tcId" : 46, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "b8a4cb22f15529864d4ced8e8abae69752a9045a084dfc3f", + "result" : "invalid" + }, + { + "tcId" : 47, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "a0a6bf5e47e89706932b1057b680c3c81dc4d9d0b4f9153b", + "result" : "invalid" + }, + { + "tcId" : 48, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "11f3af4ed30e77520517c880f1d0c272a89a968dc697cb5a", + "result" : "invalid" + }, + { + "tcId" : 49, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "6fc912a0bda73bacfa93db4002f18f349fa30f22f7a95ab9", + "result" : "invalid" + }, + { + "tcId" : 50, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "96518bcf3d24b1c6c3c6ed642a3336531563abaa9bc19873", + "result" : "invalid" + }, + { + "tcId" : 51, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "eceb8904c71372a974dcf65e2ee2e8eac035953cf41bf31e", + "result" : "invalid" + }, + { + "tcId" : 52, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "e8e1f4d621dc0d10786823eefd73e1d98873900fff79cdcf", + "result" : "invalid" + }, + { + "tcId" : 53, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "5aae3ef6d59abbd1acfba77d5e660a176b45683165398912", + "result" : "invalid" + }, + { + "tcId" : 54, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "fdf11a815beb61c33f293801c33e681e296782967ff6c56b", + "result" : "invalid" + }, + { + "tcId" : 55, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "62cd9fd59aa08666b6d0e5fb0ed60b3692e87e680ea1d3ea", + "result" : "invalid" + }, + { + "tcId" : 56, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "31a9c782cc94c6fcd26e0aa6ee327fd01c5b1997ec70e22c", + "result" : "invalid" + }, + { + "tcId" : 57, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "ab29c3f5a4822bd572e43fdf2c59c2dab20327b9a25dcb87", + "result" : "invalid" + }, + { + "tcId" : 58, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "078070742b07caa793dfcab4d1c09f8df6a99f494ed00ea4", + "result" : "invalid" + }, + { + "tcId" : 59, + "comment" : "RFC 3349 padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "000102030405060708090a0b0c0d0e0f", + "ct" : "3731038571c35f7dcc55e48892de353e54c079b89774bbfd", + "result" : "invalid" + }, + { + "tcId" : 60, + "comment" : "padding too long", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "000000000000000000000000000000000000000000000000", + "ct" : "7a92427387f5587ee825d1ffa011c40286844ecdadce31cd9678338694ea2682", + "result" : "invalid" + }, + { + "tcId" : 61, + "comment" : "padding too long", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0000000000000000000000000000000000000000000000000000000000000000", + "ct" : "a437d354606ae752894feb62c8def7d17046d8e47f9aed755fba48b3a3009e3ff67d34e26a779064", + "result" : "invalid" + }, + { + "tcId" : 62, + "comment" : "incorrectly encoded length", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "00000000000000000000000000000000", + "ct" : "e8d240d64f16d1522ae2ded42ced257dfec158ff2fe1467d", + "result" : "invalid" + }, + { + "tcId" : 63, + "comment" : "length = 2**32-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "00000000000000000000000000000000", + "ct" : "6d1bfda356b7b954e7aaccc6df953322f75be95947b02b30", + "result" : "invalid" + }, + { + "tcId" : 64, + "comment" : "length = 2**32-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0000000000000000", + "ct" : "17dbf878ef4076cfcaba5f81d7b123d7", + "result" : "invalid" + }, + { + "tcId" : 65, + "comment" : "length = 2**31-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "00000000000000000000000000000000", + "ct" : "75c23e253478037802fae0f86af9c78d4e4d9be0c3bff89f", + "result" : "invalid" + }, + { + "tcId" : 66, + "comment" : "length = 2**31 + 16", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "00000000000000000000000000000000", + "ct" : "55717658c6a35e15ee36c66cce91083b63091f51525c0b51", + "result" : "invalid" + }, + { + "tcId" : 67, + "comment" : "data is incorrectly padded", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "ffffffffffffffffffffffffffffffffffffffffffffffff", + "ct" : "8ede88a52ccb8a6d617456955a9f04c94d87696125ded87eebe3e97e185496d9", + "result" : "invalid" + }, + { + "tcId" : 68, + "comment" : "data is incorrectly padded", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0001020304050607", + "ct" : "5b4a8f1abffa51676ac8b5ddf9366c12", + "result" : "invalid" + }, + { + "tcId" : 69, + "comment" : "length = 0", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "00000000000000000000000000000000", + "ct" : "205cc6dd9592da0ebff6b4b48a0c450eeaeb11a60d33f387", + "result" : "invalid" + }, + { + "tcId" : 70, + "comment" : "RFC 3349 padding with incorrect size", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0001020304050607", + "ct" : "908a68b0d2054e199220d37c34a2e136", + "result" : "invalid" + }, + { + "tcId" : 71, + "comment" : "length = 9", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0000000000000000", + "ct" : "f84bdb15045cee3a8a0f3ed2f07c1771", + "result" : "invalid" + }, + { + "tcId" : 72, + "comment" : "length = 16", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0000000000000000", + "ct" : "7592b1ee6ee92c9467db366adcfa65bb", + "result" : "invalid" + }, + { + "tcId" : 73, + "comment" : "length = 2**31 + 8", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0000000000000000", + "ct" : "db93a1db3b5babc80a304d527682c1ef", + "result" : "invalid" + }, + { + "tcId" : 74, + "comment" : "invalid wrapping of empty key", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "", + "ct" : "a65959a600000000", + "result" : "invalid" + }, + { + "tcId" : 75, + "comment" : "invalid wrapping of 8 byte key", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9", + "msg" : "0001020304050607", + "ct" : "d85c6bfd092df1aeae5a548e47aa7681", + "result" : "invalid" + } + ] + }, + { + "type" : "KeywrapTest", + "keySize" : 192, + "tests" : [ + { + "tcId" : 76, + "comment" : "key size=24 data size=16", + "flags" : [ + "Normal" + ], + "key" : "f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe", + "msg" : "9adbc00c710b1101bdf6a4ed65b32d72", + "ct" : "5c117a678223cfe5ee691503061e7ab1e5f720e005171b32", + "result" : "valid" + }, + { + "tcId" : 77, + "comment" : "key size=24 data size=16", + "flags" : [ + "Normal" + ], + "key" : "b713f6b7814f98894d7b153974684359f1460213eb74be68", + "msg" : "78585f0c49922e82caf17ebc3721b4db", + "ct" : "6a7f9e03b6f379c56da3a56d8f32eba515454a91fd417449", + "result" : "valid" + }, + { + "tcId" : 78, + "comment" : "key size=24 data size=16", + "flags" : [ + "Normal" + ], + "key" : "13ecf423211caa334ba6db37259a535c20de8ad10fc8c432", + "msg" : "4fc75d0f221e22408a37e11265d49a05", + "ct" : "764097f5ee8236bc0d93bbcea139a652f4b211cc33a61ac9", + "result" : "valid" + }, + { + "tcId" : 79, + "comment" : "key size=24 data size=24", + "flags" : [ + "Normal" + ], + "key" : "4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1", + "msg" : "f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5", + "ct" : "04b83ec803a75bbcb2f87fc6f488a4ccc1827b412483070eed195b6f0048ccbe", + "result" : "valid" + }, + { + "tcId" : 80, + "comment" : "key size=24 data size=24", + "flags" : [ + "Normal" + ], + "key" : "b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e", + "msg" : "0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a", + "ct" : "46ab71f032cb1ccbcc7447a5183574268c0167a26a93fe8422bf284417aa93ea", + "result" : "valid" + }, + { + "tcId" : 81, + "comment" : "key size=24 data size=24", + "flags" : [ + "Normal" + ], + "key" : "f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000", + "msg" : "241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea", + "ct" : "47ca298ee47b1b755a499129347e11e7a25754ccb6c2689e8eff270e98c81d18", + "result" : "valid" + }, + { + "tcId" : 82, + "comment" : "key size=24 data size=32", + "flags" : [ + "Normal" + ], + "key" : "1639f9f81e53e2eeb677a249e5eced3af108971301601a7b", + "msg" : "ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691", + "ct" : "ecac4c91758e1ae7bb010c34f4c5f99a3d728b9fa92cb778d3fe80d777a20d3de85ef46e7a0c6a6a", + "result" : "valid" + }, + { + "tcId" : 83, + "comment" : "key size=24 data size=32", + "flags" : [ + "Normal" + ], + "key" : "1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0", + "msg" : "50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380", + "ct" : "39b7326a44eaed08bffbd4aeaf3e2c3f899c1fd049384ed7b3eb92b788c6449acd6385f0bb18cf28", + "result" : "valid" + }, + { + "tcId" : 84, + "comment" : "key size=24 data size=32", + "flags" : [ + "Normal" + ], + "key" : "3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771", + "msg" : "65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf", + "ct" : "3d2e9f39c7b13e9585227c4344fbe596f92b002456616f137deacc6a8c941649ce294bb2695c1807", + "result" : "valid" + }, + { + "tcId" : 85, + "comment" : "Round counter overflows 256", + "flags" : [ + "CounterOverflow" + ], + "key" : "b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1", + "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "d6aacfb52c26baae78c2f54259a4e4168f817064344e2ba8fbfa7fae9f1fd69bd5bc5c1e20a6101b4a7119cbce028e25a9e93d29ee260c4e609baedee788411c2afe60218ce1b0d28b9c29b941251fdcbac3009d59040a0337b8b4a3a020c6d8f310cba63db046d8f36b64c9092e75cee463fc7692ef56bed395c4579da0ecb02129e45ad8a7f116aac6170204888e40693f017a6a0a7dd3962004e60db3a9b6c8b7614a467ccb799bce1ba83f5c0921f1e52bb3909bc0486ec0eaea736498f3ba520a519c3ddf491307958620b737613417b15b438b80b43189baa455031f5771502002ea170c767b33d247feebce62e606f2262537f85f18d1951cc75cedef291c6a501cb1778586249b58156eb8d7283a3f508ee8bcc1206d77bbd6892fe74b865bfc02a8f07223087a6c1e50a41b7cf5f6ee04bd07766b2e5b34c4a7666b0ce06f670e6434a59fb74e0df36c91d94e5e8b721e53e09b6f6504c5d515492a373fcc348a63122cc6e4716e0e1a543d038c6f7731199f691780a8a655cca6718e3dc56e815b3669", + "result" : "valid" + }, + { + "tcId" : 86, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "a3", + "ct" : "52c7f388d0d4237afaa29f2b94723475", + "result" : "valid" + }, + { + "tcId" : 87, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "594b", + "ct" : "833431ce8799be69b36aafe3f38d9dac", + "result" : "valid" + }, + { + "tcId" : 88, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "72ab34", + "ct" : "31674f46b989f6ead582c70dedc8c6b9", + "result" : "valid" + }, + { + "tcId" : 89, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "d4d9460f", + "ct" : "80535172d2a498aa31601d70fdca9dea", + "result" : "valid" + }, + { + "tcId" : 90, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "643972e552", + "ct" : "56232300dd7b2a71d2328b6df47af8e3", + "result" : "valid" + }, + { + "tcId" : 91, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "f3cdb73d2561", + "ct" : "e27e08efe39adbbad8d300b87be2c258", + "result" : "valid" + }, + { + "tcId" : 92, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "7b0b53b6429e14", + "ct" : "8f90942cdab33e58b24a23ad7efb7538", + "result" : "valid" + }, + { + "tcId" : 93, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "6b2393773e6d1378", + "ct" : "0ebaf23c858015d3bda5b8d908db6049", + "result" : "valid" + }, + { + "tcId" : 94, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "2c52d6639e769960e8", + "ct" : "d56f89977b8eff511158edad6b993007189e5a4b8c0e2faf", + "result" : "valid" + }, + { + "tcId" : 95, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "707c9356216d69c69048", + "ct" : "dd889475a76733849f59bed49a15d4315bdb5ba00dc63470", + "result" : "valid" + }, + { + "tcId" : 96, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "615f6fa79e1847e7359a8a", + "ct" : "1a9b3369239b0f40a8dc5bd8d965caf7431445799337b99b", + "result" : "valid" + }, + { + "tcId" : 97, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "7f5e999168ec60624426cbb1", + "ct" : "5232f8f6679a17d3303b0bd72b06b56b5089e80372dc295b", + "result" : "valid" + }, + { + "tcId" : 98, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "3f93aaf4463775baf6c0c975ae", + "ct" : "e5544361c60980f3d38f2d8820a150f48f49ef3f9184b29f", + "result" : "valid" + }, + { + "tcId" : 99, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "fefcf10c976309b2beb085771e50", + "ct" : "55396065905915ec914b8d1efbf471e37d283fc2c1496b49", + "result" : "valid" + }, + { + "tcId" : 100, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b", + "msg" : "6854354d0099f7eff740b0587140b3", + "ct" : "d90376be302a24c541bd6d96094f0025e3d73888391b4306", + "result" : "valid" + }, + { + "tcId" : 101, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "24f5b27f9e4d7b645331719ea8f2b63841b2324e61ce13df", + "result" : "invalid" + }, + { + "tcId" : 102, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "5b5221464c7e960b31c3d6e5784e66c69fa0fba8ae315d4e", + "result" : "invalid" + }, + { + "tcId" : 103, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "d17e8392b0d7e064f22770b7f38ffcdc572cf7694da9648c", + "result" : "invalid" + }, + { + "tcId" : 104, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "2f9ba2d81292a2494845ac8589f1a44affdd3d09044fc81c", + "result" : "invalid" + }, + { + "tcId" : 105, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "9258882e1812b1793c0cc08d6adc9fe9597d9270b1f0c3ef", + "result" : "invalid" + }, + { + "tcId" : 106, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "8bdfb51ff4664220de3d87e06882c748490af56c0c5ef789", + "result" : "invalid" + }, + { + "tcId" : 107, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "20a5b0fc789e8422e09a3128a10b6b0bca6aba2bde496aa6", + "result" : "invalid" + }, + { + "tcId" : 108, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "fdfde90ee4681372c85fc5875dd482cef85bf69dfe57e71c", + "result" : "invalid" + }, + { + "tcId" : 109, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "5f2ba1d716b8fdee03f3fc5cc4c7ea35836bb3c073f02dc9", + "result" : "invalid" + }, + { + "tcId" : 110, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "f241ce804660d60397789d4c67f4e252b55838144b199355", + "result" : "invalid" + }, + { + "tcId" : 111, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "a4f5b4f3ef5a6939949fe6dfd755f327ffa604dc417ea495", + "result" : "invalid" + }, + { + "tcId" : 112, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "4e23f48297480d1a4afc85fc97d6d69f861f518bc00fe7c3", + "result" : "invalid" + }, + { + "tcId" : 113, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "d9f0de809d4f6ef5815a3e6bfb09b11f0b51b6180caac98c", + "result" : "invalid" + }, + { + "tcId" : 114, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "ca5da3ab416a98ac387ac226f52f486b6ba30bf6f517ca7d", + "result" : "invalid" + }, + { + "tcId" : 115, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "6c41e5a654467ce13828d72fd3ad1a22083def182696e83d", + "result" : "invalid" + }, + { + "tcId" : 116, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "045d789cefd1da1f32761c4ba8e22bb126c322184b85e370", + "result" : "invalid" + }, + { + "tcId" : 117, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "a6a28bceb91551a395369ff09370658cc92b092855f417aa", + "result" : "invalid" + }, + { + "tcId" : 118, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "03ff601cf12b432078a2185590fb5d01e3441cf084bcb04a", + "result" : "invalid" + }, + { + "tcId" : 119, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "e250d358d16d9fd20ad80a99656509229dca391aad3798f0", + "result" : "invalid" + }, + { + "tcId" : 120, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "643a17860b116ec74089bc574685a6328a3d7a07cd18b520", + "result" : "invalid" + }, + { + "tcId" : 121, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "3e86e8128904f753c0f3fe3401ba36672966567725c4726c", + "result" : "invalid" + }, + { + "tcId" : 122, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "d4b8cc849176b8344b0849490143d3512915171bd7d5759e", + "result" : "invalid" + }, + { + "tcId" : 123, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "f84e0e6ff64e0b27b8b59b5b77c223023f0fea95433864ec", + "result" : "invalid" + }, + { + "tcId" : 124, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "4030b4b0e9c1b1ce8e52f6bdb48088e65b05844307989c8b", + "result" : "invalid" + }, + { + "tcId" : 125, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "ccb3b36c26b2d901b7f0765362d992b2d5089c2a7559b195becbe173780352fa", + "result" : "invalid" + }, + { + "tcId" : 126, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "4e5fc8dccaeec9b1c8a606a2bd7d7201eede62b9c2e939a5aba663a6a040e361", + "result" : "invalid" + }, + { + "tcId" : 127, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "af21f5e7f15a63c8ea6001cf024f281e7f44aedd68954564fc2bd146e96d793a", + "result" : "invalid" + }, + { + "tcId" : 128, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "3a4f571ffbf761d3f7d413172ee1e4ae2862baacfd5ab66dc685b9af8b70b538", + "result" : "invalid" + }, + { + "tcId" : 129, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "273de386d5fef497f9487afd54c1c0fae8aacabf2af465caf352e2300d29266b", + "result" : "invalid" + }, + { + "tcId" : 130, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "16511743dc44199cee1dbf5045141b075f01ee13326c9faf2c74b7c99791830f", + "result" : "invalid" + }, + { + "tcId" : 131, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "370f92db00f7fc8a0e654318a5b3ff89a604034f421339201d79e0ec4d6088de", + "result" : "invalid" + }, + { + "tcId" : 132, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "e3edd0e84832f3615f6deefb444de3b9ec527741686029db91de0bb9b2a5c05d", + "result" : "invalid" + }, + { + "tcId" : 133, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "aa48e6b6ed9ae707768d3e4cbd191d9988c6921d0ad17ce1", + "result" : "invalid" + }, + { + "tcId" : 134, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "1f7170780b523e5c5970fc5bf35fe30e6505fb22790ba936", + "result" : "invalid" + }, + { + "tcId" : 135, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "b3e5311504a8cf1194b73ba1f3b7eb82de1e6bf1cfdad41e", + "result" : "invalid" + }, + { + "tcId" : 136, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "779ede9022290dd606e1619c7451630820431f8d67c498c1", + "result" : "invalid" + }, + { + "tcId" : 137, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "9720d5bef7dda98c9462e1b2d73dd2ce016b6dcd7cd71c5f", + "result" : "invalid" + }, + { + "tcId" : 138, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "7e310f4c62031b821539d78706a56a724c191af92543e8a3", + "result" : "invalid" + }, + { + "tcId" : 139, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "1b2a588774a0340315dc1a934a8db6bb659e67ac8c8867b3", + "result" : "invalid" + }, + { + "tcId" : 140, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "afa72d66be45e9d98dc46779c186154a0f14b97b26e67e3e", + "result" : "invalid" + }, + { + "tcId" : 141, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "ea98bfac85f03b66b0c298c1fda726f1def4be7552f4ebac", + "result" : "invalid" + }, + { + "tcId" : 142, + "comment" : "RFC 3349 padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "000102030405060708090a0b0c0d0e0f", + "ct" : "36ee480138edf11e144efcddd24d2c121749da6e4eab17fe", + "result" : "invalid" + }, + { + "tcId" : 143, + "comment" : "padding too long", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "000000000000000000000000000000000000000000000000", + "ct" : "74ff3070a0a08471c001febb95a890f35159a9fe263719e40c2332ce5c58fada", + "result" : "invalid" + }, + { + "tcId" : 144, + "comment" : "padding too long", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0000000000000000000000000000000000000000000000000000000000000000", + "ct" : "4f0b38eb328d1227b1e17c103a44a373ff67cee953c59eea26117947b5d3ef8932c8858b4f9fb47c", + "result" : "invalid" + }, + { + "tcId" : 145, + "comment" : "incorrectly encoded length", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "00000000000000000000000000000000", + "ct" : "775dcabab9e4be8fd9963a4dc7a1447ef82888403882bdb6", + "result" : "invalid" + }, + { + "tcId" : 146, + "comment" : "length = 2**32-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "00000000000000000000000000000000", + "ct" : "669803237fa10eabb4d2c6ad85bd9f7df5f4a33340eb0ce9", + "result" : "invalid" + }, + { + "tcId" : 147, + "comment" : "length = 2**32-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0000000000000000", + "ct" : "c788504d786f5c21b6671bf190657301", + "result" : "invalid" + }, + { + "tcId" : 148, + "comment" : "length = 2**31-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "00000000000000000000000000000000", + "ct" : "d079f60d3258f5e695d1a73db008ef38516b713eca2c0eaf", + "result" : "invalid" + }, + { + "tcId" : 149, + "comment" : "length = 2**31 + 16", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "00000000000000000000000000000000", + "ct" : "f1ae4b8865013b0fc63b463e664cec3c6031f61f2de82f43", + "result" : "invalid" + }, + { + "tcId" : 150, + "comment" : "data is incorrectly padded", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "ffffffffffffffffffffffffffffffffffffffffffffffff", + "ct" : "8874e1b6e15e3ef6c461411a5f5ad0c8b05368cd5b3ee39b2b413d18a4eebfc9", + "result" : "invalid" + }, + { + "tcId" : 151, + "comment" : "data is incorrectly padded", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0001020304050607", + "ct" : "890a3dab8439bb73b14c6e99c34f0b0e", + "result" : "invalid" + }, + { + "tcId" : 152, + "comment" : "length = 0", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "00000000000000000000000000000000", + "ct" : "d4f633aedeb89e349a98738b00ee42c90d583b16e986e49f", + "result" : "invalid" + }, + { + "tcId" : 153, + "comment" : "RFC 3349 padding with incorrect size", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0001020304050607", + "ct" : "b8b2a5b1d3280dcb4daeeed43f36509b", + "result" : "invalid" + }, + { + "tcId" : 154, + "comment" : "length = 9", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0000000000000000", + "ct" : "4429cf64251d8a54a9d1389c01c30900", + "result" : "invalid" + }, + { + "tcId" : 155, + "comment" : "length = 16", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0000000000000000", + "ct" : "e5634eca10372c867c7f91ee813ec3f3", + "result" : "invalid" + }, + { + "tcId" : 156, + "comment" : "length = 2**31 + 8", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0000000000000000", + "ct" : "9e517d4d0142e1544ba1e7419a696c21", + "result" : "invalid" + }, + { + "tcId" : 157, + "comment" : "invalid wrapping of empty key", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "", + "ct" : "a65959a600000000", + "result" : "invalid" + }, + { + "tcId" : 158, + "comment" : "invalid wrapping of 8 byte key", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702e", + "msg" : "0001020304050607", + "ct" : "166beb49e97a4a9cc7b0ccf441ec15b5", + "result" : "invalid" + }, + { + "tcId" : 159, + "comment" : "RFC 5649", + "flags" : [ + "Normal" + ], + "key" : "5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8", + "msg" : "c37b7e6492584340bed12207808941155068f738", + "ct" : "138bdeaa9b8fa7fc61f97742e72248ee5ae6ae5360d1ae6a5f54f373fa543b6a", + "result" : "valid" + }, + { + "tcId" : 160, + "comment" : "RFC 5649", + "flags" : [ + "Normal" + ], + "key" : "5840df6e29b02af1ab493b705bf16ea1ae8338f4dcc176a8", + "msg" : "466f7250617369", + "ct" : "afbeb0f07dfbf5419200f2ccb50bb24f", + "result" : "valid" + } + ] + }, + { + "type" : "KeywrapTest", + "keySize" : 256, + "tests" : [ + { + "tcId" : 161, + "comment" : "key size=32 data size=16", + "flags" : [ + "Normal" + ], + "key" : "fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c", + "msg" : "287326b5ed0078e7ca0164d748f667e7", + "ct" : "e3eab96d9a2fda12f9e252053aff15e753e5ea6f5172c92b", + "result" : "valid" + }, + { + "tcId" : 162, + "comment" : "key size=32 data size=16", + "flags" : [ + "Normal" + ], + "key" : "0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22", + "msg" : "b40b6828729b456322a8d065abc0d081", + "ct" : "9d2b42fb2fdb92c89fb0c3bcd9e1600d3334b4e35e791369", + "result" : "valid" + }, + { + "tcId" : 163, + "comment" : "key size=32 data size=16", + "flags" : [ + "Normal" + ], + "key" : "d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588", + "msg" : "037b27b3dc95b19d15bd4091e320bfe1", + "ct" : "5291e05abd55f5886850855e3f9f2f576b101acc222d6766", + "result" : "valid" + }, + { + "tcId" : 164, + "comment" : "key size=32 data size=24", + "flags" : [ + "Normal" + ], + "key" : "07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121", + "msg" : "faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071", + "ct" : "4b1220525c537aec30ebcd562b694b4e9e2ccd819de22ef608b5d8090779d9de", + "result" : "valid" + }, + { + "tcId" : 165, + "comment" : "key size=32 data size=24", + "flags" : [ + "Normal" + ], + "key" : "ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1", + "msg" : "dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825", + "ct" : "67b2cbd68f6a208d647bdc5af7d0bccf6711a9e8fd0d9434363006addd4b9696", + "result" : "valid" + }, + { + "tcId" : 166, + "comment" : "key size=32 data size=24", + "flags" : [ + "Normal" + ], + "key" : "fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87", + "msg" : "966b07047354966a703e79607b556032f4f596b7f9206f05", + "ct" : "cfdbbd95f187508a488fe017c5e5d5a5975b68441d520e0e931922388e28784c", + "result" : "valid" + }, + { + "tcId" : 167, + "comment" : "key size=32 data size=32", + "flags" : [ + "Normal" + ], + "key" : "38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd", + "msg" : "80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a", + "ct" : "b63b7e0fec7e315816233db6758fd3e744b9f6a40862bdf866487e53bcb950d8b2649269e51b4475", + "result" : "valid" + }, + { + "tcId" : 168, + "comment" : "key size=32 data size=32", + "flags" : [ + "Normal" + ], + "key" : "c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7", + "msg" : "3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270", + "ct" : "837cfc316b49299edaf427e0988020ee876204b29d847669daab72c8660b0d860e9de3bd851198ff", + "result" : "valid" + }, + { + "tcId" : 169, + "comment" : "key size=32 data size=32", + "flags" : [ + "Normal" + ], + "key" : "aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c", + "msg" : "57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5", + "ct" : "0e9e2e9aa34bbf973d67bc534ac86fc5b5a5f9da5f026866177894ec6077a5c84501510e1bf4afb3", + "result" : "valid" + }, + { + "tcId" : 170, + "comment" : "Round counter overflows 256", + "flags" : [ + "CounterOverflow" + ], + "key" : "b6121acad51038e11873aaa7e6c7be06f93826b74fec0ea1c02f9981ed49d16a", + "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "1c6b7e4003384f071bf29baea9098ad81da8e9862909329f52793b35d592c10dba15aa89400ea6403df8dcaffd0dbf5606303f109f79ad700ed5d5ad4e59950ce9ce5296c9d186a0df441973d1835f9ac000ad1a6797875c3a03161e9e3f5ea464032e407854eadca5a9e7a386bb0d29253e3804adefd8c0402cc8c40ac7f9041429cc0bb77a405b284baa2dae764ea09c654c0a82f2c5724221ba44e341503d3103dbc393c7702182f8cc2762ddbc873b7f84197709886a4b5df5b04ff9d21b79b50904af3c32128dfb9cde94fe1254d981e6ce3acfda82db1fa2badbccd2d29052a04a69ce1f5652f30496ea57edc7e3e885dd4a35ca15aba602bb4c888a8064da94c2ac5c12c11f608810af46fbb49c3e8f8771ff661f8d8dccd163d0c4a401b8b9aa74e68a56011cf78d21dc7541a974f9dad5ae27f8a26d1b0e76be2f86c6a21e9d1c2b5df3c8878a8bcae143b3af1f082afc52616eeadd2232926597b245d394931e02e493b0bc27a92d013e111694cac2c5a2a46e008a8498b5c31bb5ec35a4e9957e365d", + "result" : "valid" + }, + { + "tcId" : 171, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "ae", + "ct" : "06c1e65ac0f385b4e8c400d229f39422", + "result" : "valid" + }, + { + "tcId" : 172, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "c548", + "ct" : "c98da5936a1313eba1a6773b8060ea5e", + "result" : "valid" + }, + { + "tcId" : 173, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "f713b9", + "ct" : "b2a77d9b837e87cdb7391e1df7cdaf14", + "result" : "valid" + }, + { + "tcId" : 174, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "f375cbf7", + "ct" : "d8ecf20191f75aa36686298bfa5022ab", + "result" : "valid" + }, + { + "tcId" : 175, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "d9445094b1", + "ct" : "077362f50356fc7c54c70f9cb4306f7d", + "result" : "valid" + }, + { + "tcId" : 176, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "fab43e91ae15", + "ct" : "a4bd6a116ad88a52aae3f0c0cb893f9b", + "result" : "valid" + }, + { + "tcId" : 177, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "90735025797bd2", + "ct" : "68a52de00ec0f1ebbedc38fee6be0c23", + "result" : "valid" + }, + { + "tcId" : 178, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "e43f5e4e123a03c4", + "ct" : "3a6746052a1744cfe7e2f36dafc4042d", + "result" : "valid" + }, + { + "tcId" : 179, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "1723eb9d000916996a", + "ct" : "db7e73da22219e1baac0f4e955c3db2b900b5d3078f94b59", + "result" : "valid" + }, + { + "tcId" : 180, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "8b18daecde14b8472ffd", + "ct" : "f77ec14a010777f1f1071808f285c1c00b4e9420f0e8bf48", + "result" : "valid" + }, + { + "tcId" : 181, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "e5bd6fbacbf3ef0d40c884", + "ct" : "6b40d4f0863581a7d0365ad477568bfad94f8bf134984838", + "result" : "valid" + }, + { + "tcId" : 182, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "b3be5e5397df5f46b099e821", + "ct" : "660f645b02405a18f7225b68c0a09a949b2b5ba784922cfe", + "result" : "valid" + }, + { + "tcId" : 183, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "4cdd960cabcf8aaf69c37da1d3", + "ct" : "6bea6bf57601bf063873f47ec3572cfb9cfb595d8bdb5e97", + "result" : "valid" + }, + { + "tcId" : 184, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "da29e0889cf98742612e0326300b", + "ct" : "b631292536aaf02d829cc6d3c39e5a5cd76240889e9d51d0", + "result" : "valid" + }, + { + "tcId" : 185, + "comment" : "wrapping small key", + "flags" : [ + "SmallKey" + ], + "key" : "1abf4b7fa2bb62a78f09ddab04625dcacdd9e551d1a69b6b162baa53d2700093", + "msg" : "72aaee126a822184806c7d22eed66b", + "ct" : "de497acf18a177a3a9b3d8da46d74dfa58dcc537a3a95323", + "result" : "valid" + }, + { + "tcId" : 186, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "98428fb83dc207033c1585e0242e699be98e0001f1ee15ba", + "result" : "invalid" + }, + { + "tcId" : 187, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "60107f4c60c04c987c7c5810130303bd83fbc35d924f4482", + "result" : "invalid" + }, + { + "tcId" : 188, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "38e8d42ffc1a26278c6fad73bd699f207251f6e1b622bf92", + "result" : "invalid" + }, + { + "tcId" : 189, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "c23f1fdbe6c021a04bfc386b55c8fe911481f82edf308d79", + "result" : "invalid" + }, + { + "tcId" : 190, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "7cc6af073f8d21e26713222ba609c91b69fc5faee9870eb7", + "result" : "invalid" + }, + { + "tcId" : 191, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "e7e5d96c0bc89dc23bff610db5ccfb5de8f97b74100b3492", + "result" : "invalid" + }, + { + "tcId" : 192, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "18e77b855e322457a4942209f97acaed1fe6af0aea80c454", + "result" : "invalid" + }, + { + "tcId" : 193, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "0fcc89e543fae40b914510c9064307b70ef12de4c8750874", + "result" : "invalid" + }, + { + "tcId" : 194, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "f795cf444efd94bd6a561d8cb0703ee0e979c073aa66fdaa", + "result" : "invalid" + }, + { + "tcId" : 195, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "bb5d2e4082140258d6cb26a74af7c10f985e4a84dcd5d8d6", + "result" : "invalid" + }, + { + "tcId" : 196, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "47819be55567934b165a6e93ca25d3900103bedb86eab148", + "result" : "invalid" + }, + { + "tcId" : 197, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "41b70a974d3fce94feb94b7b01d959541cd120f879cf60e1", + "result" : "invalid" + }, + { + "tcId" : 198, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "86b9f13e871ecb5aa009c80a31693336e59ae1ed3c8d7aaf", + "result" : "invalid" + }, + { + "tcId" : 199, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "b17c3957d85127aae1ae0a04096b19eb2e0f67583772182b", + "result" : "invalid" + }, + { + "tcId" : 200, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "2ca5c335226e3e171fde0f3401ba6835fa389f30f5288699", + "result" : "invalid" + }, + { + "tcId" : 201, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "5b8ba944f4a961d6e4c5121279ea4d3fcd555b05e75da4ff", + "result" : "invalid" + }, + { + "tcId" : 202, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "7fd3ad3aee0545da1ed3a54d5a198a2c76cf8290c011c042", + "result" : "invalid" + }, + { + "tcId" : 203, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "a24e94c12b2e6b776c8febe9179521beae0cfbd507d358b4", + "result" : "invalid" + }, + { + "tcId" : 204, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "9395b071fa3d9908b2e1b349bf7cd6a1cfc86b979c8c73cd", + "result" : "invalid" + }, + { + "tcId" : 205, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "1eb452770bc0f26a3576b604bf5ac72f714fc468c357eba7", + "result" : "invalid" + }, + { + "tcId" : 206, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "b42bcb4161f40b30f3d2f740f43e441d3c9a39613914f1c6", + "result" : "invalid" + }, + { + "tcId" : 207, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "f3d76dd320e5f1b3f85b8f73a9ebcfabfb8346daafaf36e6", + "result" : "invalid" + }, + { + "tcId" : 208, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "b8e26164496942f44f16751096fb47952ec478bb288e72a1", + "result" : "invalid" + }, + { + "tcId" : 209, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "fa783b3aca0ec1e677378f23ebe937776fa590ecc6b01392", + "result" : "invalid" + }, + { + "tcId" : 210, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "8b011408049eab81cc185796b9636982c1ad28e940e5c35ab1219434c23e8c59", + "result" : "invalid" + }, + { + "tcId" : 211, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "08db2f06aa2400d4cc1113b1c9e3ba1b39e3e26a84918f9266796c426c166428", + "result" : "invalid" + }, + { + "tcId" : 212, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "3114404be000ee167b65dd3cfae3b10c50dffe1df864b5e52a2805f0c80021c0", + "result" : "invalid" + }, + { + "tcId" : 213, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "405ae5bdeff8b05d28ea55900b8e81dc789d532ec3fc457730819e762172f751", + "result" : "invalid" + }, + { + "tcId" : 214, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "7c19e66d21c0f1409ee6f03a36ab6ba532349e2567200b95d7f5012b2b7e5d33", + "result" : "invalid" + }, + { + "tcId" : 215, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "955ac67d6e496b9b93a4dda8f6e65e668f1326b256ee146a7647ba18deee7986", + "result" : "invalid" + }, + { + "tcId" : 216, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "c8600aa18be27279493fd68c84130c8bc328b0f6821e01e892b6c2dc1c005270", + "result" : "invalid" + }, + { + "tcId" : 217, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "492566e0dc539e234b08b95fb23594a6d14f59fa4367799495c2e7f2993135ec", + "result" : "invalid" + }, + { + "tcId" : 218, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "0b0aa97121bb8e367b8e80e6518a786ab686f4d6b8a075c3abe534698ec462e09fba981615d43ebd", + "result" : "invalid" + }, + { + "tcId" : 219, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "aa6eaa5b94f39247b9581c4d3120ed71e6a427eb51b2439f245d1762041dcf50741fc53fa7a95579", + "result" : "invalid" + }, + { + "tcId" : 220, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "5cef33853f321f523951a27e41a68dfca418d5b8560484d3f233c5a45e7b69e7a6e4893e690cde6e", + "result" : "invalid" + }, + { + "tcId" : 221, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "62e120f39799ab7633fde15836b89b28a8ced5ecdc421939d8657e41fa1ea49a54da75b51b8dd3d8", + "result" : "invalid" + }, + { + "tcId" : 222, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "9dc7bc15dfbc7da1a6f74bc4dfbc70091f2a180dbb76f9a6e9e18bcc3c11d2b56bed36c58c7dbc65", + "result" : "invalid" + }, + { + "tcId" : 223, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "e7ee36c6321ba0a30906b25e087fb0cabd74fbb0905b015ccc246cc90e5684605898a5a77983e897", + "result" : "invalid" + }, + { + "tcId" : 224, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "75c636384c4210ea46422f31a5622d001e8978c2b0fbbb79ce3d7c4b46bb3c7c2c9d4182571ae515", + "result" : "invalid" + }, + { + "tcId" : 225, + "comment" : "Modified IV", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "b0116ad877c745d609f7df14b9225a2d69ab56f2e74077e34607b4e75a2883442864f17ca19af259", + "result" : "invalid" + }, + { + "tcId" : 226, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "64956d333265a8f2547756feab37b81f97786a4ebf491f13", + "result" : "invalid" + }, + { + "tcId" : 227, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "6ee239e916d27f8a8931740fda92657f98dfc68e5e3984da", + "result" : "invalid" + }, + { + "tcId" : 228, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "40c990f89aa7c76400655fd4167b04cbe24145c8c800dc35", + "result" : "invalid" + }, + { + "tcId" : 229, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "f2a900684f167b9246b1345b8a94e711d9b6ac439f3ef3e8", + "result" : "invalid" + }, + { + "tcId" : 230, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "cd7053a854fcc2f476c20539360ce47e767563723c11d211", + "result" : "invalid" + }, + { + "tcId" : 231, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae37", + "ct" : "ffa557ea4960669ccbcf59007a24de06755475c1cfef56da", + "result" : "invalid" + }, + { + "tcId" : 232, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "8672fdfb252c0dc9e3bc39b0fe76b9b08cf87b65c0f28ee3", + "result" : "invalid" + }, + { + "tcId" : 233, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "fcc2c7a6d2944e7d02ca08e49a7ceb77ee3f5966509b528e", + "result" : "invalid" + }, + { + "tcId" : 234, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070", + "ct" : "57bc3a4c7544fe76b92740608a1023bb70227856cbdb8ada", + "result" : "invalid" + }, + { + "tcId" : 235, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "9220a6eb9c77a3d6374647afa7a3effb99be7e1f7bafeca8a1bbd93e8adcca6e570484008ee674ca", + "result" : "invalid" + }, + { + "tcId" : 236, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "94654a58be6bb6b946ef40ac7b8f1d19e2edff7c2c8c54eb7b2cbb3227c4f9df2cb317795beea413", + "result" : "invalid" + }, + { + "tcId" : 237, + "comment" : "Modified Padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce3497352690", + "ct" : "1ae49d65e69886f0f47cbbeb50f07ab5163983916a738a0d8f538c59c8a6e1e9ad229b27418259a7", + "result" : "invalid" + }, + { + "tcId" : 238, + "comment" : "RFC 3349 padding", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "000102030405060708090a0b0c0d0e0f", + "ct" : "ac1a774a5de27e4f9c356e4f62deaf8b7eeee6bcafafd895", + "result" : "invalid" + }, + { + "tcId" : 239, + "comment" : "padding too long", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "000000000000000000000000000000000000000000000000", + "ct" : "86175acf19ad0b7ac60d1fe4bb7850635e7ec6f8a314f85b6dd3d8f9349ea38d", + "result" : "invalid" + }, + { + "tcId" : 240, + "comment" : "padding too long", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0000000000000000000000000000000000000000000000000000000000000000", + "ct" : "791f088847a76731e0d56b9b2dcb28bf9f091a9725790e0a64fc8e7cb3ad50f380297a98e3b1c33e", + "result" : "invalid" + }, + { + "tcId" : 241, + "comment" : "incorrectly encoded length", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "00000000000000000000000000000000", + "ct" : "868c34495bd3d7b4e2c1861e7fcbbdb372099488dd96c9ea", + "result" : "invalid" + }, + { + "tcId" : 242, + "comment" : "length = 2**32-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "00000000000000000000000000000000", + "ct" : "4a8b4aeaa713469bfd9bf88d4072379fc858e40b24b0bebe", + "result" : "invalid" + }, + { + "tcId" : 243, + "comment" : "length = 2**32-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0000000000000000", + "ct" : "c210aa3b5fbf5eac97e68d98d7727f38", + "result" : "invalid" + }, + { + "tcId" : 244, + "comment" : "length = 2**31-1", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "00000000000000000000000000000000", + "ct" : "e0ebd376e050cc9027b76dfc38ee2c6ae2808cecf480a560", + "result" : "invalid" + }, + { + "tcId" : 245, + "comment" : "length = 2**31 + 16", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "00000000000000000000000000000000", + "ct" : "23a693e211c08ab9b222c2ede2db18f437e22917fdff8032", + "result" : "invalid" + }, + { + "tcId" : 246, + "comment" : "data is incorrectly padded", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "ffffffffffffffffffffffffffffffffffffffffffffffff", + "ct" : "003f2916fea6827e01199028d3dc4e03889113f97b1860cc242e5a0f28a0f159", + "result" : "invalid" + }, + { + "tcId" : 247, + "comment" : "data is incorrectly padded", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0001020304050607", + "ct" : "5c25a170d5225a6d66e117c691b37383", + "result" : "invalid" + }, + { + "tcId" : 248, + "comment" : "length = 0", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "00000000000000000000000000000000", + "ct" : "df9ef924eb59634be5b27cabd33d72bd6be6e01e4672ab05", + "result" : "invalid" + }, + { + "tcId" : 249, + "comment" : "RFC 3349 padding with incorrect size", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0001020304050607", + "ct" : "e6e66fad359a7b63a977788acd297121", + "result" : "invalid" + }, + { + "tcId" : 250, + "comment" : "length = 9", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0000000000000000", + "ct" : "76b88ecda760b1af80703036185fc476", + "result" : "invalid" + }, + { + "tcId" : 251, + "comment" : "length = 16", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0000000000000000", + "ct" : "fd101943f4ab7c38ec68c75d4b3193dc", + "result" : "invalid" + }, + { + "tcId" : 252, + "comment" : "length = 2**31 + 8", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0000000000000000", + "ct" : "1793a3a9bd146726edbcb9589f20e849", + "result" : "invalid" + }, + { + "tcId" : 253, + "comment" : "invalid wrapping of empty key", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "", + "ct" : "a65959a600000000", + "result" : "invalid" + }, + { + "tcId" : 254, + "comment" : "invalid wrapping of 8 byte key", + "flags" : [ + "ModifiedPadding" + ], + "key" : "48a53c11ef2d727db7eb9a834b134ea9602273aca929702eb2c31d96a58c9be2", + "msg" : "0001020304050607", + "ct" : "b3941437f55e7cbc3f88050aff703967", + "result" : "invalid" + } + ] + } + ] +} diff --git a/test/wycheproof/aes_wrap_test.json b/test/wycheproof/aes_wrap_test.json new file mode 100644 index 0000000..c43db52 --- /dev/null +++ b/test/wycheproof/aes_wrap_test.json @@ -0,0 +1,1875 @@ +{ + "algorithm" : "AES-WRAP", + "schema" : "keywrap_test_schema.json", + "generatorVersion" : "0.9", + "numberOfTests" : 165, + "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 becames 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", + "keySize" : 128, + "tests" : [ + { + "tcId" : 1, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "6f67486d1e914419cb43c28509c7c1ea", + "msg" : "8dc0632d92ee0be4f740028410b08270", + "ct" : "9de453ced5d4ab46a5601708eeefefb5e593e6ae8e86b26b", + "result" : "valid" + }, + { + "tcId" : 2, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "a0b17172bb296db7f5c869e9a36b5ce3", + "msg" : "615dd022d607c910f20178cbdf42060f", + "ct" : "8c3aba85cc0ae1ae10b36658b068f595baf8caafb745ef3c", + "result" : "valid" + }, + { + "tcId" : 3, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "0e49d571c19b5250effd41d94bde39d6", + "msg" : "f25e4de8caca363fd5f29442eb147b55", + "ct" : "1de093654826f18fcd0f3fd499416ff22ed75ee12fe0b624", + "result" : "valid" + }, + { + "tcId" : 4, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "e0e12959109103e30ae8b5684a22e662", + "msg" : "dbb0f2bb2be912a20430972d9842ce3fd3b928e573e1ac8e", + "ct" : "9c3ddc23827b7b3c13105f9e8b11523baccdfb6c8b7e7825496e7a840bd32aec", + "result" : "valid" + }, + { + "tcId" : 5, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "dd583d9f1059861430ec8b5d8a180e9b", + "msg" : "f2e34f356362a31b51d6e02bcd333c9e6170494ca5ff5487", + "ct" : "afb744aaf746dcc0b57f8b378c404cbe877f44cf3d45140d60814eda3f541f01", + "result" : "valid" + }, + { + "tcId" : 6, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "faf5ccfae42b43cee2c5f0f3177a7c5d", + "msg" : "4e02084833660c463830483b36dab866c64c8cf7429cac3d", + "ct" : "cff98cd64cb51ab99b81aee82cee4274d0df3e1b6a4943d39236ea989846d0cc", + "result" : "valid" + }, + { + "tcId" : 7, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "c2b9d23f2831ddcdeb456853d4014db9", + "msg" : "f4cfea98e58b939cc859554385cf3a6c7f8217f728efb431c964786de8274907", + "ct" : "58dcfb0e7ec4d3bc8003418d865fbd520c6b24b2bde35b1be5b1c5ff32a130f33d035e5932616083", + "result" : "valid" + }, + { + "tcId" : 8, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "620a08f320cdedbf7ae551add348d95e", + "msg" : "cec34eaf8e67e1ce619ddfc309531c42f16033a7e2cbc4f5eb3a548164e9b291", + "ct" : "4ee47bd68d418586c447a39111e2ec1502ff0f1726ea91c5d97370409d89b8e66e889b638ac40ced", + "result" : "valid" + }, + { + "tcId" : 9, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "ed089ac274f8c7cea2415671a94b5e53", + "msg" : "6065e41df14daeeefacac5daeb7674cdc9c1f686013b797153e80ef215893299", + "ct" : "d3b093fd822ce454ebc251c6f21fa71c3858ee7e623ecbfbbf887398a30b40c55d0565c7a15e4015", + "result" : "valid" + }, + { + "tcId" : 10, + "comment" : "Round counter larger than 256", + "flags" : [ + "CounterOverflow" + ], + "key" : "31cacbb17d6dbbecae40727c5048fe0c", + "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "222deadde6efb760cae42fa188310e0c07e7d557529766444a9efb330907d42f0dd8f3d17b3a38bf40d68c095a9cce19daf907bf2c92f1e59b18b277ff0397fc50f45f582db936aa8afb943de01b58abfdc81daef4e038c99e4c1eb3ee447464bb8f89a4ea81e56556cc26c72883c06a7fe850d04347d68bbadc4a06775030676db8cc34aeb07e39c7f059c2bff76a7f2baf076749004ef7189f887f89029f88c5c1d0f5ee62320b423048e2ad8186e63be23c553f5576a40d967e8b527ccd783c41abc64bea1aec8a76deb3e9c9a6656756e1dac38bd25ff008888a5591af763fd73f5addd749794817070990484654a46ef442adaeacab14d12daaf87bcb91661a21593717d9b93529d813ea5fc812d708c0d8e9b68122d9f5e6267cde363780a45d07e4caa5bf14f2334f25b9d177632bb80a82894aa47b6f360b2da1138dedd4331f077c900554c7a68b5d154980bb3517ac20a78a51f6f21e42b2c4c960d31cbd22bd610819182c5e456ba7d7e903f5e60f6e0c4cc014feb4f81973ce48ad6f4dab8da51eb7", + "result" : "valid" + }, + { + "tcId" : 11, + "comment" : "empty keys cannot be wrapped", + "flags" : [ + "EmptyKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "", + "ct" : "a6a6a6a6a6a6a6a6", + "result" : "invalid" + }, + { + "tcId" : 12, + "comment" : "wrapping an 8 byte key", + "flags" : [ + "ShortKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "0001020304050607", + "ct" : "6f0b501f1f2f59e3ae605aa679ce43a6", + "result" : "acceptable" + }, + { + "tcId" : 13, + "comment" : "incorrect wrapping of 8 bytes", + "flags" : [ + "ShortKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "0001020304050607", + "ct" : "dc26fb6911d71971df0356d6bb9ed6e6", + "result" : "invalid" + }, + { + "tcId" : 14, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "00", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 15, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "0001", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 16, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "000102", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 17, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "00010203", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 18, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "0001020304", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 19, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "000102030405", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 20, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "00010203040506", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 21, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495", + "msg" : "000102030405060708090a0b0c0d0e0f10111213", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 22, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 23, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "9f", + "result" : "invalid" + }, + { + "tcId" : 24, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "dc9e9580", + "result" : "invalid" + }, + { + "tcId" : 25, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "b9b282d138693000", + "result" : "invalid" + }, + { + "tcId" : 26, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "0efc635b2d61e244056b9d4591ca6b", + "result" : "invalid" + }, + { + "tcId" : 27, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "4a305dae087b0d24d62af41831338f33ae", + "result" : "invalid" + }, + { + "tcId" : 28, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "", + "ct" : "82cb927097cf31ea4affea440b0d8ca6a240b900", + "result" : "invalid" + }, + { + "tcId" : 29, + "comment" : "bytes appended to wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7", + "msg" : "000102030405060708090a0b0c0d0e0f", + "ct" : "9790ab51fbcb850df6764e011ae97c85785bed2633aea66500", + "result" : "invalid" + }, + { + "tcId" : 30, + "comment" : "byte 0 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "0aac329ccd513edbdd6367df67999eaac9e7b51984c4d38d", + "result" : "invalid" + }, + { + "tcId" : 31, + "comment" : "byte 1 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "5a55dc429749ca49bb4ab01d966b19ea9a9e1402e6ab2962", + "result" : "invalid" + }, + { + "tcId" : 32, + "comment" : "byte 2 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "45f533f6072f640eb7e1e512d56072085567f4ad6012a97a", + "result" : "invalid" + }, + { + "tcId" : 33, + "comment" : "byte 3 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "84f284565df47c409107f7a0a71bc370a8ed4489d414b9e9", + "result" : "invalid" + }, + { + "tcId" : 34, + "comment" : "byte 4 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "3941c366554fc896e9fe52f02493ca03d439eb17c236146d", + "result" : "invalid" + }, + { + "tcId" : 35, + "comment" : "byte 5 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "45c9d42363d981d086a972728e130a42f5dd90bda562a85a", + "result" : "invalid" + }, + { + "tcId" : 36, + "comment" : "byte 6 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "037d17859519d6c0728a9eb6e64113e86919decabd3bbb88", + "result" : "invalid" + }, + { + "tcId" : 37, + "comment" : "byte 7 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "1ad10af7f6c042b267a0c7bc4d25d27c003deb50e2cc566a", + "result" : "invalid" + }, + { + "tcId" : 38, + "comment" : "IV changed to 0000000000000000", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "630c571b7fb8647ac5360a255f9f5d3645795ac45285cbaa", + "result" : "invalid" + }, + { + "tcId" : 39, + "comment" : "IV changed to RFC 5649 padding", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "16db553e467d4029d0fea62b2c440e5df6c6591f0497a99d", + "result" : "invalid" + }, + { + "tcId" : 40, + "comment" : "IV changed to 5959595959595959", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "097991090a156047d4784b757f262e12ce57e13a3d5d286c", + "result" : "invalid" + }, + { + "tcId" : 41, + "comment" : "IV changed to ffffffffffffffff", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "3957c338b750a3285eb7b65c9cfe77053dd7d8149f42caa1", + "result" : "invalid" + }, + { + "tcId" : 42, + "comment" : "RFC 3394", + "flags" : [ + "Normal" + ], + "key" : "000102030405060708090a0b0c0d0e0f", + "msg" : "00112233445566778899aabbccddeeff", + "ct" : "1fa68b0a8112b447aef34bd8fb5a7b829d3e862371d2cfe5", + "result" : "valid" + } + ] + }, + { + "type" : "KeywrapTest", + "keySize" : 192, + "tests" : [ + { + "tcId" : 43, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "f75a2f49a630c7dc91626b00ce029f0bd2981d7c74a93ebe", + "msg" : "9adbc00c710b1101bdf6a4ed65b32d72", + "ct" : "00be1caddfd5ad7697877017795f9cee4bce5a61687a6126", + "result" : "valid" + }, + { + "tcId" : 44, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "b713f6b7814f98894d7b153974684359f1460213eb74be68", + "msg" : "78585f0c49922e82caf17ebc3721b4db", + "ct" : "54e7f278b5a1fb4c31a0d79ac1f615edd910bf22015a0668", + "result" : "valid" + }, + { + "tcId" : 45, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "13ecf423211caa334ba6db37259a535c20de8ad10fc8c432", + "msg" : "4fc75d0f221e22408a37e11265d49a05", + "ct" : "510455bd9c078ac1f07bb3752cbd04e421b0dd635190fa62", + "result" : "valid" + }, + { + "tcId" : 46, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "4417fbbea51bdd91818d74051957dd70e135c5cf3732bdf1", + "msg" : "f5357da9f8fd4a1190f36e9fa09a90fcf14d87d62332f1a5", + "ct" : "880da5b410f913ad72cc93f46344f1152165bdea14664fd2d3afbd87b8cc5cfd", + "result" : "valid" + }, + { + "tcId" : 47, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "b3f26d8a22fdd61f709841231fbde695b3f28dddced6d41e", + "msg" : "0d0af955d2e3829cc3d643219b301e64e0510dfbc428119a", + "ct" : "27654cf6a63d6004ae83da54c2e5d7b5fad20878f350087ddd17ac44a2be868f", + "result" : "valid" + }, + { + "tcId" : 48, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "f70cfb262c729a18206c8afd74356ec7e049d10b44a6e000", + "msg" : "241cedfa64c4e7bec541a2eb4c368269e0f0ddebc58267ea", + "ct" : "ad7ca66ad4664f43e4dd09296a6e6f02d5af4408f225c0abeb0d9b76c8d1e982", + "result" : "valid" + }, + { + "tcId" : 49, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "1639f9f81e53e2eeb677a249e5eced3af108971301601a7b", + "msg" : "ec3c6a1f1a9585327fe658490c74635e5300876da5846a629398984fb551d691", + "ct" : "e245c90a6b46caece94f47117d608331958c8f75f531ebcdc902c0213d9105f2155af07daa62d132", + "result" : "valid" + }, + { + "tcId" : 50, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "1f22d5658aa685b8ba8659dc342880d5b2399e6a815005b0", + "msg" : "50be4c1b2f29a63f44d7fc63737f600f0194ea3fb36e173d2ddd19f218656380", + "ct" : "8a32b9f207ae5aaedb7e8a0d945107412c1bd06999bc5ac83c1f958dfb77ebdcf9d98c60dbd4650a", + "result" : "valid" + }, + { + "tcId" : 51, + "comment" : "wrapped key is longer than wrapping key", + "flags" : [ + "Normal" + ], + "key" : "3a2f4aa50441954bba5a1836294ce071f9296b23dbed6771", + "msg" : "65da02ff21b483a1e39575490b4319e84ae0299f1f00b3859fbe2e74b3ec2aaf", + "ct" : "4a5842b10d2db96ea1039ef4785ce722555b3751a9b6dd39126ad363378c72320d83ea7adb81615a", + "result" : "valid" + }, + { + "tcId" : 52, + "comment" : "Round counter larger than 256", + "flags" : [ + "CounterOverflow" + ], + "key" : "31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab63502", + "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "e2192598e6124f2791b2751f930958435bb1d02e98aa1e09781bba0b159435db659fa73fa310111704692c68e16ddf4be06022c52fe9dba6279aad1aeb814125d0ddf33f31e58e625af32305050cfea390d8782d32caac558889ca8e641908208da6976542b40dbd090178e2a6812a436c18a5e891ac8083176ace1ddfee4d382856a59c80c643ecd5c1ab68c66b2b8984ce6e0e386f6554a9cb91d363bb4accf028878ec20b8b2e37214f7b12dbcd78fb38f711a90fe262c78491b9058354e27b34fc92ef0d7028594cb08259f86b54cb1d317ec55f2ef2ab7e8b141671f8bcb1a90bb7d82bc8cb4fb02c9ce430ef4ae0dc847e91e7d4fb463eb9dd87fc9dc9568f3a4ef504d74c134dcb60ca01b36ce10cb467268ea297c0518a50d12cc025cfeea1381ddd7dd63e4ac94890a0eae9dbd8db244625a3c8af2e1aff6a8112c4d3d98e8263588ee1dd9063b709b8ec00474c4ea413a802b8cde814e7b3731410809ed000060fb7b9b0bf8509ef17515f333e868b188ea16445f380b3a7d42774f6456cdf724246fa", + "result" : "valid" + }, + { + "tcId" : 53, + "comment" : "empty keys cannot be wrapped", + "flags" : [ + "EmptyKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "", + "ct" : "a6a6a6a6a6a6a6a6", + "result" : "invalid" + }, + { + "tcId" : 54, + "comment" : "wrapping an 8 byte key", + "flags" : [ + "ShortKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "0001020304050607", + "ct" : "6e017d377ce2b7b1039f948b8498355f", + "result" : "acceptable" + }, + { + "tcId" : 55, + "comment" : "incorrect wrapping of 8 bytes", + "flags" : [ + "ShortKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "0001020304050607", + "ct" : "38d8238cdb0d9a2da28d6d56194f2e78", + "result" : "invalid" + }, + { + "tcId" : 56, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "00", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 57, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "0001", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 58, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "000102", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 59, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "00010203", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 60, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "0001020304", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 61, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "000102030405", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 62, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "00010203040506", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 63, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76", + "msg" : "000102030405060708090a0b0c0d0e0f10111213", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 64, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 65, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "9f", + "result" : "invalid" + }, + { + "tcId" : 66, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "dc9e9580", + "result" : "invalid" + }, + { + "tcId" : 67, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "b9b282d138693000", + "result" : "invalid" + }, + { + "tcId" : 68, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "0efc635b2d61e244056b9d4591ca6b", + "result" : "invalid" + }, + { + "tcId" : 69, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "4a305dae087b0d24d62af41831338f33ae", + "result" : "invalid" + }, + { + "tcId" : 70, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "", + "ct" : "82cb927097cf31ea4affea440b0d8ca6a240b900", + "result" : "invalid" + }, + { + "tcId" : 71, + "comment" : "bytes appended to wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd97", + "msg" : "000102030405060708090a0b0c0d0e0f", + "ct" : "55dfb2f7e0c1ea04fead897c451c0505921dc47f308c491700", + "result" : "invalid" + }, + { + "tcId" : 72, + "comment" : "byte 0 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "9b1593fd7d4fe25a660bbc1976ea4ab68bcc53f848a8eb9d", + "result" : "invalid" + }, + { + "tcId" : 73, + "comment" : "byte 0 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "1831109847d17d010bfcd93fb46f3150cdafd52733db74c221b034fe8e1552c0", + "result" : "invalid" + }, + { + "tcId" : 74, + "comment" : "byte 1 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "e7edb847fa91e2deded726edf3ab93da91151697425fee28", + "result" : "invalid" + }, + { + "tcId" : 75, + "comment" : "byte 1 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "2b2b89c3c6b2db4903877ad4622ca33f3a3cb7e6701d1340e6afc0fdab7dbd72", + "result" : "invalid" + }, + { + "tcId" : 76, + "comment" : "byte 2 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "1b51a7c033c1efb5ee2994259c40f03bb57d8cc09e507e6e", + "result" : "invalid" + }, + { + "tcId" : 77, + "comment" : "byte 2 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "3c6903f37da57161af6706050a2ed747cd55344d869189fd49d2536ff948129d", + "result" : "invalid" + }, + { + "tcId" : 78, + "comment" : "byte 3 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "c40b614a5062f5fd049c5379b3e8141614c2da97893589fb", + "result" : "invalid" + }, + { + "tcId" : 79, + "comment" : "byte 3 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "8a8dc8b131c6b968b60c1dd819a655392d1a96d6cafa48e30fb1146f096229c6", + "result" : "invalid" + }, + { + "tcId" : 80, + "comment" : "byte 4 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "d7575ef02df54b3086eb49035eeafbce0e08336e89b35ab0", + "result" : "invalid" + }, + { + "tcId" : 81, + "comment" : "byte 4 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "303e0b3602d514a7d52edba3306d7383e8999e7c652a510335a8949efb42eb66", + "result" : "invalid" + }, + { + "tcId" : 82, + "comment" : "byte 5 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "0d617f1c12485a35917d2a941e949d2fdbf03a346889b850", + "result" : "invalid" + }, + { + "tcId" : 83, + "comment" : "byte 5 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "319befbf2ddbb475723fb2fa30f2ae7fc1ceb1e6f361715eca7209608873c7fc", + "result" : "invalid" + }, + { + "tcId" : 84, + "comment" : "byte 6 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "c7df34729174db2e83ee16c6de74d5eb9766715fad049b40", + "result" : "invalid" + }, + { + "tcId" : 85, + "comment" : "byte 6 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "9b3e440341c5da131559959db6b3553a534691162f4f009327bf2c21d6fe5ada", + "result" : "invalid" + }, + { + "tcId" : 86, + "comment" : "byte 7 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "c3ed38d6f9ccb9bf3c56bb3176f00d3ce9887521f8d4c70b", + "result" : "invalid" + }, + { + "tcId" : 87, + "comment" : "byte 7 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "eba6cc0959e6a56339b141629840add80f4565656dc687a3b996960c994dfd26", + "result" : "invalid" + }, + { + "tcId" : 88, + "comment" : "IV changed to 0000000000000000", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "6582b5f4652744b0537e97e7cdae0f443130140dbaea604c", + "result" : "invalid" + }, + { + "tcId" : 89, + "comment" : "IV changed to 0000000000000000", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "b703b6cf4587709353c7e4004d3da61ce5f5deaf7163ca9d6158dde919e0ac34", + "result" : "invalid" + }, + { + "tcId" : 90, + "comment" : "IV changed to RFC 5649 padding", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "fc9b9bdf25f2b48ad79934c8d34897cdbf4c846f8cb4b11d", + "result" : "invalid" + }, + { + "tcId" : 91, + "comment" : "IV changed to RFC 5649 padding", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "72549d52d6f4ff912d833c74136d90634ce8afa4f84412bbee8074084d4cecff", + "result" : "invalid" + }, + { + "tcId" : 92, + "comment" : "IV changed to 5959595959595959", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "fc23c7f4fe20aa81105efc1a7105a5316b23399ac792c824", + "result" : "invalid" + }, + { + "tcId" : 93, + "comment" : "IV changed to 5959595959595959", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "1337c8bd6c8a5dd43aba8d298864ffe76ad6ea909f3488157a15e6c46acf2214", + "result" : "invalid" + }, + { + "tcId" : 94, + "comment" : "IV changed to ffffffffffffffff", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "37b4a261b96bcec9cc93eef5b2fbbbe84634f978c5893dda", + "result" : "invalid" + }, + { + "tcId" : 95, + "comment" : "IV changed to ffffffffffffffff", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "4aaffaca5fe85814d040aa2a306ba4d1d44746cfe46c978aa057b53fd25316c1", + "result" : "invalid" + }, + { + "tcId" : 96, + "comment" : "RFC 3394", + "flags" : [ + "Normal" + ], + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "msg" : "00112233445566778899aabbccddeeff", + "ct" : "96778b25ae6ca435f92b5b97c050aed2468ab8a17ad84e5d", + "result" : "valid" + }, + { + "tcId" : 97, + "comment" : "RFC 3394", + "flags" : [ + "Normal" + ], + "key" : "000102030405060708090a0b0c0d0e0f1011121314151617", + "msg" : "00112233445566778899aabbccddeeff0001020304050607", + "ct" : "031d33264e15d33268f24ec260743edce1c6c7ddee725a936ba814915c6762d2", + "result" : "valid" + } + ] + }, + { + "type" : "KeywrapTest", + "keySize" : 256, + "tests" : [ + { + "tcId" : 98, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "fce0429c610658ef8e7cfb0154c51de2239a8a317f5af5b6714f985fb5c4d75c", + "msg" : "287326b5ed0078e7ca0164d748f667e7", + "ct" : "940b1c580e0c7233a791b0f192438d2eace14214cee455b7", + "result" : "valid" + }, + { + "tcId" : 99, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "0dda6da5123e2c37c6fa16ba0d334cd01acd652f8994211751dfab4faac2fc22", + "msg" : "b40b6828729b456322a8d065abc0d081", + "ct" : "939b3389336fea4a9751bf014ef18011323090e8a0500bc4", + "result" : "valid" + }, + { + "tcId" : 100, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "d6925914cd06308f81ad91e23073593d99d4e50351b20eb2a8d1a1ac4ced6588", + "msg" : "037b27b3dc95b19d15bd4091e320bfe1", + "ct" : "59ee8e5198861237f682edec6ba906526c016d4d935942bd", + "result" : "valid" + }, + { + "tcId" : 101, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "07518a82cbc8da1dcec55f3763a206d277487abd03cedd0b8bef9ee2fb157121", + "msg" : "faa4664d79fce3c7d2fdd462f6c1c423c2f8e6b69be2e071", + "ct" : "1ab53a065d8f776a08b33e51383071b6f154612116655137bd3b7ec29b70fd56", + "result" : "valid" + }, + { + "tcId" : 102, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "ea46991d4e71f53dd624e7fe7fde11944a7c5942d232369b8065d42b8cd2dde1", + "msg" : "dffc5cf1dd5411d015d84601fa38df5effe885c7f26a4825", + "ct" : "a1bf8e73e3fa1db759f0ab2ab0b1ca6f2c85b63d83e25f7a0b5293d0a216a2b7", + "result" : "valid" + }, + { + "tcId" : 103, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "fdcfa902c6f222f527af84da533b14b52e2615da3a89d1d35708b0cd49f60d87", + "msg" : "966b07047354966a703e79607b556032f4f596b7f9206f05", + "ct" : "27308a0e1a6c0a1d15d6174ab7d68675207b615df16fcf7a3c69b25f551cca9f", + "result" : "valid" + }, + { + "tcId" : 104, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "38e1b1d075d9d852b9a6c01c8ff6965af01bac457a4e339ae3e1d7b2ffacc0cd", + "msg" : "80ad6820f1c90981e2ca42b817a345c1179d0a11d8e23a8adc0505e13d87295a", + "ct" : "7155ee932b0358d98182a23f7f427c774ab340a4757d0b6a63facd3de90578438cf03201c3f88057", + "result" : "valid" + }, + { + "tcId" : 105, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "c641f1689d81caa8ba37d895272240664054ed974cfffc40e6c5c0cad1b916c7", + "msg" : "3fd0ba19955e46749f54d88e99d080b7339d588fe612ec0f4021ca3ca2104270", + "ct" : "f20b9b553bc0847529f8d4379fa909211e68249bd429f436c615c4c4a5d9f1a1968f0b89c5237b30", + "result" : "valid" + }, + { + "tcId" : 106, + "comment" : "", + "flags" : [ + "Normal" + ], + "key" : "aa0ab9d68ed4a04e723f81b44c0c88d0bcde7a80cfd476eb4b8836d9aa01ec4c", + "msg" : "57faa8766f6d6a0aa1cf643f857c150df5b31303b50af480e21c4b5e8c8a15d5", + "ct" : "2811716854a214aecdd318c6670b9b2a7511713c9a0c0fa805230ff05cf84af795dd72f6c1a44512", + "result" : "valid" + }, + { + "tcId" : 107, + "comment" : "Round counter larger than 256", + "flags" : [ + "CounterOverflow" + ], + "key" : "31cacbb17d6dbbecae40727c5048fe0c01bc53b23ab635025cbac1ecf52ca495", + "msg" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "ct" : "5322bc62bd8379abbb75f69688b8f00e31962b8f9ae1e89771952d8a2a749e1352ec33b5435a674271b314760ab9f753b16726185ec7d319ac60531355344c1d53c7903000a8039eb40f70564a0ad3f41b2355ea5dfa6a1d46392f1d106a5da569bfb0493bf7c12dff04bafeae377df4bb47cd440b6f60fbab2a54a98551b76273e02cac8d7be9f2343d3abb2a23af1c91a7011c67a7907260116b67d510aabe5c7ca46c1c20f77106c45966583b3e4ed799a47ee19bb4223209265c2b1ac8183a678ff43bc9a3470a50b9ee4d10f60674268d72c68be003a0d9dd6849aba836fe8a1792b81c90e12945bfe1f27a9c6b2af66a063cdb7721a7f23fb30afdbd8b18db377dd1697f157be81c1578d08b066c71b0c5ca7feecac1cdd938cf9ad525f74844660908194b28e54eddb158f6e4c921b811d90db71a92ff872db2250dcc3f847fc752b66d77e33c85084d3fa53b4f30503d2a06e6cabb9033d59fc1dc15e32f19846a039b91597b0ba3141a7d9717630062170117b2131dab77406e9ed7d66b2c754d849c60", + "result" : "valid" + }, + { + "tcId" : 108, + "comment" : "empty keys cannot be wrapped", + "flags" : [ + "EmptyKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "", + "ct" : "a6a6a6a6a6a6a6a6", + "result" : "invalid" + }, + { + "tcId" : 109, + "comment" : "wrapping an 8 byte key", + "flags" : [ + "ShortKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "0001020304050607", + "ct" : "9a24ae9c68d493876d0c3d288998430e", + "result" : "acceptable" + }, + { + "tcId" : 110, + "comment" : "incorrect wrapping of 8 bytes", + "flags" : [ + "ShortKey" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "0001020304050607", + "ct" : "181ba6a3a4392469e3de98ddbbdd2432", + "result" : "invalid" + }, + { + "tcId" : 111, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "00", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 112, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "0001", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 113, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "000102", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 114, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "00010203", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 115, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "0001020304", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 116, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "000102030405", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 117, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "00010203040506", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 118, + "comment" : "wrapped key size must be divisible by 8", + "flags" : [ + "WrongDataSize" + ], + "key" : "574957151fc2afe0fa3dc7a9a7da6495398f18ea0d8eed76a51aac96038ad692", + "msg" : "000102030405060708090a0b0c0d0e0f10111213", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 119, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "", + "result" : "invalid" + }, + { + "tcId" : 120, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "9f", + "result" : "invalid" + }, + { + "tcId" : 121, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "dc9e9580", + "result" : "invalid" + }, + { + "tcId" : 122, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "b9b282d138693000", + "result" : "invalid" + }, + { + "tcId" : 123, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "0efc635b2d61e244056b9d4591ca6b", + "result" : "invalid" + }, + { + "tcId" : 124, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "4a305dae087b0d24d62af41831338f33ae", + "result" : "invalid" + }, + { + "tcId" : 125, + "comment" : "invalid size of wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "", + "ct" : "82cb927097cf31ea4affea440b0d8ca6a240b900", + "result" : "invalid" + }, + { + "tcId" : 126, + "comment" : "bytes appended to wrapped key", + "flags" : [ + "InvalidWrappingSize" + ], + "key" : "fe60fc8df7d9f4ebb5416ca4e82182f7e9923a746110fd978e3bd2defc1c10d7", + "msg" : "000102030405060708090a0b0c0d0e0f", + "ct" : "7dfbd7cf6158d75bb5900b3bf1e3871003402a6508b1912800", + "result" : "invalid" + }, + { + "tcId" : 127, + "comment" : "byte 0 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "a417671bc62a23c7a65543092124024df72c048d8db330c7", + "result" : "invalid" + }, + { + "tcId" : 128, + "comment" : "byte 0 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "30a983cd9e69d561acc95c42b252aba4185f8392f2e6c935c8eb105af8082e34", + "result" : "invalid" + }, + { + "tcId" : 129, + "comment" : "byte 0 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "dd78ebd3091c55a5da5b24504200f7fadd1b3ac6ad35f814f733e603c13936245d69d83f262f6b1e", + "result" : "invalid" + }, + { + "tcId" : 130, + "comment" : "byte 1 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "9518d0f99d7a73ed4a502b449c14c285971b0e6177ce0eca", + "result" : "invalid" + }, + { + "tcId" : 131, + "comment" : "byte 1 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "4de9a639b799630b45b49e28dbfc44dabb9843ee588a8cff286b8d5fbd7b32ee", + "result" : "invalid" + }, + { + "tcId" : 132, + "comment" : "byte 1 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "3d8338eae7de322399e1d1b4a3df54326b242b563612ea4b27da22a041d3c80966911bc009911761", + "result" : "invalid" + }, + { + "tcId" : 133, + "comment" : "byte 2 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "f3511f0491bd74ae1defb5307f0e18db864b57b5c404d428", + "result" : "invalid" + }, + { + "tcId" : 134, + "comment" : "byte 2 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "d915b2cdfb769d9d82259dc3d124646bbf972b83efd4c2eae9b9f751073f78d6", + "result" : "invalid" + }, + { + "tcId" : 135, + "comment" : "byte 2 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "d04bf75cadd3b5f099c34b27a91e64a8f2dbcf08e8c5c1c9f07a777eeb805d5d0e8c5c01afc43944", + "result" : "invalid" + }, + { + "tcId" : 136, + "comment" : "byte 3 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "6c03ce779259661c43d41d5d0e45687f874353bba516c73e", + "result" : "invalid" + }, + { + "tcId" : 137, + "comment" : "byte 3 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "117d653f480b69fce564f1fe99572492945189ed5af789ce05a2651baf90bb5e", + "result" : "invalid" + }, + { + "tcId" : 138, + "comment" : "byte 3 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "be0c5d193b61c5137a8fd8a6d7d1ed8f0fa28cec516f544697c12add4f8f4d5cfca65edeb1019974", + "result" : "invalid" + }, + { + "tcId" : 139, + "comment" : "byte 4 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "8df01969a11c87026535bfccf72b1d064c86ecc7e5227157", + "result" : "invalid" + }, + { + "tcId" : 140, + "comment" : "byte 4 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "8226d07a2f919e24ada1081c69a75520be895e3a2bda9b805d9747773ddeaa38", + "result" : "invalid" + }, + { + "tcId" : 141, + "comment" : "byte 4 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "a83ebcbeb2be9d6807b5cfc31c89849d1343dd4eb22e5bfe9e2b2b3790ad8900601f1f5d54fd472f", + "result" : "invalid" + }, + { + "tcId" : 142, + "comment" : "byte 5 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "8ed1cde228d9c8d046dca65c7a27aef2edf8ae90c705d1e9", + "result" : "invalid" + }, + { + "tcId" : 143, + "comment" : "byte 5 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "b0a74345bedf8865348daf45d054b99ce515ea8be136270d1cf71e1cfa7aa4a2", + "result" : "invalid" + }, + { + "tcId" : 144, + "comment" : "byte 5 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "416221485a6cb98ad1342ea9a12926a9a133ead8bd919323fe789bb8f89a4fcaf81e1be54f9d358e", + "result" : "invalid" + }, + { + "tcId" : 145, + "comment" : "byte 6 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "d69b3e34e9de38d44de1998992362a6fa1f696b5acab3f10", + "result" : "invalid" + }, + { + "tcId" : 146, + "comment" : "byte 6 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "a261db77f17f7ec736d1a8be16e5f9ae432fe2a17012e5a6f07c5426a9f0ca59", + "result" : "invalid" + }, + { + "tcId" : 147, + "comment" : "byte 6 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "bf6a53286fac48e7f25d89b7056b27aa917d5b54c0d3171dff369f7249153bf09da5891eb4dc2d88", + "result" : "invalid" + }, + { + "tcId" : 148, + "comment" : "byte 7 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "67865122af3294b8da0588775125cbd6dc19d5e5cab97b6d", + "result" : "invalid" + }, + { + "tcId" : 149, + "comment" : "byte 7 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "c53acb5e096b54548e1385b2ff18eaef68d235c95b0194e74a2383d3a7a530dc", + "result" : "invalid" + }, + { + "tcId" : 150, + "comment" : "byte 7 in IV changed", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "99d517a1321bb633b0d5f3afda2372d3abf68b41d13cbfdffc78f173b88bc4b97efcab2b2904788d", + "result" : "invalid" + }, + { + "tcId" : 151, + "comment" : "IV changed to 0000000000000000", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "9f0fa52363dd55df472d867e6faf5da8eb204a1d6d497030", + "result" : "invalid" + }, + { + "tcId" : 152, + "comment" : "IV changed to 0000000000000000", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "faef482d99ebb180e5bc5e3cf775ba292c2a3b6c44aa4a21ad400906f11af392", + "result" : "invalid" + }, + { + "tcId" : 153, + "comment" : "IV changed to 0000000000000000", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "d92456bc77a268ef71cba76064a1b772d1fee2ae4f0ee3bb932a2adb2b031796b9eadb51753f2868", + "result" : "invalid" + }, + { + "tcId" : 154, + "comment" : "IV changed to RFC 5649 padding", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "c399f999c96a4204325e7f08d6a4de256faf21ec2c007ddf", + "result" : "invalid" + }, + { + "tcId" : 155, + "comment" : "IV changed to RFC 5649 padding", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "73a450b63b07b3aece9d1ae5bf097a3dd3fcf73e3ec2f1bd8fc3b5586cb9bd73", + "result" : "invalid" + }, + { + "tcId" : 156, + "comment" : "IV changed to RFC 5649 padding", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "5bb54630ab8d73a040f0f87e70e263d1aeb2358bcdc0dce6994d0d874452bbd8741b7ec1d59d8298", + "result" : "invalid" + }, + { + "tcId" : 157, + "comment" : "IV changed to 5959595959595959", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "282082264a87dc35ce1cc5b9931b77d80d82fcacc0927f85", + "result" : "invalid" + }, + { + "tcId" : 158, + "comment" : "IV changed to 5959595959595959", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "d34b6ee184d387c9aa4b2d180ae0a89498014e55fe8e416be4f826fcf7d56522", + "result" : "invalid" + }, + { + "tcId" : 159, + "comment" : "IV changed to 5959595959595959", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "4581d6536039db1b23da50c648777e90c82d6128bb92e28b2974bae1141543a19a1592fda1fbd61f", + "result" : "invalid" + }, + { + "tcId" : 160, + "comment" : "IV changed to ffffffffffffffff", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5", + "ct" : "c192c90b83003ca96744498014b6ad6bedda837955269819", + "result" : "invalid" + }, + { + "tcId" : 161, + "comment" : "IV changed to ffffffffffffffff", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1", + "ct" : "2af823d1602803740bfa9040c2c4e769a5b6de919d403cfba9ad360f63af1113", + "result" : "invalid" + }, + { + "tcId" : 162, + "comment" : "IV changed to ffffffffffffffff", + "flags" : [ + "ModifiedIv" + ], + "key" : "4f710eb6b5e28703becfc3dc52fa8bc1dd44a4a6d38a84b4f94e89ac32d987e7", + "msg" : "a828cbda9b5ff0ae374f84fa01d070a5f0a17a0c462be4f1acce34973526908c", + "ct" : "d35bc67e62064c34f48150999ba30ded475d8c75978f45737320f23edaaa7a40d7803fc61add34a4", + "result" : "invalid" + }, + { + "tcId" : 163, + "comment" : "RFC 3394", + "flags" : [ + "Normal" + ], + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "msg" : "00112233445566778899aabbccddeeff", + "ct" : "64e8c3f9ce0f5ba263e9777905818a2a93c8191e7d6e8ae7", + "result" : "valid" + }, + { + "tcId" : 164, + "comment" : "RFC 3394", + "flags" : [ + "Normal" + ], + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "msg" : "00112233445566778899aabbccddeeff0001020304050607", + "ct" : "a8f9bc1612c68b3ff6e6f4fbe30e71e4769c8b80a32cb8958cd5d17d6b254da1", + "result" : "valid" + }, + { + "tcId" : 165, + "comment" : "RFC 3394", + "flags" : [ + "Normal" + ], + "key" : "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", + "msg" : "00112233445566778899aabbccddeeff000102030405060708090a0b0c0d0e0f", + "ct" : "28c9f404c4b810f4cbccb35cfb87f8263f5786e2d80ed326cbc7f0e71a99f43bfb988b9b7a02dd21", + "result" : "valid" + } + ] + } + ] +}