itsgoin/crates/tauri-app/gen/schemas
Scott Reimers aa190db375 fix(fof): pre-deploy hardening — wire validation + unreadable cap
DoS-resistance pass before shipping Layers 1-5. Found three concerns:

1. Receive-path lacked validation on FoF gating shape.
2. vouch_unreadable_posts queue had no upper bound.
3. Receive-path FoFClosed visibility could pair with no fof_gating.

Fix 1 (fof::validate_fof_gating_on_receive):
- Called from control::receive_post BEFORE any storage write.
- Rejects wrap_slots/pub_post_set length mismatch (preserves the
  pub_x_index lookup invariant).
- Caps wrap_slots at MAX_FOF_WRAP_SLOTS=8192. Above that we assume
  attacker-shaped; legitimate bucket rule maxes at ~real+128 above 256.
- Validates each WrapSlot.read_ciphertext / sign_ciphertext is
  exactly 48 bytes (matches seal_wrap_slot's output).
- Caps revocation_list at MAX_FOF_REVOCATION_LIST=4096.
- Bad posts never enter storage, never get re-propagated via
  neighbor-manifest diffs.

Fix 2 (fof::validate_fof_closed_has_gating):
- FoFClosed visibility + None gating is an invariant violation.
  Rejected at the same receive boundary.

Fix 3 (storage::record_unreadable_post):
- Per-persona cap of MAX_UNREADABLE_PER_PERSONA=4096. Above the cap,
  new posts get last_attempt_ms touched if already present but no
  new INSERT. Bounds sweep-on-V_x-arrival cost.

7 new tests bring the suite to 157:
- validate_rejects_length_mismatch / oversized_slots / wrong_ciphertext
- validate_accepts_well_formed_gating / post_without_gating
- validate_fof_closed_requires_gating
- unreadable_queue_is_capped

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 20:23:11 -06:00
..
acl-manifests.json fix(fof): pre-deploy hardening — wire validation + unreadable cap 2026-05-14 20:23:11 -06:00
android-schema.json Feed pagination, duplicate identity detection, pkarr leak fix, Android SAF 2026-04-18 15:35:23 -04:00
capabilities.json Design doc audit: update badges, fix outdated descriptions, add CDN/replication docs 2026-03-21 00:20:47 -04:00
desktop-schema.json AppImage video fix, proper import posts, first-run chooser, file pickers 2026-04-16 13:49:52 -04:00
linux-schema.json AppImage video fix, proper import posts, first-run chooser, file pickers 2026-04-16 13:49:52 -04:00
mobile-schema.json Feed pagination, duplicate identity detection, pkarr leak fix, Android SAF 2026-04-18 15:35:23 -04:00