=pod
=head1 NAME
life_cycle-kdf - The KDF algorithm life-cycle
=head1 DESCRIPTION
All key derivation functions (KDFs) and pseudo random functions (PRFs)
go through a number of stages in their life-cycle:
=over 4
=item start
This state represents the KDF/PRF before it has been allocated. It is the
starting state for any life-cycle transitions.
=item newed
This state represents the KDF/PRF after it has been allocated.
=item deriving
This state represents the KDF/PRF when it is set up and capable of generating
output.
=item freed
This state is entered when the KDF/PRF is freed. It is the terminal state
for all life-cycle transitions.
=back
=head2 State Transition Diagram
The usual life-cycle of a KDF/PRF is illustrated:
=begin man
+-------------------+
| 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 |
+-------------------+
=end man
=for html
=head2 Formal State Transitions
This section defines all of the legal state transitions.
This is the canonical list.
=begin man
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
=end man
=begin html
Function Call | Current State | |||
---|---|---|---|---|
start | newed | deriving | freed | |
EVP_KDF_CTX_new | newed | |||
EVP_KDF_derive | newed | deriving | ||
EVP_KDF_CTX_free | newed | deriving | ||
EVP_KDF_CTX_reset | freed | freed | freed | |
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 |