Skip to content

A new-gen CLI tool for cypherpunk remailer. [Working]

License

Notifications You must be signed in to change notification settings

tim54000/cypherpunk-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cypherpunk CLI

Table of Contents

About

Cypherpunk CLI is a tool that simplifies your life when you want to send an email between several remailers. It was created to have an alternative to MixMaster (latest version from 2008) to simply send messages without having to break your head to install and use it and not have to use GPG manually.

All messages will be encrypted and distributed as PGP messages.

Getting Started

These instructions will get you a copy of the project up and running on your local machine.

Prerequisites

First of all, you need Rust =)

Rust

To build source, you need to have a correct Rust toolchain and compiler. If you don't have yet one, check https://rustup.rs/

Build it!

Clone the git repository, with git clone and build the tool using:

$ cargo build --package cypherpunk-cli --release

Enjoy, you built it!
The final executable is in the folder ./target/release

On Unix systems, run ./target/release/cypherpunk-cli --help
On Windows, run ./target/release/cypherpunk-cli.exe --help

Installing

The installation hasn't been thought about yet, for now, just use the binary you created. However if you really want to add Cypherpunk in your path, you can try:

$ cargo install --package cypherpunk-cli --release

However, you may need to add the remailers.json config to the same directory otherwise it won't work.

Usage

The use of the tool is still unstable and can change at any time. Use the --help option for now.

Message format:

Remailer-valid formatted message seems to:


::
Anon-To: <email_recipient>
Header_for_Remailer: Value visible only by the remailer

##
Subject: A subject
Another_Header_Present_In_The_Final_Message: A value for it

Message's body here!

More info: http://www.panta-rhei.dyndns.org/JBNR-en.htm#CForm
(if down: QmboFHizh9ys57DXcVsniVDYS46gsiBP716u2sqQE7xgV4)

Tool usage:

  • Encrypt message from stdin, chain with two random remailer:
$ cypherpunk-cli --chain "*" "*"
  • Encrypt message named ./message.txt, chain with paranoia and dizum:
$ cypherpunk-cli --input ./message.txt --chain paranoia dizum
  • Encrypt message named ./message.txt, chain with paranoia and dizum, saved into ./out/:
$ cypherpunk-cli --input ./message.txt --chain paranoia dizum --output ./out/
  • Encrypt message named ./message.txt, chain with paranoia and dizum, redundancy: 2 messages:
$ cypherpunk-cli --input ./message.txt --chain paranoia dizum --redundancy 2
  • Encrypt message named ./message.txt, chain with two random remailer, formatted to mailto URL:
$ cypherpunk-cli --input ./message.txt --chain "*" "*" --format mailto
  • Encrypt message named ./message.txt, chain with austria, formatted to EML file:
$ cypherpunk-cli --input ./message.txt --chain austria --format eml
cypherpunk --help
cypherpunk 2.0.0-beta
Tim54000
CLI tool to encrypt your messages between different remailers easily

USAGE:
    cypherpunk-cli [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       
            Prints help information

    -q, --quiet      
            The quiet flag to make the PGP backend quiet and soon more...

    -V, --version    
            Prints version information


OPTIONS:
    -c, --chain <chain>...           
            The remailer chain through which your message will pass. [required]
            
            Tips: You can use a joker "*" to randomly choose one remailer in the config. It will change with each
            redundant message.
        --config <config>            
            The path to the remailer config, useful if you have install this tool [default: ./remailers.json]

    -f, --format <format>            
            The output message format [default: cypherpunk]  [possible values: Cypherpunk, Mailto, EML]

    -H, --header <headers>...        
            Remailer headers to add for each remailer message. Only one key-value per string.
            
            This can be useful to add `Inflate` header to each message.
            
            Examples: `--header "Key: Value"` `--header "Key1: Value1" "Key2: Value2"`
    -i, --input <input>              
            Messsage input file, stdin if not present; the message must be readable by the last Cypherpunk remailer in
            the chain
    -o, --output <output>            
            Output dir, stdout if not present; all the encrypted message for remailer will be there

    -r, --redundancy <redundancy>    
            Number of redundancy message to encrypted
            
            Because the Cypherpunk remailers can forget messages, it's a good idea to send several messages to different
            remailers to avoid the loss of the message. Tips: If you use a "*" for remailer it will be randomly choose
            for each redundancy message. [default: 1]