mirror of
https://github.com/openssl/openssl.git
synced 2024-12-21 06:09:35 +08:00
5366490822
Fixes #7894 This allows SHAKE to squeeze multiple times with different output sizes. The existing EVP_DigestFinalXOF() API has been left as a one shot operation. A similar interface is used by another toolkit. The low level SHA3_Squeeze() function needed to change slightly so that it can handle multiple squeezes. This involves changing the assembler code so that it passes a boolean to indicate whether the Keccak function should be called on entry. At the provider level, the squeeze is buffered, so that it only requests a multiple of the blocksize when SHA3_Squeeze() is called. On the first call the value is zero, on subsequent calls the value passed is 1. This PR is derived from the excellent work done by @nmathewson in https://github.com/openssl/openssl/pull/7921 Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/21511) |
||
---|---|---|
.. | ||
cipher.dot | ||
digest.dot | ||
kdf.dot | ||
lifecycles.ods | ||
mac.dot | ||
Makefile | ||
pkey.dot | ||
rand.dot | ||
README.md |
Algorithm Life-Cycle Diagrams
This directory contains the algorithm life-cycle diagram sources.
The canonical life-cycles are in the spreadsheet.
The various .dot files are graph descriptions for the GraphViz tool. These omit edges and should be used for guidance only.
To generate the rendered images, you need to install the following packages:
sudo apt install graphviz cpanminus
sudo cpanm Graph::Easy
Running make
will produce a number of .txt
and .png
files.
These are the rendered .dot
files. The .txt
files require
additional editing before they can be added to the manual pages in
internal/man7/life_cycle-*.pod
.