▐ homomorph ▌

rules / HM010

HM010 checksignatures-handle-order MEDIUM

Handle list and abi.encode(...) cleartexts appear misaligned in FHE.checkSignatures

Why it matters

`FHE.checkSignatures(handles, abi.encode(v1, v2, ...), proof)` binds each handle to the cleartext at the same position. If the counts differ, or the order of handles does not match the order of values, verification either always fails (a liveness bug) or, more dangerously, accepts a proof for a different pairing than the one the contract then stores.

Fix

Build `handles` and the `abi.encode(...)` argument list side by side, in the same order, ideally from a single shared array or helper so they cannot drift.

Check locally

homomorph scan . --rules HM010