3 Commits
Author SHA1 Message Date
LeoVasanko 2f8cafaa6d Flip burn policy: remove _Burn, burn on any non-WireError failure
The burn decision now lives solely in the Session dispatch: chab3's
WireError (unauthentic or truncated box) proves no key knowledge and
burns nothing; any other ValueError/struct.error means a peer who
opened the box misbehaved, so the credential burns. handshake.py drops
its try/except wrappers and the _check helper; inner-box WireErrors
are reclassified to plain ValueError since they occur inside an
already valid outer box.
2026-10-07 19:59:56 +00:00
LeoVasanko f035859fd2 Split hybrid public keys into separate wire fields
The packed 1216-byte hybrid public had no consumer that wanted it
whole -- everything unpacked immediately. Message layouts and the
credential record now carry peer_m | peer_x as explicit fields; _PUB
and the unpack-at-use idiom are gone. credential_id values change with
the record layout. Step comments in the exchange methods explain what
each solve/challenge proves.
2026-10-07 17:59:13 +00:00
LeoVasanko 03a7758fa6 Initial commit 2026-10-07 03:07:34 +00:00