OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_H_ | 5 #ifndef NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_H_ |
6 #define NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_H_ | 6 #define NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "net/quic/crypto/crypto_handshake.h" | 10 #include "net/quic/crypto/crypto_handshake.h" |
11 #include "net/quic/quic_crypto_stream.h" | 11 #include "net/quic/quic_crypto_stream.h" |
12 | 12 |
13 namespace net { | 13 namespace net { |
14 | 14 |
15 class QuicSession; | 15 class QuicSession; |
16 struct CryptoHandshakeMessage; | 16 struct CryptoHandshakeMessage; |
17 | 17 |
| 18 namespace test { |
| 19 class CryptoTestUtils; |
| 20 } // namespace test |
| 21 |
18 class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream { | 22 class NET_EXPORT_PRIVATE QuicCryptoClientStream : public QuicCryptoStream { |
19 public: | 23 public: |
20 QuicCryptoClientStream(QuicSession* session, const string& server_hostname); | 24 QuicCryptoClientStream(QuicSession* session, const string& server_hostname); |
21 virtual ~QuicCryptoClientStream(); | 25 virtual ~QuicCryptoClientStream(); |
22 | 26 |
23 // CryptoFramerVisitorInterface implementation | 27 // CryptoFramerVisitorInterface implementation |
24 virtual void OnHandshakeMessage( | 28 virtual void OnHandshakeMessage( |
25 const CryptoHandshakeMessage& message) OVERRIDE; | 29 const CryptoHandshakeMessage& message) OVERRIDE; |
26 | 30 |
27 // Performs a crypto handshake with the server. Returns true if the crypto | 31 // Performs a crypto handshake with the server. Returns true if the crypto |
28 // handshake is started successfully. | 32 // handshake is started successfully. |
29 bool CryptoConnect(); | 33 bool CryptoConnect(); |
30 | 34 |
31 private: | 35 private: |
| 36 friend class test::CryptoTestUtils; |
| 37 |
32 QuicConfig config_; | 38 QuicConfig config_; |
33 QuicCryptoClientConfig crypto_config_; | 39 QuicCryptoClientConfig crypto_config_; |
34 | 40 |
35 QuicNegotiatedParameters negotiated_params_; | 41 QuicNegotiatedParameters negotiated_params_; |
36 QuicCryptoNegotiatedParams crypto_negotiated_params_; | 42 QuicCryptoNegotiatedParams crypto_negotiated_params_; |
37 | 43 |
38 // Client's connection nonce (4-byte timestamp + 28 random bytes) | 44 // Client's connection nonce (4-byte timestamp + 28 random bytes) |
39 std::string nonce_; | 45 std::string nonce_; |
40 // Server's hostname | 46 // Server's hostname |
41 std::string server_hostname_; | 47 std::string server_hostname_; |
42 | 48 |
43 DISALLOW_COPY_AND_ASSIGN(QuicCryptoClientStream); | 49 DISALLOW_COPY_AND_ASSIGN(QuicCryptoClientStream); |
44 }; | 50 }; |
45 | 51 |
46 } // namespace net | 52 } // namespace net |
47 | 53 |
48 #endif // NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_H_ | 54 #endif // NET_QUIC_QUIC_CRYPTO_CLIENT_STREAM_H_ |
OLD | NEW |