doc: EVP_KDF document the semantic meaning of output

Explicitely document what semantic meaning do various EVP_KDF
algorithms produce.

PBKDF2 produces cryptographic keys that are subject to cryptographic
security measures, for example as defined in NIST SP 800-132.

All other algorithms produce keying material, not subject to explicit
output length checks in any known standards.

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25610)
This commit is contained in:
Dimitri John Ledkov 2024-10-04 23:41:44 +01:00 committed by Tomas Mraz
parent cdbe47bf3c
commit 6f08353a4b
9 changed files with 18 additions and 0 deletions

View File

@ -15,6 +15,8 @@ and "extracts" from it a fixed-length pseudorandom key K. The second stage
"expands" the key K into several additional pseudorandom keys (the output
of the KDF).
The output is considered to be keying material.
=head2 Identity
"HKDF" is the name for this implementation; it

View File

@ -10,6 +10,8 @@ The EVP_KDF-KB algorithm implements the Key-Based key derivation function
(KBKDF). KBKDF derives a key from repeated application of a keyed MAC to an
input secret (and other optional values).
The output is considered to be keying material.
=head2 Identity
"KBKDF" is the name for this implementation; it can be used with the

View File

@ -13,6 +13,8 @@ The EVP_KDF-PBKDF2 algorithm implements the PBKDF2 password-based key
derivation function, as described in SP800-132; it derives a key from a password
using a salt and iteration count.
The output is considered to be a cryptographic key.
=head2 Identity
"PBKDF2" is the name for this implementation; it

View File

@ -11,6 +11,8 @@ SSKDF derives a key using input such as a shared secret key (that was generated
during the execution of a key establishment scheme) and fixedinfo.
SSKDF is also informally referred to as 'Concat KDF'.
The output is considered to be keying material.
=head2 Auxiliary function
The implementation uses a selectable auxiliary function H, which can be one of:

View File

@ -15,6 +15,8 @@ Five inputs are required to perform key derivation: The hashing function
(for example SHA256), the Initial Key, the Exchange Hash, the Session ID,
and the derivation key type.
The output is considered to be keying material.
=head2 Identity
"SSHKDF" is the name for this implementation; it

View File

@ -12,6 +12,8 @@ the B<EVP_KDF> API.
The EVP_KDF-TLS13_KDF algorithm implements the HKDF key derivation function
as used by TLS 1.3.
The output is considered to be keying material.
=head2 Identity
"TLS13-KDF" is the name for this implementation; it

View File

@ -11,6 +11,8 @@ Support for computing the B<TLS1> PRF through the B<EVP_KDF> API.
The EVP_KDF-TLS1_PRF algorithm implements the PRF used by TLS versions up to
and including TLS 1.2.
The output is considered to be keying material.
=head2 Identity
"TLS1-PRF" is the name for this implementation; it

View File

@ -13,6 +13,8 @@ contains a 32 bit counter as well as optional fields for "partyu-info",
"partyv-info", "supp-pubinfo" and "supp-privinfo".
This kdf is used by Cryptographic Message Syntax (CMS).
The output is considered to be keying material.
=head2 Identity
"X942KDF-ASN1" or "X942KDF" is the name for this implementation; it

View File

@ -10,6 +10,8 @@ The EVP_KDF-X963 algorithm implements the key derivation function (X963KDF).
X963KDF is used by Cryptographic Message Syntax (CMS) for EC KeyAgreement, to
derive a key using input such as a shared secret key and shared info.
The output is considered to be keying material.
=head2 Identity
"X963KDF" is the name for this implementation; it