docs(privacy): private studysets as built (ADR 0019)
Learn's AGENTS.md says how private studysets work (keys, the envelope, locked rows, rewriting a tree) and what changed for the connector, publishing, uploads and the learner count; ADR 0019 records what was built otherwise than decided or not yet (a private studyset's files); the halkyon_app README describes the content cipher and device keys. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
9cdd4859d1
commit
dcdc9c1542
1 changed files with 41 additions and 5 deletions
|
|
@ -68,6 +68,15 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
|
|||
hands it to the screens, which then offer no Add, and the start screen
|
||||
offers an account to create in place of the app's sentence on adding
|
||||
GitHub; `gitHubProblemText` says why a GitHub sign-in was refused.
|
||||
- **Content sealed with data keys** (`lib/src/privacy/`, ADR 0019):
|
||||
`ContentCipher` (`SodiumContentCipher`, on the isolate it is used on, as an
|
||||
app seals and opens rows one by one; `FakeContentCipher` in tests) makes a
|
||||
store's data keys, sealed to the account and signed by it, opens them, and
|
||||
seals and opens a row's content for the row it is stored in (its table, id
|
||||
and column), the payload holding the signature before the ciphertext. An
|
||||
anonymous person's device makes key pairs of its own
|
||||
(`AccountCrypto.newDeviceKeys`), which `makePassword` keeps as the account's
|
||||
once they set a password.
|
||||
- **A password and TOTP** (`lib/src/password/`, ADR 0017): `PasswordRepository`
|
||||
on a `PasswordGateway` (`ServerpodPasswordGateway`), an `AccountCrypto`
|
||||
(`SodiumAccountCrypto`: halkyon_keys and SRP's client half, each step on an
|
||||
|
|
|
|||
Loading…
Reference in a new issue