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 0000000000..b9812f7cae --- /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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 ueZ6)2f3K1uLp?J?@C}!7