Harden SCITT receipt verification and refactor Receipt.decode
- Use Eqaf.equal for hash comparisons in verify_inclusion and
check_receipt_leaf to prevent timing side-channels
- Catch Eio.Io exceptions from Atp.Cid.of_raw_bytes during MST
proof decode/verify (malformed CIDs in untrusted receipts)
- Reject non-bytes entries in proof path strictly instead of
silently dropping them via List.filter_map
- Extract CBOR map helpers (cbor_map_find, cbor_map_require,
cbor_bytes_list, decode_proof_map) and flatten Receipt.decode
with let* to reduce nesting depth
- Add eqaf dependency