2 #define TEST_NAME "generichash2"
9 crypto_generichash_state st
;
10 unsigned char in
[MAXLEN
], out
[crypto_generichash_BYTES_MAX
],
11 k
[crypto_generichash_KEYBYTES_MAX
];
14 assert(crypto_generichash_statebytes() >= sizeof st
);
15 for (h
= 0; h
< crypto_generichash_KEYBYTES_MAX
; ++h
)
18 for (i
= 0; i
< MAXLEN
; ++i
) {
20 if (crypto_generichash_init(&st
, k
,
21 1 + i
% crypto_generichash_KEYBYTES_MAX
,
22 1 + i
% crypto_generichash_BYTES_MAX
) != 0) {
23 printf("crypto_generichash_init()\n");
26 crypto_generichash_update(&st
, in
, i
);
27 crypto_generichash_update(&st
, in
, i
);
28 crypto_generichash_update(&st
, in
, i
);
29 crypto_generichash_final(&st
, out
,
30 1 + i
% crypto_generichash_BYTES_MAX
);
31 for (j
= 0; j
< 1 + i
% crypto_generichash_BYTES_MAX
; ++j
) {
32 printf("%02x", (unsigned int)out
[j
]);
37 assert(crypto_generichash_init(&st
, k
, sizeof k
, 0U) == -1);
38 assert(crypto_generichash_init(&st
, k
, sizeof k
,
39 crypto_generichash_BYTES_MAX
+ 1U) == -1);
40 assert(crypto_generichash_init(&st
, k
, crypto_generichash_KEYBYTES_MAX
+ 1U,
42 assert(crypto_generichash_init(&st
, k
, 0U, sizeof out
) == 0);
43 assert(crypto_generichash_init(&st
, k
, 1U, sizeof out
) == 0);
44 assert(crypto_generichash_init(&st
, NULL
, 1U, 0U) == -1);
45 assert(crypto_generichash_init(&st
, NULL
, crypto_generichash_KEYBYTES
,
47 assert(crypto_generichash_init(&st
, NULL
, crypto_generichash_KEYBYTES
,