https://github.com/protonmail/gosop
Stateless CLI for GopenPGP
https://github.com/protonmail/gosop
cryptography openpgp
Last synced: 3 months ago
JSON representation
Stateless CLI for GopenPGP
- Host: GitHub
- URL: https://github.com/protonmail/gosop
- Owner: ProtonMail
- License: mit
- Created: 2020-04-27T06:28:06.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2024-11-28T16:54:20.000Z (over 1 year ago)
- Last Synced: 2025-03-24T18:13:06.963Z (about 1 year ago)
- Topics: cryptography, openpgp
- Language: Go
- Homepage:
- Size: 123 KB
- Stars: 37
- Watchers: 7
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gosop
Stateless Command-Line Interface implementation for
[GopenPGP](https://gopenpgp.org).
### What is SOP?
The [Stateless OpenPGP
CLI](https://tools.ietf.org/html/draft-dkg-openpgp-stateless-cli-01), 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](https://tests.sequoia-pgp.org/) reports results using several SOP
implementations. For more information, please refer to the
[specification](https://tools.ietf.org/html/draft-dkg-openpgp-stateless-cli-01).
### 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](https://github.com/ProtonMail/gosop/tree/master/cmd)
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](https://tools.ietf.org/html/draft-dkg-openpgp-stateless-cli-01),
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
```