Who holds the keys
Your phone creates and uses the vault’s keys. Alvento does not receive your vault contents, passphrase, recovery key or decryption keys. There is no account reset or provider-held copy of your vault.
“Your keys” here describes key custody, not a claim to hide every trace of a file. While unlocked, Android and the app process readable data.
How encryption works
Argon2id derives a wrapping key from your passphrase, using a random salt and 64 MiB of memory. It protects a random 256-bit vault master key. Each item has a separate random key wrapped by that master key.
Contents use Tink’s AES-GCM-HKDF streaming encryption with AES-256-GCM. The index and key wrappers use authenticated AES-GCM; thumbnails are encrypted using keys derived from item keys. Authenticated encryption detects tampering and truncation.
Changing a passphrase rewraps the same vault key. It does not change old backups or stop someone with an old secret and old vault files deriving that key from those copies.
On-device storage and network access
The public 0.5.3 app declares no INTERNET permission, has no account or ads, and uses no developer server. It declares Google Play’s billing permission so you can buy the optional unlock, and Google Play handles the payment. Android cloud backup and device-transfer backup are disabled for its data.
A provider you choose in Android’s document picker can upload a backup under its own terms. A readable export is outside the vault’s protection. Opening a website uses your browser’s network access.
Buying or restoring the unlock needs Google Play and an internet connection. Your vault itself works offline.
Unlock methods
Your passphrase and recovery key remain the root secrets. Optional biometric unlock uses Android’s strong-biometric authentication and a Keystore-wrapped key. Phone screen-lock and in-app pattern unlock are also available on supported devices; release builds require hardware protection for those methods.
Anyone who knows your phone’s PIN, pattern or password can open NullKey if phone screen-lock unlock is enabled. An in-app pattern is weaker than a passphrase or biometric authentication. Five wrong patterns disable that method; your passphrase still works.
Screen-lock and pattern unlock pause after an app update or seven days without typing the passphrase. Restoring a backup turns all optional unlock methods off until you enable them again.
Recovery and backups
A recovery key opens existing encrypted data. A backup preserves a separate copy. After losing a phone, you need both the backup and a passphrase or recovery key valid for it.
Backup verification rereads the archive, authenticates the index, every encrypted item segment and every thumbnail, and matches the current vault snapshot. Restoring also authenticates the contents before installing them. A restore requires an empty vault and does not overwrite an existing one.
Practise with sample data and check restored contents. Keep the secret for each backup separately: changing today’s credentials does not update older backups. Alvento cannot recreate missing files or recover lost secrets.
Originals and device limits
Imports keep originals by default. Optional original removal verifies eligible local copies first. Supported photos and videos require Android’s confirmation to move to trash; supported documents can be deleted permanently. Cloud and other-app copies can remain, and sync can propagate deletions.
A compromised phone, keyboard or accessibility service can expose information you type or display. File counts, approximate sizes, thumbnail presence and filesystem times are not hidden. Replacing files with an older copy of the same vault is not detected.
Release builds block ordinary screenshots; debug builds permit captures for interface review. Deleting files is not guaranteed secure erasure. Readable exports, clipboard history and other copies need separate attention.
What has been checked
The public listing is for NullKey 0.5.3. The release evidence for the earlier 0.4.2 build records 124 JVM tests and a physical Android phone check for the updated icon and back-exit behaviour. These checks are not proof of compatibility with every phone.
This page describes documented app behaviour; it does not claim that every device was tested.