Skip to content

Implement sealed sending/unidentified sending

Ruben De Smet requested to merge sealed-sending into master

Currently based on !393 (merged), will rebase after that's finished.

Fixes #463 (closed) and #95 (closed) and #461 (closed)

Requires https://github.com/whisperfish/libsignal-service-rs/pull/213

Will fix the huge amount of captcha's/428 lately (related to #535 (closed)).

TODO:

  • Group sync
  • Figure out whether session reset is supposed to get through the unidentified socket
  • Why didn't some sessions work?
    • Delivery notifications shouldn't be sent using a delivery-requiring channel. Maybe that's it?
  • The unidentified sending does not use keep-alive, but we maybe want to keep it around, only reinstantiating it when it actually died. This is kinda difficult and basically requires fixing #84 and related first.
  • Fallback to identified sending if unidentified access fails. This is imporant for testing out unknown/partially known contacts.
    • Implement fallback in libsignal-service
    • Report fallback to database, disable unidentified (when do we reenable? on profile updates?)
  • Store unrestricted sealed sending in db
  • Reset unidentified field to Unknown on profile key change
  • Implement ToSql for UnidentifiedAccessMode for convenience
Edited by Ruben De Smet

Merge request reports