feat(protocol): freeze M4 native session RC6 contract

This commit is contained in:
sechmachine
2026-08-13 07:18:03 +07:00
parent 4693102b3c
commit 8eacc4fda9
35 changed files with 5334 additions and 473 deletions
+12
View File
@@ -44,6 +44,10 @@ def classify_input(raw: bytes) -> str:
return "valid" if width and height and x < width and y < height else "invalid:field"
if kind == 7:
return "valid" if len(body) == 4 else "invalid:length"
if kind == 8:
if len(body) != 8:
return "invalid:length"
return "valid" if body[0] <= 15 and body[3] <= 3 else "invalid:field"
return "invalid:kind"
@@ -68,6 +72,14 @@ def classify_feedback(raw: bytes) -> str:
return "valid" if valid_fec_status(body) else "invalid:field"
if kind == 3:
return "valid" if not body else "invalid:length"
if kind == 4:
if len(body) != 24:
return "invalid:length"
return "valid" if any(body[:16]) and int.from_bytes(body[16:24], "big") > 0 else "invalid:field"
if kind == 5:
if len(body) != 16:
return "invalid:length"
return "valid" if any(body) else "invalid:field"
return "invalid:type"
if kind in (1, 2, 3):
return "invalid:direction"