=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 | 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 |