KeePass to Keyring converter

KeePass and Keyring are free/open-source password managers which helps you to manage your passwords in a secure way. KeePass runs on Windows and Keyring on PalmOs. The KeyPasss to Keyring converter converts data from KeePass to Keyring so that you can view your accounts on your Palm.

The ultimate goal of this project is to create a conduit that syncs passwords two ways. Keyring is made for PalmOs so it is limited on purpose. Because of that, a 100% synchonisation isn't possible. These are the most important differences:

  • Keyring has less fields in the database
    Keyring lacks support for: url, expire date/time, attachments
  • Keyring supports only 16 categories
    KeePass has a nice hierarchial way of ordering accounts. Keyring only supports 16 categories with names up to 16 chars.
  • The title names and categories are not encrypted in Keyring
    They will be visible on your Palm (username, password, note and last edited date are encrypted using Triple DES).

Until the program is realeased, this page will be a notepad of my work. I'll update it with my findings.

Keypass to keyring screenshot

External references

I use these references for my program. They might help you in your own projects.

  • KeePass
    The main page of the KeePass application. The author was kind to provide a Keepass API dll for accessing the data.
  • Keyring
    The main page of the Keyring appliction. The source contains some info about the encryption method.
  • KeyringEditor
    KeyringEditor is a Java program that can open and edit the Keyring palm database (pdb). I know enough of Java so that i can read the code. It helped me finding out how encryption works in Keyring.

External Delphi components

These are some Delphi components i use:

  • Delphi Cryptography Package
    DCPcrypt is an open source library of cryptographic components. It is used to decrypt and encrypt the Keyring data.
  • Delphi conduit library
    The Delphi Conduit Class Library is a support library for Delphi 4 - 7 to enable the easy development of Palm Conduit DLLs. It provides a framework for the quick creation of the DLLs, and a set of components that make manipulating remote Palm tables practically identical to using a standard TTable component.
  • Random number generator
    It's used for creating the random seed in Keyring.

Statuslog

11-1-2006: Added cleaning up password, cipher etc. after running the conversion.

9-1-2006: The converter is working. It can read your KeePass database and convert it to a Keyring database. Still need some work to do (see todo list).

8-1-2006: Reading the keyring database works. Saving only partially

7-1-2006: Got the KeePass API DLL working in Delphi. The Dr Bob header converter helped me with that. Not all calls are converted. Only the ones that i need for the moment.

5-6-2010: Project abandoned. I don't have a Palm anymore. I have a nice N900 now. New project for converting the Keepass database to pySafe database can be found here.

Files to download

This is one early release (0.2) but it works. You can find the binaries* here (Download the complete zip or the files individual). The (delphi) source can be found here.

*Note: You need to have the palm desktop installed to use the program. If you don't have it installed, you'll get an error that it can't load userdata.dll and sync20.dll.