pgpainless/ECOSYSTEM.md

3.2 KiB

Ecosystem

PGPainless consists of an ecosystem of different libraries and projects.

flowchart TB
    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

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-java - generic OpenPGP API definition
  • sop-java-picocli - Abstract CLI implementation for sop-java

WKD-Java

Implementation of the Web Key Directory.

  • wkd-java - abstract WKD discovery implementation
  • wkd-java-cli - CLI application implementing 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 https://keys.openpgp.org/.

  • vks-java - VKS client implementation

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.