mirror of
https://github.com/jedisct1/libsodium.git
synced 2026-08-25 08:37:13 +09:00
45 lines
1.2 KiB
C
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;
|
|
}
|