Commit Graph
5 Commits
Author SHA1 Message Date
riccardom b04c8efccc [client] pqkem: fix the capability-signal wording in a test comment
Non-capability is signalled by an empty KEM payload over signalling, not by a
missing PQ port. Correct the test's comment.

Found in cubic review on #7098 (client/internal/pqkem/capability_test.go:11).
2026-10-09 09:51:05 +02:00
riccardom 0747fa0398 [client] pqkem: signal a responder failure distinctly from "no KEM"
Capability is signalled in-band by an empty answer: a peer that does not run the
KEM answers with no payload. But a responder that runs the KEM and simply fails
to build the answer (crypto error, failed PSK program, a future protocol version
it cannot parse) also produced an empty payload, so the initiator read it as
"peer has no KEM" and marked it non-capable — permanently, since only peer
removal clears the flag; in strict mode the peer stayed blocked.

Add a payload-less MsgError marker. On a signalling-path failure the responder
returns the marker instead of an empty answer, and the initiator treats it as
"capable but failed this round": it leaves the exchange to time out and
re-bootstrap rather than marking the peer non-capable. A genuinely non-KEM peer
still sends no payload at all, so the empty-answer capability signal is unchanged.

Found in cubic review on #7098 (client/internal/pqkem_adapter.go:72).
2026-10-07 13:38:42 +02:00
riccardom ecddbf2e55 Addresses CI fixes 2026-09-11 14:48:54 +02:00
riccardom 2b27040fb0 Anticipates PSK before WG does handshake so it finds it to set it 2026-09-11 14:48:54 +02:00
riccardom cfaf4f1bab Allow non strict mode 2026-09-11 14:48:54 +02:00