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