mirror of
https://github.com/jedisct1/libsodium.git
synced 2026-08-25 08:37:13 +09:00
Properly test crypto_kdf_hkdf_sha*_keygen
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user