3.7 KiB
The PGPainless Ecosystem
PGPainless consists of an ecosystem of different libraries and projects.
The diagram below shows, how the different projects relate to one another.
flowchart LR
subgraph SOP-JAVA
sop-java-picocli-->sop-java
end
subgraph PGPAINLESS
pgpainless-sop-->pgpainless-core
pgpainless-sop-->sop-java
pgpainless-cli-->pgpainless-sop
pgpainless-cli-->sop-java-picocli
end
subgraph WKD-JAVA
wkd-java-cli-->wkd-java
wkd-test-suite-->wkd-java
wkd-test-suite-->pgpainless-core
end
subgraph CERT-D-JAVA
pgp-cert-d-java-->pgp-certificate-store
pgp-cert-d-java-jdbc-sqlite-lookup-->pgp-cert-d-java
end
subgraph CERT-D-PGPAINLESS
pgpainless-cert-d-->pgpainless-core
pgpainless-cert-d-->pgp-cert-d-java
pgpainless-cert-d-cli-->pgpainless-cert-d
pgpainless-cert-d-cli-->pgp-cert-d-java-jdbc-sqlite-lookup
end
subgraph VKS-JAVA
vks-java-cli-->vks-java
end
subgraph PGPEASY
pgpeasy-->pgpainless-cli
pgpeasy-->wkd-java-cli
pgpeasy-->vks-java-cli
pgpeasy-->pgpainless-cert-d-cli
end
wkd-java-cli-->pgpainless-cert-d
wkd-java-->pgp-certificate-store
Libraries and Tools
-
{{ 'PGPainless'.format(repo_host) }}
The main repository contains the following components:pgpainless-core
- core implementation - powerful, yet easy to use OpenPGP APIpgpainless-sop
- super simple OpenPGP implementation. Drop-in forsop-java
pgpainless-cli
- SOP CLI implementation using PGPainless
-
{{ 'SOP-Java'.format(repo_host) }}
An API definition and CLI implementation of the Stateless OpenPGP Protocol (SOP). Consumers of the SOP API can simply depend onsop-java
and then switch out the backend as they wish. Read more about the SOP protocol here.sop-java
- generic OpenPGP API definitionsop-java-picocli
- CLI frontend forsop-java
-
{{ 'WKD-Java'.format(repo_host) }}
Implementation of the Web Key Directory.wkd-java
- generic WKD discovery implementationwkd-java-cli
- CLI frontend for WKD discovery using PGPainlesswkd-test-suite
- Generator for test vectors for testing WKD implementations
-
{{ 'VKS-Java'.format(repo_host) }}
Client-side API for communicating with Verifying Key Servers, such as https://keys.openpgp.org/.vks-java
- VKS client implementationvks-java-cli
- CLI frontend forvks-java
-
{{ 'Cert-D-Java'.format(repo_host) }}
Implementations of the Shared OpenPGP Certificate Directory specification.pgp-certificate-store
- abstract definitions of OpenPGP certificate storespgp-cert-d-java
- implementation ofpgp-certificate-store
following the PGP-CERT-D specpgp-cert-d-java-jdbc-sqlite-lookup
- subkey lookup using sqlite database
-
{{ 'Cert-D-PGPainless'.format(repo_host) }}
Implementation of the Shared OpenPGP Certificate Directory specification using PGPainless.pgpainless-cert-d
- PGPainless-based implementation ofpgp-cert-d-java
pgpainless-cert-d-cli
- CLI frontend forpgpainless-cert-d
-
{{ 'PGPeasy'.format(repo_host) }}
Prototypical, comprehensive OpenPGP CLI applicationpgpeasy
- CLI application