| 
									
										
										
										
											2017-10-31 15:43:01 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EVP_sha3_224, | 
					
						
							|  |  |  | EVP_sha3_256, | 
					
						
							|  |  |  | EVP_sha3_384, | 
					
						
							|  |  |  | EVP_sha3_512, | 
					
						
							|  |  |  | EVP_shake128, | 
					
						
							|  |  |  | EVP_shake256 | 
					
						
							|  |  |  | - SHA-3 For EVP | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  #include <openssl/evp.h> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  const EVP_MD *EVP_sha3_224(void); | 
					
						
							|  |  |  |  const EVP_MD *EVP_sha3_256(void); | 
					
						
							|  |  |  |  const EVP_MD *EVP_sha3_384(void); | 
					
						
							|  |  |  |  const EVP_MD *EVP_sha3_512(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  const EVP_MD *EVP_shake128(void); | 
					
						
							|  |  |  |  const EVP_MD *EVP_shake256(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SHA-3 (Secure Hash Algorithm 3) is a family of cryptographic hash functions | 
					
						
							|  |  |  | standardized in NIST FIPS 202, first published in 2015. It is based on the | 
					
						
							|  |  |  | Keccak algorithm. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =over 4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =item EVP_sha3_224(), | 
					
						
							|  |  |  | EVP_sha3_256(), | 
					
						
							|  |  |  | EVP_sha3_384(), | 
					
						
							|  |  |  | EVP_sha3_512() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The SHA-3 SHA-3-224, SHA-3-256, SHA-3-384, and SHA-3-512 algorithms | 
					
						
							|  |  |  | respectively. They produce 224, 256, 384 and 512 bits of output from a given | 
					
						
							|  |  |  | input. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =item EVP_shake128(), | 
					
						
							|  |  |  | EVP_shake256() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The SHAKE-128 and SHAKE-256 Extendable Output Functions (XOF) that can generate | 
					
						
							|  |  |  | a variable hash length. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Specifically, B<EVP_shake128> provides an overall security of 128 bits, while | 
					
						
							|  |  |  | B<EVP_shake256> provides that of 256 bits. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =back | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-22 08:11:33 +08:00
										 |  |  | =head1 NOTES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Developers should be aware of the negative performance implications of | 
					
						
							|  |  |  | calling these functions multiple times and should consider using | 
					
						
							| 
									
										
										
										
											2023-10-18 21:35:55 +08:00
										 |  |  | L<EVP_MD_fetch(3)> with L<EVP_MD-SHA3(7)> or L<EVP_MD-SHAKE(7)> instead. | 
					
						
							| 
									
										
										
										
											2023-02-22 08:11:33 +08:00
										 |  |  | See L<crypto(7)/Performance> for further information. | 
					
						
							| 
									
										
										
										
											2017-10-31 15:43:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 RETURN VALUES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | These functions return a B<EVP_MD> structure that contains the | 
					
						
							| 
									
										
										
										
											2022-04-25 16:51:00 +08:00
										 |  |  | implementation of the message digest. See L<EVP_MD_meth_new(3)> for | 
					
						
							| 
									
										
										
										
											2017-10-31 15:43:01 +08:00
										 |  |  | details of the B<EVP_MD> structure. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 CONFORMING TO | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | NIST FIPS 202. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | L<evp(7)>, | 
					
						
							|  |  |  | L<EVP_DigestInit(3)> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-07 16:59:15 +08:00
										 |  |  | Copyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2017-10-31 15:43:01 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 21:04:44 +08:00
										 |  |  | Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2017-10-31 15:43:01 +08:00
										 |  |  | this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  | in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  | L<https://www.openssl.org/source/license.html>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =cut | 
					
						
							|  |  |  | 
 |