Introduce t_zero (a 256-byte array of zeroes) and t_seq8 (a 256-byte array

counting up from zero).  Use them to simplify the HMAC-SHA1 test vectors.
This commit is contained in:
Dag-Erling Smørgrav 2014-07-11 12:46:23 +00:00 committed by des
parent b3a718a7ff
commit 8e786c5a98
3 changed files with 13 additions and 42 deletions

View file

@ -6,7 +6,7 @@ noinst_HEADERS = t.h
# Common support code
check_LTLIBRARIES = libt.la
libt_la_SOURCES = t_main.c t_file.c
libt_la_SOURCES = t_main.c t_file.c t_const.c
# Link in the test driver and the full cryb library
LDADD = $(builddir)/libt.la \

6
t/t.h
View file

@ -79,4 +79,10 @@ void t_frewind(struct t_file *);
void t_fclose(struct t_file *);
void t_fcloseall(void);
/*
* Useful constants
*/
extern const uint8_t t_zero[256];
extern const uint8_t t_seq8[256];
#endif

View file

@ -79,14 +79,14 @@ t_hmac_sha1_complete(const void *key, size_t keylen,
*/
static struct t_vector {
const char *desc;
uint8_t key[100];
const uint8_t *key;
size_t keylen;
const char *msg;
const uint8_t mac[HMAC_SHA1_MAC_LEN];
} t_hmac_sha1_vectors[] = {
{
"zero-length key, zero-length message",
{ },
t_zero,
0,
"",
{
@ -97,16 +97,7 @@ static struct t_vector {
},
{
"NIST CSRC example 1 (64-byte key)",
{
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
},
t_seq8,
64,
"Sample message for keylen=blocklen",
{
@ -117,11 +108,7 @@ static struct t_vector {
},
{
"NIST CSRC example 2 (20-byte key)",
{
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13,
},
t_seq8,
20,
"Sample message for keylen<blocklen",
{
@ -132,21 +119,7 @@ static struct t_vector {
},
{
"NIST CSRC example 3 (100-byte key)",
{
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 0x61, 0x62, 0x63,
},
t_seq8,
100,
/* yes, the text should say keylen>blocklen */
"Sample message for keylen=blocklen",
@ -158,15 +131,7 @@ static struct t_vector {
},
{
"NIST CSRC example 4 (49-byte key)",
{
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30,
},
t_seq8,
49,
"Sample message for keylen<blocklen, with truncated tag",
{