Potential fix for code scanning alert no. 8: Insecure local authentication #218
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Potential fix for https://github.com/FreshKeeper/AndroidApp/security/code-scanning/8
The best way to fix the problem is to leverage an Android KeyStore-backed cryptographic key for guarding changes to the biometric-enabled state, ensuring that only an authenticated user (with a registered biometric) can enable this setting by successfully unlocking a secret key. Specifically:
onAuthenticationSucceeded, require and use the Cipher (via result.getCryptoObject().getCipher()), ensuring that biometric authentication was needed to access the key/cipher operation. Update the setting state only in this context.onBiometricSwitchChangedmethod inProfileSettingsViewModel.The following edits are required:
authenticate()to pass a CryptoObject.onAuthenticationSucceeded, verify and use the Cipher from the CryptoObject before updating state.Suggested fixes powered by Copilot Autofix. Review carefully before merging.