diff options
author | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-28 10:26:56 +0000 |
---|---|---|
committer | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-28 10:26:56 +0000 |
commit | 26f85ac59018cf4183ed75ae7378adff2d66b721 (patch) | |
tree | 0853944a9fd0dd51748a501359468364d78b5f35 /net | |
parent | 89a4ccbb3699a5c5cd5ae37bd2d95c7d62075aa0 (diff) | |
download | chromium_src-26f85ac59018cf4183ed75ae7378adff2d66b721.zip chromium_src-26f85ac59018cf4183ed75ae7378adff2d66b721.tar.gz chromium_src-26f85ac59018cf4183ed75ae7378adff2d66b721.tar.bz2 |
Port ssl_client_socket_nss to iOS.
BUG=145954
Review URL: https://chromiumcodereview.appspot.com/10978024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/socket/client_socket_factory.cc | 6 | ||||
-rw-r--r-- | net/socket/ssl_client_socket_nss.cc | 24 |
2 files changed, 27 insertions, 3 deletions
diff --git a/net/socket/client_socket_factory.cc b/net/socket/client_socket_factory.cc index 531a9ca..881a15c 100644 --- a/net/socket/client_socket_factory.cc +++ b/net/socket/client_socket_factory.cc @@ -15,7 +15,7 @@ #include "net/socket/ssl_client_socket_win.h" #elif defined(USE_OPENSSL) #include "net/socket/ssl_client_socket_openssl.h" -#elif defined(USE_NSS) +#elif defined(USE_NSS) || defined(OS_IOS) #include "net/socket/ssl_client_socket_nss.h" #elif defined(OS_MACOSX) #include "net/socket/ssl_client_socket_mac.h" @@ -112,7 +112,7 @@ class DefaultClientSocketFactory : public ClientSocketFactory, #if defined(USE_OPENSSL) return new SSLClientSocketOpenSSL(transport_socket, host_and_port, ssl_config, context); -#elif defined(USE_NSS) +#elif defined(USE_NSS) || defined(OS_IOS) return new SSLClientSocketNSS(nss_task_runner, transport_socket, host_and_port, ssl_config, context); #elif defined(OS_WIN) @@ -175,7 +175,7 @@ void ClientSocketFactory::UseSystemSSL() { #if defined(OS_WIN) // Reflect the capability of SSLClientSocketWin. SSLConfigService::SetDefaultVersionMax(SSL_PROTOCOL_VERSION_TLS1); -#elif defined(OS_MACOSX) +#elif defined(OS_MACOSX) && !defined(OS_IOS) // Reflect the capability of SSLClientSocketMac. SSLConfigService::SetDefaultVersionMax(SSL_PROTOCOL_VERSION_TLS1); #endif diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc index c2b886e..dd3b13a 100644 --- a/net/socket/ssl_client_socket_nss.cc +++ b/net/socket/ssl_client_socket_nss.cc @@ -1630,6 +1630,30 @@ SECStatus SSLClientSocketNSS::Core::PlatformClientAuthHandler( #endif } +#elif defined(OS_IOS) + +SECStatus SSLClientSocketNSS::Core::ClientAuthHandler( + void* arg, + PRFileDesc* socket, + CERTDistNames* ca_names, + CERTCertificate** result_certificate, + SECKEYPrivateKey** result_private_key) { + Core* core = reinterpret_cast<Core*>(arg); + DCHECK(core->OnNSSTaskRunner()); + + core->PostOrRunCallback( + FROM_HERE, + base::Bind(&AddLogEvent, core->weak_net_log_, + NetLog::TYPE_SSL_CLIENT_CERT_REQUESTED)); + + // TODO(droger): Support client auth on iOS. See http://crbug.com/145954). + LOG(WARNING) << "Client auth is not supported"; + + // Never send a certificate. + core->AddCertProvidedEvent(0); + return SECFailure; +} + #else // NSS_PLATFORM_CLIENT_AUTH // static |