b94b52a42d
* Refactor git logic into separate parts * Extract hardcoded strings * Add KDoc to updateHostname, remove unused field * Cleanups * Fix dialog message * Wire in repository clone flow * spotless * Remove unused method * Cleanup GitActivity - Rename to GitOperationActivity. - Ensure identityBuilder is always closed regardless of what fragment uses it. - Remove hardcoded "Operation" strings and replace with REQUEST_ARG_OP. - Apply a transparent theme to GitOperationActivity make the UI less jarring. * Tweak some stupidly worded dialog messages As pointed out in #629, these strings are shoddily worded and do not express any clear intent to the user, leaving them confused and angry. * GitOperationActivity: wrap Context to ensure right theme is used * spotless * undo build.gradle change * Use correct parent theme, remove now useless wrapping * GitServerConfigActivity: fix repository clone flow * temp: disable leakcanary framework leaks on Samsung are pissing me off * Make system bars transparent in git activity * Tweak HTTPS password layout * Unhardcode wrong passphrase string * Store SSH passphrase in EncryptedSharedPreferences Also revamp the dialog to look a bit better * Implement support for remembering HTTPS password Fixes #521 * Try to patch HTTPS remote creation logic * Update security-crypto * Clear saved passphrase/password on auth failure * Revert "Update security-crypto" Broken on R DP2.1 This reverts commit 4b20371dd42c512a3dd3b759859abb6c1ffd2961. * Revert "temp: disable leakcanary" This reverts commit 2db7d41bd67b79c6dc8c5b359a7b27100379f45f. * Update CHANGELOG * Remove spacer * Remove useless override * Wrap git server activity in a ScrollView * GitOperation: always finish calling activity when dialogs are dismissed * Wipe saved password/passphrase when hostname changes * Don't commit prefs updates * Don't call listFiles excessively * Finish activity after saving configuration * Make ConnectionMode and Protocol enum classes * Change SSH key passphrase key, don't wipe on host change * Reimplement BaseGitActivity.updateUrl (was updateHostname) * Use SharedPreferences.edit KTX extension * Disable inapplicable connection modes depending on scheme * BaseGitActivity: annotate onDestroy with CallSuper We'll leak the identityBuilder connection otherwise * Move input hack for AlertDialog into an extension function We re-use this in many places * Fix protocol/mode toggle issue and consistenly name options * Fix a crash when opening GitServerConfigActivity without a repo * Fix OpenKeychain callbacks by moving onActivityResult to BaseGitActivity * Run spotlessApply Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Co-authored-by: Fabian Henneke <fabian@henneke.me> |
||
---|---|---|
.github | ||
.tx | ||
app | ||
contrib/oisafe2pstore | ||
gradle/wrapper | ||
media | ||
release | ||
scripts | ||
.gitignore | ||
.gitmodules | ||
build.gradle | ||
CHANGELOG.md | ||
dependencies.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE.txt | ||
README.md | ||
settings.gradle | ||
spotless.gradle | ||
spotless.license | ||
spotless.root.gradle |
Password Store
This application tries to be 100% compatible with pass
You can install the application from:
Pull requests are more than welcome (see TODO).
Features
- Clone an existing pass repository (ssh-key and user/pass support)
- List the passwords
- Handle the directories as categories
- Decrypt the password files (first line is the password, the rest is extra data)
- Add a new password to the current category (or no category if added at the root)
- Pull and Push changes to the remote repository
- Ability to change remote repository info
How-To
See the wiki for a newer written version of the following gif walkthrough
FAQ
Q: What kind of repository can I clone from?
A: Make sure to only clone from bare repositories (see git-clone(1) for how to create a bare repository from an existing one). Otherwise the clone will fail.
Q: I get a "Permission Denied" error when trying to import my ssh-key, why?
A: ssh-key files are usually created with permissions set to 600
, meaning that only the creator of this key has the right to read from it. The application needs a read access, at least temporarily, make the permissions to 644
, import the key, then set them back to 600
.
Q I get the error No encrypted data with known secret key found in stream
A In OpenKeyChain (under the left drawer) Apps > Password Store > Accounts > (select the account) > Account key select the key used to encrypt your passwords.
Q OpenKeyChain's password prompt doesn't show up when I tap on my passwords
A Be sure to disable battery optimisation for OpenKeychain in your device's settings and make sure there is no task killer running.
Community
Ways to get in touch:
- Github issues, use it if you have a bug report, you do not understand how something works or you want to submit a feature request.
Contributing Translations
Interested in helping to translate Password Store? Contribute here!
Libraries
Libraries that this project uses:
- OpenKeyChain for encryption and decryption of passwords.
- JGit git library.
- Apache's FileUtils for file manipulations.
Contributors
This project exists thanks to all the people who contribute. Want to contribute? See if you can find an issue you wanna close, then send a PR!
Backers
Thank you to all our backers! 🙏 [Become a backer]
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.[Become a sponsor]