=head1 SYNOPSIS
-=for comment multiple includes
+=for openssl multiple includes
#include <openssl/core_numbers.h>
#include <openssl/core_names.h>
The MAC operation enables providers to implement mac algorithms and make
them available to applications via the API functions L<EVP_MAC_init(3)>,
-L<EVP_MACM_update(3)> and L<EVP_MAC_final(3)>.
+L<EVP_MAC_update(3)> and L<EVP_MAC_final(3)>.
All "functions" mentioned here are passed as function pointers between
F<libcrypto> and the provider in B<OSSL_DISPATCH> arrays via
structure for holding context information during a mac operation.
A pointer to this context will be passed back in a number of the other mac
operation function calls.
-The paramater I<provctx> is the provider context generated during provider
-initialisation (see L<provider(3)>).
+The parameter I<provctx> is the provider context generated during provider
+initialisation (see L<provider(7)>).
OP_mac_freectx() is passed a pointer to the provider side mac context in
the I<mctx> parameter.
=head2 Encryption/Decryption Functions
OP_mac_init() initialises a mac operation given a newly created provider
-side mac context in the I<mctx> paramter.
+side mac context in the I<mctx> parameter.
OP_mac_update() is called to supply data for MAC computation of a previously
initialised mac operation.
=over 4
-=item B<OSSL_MAC_PARAM_KEY> (octet string)
+=item "key" (B<OSSL_MAC_PARAM_KEY>) <octet string>
Sets the key in the associated MAC ctx.
-=item B<OSSL_MAC_PARAM_IV> (octet string)
+=item "iv" (B<OSSL_MAC_PARAM_IV>) <octet string>
Sets the IV of the underlying cipher, when applicable.
-=item B<OSSL_MAC_PARAM_CUSTOM> (UTF8 string)
+=item "custom" (B<OSSL_MAC_PARAM_CUSTOM>) <UTF8 string>
Sets the custom string in the associated MAC ctx.
-=item B<OSSL_MAC_PARAM_SALT> (octet string)
+=item "salt" (B<OSSL_MAC_PARAM_SALT>) <octet string>
Sets the salt of the underlying cipher, when applicable.
-=item B<OSSL_MAC_PARAM_BLOCK_XOF> (integer)
+=item "xof" (B<OSSL_MAC_PARAM_BLOCK_XOF>) <integer>
Sets XOF mode in the associated MAC ctx.
0 means no XOF mode, 1 means XOF mode.
-=item B<OSSL_MAC_PARAM_FLAGS> (integer)
+=item "flags" (B<OSSL_MAC_PARAM_FLAGS>) <integer>
Gets flags associated with the MAC.
=for comment We need to investigate if this is the right approach
-=item B<OSSL_MAC_PARAM_CIPHER> (UTF8 string)
+=item "cipher" (B<OSSL_MAC_PARAM_CIPHER>) <UTF8 string>
-=item B<OSSL_MAC_PARAM_DIGEST> (UTF8 string)
+=item "digest" (B<OSSL_MAC_PARAM_DIGEST>) <UTF8 string>
Sets the name of the underlying cipher or digest to be used.
It must name a suitable algorithm for the MAC that's being used.
-=item B<OSSL_MAC_PARAM_PROPERTIES> (UTF8 string)
+=item "properties" (B<OSSL_MAC_PARAM_PROPERTIES>) <UTF8 string>
Sets the properties to be queried when trying to fetch the underlying algorithm.
This must be given together with the algorithm naming parameter to be
considered valid.
-=item B<OSSL_MAC_PARAM_SIZE> (integer)
+=item "size" (B<OSSL_MAC_PARAM_SIZE>) <integer>
Can be used to get the resulting MAC size.