| Index: net/test/embedded_test_server/embedded_test_server.cc
|
| diff --git a/net/test/embedded_test_server/embedded_test_server.cc b/net/test/embedded_test_server/embedded_test_server.cc
|
| index 8f10e1ca301bf55318704d7bb147bc80db2690d6..eb09b96786793f83dd7b1da3b18fc03f0276e028 100644
|
| --- a/net/test/embedded_test_server/embedded_test_server.cc
|
| +++ b/net/test/embedded_test_server/embedded_test_server.cc
|
| @@ -111,9 +111,32 @@ bool EmbeddedTestServer::InitializeAndListen() {
|
| port_ = local_endpoint_.port();
|
|
|
| listen_socket_->DetachFromThread();
|
| +
|
| + if (is_using_ssl_)
|
| + InitializeSSLServerContext();
|
| return true;
|
| }
|
|
|
| +void EmbeddedTestServer::InitializeSSLServerContext() {
|
| + base::FilePath certs_dir(GetTestCertsDirectory());
|
| + std::string cert_name = GetCertificateName();
|
| +
|
| + base::FilePath key_path = certs_dir.AppendASCII(cert_name);
|
| + std::string key_string;
|
| + CHECK(base::ReadFileToString(key_path, &key_string));
|
| + std::vector<std::string> headers;
|
| + headers.push_back("PRIVATE KEY");
|
| + PEMTokenizer pem_tokenizer(key_string, headers);
|
| + pem_tokenizer.GetNext();
|
| + std::vector<uint8_t> key_vector;
|
| + key_vector.assign(pem_tokenizer.data().begin(), pem_tokenizer.data().end());
|
| +
|
| + scoped_ptr<crypto::RSAPrivateKey> server_key(
|
| + crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_vector));
|
| + context_ =
|
| + CreateSSLServerContext(GetCertificate().get(), *server_key, ssl_config_);
|
| +}
|
| +
|
| void EmbeddedTestServer::StartAcceptingConnections() {
|
| DCHECK(!io_thread_.get());
|
| base::Thread::Options thread_options;
|
| @@ -276,24 +299,7 @@ scoped_ptr<StreamSocket> EmbeddedTestServer::DoSSLUpgrade(
|
| scoped_ptr<StreamSocket> connection) {
|
| DCHECK(io_thread_->task_runner()->BelongsToCurrentThread());
|
|
|
| - base::FilePath certs_dir(GetTestCertsDirectory());
|
| - std::string cert_name = GetCertificateName();
|
| -
|
| - base::FilePath key_path = certs_dir.AppendASCII(cert_name);
|
| - std::string key_string;
|
| - CHECK(base::ReadFileToString(key_path, &key_string));
|
| - std::vector<std::string> headers;
|
| - headers.push_back("PRIVATE KEY");
|
| - PEMTokenizer pem_tokenizer(key_string, headers);
|
| - pem_tokenizer.GetNext();
|
| - std::vector<uint8_t> key_vector;
|
| - key_vector.assign(pem_tokenizer.data().begin(), pem_tokenizer.data().end());
|
| -
|
| - scoped_ptr<crypto::RSAPrivateKey> server_key(
|
| - crypto::RSAPrivateKey::CreateFromPrivateKeyInfo(key_vector));
|
| -
|
| - return CreateSSLServerSocket(std::move(connection), GetCertificate().get(),
|
| - *server_key, ssl_config_);
|
| + return context_->CreateSSLServerSocket(std::move(connection));
|
| }
|
|
|
| void EmbeddedTestServer::DoAcceptLoop() {
|
|
|