| Index: net/quic/core/crypto/quic_crypto_server_config.cc
|
| diff --git a/net/quic/core/crypto/quic_crypto_server_config.cc b/net/quic/core/crypto/quic_crypto_server_config.cc
|
| index 106a6eed9d209c10f301b139f0966490517e6256..543a7debd6758e39c7a2f25de4225bdc6755c818 100644
|
| --- a/net/quic/core/crypto/quic_crypto_server_config.cc
|
| +++ b/net/quic/core/crypto/quic_crypto_server_config.cc
|
| @@ -557,14 +557,16 @@ class ProcessClientHelloHelper {
|
| }
|
|
|
| void Fail(QuicErrorCode error, const string& error_details) {
|
| - (*done_cb_)->Run(error, error_details, nullptr, nullptr);
|
| + (*done_cb_)->Run(error, error_details, nullptr, nullptr, nullptr);
|
| DetachCallback();
|
| }
|
|
|
| void Succeed(std::unique_ptr<CryptoHandshakeMessage> message,
|
| - std::unique_ptr<DiversificationNonce> diversification_nonce) {
|
| + std::unique_ptr<DiversificationNonce> diversification_nonce,
|
| + std::unique_ptr<ProofSource::Details> proof_source_details) {
|
| (*done_cb_)->Run(QUIC_NO_ERROR, string(), std::move(message),
|
| - std::move(diversification_nonce));
|
| + std::move(diversification_nonce),
|
| + std::move(proof_source_details));
|
| DetachCallback();
|
| }
|
|
|
| @@ -632,9 +634,9 @@ class QuicCryptoServerConfig::ProcessClientHelloCallback
|
| crypto_proof_->cert_sct = leaf_cert_sct;
|
| }
|
| config_->ProcessClientHelloAfterGetProof(
|
| - !ok, *validate_chlo_result_, reject_only_, connection_id_,
|
| - client_address_, version_, supported_versions_, use_stateless_rejects_,
|
| - server_designated_connection_id_, clock_, rand_,
|
| + !ok, std::move(details), *validate_chlo_result_, reject_only_,
|
| + connection_id_, client_address_, version_, supported_versions_,
|
| + use_stateless_rejects_, server_designated_connection_id_, clock_, rand_,
|
| compressed_certs_cache_, params_, crypto_proof_,
|
| total_framing_overhead_, chlo_packet_size_, requested_config_,
|
| primary_config_, std::move(done_cb_));
|
| @@ -777,15 +779,17 @@ void QuicCryptoServerConfig::ProcessClientHello(
|
|
|
| helper.DetachCallback();
|
| ProcessClientHelloAfterGetProof(
|
| - /* found_error = */ false, *validate_chlo_result, reject_only,
|
| - connection_id, client_address, version, supported_versions,
|
| - use_stateless_rejects, server_designated_connection_id, clock, rand,
|
| - compressed_certs_cache, params, crypto_proof, total_framing_overhead,
|
| - chlo_packet_size, requested_config, primary_config, std::move(done_cb));
|
| + /* found_error = */ false, /* proof_source_details = */ nullptr,
|
| + *validate_chlo_result, reject_only, connection_id, client_address,
|
| + version, supported_versions, use_stateless_rejects,
|
| + server_designated_connection_id, clock, rand, compressed_certs_cache,
|
| + params, crypto_proof, total_framing_overhead, chlo_packet_size,
|
| + requested_config, primary_config, std::move(done_cb));
|
| }
|
|
|
| void QuicCryptoServerConfig::ProcessClientHelloAfterGetProof(
|
| bool found_error,
|
| + std::unique_ptr<ProofSource::Details> proof_source_details,
|
| const ValidateClientHelloResultCallback::Result& validate_chlo_result,
|
| bool reject_only,
|
| QuicConnectionId connection_id,
|
| @@ -834,12 +838,14 @@ void QuicCryptoServerConfig::ProcessClientHelloAfterGetProof(
|
| rejection_observer_ != nullptr) {
|
| rejection_observer_->OnRejectionBuilt(info.reject_reasons, out.get());
|
| }
|
| - helper.Succeed(std::move(out), std::move(out_diversification_nonce));
|
| + helper.Succeed(std::move(out), std::move(out_diversification_nonce),
|
| + std::move(proof_source_details));
|
| return;
|
| }
|
|
|
| if (reject_only) {
|
| - helper.Succeed(std::move(out), std::move(out_diversification_nonce));
|
| + helper.Succeed(std::move(out), std::move(out_diversification_nonce),
|
| + std::move(proof_source_details));
|
| return;
|
| }
|
|
|
| @@ -1067,7 +1073,8 @@ void QuicCryptoServerConfig::ProcessClientHelloAfterGetProof(
|
| out->SetStringPiece(kCADR, address_coder.Encode());
|
| out->SetStringPiece(kPUBS, forward_secure_public_value);
|
|
|
| - helper.Succeed(std::move(out), std::move(out_diversification_nonce));
|
| + helper.Succeed(std::move(out), std::move(out_diversification_nonce),
|
| + std::move(proof_source_details));
|
| }
|
|
|
| scoped_refptr<QuicCryptoServerConfig::Config>
|
|
|