2022-01-15 14:45:13 +01:00
<!--
SPDX-FileCopyrightText: 2021 Paul Schaub < vanitasvitae @ fsfe . org >
SPDX-License-Identifier: Apache-2.0
-->
2022-01-11 13:46:05 +01:00
# SOP for Java
2022-08-01 17:09:39 +02:00
[![status-badge ](https://ci.codeberg.org/api/badges/PGPainless/sop-java/status.svg )](https://ci.codeberg.org/PGPainless/sop-java)
2023-04-14 14:21:52 +02:00
[![Spec Revision: 5 ](https://img.shields.io/badge/Spec%20Revision-5-blue )](https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/05/)
2022-08-01 17:09:39 +02:00
[![Coverage Status ](https://coveralls.io/repos/github/pgpainless/sop-java/badge.svg?branch=main )](https://coveralls.io/github/pgpainless/sop-java?branch=main)
2022-01-15 14:55:02 +01:00
[![REUSE status ](https://api.reuse.software/badge/github.com/pgpainless/sop-java )](https://api.reuse.software/info/github.com/pgpainless/sop-java)
2022-05-07 22:17:41 +02:00
The [Stateless OpenPGP Protocol ](https://datatracker.ietf.org/doc/draft-dkg-openpgp-stateless-cli/ ) specification
2022-01-11 13:46:05 +01:00
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.
2022-11-07 17:26:05 +01:00
[![Packaging status ](https://repology.org/badge/vertical-allrepos/sop-java.svg )](https://repology.org/project/pgpainless/versions)
[![Maven Central ](https://badgen.net/maven/v/maven-central/org.pgpainless/sop-java )](https://search.maven.org/artifact/org.pgpainless/sop-java)
2022-04-11 14:50:28 +02:00
## Modules
2022-01-11 13:46:05 +01:00
2022-04-11 14:50:28 +02:00
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
2022-01-11 13:46:05 +01:00
compatible with the SOP-CLI specification.
## Known Implementations
(Please expand!)
2023-01-12 15:37:36 +01:00
| 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` |
2022-01-11 13:46:05 +01:00
### Implementations in other languages
| Project | Language |
|-------------------------------------------------|----------|
| [sop-rs ](https://sequoia-pgp.gitlab.io/sop-rs/ ) | Rust |
2022-05-07 22:17:41 +02:00
| [SOP for python ](https://pypi.org/project/sop/ ) | Python |