return BaseTestServer::kLocalhost;
}
+void GetKeyExchangesList(int key_exchange, base::ListValue* values) {
+ if (key_exchange & BaseTestServer::SSLOptions::KEY_EXCHANGE_RSA)
+ values->Append(new base::StringValue("rsa"));
+ if (key_exchange & BaseTestServer::SSLOptions::KEY_EXCHANGE_DHE_RSA)
+ values->Append(new base::StringValue("dhe_rsa"));
+}
+
void GetCiphersList(int cipher, base::ListValue* values) {
if (cipher & BaseTestServer::SSLOptions::BULK_CIPHER_RC4)
values->Append(new base::StringValue("rc4"));
ocsp_status(OCSP_OK),
cert_serial(0),
request_client_certificate(false),
+ key_exchanges(SSLOptions::KEY_EXCHANGE_ANY),
bulk_ciphers(SSLOptions::BULK_CIPHER_ANY),
record_resume(false),
tls_intolerant(TLS_INTOLERANT_NONE),
fallback_scsv_enabled(false),
- staple_ocsp_response(false) {}
+ staple_ocsp_response(false),
+ enable_npn(false) {}
BaseTestServer::SSLOptions::SSLOptions(
BaseTestServer::SSLOptions::ServerCertificate cert)
ocsp_status(OCSP_OK),
cert_serial(0),
request_client_certificate(false),
+ key_exchanges(SSLOptions::KEY_EXCHANGE_ANY),
bulk_ciphers(SSLOptions::BULK_CIPHER_ANY),
record_resume(false),
tls_intolerant(TLS_INTOLERANT_NONE),
fallback_scsv_enabled(false),
- staple_ocsp_response(false) {}
+ staple_ocsp_response(false),
+ enable_npn(false) {}
BaseTestServer::SSLOptions::~SSLOptions() {}
base::Value::CreateIntegerValue(ssl_options_.cert_serial));
}
+ // Check key exchange argument.
+ scoped_ptr<base::ListValue> key_exchange_values(new base::ListValue());
+ GetKeyExchangesList(ssl_options_.key_exchanges, key_exchange_values.get());
+ if (key_exchange_values->GetSize())
+ arguments->Set("ssl-key-exchange", key_exchange_values.release());
// Check bulk cipher argument.
scoped_ptr<base::ListValue> bulk_cipher_values(new base::ListValue());
GetCiphersList(ssl_options_.bulk_ciphers, bulk_cipher_values.get());
}
if (ssl_options_.staple_ocsp_response)
arguments->Set("staple-ocsp-response", base::Value::CreateNullValue());
+ if (ssl_options_.enable_npn)
+ arguments->Set("enable-npn", base::Value::CreateNullValue());
}
return GenerateAdditionalArguments(arguments);