I’ve decided to ditch revelation. I’ve used it for several years to manage my passwords but development seems to have stalled. The author’s website is currently inaccessible. So it is over for me. Read on for the method I used to convert my database of passwords.
I’ve switched to KeePassX because it seems better supported and has the features I want. Wzzrd produced a script to perform the conversion. His script is in Ruby, a language I’m not particularly interested in. Moreover, his script did not quite do what I wanted so I converted his script to python and adapted it to my needs. I’m attaching the script to this post: revelation-to-keepassx Anybody wanting to use this script should be warned that it is throwaway code and that I implemented just as much as I needed.
The way I converted my data was:
1. Export the data from revelation into an unencrypted XML file. (It is advisable to export it to a file in volatile memory like /dev/shm. This minimizes the risk of leaving unencrypted data in free blocks after the conversion is done.)
2. I ran my script without options:
$ revelation-to-keepassx /dev/shm/revelation-export.xml > /dev/shm/keepassx.xml
(Note that I save the result in /dev/shm again.)
This resulted in the output:
revelation-to-keepassx: ERROR: stripped following ids: generic-keyfile, generic-location, generic-certificate, creditcard-cardtype
I checked my input file to verify that I would not lose anything important if <field> elements with the above ids were to be stripped from the output instead of converted.
3. I reran the script as above but with the “-i” option which tells the script to ignore the stripped ids.
4. I imported the resulting file into KeePassX.
I’ve inspected the final database and found no evident problem. To be on the safe side I used gpg to encrypt the XML file I exported from revelation so that even if I eventually run into trouble and revelation is not easily installable, I can visually inspect the XML file.