From b3bbb2a9103d0fd7a58cba4612ec50de0d9ad69e Mon Sep 17 00:00:00 2001 From: Thomas Arts Date: Wed, 13 Jun 2018 07:04:01 +0200 Subject: [PATCH] Add tests for scalarmult There appeared to be no tests for this function. The typical property for it is that scalarmultiplication is commutitative. --- eqc_test/enacl_eqc.erl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/eqc_test/enacl_eqc.erl b/eqc_test/enacl_eqc.erl index 3bc2987..bc7211e 100644 --- a/eqc_test/enacl_eqc.erl +++ b/eqc_test/enacl_eqc.erl @@ -1,6 +1,6 @@ -module(enacl_eqc). -include_lib("eqc/include/eqc.hrl"). --compile(export_all). +-compile([export_all, nowarn_export_all]). -ifndef(mini). -compile({parse_transform, eqc_parallelize}). @@ -774,6 +774,16 @@ prop_scramble_block() -> ?FORALL({Block, Key}, {binary(16), eqc_gen:largebinary(32)}, is_binary(enacl_ext:scramble_block_16(Block, Key))). +%% Scala multiplication +prop_scalarmult() -> + Bytes = 32, + ?FORALL({S1, S2, Basepoint}, {binary(Bytes), binary(Bytes), binary(Bytes)}, + equals(enacl:curve25519_scalarmult(S1, + enacl:curve25519_scalarmult(S2, Basepoint)), + enacl:curve25519_scalarmult(S2, + enacl:curve25519_scalarmult(S1, Basepoint))) + ). + %% HELPERS badargs(Thunk) -> try