General
rust-keylock is a password manager and its goals are to be:
- Secure
- Simple to use
- Portable
- Extensible
The core logic is written in Rust, but the presentation/User interaction parts are in different languages.
Features
Security
- The data is locked with a user-defined master password, using bcrypt password hashing
- Encryption using AES with CTR mode
- Data integrity checks with SHA3 (Keccak)
- Encrypted bytes blending
- Passwords are kept encrypted in memory
- Encryption keys on runtime are stored in safe, non-swappable memory
- Encryption keys change upon saving, even if the user master password remains the same. This results to different encrypted products, even if the data that is being encrypted is the same.
Data Availability
- Synchronization over Nextcloud or Owncloud
- Export/import encrypted passwords to/from the filesystem
- Automatic backups (TODO)
Application Portability
See how to download and install.
FAQ
On the Project website.
Wiki
On the Project website.
The rust-keylock library and the Editors
The idea is that the rust-keylock library handles the core application logic, whereas the interaction with the rust-keylock users is done via libraries that have presentation responsibilities (aka Editors).
This library is responsible for the core operations, like encryption/decryption, storing and retrieving encrypted data from the filesystem, performing synchronization tasks etc.
The Editors are driven by the rust-keylock library and are responsible for interacting with the Users and transfer the Users' input to the library.