Expand description
Texts sealed at rest (sioul_core::texts::Sealer; docs/texts.md, “Sealed
at rest”): each line of the texts’ stores, on every device, is sealed by
the device that writes it, so that a computer’s copy of your texts is
unreadable without the sharing key, which each device keeps in its
keyring (the Secret Service, the Credential Manager, the Keychain, or
Android’s KeyStore). The sharing then seals the lines again in the folder,
as it seals every record.
The key: made from the sharing key (HKDF-SHA-256, “sioul-texts 1”), so
that it seals nothing else and the sharing key itself seals no text. Each
line: XChaCha20-Poly1305, a random nonce, bound to its use; written
“t1:” and the nonce and the sealed bytes in base64, on one line. Each
media file of a multimedia message kept on a computer: the same, bound to
another use, the nonce and the sealed bytes (seal_bytes).
Replies from your computers to the phone’s notifications (ReplySeal;
sioul_core::replies) are sealed the same way with a key of their own
(“sioul-replies 1”), their lines written “r1:…”: a computer’s requests in
the sharing, and the phone’s private file of what is due, which holds
their words; neither opens with the other’s key.
Structs§
- Reply
Seal - The sealer of the replies’ lines, from the sharing key (HKDF-SHA-256, “sioul-replies 1”): it seals nothing else, and the texts’ key opens none of them.
- Text
Seal - The sealer of the texts’ lines, from the sharing key.
Constants§
- BOUND 🔒
- What each line is bound to: a line sealed for another use does not open here.
- BOUND_
FILE 🔒 - What a media file sealed this way is bound to.
- PREFIX 🔒
- What a line sealed this way starts with: its format.
- REPLY_
BOUND 🔒 - What each of their lines is bound to.
- REPLY_
PREFIX 🔒 - What a line of the replies’ stores starts with, sealed so (
ReplySeal).