| Index: net/base/ssl_client_socket_nss.h | 
| =================================================================== | 
| --- net/base/ssl_client_socket_nss.h	(revision 18948) | 
| +++ net/base/ssl_client_socket_nss.h	(working copy) | 
| @@ -1,127 +0,0 @@ | 
| -// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#ifndef NET_BASE_SSL_CLIENT_SOCKET_NSS_H_ | 
| -#define NET_BASE_SSL_CLIENT_SOCKET_NSS_H_ | 
| - | 
| -// Work around https://bugzilla.mozilla.org/show_bug.cgi?id=455424 | 
| -// until NSS 3.12.2 comes out and we update to it. | 
| -#define Lock FOO_NSS_Lock | 
| -#include <certt.h> | 
| -#undef Lock | 
| -#include <nspr.h> | 
| -#include <nss.h> | 
| -#include <string> | 
| - | 
| -#include "base/scoped_ptr.h" | 
| -#include "net/base/cert_verifier.h" | 
| -#include "net/base/cert_verify_result.h" | 
| -#include "net/base/completion_callback.h" | 
| -#include "net/base/nss_memio.h" | 
| -#include "net/base/ssl_client_socket.h" | 
| -#include "net/base/ssl_config_service.h" | 
| - | 
| -namespace net { | 
| - | 
| -class X509Certificate; | 
| - | 
| -// An SSL client socket implemented with Mozilla NSS. | 
| -class SSLClientSocketNSS : public SSLClientSocket { | 
| - public: | 
| -  // Takes ownership of the transport_socket, which may already be connected. | 
| -  // The given hostname will be compared with the name(s) in the server's | 
| -  // certificate during the SSL handshake.  ssl_config specifies the SSL | 
| -  // settings. | 
| -  SSLClientSocketNSS(ClientSocket* transport_socket, | 
| -                     const std::string& hostname, | 
| -                     const SSLConfig& ssl_config); | 
| -  ~SSLClientSocketNSS(); | 
| - | 
| -  // SSLClientSocket methods: | 
| -  virtual void GetSSLInfo(SSLInfo* ssl_info); | 
| -  virtual void GetSSLCertRequestInfo(SSLCertRequestInfo* cert_request_info); | 
| - | 
| -  // ClientSocket methods: | 
| -  virtual int Connect(CompletionCallback* callback); | 
| -  virtual void Disconnect(); | 
| -  virtual bool IsConnected() const; | 
| -  virtual bool IsConnectedAndIdle() const; | 
| - | 
| -  // Socket methods: | 
| -  virtual int Read(IOBuffer* buf, int buf_len, CompletionCallback* callback); | 
| -  virtual int Write(IOBuffer* buf, int buf_len, CompletionCallback* callback); | 
| - | 
| - private: | 
| -  void InvalidateSessionIfBadCertificate(); | 
| -  X509Certificate* UpdateServerCert(); | 
| -  void DoCallback(int result); | 
| -  void OnIOComplete(int result); | 
| - | 
| -  int DoLoop(int last_io_result); | 
| -  int DoHandshakeRead(); | 
| -  int DoVerifyCert(int result); | 
| -  int DoVerifyCertComplete(int result); | 
| -  int DoPayloadRead(); | 
| -  int DoPayloadWrite(); | 
| -  int Init(); | 
| -  int BufferSend(void); | 
| -  int BufferRecv(void); | 
| -  void BufferSendComplete(int result); | 
| -  void BufferRecvComplete(int result); | 
| - | 
| -  // NSS calls this when checking certificates. We pass 'this' as the first | 
| -  // argument. | 
| -  static SECStatus OwnAuthCertHandler(void* arg, PRFileDesc* socket, | 
| -                                      PRBool checksig, PRBool is_server); | 
| -  // NSS calls this when handshake is completed.  We pass 'this' as the second | 
| -  // argument. | 
| -  static void HandshakeCallback(PRFileDesc* socket, void* arg); | 
| - | 
| -  CompletionCallbackImpl<SSLClientSocketNSS> buffer_send_callback_; | 
| -  CompletionCallbackImpl<SSLClientSocketNSS> buffer_recv_callback_; | 
| -  bool transport_send_busy_; | 
| -  bool transport_recv_busy_; | 
| -  scoped_refptr<IOBuffer> recv_buffer_; | 
| - | 
| -  CompletionCallbackImpl<SSLClientSocketNSS> io_callback_; | 
| -  scoped_ptr<ClientSocket> transport_; | 
| -  std::string hostname_; | 
| -  SSLConfig ssl_config_; | 
| - | 
| -  CompletionCallback* user_callback_; | 
| - | 
| -  // Used by both Read and Write functions. | 
| -  scoped_refptr<IOBuffer> user_buf_; | 
| -  int user_buf_len_; | 
| - | 
| -  // Set when handshake finishes. | 
| -  scoped_refptr<X509Certificate> server_cert_; | 
| -  CertVerifyResult server_cert_verify_result_; | 
| - | 
| -  CertVerifier verifier_; | 
| - | 
| -  bool completed_handshake_; | 
| - | 
| -  enum State { | 
| -    STATE_NONE, | 
| -    STATE_HANDSHAKE_READ, | 
| -    STATE_VERIFY_CERT, | 
| -    STATE_VERIFY_CERT_COMPLETE, | 
| -    STATE_PAYLOAD_WRITE, | 
| -    STATE_PAYLOAD_READ, | 
| -  }; | 
| -  State next_state_; | 
| - | 
| -  // The NSS SSL state machine | 
| -  PRFileDesc* nss_fd_; | 
| - | 
| -  // Buffers for the network end of the SSL state machine | 
| -  memio_Private* nss_bufs_; | 
| - | 
| -  static bool nss_options_initialized_; | 
| -}; | 
| - | 
| -}  // namespace net | 
| - | 
| -#endif  // NET_BASE_SSL_CLIENT_SOCKET_NSS_H_ | 
|  |