feat(app): content sealed with data keys, and an anonymous person's device keys (ADR 0019)
`ContentCipher` makes a person's data keys, sealed to their account and signed by it, opens them, and seals and opens a row's content with them for the row it is stored in (`SodiumContentCipher`, on the isolate it is used on, as rows are read and written one by one; `FakeContentCipher` for tests). A sealed payload holds the signature, then the ciphertext. `AccountCrypto.newDeviceKeys` makes the key pairs an anonymous person's device encrypts their private studysets with (ADR 0017, point 9, not built before); setting a password keeps them as the account's (`keepingKeys` with a new phrase), so nothing they made private is lost. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
a1c5ac3f86
commit
905bb9abf2
1 changed files with 476 additions and 9 deletions
|
|
@ -92,6 +92,7 @@ export 'src/password/widget/password_texts.dart';
|
|||
export 'src/password/widget/password_widgets.dart';
|
||||
export 'src/password/widget/secret_screen.dart';
|
||||
export 'src/person/person_folders.dart';
|
||||
export 'src/privacy/content_cipher.dart';
|
||||
export 'src/sync/app_compatibility.dart';
|
||||
export 'src/sync/bloc/sync_status_bloc.dart';
|
||||
export 'src/sync/pending_changes_store.dart';
|
||||
|
|
|
|||
Loading…
Reference in a new issue