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);
 }