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.


Libraries and Tools

  • PGPainless

    The main repository contains the following components:

    • pgpainless-core - core implementation - powerful, yet easy to use OpenPGP API

    • pgpainless-sop - super simple OpenPGP implementation. Drop-in for sop-java

    • pgpainless-cli - SOP CLI implementation using PGPainless

  • SOP-Java

    An API definition and CLI implementation of the Stateless OpenPGP Protocol (SOP). Consumers of the SOP API can simply depend on sop-java and then switch out the backend as they wish. Read more about the SOP protocol here.

    • sop-java - generic OpenPGP API definition

    • sop-java-picocli - CLI frontend for sop-java

  • WKD-Java

    Implementation of the Web Key Directory.

    • wkd-java - generic WKD discovery implementation

    • wkd-java-cli - CLI frontend for WKD discovery using PGPainless

    • wkd-test-suite - Generator for test vectors for testing WKD implementations

  • VKS-Java

    Client-side API for communicating with Verifying Key Servers, such as

    • vks-java - VKS client implementation

    • vks-java-cli - CLI frontend for vks-java

  • Cert-D-Java

    Implementations of the Shared OpenPGP Certificate Directory specification.

    • pgp-certificate-store - abstract definitions of OpenPGP certificate stores

    • pgp-cert-d-java - implementation of pgp-certificate-store following the PGP-CERT-D spec

    • pgp-cert-d-java-jdbc-sqlite-lookup - subkey lookup using sqlite database

  • Cert-D-PGPainless

    Implementation of the Shared OpenPGP Certificate Directory specification using PGPainless.

    • pgpainless-cert-d - PGPainless-based implementation of pgp-cert-d-java

    • pgpainless-cert-d-cli - CLI frontend for pgpainless-cert-d

  • PGPainless-WOT

    Implementation of the OpenPGP Web of Trust specification using PGPainless.

    • pgpainless-wot - Parse OpenPGP keyrings into a generic Network object

    • wot-dijkstra - Perform queries to find paths inside a Network object

    • pgpainless-wot-cli - CLI frontend for pgpainless-wot and wot-dijkstra

    • wot-test-suite - Test vectors ported from Sequoia-PGPs WoT implementation

  • PGPeasy

    Prototypical, comprehensive OpenPGP CLI application

    • pgpeasy - CLI application