Skip to content

A password manager written in Rust with a GUI using Tauri

License

Notifications You must be signed in to change notification settings

Theo-Fourniez/huskey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Huskey

Build and test core library

Overview

Huskey is a work in progress project I created for learning the intricacies of a password manager and its cryptography. It was also created as a fun side project to be more familiar with Rust.

Screenshots

Opened vault

Editing an entry in a vault

Disclaimer

This project is not finished nor polished to the quality standard I usually apply to myself. I decided to publish it anyway to put it out there.

Features

  • Secure storage : Store passwords safely, they are encrypted at rest
  • Graphical user interface : For ease of use (and for your friends using windows)
  • Cross platform : Thanks to Rust cross compilation
  • Blazingly fast

Built using

  • Tauri (a toolchain used to create cross platform desktop apps, the spiritual successor of electron)
  • Rust
  • Vue3 (because I used it sometime ago)

Cryptography used

  • SHA512 : for hashing the users password
  • PBKDF2(HMAC-SHA512): for reducing vulnerability against brute force attacks and calculating the actual encryption/decryption key
  • AES-256-GCM : for encrypting the database file and assuring its integrity (aka military grade encryption)

Improvements ideas / roadmap

  • Look into code coverage reports with tarpaulin
  • Adding GUI tests with tauri-driver
  • Add 2FA support (TOTP)
  • Support for other encryption algorithms like ChaCha20
  • Protecting the process against low priviledged attackers ? (using the secmem-proc crate)

Codebase tour

  • All the rust logic of the application is contained in the lib folder
  • All the GUI code of the application is contained in the huskey-gui folder
  • A workflow testing the rust logic is found in the .github folder

License

Huskey is licensed under the GNUGPLv3 License. See the COPYING file for details.

Contact

If you're looking for a passionate graduate engineer with 3 years of work experience look no further See my other projects on my github profile