# Pmanager | Store And Retrieve Your Passwords From A Secure Offline Database

**URL:** <https://onehack.st/t/pmanager-store-and-retrieve-your-passwords-from-a-secure-offline-database/224658>\
**Category:** Tools & Scripts\
**Tags:** tools, programming, privacy, freebies\
**Created:** [October 2, 2022, 10:08pm UTC](https://onehack.st/t/pmanager-store-and-retrieve-your-passwords-from-a-secure-offline-database/224658 "2022-10-02T22:08:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![WhiteHat](https://onehack.st/user_avatar/onehack.st/whitehat/32/162514_2.png) [@WhiteHat](https://onehack.st/u/WhiteHat)\
**Post date:** [October 2, 2022, 10:08pm UTC](https://onehack.st/t/pmanager-store-and-retrieve-your-passwords-from-a-secure-offline-database/224658/1 "2022-10-02T22:08:59Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/7/1/71c84b2fae42ceb694adf2137ef5cb6a59b5cc4b.png)

# Pmanager

[![GitHub](https://camo.githubusercontent.com/9ca57fb550d914e34434433655d6bce85611a03ba0d5ce02744957dec6035a4b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f79756b73656c6265726b61792f706d616e616765723f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/9ca57fb550d914e34434433655d6bce85611a03ba0d5ce02744957dec6035a4b/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f79756b73656c6265726b61792f706d616e616765723f7374796c653d666f722d7468652d6261646765) [![release](https://camo.githubusercontent.com/1cd02959c468a4d95d60e858a2c11ed4a77d65fbd707f0cb8f5006476d48a748/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d302e392e352d6f72616e67653f7374796c653d666f722d7468652d6261646765)](https://camo.githubusercontent.com/1cd02959c468a4d95d60e858a2c11ed4a77d65fbd707f0cb8f5006476d48a748/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d302e392e352d6f72616e67653f7374796c653d666f722d7468652d6261646765)

## Demo

[![demo](https://github.com/yukselberkay/pmanager/raw/Master/images/demo.gif)](https://github.com/yukselberkay/pmanager/blob/Master/images/demo.gif)

## Description

Store and retrieve your passwords from a secure offline database. Check if your passwords has leaked previously to prevent targeted password reuse attacks.

## Why develop another password manager ?

- This project was initially born from my desire to learn Rust.
- I was tired of using the clunky GUI of keepassxc.
- I wanted to learn more about cryptography.
- For fun. 🙂

## Features

- Secure password storage with state of the art cryptographic algorithms.
  - Multiple iterations of argon2id for key derivation to make it harder for attacker to conduct brute force attacks.
  - Aes-gcm256 for database encryption.

- Custom encrypted key-value database which ensures data integrity.(Read the blog post I wrote about it [here](https://yukselberkay.github.io/programming/2022/09/12/post-keyval-db.html).)
- Easy to install and to use. Does not require connection to an external service for its core functionality.
- Check if your passwords are leaked before to avoid targeted password reuse attacks.
  - This works by hashing your password with keccak-512 and sending the first 10 digits to [XposedOrNot](https://xposedornot.com/api_doc).

## Installation

Pmanager depends on “pkg-config” and “libssl-dev” packages on **ubuntu**. Simply install them with

sudo apt install pkg-config libssl-dev -y

Download the binary file according to your current OS from [releases](https://github.com/yukselberkay/pmanager/releases), and add the binary location to PATH environment variable and you are good to go.

## Building from source

## Ubuntu & WSL

sudo apt update -y && sudo apt install curl curl --proto ‘=https’ --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh sudo apt install build-essential -y sudo apt install pkg-config libssl-dev git -y git clone [https://github.com/yukselberkay/pmanager](https://github.com/yukselberkay/pmanager) cd pmanager make install

## Windows

- Follow the instructions here to install Rust. → [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install)
- Then install git for Windows. → [https://gitforwindows.org/](https://gitforwindows.org/)

git clone [https://github.com/yukselberkay/pmanager](https://github.com/yukselberkay/pmanager) cd pmanager cargo build --release

## Mac

I have not been able to test pmanager on a Mac system. But you should be able to build it from the source (“cargo build --release”). since there are no OS specific functionality.

## Documentation

**Firstly the database needs to be initialized using “init” command.**

### Init

# Initializes the database in the home directory. pmanager init --db-path ~

### Insert

# Insert a new user and password pair to the database. pmanager insert --domain [github.com](http://github.com)

### Get

# Get a specific record by domain. pmanager get --domain [github.com](http://github.com)

### List

# List every record in the database. pmanager list

### Update

# Update a record by domain. pmanager update --domain [github.com](http://github.com)

### Delete

# Deletes a record associated with domain from the database. pmanager delete [github.com](http://github.com)

### Leaked

# Check if a password in your database is leaked before. pmanager leaked --domain [github.com](http://github.com)

```auto
pmanager 1.0.0

USAGE:
    pmanager [OPTIONS] [SUBCOMMAND]

OPTIONS:
    -d, --debug      
    -h, --help Print help information
    -V, --version Print version information

SUBCOMMANDS:
    delete Delete a key value pair from database
    get Get value by domain from database
    help Print this message or the help of the given subcommand(s)
    init Initialize pmanager
    insert Insert a user password pair associated with a domain to database
    leaked Check if a password associated with your domain is leaked. This option uses
                  xposedornot api. This check achieved by hashing specified domain's password and
                  sending the first 10 hexadecimal characters to xposedornot service
    list Lists every record in the database
    update Update a record from database

```

## Roadmap

- Unit tests
- Automatic copying to clipboard and cleaning it.
- Secure channel to share passwords in a network.
- Browser extension which integrates with offline database.

## Support

Bitcoin Address → bc1qrmcmgasuz78d0g09rllh9upurnjwzpn07vmmyj

## GitHub:

> **[GitHub - yukselberkay/pmanager: Store and retrieve your passwords from a secure...](https://github.com/yukselberkay/pmanager)**
>
> Store and retrieve your passwords from a secure offline database. Check if your passwords has leaked previously to prevent targeted password reuse attacks.
