rust_keylock 0.3.0

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

Build Status crates.io

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.

Application Portability

Thanks to xargo, cross and JNA!

Import/export mechanism

  • Export/import encrypted passwords to/from the filesystem

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).

The library is responsible for the encryption/decryption, storing and retrieving encrypted data from the filesystem, taking backups (todo) and synchronizing with rust-keylock instances (todo).

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.

The documentation can be found here.

Availability

Currently, there are Editors and executables for: