34 lines
717 B
Erlang
34 lines
717 B
Erlang
-module(enacl_eqc).
|
|
-include_lib("eqc/include/eqc.hrl").
|
|
-compile(export_all).
|
|
|
|
%% CRYPTO BOX
|
|
%% ---------------------------
|
|
|
|
prop_box_keypair() ->
|
|
?FORALL(_X, return(dummy),
|
|
ok_box(enacl:box_keypair())).
|
|
|
|
ok_box({ok, _PK, _SK}) -> true;
|
|
ok_box(_) -> false.
|
|
|
|
|
|
%% HASHING
|
|
%% ---------------------------
|
|
diff_pair(Sz) ->
|
|
?SUCHTHAT({X, Y}, {binary(Sz), binary(Sz)},
|
|
X /= Y).
|
|
|
|
prop_crypto_hash_eq() ->
|
|
?FORALL(Sz, oneof([1, 128, 1024, 1024*4]),
|
|
?FORALL(X, binary(Sz),
|
|
equals(enacl:hash(X), enacl:hash(X))
|
|
)).
|
|
|
|
prop_crypto_hash_neq() ->
|
|
?FORALL(Sz, oneof([1, 128, 1024, 1024*4]),
|
|
?FORALL({X, Y}, diff_pair(Sz),
|
|
enacl:hash(X) /= enacl:hash(Y)
|
|
)).
|
|
|