2018-12-20 23:34:22 +00:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
|
|
|
EVP_MAC_BLAKE2 - The BLAKE2 EVP_MAC implementation
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
Support for computing BLAKE2 MACs through the B<EVP_MAC> API.
|
|
|
|
|
|
|
|
=head2 Numeric identity
|
|
|
|
|
|
|
|
B<EVP_MAC_BLAKE2B> and B<EVP_MAC_BLAKE2S> are the numeric identities for this
|
|
|
|
implementation, and can be used in functions like EVP_MAC_CTX_new_id() and
|
|
|
|
EVP_get_macbynid().
|
|
|
|
|
|
|
|
=head2 Supported controls
|
|
|
|
|
|
|
|
The supported controls are:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item B<EVP_MAC_CTRL_SET_KEY>
|
|
|
|
|
|
|
|
This is a string value of at most 64 bytes for EVP_MAC_BLAKE2B
|
|
|
|
or 32 for EVP_MAC_BLAKE2S and at least 1 byte in both cases.
|
|
|
|
This must be set before calling EVP_MAC_init().
|
|
|
|
|
|
|
|
EVP_MAC_ctrl_str() takes two type strings for this control:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item "key"
|
|
|
|
|
|
|
|
The value string is used as is.
|
|
|
|
|
|
|
|
=item "hexkey"
|
|
|
|
|
|
|
|
The value string is expected to be a hexadecimal number, which will be
|
|
|
|
decoded before passing on as control value.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=item B<EVP_MAC_CTRL_SET_CUSTOM>
|
|
|
|
|
|
|
|
This is an optional string value of at most 16 bytes for EVP_MAC_BLAKE2B
|
|
|
|
or 8 for EVP_MAC_BLAKE2S, set to all-NULL by default.
|
|
|
|
If used this must be set before calling EVP_MAC_init().
|
|
|
|
|
|
|
|
EVP_MAC_ctrl_str() takes two type strings for this control:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item "custom"
|
|
|
|
|
|
|
|
The value string is used as is.
|
|
|
|
|
|
|
|
=item "hexcustom"
|
|
|
|
|
|
|
|
The value string is expected to be a hexadecimal number, which will be
|
|
|
|
decoded before passing on as control value.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=item B<EVP_MAC_CTRL_SET_SALT>
|
|
|
|
|
|
|
|
This is an optional string value of at most 16 bytes for EVP_MAC_BLAKE2B
|
|
|
|
or 8 for EVP_MAC_BLAKE2S, set to all-NULL by default.
|
|
|
|
If used this must be set before calling EVP_MAC_init().
|
|
|
|
|
|
|
|
EVP_MAC_ctrl_str() takes two type strings for this control:
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item "salt"
|
|
|
|
|
|
|
|
The value string is used as is.
|
|
|
|
|
|
|
|
=item "hexsalt"
|
|
|
|
|
|
|
|
The value string is expected to be a hexadecimal number, which will be
|
|
|
|
decoded before passing on as control value.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=item B<EVP_MAC_CTRL_SET_SIZE>
|
|
|
|
|
|
|
|
EVP_MAC_ctrl_str() type string: "outlen"
|
|
|
|
|
|
|
|
This is an optional value string containing a decimal number between 1 and
|
|
|
|
32 for EVP_MAC_BLAKE2S or 64 for EVP_MAC_BLAKE2B.
|
|
|
|
If it is not set it uses the default digest size of 32 and 64 respectively.
|
|
|
|
If used this must be set before calling EVP_MAC_init().
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
|
|
|
L<EVP_MAC_ctrl(3)>, L<EVP_MAC(3)/CONTROLS>
|
|
|
|
|
|
|
|
=head1 HISTORY
|
|
|
|
|
2019-07-15 13:03:44 +00:00
|
|
|
The macros and functions described here were added to OpenSSL 3.0.
|
2018-12-20 23:34:22 +00:00
|
|
|
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
|
|
|
Copyright 2018 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
|