crypto: Add new KDF type for IKEv2 PRFs
This commit is contained in:
@@ -1217,6 +1217,7 @@ static kdf_t *create_kdf_vector(kdf_constructor_t create,
|
|||||||
{
|
{
|
||||||
switch (alg)
|
switch (alg)
|
||||||
{
|
{
|
||||||
|
case KDF_PRF:
|
||||||
case KDF_PRF_PLUS:
|
case KDF_PRF_PLUS:
|
||||||
return create_kdf_args(create, alg, vector->arg.prf);
|
return create_kdf_args(create, alg, vector->arg.prf);
|
||||||
case KDF_UNDEFINED:
|
case KDF_UNDEFINED:
|
||||||
@@ -1235,6 +1236,7 @@ static bool kdf_vector_applies(key_derivation_function_t alg,
|
|||||||
|
|
||||||
switch (alg)
|
switch (alg)
|
||||||
{
|
{
|
||||||
|
case KDF_PRF:
|
||||||
case KDF_PRF_PLUS:
|
case KDF_PRF_PLUS:
|
||||||
{
|
{
|
||||||
pseudo_random_function_t prf;
|
pseudo_random_function_t prf;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
ENUM(key_derivation_function_names, KDF_UNDEFINED, KDF_PRF_PLUS,
|
ENUM(key_derivation_function_names, KDF_UNDEFINED, KDF_PRF_PLUS,
|
||||||
"KDF_UNDEFINED",
|
"KDF_UNDEFINED",
|
||||||
|
"KDF_PRF",
|
||||||
"KDF_PRF_PLUS",
|
"KDF_PRF_PLUS",
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -34,6 +35,8 @@ bool kdf_has_fixed_output_length(key_derivation_function_t type)
|
|||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
case KDF_PRF:
|
||||||
|
return TRUE;
|
||||||
case KDF_PRF_PLUS:
|
case KDF_PRF_PLUS:
|
||||||
case KDF_UNDEFINED:
|
case KDF_UNDEFINED:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -41,9 +41,16 @@ enum key_derivation_function_t {
|
|||||||
|
|
||||||
KDF_UNDEFINED,
|
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,
|
* 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,
|
KDF_PRF_PLUS,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user