mirror of
https://github.com/fenleon/open-madrid.git
synced 2026-10-22 16:12:35 +00:00
Two session-20-frozen constants falsified on fresh live inputs: - staging i==10 ecx2 = perm2u[st[0x6fa2]] (was frozen perm2u[0x40]) - the P region (state+0x6898, 7x256): five of seven tables are parameterized on five body-derived byte-XOR pairs by the SSE builder at 0x17a1381-0x17a20b5 (tables 2/5 constant). The builder's instruction stream is serialized into generated NacPTable.kt (1833 ints + 46 const vectors) and re-executed lane-wise, byte-exact vs the emulated builder on fresh + random + s20 states. NacSign re-ported with every body-derived region computed: u32tab/nacMasksFlags (12-step barrett chain, full 128-bit product), mapKey cursor0, dynamic N, base-7 0x6fd8 selectors, region6f98(state) (tsel6f98 span, 4 tables strided 0xf0), masks/flags at 0x6fe8/0x6fec, scatterMutated & ~masks, cipher RC = state 0x25d8 words. The four former state-embedded constants (region6f98/ sel6fd8/maskC68/pTable) dropped from NacSignTablesData. Verified: fresh live sig16 307d7151... and the full fresh 517-B stamp byte-exact vs the live capture; session-20 stamp still byte-exact; sig_hand.py verify 20/20. 209 registration tests green (vectors regenerated). Spec -> rev 33. Method + dumps: registration/dev/clearadi/captures/NAC-NOTES.md (gitignored).