2525
2626% %-export([prop_tls_orded_path/1]).
2727-compile (export_all ).
28-
29- -proptest (eqc ).
30- -proptest ([triq ,proper ]).
31-
32- -ifndef (EQC ).
33- -ifndef (PROPER ).
34- -ifndef (TRIQ ).
35- -define (EQC ,true ).
36- -endif .
37- -endif .
38- -endif .
39-
40- -ifdef (EQC ).
41- -include_lib (" eqc/include/eqc.hrl" ).
42- -define (MOD_eqc ,eqc ).
43-
44- -else .
45- -ifdef (PROPER ).
46- -include_lib (" proper/include/proper.hrl" ).
47- -define (MOD_eqc ,proper ).
48-
49- -else .
50- -ifdef (TRIQ ).
51- -define (MOD_eqc ,triq ).
52- -include_lib (" triq/include/triq.hrl" ).
53-
54- -endif .
55- -endif .
56- -endif .
57-
28+ -include_lib (" common_test/include/ct_property_test.hrl" ).
5829-include_lib (" public_key/include/public_key.hrl" ).
5930% %--------------------------------------------------------------------
6031% % Properties --------------------------------------------------------
6132% %--------------------------------------------------------------------
33+
34+ signature_algs_test (ClientOptions , ServerOptions ) ->
35+ try
36+ [TLSVersion ] = proplists :get_value (versions , ClientOptions ),
37+ SigAlgs = signature_algs (TLSVersion ),
38+ ssl_test_lib :basic_test (SigAlgs ++ ClientOptions ,
39+ SigAlgs ++ ServerOptions , [{server_type , erlang },
40+ {client_type , erlang },
41+ {version , TLSVersion }
42+ ]),
43+
44+ true
45+ catch _ :_ ->
46+ false
47+ end .
48+
6249prop_tls_unordered_path (PrivDir ) ->
63- ? FORALL ({ClientOptions , ServerOptions }, ? LET (Version , tls_version (), unordered_options (Version , PrivDir )),
64- try
65- [TLSVersion ] = proplists :get_value (versions , ClientOptions ),
66- SigAlgs = signature_algs (TLSVersion ),
67- ssl_test_lib :basic_test (SigAlgs ++ ClientOptions ,
68- SigAlgs ++ ServerOptions , [{server_type , erlang },
69- {client_type , erlang },
70- {version , TLSVersion }
71- ])
72- of
73- _ ->
74- true
75- catch
76- _ :_ ->
77- false
78- end
79- ).
50+ ? FORALL ({ClientOptions , ServerOptions },
51+ ? LET (Version , tls_version (), unordered_options (Version , PrivDir )),
52+ signature_algs_test (ClientOptions , ServerOptions )).
8053
8154prop_tls_extraneous_path (PrivDir ) ->
82- ? FORALL ({ClientOptions , ServerOptions }, ? LET (Version , tls_version (), extraneous_options (Version , PrivDir )),
83- try
84- [TLSVersion ] = proplists :get_value (versions , ClientOptions ),
85- SigAlgs = signature_algs (TLSVersion ),
86- ssl_test_lib :basic_test (SigAlgs ++ ClientOptions ,
87- SigAlgs ++ ServerOptions , [{server_type , erlang },
88- {client_type , erlang },
89- {version , TLSVersion }
90- ])
91- of
92- _ ->
93- true
94- catch
95- _ :_ ->
96- false
97- end
98- ).
55+ ? FORALL ({ClientOptions , ServerOptions },
56+ ? LET (Version , tls_version (), extraneous_options (Version , PrivDir )),
57+ signature_algs_test (ClientOptions , ServerOptions )).
9958
10059prop_tls_extraneous_paths () ->
101- ? FORALL ({ClientOptions , ServerOptions }, ? LET (Version , tls_version (), extra_extraneous_options (Version )),
102- try
103- [TLSVersion ] = proplists :get_value (versions , ClientOptions ),
104- SigAlgs = signature_algs (TLSVersion ),
105- ssl_test_lib :basic_test (SigAlgs ++ ClientOptions ,
106- SigAlgs ++ ServerOptions , [{server_type , erlang },
107- {client_type , erlang },
108- {version , TLSVersion }
109- ])
110- of
111- _ ->
112- true
113- catch
114- _ :_ ->
115- false
116- end
117- ).
60+ ? FORALL ({ClientOptions , ServerOptions },
61+ ? LET (Version , tls_version (), extra_extraneous_options (Version )),
62+ signature_algs_test (ClientOptions , ServerOptions )).
11863
11964prop_tls_extraneous_and_unordered_path () ->
120- ? FORALL ({ClientOptions , ServerOptions }, ? LET (Version , tls_version (), unordered_extraneous_options (Version )),
121- try
122- [TLSVersion ] = proplists :get_value (versions , ClientOptions ),
123- SigAlgs = signature_algs (TLSVersion ),
124- ssl_test_lib :basic_test (SigAlgs ++ ClientOptions ,
125- SigAlgs ++ ServerOptions , [{server_type , erlang },
126- {client_type , erlang },
127- {version , TLSVersion }
128- ])
129- of
130- _ ->
131- true
132- catch
133- _ :_ ->
134- false
135- end
136- ).
65+ ? FORALL ({ClientOptions , ServerOptions },
66+ ? LET (Version , tls_version (), unordered_extraneous_options (Version )),
67+ signature_algs_test (ClientOptions , ServerOptions )).
13768
13869prop_client_cert_auth () ->
139- ? FORALL ({ClientOptions , ServerOptions }, ? LET (Version , tls_version (), client_cert_auth_opts (Version )),
140- try
141- [TLSVersion ] = proplists :get_value (versions , ClientOptions ),
142- SigAlgs = signature_algs (TLSVersion ),
143- ssl_test_lib :basic_test (SigAlgs ++ ClientOptions ,
144- SigAlgs ++ ServerOptions ,
145- [{server_type , erlang },
146- {client_type , erlang },
147- {version , TLSVersion }
148- ])
149- of
150- _ ->
151- true
152- catch
153- _ :_ ->
154- false
155- end
156- ).
70+ ? FORALL ({ClientOptions , ServerOptions },
71+ ? LET (Version , tls_version (), client_cert_auth_opts (Version )),
72+ signature_algs_test (ClientOptions , ServerOptions )).
15773
15874% %--------------------------------------------------------------------
15975% % Chain Generators -----------------------------------------------
@@ -162,14 +78,14 @@ tls_version() ->
16278 Versions = [Version || Version <- ['tlsv1.3' , 'tlsv1.2' , 'tlsv1.1' , 'tlsv1' , 'dtlsv1.2' , 'dtlsv1' ],
16379 ssl_test_lib :sufficient_crypto_support (Version )
16480 ],
165- oneof (Versions ).
81+ elements (Versions ).
16682
16783key_alg (Version ) when Version == 'tlsv1.3' ;
16884 Version == 'tlsv1.2' ;
16985 Version == 'dtlsv1.2' ->
170- oneof ([rsa , ecdsa ]);
86+ elements ([rsa , ecdsa ]);
17187key_alg (_ ) ->
172- oneof ([rsa ]).
88+ elements ([rsa ]).
17389
17490server_options ('tlsv1.3' ) ->
17591 [{verify , verify_peer },
@@ -196,11 +112,11 @@ pem_unordered_options(Version, PrivDir) ->
196112unordered_der_cert_chain_opts (Version , Alg ) ->
197113 #{server_config := ServerConf ,
198114 client_config := ClientConf } = public_key :pkix_test_data (#{server_chain => #{root => root_key (Alg ),
199- intermediates => intermediates (Alg , 4 ),
200- peer => peer_key (Alg )},
201- client_chain => #{root => root_key (Alg ),
202- intermediates => intermediates (Alg , 4 ),
203- peer => peer_key (Alg )}}),
115+ intermediates => intermediates (Alg , 4 ),
116+ peer => peer_key (Alg )},
117+ client_chain => #{root => root_key (Alg ),
118+ intermediates => intermediates (Alg , 4 ),
119+ peer => peer_key (Alg )}}),
204120 {client_options (Version ) ++ [protocol (Version ), {versions , [Version ]} | unordered_der_conf (ClientConf )],
205121 server_options (Version ) ++ [protocol (Version ), {versions , [Version ]} | unordered_der_conf (ServerConf )]}.
206122
0 commit comments