txp0wer / pqpg

Post Quantum Privacy Guard: yet another little GnuPG-like command line tool for post-quantum cryptography

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PQPG: POST QUANTUM PRIVACY GUARD

a little GnuPG-like command line tool for post-quantum cryptography

License: GNU GPLv3 or later

Requirements:
  * rust-nightly (because of dependencies)
  * a lot of rust libraries (see Cargo.toml)

Compile/install:
  git clone https://github.com/txp0wer/pqpg
  cd pqpg
  cargo run --release [--features x86simd] <subcommand> [args]
  cargo install [--features x86simd] # if you decide you like it
  # "--features x86simd" may increase performance, but requires an x86 CPU

Usage:
  pqpg keygen <name>
    generates a key and asks for a passphrase
    returns the fingerprint of your key
  pqpg import <public_key_file> <name> [address],
      adds a public key file to your database
  pqpg export <name_or_fingerprint> [public_key_file]
    extracts a public key from your database and writes it to stdout or a specified file
  pqpg encrypt <name_or_fingerprint> <input_file> <output_file>
  pqpg decrypt <input_file> <output_file>
    asks for the passphrase, fails if the private key is missing
  pqpg chpass <name_or_fingerprint>
    changes the passphrase
  pqpg list [name_or_fingerprint]
    list all or search known keys
  pqpg test
    runs some self-tests

Crypto: only encryption so far
  * Public-Key encryption: "new hope" (Ring-LWE; 14592 bits; through sarkara library; see module SealedBox)
  * symmetric encryption: SCrypt (through rust-crypto; to protect the private key files)
  * Hash: Blake2b (sarkara; for the PK fingerprints)

To do:
  * implement an address book (name->fingerprint) (WIP)
  * implement an optional "ASCII armor"
  * implement the usual key management features (delete keys, rename keys)
  * refactor the builtin help function
  * migrate key material to the database

Known bugs:
  * file size is limited by available RAM (blame sarkara::SealedBox for that)

WARNING:
  * this tool is not yet production ready, so don't trust it with any sensitive/important data
  * I assume that the algorithms are really secure against quantum computers
    and that their implementations have neither significant flaws nor backdoors
  * the file formats may change in the future

About

Post Quantum Privacy Guard: yet another little GnuPG-like command line tool for post-quantum cryptography

License:GNU General Public License v3.0


Languages

Language:Rust 100.0%