Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: remoting/protocol/jingle_stream_connector.h

Issue 8604001: Move SSL layer initialization into ChannelAuthenticator implementations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Simple->V1 Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/protocol/jingle_session.cc ('k') | remoting/protocol/jingle_stream_connector.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef REMOTING_PROTOCOL_JINGLE_STREAM_CONNECTOR_H_ 5 #ifndef REMOTING_PROTOCOL_JINGLE_STREAM_CONNECTOR_H_
6 #define REMOTING_PROTOCOL_JINGLE_STREAM_CONNECTOR_H_ 6 #define REMOTING_PROTOCOL_JINGLE_STREAM_CONNECTOR_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 23 matching lines...) Expand all
34 // initiator authenticates the channel to the recipient by sending a digest 34 // initiator authenticates the channel to the recipient by sending a digest
35 // based on a secret shared by the two parties, and keying material derived 35 // based on a secret shared by the two parties, and keying material derived
36 // from the SSL session's master secret and nonces. 36 // from the SSL session's master secret and nonces.
37 class JingleStreamConnector : public JingleChannelConnector { 37 class JingleStreamConnector : public JingleChannelConnector {
38 public: 38 public:
39 JingleStreamConnector(JingleSession* session, 39 JingleStreamConnector(JingleSession* session,
40 const std::string& name, 40 const std::string& name,
41 const Session::StreamChannelCallback& callback); 41 const Session::StreamChannelCallback& callback);
42 virtual ~JingleStreamConnector(); 42 virtual ~JingleStreamConnector();
43 43
44 // Starts connection process for the channel. |local_private_key| is 44 // JingleChannelConnector implementation.
45 // owned by the caller, and must exist until this object is 45 virtual void Connect(ChannelAuthenticator* authenticator,
46 // destroyed.
47 virtual void Connect(bool initiator,
48 const std::string& local_cert,
49 const std::string& remote_cert,
50 crypto::RSAPrivateKey* local_private_key,
51 cricket::TransportChannel* raw_channel) OVERRIDE; 46 cricket::TransportChannel* raw_channel) OVERRIDE;
52 47
53 private: 48 private:
54 bool EstablishTCPConnection(net::Socket* socket); 49 bool EstablishTCPConnection(net::Socket* socket);
55 void OnTCPConnect(int result); 50 void OnTCPConnect(int result);
56 51 void OnAuthenticationDone(net::Error error, net::StreamSocket* socket);
57 bool EstablishSSLConnection();
58 void OnSSLConnect(int result);
59
60 void AuthenticateChannel();
61 void OnAuthenticationDone(ChannelAuthenticator::Result result);
62 52
63 void NotifyDone(net::StreamSocket* socket); 53 void NotifyDone(net::StreamSocket* socket);
64 void NotifyError(); 54 void NotifyError();
65 55
66 JingleSession* session_; 56 JingleSession* session_;
67 std::string name_; 57 std::string name_;
68 Session::StreamChannelCallback callback_; 58 Session::StreamChannelCallback callback_;
69 59
70 bool initiator_;
71 std::string local_cert_;
72 std::string remote_cert_;
73 crypto::RSAPrivateKey* local_private_key_;
74
75 cricket::TransportChannel* raw_channel_; 60 cricket::TransportChannel* raw_channel_;
76 scoped_ptr<net::StreamSocket> tcp_socket_; 61 scoped_ptr<net::StreamSocket> tcp_socket_;
77 scoped_ptr<net::SSLSocket> socket_; 62 scoped_ptr<net::SSLSocket> socket_;
78 63
79 // Used to verify the certificate received in SSLClientSocket.
80 scoped_ptr<net::CertVerifier> cert_verifier_;
81
82 scoped_ptr<ChannelAuthenticator> authenticator_; 64 scoped_ptr<ChannelAuthenticator> authenticator_;
83 65
84 // Callback called by the TCP and SSL layers. 66 // Callback called by the TCP and SSL layers.
85 net::OldCompletionCallbackImpl<JingleStreamConnector> tcp_connect_callback_; 67 net::OldCompletionCallbackImpl<JingleStreamConnector> tcp_connect_callback_;
86 net::OldCompletionCallbackImpl<JingleStreamConnector> ssl_connect_callback_;
87 68
88 DISALLOW_COPY_AND_ASSIGN(JingleStreamConnector); 69 DISALLOW_COPY_AND_ASSIGN(JingleStreamConnector);
89 }; 70 };
90 71
91 } // namespace protocol 72 } // namespace protocol
92 } // namespace remoting 73 } // namespace remoting
93 74
94 #endif // REMOTING_PROTOCOL_JINGLE_STREAM_CONNECTOR_H_ 75 #endif // REMOTING_PROTOCOL_JINGLE_STREAM_CONNECTOR_H_
OLDNEW
« no previous file with comments | « remoting/protocol/jingle_session.cc ('k') | remoting/protocol/jingle_stream_connector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698