30
24
/* Test vectors for md5, from RFC-2202 */
33
HMAC_TEST(md5, MD5_DIGEST_SIZE,
34
HL("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"),
36
H("9294727a3638bb1c 13f48ef8158bfc9d"));
28
SHEX("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"),
30
SHEX("9294727a3638bb1c 13f48ef8158bfc9d"));
40
HMAC_TEST(md5, MD5_DIGEST_SIZE,
42
LDATA("what do ya want for nothing?"),
43
H("750c783e6ab0b503 eaa86e310a5db738"));
36
SDATA("what do ya want for nothing?"),
37
SHEX("750c783e6ab0b503 eaa86e310a5db738"));
46
HMAC_TEST(md5, MD5_DIGEST_SIZE,
47
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
48
HL("dddddddddddddddd dddddddddddddddd"
49
"dddddddddddddddd dddddddddddddddd"
50
"dddddddddddddddd dddddddddddddddd"
52
H("56be34521d144c88 dbb8c733f0e8b3f6"));
41
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
42
SHEX("dddddddddddddddd dddddddddddddddd"
43
"dddddddddddddddd dddddddddddddddd"
44
"dddddddddddddddd dddddddddddddddd"
46
SHEX("56be34521d144c88 dbb8c733f0e8b3f6"));
55
HMAC_TEST(md5, MD5_DIGEST_SIZE,
56
HL("0102030405060708 090a0b0c0d0e0f10"
57
"1112131415161718 19"),
58
HL("cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
59
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
60
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
62
H("697eaf0aca3a3aea 3a75164746ffaa79"));
50
SHEX("0102030405060708 090a0b0c0d0e0f10"
51
"1112131415161718 19"),
52
SHEX("cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
53
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
54
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
56
SHEX("697eaf0aca3a3aea 3a75164746ffaa79"));
66
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"),
67
LDATA("Test With Truncation"),
68
H("56461ef2342edc00 f9bab995"));
60
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"),
61
SDATA("Test With Truncation"),
62
SHEX("56461ef2342edc00 f9bab995"));
71
HMAC_TEST(md5, MD5_DIGEST_SIZE,
72
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
73
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
74
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
75
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
76
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
77
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
78
H("6b1ab7fe4bd7bf8f 0b62e6ce61b9d0cd"));
66
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
67
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
68
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
69
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
70
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
71
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
72
SHEX("6b1ab7fe4bd7bf8f 0b62e6ce61b9d0cd"));
81
HMAC_TEST(md5, MD5_DIGEST_SIZE,
82
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
83
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
84
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
85
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
86
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
87
LDATA("Test Using Larger Than Block-Size Key and Larger "
76
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
77
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
78
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
79
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
80
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
81
SDATA("Test Using Larger Than Block-Size Key and Larger "
88
82
"Than One Block-Size Data"),
89
H("6f630fad67cda0ee 1fb1f562db3aa53e"));
83
SHEX("6f630fad67cda0ee 1fb1f562db3aa53e"));
91
85
/* Additional test vectors, from Daniel Kahn Gillmor */
92
HMAC_TEST(md5, MD5_DIGEST_SIZE,
93
LDATA("monkey monkey monkey monkey"),
95
H("e84db42a188813f30a15e611d64c7869"));
97
HMAC_TEST(md5, MD5_DIGEST_SIZE,
98
LDATA("monkey monkey monkey monkey"),
100
H("123662062e67c2aab371cc49db0df134"));
102
HMAC_TEST(md5, MD5_DIGEST_SIZE,
103
LDATA("monkey monkey monkey monkey"),
105
H("0a46cc10a49d4b7025c040c597bf5d76"));
107
HMAC_TEST(md5, MD5_DIGEST_SIZE,
108
LDATA("monkey monkey monkey monkey"),
110
H("d1f4d89f0e8b2b6ed0623c99ec298310"));
112
HMAC_TEST(md5, MD5_DIGEST_SIZE,
113
LDATA("monkey monkey monkey monkey"),
114
LDATA("message digest"),
115
H("1627207b9bed5009a4f6e9ca8d2ca01e"));
117
HMAC_TEST(md5, MD5_DIGEST_SIZE,
118
LDATA("monkey monkey monkey monkey"),
119
LDATA("abcdefghijklmnopqrstuvwxyz"),
120
H("922aae6ab3b3a29202e21ce5f916ae9a"));
122
HMAC_TEST(md5, MD5_DIGEST_SIZE,
123
LDATA("monkey monkey monkey monkey"),
124
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
125
H("ede9cb83679ba82d88fbeae865b3f8fc"));
127
HMAC_TEST(md5, MD5_DIGEST_SIZE,
128
LDATA("monkey monkey monkey monkey"),
129
LDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
130
H("939dd45512ee3a594b6654f6b8de27f7"));
87
SDATA("monkey monkey monkey monkey"),
89
SHEX("e84db42a188813f30a15e611d64c7869"));
92
SDATA("monkey monkey monkey monkey"),
94
SHEX("123662062e67c2aab371cc49db0df134"));
97
SDATA("monkey monkey monkey monkey"),
99
SHEX("0a46cc10a49d4b7025c040c597bf5d76"));
102
SDATA("monkey monkey monkey monkey"),
104
SHEX("d1f4d89f0e8b2b6ed0623c99ec298310"));
107
SDATA("monkey monkey monkey monkey"),
108
SDATA("message digest"),
109
SHEX("1627207b9bed5009a4f6e9ca8d2ca01e"));
112
SDATA("monkey monkey monkey monkey"),
113
SDATA("abcdefghijklmnopqrstuvwxyz"),
114
SHEX("922aae6ab3b3a29202e21ce5f916ae9a"));
117
SDATA("monkey monkey monkey monkey"),
118
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
119
SHEX("ede9cb83679ba82d88fbeae865b3f8fc"));
122
SDATA("monkey monkey monkey monkey"),
123
SDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
124
SHEX("939dd45512ee3a594b6654f6b8de27f7"));
132
126
/* Test vectors for ripemd160, from
133
127
http://homes.esat.kuleuven.be/~bosselae/ripemd160.html */
134
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
135
HL("00112233445566778899aabbccddeeff01234567"),
137
H("cf387677bfda8483e63b57e06c3b5ecd8b7fc055"));
139
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
140
HL("00112233445566778899aabbccddeeff01234567"),
142
H("0d351d71b78e36dbb7391c810a0d2b6240ddbafc"));
144
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
145
HL("00112233445566778899aabbccddeeff01234567"),
147
H("f7ef288cb1bbcc6160d76507e0a3bbf712fb67d6"));
149
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
150
HL("00112233445566778899aabbccddeeff01234567"),
151
LDATA("message digest"),
152
H("f83662cc8d339c227e600fcd636c57d2571b1c34"));
154
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
155
HL("00112233445566778899aabbccddeeff01234567"),
156
LDATA("abcdefghijklmnopqrstuvwxyz"),
157
H("843d1c4eb880ac8ac0c9c95696507957d0155ddb"));
159
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
160
HL("00112233445566778899aabbccddeeff01234567"),
161
LDATA("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),
162
H("60f5ef198a2dd5745545c1f0c47aa3fb5776f881"));
164
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
165
HL("00112233445566778899aabbccddeeff01234567"),
166
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
167
H("e49c136a9e5627e0681b808a3b97e6a6e661ae79"));
129
SHEX("00112233445566778899aabbccddeeff01234567"),
131
SHEX("cf387677bfda8483e63b57e06c3b5ecd8b7fc055"));
134
SHEX("00112233445566778899aabbccddeeff01234567"),
136
SHEX("0d351d71b78e36dbb7391c810a0d2b6240ddbafc"));
139
SHEX("00112233445566778899aabbccddeeff01234567"),
141
SHEX("f7ef288cb1bbcc6160d76507e0a3bbf712fb67d6"));
144
SHEX("00112233445566778899aabbccddeeff01234567"),
145
SDATA("message digest"),
146
SHEX("f83662cc8d339c227e600fcd636c57d2571b1c34"));
149
SHEX("00112233445566778899aabbccddeeff01234567"),
150
SDATA("abcdefghijklmnopqrstuvwxyz"),
151
SHEX("843d1c4eb880ac8ac0c9c95696507957d0155ddb"));
154
SHEX("00112233445566778899aabbccddeeff01234567"),
155
SDATA("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),
156
SHEX("60f5ef198a2dd5745545c1f0c47aa3fb5776f881"));
159
SHEX("00112233445566778899aabbccddeeff01234567"),
160
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
161
SHEX("e49c136a9e5627e0681b808a3b97e6a6e661ae79"));
170
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
171
HL("0123456789abcdeffedcba987654321000112233"),
173
H("fe69a66c7423eea9c8fa2eff8d9dafb4f17a62f5"));
175
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
176
HL("0123456789abcdeffedcba987654321000112233"),
178
H("85743e899bc82dbfa36faaa7a25b7cfd372432cd"));
180
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
181
HL("0123456789abcdeffedcba987654321000112233"),
183
H("6e4afd501fa6b4a1823ca3b10bd9aa0ba97ba182"));
185
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
186
HL("0123456789abcdeffedcba987654321000112233"),
187
LDATA("message digest"),
188
H("2e066e624badb76a184c8f90fba053330e650e92"));
190
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
191
HL("0123456789abcdeffedcba987654321000112233"),
192
LDATA("abcdefghijklmnopqrstuvwxyz"),
193
H("07e942aa4e3cd7c04dedc1d46e2e8cc4c741b3d9"));
195
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
196
HL("0123456789abcdeffedcba987654321000112233"),
197
LDATA("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),
198
H("b6582318ddcfb67a53a67d676b8ad869aded629a"));
200
HMAC_TEST(ripemd160, RIPEMD160_DIGEST_SIZE,
201
HL("0123456789abcdeffedcba987654321000112233"),
202
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
203
H("f1be3ee877703140d34f97ea1ab3a07c141333e2"));
165
SHEX("0123456789abcdeffedcba987654321000112233"),
167
SHEX("fe69a66c7423eea9c8fa2eff8d9dafb4f17a62f5"));
170
SHEX("0123456789abcdeffedcba987654321000112233"),
172
SHEX("85743e899bc82dbfa36faaa7a25b7cfd372432cd"));
175
SHEX("0123456789abcdeffedcba987654321000112233"),
177
SHEX("6e4afd501fa6b4a1823ca3b10bd9aa0ba97ba182"));
180
SHEX("0123456789abcdeffedcba987654321000112233"),
181
SDATA("message digest"),
182
SHEX("2e066e624badb76a184c8f90fba053330e650e92"));
185
SHEX("0123456789abcdeffedcba987654321000112233"),
186
SDATA("abcdefghijklmnopqrstuvwxyz"),
187
SHEX("07e942aa4e3cd7c04dedc1d46e2e8cc4c741b3d9"));
190
SHEX("0123456789abcdeffedcba987654321000112233"),
191
SDATA("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"),
192
SHEX("b6582318ddcfb67a53a67d676b8ad869aded629a"));
195
SHEX("0123456789abcdeffedcba987654321000112233"),
196
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
197
SHEX("f1be3ee877703140d34f97ea1ab3a07c141333e2"));
205
199
/* Test vectors for sha1, from RFC-2202 */
208
HMAC_TEST(sha1, SHA1_DIGEST_SIZE,
209
HL("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b 0b0b0b0b"),
211
H("b617318655057264 e28bc0b6fb378c8e f146be00"));
203
SHEX("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b 0b0b0b0b"),
205
SHEX("b617318655057264 e28bc0b6fb378c8e f146be00"));
214
HMAC_TEST(sha1, SHA1_DIGEST_SIZE,
216
LDATA("what do ya want for nothing?"),
217
H("effcdf6ae5eb2fa2 d27416d5f184df9c 259a7c79"));
210
SDATA("what do ya want for nothing?"),
211
SHEX("effcdf6ae5eb2fa2 d27416d5f184df9c 259a7c79"));
220
HMAC_TEST(sha1, SHA1_DIGEST_SIZE,
221
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaa"),
222
HL("dddddddddddddddd dddddddddddddddd"
223
"dddddddddddddddd dddddddddddddddd"
224
"dddddddddddddddd dddddddddddddddd"
226
H("125d7342b9ac11cd 91a39af48aa17b4f 63f175d3"));
215
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaa"),
216
SHEX("dddddddddddddddd dddddddddddddddd"
217
"dddddddddddddddd dddddddddddddddd"
218
"dddddddddddddddd dddddddddddddddd"
220
SHEX("125d7342b9ac11cd 91a39af48aa17b4f 63f175d3"));
229
HMAC_TEST(sha1, SHA1_DIGEST_SIZE,
230
HL("0102030405060708 090a0b0c0d0e0f10"
231
"1112131415161718 19"),
232
HL("cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
233
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
234
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
236
H("4c9007f4026250c6 bc8414f9bf50c86c 2d7235da"));
224
SHEX("0102030405060708 090a0b0c0d0e0f10"
225
"1112131415161718 19"),
226
SHEX("cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
227
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
228
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
230
SHEX("4c9007f4026250c6 bc8414f9bf50c86c 2d7235da"));
240
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
241
LDATA("Test With Truncation"),
242
H("4c1a03424b55e07f e7f27be1"));
234
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
235
SDATA("Test With Truncation"),
236
SHEX("4c1a03424b55e07f e7f27be1"));
245
HMAC_TEST(sha1, SHA1_DIGEST_SIZE,
246
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
247
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
248
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
249
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
250
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
251
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
252
H("aa4ae5e15272d00e 95705637ce8a3b55 ed402112"));
240
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
241
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
242
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
243
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
244
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
245
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
246
SHEX("aa4ae5e15272d00e 95705637ce8a3b55 ed402112"));
255
HMAC_TEST(sha1, SHA1_DIGEST_SIZE,
256
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
257
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
258
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
259
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
260
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
261
LDATA("Test Using Larger Than Block-Size Key and Larger "
250
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
251
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
252
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
253
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
254
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
255
SDATA("Test Using Larger Than Block-Size Key and Larger "
262
256
"Than One Block-Size Data"),
263
H("e8e99d0f45237d78 6d6bbaa7965c7808 bbff1a91"));
257
SHEX("e8e99d0f45237d78 6d6bbaa7965c7808 bbff1a91"));
265
259
/* Additional test vectors, from Daniel Kahn Gillmor */
266
HMAC_TEST(md5, MD5_DIGEST_SIZE,
267
LDATA("monkey monkey monkey monkey"),
269
H("e84db42a188813f30a15e611d64c7869"));
271
HMAC_TEST(md5, MD5_DIGEST_SIZE,
272
LDATA("monkey monkey monkey monkey"),
274
H("123662062e67c2aab371cc49db0df134"));
276
HMAC_TEST(md5, MD5_DIGEST_SIZE,
277
LDATA("monkey monkey monkey monkey"),
279
H("0a46cc10a49d4b7025c040c597bf5d76"));
281
HMAC_TEST(md5, MD5_DIGEST_SIZE,
282
LDATA("monkey monkey monkey monkey"),
284
H("d1f4d89f0e8b2b6ed0623c99ec298310"));
286
HMAC_TEST(md5, MD5_DIGEST_SIZE,
287
LDATA("monkey monkey monkey monkey"),
288
LDATA("message digest"),
289
H("1627207b9bed5009a4f6e9ca8d2ca01e"));
291
HMAC_TEST(md5, MD5_DIGEST_SIZE,
292
LDATA("monkey monkey monkey monkey"),
293
LDATA("abcdefghijklmnopqrstuvwxyz"),
294
H("922aae6ab3b3a29202e21ce5f916ae9a"));
296
HMAC_TEST(md5, MD5_DIGEST_SIZE,
297
LDATA("monkey monkey monkey monkey"),
298
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
299
H("ede9cb83679ba82d88fbeae865b3f8fc"));
301
HMAC_TEST(md5, MD5_DIGEST_SIZE,
302
LDATA("monkey monkey monkey monkey"),
303
LDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
304
H("939dd45512ee3a594b6654f6b8de27f7"));
261
SDATA("monkey monkey monkey monkey"),
263
SHEX("e84db42a188813f30a15e611d64c7869"));
266
SDATA("monkey monkey monkey monkey"),
268
SHEX("123662062e67c2aab371cc49db0df134"));
271
SDATA("monkey monkey monkey monkey"),
273
SHEX("0a46cc10a49d4b7025c040c597bf5d76"));
276
SDATA("monkey monkey monkey monkey"),
278
SHEX("d1f4d89f0e8b2b6ed0623c99ec298310"));
281
SDATA("monkey monkey monkey monkey"),
282
SDATA("message digest"),
283
SHEX("1627207b9bed5009a4f6e9ca8d2ca01e"));
286
SDATA("monkey monkey monkey monkey"),
287
SDATA("abcdefghijklmnopqrstuvwxyz"),
288
SHEX("922aae6ab3b3a29202e21ce5f916ae9a"));
291
SDATA("monkey monkey monkey monkey"),
292
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
293
SHEX("ede9cb83679ba82d88fbeae865b3f8fc"));
296
SDATA("monkey monkey monkey monkey"),
297
SDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
298
SHEX("939dd45512ee3a594b6654f6b8de27f7"));
306
300
/* Test vectors for sha224, from RFC 4231 */
307
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
308
HL("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
311
H("896fb1128abbdf196832107cd49df33f"
312
"47b4b1169912ba4f53684b22"));
314
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
316
LDATA("what do ya want for nothing?"),
317
H("a30e01098bc6dbbf45690f3a7e9e6d0f"
318
"8bbea2a39e6148008fd05e44"));
320
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
321
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
323
HL("dddddddddddddddddddddddddddddddd"
324
"dddddddddddddddddddddddddddddddd"
325
"dddddddddddddddddddddddddddddddd"
327
H("7fb3cb3588c6c1f6ffa9694d7d6ad264"
328
"9365b0c1f65d69d1ec8333ea"));
330
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
331
HL("0102030405060708090a0b0c0d0e0f10"
332
"111213141516171819"),
333
HL("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
334
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
335
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
337
H("6c11506874013cac6a2abc1bb382627c"
338
"ec6a90d86efc012de7afec5a"));
340
HMAC_TEST(sha224, 16,
341
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
342
LDATA("Test With Truncation"),
343
H("0e2aea68a90c8d37c988bcdb9fca6fa8"));
345
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
346
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
347
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
348
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
349
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
350
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
351
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
352
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
353
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
355
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
356
H("95e9a0db962095adaebe9b2d6f0dbce2"
357
"d499f112f2d2b7273fa6870e"));
359
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
360
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
361
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
362
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
363
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
364
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
365
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
366
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
367
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
369
LDATA("This is a test using a larger than block-size ke"
302
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
305
SHEX("896fb1128abbdf196832107cd49df33f"
306
"47b4b1169912ba4f53684b22"));
310
SDATA("what do ya want for nothing?"),
311
SHEX("a30e01098bc6dbbf45690f3a7e9e6d0f"
312
"8bbea2a39e6148008fd05e44"));
315
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
317
SHEX("dddddddddddddddddddddddddddddddd"
318
"dddddddddddddddddddddddddddddddd"
319
"dddddddddddddddddddddddddddddddd"
321
SHEX("7fb3cb3588c6c1f6ffa9694d7d6ad264"
322
"9365b0c1f65d69d1ec8333ea"));
325
SHEX("0102030405060708090a0b0c0d0e0f10"
326
"111213141516171819"),
327
SHEX("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
328
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
329
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
331
SHEX("6c11506874013cac6a2abc1bb382627c"
332
"ec6a90d86efc012de7afec5a"));
335
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
336
SDATA("Test With Truncation"),
337
SHEX("0e2aea68a90c8d37c988bcdb9fca6fa8"));
340
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
341
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
342
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
343
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
344
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
345
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
346
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
347
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
349
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
350
SHEX("95e9a0db962095adaebe9b2d6f0dbce2"
351
"d499f112f2d2b7273fa6870e"));
354
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
355
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
356
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
357
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
358
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
359
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
360
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
361
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
363
SDATA("This is a test using a larger than block-size ke"
370
364
"y and a larger than block-size data. The key nee"
371
365
"ds to be hashed before being used by the HMAC al"
373
H("3a854166ac5d9f023f54d517d0b39dbd"
374
"946770db9c2b95c9f6f565d1"));
367
SHEX("3a854166ac5d9f023f54d517d0b39dbd"
368
"946770db9c2b95c9f6f565d1"));
376
370
/* Additional test vectors, from Daniel Kahn Gillmor */
377
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
378
LDATA("monkey monkey monkey monkey"),
380
H("d12a49ae38177ffeaa548b2148bb5238"
381
"60849772d9391e675b103d89"));
383
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
384
LDATA("monkey monkey monkey monkey"),
386
H("b04ff8522f904f553970bfa8ad3f0086"
387
"bce1e8580affd8a12c94e31a"));
389
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
390
LDATA("monkey monkey monkey monkey"),
392
H("afcfb5511f710334f9350f57faec3c08"
393
"764b4bd126a6840f4347f116"));
395
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
396
LDATA("monkey monkey monkey monkey"),
398
H("9df9907af127900c909376893565c6cf"
399
"2d7db244fdc4277da1e0b679"));
401
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
402
LDATA("monkey monkey monkey monkey"),
403
LDATA("message digest"),
404
H("254ebf6b8ddd7a3271b3d9aca1699b0c"
405
"0bfb7df61e8a114922c88d27"));
407
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
408
LDATA("monkey monkey monkey monkey"),
409
LDATA("abcdefghijklmnopqrstuvwxyz"),
410
H("6ec5bffba5880c3234a6cf257816e4d5"
411
"35ab178a7f12929769e378fb"));
413
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
414
LDATA("monkey monkey monkey monkey"),
415
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
416
H("5f768179dbb29ca722875d0f461a2e2f"
417
"597d0210340a84df1a8e9c63"));
419
HMAC_TEST(sha224, SHA224_DIGEST_SIZE,
420
LDATA("monkey monkey monkey monkey"),
421
LDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
422
H("c7667b0d7e56b2b4f6fcc1d8da9e22da"
423
"a1556f44c47132a87303c6a2"));
372
SDATA("monkey monkey monkey monkey"),
374
SHEX("d12a49ae38177ffeaa548b2148bb5238"
375
"60849772d9391e675b103d89"));
378
SDATA("monkey monkey monkey monkey"),
380
SHEX("b04ff8522f904f553970bfa8ad3f0086"
381
"bce1e8580affd8a12c94e31a"));
384
SDATA("monkey monkey monkey monkey"),
386
SHEX("afcfb5511f710334f9350f57faec3c08"
387
"764b4bd126a6840f4347f116"));
390
SDATA("monkey monkey monkey monkey"),
392
SHEX("9df9907af127900c909376893565c6cf"
393
"2d7db244fdc4277da1e0b679"));
396
SDATA("monkey monkey monkey monkey"),
397
SDATA("message digest"),
398
SHEX("254ebf6b8ddd7a3271b3d9aca1699b0c"
399
"0bfb7df61e8a114922c88d27"));
402
SDATA("monkey monkey monkey monkey"),
403
SDATA("abcdefghijklmnopqrstuvwxyz"),
404
SHEX("6ec5bffba5880c3234a6cf257816e4d5"
405
"35ab178a7f12929769e378fb"));
408
SDATA("monkey monkey monkey monkey"),
409
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
410
SHEX("5f768179dbb29ca722875d0f461a2e2f"
411
"597d0210340a84df1a8e9c63"));
414
SDATA("monkey monkey monkey monkey"),
415
SDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
416
SHEX("c7667b0d7e56b2b4f6fcc1d8da9e22da"
417
"a1556f44c47132a87303c6a2"));
425
419
/* Test vectors for sha256, from RFC 4231 */
426
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
427
HL("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
430
H("b0344c61d8db38535ca8afceaf0bf12b"
431
"881dc200c9833da726e9376c2e32cff7"));
433
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
435
LDATA("what do ya want for nothing?"),
436
H("5bdcc146bf60754e6a042426089575c7"
437
"5a003f089d2739839dec58b964ec3843"));
439
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
440
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
442
HL("dddddddddddddddddddddddddddddddd"
443
"dddddddddddddddddddddddddddddddd"
444
"dddddddddddddddddddddddddddddddd"
446
H("773ea91e36800e46854db8ebd09181a7"
447
"2959098b3ef8c122d9635514ced565fe"));
449
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
450
HL("0102030405060708090a0b0c0d0e0f10"
451
"111213141516171819"),
452
HL("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
453
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
454
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
456
H("82558a389a443c0ea4cc819899f2083a"
457
"85f0faa3e578f8077a2e3ff46729665b"));
459
HMAC_TEST(sha256, 16,
460
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
461
LDATA("Test With Truncation"),
462
H("a3b6167473100ee06e0c796c2955552b"));
464
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
465
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
466
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
467
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
468
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
469
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
470
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
471
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
472
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
474
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
475
H("60e431591ee0b67f0d8a26aacbf5b77f"
476
"8e0bc6213728c5140546040f0ee37f54"));
478
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
479
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
480
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
481
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
482
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
483
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
484
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
485
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
486
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
488
LDATA("This is a test using a larger than block-size ke"
421
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
424
SHEX("b0344c61d8db38535ca8afceaf0bf12b"
425
"881dc200c9833da726e9376c2e32cff7"));
429
SDATA("what do ya want for nothing?"),
430
SHEX("5bdcc146bf60754e6a042426089575c7"
431
"5a003f089d2739839dec58b964ec3843"));
434
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
436
SHEX("dddddddddddddddddddddddddddddddd"
437
"dddddddddddddddddddddddddddddddd"
438
"dddddddddddddddddddddddddddddddd"
440
SHEX("773ea91e36800e46854db8ebd09181a7"
441
"2959098b3ef8c122d9635514ced565fe"));
444
SHEX("0102030405060708090a0b0c0d0e0f10"
445
"111213141516171819"),
446
SHEX("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
447
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
448
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
450
SHEX("82558a389a443c0ea4cc819899f2083a"
451
"85f0faa3e578f8077a2e3ff46729665b"));
454
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
455
SDATA("Test With Truncation"),
456
SHEX("a3b6167473100ee06e0c796c2955552b"));
459
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
460
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
461
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
462
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
463
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
464
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
465
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
466
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
468
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
469
SHEX("60e431591ee0b67f0d8a26aacbf5b77f"
470
"8e0bc6213728c5140546040f0ee37f54"));
473
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
474
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
475
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
476
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
477
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
478
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
479
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
480
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
482
SDATA("This is a test using a larger than block-size ke"
489
483
"y and a larger than block-size data. The key nee"
490
484
"ds to be hashed before being used by the HMAC al"
492
H("9b09ffa71b942fcb27635fbcd5b0e944"
493
"bfdc63644f0713938a7f51535c3a35e2"));
486
SHEX("9b09ffa71b942fcb27635fbcd5b0e944"
487
"bfdc63644f0713938a7f51535c3a35e2"));
495
489
/* Additional test vectors for sha256, from
496
490
draft-ietf-ipsec-ciph-sha-256-01.txt */
498
492
/* Test Case #1: HMAC-SHA-256 with 3-byte input and 32-byte key */
499
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
500
HL("0102030405060708 090a0b0c0d0e0f10"
501
"1112131415161718 191a1b1c1d1e1f20"),
503
H("a21b1f5d4cf4f73a 4dd939750f7a066a"
494
SHEX("0102030405060708 090a0b0c0d0e0f10"
495
"1112131415161718 191a1b1c1d1e1f20"),
497
SHEX("a21b1f5d4cf4f73a 4dd939750f7a066a"
504
498
"7f98cc131cb16a66 92759021cfab8181"));
506
500
/* Test Case #2: HMAC-SHA-256 with 56-byte input and 32-byte key */
507
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
508
HL("0102030405060708 090a0b0c0d0e0f10"
509
"1112131415161718 191a1b1c1d1e1f20"),
510
LDATA("abcdbcdecdefdefgefghfghighijhijk"
502
SHEX("0102030405060708 090a0b0c0d0e0f10"
503
"1112131415161718 191a1b1c1d1e1f20"),
504
SDATA("abcdbcdecdefdefgefghfghighijhijk"
511
505
"ijkljklmklmnlmnomnopnopq"),
512
H("104fdc1257328f08 184ba73131c53cae"
506
SHEX("104fdc1257328f08 184ba73131c53cae"
513
507
"e698e36119421149 ea8c712456697d30"));
515
509
/* Test Case #3: HMAC-SHA-256 with 112-byte (multi-block) input
516
510
and 32-byte key */
517
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
518
HL("0102030405060708 090a0b0c0d0e0f10"
519
"1112131415161718 191a1b1c1d1e1f20"),
520
LDATA("abcdbcdecdefdefgefghfghighijhijk"
512
SHEX("0102030405060708 090a0b0c0d0e0f10"
513
"1112131415161718 191a1b1c1d1e1f20"),
514
SDATA("abcdbcdecdefdefgefghfghighijhijk"
521
515
"ijkljklmklmnlmnomnopnopqabcdbcde"
522
516
"cdefdefgefghfghighijhijkijkljklm"
523
517
"klmnlmnomnopnopq"),
524
H("470305fc7e40fe34 d3eeb3e773d95aab"
525
"73acf0fd060447a5 eb4595bf33a9d1a3"));
518
SHEX("470305fc7e40fe34 d3eeb3e773d95aab"
519
"73acf0fd060447a5 eb4595bf33a9d1a3"));
527
521
/* Test Case #4: HMAC-SHA-256 with 8-byte input and 32-byte key */
528
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
529
HL("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"
530
"0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"),
532
H("198a607eb44bfbc6 9903a0f1cf2bbdc5"
533
"ba0aa3f3d9ae3c1c 7a3b1696a0b68cf7"));
523
SHEX("0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"
524
"0b0b0b0b0b0b0b0b 0b0b0b0b0b0b0b0b"),
526
SHEX("198a607eb44bfbc6 9903a0f1cf2bbdc5"
527
"ba0aa3f3d9ae3c1c 7a3b1696a0b68cf7"));
535
529
/* Test Case #6: HMAC-SHA-256 with 50-byte input and 32-byte key */
536
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
537
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
538
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
539
HL("dddddddddddddddd dddddddddddddddd"
540
"dddddddddddddddd dddddddddddddddd"
541
"dddddddddddddddd dddddddddddddddd"
543
H("cdcb1220d1ecccea 91e53aba3092f962"
544
"e549fe6ce9ed7fdc 43191fbde45c30b0"));
531
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
532
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
533
SHEX("dddddddddddddddd dddddddddddddddd"
534
"dddddddddddddddd dddddddddddddddd"
535
"dddddddddddddddd dddddddddddddddd"
537
SHEX("cdcb1220d1ecccea 91e53aba3092f962"
538
"e549fe6ce9ed7fdc 43191fbde45c30b0"));
546
540
/* Test Case #7: HMAC-SHA-256 with 50-byte input and 37-byte key */
547
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
548
HL("0102030405060708 090a0b0c0d0e0f10"
549
"1112131415161718 191a1b1c1d1e1f20"
551
HL("cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
552
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
553
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
555
H("d4633c17f6fb8d74 4c66dee0f8f07455"
556
"6ec4af55ef079985 41468eb49bd2e917"));
542
SHEX("0102030405060708 090a0b0c0d0e0f10"
543
"1112131415161718 191a1b1c1d1e1f20"
545
SHEX("cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
546
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
547
"cdcdcdcdcdcdcdcd cdcdcdcdcdcdcdcd"
549
SHEX("d4633c17f6fb8d74 4c66dee0f8f07455"
550
"6ec4af55ef079985 41468eb49bd2e917"));
558
552
/* Test Case #8: HMAC-SHA-256 with 20-byte input and 32-byte key */
559
HMAC_TEST(sha256, 16,
560
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"
561
"0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"),
562
LDATA("Test With Truncation"),
563
H("7546af01841fc09b 1ab9c3749a5f1c17"));
554
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"
555
"0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c"),
556
SDATA("Test With Truncation"),
557
SHEX("7546af01841fc09b 1ab9c3749a5f1c17"));
565
559
/* Test Case #9: HMAC-SHA-256 with 54-byte input and 80-byte key */
566
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
567
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
568
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
569
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
570
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
571
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
572
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
573
H("6953025ed96f0c09 f80a96f78e6538db"
574
"e2e7b820e3dd970e 7ddd39091b32352f"));
561
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
562
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
563
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
564
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
565
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
566
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
567
SHEX("6953025ed96f0c09 f80a96f78e6538db"
568
"e2e7b820e3dd970e 7ddd39091b32352f"));
576
570
/* Test Case #10: HMAC-SHA-256 with 73-byte (multi-block) input
577
571
and 80-byte key */
578
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
579
HL("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
580
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
581
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
582
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
583
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
584
LDATA("Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"),
585
H("6355ac22e890d0a3 c8481a5ca4825bc8"
586
"84d3e7a1ff98a2fc 2ac7d8e064c3b2e6"));
573
SHEX("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
574
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
575
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
576
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"
577
"aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"),
578
SDATA("Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"),
579
SHEX("6355ac22e890d0a3 c8481a5ca4825bc8"
580
"84d3e7a1ff98a2fc 2ac7d8e064c3b2e6"));
588
582
/* Additional test vectors, from Daniel Kahn Gillmor */
589
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
590
LDATA("monkey monkey monkey monkey"),
592
H("5c780648c90d121c50091c3a0c3afc1f"
593
"4ab847528005d99d9821ad3f341b651a"));
595
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
596
LDATA("monkey monkey monkey monkey"),
598
H("6142364c0646b0cfe426866f21d613e0"
599
"55a136a7d9b45d85685e080a09cec463"));
601
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
602
LDATA("monkey monkey monkey monkey"),
604
H("e49aa7839977e130ad87b63da9d4eb7b"
605
"263cd5a27c54a7604b6044eb35901171"));
607
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
608
LDATA("monkey monkey monkey monkey"),
610
H("e5ef49f545c7af933a9d18c7c562bc91"
611
"08583fd5cf00d9e0db351d6d8f8e41bc"));
613
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
614
LDATA("monkey monkey monkey monkey"),
615
LDATA("message digest"),
616
H("373b04877180fea27a41a8fb8f88201c"
617
"a6268411ee3c80b01a424483eb9156e1"));
619
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
620
LDATA("monkey monkey monkey monkey"),
621
LDATA("abcdefghijklmnopqrstuvwxyz"),
622
H("eb5945d56eefbdb41602946ea6448d53"
623
"86b08d7d801a87f439fab52f8bb9736e"));
625
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
626
LDATA("monkey monkey monkey monkey"),
627
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
628
H("3798f363c57afa6edaffe39016ca7bad"
629
"efd1e670afb0e3987194307dec3197db"));
631
HMAC_TEST(sha256, SHA256_DIGEST_SIZE,
632
LDATA("monkey monkey monkey monkey"),
633
LDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
634
H("c89a7039a62985ff813fe4509b918a43"
635
"6d7b1ffd8778e2c24dec464849fb6128"));
584
SDATA("monkey monkey monkey monkey"),
586
SHEX("5c780648c90d121c50091c3a0c3afc1f"
587
"4ab847528005d99d9821ad3f341b651a"));
590
SDATA("monkey monkey monkey monkey"),
592
SHEX("6142364c0646b0cfe426866f21d613e0"
593
"55a136a7d9b45d85685e080a09cec463"));
596
SDATA("monkey monkey monkey monkey"),
598
SHEX("e49aa7839977e130ad87b63da9d4eb7b"
599
"263cd5a27c54a7604b6044eb35901171"));
602
SDATA("monkey monkey monkey monkey"),
604
SHEX("e5ef49f545c7af933a9d18c7c562bc91"
605
"08583fd5cf00d9e0db351d6d8f8e41bc"));
608
SDATA("monkey monkey monkey monkey"),
609
SDATA("message digest"),
610
SHEX("373b04877180fea27a41a8fb8f88201c"
611
"a6268411ee3c80b01a424483eb9156e1"));
614
SDATA("monkey monkey monkey monkey"),
615
SDATA("abcdefghijklmnopqrstuvwxyz"),
616
SHEX("eb5945d56eefbdb41602946ea6448d53"
617
"86b08d7d801a87f439fab52f8bb9736e"));
620
SDATA("monkey monkey monkey monkey"),
621
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
622
SHEX("3798f363c57afa6edaffe39016ca7bad"
623
"efd1e670afb0e3987194307dec3197db"));
626
SDATA("monkey monkey monkey monkey"),
627
SDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
628
SHEX("c89a7039a62985ff813fe4509b918a43"
629
"6d7b1ffd8778e2c24dec464849fb6128"));
637
631
/* Test vectors for sha384, from RFC 4231 */
638
HMAC_TEST(sha384, SHA384_DIGEST_SIZE,
639
HL("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
642
H("afd03944d84895626b0825f4ab46907f"
643
"15f9dadbe4101ec682aa034c7cebc59c"
644
"faea9ea9076ede7f4af152e8b2fa9cb6"));
646
HMAC_TEST(sha384, SHA384_DIGEST_SIZE,
648
LDATA("what do ya want for nothing?"),
649
H("af45d2e376484031617f78d2b58a6b1b"
650
"9c7ef464f5a01b47e42ec3736322445e"
651
"8e2240ca5e69e2c78b3239ecfab21649"));
653
HMAC_TEST(sha384, SHA384_DIGEST_SIZE,
654
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
656
HL("dddddddddddddddddddddddddddddddd"
657
"dddddddddddddddddddddddddddddddd"
658
"dddddddddddddddddddddddddddddddd"
660
H("88062608d3e6ad8a0aa2ace014c8a86f"
661
"0aa635d947ac9febe83ef4e55966144b"
662
"2a5ab39dc13814b94e3ab6e101a34f27"));
664
HMAC_TEST(sha384, SHA384_DIGEST_SIZE,
665
HL("0102030405060708090a0b0c0d0e0f10"
666
"111213141516171819"),
667
HL("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
668
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
669
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
671
H("3e8a69b7783c25851933ab6290af6ca7"
672
"7a9981480850009cc5577c6e1f573b4e"
673
"6801dd23c4a7d679ccf8a386c674cffb"));
675
HMAC_TEST(sha384, 16,
676
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
677
LDATA("Test With Truncation"),
678
H("3abf34c3503b2a23a46efc619baef897"));
680
HMAC_TEST(sha384, SHA384_DIGEST_SIZE,
681
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
682
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
683
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
684
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
685
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
686
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
687
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
688
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
690
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
691
H("4ece084485813e9088d2c63a041bc5b4"
692
"4f9ef1012a2b588f3cd11f05033ac4c6"
693
"0c2ef6ab4030fe8296248df163f44952"));
695
HMAC_TEST(sha384, SHA384_DIGEST_SIZE,
696
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
697
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
698
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
699
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
700
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
701
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
702
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
703
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
705
LDATA("This is a test using a larger than block-size ke"
633
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
636
SHEX("afd03944d84895626b0825f4ab46907f"
637
"15f9dadbe4101ec682aa034c7cebc59c"
638
"faea9ea9076ede7f4af152e8b2fa9cb6"));
642
SDATA("what do ya want for nothing?"),
643
SHEX("af45d2e376484031617f78d2b58a6b1b"
644
"9c7ef464f5a01b47e42ec3736322445e"
645
"8e2240ca5e69e2c78b3239ecfab21649"));
648
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
650
SHEX("dddddddddddddddddddddddddddddddd"
651
"dddddddddddddddddddddddddddddddd"
652
"dddddddddddddddddddddddddddddddd"
654
SHEX("88062608d3e6ad8a0aa2ace014c8a86f"
655
"0aa635d947ac9febe83ef4e55966144b"
656
"2a5ab39dc13814b94e3ab6e101a34f27"));
659
SHEX("0102030405060708090a0b0c0d0e0f10"
660
"111213141516171819"),
661
SHEX("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
662
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
663
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
665
SHEX("3e8a69b7783c25851933ab6290af6ca7"
666
"7a9981480850009cc5577c6e1f573b4e"
667
"6801dd23c4a7d679ccf8a386c674cffb"));
670
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
671
SDATA("Test With Truncation"),
672
SHEX("3abf34c3503b2a23a46efc619baef897"));
675
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
676
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
677
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
678
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
679
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
680
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
681
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
682
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
684
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
685
SHEX("4ece084485813e9088d2c63a041bc5b4"
686
"4f9ef1012a2b588f3cd11f05033ac4c6"
687
"0c2ef6ab4030fe8296248df163f44952"));
690
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
691
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
692
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
693
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
694
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
695
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
696
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
697
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
699
SDATA("This is a test using a larger than block-size ke"
706
700
"y and a larger than block-size data. The key nee"
707
701
"ds to be hashed before being used by the HMAC al"
709
H("6617178e941f020d351e2f254e8fd32c"
710
"602420feb0b8fb9adccebb82461e99c5"
711
"a678cc31e799176d3860e6110c46523e"));
703
SHEX("6617178e941f020d351e2f254e8fd32c"
704
"602420feb0b8fb9adccebb82461e99c5"
705
"a678cc31e799176d3860e6110c46523e"));
713
707
/* Test vectors for sha512, from RFC 4231 */
714
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
715
HL("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
718
H("87aa7cdea5ef619d4ff0b4241a1d6cb0"
719
"2379f4e2ce4ec2787ad0b30545e17cde"
720
"daa833b7d6b8a702038b274eaea3f4e4"
721
"be9d914eeb61f1702e696c203a126854"));
723
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
725
LDATA("what do ya want for nothing?"),
726
H("164b7a7bfcf819e2e395fbe73b56e0a3"
727
"87bd64222e831fd610270cd7ea250554"
728
"9758bf75c05a994a6d034f65f8f0e6fd"
729
"caeab1a34d4a6b4b636e070a38bce737"));
731
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
732
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
734
HL("dddddddddddddddddddddddddddddddd"
735
"dddddddddddddddddddddddddddddddd"
736
"dddddddddddddddddddddddddddddddd"
738
H("fa73b0089d56a284efb0f0756c890be9"
739
"b1b5dbdd8ee81a3655f83e33b2279d39"
740
"bf3e848279a722c806b485a47e67c807"
741
"b946a337bee8942674278859e13292fb"));
743
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
744
HL("0102030405060708090a0b0c0d0e0f10"
745
"111213141516171819"),
746
HL("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
747
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
748
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
750
H("b0ba465637458c6990e5a8c5f61d4af7"
751
"e576d97ff94b872de76f8050361ee3db"
752
"a91ca5c11aa25eb4d679275cc5788063"
753
"a5f19741120c4f2de2adebeb10a298dd"));
755
HMAC_TEST(sha512, 16,
756
HL("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
757
LDATA("Test With Truncation"),
758
H("415fad6271580a531d4179bc891d87a6"));
760
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
761
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
762
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
763
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
764
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
765
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
766
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
767
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
768
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
770
LDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
771
H("80b24263c7c1a3ebb71493c1dd7be8b4"
772
"9b46d1f41b4aeec1121b013783f8f352"
773
"6b56d037e05f2598bd0fd2215d6a1e52"
774
"95e64f73f63f0aec8b915a985d786598"));
776
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
777
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
778
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
779
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
780
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
781
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
782
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
783
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
784
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
786
LDATA("This is a test using a larger than block-size ke"
709
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
712
SHEX("87aa7cdea5ef619d4ff0b4241a1d6cb0"
713
"2379f4e2ce4ec2787ad0b30545e17cde"
714
"daa833b7d6b8a702038b274eaea3f4e4"
715
"be9d914eeb61f1702e696c203a126854"));
719
SDATA("what do ya want for nothing?"),
720
SHEX("164b7a7bfcf819e2e395fbe73b56e0a3"
721
"87bd64222e831fd610270cd7ea250554"
722
"9758bf75c05a994a6d034f65f8f0e6fd"
723
"caeab1a34d4a6b4b636e070a38bce737"));
726
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
728
SHEX("dddddddddddddddddddddddddddddddd"
729
"dddddddddddddddddddddddddddddddd"
730
"dddddddddddddddddddddddddddddddd"
732
SHEX("fa73b0089d56a284efb0f0756c890be9"
733
"b1b5dbdd8ee81a3655f83e33b2279d39"
734
"bf3e848279a722c806b485a47e67c807"
735
"b946a337bee8942674278859e13292fb"));
738
SHEX("0102030405060708090a0b0c0d0e0f10"
739
"111213141516171819"),
740
SHEX("cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
741
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
742
"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
744
SHEX("b0ba465637458c6990e5a8c5f61d4af7"
745
"e576d97ff94b872de76f8050361ee3db"
746
"a91ca5c11aa25eb4d679275cc5788063"
747
"a5f19741120c4f2de2adebeb10a298dd"));
750
SHEX("0c0c0c0c0c0c0c0c 0c0c0c0c0c0c0c0c 0c0c0c0c"),
751
SDATA("Test With Truncation"),
752
SHEX("415fad6271580a531d4179bc891d87a6"));
755
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
756
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
757
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
758
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
759
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
760
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
761
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
762
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
764
SDATA("Test Using Larger Than Block-Size Key - Hash Key First"),
765
SHEX("80b24263c7c1a3ebb71493c1dd7be8b4"
766
"9b46d1f41b4aeec1121b013783f8f352"
767
"6b56d037e05f2598bd0fd2215d6a1e52"
768
"95e64f73f63f0aec8b915a985d786598"));
771
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
772
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
773
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
774
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
775
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
776
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
777
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
778
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
780
SDATA("This is a test using a larger than block-size ke"
787
781
"y and a larger than block-size data. The key nee"
788
782
"ds to be hashed before being used by the HMAC al"
790
H("e37b6a775dc87dbaa4dfa9f96e5e3ffd"
791
"debd71f8867289865df5a32d20cdc944"
792
"b6022cac3c4982b10d5eeb55c3e4de15"
793
"134676fb6de0446065c97440fa8c6a58"));
784
SHEX("e37b6a775dc87dbaa4dfa9f96e5e3ffd"
785
"debd71f8867289865df5a32d20cdc944"
786
"b6022cac3c4982b10d5eeb55c3e4de15"
787
"134676fb6de0446065c97440fa8c6a58"));
795
789
/* Additional test vectors, from Daniel Kahn Gillmor */
796
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
797
LDATA("monkey monkey monkey monkey"),
799
H("34316413c2d6940572d0bbbf099d529d"
800
"148b424533cf562bc1b365f530e21a31"
801
"799fc51cef78060cc6f448a8e5d780c2"
802
"6cdf20d4c3e6f27fe5ef576bbd05e855"));
804
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
805
LDATA("monkey monkey monkey monkey"),
807
H("cf1948507378bc3ab58cb6ec87f4d456"
808
"b90d3298395c29873f1ded1e111b50fe"
809
"c336ed24684bf19716efc309212f37aa"
810
"715cfb9ecccf3af13691ded167b4b336"));
812
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
813
LDATA("monkey monkey monkey monkey"),
815
H("b8201784216ce01b83cdd282616c6e89"
816
"644c6dfd1269ed8580bbc39b92add364"
817
"c2b2a2018cffb1915e8625e473b67d0f"
818
"e54a50e475dfa0e2b1a97bac1383792c"));
820
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
821
LDATA("monkey monkey monkey monkey"),
823
H("f097ee08b8c44e847a384f9fd645e35e"
824
"4816baa9791ba39d3dc611210500b044"
825
"873ee296bf1047dc06daa201a5767192"
826
"5b73b4ea59c60114881c8287d0699c83"));
828
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
829
LDATA("monkey monkey monkey monkey"),
830
LDATA("message digest"),
831
H("921a441a884b83c76a8526da8e60d60d"
832
"17ded4eee5c29375e0d93717669a4c3e"
833
"eba7473e95f7c1a2a85afc24a0adbc4d"
834
"6c2bdd6ca6cab8b18d19f82d4a6c51bc"));
836
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
837
LDATA("monkey monkey monkey monkey"),
838
LDATA("abcdefghijklmnopqrstuvwxyz"),
839
H("640054c96f35815095617d0a8c956066"
840
"1a6ff46bfb39110333b2c52c8866abfb"
841
"59d9152c9b0948c1ed65c3fd72a8fb82"
842
"190acc8830770afe5b0c5b6414c75a77"));
844
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
845
LDATA("monkey monkey monkey monkey"),
846
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
847
H("835a4f5b3750b4c1fccfa88da2f746a4"
848
"900160c9f18964309bb736c13b59491b"
849
"8e32d37b724cc5aebb0f554c6338a3b5"
850
"94c4ba26862b2dadb59b7ede1d08d53e"));
852
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
853
LDATA("monkey monkey monkey monkey"),
854
LDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
855
H("fdf83dc879e3476c8e8aceff2bf6fece"
856
"2e4f39c7e1a167845465bb549dfa5ffe"
857
"997e6c7cf3720eae51ed2b00ad2a8225"
858
"375092290edfa9d48ec7e4bc8e276088"));
791
SDATA("monkey monkey monkey monkey"),
793
SHEX("34316413c2d6940572d0bbbf099d529d"
794
"148b424533cf562bc1b365f530e21a31"
795
"799fc51cef78060cc6f448a8e5d780c2"
796
"6cdf20d4c3e6f27fe5ef576bbd05e855"));
799
SDATA("monkey monkey monkey monkey"),
801
SHEX("cf1948507378bc3ab58cb6ec87f4d456"
802
"b90d3298395c29873f1ded1e111b50fe"
803
"c336ed24684bf19716efc309212f37aa"
804
"715cfb9ecccf3af13691ded167b4b336"));
807
SDATA("monkey monkey monkey monkey"),
809
SHEX("b8201784216ce01b83cdd282616c6e89"
810
"644c6dfd1269ed8580bbc39b92add364"
811
"c2b2a2018cffb1915e8625e473b67d0f"
812
"e54a50e475dfa0e2b1a97bac1383792c"));
815
SDATA("monkey monkey monkey monkey"),
817
SHEX("f097ee08b8c44e847a384f9fd645e35e"
818
"4816baa9791ba39d3dc611210500b044"
819
"873ee296bf1047dc06daa201a5767192"
820
"5b73b4ea59c60114881c8287d0699c83"));
823
SDATA("monkey monkey monkey monkey"),
824
SDATA("message digest"),
825
SHEX("921a441a884b83c76a8526da8e60d60d"
826
"17ded4eee5c29375e0d93717669a4c3e"
827
"eba7473e95f7c1a2a85afc24a0adbc4d"
828
"6c2bdd6ca6cab8b18d19f82d4a6c51bc"));
831
SDATA("monkey monkey monkey monkey"),
832
SDATA("abcdefghijklmnopqrstuvwxyz"),
833
SHEX("640054c96f35815095617d0a8c956066"
834
"1a6ff46bfb39110333b2c52c8866abfb"
835
"59d9152c9b0948c1ed65c3fd72a8fb82"
836
"190acc8830770afe5b0c5b6414c75a77"));
839
SDATA("monkey monkey monkey monkey"),
840
SDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
841
SHEX("835a4f5b3750b4c1fccfa88da2f746a4"
842
"900160c9f18964309bb736c13b59491b"
843
"8e32d37b724cc5aebb0f554c6338a3b5"
844
"94c4ba26862b2dadb59b7ede1d08d53e"));
847
SDATA("monkey monkey monkey monkey"),
848
SDATA("12345678901234567890123456789012345678901234567890123456789012345678901234567890"),
849
SHEX("fdf83dc879e3476c8e8aceff2bf6fece"
850
"2e4f39c7e1a167845465bb549dfa5ffe"
851
"997e6c7cf3720eae51ed2b00ad2a8225"
852
"375092290edfa9d48ec7e4bc8e276088"));
860
854
/* Additional test vectors, from
861
855
draft-kelly-ipsec-ciph-sha2-01.txt */
863
857
/* Test case AUTH512-1: */
864
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
865
HL("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
866
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
867
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
868
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"),
870
H("637edc6e01dce7e6742a99451aae82df"
871
"23da3e92439e590e43e761b33e910fb8"
872
"ac2878ebd5803f6f0b61dbce5e251ff8"
873
"789a4722c1be65aea45fd464e89f8f5b"));
859
SHEX("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
860
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
861
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"
862
"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b"),
864
SHEX("637edc6e01dce7e6742a99451aae82df"
865
"23da3e92439e590e43e761b33e910fb8"
866
"ac2878ebd5803f6f0b61dbce5e251ff8"
867
"789a4722c1be65aea45fd464e89f8f5b"));
875
869
/* Test case AUTH512-2: */
876
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
877
LDATA("JefeJefeJefeJefe"
871
SDATA("JefeJefeJefeJefe"
878
872
"JefeJefeJefeJefe"
879
873
"JefeJefeJefeJefe"
880
874
"JefeJefeJefeJefe"),
881
LDATA("what do ya want for nothing?"),
882
H("cb370917ae8a7ce28cfd1d8f4705d614"
883
"1c173b2a9362c15df235dfb251b15454"
884
"6aa334ae9fb9afc2184932d8695e397b"
885
"fa0ffb93466cfcceaae38c833b7dba38"));
875
SDATA("what do ya want for nothing?"),
876
SHEX("cb370917ae8a7ce28cfd1d8f4705d614"
877
"1c173b2a9362c15df235dfb251b15454"
878
"6aa334ae9fb9afc2184932d8695e397b"
879
"fa0ffb93466cfcceaae38c833b7dba38"));
887
881
/* Test case AUTH512-3: */
888
HMAC_TEST(sha512, SHA512_DIGEST_SIZE,
889
HL("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
890
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
891
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
892
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
893
HL("dddddddddddddddddddddddddddddddd"
894
"dddddddddddddddddddddddddddddddd"
895
"dddddddddddddddddddddddddddddddd"
897
H("2ee7acd783624ca9398710f3ee05ae41"
898
"b9f9b0510c87e49e586cc9bf961733d8"
899
"623c7b55cebefccf02d5581acc1c9d5f"
900
"b1ff68a1de45509fbe4da9a433922655"));
883
SHEX("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
884
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
885
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
886
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"),
887
SHEX("dddddddddddddddddddddddddddddddd"
888
"dddddddddddddddddddddddddddddddd"
889
"dddddddddddddddddddddddddddddddd"
891
SHEX("2ee7acd783624ca9398710f3ee05ae41"
892
"b9f9b0510c87e49e586cc9bf961733d8"
893
"623c7b55cebefccf02d5581acc1c9d5f"
894
"b1ff68a1de45509fbe4da9a433922655"));
902
896
/* Test case AUTH512-3 from same document seems broken. */