Skip to content

PGPony Android 4.0.0

Latest

Choose a tag to compare

@norsehorse-dev norsehorse-dev released this 20 Jul 02:19

PGPony 4.0.0 — The OpenKeychain Succession

The biggest release yet: post-quantum encryption and an OpenPGP provider API that lets other Android apps use PGPony as their crypto engine.

🔮 Post-quantum encryption (ML-KEM-768 + X25519)

Generate, encrypt to, and decrypt with quantum-resistant composite keys, in both wire formats in use today:

  • IETF format (algorithm 35, v6 keys) — implements draft-ietf-openpgp-pqc, verified byte-for-byte against the draft's official test vectors
  • LibrePGP / GnuPG format (algorithm 8, v5 keys) — interoperates with GnuPG 2.5+: messages encrypt and decrypt in both directions, and public keys import cleanly (ky768_cv25519)

Includes passphrase-protected composite keys (Argon2id + AEAD for v6, CFB for v5) and full cross-platform parity with PGPony for iOS — messages, public keys, and secret keys all transfer both ways.

Known limitations (ecosystem, not PGPony): GnuPG cannot yet import post-quantum private keys from any app (it stores them in a proprietary internal format), and current Sequoia (sq) preview builds implement a different draft revision and cannot read IETF-format keys yet — they fail on the draft's own sample key. Classical keys are unaffected.

🔌 OpenPGP API provider

PGPony now implements the org.openintents.openpgp.IOpenPgpService2 API — the same interface OpenKeychain provided — so it works as the crypto backend for Thunderbird for Android, K-9 Mail, and Password Store:

  • Encrypt, decrypt, sign, and verify on behalf of connected apps, including streaming support for large attachments
  • Hardware-key (NFC smartcard) signing and decryption inside provider operations
  • Security first: no default-allow — every client app is authorized on first use with a signature-pinned allow-list, revocable in Settings → Connected apps

🗝️ Keyring & privacy

  • Encrypted keyring backup and restore — one file for your whole keyring, plus import of OpenKeychain .sec.pgp backups
  • Default signing key — pin a signer so it's preselected on every Sign + Encrypt
  • Orbot / Tor integration — route keyserver and WKD traffic through SOCKS with one tap
  • Autocrypt support for peer key discovery

Under the hood

  • Bouncy Castle 1.85; hand-rolled composite packet codecs validated against GnuPG 2.5.21, the draft-ietf-openpgp-pqc vectors, and PGPony iOS
  • ~300 unit tests, including offline PQC interop fixtures and gated cross-tool harnesses
  • versionCode 400 · versionName 4.0.0 · Android 8.0+ (API 26)

No migration needed — existing keys, contacts, and settings carry over unchanged.