Add EVP_MAC API
authorRichard Levitte <levitte@openssl.org>
Fri, 12 Oct 2018 20:27:18 +0000 (22:27 +0200)
committerRichard Levitte <levitte@openssl.org>
Mon, 29 Oct 2018 12:35:19 +0000 (13:35 +0100)
commit567db2c17d4ea8a0164d7abd8aed65b7a634bb40
tree064c9a50082bc9cda43b96dcde3f7eba5a0c6bd5
parentf9e43929c46b38667f67e02765fe0f1c0d3061d6
Add EVP_MAC API

We currently implement EVP MAC methods as EVP_PKEY methods.  This
change creates a separate EVP API for MACs, to replace the current
EVP_PKEY ones.

A note about this EVP API and how it interfaces with underlying MAC
implementations:

Other EVP APIs pass the EVP API context down to implementations, and
it can be observed that the implementations use the pointer to their
own private data almost exclusively.  The EVP_MAC API deviates from
that pattern by passing the pointer to the implementation's private
data directly, and thereby deny the implementations access to the
EVP_MAC context structure.  This change is made to provide a clearer
separation between the EVP library itself and the implementations of
its supported algorithm classes.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/7393)
14 files changed:
crypto/err/openssl.txt
crypto/evp/build.info
crypto/evp/evp_err.c
crypto/evp/evp_locl.h
crypto/evp/mac_lib.c [new file with mode: 0644]
crypto/evp/names.c
crypto/include/internal/evp_int.h
doc/man3/EVP_MAC.pod [new file with mode: 0644]
include/openssl/evp.h
include/openssl/evperr.h
include/openssl/objects.h
include/openssl/ossl_typ.h
util/libcrypto.num
util/private.num