|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | EVP_MAC-CMAC - The CMAC EVP_MAC implementation | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | Support for computing CMAC MACs through the B<EVP_MAC> API. | 
|  |  | 
|  | This implementation uses EVP_CIPHER functions to get access to the underlying | 
|  | cipher. | 
|  |  | 
|  | =head2 Identity | 
|  |  | 
|  | This implementation is identified with this name and properties, to be | 
|  | used with EVP_MAC_fetch(): | 
|  |  | 
|  | =over 4 | 
|  |  | 
|  | =item "CMAC", "provider=default" or "provider=fips" | 
|  |  | 
|  | =back | 
|  |  | 
|  | =head2 Supported parameters | 
|  |  | 
|  | The general description of these parameters can be found in | 
|  | L<EVP_MAC(3)/PARAMETERS>. | 
|  |  | 
|  | The following parameter can be set with EVP_MAC_CTX_set_params(): | 
|  |  | 
|  | =over 4 | 
|  |  | 
|  | =item "key" (B<OSSL_MAC_PARAM_KEY>) <octet string> | 
|  |  | 
|  | Sets the MAC key. | 
|  | Setting this parameter is identical to passing a I<key> to L<EVP_MAC_init(3)>. | 
|  |  | 
|  | =item "cipher" (B<OSSL_MAC_PARAM_CIPHER>) <UTF8 string> | 
|  |  | 
|  | Sets the name of the underlying cipher to be used. | 
|  |  | 
|  | =item "properties" (B<OSSL_MAC_PARAM_PROPERTIES>) <UTF8 string> | 
|  |  | 
|  | Sets the properties to be queried when trying to fetch the underlying cipher. | 
|  | This must be given together with the cipher naming parameter to be considered | 
|  | valid. | 
|  |  | 
|  | =back | 
|  |  | 
|  | The following parameters can be retrieved with | 
|  | EVP_MAC_CTX_get_params(): | 
|  |  | 
|  | =over 4 | 
|  |  | 
|  | =item "size" (B<OSSL_MAC_PARAM_SIZE>) <unsigned integer> | 
|  |  | 
|  | The "size" parameter can also be retrieved with with EVP_MAC_CTX_get_mac_size(). | 
|  | The length of the "size" parameter is equal to that of an B<unsigned int>. | 
|  |  | 
|  | =back | 
|  |  | 
|  | =over 4 | 
|  |  | 
|  | =item "block-size" (B<OSSL_MAC_PARAM_SIZE>) <unsigned integer> | 
|  |  | 
|  | Gets the MAC block size.  The "block-size" parameter can also be retrieved with | 
|  | EVP_MAC_CTX_get_block_size(). | 
|  |  | 
|  | =back | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<EVP_MAC_CTX_get_params(3)>, L<EVP_MAC_CTX_set_params(3)>, | 
|  | L<EVP_MAC(3)/PARAMETERS>, L<OSSL_PARAM(3)> | 
|  |  | 
|  | =head1 COPYRIGHT | 
|  |  | 
|  | Copyright 2018-2021 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 |