=pod

=head1 NAME

EVP_whirlpool
- WHIRLPOOL For EVP

=head1 SYNOPSIS

 #include <openssl/evp.h>

 const EVP_MD *EVP_whirlpool(void);

=head1 DESCRIPTION

WHIRLPOOL is a cryptographic hash function standardized in ISO/IEC 10118-3:2004
designed by Vincent Rijmen and Paulo S. L. M. Barreto. This implementation is
only available with the legacy provider.

=over 4

=item EVP_whirlpool()

The WHIRLPOOL algorithm that produces a message digest of 512-bits from a given
input.

=back


=head1 RETURN VALUES

These functions return a B<EVP_MD> structure that contains the
implementation of the symmetric cipher. See L<EVP_MD_meth_new(3)> for
details of the B<EVP_MD> structure.

=head1 CONFORMING TO

ISO/IEC 10118-3:2004.

=head1 SEE ALSO

L<evp(7)>,
L<provider(7)>,
L<EVP_DigestInit(3)>

=head1 COPYRIGHT

Copyright 2017-2020 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License").  You may not use
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

