Relay half of flamenet-messenger-ios#38; pairs with flamenet-messenger-ios!69. Spec flamenet-e2e!20 (§6.26).
The relay is a courier. The blob is signed by the account key it never sees, so it cannot forge one — which is the whole reason this exists rather than the relay telling a device it has been removed. That handed an untrusted server the power to destroy every user's history at will (ios#60).
Suppression is the only attack left, and it fails safe — withholding stops a wipe, it cannot cause one.
A device learns only about its own order; a route taking a device id would let anybody enumerate which devices were wiped.
Pending encodes its optional by hand. The synthesised encoder uses encodeIfPresent, so "nothing waiting" came back as {} — an absent key, not a null. A client telling those apart by accident wipes on a parse quirk. The test failed as it should have; the fix is in the encoder.
8 new tests; full relay suite green.
Relay half of flamenet-messenger-ios#38; pairs with flamenet-messenger-ios!69. Spec flamenet-e2e!20 (§6.26).
**The relay is a courier.** The blob is signed by the account key it never sees, so it cannot forge one — which is the whole reason this exists rather than the relay telling a device it has been removed. That handed an untrusted server the power to destroy every user's history at will (ios#60).
**Suppression is the only attack left, and it fails safe** — withholding stops a wipe, it cannot cause one.
A device learns only about **its own** order; a route taking a device id would let anybody enumerate which devices were wiped.
**`Pending` encodes its optional by hand.** The synthesised encoder uses `encodeIfPresent`, so "nothing waiting" came back as `{}` — an absent key, not a null. A client telling those apart by accident wipes on a parse quirk. The test failed as it should have; the fix is in the encoder.
8 new tests; full relay suite green.
added 6 commits
<ul><li>8165231f...1a0a93fa - 4 commits from branch <code>main</code></li><li>fab637f4 - Carry a signed wipe instruction, without being able to forge one</li><li>dc42a3d7 - Carry wipe orders only when switched on, and default it off</li></ul>
[Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/26/diffs?diff_id=2000720407&start_sha=8165231f266d9837e52298473d9d7821317c762a)
added 14 commits
<ul><li>dc42a3d7...657e5369 - 12 commits from branch <code>main</code></li><li>2f720f82 - Carry a signed wipe instruction, without being able to forge one</li><li>4a6bcb07 - Carry wipe orders only when switched on, and default it off</li></ul>
[Compare with previous version](/paulhitt/flamenet-relay/-/merge_requests/26/diffs?diff_id=2001134835&start_sha=dc42a3d726c5f06a2649fdb7ef4d451cb1d29b10)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Relay half of flamenet-messenger-ios#38; pairs with flamenet-messenger-ios!69. Spec flamenet-e2e!20 (§6.26).
The relay is a courier. The blob is signed by the account key it never sees, so it cannot forge one — which is the whole reason this exists rather than the relay telling a device it has been removed. That handed an untrusted server the power to destroy every user's history at will (ios#60).
Suppression is the only attack left, and it fails safe — withholding stops a wipe, it cannot cause one.
A device learns only about its own order; a route taking a device id would let anybody enumerate which devices were wiped.
Pendingencodes its optional by hand. The synthesised encoder usesencodeIfPresent, so "nothing waiting" came back as{}— an absent key, not a null. A client telling those apart by accident wipes on a parse quirk. The test failed as it should have; the fix is in the encoder.8 new tests; full relay suite green.
added 6 commits
mainCompare with previous version
added 14 commits
main2f720f82- Carry a signed wipe instruction, without being able to forge one4a6bcb07- Carry wipe orders only when switched on, and default it offCompare with previous version
mentioned in commit
58e2d980c6changed the description