Dev Log ยท Vault Pure, Release, Encryption, Performance
Vault Pure 24: unlocking five times faster, and what the number 600,000 had to do with it
12 October 2026:
After version 23 a user in Japan reported that the app had become sluggish "since a recent update", mostly when entering the password for the first time and when swiping through photos. Part of that was our own doing.
The cause: a number nobody measured
In version 20 we raised the round count of the password derivation (PBKDF2) from 210,000 to 600,000. The figure comes from OWASP's guidance, but that guidance is for servers. The code even carried a note to measure on a weak device before release. That did not happen.
Measured on a Moto E20 (a deliberately weak phone, Firebase Test Lab): 8.1 seconds for one derivation at 600,000 rounds. It hit newly created vaults and old vaults that were rewritten to the new layout on their first unlock.
What we changed
- A faster derivation, the same result: Our own PBKDF2/SHA-256 replaces the provider call. On the same phone it takes 1.5 seconds instead of 8.1, byte for byte identical to the previous output (proven by unit and device tests, including umlauts and emoji). A first attempt through the native HMAC interface was not faster (9.6 seconds): the time went into the call per round, not into SHA-256.
- The round count for new vaults is back at 210,000. Vaults from builds 20 to 23 keep the 600,000 they were written with, but also run much faster with the new derivation.
- Honestly: 210,000 rounds mean that someone who gets hold of the vault file can try passwords about 2.9 times faster than at 600,000. A long password protects better than any round count.
- Calmer animations: The tree on the login screen and the branch on the overview were recalculated in full on every frame, with hundreds of leaves. Now they are drawn once in the background and only sway as a whole. They stand still in battery saver mode. On the side: the time base counted seconds since boot, and on phones with several days of uptime the movement visibly stuttered.
- Photo decryption: A read buffer in front of the decryption. On the emulator that is worth about 15 to 25 percent.
How we checked it
Unit tests, the complete instrumented suite on the Moto E20 and on a virtual device, and the tests once more against a build shrunk by R8, since R8 had already changed data once in version 19. Unlocking to the overview takes 2.2 seconds on the Moto E20 afterwards.
What we have not proven
We did not measure swiping through photos on a real device. The read buffer is plausible, but we do not know whether swiping feels better. If it stays sluggish, that is the next item.
Warm regards from the workshopDigitale Manufaktur Rudolstadt