diff --git a/lib/ssl/test/property_test/ssl_eqc_chain.erl b/lib/ssl/test/property_test/ssl_eqc_chain.erl index f2aaac56e084..5eea9606a625 100644 --- a/lib/ssl/test/property_test/ssl_eqc_chain.erl +++ b/lib/ssl/test/property_test/ssl_eqc_chain.erl @@ -25,135 +25,51 @@ %%-export([prop_tls_orded_path/1]). -compile(export_all). - --proptest(eqc). --proptest([triq,proper]). - --ifndef(EQC). --ifndef(PROPER). --ifndef(TRIQ). --define(EQC,true). --endif. --endif. --endif. - --ifdef(EQC). --include_lib("eqc/include/eqc.hrl"). --define(MOD_eqc,eqc). - --else. --ifdef(PROPER). --include_lib("proper/include/proper.hrl"). --define(MOD_eqc,proper). - --else. --ifdef(TRIQ). --define(MOD_eqc,triq). --include_lib("triq/include/triq.hrl"). - --endif. --endif. --endif. - +-include_lib("common_test/include/ct_property_test.hrl"). -include_lib("public_key/include/public_key.hrl"). %%-------------------------------------------------------------------- %% Properties -------------------------------------------------------- %%-------------------------------------------------------------------- + +signature_algs_test(ClientOptions, ServerOptions) -> + try + [TLSVersion] = proplists:get_value(versions, ClientOptions), + SigAlgs = signature_algs(TLSVersion), + ssl_test_lib:basic_test(SigAlgs ++ ClientOptions, + SigAlgs ++ ServerOptions, [{server_type, erlang}, + {client_type, erlang}, + {version, TLSVersion} + ]), + + true + catch _:_ -> + false + end. + prop_tls_unordered_path(PrivDir) -> - ?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), unordered_options(Version, PrivDir)), - try - [TLSVersion] = proplists:get_value(versions, ClientOptions), - SigAlgs = signature_algs(TLSVersion), - ssl_test_lib:basic_test(SigAlgs ++ ClientOptions, - SigAlgs ++ ServerOptions, [{server_type, erlang}, - {client_type, erlang}, - {version, TLSVersion} - ]) - of - _ -> - true - catch - _:_ -> - false - end - ). + ?FORALL({ClientOptions, ServerOptions}, + ?LET(Version, tls_version(), unordered_options(Version, PrivDir)), + signature_algs_test(ClientOptions, ServerOptions)). prop_tls_extraneous_path(PrivDir) -> - ?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), extraneous_options(Version, PrivDir)), - try - [TLSVersion] = proplists:get_value(versions, ClientOptions), - SigAlgs = signature_algs(TLSVersion), - ssl_test_lib:basic_test(SigAlgs ++ ClientOptions, - SigAlgs ++ ServerOptions, [{server_type, erlang}, - {client_type, erlang}, - {version, TLSVersion} - ]) - of - _ -> - true - catch - _:_ -> - false - end - ). + ?FORALL({ClientOptions, ServerOptions}, + ?LET(Version, tls_version(), extraneous_options(Version, PrivDir)), + signature_algs_test(ClientOptions, ServerOptions)). prop_tls_extraneous_paths() -> - ?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), extra_extraneous_options(Version)), - try - [TLSVersion] = proplists:get_value(versions, ClientOptions), - SigAlgs = signature_algs(TLSVersion), - ssl_test_lib:basic_test(SigAlgs ++ ClientOptions, - SigAlgs ++ ServerOptions, [{server_type, erlang}, - {client_type, erlang}, - {version, TLSVersion} - ]) - of - _ -> - true - catch - _:_ -> - false - end - ). + ?FORALL({ClientOptions, ServerOptions}, + ?LET(Version, tls_version(), extra_extraneous_options(Version)), + signature_algs_test(ClientOptions, ServerOptions)). prop_tls_extraneous_and_unordered_path() -> - ?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), unordered_extraneous_options(Version)), - try - [TLSVersion] = proplists:get_value(versions, ClientOptions), - SigAlgs = signature_algs(TLSVersion), - ssl_test_lib:basic_test(SigAlgs ++ ClientOptions, - SigAlgs ++ ServerOptions, [{server_type, erlang}, - {client_type, erlang}, - {version, TLSVersion} - ]) - of - _ -> - true - catch - _:_ -> - false - end - ). + ?FORALL({ClientOptions, ServerOptions}, + ?LET(Version, tls_version(), unordered_extraneous_options(Version)), + signature_algs_test(ClientOptions, ServerOptions)). prop_client_cert_auth() -> - ?FORALL({ClientOptions, ServerOptions}, ?LET(Version, tls_version(), client_cert_auth_opts(Version)), - try - [TLSVersion] = proplists:get_value(versions, ClientOptions), - SigAlgs = signature_algs(TLSVersion), - ssl_test_lib:basic_test(SigAlgs ++ ClientOptions, - SigAlgs ++ ServerOptions, - [{server_type, erlang}, - {client_type, erlang}, - {version, TLSVersion} - ]) - of - _ -> - true - catch - _:_ -> - false - end - ). + ?FORALL({ClientOptions, ServerOptions}, + ?LET(Version, tls_version(), client_cert_auth_opts(Version)), + signature_algs_test(ClientOptions, ServerOptions)). %%-------------------------------------------------------------------- %% Chain Generators ----------------------------------------------- @@ -162,14 +78,14 @@ tls_version() -> Versions = [Version || Version <- ['tlsv1.3', 'tlsv1.2', 'tlsv1.1', 'tlsv1', 'dtlsv1.2', 'dtlsv1'], ssl_test_lib:sufficient_crypto_support(Version) ], - oneof(Versions). + elements(Versions). key_alg(Version) when Version == 'tlsv1.3'; Version == 'tlsv1.2'; Version == 'dtlsv1.2'-> - oneof([rsa, ecdsa]); + elements([rsa, ecdsa]); key_alg(_) -> - oneof([rsa]). + elements([rsa]). server_options('tlsv1.3') -> [{verify, verify_peer}, @@ -196,11 +112,11 @@ pem_unordered_options(Version, PrivDir) -> unordered_der_cert_chain_opts(Version, Alg) -> #{server_config := ServerConf, client_config := ClientConf} = public_key:pkix_test_data(#{server_chain => #{root => root_key(Alg), - intermediates => intermediates(Alg, 4), - peer => peer_key(Alg)}, - client_chain => #{root => root_key(Alg), - intermediates => intermediates(Alg, 4), - peer => peer_key(Alg)}}), + intermediates => intermediates(Alg, 4), + peer => peer_key(Alg)}, + client_chain => #{root => root_key(Alg), + intermediates => intermediates(Alg, 4), + peer => peer_key(Alg)}}), {client_options(Version) ++ [protocol(Version), {versions, [Version]} | unordered_der_conf(ClientConf)], server_options(Version) ++ [protocol(Version), {versions, [Version]} | unordered_der_conf(ServerConf)]}. diff --git a/lib/ssl/test/property_test/ssl_eqc_cipher_format.erl b/lib/ssl/test/property_test/ssl_eqc_cipher_format.erl index 2cd47743bfd1..d764d70a9f6e 100644 --- a/lib/ssl/test/property_test/ssl_eqc_cipher_format.erl +++ b/lib/ssl/test/property_test/ssl_eqc_cipher_format.erl @@ -25,35 +25,7 @@ -compile(export_all). --proptest(eqc). --proptest([triq,proper]). - --ifndef(EQC). --ifndef(PROPER). --ifndef(TRIQ). --define(EQC,true). --endif. --endif. --endif. - --ifdef(EQC). --include_lib("eqc/include/eqc.hrl"). --define(MOD_eqc,eqc). - --else. --ifdef(PROPER). --include_lib("proper/include/proper.hrl"). --define(MOD_eqc,proper). - --else. --ifdef(TRIQ). --define(MOD_eqc,triq). --include_lib("triq/include/triq.hrl"). - --endif. --endif. --endif. - +-include_lib("common_test/include/ct_property_test.hrl"). -include_lib("public_key/include/public_key.hrl"). -define('TLS_v1.3', 'tlsv1.3'). @@ -67,13 +39,7 @@ prop_tls_cipher_suite_rfc_name() -> ?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, tls_version(), {cipher_suite(Version), Version}), - case ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) of - CipherSuite -> - true; - _ -> - false - end - ). + ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) == CipherSuite). prop_tls_cipher_suite_openssl_name() -> ?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, tls_version(), {cipher_suite(Version), Version}), @@ -91,17 +57,14 @@ prop_tls_cipher_suite_openssl_name() -> ). prop_tls_anon_cipher_suite_rfc_name() -> - ?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}), - case ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) of - CipherSuite -> - true; - _ -> - false - end - ). + ?FORALL({CipherSuite, _TLSVersion}, + ?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}), + ssl:str_to_suite(ssl:suite_to_str(CipherSuite)) == CipherSuite + ). prop_tls_anon_cipher_suite_openssl_name() -> - ?FORALL({CipherSuite, _TLSVersion}, ?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}), + ?FORALL({CipherSuite, _TLSVersion}, + ?LET(Version, pre_tls_1_3_version(), {anon_cipher_suite(Version), Version}), case ssl:str_to_suite(ssl:suite_to_openssl_str(CipherSuite)) of CipherSuite -> lists:member(ssl:suite_to_openssl_str(CipherSuite), openssl_legacy_names()); @@ -112,8 +75,7 @@ prop_tls_anon_cipher_suite_openssl_name() -> prop_tls_signature_algs() -> ?FORALL(SigAlg, ?LET(SigAlg, sig_alg(), SigAlg), - true = lists:member(ssl_cipher:signature_algorithm_to_scheme(SigAlg), sig_schemes()) - ). + lists:member(ssl_cipher:signature_algorithm_to_scheme(SigAlg), sig_schemes())). %%-------------------------------------------------------------------- %% Generators ----------------------------------------------- diff --git a/lib/ssl/test/property_test/ssl_eqc_ecc.erl b/lib/ssl/test/property_test/ssl_eqc_ecc.erl index cddeddd1c92e..a81e6d9c759a 100644 --- a/lib/ssl/test/property_test/ssl_eqc_ecc.erl +++ b/lib/ssl/test/property_test/ssl_eqc_ecc.erl @@ -25,37 +25,9 @@ %%-export([prop_tls_orded_path/1]). -compile(export_all). - --proptest(eqc). --proptest([triq,proper]). - --ifndef(EQC). --ifndef(PROPER). --ifndef(TRIQ). --define(EQC,true). --endif. --endif. --endif. - --ifdef(EQC). --include_lib("eqc/include/eqc.hrl"). --define(MOD_eqc,eqc). - --else. --ifdef(PROPER). --include_lib("proper/include/proper.hrl"). --define(MOD_eqc,proper). - --else. --ifdef(TRIQ). --define(MOD_eqc,triq). --include_lib("triq/include/triq.hrl"). - --endif. --endif. --endif. - +-include_lib("common_test/include/ct_property_test.hrl"). -include_lib("public_key/include/public_key.hrl"). + %%-------------------------------------------------------------------- %% Properties -------------------------------------------------------- %%-------------------------------------------------------------------- diff --git a/lib/ssl/test/property_test/ssl_eqc_handshake.erl b/lib/ssl/test/property_test/ssl_eqc_handshake.erl index bef7511093cf..a1f483973c7b 100644 --- a/lib/ssl/test/property_test/ssl_eqc_handshake.erl +++ b/lib/ssl/test/property_test/ssl_eqc_handshake.erl @@ -25,35 +25,7 @@ -compile(export_all). --proptest(eqc). --proptest([triq,proper]). - --ifndef(EQC). --ifndef(PROPER). --ifndef(TRIQ). --define(EQC,true). --endif. --endif. --endif. - --ifdef(EQC). --include_lib("eqc/include/eqc.hrl"). --define(MOD_eqc,eqc). - --else. --ifdef(PROPER). --include_lib("proper/include/proper.hrl"). --define(MOD_eqc,proper). - --else. --ifdef(TRIQ). --define(MOD_eqc,triq). --include_lib("triq/include/triq.hrl"). - --endif. --endif. --endif. - +-include_lib("common_test/include/ct_property_test.hrl"). -include_lib("kernel/include/inet.hrl"). -include_lib("ssl/src/tls_handshake_1_3.hrl"). -include_lib("ssl/src/tls_handshake.hrl"). @@ -62,7 +34,6 @@ -include_lib("ssl/src/ssl_internal.hrl"). -include_lib("ssl/src/ssl_record.hrl"). - %%-------------------------------------------------------------------- %% Properties -------------------------------------------------------- %%-------------------------------------------------------------------- @@ -71,12 +42,7 @@ prop_tls_hs_encode_decode() -> ?FORALL({Handshake, TLSVersion}, ?LET(Version, tls_version(), {tls_msg(Version), Version}), try [Type, _Length, Data] = tls_handshake:encode_handshake(Handshake, TLSVersion), - case tls_handshake:decode_handshake(TLSVersion, Type, Data) of - Handshake -> - true; - _ -> - false - end + tls_handshake:decode_handshake(TLSVersion, Type, Data) == Handshake catch throw:#alert{} -> true @@ -487,45 +453,48 @@ signature_algorithms() -> #signature_algorithms{signature_scheme_list = List}). sig_scheme_list() -> - oneof([[rsa_pkcs1_sha256], - [rsa_pkcs1_sha256, ecdsa_sha1], - [rsa_pkcs1_sha256, - rsa_pkcs1_sha384, - rsa_pkcs1_sha512, - ecdsa_secp256r1_sha256, - ecdsa_secp384r1_sha384, - ecdsa_secp521r1_sha512, - ecdsa_brainpoolP256r1tls13_sha256, - ecdsa_brainpoolP384r1tls13_sha384, - ecdsa_brainpoolP512r1tls13_sha512, - rsa_pss_rsae_sha256, - rsa_pss_rsae_sha384, - rsa_pss_rsae_sha512, - rsa_pss_pss_sha256, - rsa_pss_pss_sha384, - rsa_pss_pss_sha512, + elements([ + [rsa_pkcs1_sha256], + [rsa_pkcs1_sha256, ecdsa_sha1], + [rsa_pkcs1_sha256, + rsa_pkcs1_sha384, + rsa_pkcs1_sha512, + ecdsa_secp256r1_sha256, + ecdsa_secp384r1_sha384, + ecdsa_secp521r1_sha512, + ecdsa_brainpoolP256r1tls13_sha256, + ecdsa_brainpoolP384r1tls13_sha384, + ecdsa_brainpoolP512r1tls13_sha512, + rsa_pss_rsae_sha256, + rsa_pss_rsae_sha384, + rsa_pss_rsae_sha512, + rsa_pss_pss_sha256, + rsa_pss_pss_sha384, + rsa_pss_pss_sha512, rsa_pkcs1_sha1, - ecdsa_sha1] - ]). + ecdsa_sha1] + ]). sig_scheme() -> - oneof([rsa_pkcs1_sha256, - rsa_pkcs1_sha384, - rsa_pkcs1_sha512, - ecdsa_secp256r1_sha256, - ecdsa_secp384r1_sha384, - ecdsa_secp521r1_sha512, - ecdsa_brainpoolP256r1tls13_sha256, - ecdsa_brainpoolP384r1tls13_sha384, - ecdsa_brainpoolP512r1tls13_sha512, - rsa_pss_rsae_sha256, - rsa_pss_rsae_sha384, - rsa_pss_rsae_sha512, - rsa_pss_pss_sha256, - rsa_pss_pss_sha384, - rsa_pss_pss_sha512, - rsa_pkcs1_sha1, - ecdsa_sha1]). + elements([ + rsa_pkcs1_sha256, + rsa_pkcs1_sha384, + rsa_pkcs1_sha512, + ecdsa_secp256r1_sha256, + ecdsa_secp384r1_sha384, + ecdsa_secp521r1_sha512, + ecdsa_brainpoolP256r1tls13_sha256, + ecdsa_brainpoolP384r1tls13_sha384, + ecdsa_brainpoolP512r1tls13_sha512, + rsa_pss_rsae_sha256, + rsa_pss_rsae_sha384, + rsa_pss_rsae_sha512, + rsa_pss_pss_sha256, + rsa_pss_pss_sha384, + rsa_pss_pss_sha512, + rsa_pkcs1_sha1, + ecdsa_sha1 + ]). signature() -> <<44,119,215,137,54,84,156,26,121,212,64,173,189,226,