Merge pull request #20 from chronic-labs/pwhash

Params pwhash_str_verify/2 as iodata() and adding test
This commit is contained in:
Jesper Louis Andersen 2018-05-20 19:19:10 +02:00 committed by GitHub
commit 405045bf5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 17 deletions

View File

@ -1300,7 +1300,7 @@ ERL_NIF_TERM enif_crypto_pwhash_str_verify(ErlNifEnv *env, int argc, ERL_NIF_TER
// Validate the arguments
if( (argc != 2) ||
(!enif_inspect_binary(env, argv[0], &h)) ||
(!enif_inspect_binary(env, argv[1], &p)) ) {
(!enif_inspect_iolist_as_binary(env, argv[1], &p)) ) {
return enif_make_badarg(env);
}

View File

@ -456,6 +456,44 @@ prop_sign_open() ->
badargs(fun() -> enacl:sign_open(SignMsg, PK) end)
end)).
%% PWHASH
%% -------------------------------
pwhash(Passwd, Salt) ->
try
enacl:pwhash(Passwd, Salt)
catch
error:badarg -> badarg
end.
pwhash_str(Passwd) ->
try
enacl:pwhash_str(Passwd)
catch
error:badarg -> badarg
end.
pwhash_str_verify(PasswdHash, Passwd) ->
try
enacl:pwhash_str_verify(PasswdHash, Passwd)
catch
error:badarg -> badarg
end.
prop_pwhash_str_verify() ->
?FORALL({Passwd},
{?FAULT_RATE(1, 40, g_iodata())},
begin
case v_iodata(Passwd) of
true ->
{K, P} = enacl:pwhash_str(Passwd),
S = enacl:pwhash_str_verify(P, Passwd),
equals(S, true);
false ->
badargs(fun() -> enacl:pwhash_str_verify(Passwd) end)
end
end).
%% CRYPTO SECRET BOX
%% -------------------------------

View File

@ -316,7 +316,7 @@ generichash_final({hashstate, HashSize, HashState}) ->
pwhash(Password, Salt) ->
enacl_nif:crypto_pwhash(Password, Salt).
%% @doc pwhash_str_verify/2 generates a ASCII encoded hash of a password
%% @doc pwhash_str/1 generates a ASCII encoded hash of a password
%%
%% This function generates a fixed size, salted, ASCII encoded hash of a user defined password.
%% @end