-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support changing cipher and set AES-GCM as default cipher #383
Conversation
Requires work to write out the new identity vault and events. Includes an improvement to the API for VaultBuilder.
To accommodate the need to completely overwrite the account data for destructive operations such as changing encryption cipher. create_account -> PUT (formerly POST) sync_account -> PATCH (formerly PUT) And added a stub handler which will overwrite all account data with the given ChangeSet: update_account -> POST We now need to re-deploy the demo and test self-hosted services after this commit is merged.
To be distinct from the ChangeSet type used to create a new account on a remote server as when forcefully updating we only need the folders to be entire event logs. Any changes to the account, device and files event logs can be patched from diffs.
So that a network account can force an update of an account's folders after making destructive changes.
So that we can handle the case when a comparison is unknown which will require further communication with the remote to determine if the trees have completely diverged.
So that the client can test whether event logs have completely diverged.
To overwrite the data for an identity folder; requires work to log and process an AccountEvent::UpdateIdentity variant which will be detected on merge of account data to sync identity data after destructive changes (cipher change or account password change).
Just saw this error on a test run:
Edit: this problem occurs when converting the identity folder before the user folders, fixed by changing the order back. Not sure why this would happen. The reason this happens is that updating the cipher for a user folder requires looking up the folder password in the identity folder. If we update the cipher on the identity folder first then the identity folder has been invalidated but we don't sign in again until after all changes have completed (identity folder and user folders). |
So that the change_cipher test spec now passes.
Closes #381