rust_keylock 0.5.0

A password manager with goals to be Secure, Simple to use, Portable and Extensible
Documentation

Build Status crates.io Coverage Status

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.