11573Srgrimes=pod
21573Srgrimes
31573Srgrimes=head1 NAME
41573Srgrimes
51573SrgrimesEVP_MAC-GMAC - The GMAC EVP_MAC implementation
61573Srgrimes
71573Srgrimes=head1 DESCRIPTION
81573Srgrimes
91573SrgrimesSupport for computing GMAC MACs through the B<EVP_MAC> API.
101573Srgrimes
111573SrgrimesThis implementation uses EVP_CIPHER functions to get access to the underlying
121573Srgrimescipher.
131573Srgrimes
141573Srgrimes=head2 Identity
151573Srgrimes
161573SrgrimesThis implementation is identified with this name and properties, to be
171573Srgrimesused with EVP_MAC_fetch():
181573Srgrimes
191573Srgrimes=over 4
201573Srgrimes
211573Srgrimes=item "GMAC", "provider=default" or "provider=fips"
221573Srgrimes
231573Srgrimes=back
241573Srgrimes
251573Srgrimes=head2 Supported parameters
261573Srgrimes
271573SrgrimesThe general description of these parameters can be found in
281573SrgrimesL<EVP_MAC(3)/PARAMETERS>.
2950476Speter
301573SrgrimesThe following parameter can be set with EVP_MAC_CTX_set_params():
31271656Sngie
321573Srgrimes=over 4
3379531Sru
341573Srgrimes=item "key" (B<OSSL_MAC_PARAM_KEY>) <octet string>
35178245Skib
36178245SkibSets the MAC key.
37178245SkibSetting this parameter is identical to passing a I<key> to L<EVP_MAC_init(3)>.
3884805Sru
3959460Sphantom=item "iv" (B<OSSL_MAC_PARAM_IV>) <octet string>
4059460Sphantom
411573SrgrimesSets the IV of the underlying cipher, when applicable.
4284306Sru
431573Srgrimes=item "cipher" (B<OSSL_MAC_PARAM_CIPHER>) <UTF8 string>
441573Srgrimes
4583797SrwatsonSets the name of the underlying cipher to be used.
4683797Srwatson
47178245Skib=item "properties" (B<OSSL_MAC_PARAM_PROPERTIES>) <UTF8 string>
48178245Skib
491573SrgrimesSets the properties to be queried when trying to fetch the underlying cipher.
501573SrgrimesThis must be given together with the cipher naming parameter to be considered
511573Srgrimesvalid.
5283797Srwatson
5383797Srwatson=back
54108028Sru
551573SrgrimesThe following parameters can be retrieved with
5684805SruEVP_MAC_CTX_get_params():
571573Srgrimes
5884805Sru=over 4
591573Srgrimes
6084805Sru=item "size" (B<OSSL_MAC_PARAM_SIZE>) <unsigned integer>
6184805Sru
6284805SruGets the MAC size.
631573Srgrimes
641573Srgrimes=back
6584805Sru
661573SrgrimesThe "size" parameter can also be retrieved with EVP_MAC_CTX_get_mac_size().
6784805SruThe length of the "size" parameter is equal to that of an B<unsigned int>.
681573Srgrimes
691573Srgrimes=head1 SEE ALSO
7084805Sru
711573SrgrimesL<EVP_MAC_CTX_get_params(3)>, L<EVP_MAC_CTX_set_params(3)>,
7284805SruL<EVP_MAC(3)/PARAMETERS>, L<OSSL_PARAM(3)>
7384805Sru
7484805Sru=head1 COPYRIGHT
751573Srgrimes
7681362SmikeCopyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved.
7784805Sru
7881362SmikeLicensed under the Apache License 2.0 (the "License").  You may not use
7981362Smikethis file except in compliance with the License.  You can obtain a copy
8081362Smikein the file LICENSE in the source distribution or at
8184805SruL<https://www.openssl.org/source/license.html>.
8283797Srwatson
83108028Sru=cut
8484805Sru