61 okx (
test->expected_len > 0, file, line );
92 EXPECTED ( 0xb6, 0x13, 0x67, 0x9a, 0x08, 0x14, 0xd9, 0xec, 0x77,
93 0x2f, 0x95, 0xd7, 0x78, 0xc3, 0x5f, 0xc5, 0xff, 0x16,
94 0x97, 0xc4, 0x93, 0x71, 0x56, 0x53, 0xc6, 0xc7, 0x12,
95 0x14, 0x42, 0x92, 0xc5, 0xad ) );
99 KEY (
'H',
'e',
'l',
'l',
'o' ),
100 DATA (
'W',
'o',
'r',
'l',
'd' ),
101 EXPECTED ( 0x59, 0x16, 0x8e, 0x30, 0x9f, 0x2c, 0x97, 0xdd, 0x04,
102 0xe4, 0x5b, 0xe3, 0xe7, 0x9b, 0xd9, 0xac, 0xb6, 0xd2,
103 0x2f, 0xda, 0x65, 0x46, 0xc0, 0x0c, 0x53, 0x92, 0x82,
104 0xc4, 0x1e, 0xeb, 0x91, 0x6e ) );
108 KEY (
'H',
'e',
'l',
'l',
'o' ),
109 DATA (
'W',
'o',
'r',
'l',
'd' ),
110 EXPECTED ( 0x9e, 0x29, 0xcf, 0x6d, 0x48, 0x90, 0x49, 0x9e, 0xf8,
111 0x5a, 0x31, 0x47, 0x55, 0x7b, 0x1a, 0x45, 0xd5, 0xae,
116 KEY (
'H',
'e',
'l',
'l',
'o' ),
117 DATA (
'W',
'o',
'r',
'l',
'd' ),
118 EXPECTED ( 0xc7, 0x1c, 0x0c, 0xd0, 0xdc, 0x24, 0x49, 0xbd, 0xd8,
119 0x9d, 0x28, 0xeb, 0x03, 0xbe, 0xf2, 0x04 ) );
123 KEY ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
124 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
125 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,
126 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
127 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
128 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
129 0x3c, 0x3d, 0x3e, 0x3f ),
130 DATA (
'H',
'e',
'l',
'l',
'o',
' ',
'W',
'o',
'r',
'l',
'd' ),
131 EXPECTED ( 0xdd, 0x05, 0xcc, 0xe6, 0xd6, 0xaf, 0x91, 0x61, 0x4b,
132 0xaf, 0x35, 0x6b, 0x86, 0x0a, 0x05, 0x67, 0x25, 0x22,
133 0xf0, 0x54, 0xd2, 0x5f, 0xd7, 0xe1, 0x54, 0x26, 0x01,
134 0x16, 0xfd, 0x8a, 0xf3, 0x5b ) );
138 KEY ( 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
139 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
140 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,
141 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
142 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31,
143 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b,
144 0x3c, 0x3d, 0x3e, 0x3f, 0x40 ),
145 DATA (
'H',
'e',
'l',
'l',
'o',
' ',
'W',
'o',
'r',
'l',
'd' ),
146 EXPECTED ( 0x4f, 0x0f, 0x42, 0x07, 0xda, 0x84, 0x3d, 0x2a, 0x34,
147 0xae, 0x5d, 0xd9, 0x05, 0x1e, 0x96, 0xa8, 0xb6, 0xef,
148 0xa1, 0xcd, 0x49, 0x5b, 0xea, 0x30, 0xbf, 0x47, 0x3b,
149 0xdc, 0xa9, 0x86, 0xbb, 0x31 ) );
struct golan_eq_context ctx
union @162305117151260234136356364136041353210355154177 key
#define DATA(...)
Define inline data.
#define KEY(...)
Define inline key.
#define EXPECTED(...)
Define inline expected result point.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
void hmac_init(struct digest_algorithm *digest, void *ctx, const void *secret, size_t len)
Initialise HMAC.
void hmac_final(struct digest_algorithm *digest, void *ctx, void *hmac)
Finalise HMAC.
void hmac_key(struct digest_algorithm *digest, void *ctx, const void *secret, size_t len, void *key)
Construct HMAC reduced key.
void hmac_init_key(struct digest_algorithm *digest, void *ctx, const void *key)
Initialise HMAC from reduced key.
Keyed-Hashing for Message Authentication.
static void hmac_update(struct digest_algorithm *digest, void *ctx, const void *data, size_t len)
Update HMAC.
static size_t hmac_ctxsize(struct digest_algorithm *digest)
Calculate HMAC context size.
static size_t hmac_keysize(struct digest_algorithm *digest)
Calculate HMAC reduced key size.
void hmac_okx(struct hmac_test *test, const char *file, unsigned int line)
Report an HMAC test result.
static void hmac_test_exec(void)
Perform HMAC self-tests.
#define HMAC_TEST(name, DIGEST, KEY, DATA, EXPECTED)
Define an HMAC test.
#define hmac_ok(test)
Report an HMAC test result.
struct digest_algorithm md5_algorithm
struct digest_algorithm sha1_algorithm
struct digest_algorithm sha256_algorithm
int memcmp(const void *first, const void *second, size_t len)
Compare memory regions.
A message digest algorithm.
size_t digestsize
Digest size.
size_t blocksize
Block size.
size_t ctxsize
Context size.
const char * name
Algorithm name.
Self-test infrastructure.
#define okx(success, file, line)
Report test result.
#define __self_test
Declare a self-test.