Stop leaking OpenSSL types and defines in the isc/hmac.h

The <isc/md.h> header directly included <openssl/hmac.h> header which
enforced all users of the libisc library to explicitly list the include
path to OpenSSL and link with -lcrypto.  By hiding the specific
implementation into the private namespace, we no longer enforce this.
In the long run, this might also allow us to switch cryptographic
library implementation without affecting the downstream users.
This commit is contained in:
Ondřej Surý 2020-03-12 09:45:58 +01:00
parent b04eda7212
commit 70100c664a
2 changed files with 4 additions and 8 deletions

View file

@ -25,9 +25,9 @@
isc_hmac_t *
isc_hmac_new(void) {
isc_hmac_t *hmac = HMAC_CTX_new();
HMAC_CTX *hmac = HMAC_CTX_new();
RUNTIME_CHECK(hmac != NULL);
return (hmac);
return ((struct hmac *)hmac);
}
void
@ -120,10 +120,8 @@ isc_result_t
isc_hmac(isc_md_type_t type, const void *key, const int keylen,
const unsigned char *buf, const size_t len, unsigned char *digest,
unsigned int *digestlen) {
isc_hmac_t *hmac = NULL;
isc_result_t res;
hmac = isc_hmac_new();
isc_hmac_t *hmac = isc_hmac_new();
res = isc_hmac_init(hmac, key, keylen, type);
if (res != ISC_R_SUCCESS) {

View file

@ -22,9 +22,7 @@
#include <isc/result.h>
#include <isc/types.h>
#include <openssl/hmac.h>
typedef HMAC_CTX isc_hmac_t;
typedef void isc_hmac_t;
/**
* isc_hmac: