1e71b7053SJung-uk Kim=pod
2e71b7053SJung-uk Kim
3e71b7053SJung-uk Kim=head1 NAME
4e71b7053SJung-uk Kim
5e71b7053SJung-uk KimEVP_sha3_224,
6e71b7053SJung-uk KimEVP_sha3_256,
7e71b7053SJung-uk KimEVP_sha3_384,
8e71b7053SJung-uk KimEVP_sha3_512,
9e71b7053SJung-uk KimEVP_shake128,
10e71b7053SJung-uk KimEVP_shake256
11e71b7053SJung-uk Kim- SHA-3 For EVP
12e71b7053SJung-uk Kim
13e71b7053SJung-uk Kim=head1 SYNOPSIS
14e71b7053SJung-uk Kim
15e71b7053SJung-uk Kim #include <openssl/evp.h>
16e71b7053SJung-uk Kim
17e71b7053SJung-uk Kim const EVP_MD *EVP_sha3_224(void);
18e71b7053SJung-uk Kim const EVP_MD *EVP_sha3_256(void);
19e71b7053SJung-uk Kim const EVP_MD *EVP_sha3_384(void);
20e71b7053SJung-uk Kim const EVP_MD *EVP_sha3_512(void);
21e71b7053SJung-uk Kim
22e71b7053SJung-uk Kim const EVP_MD *EVP_shake128(void);
23e71b7053SJung-uk Kim const EVP_MD *EVP_shake256(void);
24e71b7053SJung-uk Kim
25e71b7053SJung-uk Kim=head1 DESCRIPTION
26e71b7053SJung-uk Kim
27e71b7053SJung-uk KimSHA-3 (Secure Hash Algorithm 3) is a family of cryptographic hash functions
28e71b7053SJung-uk Kimstandardized in NIST FIPS 202, first published in 2015. It is based on the
29e71b7053SJung-uk KimKeccak algorithm.
30e71b7053SJung-uk Kim
31e71b7053SJung-uk Kim=over 4
32e71b7053SJung-uk Kim
33e71b7053SJung-uk Kim=item EVP_sha3_224(),
34e71b7053SJung-uk KimEVP_sha3_256(),
35e71b7053SJung-uk KimEVP_sha3_384(),
36e71b7053SJung-uk KimEVP_sha3_512()
37e71b7053SJung-uk Kim
38e71b7053SJung-uk KimThe SHA-3 SHA-3-224, SHA-3-256, SHA-3-384, and SHA-3-512 algorithms
39e71b7053SJung-uk Kimrespectively. They produce 224, 256, 384 and 512 bits of output from a given
40e71b7053SJung-uk Kiminput.
41e71b7053SJung-uk Kim
42e71b7053SJung-uk Kim=item EVP_shake128(),
43e71b7053SJung-uk KimEVP_shake256()
44e71b7053SJung-uk Kim
45e71b7053SJung-uk KimThe SHAKE-128 and SHAKE-256 Extendable Output Functions (XOF) that can generate
46e71b7053SJung-uk Kima variable hash length.
47e71b7053SJung-uk Kim
48e71b7053SJung-uk KimSpecifically, B<EVP_shake128> provides an overall security of 128 bits, while
49e71b7053SJung-uk KimB<EVP_shake256> provides that of 256 bits.
50e71b7053SJung-uk Kim
51e71b7053SJung-uk Kim=back
52e71b7053SJung-uk Kim
53b077aed3SPierre Pronchery=head1 NOTES
54b077aed3SPierre Pronchery
55b077aed3SPierre ProncheryDevelopers should be aware of the negative performance implications of
56b077aed3SPierre Proncherycalling these functions multiple times and should consider using
57*ad991e4cSEd MasteL<EVP_MD_fetch(3)> with L<EVP_MD-SHA3(7)> or L<EVP_MD-SHAKE(7)> instead.
58b077aed3SPierre ProncherySee L<crypto(7)/Performance> for further information.
59e71b7053SJung-uk Kim
60e71b7053SJung-uk Kim=head1 RETURN VALUES
61e71b7053SJung-uk Kim
62e71b7053SJung-uk KimThese functions return a B<EVP_MD> structure that contains the
63b077aed3SPierre Proncheryimplementation of the message digest. See L<EVP_MD_meth_new(3)> for
64e71b7053SJung-uk Kimdetails of the B<EVP_MD> structure.
65e71b7053SJung-uk Kim
66e71b7053SJung-uk Kim=head1 CONFORMING TO
67e71b7053SJung-uk Kim
68e71b7053SJung-uk KimNIST FIPS 202.
69e71b7053SJung-uk Kim
70e71b7053SJung-uk Kim=head1 SEE ALSO
71e71b7053SJung-uk Kim
72e71b7053SJung-uk KimL<evp(7)>,
73e71b7053SJung-uk KimL<EVP_DigestInit(3)>
74e71b7053SJung-uk Kim
75e71b7053SJung-uk Kim=head1 COPYRIGHT
76e71b7053SJung-uk Kim
77b077aed3SPierre ProncheryCopyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved.
78e71b7053SJung-uk Kim
79b077aed3SPierre ProncheryLicensed under the Apache License 2.0 (the "License").  You may not use
80e71b7053SJung-uk Kimthis file except in compliance with the License.  You can obtain a copy
81e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at
82e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>.
83e71b7053SJung-uk Kim
84e71b7053SJung-uk Kim=cut
85e71b7053SJung-uk Kim
86