ProtonMail / gosop

Stateless CLI for GopenPGP
MIT License
32 stars 10 forks source link
cryptography openpgp

gosop

Stateless Command-Line Interface implementation for GopenPGP.

What is SOP?

The Stateless OpenPGP CLI, known as SOP, is an RFC specification that aims to provide a minimal API for any implementation of the OpenPGP protocol, in the form of a command-line Interface. SOP can be used to test interoperability between different implementations of OpenPGP; the OpenPGP interoperability Test Suite reports results using several SOP implementations. For more information, please refer to the specification.

Install

mkdir -p $GOPATH/src/github.com/ProtonMail/
cd $GOPATH/src/github.com/ProtonMail/
git clone git@github.com:ProtonMail/gosop.git && cd gosop
go install

Usage

You can now invoke gosop from the command line:

echo "Hello PGP" | gosop encrypt --with-password=PASSWORD_FILE

or:

echo "Hello PGP" | PWD="password" gosop encrypt --with-password="@ENV:PWD"

See commands directory for all currently supported subcommands and flags, or run gosop help.

Test your installation

Given the CLI nature of gosop, tests are run with bash scripts outside the Go testing framework.

cd $GOPATH/src/github.com/ProtonMail/gosop
make test

Contribute

If you are providing new commands or flags according to the specification, please add the appropriate tests and lint before submitting:

go install -u golang.org/x/lint/golint
go install github.com/golangci/golangci-lint/cmd/golangci-lint
make lint