1 1.4 christos /* $NetBSD: hmac_test.c,v 1.4 2025/07/17 19:01:47 christos Exp $ */ 2 1.1 christos 3 1.1 christos /* 4 1.1 christos * Copyright (C) Internet Systems Consortium, Inc. ("ISC") 5 1.1 christos * 6 1.1 christos * SPDX-License-Identifier: MPL-2.0 7 1.1 christos * 8 1.1 christos * This Source Code Form is subject to the terms of the Mozilla Public 9 1.1 christos * License, v. 2.0. If a copy of the MPL was not distributed with this 10 1.1 christos * file, you can obtain one at https://mozilla.org/MPL/2.0/. 11 1.1 christos * 12 1.1 christos * See the COPYRIGHT file distributed with this work for additional 13 1.1 christos * information regarding copyright ownership. 14 1.1 christos */ 15 1.1 christos 16 1.1 christos /* ! \file */ 17 1.1 christos 18 1.1 christos #include <inttypes.h> 19 1.1 christos #include <sched.h> /* IWYU pragma: keep */ 20 1.1 christos #include <setjmp.h> 21 1.1 christos #include <stdarg.h> 22 1.1 christos #include <stddef.h> 23 1.1 christos #include <stdlib.h> 24 1.1 christos #include <string.h> 25 1.1 christos 26 1.1 christos /* 27 1.1 christos * As a workaround, include an OpenSSL header file before including cmocka.h, 28 1.1 christos * because OpenSSL 3.1.0 uses __attribute__(malloc), conflicting with a 29 1.1 christos * redefined malloc in cmocka.h. 30 1.1 christos */ 31 1.1 christos #include <openssl/err.h> 32 1.1 christos 33 1.1 christos #define UNIT_TESTING 34 1.1 christos #include <cmocka.h> 35 1.1 christos 36 1.1 christos #include <isc/buffer.h> 37 1.3 christos #include <isc/fips.h> 38 1.1 christos #include <isc/hex.h> 39 1.1 christos #include <isc/hmac.h> 40 1.1 christos #include <isc/region.h> 41 1.1 christos #include <isc/result.h> 42 1.1 christos 43 1.1 christos #include "hmac.c" 44 1.1 christos 45 1.1 christos #include <tests/isc.h> 46 1.1 christos 47 1.1 christos #define TEST_INPUT(x) (x), sizeof(x) - 1 48 1.1 christos 49 1.1 christos static int 50 1.1 christos _setup(void **state) { 51 1.1 christos isc_hmac_t *hmac_st = isc_hmac_new(); 52 1.1 christos if (hmac_st == NULL) { 53 1.3 christos return -1; 54 1.1 christos } 55 1.1 christos *state = hmac_st; 56 1.3 christos return 0; 57 1.1 christos } 58 1.1 christos 59 1.1 christos static int 60 1.1 christos _teardown(void **state) { 61 1.1 christos if (*state == NULL) { 62 1.3 christos return -1; 63 1.1 christos } 64 1.1 christos isc_hmac_free(*state); 65 1.3 christos return 0; 66 1.1 christos } 67 1.1 christos 68 1.1 christos static int 69 1.1 christos _reset(void **state) { 70 1.1 christos if (*state == NULL) { 71 1.3 christos return -1; 72 1.1 christos } 73 1.1 christos if (isc_hmac_reset(*state) != ISC_R_SUCCESS) { 74 1.3 christos return -1; 75 1.1 christos } 76 1.3 christos return 0; 77 1.1 christos } 78 1.1 christos 79 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_new) { 80 1.1 christos UNUSED(state); 81 1.1 christos 82 1.1 christos isc_hmac_t *hmac_st = isc_hmac_new(); 83 1.1 christos assert_non_null(hmac_st); 84 1.1 christos isc_hmac_free(hmac_st); /* Cleanup */ 85 1.1 christos } 86 1.1 christos 87 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_free) { 88 1.1 christos UNUSED(state); 89 1.1 christos 90 1.1 christos isc_hmac_t *hmac_st = isc_hmac_new(); 91 1.1 christos assert_non_null(hmac_st); 92 1.1 christos isc_hmac_free(hmac_st); /* Test freeing valid message digest context */ 93 1.1 christos isc_hmac_free(NULL); /* Test freeing NULL argument */ 94 1.1 christos } 95 1.1 christos 96 1.1 christos static void 97 1.1 christos isc_hmac_test(isc_hmac_t *hmac_st, const void *key, size_t keylen, 98 1.1 christos const isc_md_type_t *type, const char *buf, size_t buflen, 99 1.1 christos const char *result, const size_t repeats) { 100 1.1 christos isc_result_t res; 101 1.1 christos 102 1.1 christos assert_non_null(hmac_st); 103 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, key, keylen, type), 104 1.1 christos ISC_R_SUCCESS); 105 1.1 christos 106 1.1 christos for (size_t i = 0; i < repeats; i++) { 107 1.1 christos assert_int_equal(isc_hmac_update(hmac_st, 108 1.1 christos (const unsigned char *)buf, 109 1.1 christos buflen), 110 1.1 christos ISC_R_SUCCESS); 111 1.1 christos } 112 1.1 christos 113 1.1 christos unsigned char digest[ISC_MAX_MD_SIZE]; 114 1.1 christos unsigned int digestlen = sizeof(digest); 115 1.1 christos assert_int_equal(isc_hmac_final(hmac_st, digest, &digestlen), 116 1.1 christos ISC_R_SUCCESS); 117 1.1 christos 118 1.1 christos char hexdigest[ISC_MAX_MD_SIZE * 2 + 3]; 119 1.1 christos isc_region_t r = { .base = digest, .length = digestlen }; 120 1.1 christos isc_buffer_t b; 121 1.1 christos isc_buffer_init(&b, hexdigest, sizeof(hexdigest)); 122 1.1 christos 123 1.1 christos res = isc_hex_totext(&r, 0, "", &b); 124 1.1 christos 125 1.1 christos assert_return_code(res, ISC_R_SUCCESS); 126 1.1 christos 127 1.4 christos assert_memory_equal(hexdigest, result, result ? strlen(result) : 0); 128 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 129 1.1 christos } 130 1.1 christos 131 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_init) { 132 1.1 christos isc_hmac_t *hmac_st = *state; 133 1.1 christos assert_non_null(hmac_st); 134 1.1 christos 135 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, NULL), 136 1.1 christos ISC_R_NOTIMPLEMENTED); 137 1.1 christos 138 1.3 christos if (!isc_fips_mode()) { 139 1.3 christos expect_assert_failure(isc_hmac_init(NULL, "", 0, ISC_MD_MD5)); 140 1.3 christos 141 1.3 christos expect_assert_failure( 142 1.3 christos isc_hmac_init(hmac_st, NULL, 0, ISC_MD_MD5)); 143 1.1 christos 144 1.3 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_MD5), 145 1.3 christos ISC_R_SUCCESS); 146 1.3 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 147 1.3 christos } 148 1.1 christos 149 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA1), 150 1.1 christos ISC_R_SUCCESS); 151 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 152 1.1 christos 153 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA224), 154 1.1 christos ISC_R_SUCCESS); 155 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 156 1.1 christos 157 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA256), 158 1.1 christos ISC_R_SUCCESS); 159 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 160 1.1 christos 161 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA384), 162 1.1 christos ISC_R_SUCCESS); 163 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 164 1.1 christos 165 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA512), 166 1.1 christos ISC_R_SUCCESS); 167 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 168 1.1 christos } 169 1.1 christos 170 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_update) { 171 1.1 christos isc_hmac_t *hmac_st = *state; 172 1.1 christos assert_non_null(hmac_st); 173 1.1 christos 174 1.1 christos /* Uses message digest context initialized in isc_hmac_init_test() */ 175 1.1 christos expect_assert_failure(isc_hmac_update(NULL, NULL, 0)); 176 1.1 christos 177 1.1 christos assert_int_equal(isc_hmac_update(hmac_st, NULL, 100), ISC_R_SUCCESS); 178 1.1 christos assert_int_equal(isc_hmac_update(hmac_st, (const unsigned char *)"", 0), 179 1.1 christos ISC_R_SUCCESS); 180 1.1 christos } 181 1.1 christos 182 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_reset) { 183 1.1 christos isc_hmac_t *hmac_st = *state; 184 1.1 christos #if 0 185 1.3 christos unsigned char digest[ISC_MAX_MD_SIZE] ISC_ATTR_UNUSED; 186 1.3 christos unsigned int digestlen ISC_ATTR_UNUSED; 187 1.1 christos #endif /* if 0 */ 188 1.1 christos 189 1.1 christos assert_non_null(hmac_st); 190 1.1 christos 191 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA512), 192 1.1 christos ISC_R_SUCCESS); 193 1.1 christos assert_int_equal( 194 1.1 christos isc_hmac_update(hmac_st, (const unsigned char *)"a", 1), 195 1.1 christos ISC_R_SUCCESS); 196 1.1 christos assert_int_equal( 197 1.1 christos isc_hmac_update(hmac_st, (const unsigned char *)"b", 1), 198 1.1 christos ISC_R_SUCCESS); 199 1.1 christos 200 1.1 christos assert_int_equal(isc_hmac_reset(hmac_st), ISC_R_SUCCESS); 201 1.1 christos 202 1.1 christos #if 0 203 1.1 christos /* 204 1.1 christos * This test would require OpenSSL compiled with mock_assert(), 205 1.1 christos * so this could be only manually checked that the test will 206 1.1 christos * segfault when called by hand 207 1.1 christos */ 208 1.1 christos expect_assert_failure(isc_hmac_final(hmac_st, digest, &digestlen)); 209 1.1 christos #endif /* if 0 */ 210 1.1 christos } 211 1.1 christos 212 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_final) { 213 1.1 christos isc_hmac_t *hmac_st = *state; 214 1.1 christos assert_non_null(hmac_st); 215 1.1 christos 216 1.1 christos unsigned char digest[ISC_MAX_MD_SIZE]; 217 1.1 christos unsigned int digestlen = sizeof(digest); 218 1.1 christos 219 1.1 christos /* Fail when message digest context is empty */ 220 1.1 christos expect_assert_failure(isc_hmac_final(NULL, digest, &digestlen)); 221 1.1 christos /* Fail when output buffer is empty */ 222 1.1 christos expect_assert_failure(isc_hmac_final(hmac_st, NULL, &digestlen)); 223 1.1 christos 224 1.1 christos assert_int_equal(isc_hmac_init(hmac_st, "", 0, ISC_MD_SHA512), 225 1.1 christos ISC_R_SUCCESS); 226 1.1 christos /* Fail when the digest length pointer is empty */ 227 1.1 christos expect_assert_failure(isc_hmac_final(hmac_st, digest, NULL)); 228 1.1 christos } 229 1.1 christos 230 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_md5) { 231 1.1 christos isc_hmac_t *hmac_st = *state; 232 1.1 christos 233 1.3 christos if (isc_fips_mode()) { 234 1.3 christos skip(); 235 1.3 christos return; 236 1.3 christos } 237 1.3 christos 238 1.1 christos /* Test 0 */ 239 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT(""), ISC_MD_MD5, TEST_INPUT(""), 240 1.1 christos "74E6F7298A9C2D168935F58C001BAD88", 1); 241 1.1 christos 242 1.1 christos /* Test 1 */ 243 1.1 christos isc_hmac_test(hmac_st, 244 1.1 christos TEST_INPUT("\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 245 1.1 christos "\x0b\x0b\x0b\x0b\x0b\x0b"), 246 1.1 christos ISC_MD_MD5, 247 1.1 christos TEST_INPUT("\x48\x69\x20\x54\x68\x65\x72\x65"), 248 1.1 christos "9294727A3638BB1C13F48EF8158BFC9D", 1); 249 1.1 christos 250 1.1 christos /* Test 2 */ 251 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT("Jefe"), ISC_MD_MD5, 252 1.1 christos TEST_INPUT("\x77\x68\x61\x74\x20\x64\x6f\x20\x79" 253 1.1 christos "\x61\x20\x77\x61\x6e\x74\x20\x66\x6f" 254 1.1 christos "\x72\x20\x6e\x6f\x74\x68\x69\x6e\x67\x3f"), 255 1.1 christos "750C783E6AB0B503EAA86E310A5DB738", 1); 256 1.1 christos 257 1.1 christos /* Test 3 */ 258 1.1 christos isc_hmac_test(hmac_st, 259 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 260 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa"), 261 1.1 christos ISC_MD_MD5, 262 1.1 christos TEST_INPUT("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 263 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 264 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 265 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 266 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"), 267 1.1 christos "56BE34521D144C88DBB8C733F0E8B3F6", 1); 268 1.1 christos /* Test 4 */ 269 1.1 christos isc_hmac_test(hmac_st, 270 1.1 christos TEST_INPUT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a" 271 1.1 christos "\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14" 272 1.1 christos "\x15\x16\x17\x18\x19"), 273 1.1 christos ISC_MD_MD5, 274 1.1 christos TEST_INPUT("\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 275 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 276 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 277 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 278 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"), 279 1.1 christos "697EAF0ACA3A3AEA3A75164746FFAA79", 1); 280 1.1 christos #if 0 281 1.1 christos /* Test 5 -- unimplemented optional functionality */ 282 1.1 christos isc_hmac_test(hmac_st, 283 1.1 christos TEST_INPUT("\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 284 1.1 christos "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"), 285 1.1 christos ISC_MD_MD5, 286 1.1 christos TEST_INPUT("Test With Truncation"), 287 1.1 christos "4C1A03424B55E07FE7F27BE1", 288 1.1 christos 1); 289 1.1 christos /* Test 6 -- unimplemented optional functionality */ 290 1.1 christos isc_hmac_test(hmac_st, 291 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 292 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 293 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 294 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 295 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 296 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 297 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 298 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 299 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 300 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 301 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 302 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 303 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 304 1.1 christos ISC_MD_MD5, 305 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key - " 306 1.1 christos "Hash Key First"), 307 1.1 christos "AA4AE5E15272D00E95705637CE8A3B55ED402112", 308 1.1 christos 1); 309 1.1 christos /* Test 7 -- unimplemented optional functionality */ 310 1.1 christos isc_hmac_test(hmac_st, 311 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 312 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 313 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 314 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 315 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 316 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 317 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 318 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 319 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 320 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 321 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 322 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 323 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 324 1.1 christos ISC_MD_MD5, 325 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key and " 326 1.1 christos "Larger Than One Block-Size Data"), 327 1.1 christos "E8E99D0F45237D786D6BBAA7965C7808BBFF1A91", 328 1.1 christos 1); 329 1.1 christos #endif /* if 0 */ 330 1.1 christos } 331 1.1 christos 332 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_sha1) { 333 1.1 christos isc_hmac_t *hmac_st = *state; 334 1.1 christos 335 1.1 christos /* Test 0 */ 336 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT(""), ISC_MD_SHA1, TEST_INPUT(""), 337 1.1 christos "FBDB1D1B18AA6C08324B7D64B71FB76370690E1D", 1); 338 1.1 christos 339 1.1 christos /* Test 1 */ 340 1.1 christos isc_hmac_test(hmac_st, 341 1.1 christos TEST_INPUT("\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 342 1.1 christos "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"), 343 1.1 christos ISC_MD_SHA1, 344 1.1 christos TEST_INPUT("\x48\x69\x20\x54\x68\x65\x72\x65"), 345 1.1 christos "B617318655057264E28BC0B6FB378C8EF146BE00", 1); 346 1.1 christos /* Test 2 */ 347 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT("Jefe"), ISC_MD_SHA1, 348 1.1 christos TEST_INPUT("\x77\x68\x61\x74\x20\x64\x6f\x20\x79\x61" 349 1.1 christos "\x20\x77\x61\x6e\x74\x20\x66\x6f\x72\x20" 350 1.1 christos "\x6e\x6f\x74\x68\x69\x6e\x67\x3f"), 351 1.1 christos "EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79", 1); 352 1.1 christos /* Test 3 */ 353 1.1 christos isc_hmac_test(hmac_st, 354 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 355 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 356 1.1 christos ISC_MD_SHA1, 357 1.1 christos TEST_INPUT("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 358 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 359 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 360 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 361 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"), 362 1.1 christos "125D7342B9AC11CD91A39AF48AA17B4F63F175D3", 1); 363 1.1 christos /* Test 4 */ 364 1.1 christos isc_hmac_test(hmac_st, 365 1.1 christos TEST_INPUT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a" 366 1.1 christos "\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14" 367 1.1 christos "\x15\x16\x17\x18\x19"), 368 1.1 christos ISC_MD_SHA1, 369 1.1 christos TEST_INPUT("\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 370 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 371 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 372 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 373 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"), 374 1.1 christos "4C9007F4026250C6BC8414F9BF50C86C2D7235DA", 1); 375 1.1 christos #if 0 376 1.1 christos /* Test 5 */ 377 1.1 christos isc_hmac_test(hmac_st, 378 1.1 christos TEST_INPUT("\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 379 1.1 christos "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"), 380 1.1 christos ISC_MD_SHA1, 381 1.1 christos TEST_INPUT("Test With Truncation"), 382 1.1 christos "4C1A03424B55E07FE7F27BE1", 383 1.1 christos 1); 384 1.1 christos #endif /* if 0 */ 385 1.1 christos /* Test 6 */ 386 1.1 christos isc_hmac_test(hmac_st, 387 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 388 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 389 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 390 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 391 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 392 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 393 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 394 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 395 1.1 christos ISC_MD_SHA1, 396 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key - " 397 1.1 christos "Hash Key First"), 398 1.1 christos "AA4AE5E15272D00E95705637CE8A3B55ED402112", 1); 399 1.1 christos /* Test 7 */ 400 1.1 christos isc_hmac_test(hmac_st, 401 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 402 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 403 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 404 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 405 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 406 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 407 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 408 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 409 1.1 christos ISC_MD_SHA1, 410 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key and " 411 1.1 christos "Larger Than One Block-Size Data"), 412 1.1 christos "E8E99D0F45237D786D6BBAA7965C7808BBFF1A91", 1); 413 1.1 christos } 414 1.1 christos 415 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_sha224) { 416 1.1 christos isc_hmac_t *hmac_st = *state; 417 1.1 christos 418 1.1 christos /* Test 0 */ 419 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT(""), ISC_MD_SHA224, TEST_INPUT(""), 420 1.1 christos "5CE14F72894662213E2748D2A6BA234B74263910CEDDE2F5" 421 1.1 christos "A9271524", 422 1.1 christos 1); 423 1.1 christos 424 1.1 christos /* Test 1 */ 425 1.1 christos isc_hmac_test(hmac_st, 426 1.1 christos TEST_INPUT("\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 427 1.1 christos "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"), 428 1.1 christos ISC_MD_SHA224, 429 1.1 christos TEST_INPUT("\x48\x69\x20\x54\x68\x65\x72\x65"), 430 1.1 christos "896FB1128ABBDF196832107CD49DF33F47B4B1169912BA" 431 1.1 christos "4F53684B22", 432 1.1 christos 1); 433 1.1 christos /* Test 2 */ 434 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT("Jefe"), ISC_MD_SHA224, 435 1.1 christos TEST_INPUT("\x77\x68\x61\x74\x20\x64\x6f\x20\x79\x61" 436 1.1 christos "\x20\x77\x61\x6e\x74\x20\x66\x6f\x72\x20" 437 1.1 christos "\x6e\x6f\x74\x68\x69\x6e\x67\x3f"), 438 1.1 christos "A30E01098BC6DBBF45690F3A7E9E6D0F8BBEA2A39E61480" 439 1.1 christos "08FD05E44", 440 1.1 christos 1); 441 1.1 christos /* Test 3 */ 442 1.1 christos isc_hmac_test(hmac_st, 443 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 444 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 445 1.1 christos ISC_MD_SHA224, 446 1.1 christos TEST_INPUT("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 447 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 448 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 449 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 450 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"), 451 1.1 christos "7FB3CB3588C6C1F6FFA9694D7D6AD2649365B0C1F65D69" 452 1.1 christos "D1EC8333EA", 453 1.1 christos 1); 454 1.1 christos /* Test 4 */ 455 1.1 christos isc_hmac_test(hmac_st, 456 1.1 christos TEST_INPUT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a" 457 1.1 christos "\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14" 458 1.1 christos "\x15\x16\x17\x18\x19"), 459 1.1 christos ISC_MD_SHA224, 460 1.1 christos TEST_INPUT("\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 461 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 462 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 463 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 464 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"), 465 1.1 christos "6C11506874013CAC6A2ABC1BB382627CEC6A90D86EFC01" 466 1.1 christos "2DE7AFEC5A", 467 1.1 christos 1); 468 1.1 christos #if 0 469 1.1 christos /* Test 5 -- unimplemented optional functionality */ 470 1.1 christos isc_hmac_test(hmac_st, 471 1.1 christos TEST_INPUT("\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 472 1.1 christos "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"), 473 1.1 christos ISC_MD_SHA224, 474 1.1 christos TEST_INPUT("Test With Truncation"), 475 1.1 christos "4C1A03424B55E07FE7F27BE1", 476 1.1 christos 1); 477 1.1 christos #endif /* if 0 */ 478 1.1 christos /* Test 6 */ 479 1.1 christos isc_hmac_test(hmac_st, 480 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 481 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 482 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 483 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 484 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 485 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 486 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 487 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 488 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 489 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 490 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 491 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 492 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 493 1.1 christos "\xaa"), 494 1.1 christos ISC_MD_SHA224, 495 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key - " 496 1.1 christos "Hash Key First"), 497 1.1 christos "95E9A0DB962095ADAEBE9B2D6F0DBCE2D499F112F2D2B7" 498 1.1 christos "273FA6870E", 499 1.1 christos 1); 500 1.1 christos /* Test 7 */ 501 1.1 christos isc_hmac_test(hmac_st, 502 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 503 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 504 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 505 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 506 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 507 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 508 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 509 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 510 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 511 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 512 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 513 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 514 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 515 1.1 christos "\xaa"), 516 1.1 christos ISC_MD_SHA224, 517 1.1 christos TEST_INPUT("\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20" 518 1.1 christos "\x74\x65\x73\x74\x20\x75\x73\x69\x6e\x67" 519 1.1 christos "\x20\x61\x20\x6c\x61\x72\x67\x65\x72\x20" 520 1.1 christos "\x74\x68\x61\x6e\x20\x62\x6c\x6f\x63\x6b" 521 1.1 christos "\x2d\x73\x69\x7a\x65\x20\x6b\x65\x79\x20" 522 1.1 christos "\x61\x6e\x64\x20\x61\x20\x6c\x61\x72\x67" 523 1.1 christos "\x65\x72\x20\x74\x68\x61\x6e\x20\x62\x6c" 524 1.1 christos "\x6f\x63\x6b\x2d\x73\x69\x7a\x65\x20\x64" 525 1.1 christos "\x61\x74\x61\x2e\x20\x54\x68\x65\x20\x6b" 526 1.1 christos "\x65\x79\x20\x6e\x65\x65\x64\x73\x20\x74" 527 1.1 christos "\x6f\x20\x62\x65\x20\x68\x61\x73\x68\x65" 528 1.1 christos "\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x62" 529 1.1 christos "\x65\x69\x6e\x67\x20\x75\x73\x65\x64\x20" 530 1.1 christos "\x62\x79\x20\x74\x68\x65\x20\x48\x4d\x41" 531 1.1 christos "\x43\x20\x61\x6c\x67\x6f\x72\x69\x74\x68" 532 1.1 christos "\x6d\x2e"), 533 1.1 christos "3A854166AC5D9F023F54D517D0B39DBD946770DB9C2B95" 534 1.1 christos "C9F6F565D1", 535 1.1 christos 1); 536 1.1 christos } 537 1.1 christos 538 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_sha256) { 539 1.1 christos isc_hmac_t *hmac_st = *state; 540 1.1 christos 541 1.1 christos /* Test 0 */ 542 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT(""), ISC_MD_SHA256, TEST_INPUT(""), 543 1.1 christos "B613679A0814D9EC772F95D778C35FC5FF1697C493715653" 544 1.1 christos "C6C712144292C5AD", 545 1.1 christos 1); 546 1.1 christos 547 1.1 christos /* Test 1 */ 548 1.1 christos isc_hmac_test(hmac_st, 549 1.1 christos TEST_INPUT("\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 550 1.1 christos "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"), 551 1.1 christos ISC_MD_SHA256, 552 1.1 christos TEST_INPUT("\x48\x69\x20\x54\x68\x65\x72\x65"), 553 1.1 christos "B0344C61D8DB38535CA8AFCEAF0BF12B881DC200C9833D" 554 1.1 christos "A726E9376C2E32CFF7", 555 1.1 christos 1); 556 1.1 christos /* Test 2 */ 557 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT("Jefe"), ISC_MD_SHA256, 558 1.1 christos TEST_INPUT("\x77\x68\x61\x74\x20\x64\x6f\x20\x79\x61" 559 1.1 christos "\x20\x77\x61\x6e\x74\x20\x66\x6f\x72\x20" 560 1.1 christos "\x6e\x6f\x74\x68\x69\x6e\x67\x3f"), 561 1.1 christos "5BDCC146BF60754E6A042426089575C75A003F089D2739" 562 1.1 christos "839DEC58B964EC3843", 563 1.1 christos 1); 564 1.1 christos /* Test 3 */ 565 1.1 christos isc_hmac_test(hmac_st, 566 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 567 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 568 1.1 christos ISC_MD_SHA256, 569 1.1 christos TEST_INPUT("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 570 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 571 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 572 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 573 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"), 574 1.1 christos "773EA91E36800E46854DB8EBD09181A72959098B3EF8C1" 575 1.1 christos "22D9635514CED565FE", 576 1.1 christos 1); 577 1.1 christos /* Test 4 */ 578 1.1 christos isc_hmac_test(hmac_st, 579 1.1 christos TEST_INPUT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a" 580 1.1 christos "\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14" 581 1.1 christos "\x15\x16\x17\x18\x19"), 582 1.1 christos ISC_MD_SHA256, 583 1.1 christos TEST_INPUT("\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 584 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 585 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 586 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 587 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"), 588 1.1 christos "82558A389A443C0EA4CC819899F2083A85F0FAA3E578F8" 589 1.1 christos "077A2E3FF46729665B", 590 1.1 christos 1); 591 1.1 christos #if 0 592 1.1 christos /* Test 5 -- unimplemented optional functionality */ 593 1.1 christos isc_hmac_test(hmac_st, 594 1.1 christos TEST_INPUT("\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 595 1.1 christos "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"), 596 1.1 christos ISC_MD_SHA256, 597 1.1 christos TEST_INPUT("Test With Truncation"), 598 1.1 christos "4C1A03424B55E07FE7F27BE1", 599 1.1 christos 1); 600 1.1 christos #endif /* if 0 */ 601 1.1 christos /* Test 6 */ 602 1.1 christos isc_hmac_test(hmac_st, 603 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 604 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 605 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 606 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 607 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 608 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 609 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 610 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 611 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 612 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 613 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 614 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 615 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 616 1.1 christos "\xaa"), 617 1.1 christos ISC_MD_SHA256, 618 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key - " 619 1.1 christos "Hash Key First"), 620 1.1 christos "60E431591EE0B67F0D8A26AACBF5B77F8E0BC6213728C5" 621 1.1 christos "140546040F0EE37F54", 622 1.1 christos 1); 623 1.1 christos /* Test 7 */ 624 1.1 christos isc_hmac_test(hmac_st, 625 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 626 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 627 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 628 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 629 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 630 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 631 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 632 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 633 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 634 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 635 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 636 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 637 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 638 1.1 christos "\xaa"), 639 1.1 christos ISC_MD_SHA256, 640 1.1 christos TEST_INPUT("\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20" 641 1.1 christos "\x74\x65\x73\x74\x20\x75\x73\x69\x6e\x67" 642 1.1 christos "\x20\x61\x20\x6c\x61\x72\x67\x65\x72\x20" 643 1.1 christos "\x74\x68\x61\x6e\x20\x62\x6c\x6f\x63\x6b" 644 1.1 christos "\x2d\x73\x69\x7a\x65\x20\x6b\x65\x79\x20" 645 1.1 christos "\x61\x6e\x64\x20\x61\x20\x6c\x61\x72\x67" 646 1.1 christos "\x65\x72\x20\x74\x68\x61\x6e\x20\x62\x6c" 647 1.1 christos "\x6f\x63\x6b\x2d\x73\x69\x7a\x65\x20\x64" 648 1.1 christos "\x61\x74\x61\x2e\x20\x54\x68\x65\x20\x6b" 649 1.1 christos "\x65\x79\x20\x6e\x65\x65\x64\x73\x20\x74" 650 1.1 christos "\x6f\x20\x62\x65\x20\x68\x61\x73\x68\x65" 651 1.1 christos "\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x62" 652 1.1 christos "\x65\x69\x6e\x67\x20\x75\x73\x65\x64\x20" 653 1.1 christos "\x62\x79\x20\x74\x68\x65\x20\x48\x4d\x41" 654 1.1 christos "\x43\x20\x61\x6c\x67\x6f\x72\x69\x74\x68" 655 1.1 christos "\x6d\x2e"), 656 1.1 christos "9B09FFA71B942FCB27635FBCD5B0E944BFDC63644F0713" 657 1.1 christos "938A7F51535C3A35E2", 658 1.1 christos 1); 659 1.1 christos } 660 1.1 christos 661 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_sha384) { 662 1.1 christos isc_hmac_t *hmac_st = *state; 663 1.1 christos 664 1.1 christos /* Test 0 */ 665 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT(""), ISC_MD_SHA384, TEST_INPUT(""), 666 1.1 christos "6C1F2EE938FAD2E24BD91298474382CA218C75DB3D83E114" 667 1.1 christos "B3D4367776D14D3551289E75E8209CD4B792302840234ADC", 668 1.1 christos 1); 669 1.1 christos 670 1.1 christos /* Test 1 */ 671 1.1 christos isc_hmac_test(hmac_st, 672 1.1 christos TEST_INPUT("\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 673 1.1 christos "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"), 674 1.1 christos ISC_MD_SHA384, 675 1.1 christos TEST_INPUT("\x48\x69\x20\x54\x68\x65\x72\x65"), 676 1.1 christos "AFD03944D84895626B0825F4AB46907F15F9DADBE4101E" 677 1.1 christos "C682AA034C7CEBC59CFAEA9EA9076EDE7F4AF152" 678 1.1 christos "E8B2FA9CB6", 679 1.1 christos 1); 680 1.1 christos /* Test 2 */ 681 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT("Jefe"), ISC_MD_SHA384, 682 1.1 christos TEST_INPUT("\x77\x68\x61\x74\x20\x64\x6f\x20\x79\x61" 683 1.1 christos "\x20\x77\x61\x6e\x74\x20\x66\x6f\x72\x20" 684 1.1 christos "\x6e\x6f\x74\x68\x69\x6e\x67\x3f"), 685 1.1 christos "AF45D2E376484031617F78D2B58A6B1B9C7EF464F5A01B" 686 1.1 christos "47E42EC3736322445E8E2240CA5E69E2C78B3239" 687 1.1 christos "ECFAB21649", 688 1.1 christos 1); 689 1.1 christos /* Test 3 */ 690 1.1 christos isc_hmac_test(hmac_st, 691 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 692 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 693 1.1 christos ISC_MD_SHA384, 694 1.1 christos TEST_INPUT("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 695 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 696 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 697 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 698 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"), 699 1.1 christos "88062608D3E6AD8A0AA2ACE014C8A86F0AA635D947AC9F" 700 1.1 christos "EBE83EF4E55966144B2A5AB39DC13814B94E3AB6" 701 1.1 christos "E101A34F27", 702 1.1 christos 1); 703 1.1 christos /* Test 4 */ 704 1.1 christos isc_hmac_test(hmac_st, 705 1.1 christos TEST_INPUT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a" 706 1.1 christos "\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14" 707 1.1 christos "\x15\x16\x17\x18\x19"), 708 1.1 christos ISC_MD_SHA384, 709 1.1 christos TEST_INPUT("\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 710 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 711 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 712 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 713 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"), 714 1.1 christos "3E8A69B7783C25851933AB6290AF6CA77A998148085000" 715 1.1 christos "9CC5577C6E1F573B4E6801DD23C4A7D679CCF8A3" 716 1.1 christos "86C674CFFB", 717 1.1 christos 1); 718 1.1 christos #if 0 719 1.1 christos /* Test 5 -- unimplemented optional functionality */ 720 1.1 christos isc_hmac_test(hmac_st, 721 1.1 christos TEST_INPUT("\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 722 1.1 christos "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"), 723 1.1 christos ISC_MD_SHA384, 724 1.1 christos TEST_INPUT("Test With Truncation"), 725 1.1 christos "4C1A03424B55E07FE7F27BE1", 726 1.1 christos 1); 727 1.1 christos #endif /* if 0 */ 728 1.1 christos /* Test 6 */ 729 1.1 christos isc_hmac_test(hmac_st, 730 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 731 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 732 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 733 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 734 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 735 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 736 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 737 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 738 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 739 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 740 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 741 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 742 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 743 1.1 christos "\xaa"), 744 1.1 christos ISC_MD_SHA384, 745 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key - " 746 1.1 christos "Hash Key First"), 747 1.1 christos "4ECE084485813E9088D2C63A041BC5B44F9EF1012A2B58" 748 1.1 christos "8F3CD11F05033AC4C60C2EF6AB4030FE8296248D" 749 1.1 christos "F163F44952", 750 1.1 christos 1); 751 1.1 christos /* Test 7 */ 752 1.1 christos isc_hmac_test(hmac_st, 753 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 754 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 755 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 756 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 757 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 758 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 759 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 760 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 761 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 762 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 763 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 764 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 765 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 766 1.1 christos "\xaa"), 767 1.1 christos ISC_MD_SHA384, 768 1.1 christos TEST_INPUT("\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20" 769 1.1 christos "\x74\x65\x73\x74\x20\x75\x73\x69\x6e\x67" 770 1.1 christos "\x20\x61\x20\x6c\x61\x72\x67\x65\x72\x20" 771 1.1 christos "\x74\x68\x61\x6e\x20\x62\x6c\x6f\x63\x6b" 772 1.1 christos "\x2d\x73\x69\x7a\x65\x20\x6b\x65\x79\x20" 773 1.1 christos "\x61\x6e\x64\x20\x61\x20\x6c\x61\x72\x67" 774 1.1 christos "\x65\x72\x20\x74\x68\x61\x6e\x20\x62\x6c" 775 1.1 christos "\x6f\x63\x6b\x2d\x73\x69\x7a\x65\x20\x64" 776 1.1 christos "\x61\x74\x61\x2e\x20\x54\x68\x65\x20\x6b" 777 1.1 christos "\x65\x79\x20\x6e\x65\x65\x64\x73\x20\x74" 778 1.1 christos "\x6f\x20\x62\x65\x20\x68\x61\x73\x68\x65" 779 1.1 christos "\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x62" 780 1.1 christos "\x65\x69\x6e\x67\x20\x75\x73\x65\x64\x20" 781 1.1 christos "\x62\x79\x20\x74\x68\x65\x20\x48\x4d\x41" 782 1.1 christos "\x43\x20\x61\x6c\x67\x6f\x72\x69\x74\x68" 783 1.1 christos "\x6d\x2e"), 784 1.1 christos "6617178E941F020D351E2F254E8FD32C602420FEB0B8FB" 785 1.1 christos "9ADCCEBB82461E99C5A678CC31E799176D3860E6" 786 1.1 christos "110C46523E", 787 1.1 christos 1); 788 1.1 christos } 789 1.1 christos 790 1.1 christos ISC_RUN_TEST_IMPL(isc_hmac_sha512) { 791 1.1 christos isc_hmac_t *hmac_st = *state; 792 1.1 christos 793 1.1 christos /* Test 0 */ 794 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT(""), ISC_MD_SHA512, TEST_INPUT(""), 795 1.1 christos "B936CEE86C9F87AA5D3C6F2E84CB5A4239A5FE50480A6EC6" 796 1.1 christos "6B70AB5B1F4AC6730C6C515421B327EC1D69402E53DFB49A" 797 1.1 christos "D7381EB067B338FD7B0CB22247225D47", 798 1.1 christos 1); 799 1.1 christos 800 1.1 christos /* Test 1 */ 801 1.1 christos isc_hmac_test(hmac_st, 802 1.1 christos TEST_INPUT("\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" 803 1.1 christos "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"), 804 1.1 christos ISC_MD_SHA512, 805 1.1 christos TEST_INPUT("\x48\x69\x20\x54\x68\x65\x72\x65"), 806 1.1 christos "87AA7CDEA5EF619D4FF0B4241A1D6CB02379F4E2CE4EC2" 807 1.1 christos "787AD0B30545E17CDEDAA833B7D6B8A702038B27" 808 1.1 christos "4EAEA3F4E4BE9D914EEB61F1702E696C203A126854", 809 1.1 christos 1); 810 1.1 christos /* Test 2 */ 811 1.1 christos isc_hmac_test(hmac_st, TEST_INPUT("Jefe"), ISC_MD_SHA512, 812 1.1 christos TEST_INPUT("\x77\x68\x61\x74\x20\x64\x6f\x20\x79\x61" 813 1.1 christos "\x20\x77\x61\x6e\x74\x20\x66\x6f\x72\x20" 814 1.1 christos "\x6e\x6f\x74\x68\x69\x6e\x67\x3f"), 815 1.1 christos "164B7A7BFCF819E2E395FBE73B56E0A387BD64222E831F" 816 1.1 christos "D610270CD7EA2505549758BF75C05A994A6D034F" 817 1.1 christos "65F8F0E6FDCAEAB1A34D4A6B4B636E070A38BCE737", 818 1.1 christos 1); 819 1.1 christos /* Test 3 */ 820 1.1 christos isc_hmac_test(hmac_st, 821 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 822 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"), 823 1.1 christos ISC_MD_SHA512, 824 1.1 christos TEST_INPUT("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 825 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 826 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 827 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD" 828 1.1 christos "\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD"), 829 1.1 christos "FA73B0089D56A284EFB0F0756C890BE9B1B5DBDD8EE81A" 830 1.1 christos "3655F83E33B2279D39BF3E848279A722C806B485" 831 1.1 christos "A47E67C807B946A337BEE8942674278859E13292FB", 832 1.1 christos 1); 833 1.1 christos /* Test 4 */ 834 1.1 christos isc_hmac_test(hmac_st, 835 1.1 christos TEST_INPUT("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a" 836 1.1 christos "\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14" 837 1.1 christos "\x15\x16\x17\x18\x19"), 838 1.1 christos ISC_MD_SHA512, 839 1.1 christos TEST_INPUT("\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 840 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 841 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 842 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" 843 1.1 christos "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd"), 844 1.1 christos "B0BA465637458C6990E5A8C5F61D4AF7E576D97FF94B87" 845 1.1 christos "2DE76F8050361EE3DBA91CA5C11AA25EB4D67927" 846 1.1 christos "5CC5788063A5F19741120C4F2DE2ADEBEB10A298DD", 847 1.1 christos 1); 848 1.1 christos #if 0 849 1.1 christos /* Test 5 -- unimplemented optional functionality */ 850 1.1 christos isc_hmac_test(hmac_st, 851 1.1 christos TEST_INPUT("\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c" 852 1.1 christos "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c"), 853 1.1 christos ISC_MD_SHA512, 854 1.1 christos TEST_INPUT("Test With Truncation"), 855 1.1 christos "4C1A03424B55E07FE7F27BE1", 856 1.1 christos 1); 857 1.1 christos #endif /* if 0 */ 858 1.1 christos /* Test 6 */ 859 1.1 christos isc_hmac_test(hmac_st, 860 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 861 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 862 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 863 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 864 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 865 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 866 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 867 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 868 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 869 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 870 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 871 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 872 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 873 1.1 christos "\xaa"), 874 1.1 christos ISC_MD_SHA512, 875 1.1 christos TEST_INPUT("Test Using Larger Than Block-Size Key - " 876 1.1 christos "Hash Key First"), 877 1.1 christos "80B24263C7C1A3EBB71493C1DD7BE8B49B46D1F41B4AEE" 878 1.1 christos "C1121B013783F8F3526B56D037E05F2598BD0FD2" 879 1.1 christos "215D6A1E5295E64F73F63F0AEC8B915A985D786598", 880 1.1 christos 1); 881 1.1 christos /* Test 7 */ 882 1.1 christos isc_hmac_test(hmac_st, 883 1.1 christos TEST_INPUT("\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 884 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 885 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 886 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 887 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 888 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 889 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 890 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 891 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 892 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 893 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 894 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 895 1.1 christos "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa" 896 1.1 christos "\xaa"), 897 1.1 christos ISC_MD_SHA512, 898 1.1 christos TEST_INPUT("\x54\x68\x69\x73\x20\x69\x73\x20\x61\x20" 899 1.1 christos "\x74\x65\x73\x74\x20\x75\x73\x69\x6e\x67" 900 1.1 christos "\x20\x61\x20\x6c\x61\x72\x67\x65\x72\x20" 901 1.1 christos "\x74\x68\x61\x6e\x20\x62\x6c\x6f\x63\x6b" 902 1.1 christos "\x2d\x73\x69\x7a\x65\x20\x6b\x65\x79\x20" 903 1.1 christos "\x61\x6e\x64\x20\x61\x20\x6c\x61\x72\x67" 904 1.1 christos "\x65\x72\x20\x74\x68\x61\x6e\x20\x62\x6c" 905 1.1 christos "\x6f\x63\x6b\x2d\x73\x69\x7a\x65\x20\x64" 906 1.1 christos "\x61\x74\x61\x2e\x20\x54\x68\x65\x20\x6b" 907 1.1 christos "\x65\x79\x20\x6e\x65\x65\x64\x73\x20\x74" 908 1.1 christos "\x6f\x20\x62\x65\x20\x68\x61\x73\x68\x65" 909 1.1 christos "\x64\x20\x62\x65\x66\x6f\x72\x65\x20\x62" 910 1.1 christos "\x65\x69\x6e\x67\x20\x75\x73\x65\x64\x20" 911 1.1 christos "\x62\x79\x20\x74\x68\x65\x20\x48\x4d\x41" 912 1.1 christos "\x43\x20\x61\x6c\x67\x6f\x72\x69\x74\x68" 913 1.1 christos "\x6d\x2e"), 914 1.1 christos "E37B6A775DC87DBAA4DFA9F96E5E3FFDDEBD71F8867289" 915 1.1 christos "865DF5A32D20CDC944B6022CAC3C4982B10D5EEB" 916 1.1 christos "55C3E4DE15134676FB6DE0446065C97440FA8C6A58", 917 1.1 christos 1); 918 1.1 christos } 919 1.1 christos 920 1.1 christos ISC_TEST_LIST_START 921 1.1 christos 922 1.1 christos ISC_TEST_ENTRY(isc_hmac_new) 923 1.1 christos ISC_TEST_ENTRY_CUSTOM(isc_hmac_init, _reset, _reset) 924 1.1 christos 925 1.1 christos ISC_TEST_ENTRY_CUSTOM(isc_hmac_reset, _reset, _reset) 926 1.1 christos 927 1.1 christos ISC_TEST_ENTRY(isc_hmac_md5) 928 1.1 christos ISC_TEST_ENTRY(isc_hmac_sha1) 929 1.1 christos ISC_TEST_ENTRY(isc_hmac_sha224) 930 1.1 christos ISC_TEST_ENTRY(isc_hmac_sha256) 931 1.1 christos ISC_TEST_ENTRY(isc_hmac_sha384) 932 1.1 christos ISC_TEST_ENTRY(isc_hmac_sha512) 933 1.1 christos 934 1.1 christos ISC_TEST_ENTRY_CUSTOM(isc_hmac_update, _reset, _reset) 935 1.1 christos ISC_TEST_ENTRY_CUSTOM(isc_hmac_final, _reset, _reset) 936 1.1 christos 937 1.1 christos ISC_TEST_ENTRY(isc_hmac_free) 938 1.1 christos 939 1.1 christos ISC_TEST_LIST_END 940 1.1 christos 941 1.1 christos ISC_TEST_MAIN_CUSTOM(_setup, _teardown) 942