Lesen Sie ALPN aus RAW ClientHello -Daten
Posted: 10 May 2025, 20:16
Ich habe einen TLS -Server mit C ++ und Boost :: asio geschrieben. Wenn ein Client eine Verbindung zu meinem Server herstellt, sendet er eine Clienthello -Nachricht gemäß TLS. Mit anderen Worten, ich muss das ALPN aus den RAW ClientHello -Daten lesen, bevor ich den Handshake starte. < /P>
Wie kann das getan werden? Hier ist mein Code, in dem ich Rohdaten aus Socket lese: < /p>
Ich bin auch daran interessiert, wie viele Bytes ich garantiert lesen muss, um einen ClientHello mit der Mindestgröße zu erhalten?
Wie kann das getan werden? Hier ist mein Code, in dem ich Rohdaten aus Socket lese: < /p>
Code: Select all
async_read(*socket, boost::asio::null_buffers(), [this, socket]
(const boost::system::error_code& ec, std::size_t bytes_transferred)
{
if (ec)
{
std::cout native_handle(), client_hello_buf, sizeof(client_hello_buf), MSG_PEEK);
// here I need to extract ALPN from client_hello_buf
});