| 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 2c843a6161567a2bae47f6bad855c2a3a7dc40e8..4133899d4020538b380f2c7970d0edc8dbc1ccae 100644
|
| --- a/net/quic/core/crypto/quic_crypto_server_config.cc
|
| +++ b/net/quic/core/crypto/quic_crypto_server_config.cc
|
| @@ -619,7 +619,7 @@ QuicErrorCode QuicCryptoServerConfig::ProcessClientHello(
|
|
|
| if (!ClientDemandsX509Proof(client_hello) && FLAGS_quic_require_x509) {
|
| *error_details = "Missing or invalid PDMD";
|
| - return QUIC_INVALID_CRYPTO_MESSAGE_PARAMETER;
|
| + return QUIC_UNSUPPORTED_PROOF_DEMAND;
|
| }
|
| DCHECK(proof_source_.get());
|
| string chlo_hash;
|
| @@ -1516,9 +1516,9 @@ void QuicCryptoServerConfig::BuildRejection(
|
| bool should_return_sct =
|
| params->sct_supported_by_client && enable_serving_sct_;
|
| const size_t sct_size = should_return_sct ? crypto_proof.cert_sct.size() : 0;
|
| - if (info.valid_source_address_token ||
|
| - crypto_proof.signature.size() + compressed.size() + sct_size <
|
| - max_unverified_size) {
|
| + const size_t total_size =
|
| + crypto_proof.signature.size() + compressed.size() + sct_size;
|
| + if (info.valid_source_address_token || total_size < max_unverified_size) {
|
| out->SetStringPiece(kCertificateTag, compressed);
|
| out->SetStringPiece(kPROF, crypto_proof.signature);
|
| if (should_return_sct) {
|
| @@ -1528,6 +1528,14 @@ void QuicCryptoServerConfig::BuildRejection(
|
| out->SetStringPiece(kCertificateSCTTag, crypto_proof.cert_sct);
|
| }
|
| }
|
| + } else {
|
| + if (FLAGS_quic_use_chlo_packet_size) {
|
| + DLOG(WARNING) << "Sending inchoate REJ for hostname: " << info.sni
|
| + << " signature: " << crypto_proof.signature.size()
|
| + << " cert: " << compressed.size() << " sct:" << sct_size
|
| + << " total: " << total_size
|
| + << " max: " << max_unverified_size;
|
| + }
|
| }
|
| }
|
|
|
|
|