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

Side by Side Diff: net/quic/crypto/quic_crypto_server_config.h

Issue 1904213002: QUIC: support diversified keys with version 33. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@hkdf
Patch Set: Rebase Created 4 years, 8 months 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
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « net/quic/crypto/quic_crypto_client_config_test.cc ('k') | net/quic/crypto/quic_crypto_server_config.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698