crypto: rfc4106 - Extending the RC4106 AES-GCM test vectors
Updated RFC4106 AES-GCM testing. Some test vectors were taken from http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/ gcm/gcm-test-vectors.tar.gz Signed-off-by: Adrian Hoban <adrian.hoban@intel.com> Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Signed-off-by: Gabriele Paoloni <gabriele.paoloni@intel.com> Signed-off-by: Aidan O'Mahony <aidan.o.mahony@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Родитель
0bd82f5f63
Коммит
69435b94d0
|
@ -8,6 +8,13 @@
|
||||||
* Copyright (c) 2002 Jean-Francois Dive <jef@linuxbe.org>
|
* Copyright (c) 2002 Jean-Francois Dive <jef@linuxbe.org>
|
||||||
* Copyright (c) 2007 Nokia Siemens Networks
|
* Copyright (c) 2007 Nokia Siemens Networks
|
||||||
*
|
*
|
||||||
|
* Updated RFC4106 AES-GCM testing.
|
||||||
|
* Authors: Aidan O'Mahony (aidan.o.mahony@intel.com)
|
||||||
|
* Adrian Hoban <adrian.hoban@intel.com>
|
||||||
|
* Gabriele Paoloni <gabriele.paoloni@intel.com>
|
||||||
|
* Tadeusz Struk (tadeusz.struk@intel.com)
|
||||||
|
* Copyright (c) 2010, Intel Corporation.
|
||||||
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the Free
|
* under the terms of the GNU General Public License as published by the Free
|
||||||
* Software Foundation; either version 2 of the License, or (at your option)
|
* Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
@ -980,6 +987,10 @@ static int do_test(int m)
|
||||||
ret += tcrypt_test("ansi_cprng");
|
ret += tcrypt_test("ansi_cprng");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 151:
|
||||||
|
ret += tcrypt_test("rfc4106(gcm(aes))");
|
||||||
|
break;
|
||||||
|
|
||||||
case 200:
|
case 200:
|
||||||
test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
|
test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
|
||||||
speed_template_16_24_32);
|
speed_template_16_24_32);
|
||||||
|
|
|
@ -6,6 +6,13 @@
|
||||||
* Copyright (c) 2007 Nokia Siemens Networks
|
* Copyright (c) 2007 Nokia Siemens Networks
|
||||||
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
*
|
*
|
||||||
|
* Updated RFC4106 AES-GCM testing.
|
||||||
|
* Authors: Aidan O'Mahony (aidan.o.mahony@intel.com)
|
||||||
|
* Adrian Hoban <adrian.hoban@intel.com>
|
||||||
|
* Gabriele Paoloni <gabriele.paoloni@intel.com>
|
||||||
|
* Tadeusz Struk (tadeusz.struk@intel.com)
|
||||||
|
* Copyright (c) 2010, Intel Corporation.
|
||||||
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the Free
|
* under the terms of the GNU General Public License as published by the Free
|
||||||
* Software Foundation; either version 2 of the License, or (at your option)
|
* Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
@ -2242,6 +2249,23 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
.alg = "rfc4106(gcm(aes))",
|
||||||
|
.test = alg_test_aead,
|
||||||
|
.suite = {
|
||||||
|
.aead = {
|
||||||
|
.enc = {
|
||||||
|
.vecs = aes_gcm_rfc4106_enc_tv_template,
|
||||||
|
.count = AES_GCM_4106_ENC_TEST_VECTORS
|
||||||
|
},
|
||||||
|
.dec = {
|
||||||
|
.vecs = aes_gcm_rfc4106_dec_tv_template,
|
||||||
|
.count = AES_GCM_4106_DEC_TEST_VECTORS
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
|
||||||
|
|
||||||
.alg = "rfc4309(ccm(aes))",
|
.alg = "rfc4309(ccm(aes))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
|
|
361
crypto/testmgr.h
361
crypto/testmgr.h
|
@ -6,6 +6,15 @@
|
||||||
* Copyright (c) 2007 Nokia Siemens Networks
|
* Copyright (c) 2007 Nokia Siemens Networks
|
||||||
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
* Copyright (c) 2008 Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
*
|
*
|
||||||
|
* Updated RFC4106 AES-GCM testing. Some test vectors were taken from
|
||||||
|
* http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/
|
||||||
|
* gcm/gcm-test-vectors.tar.gz
|
||||||
|
* Authors: Aidan O'Mahony (aidan.o.mahony@intel.com)
|
||||||
|
* Adrian Hoban <adrian.hoban@intel.com>
|
||||||
|
* Gabriele Paoloni <gabriele.paoloni@intel.com>
|
||||||
|
* Tadeusz Struk (tadeusz.struk@intel.com)
|
||||||
|
* Copyright (c) 2010, Intel Corporation.
|
||||||
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms of the GNU General Public License as published by the Free
|
* under the terms of the GNU General Public License as published by the Free
|
||||||
* Software Foundation; either version 2 of the License, or (at your option)
|
* Software Foundation; either version 2 of the License, or (at your option)
|
||||||
|
@ -2947,6 +2956,8 @@ static struct cipher_testvec cast6_dec_tv_template[] = {
|
||||||
#define AES_CTR_3686_DEC_TEST_VECTORS 6
|
#define AES_CTR_3686_DEC_TEST_VECTORS 6
|
||||||
#define AES_GCM_ENC_TEST_VECTORS 9
|
#define AES_GCM_ENC_TEST_VECTORS 9
|
||||||
#define AES_GCM_DEC_TEST_VECTORS 8
|
#define AES_GCM_DEC_TEST_VECTORS 8
|
||||||
|
#define AES_GCM_4106_ENC_TEST_VECTORS 7
|
||||||
|
#define AES_GCM_4106_DEC_TEST_VECTORS 7
|
||||||
#define AES_CCM_ENC_TEST_VECTORS 7
|
#define AES_CCM_ENC_TEST_VECTORS 7
|
||||||
#define AES_CCM_DEC_TEST_VECTORS 7
|
#define AES_CCM_DEC_TEST_VECTORS 7
|
||||||
#define AES_CCM_4309_ENC_TEST_VECTORS 7
|
#define AES_CCM_4309_ENC_TEST_VECTORS 7
|
||||||
|
@ -5829,6 +5840,356 @@ static struct aead_testvec aes_gcm_dec_tv_template[] = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct aead_testvec aes_gcm_rfc4106_enc_tv_template[] = {
|
||||||
|
{ /* Generated using Crypto++ */
|
||||||
|
.key = zeroed_string,
|
||||||
|
.klen = 20,
|
||||||
|
.iv = zeroed_string,
|
||||||
|
.input = zeroed_string,
|
||||||
|
.ilen = 16,
|
||||||
|
.assoc = zeroed_string,
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x03\x88\xDA\xCE\x60\xB6\xA3\x92"
|
||||||
|
"\xF3\x28\xC2\xB9\x71\xB2\xFE\x78"
|
||||||
|
"\x97\xFE\x4C\x23\x37\x42\x01\xE0"
|
||||||
|
"\x81\x9F\x8D\xC5\xD7\x41\xA0\x1B",
|
||||||
|
.rlen = 32,
|
||||||
|
},{
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x00\x00\x00\x00\x00\x01"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = zeroed_string,
|
||||||
|
.ilen = 16,
|
||||||
|
.assoc = zeroed_string,
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\xC0\x0D\x8B\x42\x0F\x8F\x34\x18"
|
||||||
|
"\x88\xB1\xC5\xBC\xC5\xB6\xD6\x28"
|
||||||
|
"\x6A\x9D\xDF\x11\x5E\xFE\x5E\x9D"
|
||||||
|
"\x2F\x70\x44\x92\xF7\xF2\xE3\xEF",
|
||||||
|
.rlen = 32,
|
||||||
|
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = zeroed_string,
|
||||||
|
.input = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.ilen = 16,
|
||||||
|
.assoc = zeroed_string,
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x4B\xB1\xB5\xE3\x25\x71\x70\xDE"
|
||||||
|
"\x7F\xC9\x9C\xA5\x14\x19\xF2\xAC"
|
||||||
|
"\x0B\x8F\x88\x69\x17\xE6\xB4\x3C"
|
||||||
|
"\xB1\x68\xFD\x14\x52\x64\x61\xB2",
|
||||||
|
.rlen = 32,
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = zeroed_string,
|
||||||
|
.input = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.ilen = 16,
|
||||||
|
.assoc = "\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x4B\xB1\xB5\xE3\x25\x71\x70\xDE"
|
||||||
|
"\x7F\xC9\x9C\xA5\x14\x19\xF2\xAC"
|
||||||
|
"\x90\x92\xB7\xE3\x5F\xA3\x9A\x63"
|
||||||
|
"\x7E\xD7\x1F\xD8\xD3\x7C\x4B\xF5",
|
||||||
|
.rlen = 32,
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x00\x00\x00\x00\x00\x01"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.ilen = 16,
|
||||||
|
.assoc = "\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\xC1\x0C\x8A\x43\x0E\x8E\x35\x19"
|
||||||
|
"\x89\xB0\xC4\xBD\xC4\xB7\xD7\x29"
|
||||||
|
"\x64\x50\xF9\x32\x13\xFB\x74\x61"
|
||||||
|
"\xF4\xED\x52\xD3\xC5\x10\x55\x3C",
|
||||||
|
.rlen = 32,
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x00\x00\x00\x00\x00\x01"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.ilen = 64,
|
||||||
|
.assoc = "\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\xC1\x0C\x8A\x43\x0E\x8E\x35\x19"
|
||||||
|
"\x89\xB0\xC4\xBD\xC4\xB7\xD7\x29"
|
||||||
|
"\x98\x14\xA1\x42\x37\x80\xFD\x90"
|
||||||
|
"\x68\x12\x01\xA8\x91\x89\xB9\x83"
|
||||||
|
"\x5B\x11\x77\x12\x9B\xFF\x24\x89"
|
||||||
|
"\x94\x5F\x18\x12\xBA\x27\x09\x39"
|
||||||
|
"\x99\x96\x76\x42\x15\x1C\xCD\xCB"
|
||||||
|
"\xDC\xD3\xDA\x65\x73\xAF\x80\xCD"
|
||||||
|
"\xD2\xB6\xC2\x4A\x76\xC2\x92\x85"
|
||||||
|
"\xBD\xCF\x62\x98\x58\x14\xE5\xBD",
|
||||||
|
.rlen = 80,
|
||||||
|
}, {
|
||||||
|
.key = "\x00\x01\x02\x03\x04\x05\x06\x07"
|
||||||
|
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x45\x67\x89\xab\xcd\xef"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff",
|
||||||
|
.ilen = 192,
|
||||||
|
.assoc = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||||
|
"\xaa\xaa\xaa\xaa",
|
||||||
|
.alen = 12,
|
||||||
|
.result = "\xC1\x76\x33\x85\xE2\x9B\x5F\xDE"
|
||||||
|
"\xDE\x89\x3D\x42\xE7\xC9\x69\x8A"
|
||||||
|
"\x44\x6D\xC3\x88\x46\x2E\xC2\x01"
|
||||||
|
"\x5E\xF6\x0C\x39\xF0\xC4\xA5\x82"
|
||||||
|
"\xCD\xE8\x31\xCC\x0A\x4C\xE4\x44"
|
||||||
|
"\x41\xA9\x82\x6F\x22\xA1\x23\x1A"
|
||||||
|
"\xA8\xE3\x16\xFD\x31\x5C\x27\x31"
|
||||||
|
"\xF1\x7F\x01\x63\xA3\xAF\x70\xA1"
|
||||||
|
"\xCF\x07\x57\x41\x67\xD0\xC4\x42"
|
||||||
|
"\xDB\x18\xC6\x4C\x4C\xE0\x3D\x9F"
|
||||||
|
"\x05\x07\xFB\x13\x7D\x4A\xCA\x5B"
|
||||||
|
"\xF0\xBF\x64\x7E\x05\xB1\x72\xEE"
|
||||||
|
"\x7C\x3B\xD4\xCD\x14\x03\xB2\x2C"
|
||||||
|
"\xD3\xA9\xEE\xFA\x17\xFC\x9C\xDF"
|
||||||
|
"\xC7\x75\x40\xFF\xAE\xAD\x1E\x59"
|
||||||
|
"\x2F\x30\x24\xFB\xAD\x6B\x10\xFA"
|
||||||
|
"\x6C\x9F\x5B\xE7\x25\xD5\xD0\x25"
|
||||||
|
"\xAC\x4A\x4B\xDA\xFC\x7A\x85\x1B"
|
||||||
|
"\x7E\x13\x06\x82\x08\x17\xA4\x35"
|
||||||
|
"\xEC\xC5\x8D\x63\x96\x81\x0A\x8F"
|
||||||
|
"\xA3\x05\x38\x95\x20\x1A\x47\x04"
|
||||||
|
"\x6F\x6D\xDA\x8F\xEF\xC1\x76\x35"
|
||||||
|
"\x6B\xC7\x4D\x0F\x94\x12\xCA\x3E"
|
||||||
|
"\x2E\xD5\x03\x2E\x86\x7E\xAA\x3B"
|
||||||
|
"\x37\x08\x1C\xCF\xBA\x5D\x71\x46"
|
||||||
|
"\x80\x72\xB0\x4C\x82\x0D\x60\x3C",
|
||||||
|
.rlen = 208,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct aead_testvec aes_gcm_rfc4106_dec_tv_template[] = {
|
||||||
|
{ /* Generated using Crypto++ */
|
||||||
|
.key = zeroed_string,
|
||||||
|
.klen = 20,
|
||||||
|
.iv = zeroed_string,
|
||||||
|
.input = "\x03\x88\xDA\xCE\x60\xB6\xA3\x92"
|
||||||
|
"\xF3\x28\xC2\xB9\x71\xB2\xFE\x78"
|
||||||
|
"\x97\xFE\x4C\x23\x37\x42\x01\xE0"
|
||||||
|
"\x81\x9F\x8D\xC5\xD7\x41\xA0\x1B",
|
||||||
|
.ilen = 32,
|
||||||
|
.assoc = zeroed_string,
|
||||||
|
.alen = 8,
|
||||||
|
.result = zeroed_string,
|
||||||
|
.rlen = 16,
|
||||||
|
|
||||||
|
},{
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x00\x00\x00\x00\x00\x01"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\xC0\x0D\x8B\x42\x0F\x8F\x34\x18"
|
||||||
|
"\x88\xB1\xC5\xBC\xC5\xB6\xD6\x28"
|
||||||
|
"\x6A\x9D\xDF\x11\x5E\xFE\x5E\x9D"
|
||||||
|
"\x2F\x70\x44\x92\xF7\xF2\xE3\xEF",
|
||||||
|
.ilen = 32,
|
||||||
|
.assoc = zeroed_string,
|
||||||
|
.alen = 8,
|
||||||
|
.result = zeroed_string,
|
||||||
|
.rlen = 16,
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = zeroed_string,
|
||||||
|
.input = "\x4B\xB1\xB5\xE3\x25\x71\x70\xDE"
|
||||||
|
"\x7F\xC9\x9C\xA5\x14\x19\xF2\xAC"
|
||||||
|
"\x0B\x8F\x88\x69\x17\xE6\xB4\x3C"
|
||||||
|
"\xB1\x68\xFD\x14\x52\x64\x61\xB2",
|
||||||
|
.ilen = 32,
|
||||||
|
.assoc = zeroed_string,
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.rlen = 16,
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = zeroed_string,
|
||||||
|
.input = "\x4B\xB1\xB5\xE3\x25\x71\x70\xDE"
|
||||||
|
"\x7F\xC9\x9C\xA5\x14\x19\xF2\xAC"
|
||||||
|
"\x90\x92\xB7\xE3\x5F\xA3\x9A\x63"
|
||||||
|
"\x7E\xD7\x1F\xD8\xD3\x7C\x4B\xF5",
|
||||||
|
.ilen = 32,
|
||||||
|
.assoc = "\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.rlen = 16,
|
||||||
|
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x00\x00\x00\x00\x00\x01"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\xC1\x0C\x8A\x43\x0E\x8E\x35\x19"
|
||||||
|
"\x89\xB0\xC4\xBD\xC4\xB7\xD7\x29"
|
||||||
|
"\x64\x50\xF9\x32\x13\xFB\x74\x61"
|
||||||
|
"\xF4\xED\x52\xD3\xC5\x10\x55\x3C",
|
||||||
|
.ilen = 32,
|
||||||
|
.assoc = "\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.rlen = 16,
|
||||||
|
}, {
|
||||||
|
.key = "\xfe\xff\xe9\x92\x86\x65\x73\x1c"
|
||||||
|
"\x6d\x6a\x8f\x94\x67\x30\x83\x08"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x00\x00\x00\x00\x00\x01"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\xC1\x0C\x8A\x43\x0E\x8E\x35\x19"
|
||||||
|
"\x89\xB0\xC4\xBD\xC4\xB7\xD7\x29"
|
||||||
|
"\x98\x14\xA1\x42\x37\x80\xFD\x90"
|
||||||
|
"\x68\x12\x01\xA8\x91\x89\xB9\x83"
|
||||||
|
"\x5B\x11\x77\x12\x9B\xFF\x24\x89"
|
||||||
|
"\x94\x5F\x18\x12\xBA\x27\x09\x39"
|
||||||
|
"\x99\x96\x76\x42\x15\x1C\xCD\xCB"
|
||||||
|
"\xDC\xD3\xDA\x65\x73\xAF\x80\xCD"
|
||||||
|
"\xD2\xB6\xC2\x4A\x76\xC2\x92\x85"
|
||||||
|
"\xBD\xCF\x62\x98\x58\x14\xE5\xBD",
|
||||||
|
.ilen = 80,
|
||||||
|
.assoc = "\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.alen = 8,
|
||||||
|
.result = "\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01"
|
||||||
|
"\x01\x01\x01\x01\x01\x01\x01\x01",
|
||||||
|
.rlen = 64,
|
||||||
|
}, {
|
||||||
|
.key = "\x00\x01\x02\x03\x04\x05\x06\x07"
|
||||||
|
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.klen = 20,
|
||||||
|
.iv = "\x00\x00\x45\x67\x89\xab\xcd\xef"
|
||||||
|
"\x00\x00\x00\x00",
|
||||||
|
.input = "\xC1\x76\x33\x85\xE2\x9B\x5F\xDE"
|
||||||
|
"\xDE\x89\x3D\x42\xE7\xC9\x69\x8A"
|
||||||
|
"\x44\x6D\xC3\x88\x46\x2E\xC2\x01"
|
||||||
|
"\x5E\xF6\x0C\x39\xF0\xC4\xA5\x82"
|
||||||
|
"\xCD\xE8\x31\xCC\x0A\x4C\xE4\x44"
|
||||||
|
"\x41\xA9\x82\x6F\x22\xA1\x23\x1A"
|
||||||
|
"\xA8\xE3\x16\xFD\x31\x5C\x27\x31"
|
||||||
|
"\xF1\x7F\x01\x63\xA3\xAF\x70\xA1"
|
||||||
|
"\xCF\x07\x57\x41\x67\xD0\xC4\x42"
|
||||||
|
"\xDB\x18\xC6\x4C\x4C\xE0\x3D\x9F"
|
||||||
|
"\x05\x07\xFB\x13\x7D\x4A\xCA\x5B"
|
||||||
|
"\xF0\xBF\x64\x7E\x05\xB1\x72\xEE"
|
||||||
|
"\x7C\x3B\xD4\xCD\x14\x03\xB2\x2C"
|
||||||
|
"\xD3\xA9\xEE\xFA\x17\xFC\x9C\xDF"
|
||||||
|
"\xC7\x75\x40\xFF\xAE\xAD\x1E\x59"
|
||||||
|
"\x2F\x30\x24\xFB\xAD\x6B\x10\xFA"
|
||||||
|
"\x6C\x9F\x5B\xE7\x25\xD5\xD0\x25"
|
||||||
|
"\xAC\x4A\x4B\xDA\xFC\x7A\x85\x1B"
|
||||||
|
"\x7E\x13\x06\x82\x08\x17\xA4\x35"
|
||||||
|
"\xEC\xC5\x8D\x63\x96\x81\x0A\x8F"
|
||||||
|
"\xA3\x05\x38\x95\x20\x1A\x47\x04"
|
||||||
|
"\x6F\x6D\xDA\x8F\xEF\xC1\x76\x35"
|
||||||
|
"\x6B\xC7\x4D\x0F\x94\x12\xCA\x3E"
|
||||||
|
"\x2E\xD5\x03\x2E\x86\x7E\xAA\x3B"
|
||||||
|
"\x37\x08\x1C\xCF\xBA\x5D\x71\x46"
|
||||||
|
"\x80\x72\xB0\x4C\x82\x0D\x60\x3C",
|
||||||
|
.ilen = 208,
|
||||||
|
.assoc = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||||
|
"\xaa\xaa\xaa\xaa",
|
||||||
|
.alen = 12,
|
||||||
|
.result = "\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff"
|
||||||
|
"\xff\xff\xff\xff\xff\xff\xff\xff",
|
||||||
|
.rlen = 192,
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
static struct aead_testvec aes_ccm_enc_tv_template[] = {
|
static struct aead_testvec aes_ccm_enc_tv_template[] = {
|
||||||
{ /* From RFC 3610 */
|
{ /* From RFC 3610 */
|
||||||
.key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
|
.key = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче