Current section
Files
Jump to
Current section
Files
c_src/utils.h
#include <erl_nif.h>
#include <secp256k1.h>
#include <string.h>
#include <assert.h>
#include "random.h"
static secp256k1_context *ctx = NULL;
static int
load(ErlNifEnv *env, void **priv, ERL_NIF_TERM load_info)
{
int return_val;
unsigned char randomize[32];
ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE);
fill_random(randomize, sizeof(randomize));
return_val = secp256k1_context_randomize(ctx, randomize);
assert(return_val);
return 0;
}
static int
upgrade(ErlNifEnv *env, void **priv, void **old_priv, ERL_NIF_TERM load_info)
{
return 0;
}
static void
unload(ErlNifEnv *env, void *priv)
{
secp256k1_context_destroy(ctx);
return;
}
static ERL_NIF_TERM
error_result(ErlNifEnv *env, char *error_msg)
{
return enif_make_tuple2(env, enif_make_atom(env, "error"), enif_make_string(env, error_msg, ERL_NIF_LATIN1));
}
/*static ERL_NIF_TERM*/
/*ok_result(ErlNifEnv *env, ERL_NIF_TERM *r)*/
/*{*/
/* return enif_make_tuple2(env, enif_make_atom(env, "ok"), *r);*/
/*}*/