commit
a45d3863e0
@ -287,6 +287,7 @@ static ErlNifFunc nif_funcs[] = {
|
|||||||
{"crypto_verify_32", 2, enacl_crypto_verify_32},
|
{"crypto_verify_32", 2, enacl_crypto_verify_32},
|
||||||
{"sodium_memzero", 1, enif_sodium_memzero},
|
{"sodium_memzero", 1, enif_sodium_memzero},
|
||||||
|
|
||||||
|
{"crypto_pwhash_SALTBYTES", 0, enacl_crypto_pwhash_SALTBYTES},
|
||||||
erl_nif_dirty_job_cpu_bound_macro("crypto_pwhash", 4, enacl_crypto_pwhash),
|
erl_nif_dirty_job_cpu_bound_macro("crypto_pwhash", 4, enacl_crypto_pwhash),
|
||||||
erl_nif_dirty_job_cpu_bound_macro("crypto_pwhash_str", 3,
|
erl_nif_dirty_job_cpu_bound_macro("crypto_pwhash_str", 3,
|
||||||
enacl_crypto_pwhash_str),
|
enacl_crypto_pwhash_str),
|
||||||
|
@ -57,6 +57,12 @@ static size_t enacl_pwhash_memlimit(ErlNifEnv *env, ERL_NIF_TERM arg) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ERL_NIF_TERM enacl_crypto_pwhash_SALTBYTES(ErlNifEnv *env, int argc,
|
||||||
|
ERL_NIF_TERM const argv[]) {
|
||||||
|
return enif_make_int64(env, crypto_pwhash_SALTBYTES);
|
||||||
|
}
|
||||||
|
|
||||||
ERL_NIF_TERM enacl_crypto_pwhash(ErlNifEnv *env, int argc,
|
ERL_NIF_TERM enacl_crypto_pwhash(ErlNifEnv *env, int argc,
|
||||||
ERL_NIF_TERM const argv[]) {
|
ERL_NIF_TERM const argv[]) {
|
||||||
ErlNifBinary h, p, s;
|
ErlNifBinary h, p, s;
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
|
|
||||||
#include <erl_nif.h>
|
#include <erl_nif.h>
|
||||||
|
|
||||||
|
ERL_NIF_TERM enacl_crypto_pwhash_SALTBYTES(ErlNifEnv *env, int argc,
|
||||||
|
ERL_NIF_TERM const argv[]);
|
||||||
|
|
||||||
ERL_NIF_TERM enacl_crypto_pwhash(ErlNifEnv *env, int argc,
|
ERL_NIF_TERM enacl_crypto_pwhash(ErlNifEnv *env, int argc,
|
||||||
ERL_NIF_TERM const argv[]);
|
ERL_NIF_TERM const argv[]);
|
||||||
|
|
||||||
|
@ -116,6 +116,7 @@
|
|||||||
shorthash_size/0,
|
shorthash_size/0,
|
||||||
shorthash/2,
|
shorthash/2,
|
||||||
|
|
||||||
|
pwhash_SALTBYTES/0,
|
||||||
pwhash/4,
|
pwhash/4,
|
||||||
pwhash_str/3,
|
pwhash_str/3,
|
||||||
|
|
||||||
@ -395,6 +396,13 @@ generichash_final(State) ->
|
|||||||
enacl_nif:crypto_generichash_final(State).
|
enacl_nif:crypto_generichash_final(State).
|
||||||
|
|
||||||
-type pwhash_limit() :: interactive | moderate | sensitive | pos_integer().
|
-type pwhash_limit() :: interactive | moderate | sensitive | pos_integer().
|
||||||
|
|
||||||
|
%% @doc pwhash_SALTBYTES/0 returns the number of bytes required for salt.
|
||||||
|
%% @end
|
||||||
|
-spec pwhash_SALTBYTES() -> pos_integer().
|
||||||
|
pwhash_SALTBYTES() ->
|
||||||
|
enacl_nif:crypto_pwhash_SALTBYTES().
|
||||||
|
|
||||||
%% @doc pwhash/2 hash a password
|
%% @doc pwhash/2 hash a password
|
||||||
%%
|
%%
|
||||||
%% This function generates a fixed size salted hash of a user defined password.
|
%% This function generates a fixed size salted hash of a user defined password.
|
||||||
|
@ -147,6 +147,7 @@
|
|||||||
|
|
||||||
%% Password Hashing - Argon2 Algorithm
|
%% Password Hashing - Argon2 Algorithm
|
||||||
-export([
|
-export([
|
||||||
|
crypto_pwhash_SALTBYTES/0,
|
||||||
crypto_pwhash/4,
|
crypto_pwhash/4,
|
||||||
crypto_pwhash_str/3,
|
crypto_pwhash_str/3,
|
||||||
crypto_pwhash_str_verify/2
|
crypto_pwhash_str_verify/2
|
||||||
@ -238,6 +239,7 @@ crypto_secretstream_xchacha20poly1305_init_pull(_Header, _Key) -> erlang:nif_err
|
|||||||
crypto_secretstream_xchacha20poly1305_pull(_Ref, _CipherText, _AD) -> erlang:nif_error(nif_not_loaded).
|
crypto_secretstream_xchacha20poly1305_pull(_Ref, _CipherText, _AD) -> erlang:nif_error(nif_not_loaded).
|
||||||
crypto_secretstream_xchacha20poly1305_rekey(_Ref) -> erlang:nif_error(nif_not_loaded).
|
crypto_secretstream_xchacha20poly1305_rekey(_Ref) -> erlang:nif_error(nif_not_loaded).
|
||||||
|
|
||||||
|
crypto_pwhash_SALTBYTES() -> erlang:nif_error(nif_not_loaded).
|
||||||
crypto_pwhash(_Password, _Salt, _Ops, _Mem) -> erlang:nif_error(nif_not_loaded).
|
crypto_pwhash(_Password, _Salt, _Ops, _Mem) -> erlang:nif_error(nif_not_loaded).
|
||||||
crypto_pwhash_str(_Password, _Ops, _Mem) -> erlang:nif_error(nif_not_loaded).
|
crypto_pwhash_str(_Password, _Ops, _Mem) -> erlang:nif_error(nif_not_loaded).
|
||||||
crypto_pwhash_str_verify(_HashedPassword, _Password) -> erlang:nif_error(nif_not_loaded).
|
crypto_pwhash_str_verify(_HashedPassword, _Password) -> erlang:nif_error(nif_not_loaded).
|
||||||
|
@ -136,6 +136,7 @@ pwhash(_Config) ->
|
|||||||
Str1 = enacl:pwhash_str(PW),
|
Str1 = enacl:pwhash_str(PW),
|
||||||
true = enacl:pwhash_str_verify(Str1, PW),
|
true = enacl:pwhash_str_verify(Str1, PW),
|
||||||
false = enacl:pwhash_str_verify(Str1, <<PW/binary, 1>>),
|
false = enacl:pwhash_str_verify(Str1, <<PW/binary, 1>>),
|
||||||
|
16 = enacl:pwhash_SALTBYTES(),
|
||||||
ok.
|
ok.
|
||||||
|
|
||||||
sign(_Config) ->
|
sign(_Config) ->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user