Skip to content

Repository Overview

The PostGuard project is split across multiple repositories in the encryption4all GitHub organization. This page gives an overview of each repository and how they fit together.

Cryptographic Libraries

These are the low-level building blocks that implement the cryptographic primitives PostGuard relies on.

RepositoryLanguageDescription
pg-curveRustFork of BLS12-381 elliptic curve with target group serialization
ibeRustIdentity-Based Encryption schemes on BLS12-381
ibsRustIdentity-Based Signature schemes

Core

The main PostGuard codebase and applications.

RepositoryLanguageDescription
postguardRustCore library, PKG server, WASM bindings, CLI, FFI bindings
postguard-websiteSvelteKitWeb frontend for encrypting and sending files
cryptifyRust + TypeScriptFile encryption and sharing service (backend + frontend)
postguard-tb-addonTypeScriptThunderbird email encryption extension
postguard-outlook-addonTypeScriptOutlook email encryption add-in

SDKs

Client libraries for integrating PostGuard into applications.

RepositoryLanguageDescription
postguard-jsTypeScriptBrowser and Node.js SDK (@e4a/pg-js)
postguard-dotnetC#.NET SDK for sending-side encryption (E4A.PostGuard)
pg-componentsSvelteReusable UI component library (@e4a/pg-components)

Examples

From the postguard-examples repository:

ProjectLanguageDescription
pg-sveltekitTypeScriptSvelteKit web app using @e4a/pg-js
pg-dotnetC#.NET console app using E4A.PostGuard

Dependency Graph

The repositories depend on each other roughly as follows:

pg-curve
  └── ibe
        └── postguard (pg-core)
              ├── pg-wasm ──────────────── postguard-js (@e4a/pg-js)
              │                              ├── postguard-website
              │                              ├── postguard-tb-addon
              │                              └── postguard-outlook-addon
              ├── pg-ffi ───────────────── postguard-dotnet
              ├── pg-pkg (PKG server)
              └── pg-cli
  └── ibs (used by pg-core for sender signatures)

pg-components ──────────── postguard-website
cryptify (backend) ─────── postguard-website (file storage)