diff options
author | Theo Buehler <tb@cvs.openbsd.org> | 2024-04-16 17:46:31 +0000 |
---|---|---|
committer | Theo Buehler <tb@cvs.openbsd.org> | 2024-04-16 17:46:31 +0000 |
commit | 4cec6fb49f77ebb0be0efd993095bc2ab44c3fa8 (patch) | |
tree | fbec3a4a571a137942aca9220b6b56cec3134bde /bin/pax | |
parent | de09416351fa2fda06056876207d876697434f92 (diff) |
Fix key share negotiation in HRR case
In the ClientHello retrying the handshake after a HelloRetryRequest, the
client must send a single key share matching the group selected by the
server in the HRR. This is not necessarily the mutually preferred group.
Incorrect logic added in ssl_tlsect.c r1.134 would potentially reject
such a key share because of that.
Instead, add logic to ensure on the server side that there is a single
share matching the group we selected in the HRR.
Fixes a regress test in p5-IO-Socket-SSL where server is configured
with P-521:P-384 and the client with P-256:P-384:P-521. Since the
client sends an initial P-256 key share, a HRR is triggered which
the faulty logic rejected because it was not the mutually preferred
P-384 but rather matching the server-selected P-521.
This will need some deduplication in subsequent commits. We may also
want to consider honoring the mutual preference and request a key
accordingly in the HRR.
reported by bluhm, fix suggested by jsing
ok beck jsing
Diffstat (limited to 'bin/pax')
0 files changed, 0 insertions, 0 deletions