Soimuen11 / PPM

A password manager written in Perl.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The Perl Password Manager [PPM]

Disclaimers:

  • This program is still under development.
  • This is mainly a CLI utility. For efficiency purposes, I recommend having a keybinding for the ppm dmenu command in your Tiling Window Manager configuration.
  • Yes, this project is inspired by another password manager called pass.

Contribute:

If you wish to contribute, feel free to make a pull request! Check out the to-do list and see if you would be capable of implementing one of the necessary changes yourself. If you feel like something is missing, send me suggestions!

To-Dos

  1. Add following functionalities:
    • Make it work from anywhere in filesystem [Work In Progress]
    • Add possibility to create directories in password-store
  2. Package it:
    • debian-baed distros.
    • arch-based distros.
    • create perl makefile
  3. Write man page.
  4. Re-write subroutines which use bash to strive and only use Perl syntax. Potential modules to implement to do so:
    • IO::Handle
    • GnuPG::Interface
    • Clipboard::Xclip
  5. Add a simple GUI or ncurses interface.

How To Use It

Once installed, this program has been designed to be used in a terminal. For now, here are the available commands:

  1. passgen list
  2. passgen init
  3. passgen generate [password_name] [nb_characters_in_password]
  4. passgen show [password_name]
  5. passgen clip [password_name]
  6. passgen add [password_name]
  7. passgen dmenu
  8. passgen rm [password_name]
  9. passgen mv [old_password_name] [new_password_name]
  10. passgen cp [old_password_name] [new_password_name]
  11. passgen help: displays help

As a first step, it is important to run ppm init to set up the password store. You may then generate passwords with ppm generate (randomly generates a password with the number of characters which you specified), or ppm add. To show a password or add it to your clipboard, you can respectively use the commands ppm show and ppm clip. Finally, you may list all the passwords in your password store with the command ppm list. If you run ppm dmenu, it will output a list of your passwords within the password-store into dmenu. If you select one, the passwords will be copied into your clipboard.

How To Install It

  • Dependencies:

    • Perl 5 (should already be installed)
    • Dmenu
    • Tree
    • Gpg
    • Xclip
    • Git
# For Debian & Ubuntu-based Linux systems
sudo apt update && sudo apt upgrade -y && sudo apt install perl dmenu tree gpg xclip git

# For Arch-based Linux systems
sudo pacman -Syu perl dmenu tree gpg xclip git
  • Set up gpg:
gpg --full-gen-key # Initialize /home/$USER/.gnupg and RSA key
  • To install from source, run the following commands:
# Create /home/$USER/.local/repos && /home/$USER/.local/bin
# If they do not already exist
mkdir -p /home/$USER/.local/repos /home/$USER/.local/bin

# Cd into /home/$USER/.local/repos
cd /home/$USER/.local/repos

# Clone the repository
git clone https://github.com/Soimuen11/PPM.git

# Cd into the project repository
cd PPM/

# Install required CPAN modules
cpan Switch
cpan Term::ANSIColor	
cpan File::Copy

# Give execute permissions to ppm.pl
chmod u+x ppm.pl

# Create a symlink from .local/repo to .local/bin
ln -s /home/$USER/.local/repo/PPM/ppm.pl /home/$USER/.local/bin/passgen

# Optional step: Add the **ppm dmenu** command to your tiling window manager's
# list of keybindings.  

About

A password manager written in Perl.


Languages

Language:Perl 100.0%