Test pwhash in EQC.
This commit is contained in:
parent
7f7c667b28
commit
4b4ec373b1
@ -761,6 +761,13 @@ pwhash(Passwd, Salt) ->
|
|||||||
error:badarg -> badarg
|
error:badarg -> badarg
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
pwhash(Password, Salt, Ops, Mem, Alg) ->
|
||||||
|
try
|
||||||
|
enacl:pwhsah(Password, Salt, Ops, Mem, Alg)
|
||||||
|
catch
|
||||||
|
error:badarg -> badarg
|
||||||
|
end.
|
||||||
|
|
||||||
pwhash_str(Passwd) ->
|
pwhash_str(Passwd) ->
|
||||||
try
|
try
|
||||||
enacl:pwhash_str(Passwd)
|
enacl:pwhash_str(Passwd)
|
||||||
@ -775,11 +782,25 @@ pwhash_str_verify(PasswdHash, Passwd) ->
|
|||||||
error:badarg -> badarg
|
error:badarg -> badarg
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
prop_pwhash() ->
|
||||||
|
?FORALL({Password, Salt, OLimit, MLimit, Alg},
|
||||||
|
{binary(16),
|
||||||
|
binary(16),
|
||||||
|
elements([interactive, moderate]), %% These could add senstitive, but are too runtime-expensive
|
||||||
|
elements([interactive, moderate]), %% And that is for a reason.
|
||||||
|
elements([default, 'argon2id13'])}, %% Argon2I13 uses different limits, so it is kept out as
|
||||||
|
%% this would otherwise fail
|
||||||
|
begin
|
||||||
|
Bin1 = enacl:pwhash(Password, Salt, OLimit, MLimit, Alg),
|
||||||
|
Bin2 = enacl:pwhash(Password, Salt, OLimit, MLimit, Alg),
|
||||||
|
equals(Bin1, Bin2)
|
||||||
|
end).
|
||||||
|
|
||||||
prop_pwhash_str_verify() ->
|
prop_pwhash_str_verify() ->
|
||||||
?FORALL({Passwd, OLimit, MLimit},
|
?FORALL({Passwd, OLimit, MLimit},
|
||||||
{?FAULT_RATE(1, 40, g_iodata()),
|
{?FAULT_RATE(1, 40, g_iodata()),
|
||||||
elements([interactive, moderate, sensitive]),
|
elements([interactive, moderate]),
|
||||||
elements([interactive, moderate, sensitive])},
|
elements([interactive, moderate])},
|
||||||
begin
|
begin
|
||||||
case v_iodata(Passwd) of
|
case v_iodata(Passwd) of
|
||||||
true ->
|
true ->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user