| Index: net/quic/crypto/quic_crypto_server_config.cc
|
| diff --git a/net/quic/crypto/quic_crypto_server_config.cc b/net/quic/crypto/quic_crypto_server_config.cc
|
| index e5b51dd14ebda3a50bc899aa0f3da201dfc9caa0..4f0e11440d4b664b959138fe0d87473335e16170 100644
|
| --- a/net/quic/crypto/quic_crypto_server_config.cc
|
| +++ b/net/quic/crypto/quic_crypto_server_config.cc
|
| @@ -604,6 +604,10 @@ QuicErrorCode QuicCryptoServerConfig::ProcessClientHello(
|
| bool x509_supported = false;
|
| bool x509_ecdsa_supported = false;
|
| ParseProofDemand(client_hello, &x509_supported, &x509_ecdsa_supported);
|
| + if (!x509_supported && FLAGS_quic_require_x509) {
|
| + *error_details = "Missing or invalid PDMD";
|
| + return QUIC_INVALID_CRYPTO_MESSAGE_PARAMETER;
|
| + }
|
| DCHECK(proof_source_.get());
|
| string chlo_hash;
|
| CryptoUtils::HashHandshakeMessage(client_hello, &chlo_hash);
|
| @@ -1254,7 +1258,8 @@ void QuicCryptoServerConfig::BuildRejection(
|
| bool x509_supported = false;
|
| ParseProofDemand(client_hello, &x509_supported,
|
| ¶ms->x509_ecdsa_supported);
|
| - if (!x509_supported) {
|
| + if (!x509_supported && FLAGS_quic_require_x509) {
|
| + QUIC_BUG << "x509 certificates not supported in proof demand";
|
| return;
|
| }
|
|
|
|
|