xref: /openssl/doc/man7/EVP_MD-BLAKE2.pod (revision 7ed6de99)
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