AI summary
Offline Android vault for encrypting and decrypting sensitive messages, with post-quantum hybrid cryptography, QR identity exchange, contact management, and optional biometric unlock. It has no internet access; the developer notes the cryptography has not undergone external review.
Generated by AI. May contain inaccuracies.
About this app
An offline, post-quantum, minimal-permission vault for encrypting and decrypting sensitive messages on Android.
qPGP is not a messenger. It has no network code and — more importantly — no INTERNET permission, so the Linux kernel itself refuses to give it a socket. It is a sealed room: you write a message, it comes out as armored ciphertext, and you choose how that ciphertext travels (paste it into any channel, show it as a QR, print it, carry it on paper). Decryption happens the same way, in reverse.
Features Hybrid post-quantum crypto — see below. Continuous key rotation — every message advertises a fresh key; forward secrecy + post-compromise security per exchange. QR identity exchange — show/scan an animated multi-frame QR to add a contact without touching the clipboard or a network. Manual paste exchange — armored -----BEGIN QPGP …----- blocks work over any channel, with a one-tap copy button for outputs. Contact management — local alias, verification words, fingerprint, and delete-with-crypto-shred. Biometric unlock (opt-in) — open the vault with fingerprint/face instead of the passphrase. Duress PIN (opt-in) — a coercion PIN that destroys the real vault and opens a harmless dummy one, indistinguishably. Destroy vault — irreversible crypto-shredding of everything. Zero background anything — no telemetry, no analytics, no push, no services.
Platform hardening Minimal permissions. Only CAMERA (QR scanning, runtime-requested only while scanning) and USE_BIOMETRIC (opt-in unlock). No INTERNET — the kernel refuses this app a socket. No storage, no contacts, no location, nothing else. FLAG_SECURE on every screen — no screenshots, no recents thumbnail, no screen casting. allowBackup=false + full data-extraction exclusion rules — nothing reaches cloud backup or device-to-device transfer. The clipboard is never touched for secrets. Decrypted plaintext has no copy button; only public outputs (ciphertext, identity blocks) can be copied, deliberately. Edge-to-edge insets handled so content never hides under the status bar / notch. Auto-lock after 3 minutes idle; passphrase and all private keys zeroed on lock. Keyboard fields set NO_SUGGESTIONS + NO_PERSONALIZED_LEARNING to limit IME leakage (an untrusted IME is still a risk — see below). All internal activities are exported="false"; attacker-supplied contact names are sanitized (control chars stripped, length-capped).
Honest residual risks (read this) A compromised OS/kernel defeats everything. qPGP contains blast radius; it cannot make a rooted-by-malware phone safe. → Run it on GrapheneOS, ideally a dedicated device. The IME (keyboard) sees your plaintext as you type it. Use a trusted keyboard; ideally a device without third-party IMEs. Whoever can read your screen reads your messages. The analog hole is not solvable in software. Traffic analysis: ciphertext you paste into another app reveals that you communicate, when, and roughly how much (sizes are not yet padded — planned). Flash forensics may recover pre-shred vault ciphertext, but not its key (which lived only in the TEE). "Destroy" and the duress trip are crypto-shredding (keystore key deletion), the strongest primitive available on flash. Biometric & duress are tradeoffs, not magic. Biometrics can be compelled more easily than a passphrase; duress defends against on-the-spot coercion, not prior full-image capture. Both are opt-in and documented in-app. PQC is young. ML-KEM/ML-DSA could fall to new cryptanalysis; the hybrid design means security then rests on X25519/Ed25519 — solid classically, void against a future quantum computer. Formats are versioned for migration. This code has not undergone external cryptographic review. Do not bet lives on it until it has.
About this version
- Version
- 0.4.0 (5)
- Size
- 5.07 MB
- Requires Android
- 9
- Target SDK
- 28
- Architecture
- universal
- Downloads
- 9
- Updated
- Oct 24, 2026
- Package
- org.qpgp
Similar apps
Ratings & reviews
- 50
- 40
- 30
- 20
- 10