Get sigalg and server cert type in CryptoContext The unit tests a mock crypto context so the e2e tests in following cls will be used to verify behavior once the headers are actually written to requests. PiperOrigin-RevId: 948487976
diff --git a/quiche/quic/core/crypto/crypto_handshake.h b/quiche/quic/core/crypto/crypto_handshake.h index c23de94..18f2085 100644 --- a/quiche/quic/core/crypto/crypto_handshake.h +++ b/quiche/quic/core/crypto/crypto_handshake.h
@@ -151,6 +151,9 @@ // connections not using TLS, or if the TLS handshake is not finished yet. uint16_t cipher_suite = 0; uint16_t key_exchange_group = 0; + // The signature algorithm that the server used to sign messages during the + // TLS handshake. + uint16_t signature_algorithm_used = 0; uint16_t peer_signature_algorithm = 0; bool encrypted_client_hello = false;
diff --git a/quiche/quic/core/tls_server_handshaker.cc b/quiche/quic/core/tls_server_handshaker.cc index 24ece29..b592199 100644 --- a/quiche/quic/core/tls_server_handshaker.cc +++ b/quiche/quic/core/tls_server_handshaker.cc
@@ -636,6 +636,8 @@ } crypto_negotiated_params_->key_exchange_group = SSL_get_curve_id(ssl()); crypto_negotiated_params_->encrypted_client_hello = SSL_ech_accepted(ssl()); + crypto_negotiated_params_->signature_algorithm_used = + SSL_get_signature_algorithm_used(ssl()); } TlsHandshaker::SetWriteSecret(level, cipher, write_secret); }