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

Unified Diff: net/quic/core/crypto/quic_crypto_client_config.h

Issue 2453113002: Fix object-lifetime issues in async GetProof callpaths (Closed)
Patch Set: Updated patchset dependency Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/core/crypto/crypto_server_test.cc ('k') | net/quic/core/crypto/quic_crypto_client_config.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/crypto/quic_crypto_client_config.h
diff --git a/net/quic/core/crypto/quic_crypto_client_config.h b/net/quic/core/crypto/quic_crypto_client_config.h
index 69bae14817094753bf1f566424a74ccde28bb8cc..b78b08b4c1e383e98a1840b2d1e33f0d6babfe10 100644
--- a/net/quic/core/crypto/quic_crypto_client_config.h
+++ b/net/quic/core/crypto/quic_crypto_client_config.h
@@ -226,13 +226,14 @@ class NET_EXPORT_PRIVATE QuicCryptoClientConfig : public QuicCryptoConfig {
// server to detect downgrade attacks. If |demand_x509_proof| is true,
// then |out| will include an X509 proof demand, and the associated
// certificate related fields.
- void FillInchoateClientHello(const QuicServerId& server_id,
- const QuicVersion preferred_version,
- const CachedState* cached,
- QuicRandom* rand,
- bool demand_x509_proof,
- QuicCryptoNegotiatedParameters* out_params,
- CryptoHandshakeMessage* out) const;
+ void FillInchoateClientHello(
+ const QuicServerId& server_id,
+ const QuicVersion preferred_version,
+ const CachedState* cached,
+ QuicRandom* rand,
+ bool demand_x509_proof,
+ scoped_refptr<QuicCryptoNegotiatedParameters> out_params,
+ CryptoHandshakeMessage* out) const;
// FillClientHello sets |out| to be a CHLO message based on the configuration
// of this object. This object must have cached enough information about
@@ -248,17 +249,18 @@ class NET_EXPORT_PRIVATE QuicCryptoClientConfig : public QuicCryptoConfig {
// If |channel_id_key| is not null, it is used to sign a secret value derived
// from the client and server's keys, and the Channel ID public key and the
// signature are placed in the CETV value of the CHLO.
- QuicErrorCode FillClientHello(const QuicServerId& server_id,
- QuicConnectionId connection_id,
- const QuicVersion actual_version,
- const QuicVersion preferred_version,
- const CachedState* cached,
- QuicWallTime now,
- QuicRandom* rand,
- const ChannelIDKey* channel_id_key,
- QuicCryptoNegotiatedParameters* out_params,
- CryptoHandshakeMessage* out,
- std::string* error_details) const;
+ QuicErrorCode FillClientHello(
+ const QuicServerId& server_id,
+ QuicConnectionId connection_id,
+ const QuicVersion actual_version,
+ const QuicVersion preferred_version,
+ const CachedState* cached,
+ QuicWallTime now,
+ QuicRandom* rand,
+ const ChannelIDKey* channel_id_key,
+ scoped_refptr<QuicCryptoNegotiatedParameters> out_params,
+ CryptoHandshakeMessage* out,
+ std::string* error_details) const;
// ProcessRejection processes a REJ message from a server and updates the
// cached information about that server. After this, |IsComplete| may return
@@ -266,13 +268,14 @@ class NET_EXPORT_PRIVATE QuicCryptoClientConfig : public QuicCryptoConfig {
// about a future handshake (i.e. an nonce value from the server), then it
// will be saved in |out_params|. |now| is used to judge whether the server
// config in the rejection message has expired.
- QuicErrorCode ProcessRejection(const CryptoHandshakeMessage& rej,
- QuicWallTime now,
- QuicVersion version,
- base::StringPiece chlo_hash,
- CachedState* cached,
- QuicCryptoNegotiatedParameters* out_params,
- std::string* error_details);
+ QuicErrorCode ProcessRejection(
+ const CryptoHandshakeMessage& rej,
+ QuicWallTime now,
+ QuicVersion version,
+ base::StringPiece chlo_hash,
+ CachedState* cached,
+ scoped_refptr<QuicCryptoNegotiatedParameters> out_params,
+ std::string* error_details);
// ProcessServerHello processes the message in |server_hello|, updates the
// cached information about that server, writes the negotiated parameters to
@@ -283,13 +286,14 @@ class NET_EXPORT_PRIVATE QuicCryptoClientConfig : public QuicCryptoConfig {
// present in a version negotiation packet previously recevied from the
// server. The contents of this list will be compared against the list of
// versions provided in the VER tag of the server hello.
- QuicErrorCode ProcessServerHello(const CryptoHandshakeMessage& server_hello,
- QuicConnectionId connection_id,
- QuicVersion version,
- const QuicVersionVector& negotiated_versions,
- CachedState* cached,
- QuicCryptoNegotiatedParameters* out_params,
- std::string* error_details);
+ QuicErrorCode ProcessServerHello(
+ const CryptoHandshakeMessage& server_hello,
+ QuicConnectionId connection_id,
+ QuicVersion version,
+ const QuicVersionVector& negotiated_versions,
+ CachedState* cached,
+ scoped_refptr<QuicCryptoNegotiatedParameters> out_params,
+ std::string* error_details);
// Processes the message in |server_update|, updating the cached source
// address token, and server config.
@@ -302,7 +306,7 @@ class NET_EXPORT_PRIVATE QuicCryptoClientConfig : public QuicCryptoConfig {
const QuicVersion version,
base::StringPiece chlo_hash,
CachedState* cached,
- QuicCryptoNegotiatedParameters* out_params,
+ scoped_refptr<QuicCryptoNegotiatedParameters> out_params,
std::string* error_details);
ProofVerifier* proof_verifier() const;
« no previous file with comments | « net/quic/core/crypto/crypto_server_test.cc ('k') | net/quic/core/crypto/quic_crypto_client_config.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698