1=pod 2 3=head1 NAME 4 5EVP_MD-BLAKE2 - The BLAKE2 EVP_MD implementation 6 7=head1 DESCRIPTION 8 9Support for computing BLAKE2 digests through the B<EVP_MD> API. 10 11=head2 Identities 12 13This implementation is only available with the default provider, and 14includes the following varieties: 15 16=over 4 17 18=item BLAKE2S-256 19 20Known names are "BLAKE2S-256" and "BLAKE2s256". 21 22=item BLAKE2B-512 23 24Known names are "BLAKE2B-512" and "BLAKE2b512". 25 26=back 27 28=head2 Settable Parameters 29 30"BLAKE2B-512" supports the following EVP_MD_CTX_set_params() key 31described in L<EVP_DigestInit(3)/PARAMETERS>. 32 33=over 4 34 35=item "size" (B<OSSL_DIGEST_PARAM_SIZE>) <unsigned integer> 36 37=back 38 39=head2 Gettable Parameters 40 41This implementation supports the common gettable parameters described 42in L<EVP_MD-common(7)>. 43 44=head2 Settable Context Parameters 45 46The implementation supports the following L<OSSL_PARAM(3)> entries which 47are settable for an B<EVP_MD_CTX> with L<EVP_DigestInit_ex2(3)> or 48L<EVP_MD_CTX_set_params(3)>: 49 50=over 4 51 52=item "size" (B<OSSL_DIGEST_PARAM_SIZE>) <unsigned integer> 53 54Sets a different digest length for the L<EVP_DigestFinal(3)> output. 55The value of the "size" parameter must not exceed the default digest length 56of the respective BLAKE2 algorithm variants, 64 for BLAKE2B-512 and 5732 for BLAKE2S-256. The parameter must be set with the 58L<EVP_DigestInit_ex2(3)> call to have an immediate effect. When set with 59L<EVP_MD_CTX_set_params(3)> it will have an effect only if the B<EVP_MD_CTX> 60context is reinitialized. 61 62=back 63 64=head1 SEE ALSO 65 66L<provider-digest(7)>, L<OSSL_PROVIDER-default(7)> 67 68=head1 HISTORY 69 70This functionality was added in OpenSSL 3.0. 71 72The variable size support was added in OpenSSL 3.2 for BLAKE2B-512 and 73in OpenSSL 3.3 for BLAKE2S-256. 74 75=head1 COPYRIGHT 76 77Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved. 78 79Licensed under the Apache License 2.0 (the "License"). You may not use 80this file except in compliance with the License. You can obtain a copy 81in the file LICENSE in the source distribution or at 82L<https://www.openssl.org/source/license.html>. 83 84=cut 85