crypto: testmgr - add aead null encryption test vectors
Add test vectors for aead with null encryption and md5, respectively sha1 authentication. Input data is taken from test vectors listed in RFC2410. Signed-off-by: Horia Geanta <horia.geanta@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Родитель
72567258f0
Коммит
bca4feb0d4
|
@ -1511,6 +1511,14 @@ static int do_test(int m)
|
|||
ret += tcrypt_test("authenc(hmac(sha1),cbc(aes))");
|
||||
break;
|
||||
|
||||
case 156:
|
||||
ret += tcrypt_test("authenc(hmac(md5),ecb(cipher_null))");
|
||||
break;
|
||||
|
||||
case 157:
|
||||
ret += tcrypt_test("authenc(hmac(sha1),ecb(cipher_null))");
|
||||
break;
|
||||
|
||||
case 200:
|
||||
test_cipher_speed("ecb(aes)", ENCRYPT, sec, NULL, 0,
|
||||
speed_template_16_24_32);
|
||||
|
|
|
@ -1808,6 +1808,22 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|||
.count = ANSI_CPRNG_AES_TEST_VECTORS
|
||||
}
|
||||
}
|
||||
}, {
|
||||
.alg = "authenc(hmac(md5),ecb(cipher_null))",
|
||||
.test = alg_test_aead,
|
||||
.fips_allowed = 1,
|
||||
.suite = {
|
||||
.aead = {
|
||||
.enc = {
|
||||
.vecs = hmac_md5_ecb_cipher_null_enc_tv_template,
|
||||
.count = HMAC_MD5_ECB_CIPHER_NULL_ENC_TEST_VECTORS
|
||||
},
|
||||
.dec = {
|
||||
.vecs = hmac_md5_ecb_cipher_null_dec_tv_template,
|
||||
.count = HMAC_MD5_ECB_CIPHER_NULL_DEC_TEST_VECTORS
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
.alg = "authenc(hmac(sha1),cbc(aes))",
|
||||
.test = alg_test_aead,
|
||||
|
@ -1820,6 +1836,22 @@ static const struct alg_test_desc alg_test_descs[] = {
|
|||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
.alg = "authenc(hmac(sha1),ecb(cipher_null))",
|
||||
.test = alg_test_aead,
|
||||
.fips_allowed = 1,
|
||||
.suite = {
|
||||
.aead = {
|
||||
.enc = {
|
||||
.vecs = hmac_sha1_ecb_cipher_null_enc_tv_template,
|
||||
.count = HMAC_SHA1_ECB_CIPHER_NULL_ENC_TEST_VECTORS
|
||||
},
|
||||
.dec = {
|
||||
.vecs = hmac_sha1_ecb_cipher_null_dec_tv_template,
|
||||
.count = HMAC_SHA1_ECB_CIPHER_NULL_DEC_TEST_VECTORS
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
.alg = "authenc(hmac(sha256),cbc(aes))",
|
||||
.test = alg_test_aead,
|
||||
|
|
180
crypto/testmgr.h
180
crypto/testmgr.h
|
@ -12821,6 +12821,10 @@ static struct cipher_testvec cast6_xts_dec_tv_template[] = {
|
|||
#define AES_DEC_TEST_VECTORS 4
|
||||
#define AES_CBC_ENC_TEST_VECTORS 5
|
||||
#define AES_CBC_DEC_TEST_VECTORS 5
|
||||
#define HMAC_MD5_ECB_CIPHER_NULL_ENC_TEST_VECTORS 2
|
||||
#define HMAC_MD5_ECB_CIPHER_NULL_DEC_TEST_VECTORS 2
|
||||
#define HMAC_SHA1_ECB_CIPHER_NULL_ENC_TEST_VECTORS 2
|
||||
#define HMAC_SHA1_ECB_CIPHER_NULL_DEC_TEST_VECTORS 2
|
||||
#define HMAC_SHA1_AES_CBC_ENC_TEST_VECTORS 7
|
||||
#define HMAC_SHA256_AES_CBC_ENC_TEST_VECTORS 7
|
||||
#define HMAC_SHA512_AES_CBC_ENC_TEST_VECTORS 7
|
||||
|
@ -13627,6 +13631,90 @@ static struct cipher_testvec aes_cbc_dec_tv_template[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct aead_testvec hmac_md5_ecb_cipher_null_enc_tv_template[] = {
|
||||
{ /* Input data from RFC 2410 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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00",
|
||||
.klen = 8 + 16 + 0,
|
||||
.iv = "",
|
||||
.input = "\x01\x23\x45\x67\x89\xab\xcd\xef",
|
||||
.ilen = 8,
|
||||
.result = "\x01\x23\x45\x67\x89\xab\xcd\xef"
|
||||
"\xaa\x42\xfe\x43\x8d\xea\xa3\x5a"
|
||||
"\xb9\x3d\x9f\xb1\xa3\x8e\x9b\xae",
|
||||
.rlen = 8 + 16,
|
||||
}, { /* Input data from RFC 2410 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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00",
|
||||
.klen = 8 + 16 + 0,
|
||||
.iv = "",
|
||||
.input = "Network Security People Have A Strange Sense Of Humor",
|
||||
.ilen = 53,
|
||||
.result = "Network Security People Have A Strange Sense Of Humor"
|
||||
"\x73\xa5\x3e\x1c\x08\x0e\x8a\x8a"
|
||||
"\x8e\xb5\x5f\x90\x8e\xfe\x13\x23",
|
||||
.rlen = 53 + 16,
|
||||
},
|
||||
};
|
||||
|
||||
static struct aead_testvec hmac_md5_ecb_cipher_null_dec_tv_template[] = {
|
||||
{
|
||||
#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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00",
|
||||
.klen = 8 + 16 + 0,
|
||||
.iv = "",
|
||||
.input = "\x01\x23\x45\x67\x89\xab\xcd\xef"
|
||||
"\xaa\x42\xfe\x43\x8d\xea\xa3\x5a"
|
||||
"\xb9\x3d\x9f\xb1\xa3\x8e\x9b\xae",
|
||||
.ilen = 8 + 16,
|
||||
.result = "\x01\x23\x45\x67\x89\xab\xcd\xef",
|
||||
.rlen = 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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00",
|
||||
.klen = 8 + 16 + 0,
|
||||
.iv = "",
|
||||
.input = "Network Security People Have A Strange Sense Of Humor"
|
||||
"\x73\xa5\x3e\x1c\x08\x0e\x8a\x8a"
|
||||
"\x8e\xb5\x5f\x90\x8e\xfe\x13\x23",
|
||||
.ilen = 53 + 16,
|
||||
.result = "Network Security People Have A Strange Sense Of Humor",
|
||||
.rlen = 53,
|
||||
},
|
||||
};
|
||||
|
||||
static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {
|
||||
{ /* RFC 3602 Case 1 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
|
@ -13876,6 +13964,98 @@ static struct aead_testvec hmac_sha1_aes_cbc_enc_tv_template[] = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct aead_testvec hmac_sha1_ecb_cipher_null_enc_tv_template[] = {
|
||||
{ /* Input data from RFC 2410 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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00",
|
||||
.klen = 8 + 20 + 0,
|
||||
.iv = "",
|
||||
.input = "\x01\x23\x45\x67\x89\xab\xcd\xef",
|
||||
.ilen = 8,
|
||||
.result = "\x01\x23\x45\x67\x89\xab\xcd\xef"
|
||||
"\x40\xc3\x0a\xa1\xc9\xa0\x28\xab"
|
||||
"\x99\x5e\x19\x04\xd1\x72\xef\xb8"
|
||||
"\x8c\x5e\xe4\x08",
|
||||
.rlen = 8 + 20,
|
||||
}, { /* Input data from RFC 2410 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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00",
|
||||
.klen = 8 + 20 + 0,
|
||||
.iv = "",
|
||||
.input = "Network Security People Have A Strange Sense Of Humor",
|
||||
.ilen = 53,
|
||||
.result = "Network Security People Have A Strange Sense Of Humor"
|
||||
"\x75\x6f\x42\x1e\xf8\x50\x21\xd2"
|
||||
"\x65\x47\xee\x8e\x1a\xef\x16\xf6"
|
||||
"\x91\x56\xe4\xd6",
|
||||
.rlen = 53 + 20,
|
||||
},
|
||||
};
|
||||
|
||||
static struct aead_testvec hmac_sha1_ecb_cipher_null_dec_tv_template[] = {
|
||||
{
|
||||
#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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00",
|
||||
.klen = 8 + 20 + 0,
|
||||
.iv = "",
|
||||
.input = "\x01\x23\x45\x67\x89\xab\xcd\xef"
|
||||
"\x40\xc3\x0a\xa1\xc9\xa0\x28\xab"
|
||||
"\x99\x5e\x19\x04\xd1\x72\xef\xb8"
|
||||
"\x8c\x5e\xe4\x08",
|
||||
.ilen = 8 + 20,
|
||||
.result = "\x01\x23\x45\x67\x89\xab\xcd\xef",
|
||||
.rlen = 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\x00" /* enc key length */
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00\x00\x00\x00\x00"
|
||||
"\x00\x00\x00\x00",
|
||||
.klen = 8 + 20 + 0,
|
||||
.iv = "",
|
||||
.input = "Network Security People Have A Strange Sense Of Humor"
|
||||
"\x75\x6f\x42\x1e\xf8\x50\x21\xd2"
|
||||
"\x65\x47\xee\x8e\x1a\xef\x16\xf6"
|
||||
"\x91\x56\xe4\xd6",
|
||||
.ilen = 53 + 20,
|
||||
.result = "Network Security People Have A Strange Sense Of Humor",
|
||||
.rlen = 53,
|
||||
},
|
||||
};
|
||||
|
||||
static struct aead_testvec hmac_sha256_aes_cbc_enc_tv_template[] = {
|
||||
{ /* RFC 3602 Case 1 */
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
|
|
Загрузка…
Ссылка в новой задаче