mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-04 04:37:39 -04:00
crypto: testmgr - Add test vectors for authenc(hmac(md5),rfc3686(ctr(aes)))
Test vectors were generated starting from existing RFC3686(CTR(AES)) test vectors and adding HMAC(MD5) computed with software implementation. Then, the results were double-checked on Mediatek MT7986 (safexcel). Platform pass self-tests. Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
6ac142bf26
commit
d0c0a414cc
@@ -4100,6 +4100,13 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||
.suite = {
|
||||
.aead = __VECS(hmac_md5_ecb_cipher_null_tv_template)
|
||||
}
|
||||
}, {
|
||||
.alg = "authenc(hmac(md5),rfc3686(ctr(aes)))",
|
||||
.generic_driver = "authenc(hmac-md5-lib,rfc3686(ctr(aes-lib)))",
|
||||
.test = alg_test_aead,
|
||||
.suite = {
|
||||
.aead = __VECS(hmac_md5_aes_ctr_rfc3686_tv_temp)
|
||||
}
|
||||
}, {
|
||||
.alg = "authenc(hmac(sha1),cbc(aes))",
|
||||
.generic_driver = "authenc(hmac-sha1-lib,cbc(aes-lib))",
|
||||
|
||||
207
crypto/testmgr.h
207
crypto/testmgr.h
@@ -17752,6 +17752,213 @@ static const struct aead_testvec hmac_sha512_des_cbc_tv_temp[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct aead_testvec hmac_md5_aes_ctr_rfc3686_tv_temp[] = {
|
||||
{ /* RFC 3686 Case 1 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x14" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\xae\x68\x52\xf8\x12\x10\x67\xcc"
|
||||
"\x4b\xf7\xa5\x76\x55\x77\xf3\x9e"
|
||||
"\x00\x00\x00\x30",
|
||||
.klen = 8 + 16 + 20,
|
||||
.iv = "\x00\x00\x00\x00\x00\x00\x00\x00",
|
||||
.assoc = "\x00\x00\x00\x00\x00\x00\x00\x00",
|
||||
.alen = 8,
|
||||
.ptext = "Single block msg",
|
||||
.plen = 16,
|
||||
.ctext = "\xe4\x09\x5d\x4f\xb7\xa7\xb3\x79"
|
||||
"\x2d\x61\x75\xa3\x26\x13\x11\xb8"
|
||||
"\xdd\x5f\xea\x13\x2a\xf2\xb0\xf1"
|
||||
"\x91\x79\x46\x40\x62\x6c\x87\x5b",
|
||||
.clen = 16 + 16,
|
||||
}, { /* RFC 3686 Case 2 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x14" /* enc key length */
|
||||
"\x20\x21\x22\x23\x24\x25\x26\x27"
|
||||
"\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
|
||||
"\x7e\x24\x06\x78\x17\xfa\xe0\xd7"
|
||||
"\x43\xd6\xce\x1f\x32\x53\x91\x63"
|
||||
"\x00\x6c\xb6\xdb",
|
||||
.klen = 8 + 16 + 20,
|
||||
.iv = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
|
||||
.assoc = "\xc0\x54\x3b\x59\xda\x48\xd9\x0b",
|
||||
.alen = 8,
|
||||
.ptext = "\x00\x01\x02\x03\x04\x05\x06\x07"
|
||||
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17"
|
||||
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
|
||||
.plen = 32,
|
||||
.ctext = "\x51\x04\xa1\x06\x16\x8a\x72\xd9"
|
||||
"\x79\x0d\x41\xee\x8e\xda\xd3\x88"
|
||||
"\xeb\x2e\x1e\xfc\x46\xda\x57\xc8"
|
||||
"\xfc\xe6\x30\xdf\x91\x41\xbe\x28"
|
||||
"\x03\x39\x23\xcd\x22\x5f\x1b\x8b"
|
||||
"\x93\x70\xbc\x45\xf3\xba\xde\x2e",
|
||||
.clen = 32 + 16,
|
||||
}, { /* RFC 3686 Case 3 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x14" /* enc key length */
|
||||
"\x11\x22\x33\x44\x55\x66\x77\x88"
|
||||
"\x99\xaa\xbb\xcc\xdd\xee\xff\x11"
|
||||
"\x76\x91\xbe\x03\x5e\x50\x20\xa8"
|
||||
"\xac\x6e\x61\x85\x29\xf9\xa0\xdc"
|
||||
"\x00\xe0\x01\x7b",
|
||||
.klen = 8 + 16 + 20,
|
||||
.iv = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
|
||||
.assoc = "\x27\x77\x7f\x3f\x4a\x17\x86\xf0",
|
||||
.alen = 8,
|
||||
.ptext = "\x00\x01\x02\x03\x04\x05\x06\x07"
|
||||
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17"
|
||||
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
|
||||
"\x20\x21\x22\x23",
|
||||
.plen = 36,
|
||||
.ctext = "\xc1\xcf\x48\xa8\x9f\x2f\xfd\xd9"
|
||||
"\xcf\x46\x52\xe9\xef\xdb\x72\xd7"
|
||||
"\x45\x40\xa4\x2b\xde\x6d\x78\x36"
|
||||
"\xd5\x9a\x5c\xea\xae\xf3\x10\x53"
|
||||
"\x25\xb2\x07\x2f"
|
||||
"\xb4\x40\x0c\x7b\x4c\x55\x8a\x4b"
|
||||
"\x04\xf7\x48\x9e\x0f\x9a\xae\x73",
|
||||
.clen = 36 + 16,
|
||||
}, { /* RFC 3686 Case 4 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x1c" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x16\xaf\x5b\x14\x5f\xc9\xf5\x79"
|
||||
"\xc1\x75\xf9\x3e\x3b\xfb\x0e\xed"
|
||||
"\x86\x3d\x06\xcc\xfd\xb7\x85\x15"
|
||||
"\x00\x00\x00\x48",
|
||||
.klen = 8 + 16 + 28,
|
||||
.iv = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
|
||||
.assoc = "\x36\x73\x3c\x14\x7d\x6d\x93\xcb",
|
||||
.alen = 8,
|
||||
.ptext = "Single block msg",
|
||||
.plen = 16,
|
||||
.ctext = "\x4b\x55\x38\x4f\xe2\x59\xc9\xc8"
|
||||
"\x4e\x79\x35\xa0\x03\xcb\xe9\x28"
|
||||
"\xc4\x5d\xa1\x16\x6c\x2d\xa5\x43"
|
||||
"\x60\x7b\x58\x98\x11\x9b\x50\x06",
|
||||
.clen = 16 + 16,
|
||||
}, { /* RFC 3686 Case 5 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x1c" /* enc key length */
|
||||
"\x20\x21\x22\x23\x24\x25\x26\x27"
|
||||
"\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
|
||||
"\x7c\x5c\xb2\x40\x1b\x3d\xc3\x3c"
|
||||
"\x19\xe7\x34\x08\x19\xe0\xf6\x9c"
|
||||
"\x67\x8c\x3d\xb8\xe6\xf6\xa9\x1a"
|
||||
"\x00\x96\xb0\x3b",
|
||||
.klen = 8 + 16 + 28,
|
||||
.iv = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
|
||||
.assoc = "\x02\x0c\x6e\xad\xc2\xcb\x50\x0d",
|
||||
.alen = 8,
|
||||
.ptext = "\x00\x01\x02\x03\x04\x05\x06\x07"
|
||||
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17"
|
||||
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
|
||||
.plen = 32,
|
||||
.ctext = "\x45\x32\x43\xfc\x60\x9b\x23\x32"
|
||||
"\x7e\xdf\xaa\xfa\x71\x31\xcd\x9f"
|
||||
"\x84\x90\x70\x1c\x5a\xd4\xa7\x9c"
|
||||
"\xfc\x1f\xe0\xff\x42\xf4\xfb\x00"
|
||||
"\xc5\xec\x47\x33\xae\x05\x28\x49"
|
||||
"\xd5\x2b\x08\xad\x10\x98\x24\x01",
|
||||
.clen = 32 + 16,
|
||||
}, { /* RFC 3686 Case 7 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x24" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x77\x6b\xef\xf2\x85\x1d\xb0\x6f"
|
||||
"\x4c\x8a\x05\x42\xc8\x69\x6f\x6c"
|
||||
"\x6a\x81\xaf\x1e\xec\x96\xb4\xd3"
|
||||
"\x7f\xc1\xd6\x89\xe6\xc1\xc1\x04"
|
||||
"\x00\x00\x00\x60",
|
||||
.klen = 8 + 16 + 36,
|
||||
.iv = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
|
||||
.assoc = "\xdb\x56\x72\xc9\x7a\xa8\xf0\xb2",
|
||||
.alen = 8,
|
||||
.ptext = "Single block msg",
|
||||
.plen = 16,
|
||||
.ctext = "\x14\x5a\xd0\x1d\xbf\x82\x4e\xc7"
|
||||
"\x56\x08\x63\xdc\x71\xe3\xe0\xc0"
|
||||
"\xc6\x26\xb2\x27\x0d\x21\xd4\x40"
|
||||
"\x6c\x4f\x53\xea\x19\x75\xda\x8e",
|
||||
.clen = 16 + 16,
|
||||
}, { /* RFC 3686 Case 8 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
.key = "\x08\x00" /* rta length */
|
||||
"\x01\x00" /* rta type */
|
||||
#else
|
||||
.key = "\x00\x08" /* rta length */
|
||||
"\x00\x01" /* rta type */
|
||||
#endif
|
||||
"\x00\x00\x00\x24" /* enc key length */
|
||||
"\x20\x21\x22\x23\x24\x25\x26\x27"
|
||||
"\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f"
|
||||
"\xf6\xd6\x6d\x6b\xd5\x2d\x59\xbb"
|
||||
"\x07\x96\x36\x58\x79\xef\xf8\x86"
|
||||
"\xc6\x6d\xd5\x1a\x5b\x6a\x99\x74"
|
||||
"\x4b\x50\x59\x0c\x87\xa2\x38\x84"
|
||||
"\x00\xfa\xac\x24",
|
||||
.klen = 8 + 16 + 36,
|
||||
.iv = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
|
||||
.assoc = "\xc1\x58\x5e\xf1\x5a\x43\xd8\x75",
|
||||
.alen = 8,
|
||||
.ptext = "\x00\x01\x02\x03\x04\x05\x06\x07"
|
||||
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
|
||||
"\x10\x11\x12\x13\x14\x15\x16\x17"
|
||||
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
|
||||
.plen = 32,
|
||||
.ctext = "\xf0\x5e\x23\x1b\x38\x94\x61\x2c"
|
||||
"\x49\xee\x00\x0b\x80\x4e\xb2\xa9"
|
||||
"\xb8\x30\x6b\x50\x8f\x83\x9d\x6a"
|
||||
"\x55\x30\x83\x1d\x93\x44\xaf\x1c"
|
||||
"\x8c\x4d\x2a\x8d\x23\x47\x59\x6f"
|
||||
"\x1e\x74\x62\x39\xed\x14\x50\x6c",
|
||||
.clen = 32 + 16,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct aead_testvec hmac_md5_des3_ede_cbc_tv_temp[] = {
|
||||
{ /*Generated with cryptopp*/
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
|
||||
Reference in New Issue
Block a user