1=pod 2 3=head1 NAME 4 5EVP_MD-SHAKE, EVP_MD-KECCAK-KMAC 6- The SHAKE / KECCAK family EVP_MD implementations 7 8=head1 DESCRIPTION 9 10Support for computing SHAKE or KECCAK-KMAC digests through the 11B<EVP_MD> API. 12 13KECCAK-KMAC is a special digest that's used by the KMAC EVP_MAC 14implementation (see L<EVP_MAC-KMAC(7)>). 15 16=head2 Identities 17 18This implementation is available in the FIPS provider as well as the default 19provider, and includes the following varieties: 20 21=over 4 22 23=item KECCAK-KMAC-128 24 25Known names are "KECCAK-KMAC-128" and "KECCAK-KMAC128" 26This is used by L<EVP_MAC-KMAC128(7)> 27 28=item KECCAK-KMAC-256 29 30Known names are "KECCAK-KMAC-256" and "KECCAK-KMAC256" 31This is used by L<EVP_MAC-KMAC256(7)> 32 33=item SHAKE-128 34 35Known names are "SHAKE-128" and "SHAKE128" 36 37=item SHAKE-256 38 39Known names are "SHAKE-256" and "SHAKE256" 40 41=back 42 43=head2 Gettable Parameters 44 45This implementation supports the common gettable parameters described 46in L<EVP_MD-common(7)>. 47 48=head2 Settable Context Parameters 49 50These implementations support the following L<OSSL_PARAM(3)> entries, 51settable for an B<EVP_MD_CTX> with L<EVP_MD_CTX_set_params(3)>: 52 53=over 4 54 55=item "xoflen" (B<OSSL_DIGEST_PARAM_XOFLEN>) <unsigned integer> 56 57Sets the digest length for extendable output functions. 58The length of the "xoflen" parameter should not exceed that of a B<size_t>. 59 60For backwards compatibility reasons the default xoflen length for SHAKE-128 is 6116 (bytes) which results in a security strength of only 64 bits. To ensure the 62maximum security strength of 128 bits, the xoflen should be set to at least 32. 63 64For backwards compatibility reasons the default xoflen length for SHAKE-256 is 6532 (bytes) which results in a security strength of only 128 bits. To ensure the 66maximum security strength of 256 bits, the xoflen should be set to at least 64. 67 68=back 69 70=head1 SEE ALSO 71 72L<EVP_MD_CTX_set_params(3)>, L<provider-digest(7)>, L<OSSL_PROVIDER-default(7)> 73 74=head1 COPYRIGHT 75 76Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved. 77 78Licensed under the Apache License 2.0 (the "License"). You may not use 79this file except in compliance with the License. You can obtain a copy 80in the file LICENSE in the source distribution or at 81L<https://www.openssl.org/source/license.html>. 82 83=cut 84