1LIFE_CYCLE-KDF(7ossl) OpenSSL LIFE_CYCLE-KDF(7ossl)
2
3
4
6 life_cycle-kdf - The KDF algorithm life-cycle
7
9 All key derivation functions (KDFs) and pseudo random functions (PRFs)
10 go through a number of stages in their life-cycle:
11
12 start
13 This state represents the KDF/PRF before it has been allocated. It
14 is the starting state for any life-cycle transitions.
15
16 newed
17 This state represents the KDF/PRF after it has been allocated.
18
19 deriving
20 This state represents the KDF/PRF when it is set up and capable of
21 generating output.
22
23 freed
24 This state is entered when the KDF/PRF is freed. It is the
25 terminal state for all life-cycle transitions.
26
27 State Transition Diagram
28 The usual life-cycle of a KDF/PRF is illustrated:
29 +-------------------+
30 | start |
31 +-------------------+
32 |
33 | EVP_KDF_CTX_new
34 v
35 +-------------------+
36 | newed | <+
37 +-------------------+ |
38 | |
39 | EVP_KDF_derive |
40 v | EVP_KDF_CTX_reset
41 EVP_KDF_derive +-------------------+ |
42 + - - - - - - - - | | |
43 ' | deriving | |
44 + - - - - - - - -> | | -+
45 +-------------------+
46 |
47 | EVP_KDF_CTX_free
48 v
49 +-------------------+
50 | freed |
51 +-------------------+
52
53 Formal State Transitions
54 This section defines all of the legal state transitions. This is the
55 canonical list.
56 Function Call ------------- Current State
57 -------------
58 start newed deriving
59 freed
60 EVP_KDF_CTX_new newed
61 EVP_KDF_derive deriving deriving
62 EVP_KDF_CTX_free freed freed freed
63 EVP_KDF_CTX_reset newed newed
64 EVP_KDF_CTX_get_params newed deriving
65 EVP_KDF_CTX_set_params newed deriving
66 EVP_KDF_CTX_gettable_params newed deriving
67 EVP_KDF_CTX_settable_params newed deriving
68
70 At some point the EVP layer will begin enforcing the transitions
71 described herein.
72
74 provider-kdf(7), EVP_KDF(3).
75
77 The provider KDF interface was introduced in OpenSSL 3.0.
78
80 Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
81
82 Licensed under the Apache License 2.0 (the "License"). You may not use
83 this file except in compliance with the License. You can obtain a copy
84 in the file LICENSE in the source distribution or at
85 <https://www.openssl.org/source/license.html>.
86
87
88
893.0.5 2022-07-05 LIFE_CYCLE-KDF(7ossl)