You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(protocols): small make() defects in TCP raw options, HIP ENCRYPTED and version, and MH CGA parameters #2708
Found while re-reviewing #2692 and confirmed by a Sonnet cross-review. None is introduced by that PR.
TCP:TCP(options=[bytes([255, 2])]) raises EnumValueError: 255 is not a valid Option in the raw-bytes branch (Enum_Option.get(schema[0])). The tuple form (255, {}) builds, and a parsed kind 255 comes back as UnassignedOption, so a parsed option does not rebuild through the raw-bytes path.
HIP ENCRYPTED: given an IV with a cipher that takes none (NULL_ENCRYPT, RESERVED_0, RESERVED_3), it counts the IV in its length while pack() drops it. The packet then fails to re-parse ("runs past the end of the data"). It should refuse the IV.
HIP version:HIP(next=59, parameters=[]) builds version 6 (3b042061) and re-parses as 6, while make() called directly defaults to 2. Version 6 is not a HIP version, so this looks unintended.
MH _make_opt_cga_param: its annotation includes dict[str, Any], but a dict raises ProtocolError: unknown CGA parameter format. Either accept it, or drop it from the annotation and document the refusal.
Activity
JarryShaw commentedon Nov 3, 2026
Blocked on #2692, which rewrites the TCP, HIP and MH makers this touches. It starts once that merges, to avoid a conflicting rewrite.
blocked.JarryShaw commentedon Nov 3, 2026
#2692 has merged, so this is unblocked. A worker is on it now, based on
bd82b7632.wip.JarryShaw commentedon Nov 3, 2026
The PR is #2724.
fix(protocols): refuse or build what the TCP, HIP and MH makers misha…
fix(protocols): refuse an empty raw option in the makers (#2723) (#2728)