$manlookup

life_cycle-kdf

(7ssl)

The KDF algorithm life-cycle

Overview, conventions, miscellanyopenssl 3.5.6-1~deb13u2

DESCRIPTION

All key derivation functions (KDFs) and pseudo random functions (PRFs) go through a number of stages in their life-cycle:

This state represents the KDF/PRF before it has been allocated. It is the starting state for any life-cycle transitions.
This state represents the KDF/PRF after it has been allocated.
This state represents the KDF/PRF when it is set up and capable of generating output.
This state is entered when the KDF/PRF is freed. It is the terminal state for all life-cycle transitions.

The usual life-cycle of a KDF/PRF is illustrated:
+-------------------+
| start |
+-------------------+
|
| EVP_KDF_CTX_new
v
+-------------------+
| newed | <+
+-------------------+ |
| |
| EVP_KDF_derive |
v | EVP_KDF_CTX_reset
EVP_KDF_derive +-------------------+ |
+ - - - - - - - - | | |
' | deriving | |
+ - - - - - - - -> | | -+
+-------------------+
|
| EVP_KDF_CTX_free
v
+-------------------+
| freed |
+-------------------+

This section defines all of the legal state transitions. This is the canonical list.
Function Call ------------- Current State -------------
start newed deriving freed
EVP_KDF_CTX_new newed
EVP_KDF_derive deriving deriving
EVP_KDF_CTX_free freed freed freed
EVP_KDF_CTX_reset newed newed
EVP_KDF_CTX_get_params newed deriving
EVP_KDF_CTX_set_params newed deriving
EVP_KDF_CTX_gettable_params newed deriving
EVP_KDF_CTX_settable_params newed deriving

NOTES

At some point the EVP layer will begin enforcing the transitions described herein.

HISTORY

The provider KDF interface was introduced in OpenSSL 3.0.

See also