diff options
author | Hans Nilsson <[email protected]> | 2018-08-14 10:21:58 +0200 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2018-08-16 16:37:03 +0200 |
commit | cc674152dca738da434872f78a85f6cf7070d29b (patch) | |
tree | 0c95262eca00f999ad84d3df31e217670a111525 | |
parent | 31d03ad85a194ea332a1525dbe669135982855e1 (diff) | |
download | otp-cc674152dca738da434872f78a85f6cf7070d29b.tar.gz otp-cc674152dca738da434872f78a85f6cf7070d29b.tar.bz2 otp-cc674152dca738da434872f78a85f6cf7070d29b.zip |
crypto: Try to generate ecdh for all crypto:curves()
-rw-r--r-- | lib/crypto/test/crypto_SUITE.erl | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/crypto/test/crypto_SUITE.erl b/lib/crypto/test/crypto_SUITE.erl index d32eadab30..13b1fbd047 100644 --- a/lib/crypto/test/crypto_SUITE.erl +++ b/lib/crypto/test/crypto_SUITE.erl @@ -134,7 +134,7 @@ groups() -> ]}, {dh, [], [generate_compute, compute_bug]}, - {ecdh, [], [compute, generate]}, + {ecdh, [], [generate_all_supported, compute, generate]}, {srp, [], [generate_compute]}, {des_cbc, [], [block]}, {des_cfb, [], [block]}, @@ -510,6 +510,33 @@ compute(Config) when is_list(Config) -> Gen = proplists:get_value(compute, Config), lists:foreach(fun do_compute/1, Gen). %%-------------------------------------------------------------------- +generate_all_supported() -> + [{doc, " Test that all curves from crypto:ec_curves/0 returns two binaries"}]. +generate_all_supported(_Config) -> + Results = + [try + crypto:generate_key(ecdh, C) + of + {B1,B2} when is_binary(B1) and is_binary(B2) -> + %% That is, seems like it works as expected. + {ok,C}; + Err -> + ct:log("ERROR: Curve ~p generated ~p", [C,Err]), + {error,{C,Err}} + catch + Cls:Err:Stack -> + ct:log("ERROR: Curve ~p exception ~p:~p~n~p", [C,Cls,Err,Stack]), + {error,{C,{Cls,Err}}} + end + || C <- crypto:ec_curves() + ], + OK = [C || {ok,C} <- Results], + ct:log("Ok (len=~p): ~p", [length(OK), OK]), + false = lists:any(fun({error,_}) -> true; + (_) -> false + end, Results). + +%%-------------------------------------------------------------------- generate() -> [{doc, " Test crypto:generate_key"}]. generate(Config) when is_list(Config) -> |