Key Share Negotiation
Client sends one or more key_share entries (public keys for named groups).
Server picks one and responds with its own public key.
Client key_share: [(x25519, pub_c_x25519), (secp256r1, pub_c_p256)]
Server key_share: [(x25519, pub_s_x25519)]
Shared secret = ECDH(priv_s_x25519, pub_c_x25519)
== ECDH(priv_c_x25519, pub_s_x25519)
After this exchange, both sides compute the Handshake Secret via HKDF.