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 key_file; 28 std::string cert_file; 29 std::string expected_server_name; 30 std::string expected_certificate_types; 31 bool require_any_client_certificate = false; 32 std::string advertise_npn; 33 std::string expected_next_proto; 34 bool false_start = false; 35 std::string select_next_proto; 36 bool async = false; 37 bool write_different_record_sizes = false; 38 bool cbc_record_splitting = false; 39 bool partial_write = false; 40 bool no_tls12 = false; 41 bool no_tls11 = false; 42 bool no_tls1 = false; 43 bool no_ssl3 = false; 44 std::string expected_channel_id; 45 std::string send_channel_id; 46 bool shim_writes_first = false; 47 bool tls_d5_bug = 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 bool allow_unsafe_legacy_renegotiation = false; 58 std::string srtp_profiles; 59 bool enable_ocsp_stapling = false; 60 std::string expected_ocsp_response; 61 bool enable_signed_cert_timestamps = false; 62 std::string expected_signed_cert_timestamps; 63 bool fastradio_padding = false; 64 int min_version = 0; 65 int max_version = 0; 66 int mtu = 0; 67 bool implicit_handshake = false; 68 bool use_early_callback = false; 69 bool fail_early_callback = false; 70 bool install_ddos_callback = false; 71 bool fail_ddos_callback = false; 72 bool fail_second_ddos_callback = false; 73 std::string cipher; 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 reject_peer_renegotiations = false; 80 bool no_legacy_server_connect = false; 81 bool tls_unique = false; 82 }; 83 84 bool ParseConfig(int argc, char **argv, TestConfig *out_config); 85 86 87 #endif // HEADER_TEST_CONFIG 88