OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ | 5 #ifndef NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ |
6 #define NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ | 6 #define NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 | 172 |
173 // ProcessClientHello processes |client_hello| and decides whether to accept | 173 // ProcessClientHello processes |client_hello| and decides whether to accept |
174 // or reject the connection. If the connection is to be accepted, |out| is | 174 // or reject the connection. If the connection is to be accepted, |out| is |
175 // set to the contents of the ServerHello, |out_params| is completed and | 175 // set to the contents of the ServerHello, |out_params| is completed and |
176 // QUIC_NO_ERROR is returned. Otherwise |out| is set to be a REJ message and | 176 // QUIC_NO_ERROR is returned. Otherwise |out| is set to be a REJ message and |
177 // an error code is returned. | 177 // an error code is returned. |
178 // | 178 // |
179 // validate_chlo_result: Output from the asynchronous call to | 179 // validate_chlo_result: Output from the asynchronous call to |
180 // ValidateClientHello. Contains the client hello message and | 180 // ValidateClientHello. Contains the client hello message and |
181 // information about it. | 181 // information about it. |
182 // guid: the GUID for the connection, which is used in key derivation. | 182 // connection_id: the ConnectionId for the connection, which is used in key |
| 183 // derivation. |
183 // client_address: the IP address and port of the client. The IP address is | 184 // client_address: the IP address and port of the client. The IP address is |
184 // used to generate and validate source-address tokens. | 185 // used to generate and validate source-address tokens. |
185 // version: version of the QUIC protocol in use for this connection | 186 // version: version of the QUIC protocol in use for this connection |
186 // supported_versions: versions of the QUIC protocol that this server | 187 // supported_versions: versions of the QUIC protocol that this server |
187 // supports. | 188 // supports. |
188 // clock: used to validate client nonces and ephemeral keys. | 189 // clock: used to validate client nonces and ephemeral keys. |
189 // rand: an entropy source | 190 // rand: an entropy source |
190 // params: the state of the handshake. This may be updated with a server | 191 // params: the state of the handshake. This may be updated with a server |
191 // nonce when we send a rejection. After a successful handshake, this will | 192 // nonce when we send a rejection. After a successful handshake, this will |
192 // contain the state of the connection. | 193 // contain the state of the connection. |
193 // out: the resulting handshake message (either REJ or SHLO) | 194 // out: the resulting handshake message (either REJ or SHLO) |
194 // error_details: used to store a string describing any error. | 195 // error_details: used to store a string describing any error. |
195 QuicErrorCode ProcessClientHello( | 196 QuicErrorCode ProcessClientHello( |
196 const ValidateClientHelloResultCallback::Result& validate_chlo_result, | 197 const ValidateClientHelloResultCallback::Result& validate_chlo_result, |
197 QuicGuid guid, | 198 QuicConnectionId connection_id, |
198 IPEndPoint client_address, | 199 IPEndPoint client_address, |
199 QuicVersion version, | 200 QuicVersion version, |
200 const QuicVersionVector& supported_versions, | 201 const QuicVersionVector& supported_versions, |
201 const QuicClock* clock, | 202 const QuicClock* clock, |
202 QuicRandom* rand, | 203 QuicRandom* rand, |
203 QuicCryptoNegotiatedParameters* params, | 204 QuicCryptoNegotiatedParameters* params, |
204 CryptoHandshakeMessage* out, | 205 CryptoHandshakeMessage* out, |
205 std::string* error_details) const; | 206 std::string* error_details) const; |
206 | 207 |
207 // SetProofSource installs |proof_source| as the ProofSource for handshakes. | 208 // SetProofSource installs |proof_source| as the ProofSource for handshakes. |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
440 uint32 strike_register_window_secs_; | 441 uint32 strike_register_window_secs_; |
441 uint32 source_address_token_future_secs_; | 442 uint32 source_address_token_future_secs_; |
442 uint32 source_address_token_lifetime_secs_; | 443 uint32 source_address_token_lifetime_secs_; |
443 uint32 server_nonce_strike_register_max_entries_; | 444 uint32 server_nonce_strike_register_max_entries_; |
444 uint32 server_nonce_strike_register_window_secs_; | 445 uint32 server_nonce_strike_register_window_secs_; |
445 }; | 446 }; |
446 | 447 |
447 } // namespace net | 448 } // namespace net |
448 | 449 |
449 #endif // NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ | 450 #endif // NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ |
OLD | NEW |