Thanks Mike, this is right, and sharper than what I wrote. Rotating isn't the erase. Destroying the old key is, and Foxstash can't do that step because it never holds the key. I checked the code this morning, and the honest version is plainer still: Foxstash 0.9 has no rotation path yet. A store opens with one key, and each file's header records its role, store and generation but not which key encrypted it. So today an app can't rotate in place. It would have to rebuild into a new store under a new key and then destroy the old one. Your ordering is the one I'd want once rotation exists (purge, rotate, compact until the fallback checkpoint is under the new key, then destroy the old one), and having the purge report show which key each file uses is how the app would know that last step is safe. I've opened an issue for it, crediting you (https://github.com/Narcoleptic-Fox/foxstash/issues/71), and corrected the paragraph in the post so it doesn't promise a step the library can't do yet.