added HMAC MD5 test vectors
This commit is contained in:
parent
c698da8cb4
commit
764708b4e0
|
@ -11,6 +11,7 @@ libstrongswan_test_vectors_la_SOURCES = \
|
|||
test_vectors/aes_cbc.c \
|
||||
test_vectors/aes_xcbc.c \
|
||||
test_vectors/md5.c \
|
||||
test_vectors/md5_hmac.c \
|
||||
test_vectors/rng.c
|
||||
libstrongswan_test_vectors_la_LDFLAGS = -module
|
||||
|
||||
|
|
|
@ -24,6 +24,10 @@ TEST_VECTOR_SIGNER(aes_xcbc_s2)
|
|||
TEST_VECTOR_SIGNER(aes_xcbc_s3)
|
||||
TEST_VECTOR_SIGNER(aes_xcbc_s4)
|
||||
TEST_VECTOR_SIGNER(aes_xcbc_s5)
|
||||
TEST_VECTOR_SIGNER(md5_hmac_s1)
|
||||
TEST_VECTOR_SIGNER(md5_hmac_s2)
|
||||
TEST_VECTOR_SIGNER(md5_hmac_s3)
|
||||
TEST_VECTOR_SIGNER(md5_hmac_s4)
|
||||
|
||||
TEST_VECTOR_HASHER(md5_1)
|
||||
TEST_VECTOR_HASHER(md5_2)
|
||||
|
@ -40,6 +44,12 @@ TEST_VECTOR_PRF(aes_xcbc_p4)
|
|||
TEST_VECTOR_PRF(aes_xcbc_p5)
|
||||
TEST_VECTOR_PRF(aes_xcbc_p6)
|
||||
TEST_VECTOR_PRF(aes_xcbc_p7)
|
||||
TEST_VECTOR_PRF(md5_hmac_p1)
|
||||
TEST_VECTOR_PRF(md5_hmac_p2)
|
||||
TEST_VECTOR_PRF(md5_hmac_p3)
|
||||
TEST_VECTOR_PRF(md5_hmac_p4)
|
||||
TEST_VECTOR_PRF(md5_hmac_p5)
|
||||
TEST_VECTOR_PRF(md5_hmac_p6)
|
||||
|
||||
TEST_VECTOR_RNG(rng_monobit_1)
|
||||
TEST_VECTOR_RNG(rng_monobit_2)
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
/*
|
||||
* Copyright (C) 2009 Martin Willi
|
||||
* Hochschule fuer Technik Rapperswil
|
||||
*
|
||||
* 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 Software Foundation; either version 2 of the Licenseor (at your
|
||||
* option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
|
||||
*
|
||||
* This program is distributed in the hope that it will be usefulbut
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include <crypto/crypto_tester.h>
|
||||
|
||||
/**
|
||||
* MD5 hmac test vectors from RFC2202
|
||||
*/
|
||||
signer_test_vector_t md5_hmac_s1 = {
|
||||
.alg = AUTH_HMAC_MD5_96, .len = 8,
|
||||
.key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
|
||||
.data = "Hi There",
|
||||
.mac = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8"
|
||||
};
|
||||
|
||||
signer_test_vector_t md5_hmac_s2 = {
|
||||
.alg = AUTH_HMAC_MD5_128, .len = 8,
|
||||
.key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
|
||||
.data = "Hi There",
|
||||
.mac = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc\x9d"
|
||||
};
|
||||
|
||||
prf_test_vector_t md5_hmac_p1 = {
|
||||
.alg = PRF_HMAC_MD5, .key_size = 16, .len = 8,
|
||||
.key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
|
||||
.seed = "Hi There",
|
||||
.out = "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc\x9d"
|
||||
};
|
||||
|
||||
prf_test_vector_t md5_hmac_p2 = {
|
||||
.alg = PRF_HMAC_MD5, .key_size = 4, .len = 28,
|
||||
.key = "Jefe",
|
||||
.seed = "what do ya want for nothing?",
|
||||
.out = "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7\x38"
|
||||
};
|
||||
|
||||
signer_test_vector_t md5_hmac_s3 = {
|
||||
.alg = AUTH_HMAC_MD5_96, .len = 50,
|
||||
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
|
||||
.data = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd",
|
||||
.mac = "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33"
|
||||
};
|
||||
|
||||
signer_test_vector_t md5_hmac_s4 = {
|
||||
.alg = AUTH_HMAC_MD5_128, .len = 50,
|
||||
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
|
||||
.data = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd",
|
||||
.mac = "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3\xf6"
|
||||
};
|
||||
|
||||
prf_test_vector_t md5_hmac_p3 = {
|
||||
.alg = PRF_HMAC_MD5, .key_size = 16, .len = 50,
|
||||
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
|
||||
.seed = "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd"
|
||||
"\xdd\xdd",
|
||||
.out = "\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3\xf6"
|
||||
};
|
||||
|
||||
prf_test_vector_t md5_hmac_p4 = {
|
||||
.alg = PRF_HMAC_MD5, .key_size = 25, .len = 50,
|
||||
.key = "\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",
|
||||
.seed = "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"
|
||||
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"
|
||||
"\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"
|
||||
"\xcd\xcd",
|
||||
.out = "\x69\x7e\xaf\x0a\xca\x3a\x3a\xea\x3a\x75\x16\x47\x46\xff\xaa\x79"
|
||||
};
|
||||
|
||||
prf_test_vector_t md5_hmac_p5 = {
|
||||
.alg = PRF_HMAC_MD5, .key_size = 80, .len = 54,
|
||||
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
|
||||
.seed = "Test Using Larger Than Block-Size Key - Hash Key First",
|
||||
.out = "\x6b\x1a\xb7\xfe\x4b\xd7\xbf\x8f\x0b\x62\xe6\xce\x61\xb9\xd0\xcd"
|
||||
};
|
||||
|
||||
prf_test_vector_t md5_hmac_p6 = {
|
||||
.alg = PRF_HMAC_MD5, .key_size = 80, .len = 73,
|
||||
.key = "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa",
|
||||
.seed = "Test Using Larger Than Block-Size Key and Larger "
|
||||
"Than One Block-Size Data",
|
||||
.out = "\x6f\x63\x0f\xad\x67\xcd\xa0\xee\x1f\xb1\xf5\x62\xdb\x3a\xa5\x3e"
|
||||
};
|
||||
|
Loading…
Reference in New Issue