From 4551763efc8c9d2e39f3d39430cb4657d155cde6 Mon Sep 17 00:00:00 2001 From: Pauli Date: Wed, 24 Mar 2021 14:02:48 +1000 Subject: [PATCH] doc: life-cycle descritpion for MACs Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/14522) --- doc/man7/life_cycle-mac.pod | 210 ++++++++++++++++++++++++++++++++++++ doc/man7/mac.png | Bin 0 -> 50554 bytes 2 files changed, 210 insertions(+) create mode 100644 doc/man7/life_cycle-mac.pod create mode 100644 doc/man7/mac.png diff --git a/doc/man7/life_cycle-mac.pod b/doc/man7/life_cycle-mac.pod new file mode 100644 index 00000000000..b9812f7cae5 --- /dev/null +++ b/doc/man7/life_cycle-mac.pod @@ -0,0 +1,210 @@ +=pod + +=head1 NAME + +life_cycle-mac - The MAC algorithm life-cycle + +=head1 DESCRIPTION + +All message authentication codes (MACs) +go through a number of stages in their life-cycle: + +=over 4 + +=item start + +This state represents the MAC before it has been allocated. It is the +starting state for any life-cycle transitions. + +=item newed + +This state represents the MAC after it has been allocated. + +=item initialised + +This state represents the MAC when it is set up and capable of processing +input. + +=item updated + +This state represents the MAC when it is set up and capable of processing +additional input or generating output. + +=item finaled + +This state represents the MAC when it has generated output. + +=item freed + +This state is entered when the MAC is freed. It is the terminal state +for all life-cycle transitions. + +=back + +=head2 State Transition Diagram + +The usual life-cycle of a MAC is illustrated: + +=begin man + + +-------------------+ + | start | + +-------------------+ + | + | EVP_MAC_CTX_new + v + +-------------------+ + | newed | + +-------------------+ + | + | EVP_MAC_init + v + +-------------------+ + +> | initialised | <+ + | +-------------------+ | + | | | + | | EVP_MAC_update | EVP_MAC_init + | v | + EVP_MAC_init | +-------------------+ | + | | updated | -+ + | +-------------------+ + | | + | | EVP_MAC_final + | v + | +-------------------+ + +- | finaled | + +-------------------+ + | + | EVP_MAC_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 initialised updated finaled freed + EVP_MAC_CTX_new newed + EVP_MAC_init initialised initialised initialised initialised + EVP_MAC_update updated updated + EVP_MAC_final finaled + EVP_MAC_CTX_free freed freed freed freed freed + EVP_MAC_gettable_ctx_params newed initialised updated + EVP_MAC_settable_ctx_params newed initialised updated + EVP_MAC_CTX_gettable_params newed initialised updated + EVP_MAC_CTX_settable_params newed initialised updated + +=end man + +=begin html + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Function CallCurrent State
startnewedinitialisedupdatedfinaledfreed
EVP_MAC_CTX_newnewed
EVP_MAC_initinitialisedinitialisedinitialisedinitialised
EVP_MAC_updateupdatedupdated
EVP_MAC_finalfinaled
EVP_MAC_CTX_freefreedfreedfreedfreedfreed
EVP_MAC_gettable_ctx_paramsnewedinitialisedupdated
EVP_MAC_settable_ctx_paramsnewedinitialisedupdated
EVP_MAC_CTX_gettable_paramsnewedinitialisedupdated
EVP_MAC_CTX_settable_paramsnewedinitialisedupdated
+ +=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 MAC 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 diff --git a/doc/man7/mac.png b/doc/man7/mac.png new file mode 100644 index 0000000000000000000000000000000000000000..1c486e1ba40b4720ef5a14a2d1192a4349db8d1e GIT binary patch literal 50554 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%0DamqIZ4{&cIGEbl>U2x`1$ka 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