Properly test crypto_kdf_hkdf_sha*_keygen

This commit is contained in:
Frank Denis
2026-03-29 19:59:44 +02:00
parent a615d0ed74
commit 597886af2f
+9 -2
View File
@@ -13,6 +13,8 @@ tv_kdf_hkdf(void)
size_t prk512_len = crypto_kdf_hkdf_sha512_KEYBYTES;
unsigned char *salt;
size_t salt_len = 77;
unsigned char *generated_prk256;
unsigned char *generated_prk512;
char *context;
size_t context_len = 88;
unsigned char *out;
@@ -24,6 +26,8 @@ tv_kdf_hkdf(void)
prk256 = (unsigned char *) sodium_malloc(prk256_len);
prk512 = (unsigned char *) sodium_malloc(prk512_len);
salt = (unsigned char *) sodium_malloc(salt_len);
generated_prk256 = (unsigned char *) sodium_malloc(prk256_len);
generated_prk512 = (unsigned char *) sodium_malloc(prk512_len);
context = (char *) sodium_malloc(context_len);
out = (unsigned char *) sodium_malloc(out_len);
for (i = 0; i < master_key_len; i++) {
@@ -36,8 +40,10 @@ tv_kdf_hkdf(void)
context[i] = (unsigned char) (i + 111);
}
crypto_kdf_hkdf_sha256_keygen(generated_prk256);
crypto_kdf_hkdf_sha512_keygen(generated_prk512);
printf("\nHKDF/SHA-256:\n");
crypto_kdf_hkdf_sha256_keygen(prk256);
if (crypto_kdf_hkdf_sha256_extract(prk256, salt, salt_len,
master_key, master_key_len) != 0) {
printf("hkdf_sha256_extract() failed\n");
@@ -54,7 +60,6 @@ tv_kdf_hkdf(void)
}
printf("\nHKDF/SHA-512:\n");
crypto_kdf_hkdf_sha256_keygen(prk512);
if (crypto_kdf_hkdf_sha512_extract(prk512, salt, salt_len,
master_key, master_key_len) != 0) {
printf("hkdf_sha512_extract() failed\n");
@@ -72,6 +77,8 @@ tv_kdf_hkdf(void)
sodium_free(out);
sodium_free(context);
sodium_free(generated_prk512);
sodium_free(generated_prk256);
sodium_free(salt);
sodium_free(master_key);
sodium_free(prk512);