From 77d12ae049c21851b77ff6ee992a362b73a684c8 Mon Sep 17 00:00:00 2001 From: Pauli Date: Fri, 12 Mar 2021 09:46:56 +1000 Subject: [PATCH] doc: life-cycle description for KDFs/PRFs Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/14522) --- doc/man7/kdf.png | Bin 0 -> 29120 bytes doc/man7/life_cycle-kdf.pod | 165 ++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 doc/man7/kdf.png create mode 100644 doc/man7/life_cycle-kdf.pod diff --git a/doc/man7/kdf.png b/doc/man7/kdf.png new file mode 100644 index 0000000000000000000000000000000000000000..3a3d153af0ac1f053f3d0d4511138a022d8bbee6 GIT binary patch literal 29120 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 | | -+ + +-------------------+ + | + | 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 CallCurrent State
startnewedderivingfreed
EVP_KDF_CTX_newnewed
EVP_KDF_derivenewedderiving
EVP_KDF_CTX_freenewedderiving
EVP_KDF_CTX_resetfreedfreedfreed
EVP_KDF_CTX_get_paramsnewedderiving
EVP_KDF_CTX_set_paramsnewedderiving
EVP_KDF_CTX_gettable_paramsnewedderiving
EVP_KDF_CTX_settable_paramsnewedderiving
+ +=end html + +=head1 NOTES + +At some point the EVP layer will begin enforcing the transitions described +herein. + +=head1 SEE ALSO + +L, L. + +=head1 HISTORY + +The provider KDF interface was introduced in OpenSSL 3.0. + +=head1 COPYRIGHT + +Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the Apache License 2.0 (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +L. + +=cut -- 2.47.2