• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /* Copyright (c) 2014, Google Inc.
2   *
3   * Permission to use, copy, modify, and/or distribute this software for any
4   * purpose with or without fee is hereby granted, provided that the above
5   * copyright notice and this permission notice appear in all copies.
6   *
7   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10   * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12   * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13   * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14  
15  #ifndef HEADER_TEST_CONFIG
16  #define HEADER_TEST_CONFIG
17  
18  #include <string>
19  
20  
21  struct TestConfig {
22    int port = 0;
23    bool is_server = false;
24    bool is_dtls = false;
25    bool resume = false;
26    bool fallback_scsv = false;
27    std::string digest_prefs;
28    std::string key_file;
29    std::string cert_file;
30    std::string expected_server_name;
31    std::string expected_certificate_types;
32    bool require_any_client_certificate = false;
33    std::string advertise_npn;
34    std::string expected_next_proto;
35    bool false_start = false;
36    std::string select_next_proto;
37    bool async = false;
38    bool write_different_record_sizes = false;
39    bool cbc_record_splitting = false;
40    bool partial_write = false;
41    bool no_tls12 = false;
42    bool no_tls11 = false;
43    bool no_tls1 = false;
44    bool no_ssl3 = false;
45    std::string expected_channel_id;
46    std::string send_channel_id;
47    bool shim_writes_first = false;
48    std::string host_name;
49    std::string advertise_alpn;
50    std::string expected_alpn;
51    std::string expected_advertised_alpn;
52    std::string select_alpn;
53    bool expect_session_miss = false;
54    bool expect_extended_master_secret = false;
55    std::string psk;
56    std::string psk_identity;
57    std::string srtp_profiles;
58    bool enable_ocsp_stapling = false;
59    std::string expected_ocsp_response;
60    bool enable_signed_cert_timestamps = false;
61    std::string expected_signed_cert_timestamps;
62    int min_version = 0;
63    int max_version = 0;
64    int mtu = 0;
65    bool implicit_handshake = false;
66    bool use_early_callback = false;
67    bool fail_early_callback = false;
68    bool install_ddos_callback = false;
69    bool fail_ddos_callback = false;
70    bool fail_second_ddos_callback = false;
71    std::string cipher;
72    std::string cipher_tls10;
73    std::string cipher_tls11;
74    bool handshake_never_done = false;
75    int export_keying_material = 0;
76    std::string export_label;
77    std::string export_context;
78    bool use_export_context = false;
79    bool tls_unique = false;
80    bool expect_ticket_renewal = false;
81    bool expect_no_session = false;
82    bool use_ticket_callback = false;
83    bool renew_ticket = false;
84    bool enable_client_custom_extension = false;
85    bool enable_server_custom_extension = false;
86    bool custom_extension_skip = false;
87    bool custom_extension_fail_add = false;
88    std::string ocsp_response;
89    bool check_close_notify = false;
90    bool shim_shuts_down = false;
91    bool verify_fail = false;
92    bool verify_peer = false;
93    bool expect_verify_result = false;
94    std::string signed_cert_timestamps;
95    int expect_total_renegotiations = 0;
96    bool renegotiate_once = false;
97    bool renegotiate_freely = false;
98    bool renegotiate_ignore = false;
99    bool disable_npn = false;
100    int expect_server_key_exchange_hash = 0;
101    bool p384_only = false;
102    bool enable_all_curves = false;
103    bool use_sparse_dh_prime = false;
104    int expect_key_exchange_info = 0;
105  };
106  
107  bool ParseConfig(int argc, char **argv, TestConfig *out_config);
108  
109  
110  #endif  // HEADER_TEST_CONFIG
111