Direct APK
The same PGPony that ships to F-Droid (the reproducible, fully open-source build, signed with the same release key) as a plain APK you download straight from this site. No Google account, no store client, works on de-Googled devices and in regions where the stores are blocked.
Direct installs don't auto-update. Leave an email and each new release arrives with its notes, hash, and link.
# PGPony 4.7.3 A patch for keys made with Curve 448 in GnuPG or Kleopatra. 4.7.3 carries versionCode 473 and installs in place over 4.7.2. It went through a release candidate published as a GitHub pre-release with its own signed tag; docs/RC_HISTORY.md lists it. The tag v4.7.3-rc1 went onto the 4.7.2 release commit by mistake, the gate caught it, and nothing was built or published from it, so RC2 is the only build. The release APK is the RC2 file itself, with the same whole-file SHA-256. ## Ed448 keys from GnuPG and Kleopatra GnuPG 2.3 and later make Curve 448 keys as LibrePGP v5 keys, with an Ed448 primary key for signing and an X448 subkey for encryption. PGPony imported them but could not exchange messages or signatures with anyone else using one. Reported by email, and checked on RC2 with the reporter's own key against Kleopatra in both directions. Encrypting to such a key works. It used to fail with "exception constructing public key", because GnuPG stores the X448 public value without the prefix byte Bouncy Castle expects. Messages encrypted to the X448 subkey decrypt. GnuPG writes the sender's ephemeral X448 value without that prefix and keeps the secret scalar in its own byte order, and PGPony now reads both. ## Signatures from v5 keys Signatures from a v5 key verify, whether inline, detached or cleartext. For a v5 signature over a document, GnuPG hashes a few extra octets: the literal data's format, file name and date for an inline signature, and a fixed block for detached and cleartext signatures. PGPony left them out, so no v5 document signature verified before. Signatures PGPony makes with a v5 key verify in GnuPG. Bouncy Castle wrote them with a 4-octet trailer length where v5 needs 8, and without the extra document octets, so gpg reported every one as BAD and PGPony could not verify its own either. This covers signed messages and files, cleartext signing, signed and encrypted messages, and the self-signatures written when you add a user ID, change the expiry or revoke. Signing and verifying with v4 and v6 keys goes through the same Bouncy Castle code as in 4.7.2. PGPony Desktop 3.0.3 carries the same changes. ## Verify this build Whole-file SHA-256 (is this download the published file): ``` 82617be87e493fbb165864483c7834cd13a854d023b790fa124806cf034d3b84 ``` Content hash (for rebuilders; excludes signature, see docs/REPRODUCIBLE_BUILDS_PLAYBOOK.md): ``` 4637e545efcf06a240cafb0c72872f1e3b2e9f0d527f340384468928345bd890 ``` The APK is signed with the NorseHorse release key (A0CBC8F65AACE56F1C5B767753F9798E4919DE62); the detached signature is attached to this release, along with the armored release key (NorseHorse-release-key.asc) and PGPony-4.7.3-signing-keys.txt with the OpenPGP fingerprint and the APK signing certificate's SHA-256. Check the fingerprint against pgpony.app, keys.openpgp.org or keys.pgpony.app rather than trusting the copy in the release alone.
Android will warn you when installing an app from outside a store. That prompt is expected. It appears for every directly-downloaded APK, including this one, and is exactly why the verification steps below exist.
Verify before you install
Every release is PGP-signed with the NorseHorse release key and published with its SHA-256. An APK from anywhere else claiming to be PGPony should fail these checks. That is the point of them.
Signing key fingerprint (the same key on the public key page):
SHA-256 of PGPony-4.7.3.apk:
On a computer with GnuPG:
curl -O https://pgpony.app/downloads/PGPony-4.7.3.apk curl -O https://pgpony.app/downloads/PGPony-4.7.3.apk.asc curl -O https://pgpony.app/assets/pgp/norsehorse.asc gpg --import norsehorse.asc gpg --verify PGPony-4.7.3.apk.asc PGPony-4.7.3.apk shasum -a 256 PGPony-4.7.3.apk
Good output says Good signature from the fingerprint above, and the hash matches the one on this page. On the phone itself, PGPony can verify the detached signature too. See the walkthrough.
APK signing certificate SHA-256 (matches the F-Droid build; check with apksigner verify --print-certs):
Previous releases (22)
sha256 872ae77e479cab5ae33e6b4dd2f2676ba03e2a3cec266f8d84a0bd4ee3319508
sha256 99d36b8c6aa7ac6bbfbea0a3f03bd3ba242fa28b8e3ddaa160aba6b721d1dc45
sha256 a78977fe4b6c957cc7599389766a5df664f92a2e09133a171a1e3c9ad32ef059
sha256 3ae551b26577492d4b60fa8ded8d021d01c16957d19f2854f0790e500cd09547
sha256 3af5ca347c5e53331ab84793bba98140673f00a7f1f772cb365c8001fbeaf208
sha256 856ab53741eac9154474a5e4ea8c728b82d4f4652d468f4ce5a083fc7b3cc743
sha256 681d13767d4ece6a79a5f2da095c2a3a1f5495ea0d8feb91737c6d89693ecbda
sha256 0995431de506531682a17e0e3e0c06cb5dc9c90b1656b4f946c3112d71675dbf
sha256 85381b486459b97db61898759e1e9e9b9e6f3e6faf7d2d8bb040480762db16a1
sha256 0dd192d4a8768da2cd84df8b61a408f9e3a090252bdcf60b781f40b39235b019
sha256 166df6e0cc5840b98cbdcea2b55343241a357ea86a47ca7a3159b4b42ecfb3e4
sha256 9842e68809d115bf15c7f1c9af67a0cdc941399c15ebc646175535fedbb3766e
sha256 55075c11f90833dae75b66162c0adcd636eec223a8fc98d2c22408209335e257
sha256 3c10b9ea225a748d87dacbf5a233e20bdf456b4cfc2313ba700e6e06e10ae411
sha256 f09e1577d5c20b0514980063d445d8d184ce26980dd59a3e60bf0647453175e5
sha256 6b534dc4f96fd014d8475e3a05543f30aca07c14358537494a2fc07dd73dd61f
sha256 59a0aa492982072d81c2ccd706d5d7096758c999a7ad065354e191b126563e2a
sha256 15e9d5052dfcbc8fd5ee6a59783f2f3e4b2c730822ac9553bdb596917a214bd3
sha256 2be8891833adba5d3698c3eab64607aa91cbcb43ed2aad3d1277717adaa66831
sha256 528f9b6a8b68f44651f811a3d8cfae8ffedbbec03f3c568e6ac84116db890b62
sha256 2a6d2d64b9fc191145ff8fcf0d489dfc11bac82768eb1823b237ca8724f885df
sha256 482edf9df3802740795de4b3b62a7cbab3bb8c74b2b0a996e1bef7c26a2042e6
Before you switch install sources
- Same key as F-Droid. This APK is signed with the same release key as the F-Droid build, so you can move between F-Droid and the direct APK freely. Each will update over the other without uninstalling.
- Different key than Google Play. Play re-signs apps with its own key, so Android will refuse to install this APK over a Play install (and vice versa). Switching requires an uninstall first.
- No auto-updates. A directly-installed APK does not update itself. Watch the changelog for new releases, or install through F-Droid if you want automatic updates with the same signing key.
- Reproducible build. The Android app is fully open source (PGPonyAndroid on GitHub) and builds reproducibly: you can compile it yourself and compare against this artifact.
http://pgponyisur7gxcrfw5ofpjr2sepqul3zgbs66rrd3ughk5qvi4a3t5id.onion/apk
See mirrors for the verified onion and I2P addresses.