summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authordroger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-28 10:26:56 +0000
committerdroger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-28 10:26:56 +0000
commit26f85ac59018cf4183ed75ae7378adff2d66b721 (patch)
tree0853944a9fd0dd51748a501359468364d78b5f35 /net
parent89a4ccbb3699a5c5cd5ae37bd2d95c7d62075aa0 (diff)
downloadchromium_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.cc6
-rw-r--r--net/socket/ssl_client_socket_nss.cc24
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