Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/crypto/c_src/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ CRYPTO_OBJS = $(OBJDIR)/crypto$(TYPEMARKER).o \
$(OBJDIR)/hash$(TYPEMARKER).o \
$(OBJDIR)/hmac$(TYPEMARKER).o \
$(OBJDIR)/info$(TYPEMARKER).o \
$(OBJDIR)/kdf$(TYPEMARKER).o \
$(OBJDIR)/mac$(TYPEMARKER).o \
$(OBJDIR)/math$(TYPEMARKER).o \
$(OBJDIR)/pkey$(TYPEMARKER).o \
Expand Down
42 changes: 42 additions & 0 deletions lib/crypto/c_src/atoms.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,27 @@ ERL_NIF_TERM atom_mlkem768;
ERL_NIF_TERM atom_mlkem1024;
#endif

#ifdef HAVE_KDF
ERL_NIF_TERM atom_salt;
ERL_NIF_TERM atom_info;
ERL_NIF_TERM atom_iterations;
ERL_NIF_TERM atom_n;
ERL_NIF_TERM atom_r;
ERL_NIF_TERM atom_p;
ERL_NIF_TERM atom_maxmem;
ERL_NIF_TERM atom_mac;
ERL_NIF_TERM atom_extract_and_expand;
ERL_NIF_TERM atom_extract_only;
ERL_NIF_TERM atom_expand_only;
#endif

#ifdef HAVE_ARGON2
ERL_NIF_TERM atom_memory;
ERL_NIF_TERM atom_parallelism;
ERL_NIF_TERM atom_secret;
ERL_NIF_TERM atom_ad;
#endif

int init_atoms(ErlNifEnv *env) {
atom_true = enif_make_atom(env,"true");
atom_false = enif_make_atom(env,"false");
Expand Down Expand Up @@ -296,5 +317,26 @@ int init_atoms(ErlNifEnv *env) {
atom_mlkem768 = enif_make_atom(env,"mlkem768");
atom_mlkem1024 = enif_make_atom(env,"mlkem1024");
#endif

#ifdef HAVE_KDF
atom_salt = enif_make_atom(env,"salt");
atom_info = enif_make_atom(env,"info");
atom_iterations = enif_make_atom(env,"iterations");
atom_n = enif_make_atom(env,"n");
atom_r = enif_make_atom(env,"r");
atom_p = enif_make_atom(env,"p");
atom_maxmem = enif_make_atom(env,"maxmem");
atom_mac = enif_make_atom(env,"mac");
atom_extract_and_expand = enif_make_atom(env,"extract_and_expand");
atom_extract_only = enif_make_atom(env,"extract_only");
atom_expand_only = enif_make_atom(env,"expand_only");
#endif

#ifdef HAVE_ARGON2
atom_memory = enif_make_atom(env,"memory");
atom_parallelism = enif_make_atom(env,"parallelism");
atom_secret = enif_make_atom(env,"secret");
atom_ad = enif_make_atom(env,"ad");
#endif
return 1;
}
21 changes: 21 additions & 0 deletions lib/crypto/c_src/atoms.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,27 @@ extern ERL_NIF_TERM atom_mlkem768;
extern ERL_NIF_TERM atom_mlkem1024;
#endif

#ifdef HAVE_KDF
extern ERL_NIF_TERM atom_salt;
extern ERL_NIF_TERM atom_info;
extern ERL_NIF_TERM atom_iterations;
extern ERL_NIF_TERM atom_n;
extern ERL_NIF_TERM atom_r;
extern ERL_NIF_TERM atom_p;
extern ERL_NIF_TERM atom_maxmem;
extern ERL_NIF_TERM atom_mac;
extern ERL_NIF_TERM atom_extract_and_expand;
extern ERL_NIF_TERM atom_extract_only;
extern ERL_NIF_TERM atom_expand_only;
#endif

#ifdef HAVE_ARGON2
extern ERL_NIF_TERM atom_memory;
extern ERL_NIF_TERM atom_parallelism;
extern ERL_NIF_TERM atom_secret;
extern ERL_NIF_TERM atom_ad;
#endif

int init_atoms(ErlNifEnv *env);

#endif /* E_ATOMS_H__ */
4 changes: 4 additions & 0 deletions lib/crypto/c_src/crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
#include "hash_equals.h"
#include "hmac.h"
#include "info.h"
#include "kdf.h"
#include "math.h"
#include "pbkdf2_hmac.h"
#include "pkey.h"
Expand Down Expand Up @@ -101,6 +102,8 @@ static ErlNifFunc nif_funcs[] = {
{"hash_equals_nif", 2, hash_equals_nif, 0},

{"pbkdf2_hmac_nif", 5, pbkdf2_hmac_nif, 0},
{"kdf_nif", 4, kdf_nif, 0},
{"kdf_algorithms", 0, kdf_algorithms, 0},
{"pkey_sign_nif", 5, pkey_sign_nif, 0},
{"pkey_sign_heavy_nif", 5, pkey_sign_heavy_nif, ERL_NIF_DIRTY_JOB_CPU_BOUND},
{"pkey_verify_nif", 6, pkey_verify_nif, 0},
Expand Down Expand Up @@ -341,6 +344,7 @@ static int initialize(ErlNifEnv* env, ERL_NIF_TERM load_info)
init_mac_types(env);
init_cipher_types(env);
init_algorithms_types(env);
init_kdf_types(env);

library_initialized = 1;
ret = 0;
Expand Down
Loading
Loading