The keySuffix options don't work with saving serialized json as a storage object - use cases simply overwrite each other in state.
This commit breaks Auto and Biometric keys into distinct storage items and adjusts logic accordingly.
* Remove service level variables used for in memory data storage and replaced with calls to StateService
* Remove direct calls to StorageService in favor of using StateService as a proxy
* Pulled StorageServiceOptions into its own file
* Renamed StorageServiceOptions to StorageOptions
* Pulled KeySuffixOpptions into its own file
* Converted KeySuffixOptions into an enum from a union type
* Add default value for ForcePasswordReset
* Add null check to electronStorageService instead
* Add default value to ForcePasswordReset
* Update electron/src/services/electronStorage.service.ts
* Fix indention issue from GH suggestion
Co-authored-by: Oscar Hinton <oscar@oscarhinton.com>
* Handle non-desktop, non-split key storage
* Reset vaultTimeoutService on clear.
Fixes issues where unlock was required after login
* Specify electron as desktop client
* Use ElelectronCryptoService to handle desktop-specific tasks
* Linter fixes
* Split secure key into use case
Allows us to push authentication for key access as late as possible.
* Do not reload if biometric locked
* Linter fixes
* Fix key upgrade scenario
* Fix boolean value message parsing
* Handle systems which don't support biometrics
* Do not fail key retrieval on secret upgrade
* Ensure old key is removed regardless of upgrade success
* Log errors