This repository has been archived by the owner on Apr 15, 2020. It is now read-only.
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.
The main purpose of this PR to fix few vulnerabilities.
Due to fact that password is stored in shared preferences and algorithm of passcode is well known cause library is open source, so it is possible to create hash of own passcode and put it instead of original one on rooted devices. Then attacker can enter his passcode and get secured data.
Example:
<string name=”PASSCODE_KEY” value=”xxxx”>
Fix performed – split storage from AppLock. It gives ability to implement own secured storage and use instead of default shared preferences. Also PR provides Realm implementation of storage which will be useful for developers who already uses Realm in project.
Second one – ability to enter passcode infinity times. It’s because count of attempts isn’t stored somewhere.
Condition - there is 5 attempts to enter correct password. If all attempts user enters incorrect passcode he logged out from application.
Example:
Fix performed – store attempts count in storage.
Also this PR contains slight refactoring and dependency version updates.
Changes:
Ready for discussion.