Files
libsodium/test/default/kdf_hkdf3.c
T
2026-03-15 12:48:47 +01:00

45 lines
1.2 KiB
C

#define TEST_NAME "kdf_hkdf3"
#include "cmptest.h"
int
main(void)
{
unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES];
unsigned char out[256];
int ret;
crypto_kdf_hkdf_sha512_keygen(prk);
assert(!sodium_is_zero(prk, sizeof prk));
printf("sha512 keygen: ok\n");
ret = crypto_kdf_hkdf_sha512_expand(
out, crypto_kdf_hkdf_sha512_BYTES_MAX + 1,
"ctx", 3, prk);
assert(ret == -1);
printf("sha512 expand max+1: ok\n");
crypto_kdf_hkdf_sha512_extract(prk, NULL, 0,
(const unsigned char *) "ikm", 3);
ret = crypto_kdf_hkdf_sha512_expand(out, 100, "ctx", 3, prk);
assert(ret == 0);
printf("sha512 expand partial block: ok\n");
{
unsigned char prk256[crypto_kdf_hkdf_sha256_KEYBYTES];
crypto_kdf_hkdf_sha256_keygen(prk256);
assert(!sodium_is_zero(prk256, sizeof prk256));
printf("sha256 keygen: ok\n");
ret = crypto_kdf_hkdf_sha256_expand(
out, crypto_kdf_hkdf_sha256_BYTES_MAX + 1,
"ctx", 3, prk256);
assert(ret == -1);
printf("sha256 expand max+1: ok\n");
}
return 0;
}