Skip to content
callmesalmonPublic

About

A simple CLI password manager written in C.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

155 Commits

Folders and files

Repository files navigation

locksmith

locksmith is a password manager for Unix-like systems written in C. It aims at being simple and fast with no unnessecary bloat.

Locksmith image
Locksmith in action! (screenshot may be outdated)

Naturally, since I am not a good programmer, one can expect locksmith to break at any moment. Do not actually use locksmith for any important business, it is just a passion project.

Features

Locksmith comes with many features, such as:

  • Password encryption
  • Password generation
  • (Possibly broken) Password safety checking
  • Master password authentication (w/ (questionable?) hashing)
  • Atleast a somewhat functional implementation of password backups
  • A full "locksmith shell" to handle passwords in.

Requirements

If you want to build locksmith from source, you need:

  • cc/gcc (alternatively any other C compiler that compiles my code, but gcc is the only one on which I can guarantee that it compiles)
  • make
  • libsodium

Optional requirements

Additionally, if you want the best experience, you need:

  • A terminal supporting ANSI color escape codes (locksmith uses these for colored I/O)
  • A monospaced font (a lot will look kinda strange otherwise)

Install

Locksmith will not compile on spyware such as Windows.

git clone https://github.com/callmesalmon/locksmith
cd locksmith

## NOTE: You may alternatively run
## ``sudo make install`` to install binary
## to /usr/local/bin
make
sudo ./install_man.sh # OPTIONAL: this builds the locksmith manpage

Uninstall

./clean.sh  ## NOTE: Depending on your write access to certain directories,
            ## you may need to run ``sudo ./clean.sh`` instead

Project layout

The source code of the project is split into different files, with different purposes. See:

src
├── auth.c      Master password authentication
├── auth.h      Master password authentication
├── cli.c       Interface/command shell
├── cli.h       Interface/command shell
├── cli_msg.c   Interface Error/Warning/Info messages
├── cli_msg.h   Interface Error/Warning/Info messages
├── colors.h    Colored I/O
├── commons.c   Common functions, independent of the project
├── commons.h   Common functions, independent of the project
├── crypto.c    Cryptography
├── crypto.h    Cryptography
├── main.c      Entry point
├── password.c  Encrypting/Decryption of passwords
└── password.h  Encrypting/Decryption of passwords

About

A simple CLI password manager written in C.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages