diff options
author | Hans Nilsson <[email protected]> | 2019-06-03 16:08:02 +0200 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2019-06-14 13:33:07 +0200 |
commit | de310ac450cf452b57150ea3abd65b74942d94fd (patch) | |
tree | 9a2e7fc48b9cf1ce0d6de4dc001df1fe56838026 /lib/crypto/c_src/hmac.c | |
parent | 45fe2d9fa1f9997bbdf6f50ef721f42204c812f0 (diff) | |
download | otp-de310ac450cf452b57150ea3abd65b74942d94fd.tar.gz otp-de310ac450cf452b57150ea3abd65b74942d94fd.tar.bz2 otp-de310ac450cf452b57150ea3abd65b74942d94fd.zip |
crypto: Implement NIFs for the new mac_init, mac_update and mac_final
Use them for old HMAC functions. Also simplify hmac and cmac on the
Erlang level
Diffstat (limited to 'lib/crypto/c_src/hmac.c')
-rw-r--r-- | lib/crypto/c_src/hmac.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/crypto/c_src/hmac.c b/lib/crypto/c_src/hmac.c index 060ad6230f..1a4f96e1d5 100644 --- a/lib/crypto/c_src/hmac.c +++ b/lib/crypto/c_src/hmac.c @@ -18,6 +18,8 @@ * %CopyrightEnd% */ +#ifndef HAS_EVP_PKEY_CTX + #include "hmac.h" #include "digest.h" @@ -63,17 +65,17 @@ static void hmac_context_dtor(ErlNifEnv* env, struct hmac_context *obj) } ERL_NIF_TERM hmac_init_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) -{/* (Type, Key) */ +{/* (hmac, Type, Key) */ struct digest_type_t *digp = NULL; ErlNifBinary key; ERL_NIF_TERM ret; struct hmac_context *obj = NULL; - ASSERT(argc == 2); + ASSERT(argc == 3); - if ((digp = get_digest_type(argv[0])) == NULL) + if ((digp = get_digest_type(argv[1])) == NULL) goto bad_arg; - if (!enif_inspect_iolist_as_binary(env, argv[1], &key)) + if (!enif_inspect_iolist_as_binary(env, argv[2], &key)) goto bad_arg; if (key.size > INT_MAX) goto bad_arg; @@ -213,3 +215,4 @@ ERL_NIF_TERM hmac_final_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) return ret; } +#endif |