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_SERVER_STREAM_H_ | 5 #ifndef NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ |
6 #define NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ | 6 #define NET_QUIC_QUIC_CRYPTO_SERVER_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" |
(...skipping 20 matching lines...) Expand all Loading... |
31 public: | 31 public: |
32 explicit ServerHelloNotifier(QuicCryptoServerStream* stream) | 32 explicit ServerHelloNotifier(QuicCryptoServerStream* stream) |
33 : server_stream_(stream) {} | 33 : server_stream_(stream) {} |
34 | 34 |
35 // QuicAckNotifier::DelegateInterface implementation | 35 // QuicAckNotifier::DelegateInterface implementation |
36 virtual void OnAckNotification( | 36 virtual void OnAckNotification( |
37 int num_original_packets, | 37 int num_original_packets, |
38 int num_original_bytes, | 38 int num_original_bytes, |
39 int num_retransmitted_packets, | 39 int num_retransmitted_packets, |
40 int num_retransmitted_bytes, | 40 int num_retransmitted_bytes, |
41 QuicTime::Delta delta_largest_observed) OVERRIDE; | 41 QuicTime::Delta delta_largest_observed) override; |
42 | 42 |
43 private: | 43 private: |
44 virtual ~ServerHelloNotifier() {} | 44 virtual ~ServerHelloNotifier() {} |
45 | 45 |
46 QuicCryptoServerStream* server_stream_; | 46 QuicCryptoServerStream* server_stream_; |
47 | 47 |
48 DISALLOW_COPY_AND_ASSIGN(ServerHelloNotifier); | 48 DISALLOW_COPY_AND_ASSIGN(ServerHelloNotifier); |
49 }; | 49 }; |
50 | 50 |
51 class NET_EXPORT_PRIVATE QuicCryptoServerStream : public QuicCryptoStream { | 51 class NET_EXPORT_PRIVATE QuicCryptoServerStream : public QuicCryptoStream { |
52 public: | 52 public: |
53 QuicCryptoServerStream(const QuicCryptoServerConfig& crypto_config, | 53 QuicCryptoServerStream(const QuicCryptoServerConfig& crypto_config, |
54 QuicSession* session); | 54 QuicSession* session); |
55 virtual ~QuicCryptoServerStream(); | 55 virtual ~QuicCryptoServerStream(); |
56 | 56 |
57 // Cancel any outstanding callbacks, such as asynchronous validation of client | 57 // Cancel any outstanding callbacks, such as asynchronous validation of client |
58 // hello. | 58 // hello. |
59 void CancelOutstandingCallbacks(); | 59 void CancelOutstandingCallbacks(); |
60 | 60 |
61 // CryptoFramerVisitorInterface implementation | 61 // CryptoFramerVisitorInterface implementation |
62 virtual void OnHandshakeMessage( | 62 virtual void OnHandshakeMessage( |
63 const CryptoHandshakeMessage& message) OVERRIDE; | 63 const CryptoHandshakeMessage& message) override; |
64 | 64 |
65 // GetBase64SHA256ClientChannelID sets |*output| to the base64 encoded, | 65 // GetBase64SHA256ClientChannelID sets |*output| to the base64 encoded, |
66 // SHA-256 hash of the client's ChannelID key and returns true, if the client | 66 // SHA-256 hash of the client's ChannelID key and returns true, if the client |
67 // presented a ChannelID. Otherwise it returns false. | 67 // presented a ChannelID. Otherwise it returns false. |
68 bool GetBase64SHA256ClientChannelID(std::string* output) const; | 68 bool GetBase64SHA256ClientChannelID(std::string* output) const; |
69 | 69 |
70 uint8 num_handshake_messages() const { return num_handshake_messages_; } | 70 uint8 num_handshake_messages() const { return num_handshake_messages_; } |
71 | 71 |
72 int num_server_config_update_messages_sent() const { | 72 int num_server_config_update_messages_sent() const { |
73 return num_server_config_update_messages_sent_; | 73 return num_server_config_update_messages_sent_; |
(...skipping 22 matching lines...) Expand all Loading... |
96 friend class test::CryptoTestUtils; | 96 friend class test::CryptoTestUtils; |
97 | 97 |
98 class ValidateCallback : public ValidateClientHelloResultCallback { | 98 class ValidateCallback : public ValidateClientHelloResultCallback { |
99 public: | 99 public: |
100 explicit ValidateCallback(QuicCryptoServerStream* parent); | 100 explicit ValidateCallback(QuicCryptoServerStream* parent); |
101 // To allow the parent to detach itself from the callback before deletion. | 101 // To allow the parent to detach itself from the callback before deletion. |
102 void Cancel(); | 102 void Cancel(); |
103 | 103 |
104 // From ValidateClientHelloResultCallback | 104 // From ValidateClientHelloResultCallback |
105 virtual void RunImpl(const CryptoHandshakeMessage& client_hello, | 105 virtual void RunImpl(const CryptoHandshakeMessage& client_hello, |
106 const Result& result) OVERRIDE; | 106 const Result& result) override; |
107 | 107 |
108 private: | 108 private: |
109 QuicCryptoServerStream* parent_; | 109 QuicCryptoServerStream* parent_; |
110 | 110 |
111 DISALLOW_COPY_AND_ASSIGN(ValidateCallback); | 111 DISALLOW_COPY_AND_ASSIGN(ValidateCallback); |
112 }; | 112 }; |
113 | 113 |
114 // Invoked by ValidateCallback::RunImpl once initial validation of | 114 // Invoked by ValidateCallback::RunImpl once initial validation of |
115 // the client hello is complete. Finishes processing of the client | 115 // the client hello is complete. Finishes processing of the client |
116 // hello message and handles handshake success/failure. | 116 // hello message and handles handshake success/failure. |
(...skipping 15 matching lines...) Expand all Loading... |
132 | 132 |
133 // Number of server config update (SCUP) messages sent by this stream. | 133 // Number of server config update (SCUP) messages sent by this stream. |
134 int num_server_config_update_messages_sent_; | 134 int num_server_config_update_messages_sent_; |
135 | 135 |
136 DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream); | 136 DISALLOW_COPY_AND_ASSIGN(QuicCryptoServerStream); |
137 }; | 137 }; |
138 | 138 |
139 } // namespace net | 139 } // namespace net |
140 | 140 |
141 #endif // NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ | 141 #endif // NET_QUIC_QUIC_CRYPTO_SERVER_STREAM_H_ |
OLD | NEW |