Closed scottmmorris closed 2 years ago
This is cool!
But we realised we should probably do this against the js-db
instead so that everything benefits from this. In js-db
it would have to create a "_meta" level just for this stuff though and safeguard so that users don't try to create a level like so.
Description
There needs to be a more explicit way of determining if the db key is valid for the encrypted fs. At the moment, the efs start up continues until it tries to decrypt existing state and cannot because the key is not valid.
To overcome this, a similar pattern to sentinel species will be used. On creation of the efs, we encrypt a known string into the db at the root level. Then on subsequent constructions, we access the string and if we cannot decrypt it then we know that the vault key is invalid and we therefore throw an error. If the string does not exist in the db then we start and put the known string in because we know its a new db.
Tasks
Final checklist