https://github.com/pgpainless/sop-java
Stateless OpenPGP Protocol API and CLI for Java
https://github.com/pgpainless/sop-java
cli openpgp sop stateless-openpgp
Last synced: 5 months ago
JSON representation
Stateless OpenPGP Protocol API and CLI for Java
- Host: GitHub
- URL: https://github.com/pgpainless/sop-java
- Owner: pgpainless
- License: apache-2.0
- Created: 2022-01-11T13:38:50.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-01-12T13:04:43.000Z (5 months ago)
- Last Synced: 2026-01-12T19:25:41.264Z (5 months ago)
- Topics: cli, openpgp, sop, stateless-openpgp
- Language: Java
- Homepage:
- Size: 1.31 MB
- Stars: 16
- Watchers: 1
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# SOP for Java
[](https://ci.codeberg.org/PGPainless/sop-java)
[](https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/15/)
[](https://coveralls.io/github/pgpainless/sop-java?branch=main)
[](https://api.reuse.software/info/github.com/pgpainless/sop-java)
The [Stateless OpenPGP Protocol](https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/) specification
defines a generic stateless CLI for dealing with OpenPGP messages.
Its goal is to provide a minimal, yet powerful API for the most common OpenPGP related operations.
[](https://repology.org/project/pgpainless/versions)
[](https://search.maven.org/artifact/org.pgpainless/sop-java)
## Modules
The repository contains the following modules:
* [sop-java](/sop-java) defines a set of Java interfaces describing the Stateless OpenPGP Protocol.
* [sop-java-picocli](/sop-java-picocli) contains a wrapper application that transforms the `sop-java` API into a command line application
compatible with the SOP-CLI specification.
* [external-sop](/external-sop) contains an API implementation that can be used to forward API calls to a SOP executable,
allowing to delegate the implementation logic to an arbitrary SOP CLI implementation.
* [sop-java-testfixtures](/sop-java-testfixtures) contains a test suite that can be shared by downstream implementations
of `sop-java`.
* [sop-java-json-gson](/sop-java-json-gson) contains an optional module for parsing JSON objects from verification strings using GSON.
## Known Implementations
(Please expand!)
| Project | Description |
|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
| [pgpainless-sop](https://github.com/pgpainless/pgpainless/tree/main/pgpainless-sop) | Implementation of `sop-java` using PGPainless |
| [external-sop](https://github.com/pgpainless/sop-java/tree/main/external-sop) | Implementation of `sop-java` that allows binding to external SOP binaries such as `sqop` |
| [bcsop](https://codeberg.org/PGPainless/bc-sop) | Implementation of `sop-java` using vanilla Bouncy Castle |
### Implementations in other languages
| Project | Language |
|---------------------------------------------------|----------|
| [sop-rs](https://sequoia-pgp.gitlab.io/sop-rs/) | Rust |
| [SOP for python](https://pypi.org/project/sop/) | Python |
| [rpgpie-sop](https://crates.io/crates/rpgpie-sop) | Rust |