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 <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 // clock: used to validate client nonces and ephemeral keys. | 259 // clock: used to validate client nonces and ephemeral keys. |
260 // rand: an entropy source | 260 // rand: an entropy source |
261 // compressed_certs_cache: the cache that caches a set of most recently used | 261 // compressed_certs_cache: the cache that caches a set of most recently used |
262 // certs. Owned by QuicDispatcher. | 262 // certs. Owned by QuicDispatcher. |
263 // params: the state of the handshake. This may be updated with a server | 263 // params: the state of the handshake. This may be updated with a server |
264 // nonce when we send a rejection. After a successful handshake, this will | 264 // nonce when we send a rejection. After a successful handshake, this will |
265 // contain the state of the connection. | 265 // contain the state of the connection. |
266 // crypto_proof: output structure containing the crypto proof used in reply to | 266 // crypto_proof: output structure containing the crypto proof used in reply to |
267 // a proof demand. | 267 // a proof demand. |
268 // out: the resulting handshake message (either REJ or SHLO) | 268 // out: the resulting handshake message (either REJ or SHLO) |
269 // error_details: used to store a string describing any error. | 269 // out_diversification_nonce: If the resulting handshake message is SHLO and |
| 270 // the version is greater than QUIC_VERSION_32 then this contains a |
| 271 // 32-byte value that should be included in the public header of |
| 272 // initially encrypted packets. |
| 273 // error_details: used to store a std::string describing any error. |
270 QuicErrorCode ProcessClientHello( | 274 QuicErrorCode ProcessClientHello( |
271 const ValidateClientHelloResultCallback::Result& validate_chlo_result, | 275 const ValidateClientHelloResultCallback::Result& validate_chlo_result, |
272 QuicConnectionId connection_id, | 276 QuicConnectionId connection_id, |
273 const IPAddress& server_ip, | 277 const IPAddress& server_ip, |
274 const IPEndPoint& client_address, | 278 const IPEndPoint& client_address, |
275 QuicVersion version, | 279 QuicVersion version, |
276 const QuicVersionVector& supported_versions, | 280 const QuicVersionVector& supported_versions, |
277 bool use_stateless_rejects, | 281 bool use_stateless_rejects, |
278 QuicConnectionId server_designated_connection_id, | 282 QuicConnectionId server_designated_connection_id, |
279 const QuicClock* clock, | 283 const QuicClock* clock, |
280 QuicRandom* rand, | 284 QuicRandom* rand, |
281 QuicCompressedCertsCache* compressed_certs_cache, | 285 QuicCompressedCertsCache* compressed_certs_cache, |
282 QuicCryptoNegotiatedParameters* params, | 286 QuicCryptoNegotiatedParameters* params, |
283 QuicCryptoProof* crypto_proof, | 287 QuicCryptoProof* crypto_proof, |
284 CryptoHandshakeMessage* out, | 288 CryptoHandshakeMessage* out, |
| 289 DiversificationNonce* out_diversification_nonce, |
285 std::string* error_details) const; | 290 std::string* error_details) const; |
286 | 291 |
287 // BuildServerConfigUpdateMessage sets |out| to be a SCUP message containing | 292 // BuildServerConfigUpdateMessage sets |out| to be a SCUP message containing |
288 // the current primary config, an up to date source-address token, and cert | 293 // the current primary config, an up to date source-address token, and cert |
289 // chain and proof in the case of secure QUIC. Returns true if successfully | 294 // chain and proof in the case of secure QUIC. Returns true if successfully |
290 // filled |out|. | 295 // filled |out|. |
291 // | 296 // |
292 // |cached_network_params| is optional, and can be nullptr. | 297 // |cached_network_params| is optional, and can be nullptr. |
293 bool BuildServerConfigUpdateMessage( | 298 bool BuildServerConfigUpdateMessage( |
294 QuicVersion version, | 299 QuicVersion version, |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 std::string cert_sct; | 665 std::string cert_sct; |
661 // The server config that is used for this proof (and the rest of the | 666 // The server config that is used for this proof (and the rest of the |
662 // request). | 667 // request). |
663 scoped_refptr<QuicCryptoServerConfig::Config> config; | 668 scoped_refptr<QuicCryptoServerConfig::Config> config; |
664 std::string primary_scid; | 669 std::string primary_scid; |
665 }; | 670 }; |
666 | 671 |
667 } // namespace net | 672 } // namespace net |
668 | 673 |
669 #endif // NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ | 674 #endif // NET_QUIC_CRYPTO_QUIC_CRYPTO_SERVER_CONFIG_H_ |
OLD | NEW |