From fe478ea2530ef2c1bf16860f367403416b8d067b Mon Sep 17 00:00:00 2001 From: Jesper Louis Andersen Date: Mon, 20 Jan 2020 14:57:11 +0100 Subject: [PATCH] Header file fixupUse since it is a system header.Also rearrange headers to be consistent. --- c_src/aead.c | 7 ++++--- c_src/aead.h | 2 +- c_src/enacl.c | 3 ++- c_src/enacl.h | 2 +- c_src/enacl_nif.c | 46 ++---------------------------------------- c_src/generichash.c | 4 ++-- c_src/generichash.h | 2 ++ c_src/hash.c | 4 ++-- c_src/hash.h | 2 ++ c_src/pwhash.c | 3 ++- c_src/pwhash.h | 2 +- c_src/randombytes.c | 49 +++++++++++++++++++++++++++++++++++++++++++++ c_src/randombytes.h | 15 ++++++++++++++ c_src/sign.c | 4 ++-- c_src/sign.h | 2 +- 15 files changed, 88 insertions(+), 59 deletions(-) create mode 100644 c_src/randombytes.c create mode 100644 c_src/randombytes.h diff --git a/c_src/aead.c b/c_src/aead.c index 5fa11e4..bf97c7b 100644 --- a/c_src/aead.c +++ b/c_src/aead.c @@ -1,8 +1,9 @@ +#include + +#include + #include "aead.h" #include "enacl.h" -#include "erl_nif.h" - -#include /* * AEAD ChaCha20 Poly1305 diff --git a/c_src/aead.h b/c_src/aead.h index 8f2ce5b..5188c9f 100644 --- a/c_src/aead.h +++ b/c_src/aead.h @@ -1,7 +1,7 @@ #ifndef ENACL_AEAD_H #define ENACL_AEAD_H -#include "erl_nif.h" +#include /* AEAD ChaCha20 Poly1305 */ ERL_NIF_TERM diff --git a/c_src/enacl.c b/c_src/enacl.c index e762bb4..8d3007b 100644 --- a/c_src/enacl.c +++ b/c_src/enacl.c @@ -1,5 +1,6 @@ +#include + #include "enacl.h" -#include "erl_nif.h" ERL_NIF_TERM nacl_error_tuple(ErlNifEnv *env, char *error_atom) { return enif_make_tuple2(env, enif_make_atom(env, "error"), diff --git a/c_src/enacl.h b/c_src/enacl.h index e1fc1af..3d9008a 100644 --- a/c_src/enacl.h +++ b/c_src/enacl.h @@ -1,7 +1,7 @@ #ifndef ENACL_H #define ENACL_H -#include "erl_nif.h" +#include #define ATOM_OK "ok" #define ATOM_ERROR "error" diff --git a/c_src/enacl_nif.c b/c_src/enacl_nif.c index 7eacd77..60142d3 100644 --- a/c_src/enacl_nif.c +++ b/c_src/enacl_nif.c @@ -1,13 +1,14 @@ #include #include -#include "erl_nif.h" +#include #include "aead.h" #include "enacl.h" #include "generichash.h" #include "hash.h" #include "pwhash.h" +#include "randombytes.h" #include "sign.h" #define CRYPTO_SIGN_STATE_RESOURCE "crypto_sign_state" @@ -757,49 +758,6 @@ static ERL_NIF_TERM enacl_crypto_onetimeauth_verify(ErlNifEnv *env, int argc, } } -static ERL_NIF_TERM enif_randombytes(ErlNifEnv *env, int argc, - ERL_NIF_TERM const argv[]) { - unsigned req_size; - ErlNifBinary result; - - if ((argc != 1) || (!enif_get_uint(env, argv[0], &req_size))) { - return enif_make_badarg(env); - } - - if (!enif_alloc_binary(req_size, &result)) { - return nacl_error_tuple(env, "alloc_failed"); - } - - randombytes(result.data, result.size); - - return enif_make_binary(env, &result); -} - -static ERL_NIF_TERM enif_randombytes_uint32(ErlNifEnv *env, int argc, - ERL_NIF_TERM const argv[]) { - ErlNifUInt64 result; - - if (argc != 0) { - return enif_make_badarg(env); - } - - result = randombytes_random(); - return enif_make_uint64(env, result); -} - -static ERL_NIF_TERM enif_randombytes_uniform(ErlNifEnv *env, int argc, - ERL_NIF_TERM const argv[]) { - unsigned upper_bound; - ErlNifUInt64 result; - - if ((argc != 1) || (!enif_get_uint(env, argv[0], &upper_bound))) { - return enif_make_badarg(env); - } - - result = randombytes_uniform(upper_bound); - return enif_make_uint64(env, result); -} - /* Key exchange */ static ERL_NIF_TERM enacl_crypto_kx_SECRETKEYBYTES(ErlNifEnv *env, int argc, diff --git a/c_src/generichash.c b/c_src/generichash.c index 82afd32..f74bbb2 100644 --- a/c_src/generichash.c +++ b/c_src/generichash.c @@ -1,7 +1,7 @@ -#include "erl_nif.h" - #include +#include + #include "enacl.h" #include "generichash.h" diff --git a/c_src/generichash.h b/c_src/generichash.h index aaa9c66..26fb317 100644 --- a/c_src/generichash.h +++ b/c_src/generichash.h @@ -1,6 +1,8 @@ #ifndef ENACL_GENERICHASH_H #define ENACL_GENERICHASH_H +#include + int enacl_init_generic_hash_ctx(ErlNifEnv *env); ERL_NIF_TERM enacl_crypto_generichash_BYTES(ErlNifEnv *env, int argc, diff --git a/c_src/hash.c b/c_src/hash.c index 21d6aa8..ac08f45 100644 --- a/c_src/hash.c +++ b/c_src/hash.c @@ -1,7 +1,7 @@ -#include "erl_nif.h" - #include +#include + #include "hash.h" ERL_NIF_TERM enacl_crypto_hash(ErlNifEnv *env, int argc, diff --git a/c_src/hash.h b/c_src/hash.h index 7ade398..9f5b721 100644 --- a/c_src/hash.h +++ b/c_src/hash.h @@ -1,6 +1,8 @@ #ifndef ENACL_HASH_H #define ENACL_HASH_H +#include + ERL_NIF_TERM enacl_crypto_hash(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]); #endif \ No newline at end of file diff --git a/c_src/pwhash.c b/c_src/pwhash.c index 29b7f5c..3ee5bd5 100644 --- a/c_src/pwhash.c +++ b/c_src/pwhash.c @@ -1,7 +1,8 @@ #include +#include + #include "enacl.h" -#include "erl_nif.h" #include "pwhash.h" static size_t enacl_pwhash_opslimit(ErlNifEnv *env, ERL_NIF_TERM arg) { diff --git a/c_src/pwhash.h b/c_src/pwhash.h index 8ba8c5d..76a882f 100644 --- a/c_src/pwhash.h +++ b/c_src/pwhash.h @@ -1,7 +1,7 @@ #ifndef ENACL_PWHASH_H #define ENACL_PWHASH_H -#include "erl_nif.h" +#include ERL_NIF_TERM enacl_crypto_pwhash(ErlNifEnv *env, int argc, ERL_NIF_TERM const argv[]); diff --git a/c_src/randombytes.c b/c_src/randombytes.c new file mode 100644 index 0000000..bea290f --- /dev/null +++ b/c_src/randombytes.c @@ -0,0 +1,49 @@ +#include + +#include + +#include "enacl.h" +#include "randombytes.h" + +ERL_NIF_TERM enif_randombytes(ErlNifEnv *env, int argc, + ERL_NIF_TERM const argv[]) { + unsigned req_size; + ErlNifBinary result; + + if ((argc != 1) || (!enif_get_uint(env, argv[0], &req_size))) { + return enif_make_badarg(env); + } + + if (!enif_alloc_binary(req_size, &result)) { + return nacl_error_tuple(env, "alloc_failed"); + } + + randombytes(result.data, result.size); + + return enif_make_binary(env, &result); +} + +ERL_NIF_TERM enif_randombytes_uint32(ErlNifEnv *env, int argc, + ERL_NIF_TERM const argv[]) { + ErlNifUInt64 result; + + if (argc != 0) { + return enif_make_badarg(env); + } + + result = randombytes_random(); + return enif_make_uint64(env, result); +} + +ERL_NIF_TERM enif_randombytes_uniform(ErlNifEnv *env, int argc, + ERL_NIF_TERM const argv[]) { + unsigned upper_bound; + ErlNifUInt64 result; + + if ((argc != 1) || (!enif_get_uint(env, argv[0], &upper_bound))) { + return enif_make_badarg(env); + } + + result = randombytes_uniform(upper_bound); + return enif_make_uint64(env, result); +} diff --git a/c_src/randombytes.h b/c_src/randombytes.h new file mode 100644 index 0000000..bc8cedf --- /dev/null +++ b/c_src/randombytes.h @@ -0,0 +1,15 @@ +#ifndef ENACL_RANDOMBYTES_H +#define ENACL_RANDOMBYTES_H + +#include + +ERL_NIF_TERM enif_randombytes(ErlNifEnv *env, int argc, + ERL_NIF_TERM const argv[]); + +ERL_NIF_TERM enif_randombytes_uint32(ErlNifEnv *env, int argc, + ERL_NIF_TERM const argv[]); + +ERL_NIF_TERM enif_randombytes_uniform(ErlNifEnv *env, int argc, + ERL_NIF_TERM const argv[]); + +#endif \ No newline at end of file diff --git a/c_src/sign.c b/c_src/sign.c index 1413873..ecba65a 100644 --- a/c_src/sign.c +++ b/c_src/sign.c @@ -1,7 +1,7 @@ -#include "erl_nif.h" - #include +#include + #include "enacl.h" #include "sign.h" diff --git a/c_src/sign.h b/c_src/sign.h index fced63a..48f8e01 100644 --- a/c_src/sign.h +++ b/c_src/sign.h @@ -1,7 +1,7 @@ #ifndef ENACL_SIGN_H #define ENACL_SIGN_H -#include "erl_nif.h" +#include int enacl_init_sign_ctx(ErlNifEnv *env);