]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man7/EVP_MAC-BLAKE2.pod
Rework the documentation of our individual MAC implementations
[thirdparty/openssl.git] / doc / man7 / EVP_MAC-BLAKE2.pod
CommitLineData
e592dbde
RL
1=pod
2
3=head1 NAME
4
5EVP_MAC-BLAKE2, EVP_MAC-BLAKE2BMAC, EVP_MAC-BLAKE2SMAC
6- The BLAKE2 EVP_MAC implementations
7
8=head1 DESCRIPTION
9
10Support for computing BLAKE2 MACs through the B<EVP_MAC> API.
11
12=head2 Identity
13
14These implementations are identified with one of these names and
15properties, to be used with EVP_MAC_fetch():
16
17=over 4
18
19=item "BLAKE2BMAC", "default=yes"
20
21=item "BLAKE2SMAC", "default=yes"
22
23=back
24
25=head2 Supported parameters
26
27The general description of these parameters can be found in
28L<EVP_MAC(3)/PARAMETER NAMES>.
29
30All these parameters can be set with EVP_MAC_CTX_set_params().
31Furthermore, the "size" parameter can be retrieved with
32EVP_MAC_CTX_get_params(), or with EVP_MAC_size().
33
34=over 4
35
36=item B<OSSL_MAC_PARAM_KEY> ("key") <octet string>
37
38This may be at most 64 bytes for BLAKE2BMAC or 32 for BLAKE2SMAC and
39at least 1 byte in both cases.
40
41=item B<OSSL_MAC_PARAM_CUSTOM> ("custom") <octet string>
42
43This is an optional value of at most 16 bytes for BLAKE2BMAC or 8 for
44BLAKE2SMAC.
45It is empty by default.
46
47=item B<OSSL_MAC_PARAM_SALT> ("salt") <octet string>
48
49This is an optional value of at most 16 bytes for BLAKE2BMAC or 8 for
50BLAKE2SMAC.
51It is empty by default.
52
53=item B<OSSL_MAC_PARAM_SIZE> ("size") <size_t>
54
55When set, this can be any number between between 1 and 32 for
56EVP_MAC_BLAKE2S or 64 for EVP_MAC_BLAKE2B.
57It is 32 and 64 respectively by default.
58
59=back
60
61=head1 SEE ALSO
62
63L<EVP_MAC_CTX_get_params(3)>, L<EVP_MAC_CTX_set_params(3)>,
64L<EVP_MAC(3)/PARAMETER NAMES>, L<OSSL_PARAM(3)>
65
66=head1 HISTORY
67
68The macros and functions described here were added to OpenSSL 3.0.
69
70=head1 COPYRIGHT
71
72Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
73
74Licensed under the Apache License 2.0 (the "License"). You may not use
75this file except in compliance with the License. You can obtain a copy
76in the file LICENSE in the source distribution or at
77L<https://www.openssl.org/source/license.html>.
78
79=cut