crypto: Add new KDF type for IKEv2 PRFs

This commit is contained in:
Tobias Brunner
2022-04-14 19:02:56 +02:00
parent 7bde56a9bc
commit 37dbc87960
3 changed files with 13 additions and 1 deletions
+2
View File
@@ -1217,6 +1217,7 @@ static kdf_t *create_kdf_vector(kdf_constructor_t create,
{
switch (alg)
{
case KDF_PRF:
case KDF_PRF_PLUS:
return create_kdf_args(create, alg, vector->arg.prf);
case KDF_UNDEFINED:
@@ -1235,6 +1236,7 @@ static bool kdf_vector_applies(key_derivation_function_t alg,
switch (alg)
{
case KDF_PRF:
case KDF_PRF_PLUS:
{
pseudo_random_function_t prf;
+3
View File
@@ -24,6 +24,7 @@
ENUM(key_derivation_function_names, KDF_UNDEFINED, KDF_PRF_PLUS,
"KDF_UNDEFINED",
"KDF_PRF",
"KDF_PRF_PLUS",
);
@@ -34,6 +35,8 @@ bool kdf_has_fixed_output_length(key_derivation_function_t type)
{
switch (type)
{
case KDF_PRF:
return TRUE;
case KDF_PRF_PLUS:
case KDF_UNDEFINED:
break;
+8 -1
View File
@@ -41,9 +41,16 @@ enum key_derivation_function_t {
KDF_UNDEFINED,
/**
* RFC 7296 prf, expects a pseudo_random_function_t in the constructor,
* parameters are KEY (DH secret) and SALT (nonces).
* Has a fixed output length.
*/
KDF_PRF,
/**
* RFC 7296 prf+, expects a pseudo_random_function_t in the constructor,
* parameters are KEY and SALT.
* parameters are KEY (SKEYSEED/SK_d) and SALT (nonces etc.).
*/
KDF_PRF_PLUS,
};