Keyring for webOS
Easy password management on your phone
Keyring for webOS stores your account information securely, so you don't have to rely on your memory or little scraps of paper. Sensitive data are encrypted using the Blowfish algorithm, and protected by a master password.
Keyring supports import/export from/to a URL, a file, or the clipboard. The simplest method is to export to the clipboard, paste the output (which is an encrypted blob) into an email, and send it to yourself. If you want to backup to a URL, you'll need a service on the other end that supports it. Eventually I'd like to build something on Google AppEngine, but for now, you can copy this incredibly lame python CGI program, and stick it on a server you own.
Converting from other formats
If you've been using Keyring for PalmOS, CodeWallet, eWallet, or any system that can export to CSV, you can convert your data to Keyring format with a handy Java utility. The PalmOS Keyring import code was written by the GnuKeyring folks, and the importers for CodeWallet, eWallet & CSV were contributed by Matt Williams (Grabber5.0).
- Install Java on your computer (it's probably already there).
- Download the converter.
- Get hold of your old data:
- GnuKeyring: Back up your PalmOS device, or otherwise get
access to the Keyring for PalmOS database. It's generally
- CodeWallet: Go to "Data Export" and save as "Text file". Attachments can not be converted at this time.
- eWallet: Export data as a .txt file.
- CSV: Allowed column headers are: title or name, category, username or account, password, note, url, created, changed, viewed. Any other labels will be ignored. The title, username, and password fields are mandatory, others are optional. The converter supports both Excel and standard CSV formats.
- GnuKeyring: Back up your PalmOS device, or otherwise get access to the Keyring for PalmOS database. It's generally named
- Run the converter:
java -jar keyring-converter.jar /path/to/old-data.ext /path/to/output-file.json old-data-typeWhere "old-data-type" is one of "keyring", "codewallet", "ewallet" or "csv".
- Enter passwords as prompted (pdb import requires the password for the GnuKeyring database).
- Get the new file onto your webOS phone -- it's probably easiest to load it onto the media partition via USB.
- Import the converted file.
Due to US encryption export rules, you may need to install the "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy" files from Sun. If you need them, the converter will throw an error, so it's probably simpler just to forge ahead, and go through the trouble only if necessary. Get them from http://java.sun.com/javase/downloads/index.jsp; download the zip file, and follow the instructions.
- Load and save Keyring databases via the file system or URL
- View, edit, add and delete items
- Import from the following formats:
- Export to CSV (round trip from CSV => Keyring => CSV with no differences)
- Automatic lockout after 60s idle time.
Running from the command line (on OSX and Linux):
java -jar keyring-ui.jar [json-db-file] To start up the full-featured GUI, optionally loading the given db. OR java -jar keyring-ui.jar input-file json-output-file [keyring|csv|ewallet|codewallet] To convert input-file from the given format and write to json-output-file.
In the second mode, it works just like the old converter; however, it's a lot easier to do conversion in GUI mode. See the instructions for the converter for details on format conversion and export encryption stuff.
DANGER: This is alpha code. It's got bugs. It's got foibles. It wants to eat your data. If you trust it with your important data, you deserve the suffering that you get, and I'll laugh at you.
Discussion and Bug Tracking
If you want to talk about Keyring, ask questions, or report a bug, there are a few options:
- There's a forum hosted by the fine folks at pre|central.net. I monitor it closely, and there are some helpful folks there who often provide aid and comfort.
- You can email me directly at firstname.lastname@example.org.
- You can file bugs and feature requests via the github "issues" system. This requires a (free) github login, but don't be shy, I'm always interested in hearing about problems. Please check the existing bugs first, in case you're not the first to encounter it.
Keyring is part of the wide world of Open Source, and I'm happy to work with other people to make it a better package. If you're interested in helping, please contact me.
I'm currently looking for:
- Someone with Java Swing skills to help build out a desktop utility to read (and possibly write) Keyring data.
- Translators for French and Spanish (other languages also welcome). Two people have volunteered to translate Keyring into German, so I'll soon have the necessary I18N framework in place, and other languages will be fairly easy.
- UI, graphics & design help.
Contemplated Future Features
- Separate View and Edit scenes, allowing better information density, tap-to-launch for the URL and easy copy-to-clipboard for name or password.
- An option to pick a color for each category, which will be displayed in a subtle manner.
- A periodic export-to-url system, possibly backed by an optional Google AppEngine service.
- A Java utility to convert from CSV to Keyring.
- A better way to access Keyring data on your computer, via a Java utility.
- A last-modified date for the entire db.
- Optional autocomplete for usernames.
- Ability to use the password generator on its own.
- Option to fetch & display the favicon of the URL of an item.
- Version 0.3.0 - 2010-03-15
- Creating a new item no longer requires explicit save, so you won't lose data if the app times out before you save.
- Tapping in the title field while editing no longer creates spurious records.
- Fixed bug in duplicate item title detection.
- Fixed a bug where after importing a large number of records, not all of them would be immediately visible in the scrolling list.
- Pretty new icon courtesy of Alberto Dominguez (chav1to).
- Changed app startup mechanism to reduce resource consumption.
- Fixed item scene formatting problems under webOS 1.4.
- Version 0.2.0 - 2010-01-10
- Data is now stored in the database as a single encrypted blob, rather than the former mix of encrypted and cleartext structured data. A salt is prepended to the data prior to encryption, to work around a deficiency in the Palm Mojo.Model.encrypt API.
- Keyring always prompts for a password at launch, and the "locked at launch" preference has been removed.
- A new "On Lockout" option, "Close App" is available for the paranoid. It will cause Keyring to close itself whenever there is a timeout of the app is deactivated/minimized.
- Cosmetic changes to the "Keyring locked" scene.
- The converter has been updated to add salt when encrypting.
- Version 0.1.3 - 2010-01-03
- Work around a webOS 1.3.5 bug in JSON.parse that was breaking categories on import.
- Version 0.1.2 - 2010-01-02
- Import now cleans data before attempting to parse, making import-from-clipboard more robust.
- Version 0.1.1 - 2010-01-01
- Fixed bugs in clipboard import, category addition, first item deletion & item-list sorting.
- Removed upgrade support for original db format in versions 0.0.1 & 0.0.2.
- Version 0.1.0 - 2009-12-20
- Added item categories, filtering by category and category management.
- Display of created/changed/viewed dates now on one line.
- Added prefs option (default true) to hide empty fields in item view. This makes it practical to use Keyring as a secure memo system.
- Typedown filtering is now case-insensitive.
- Built a Java utility to convert from PalmOS Keyring to Keyring for webOS.
- Status line at the top of the item list shows sorting and category.
- Added change password function.
- Verifies password before changing sort order.
- Importer is more robust, and will handle older data formats.
- A testing script (not yet automated, alas).
- Version 0.0.6 - 2009-10-05
- Fix dumb bug in display of master password dialog.
- Version 0.0.5 - 2009-10-04
- Added an "initializing" scene to fix bug where the "create master password" dialog would show up at launch (race condition with depot loading).
- Option to ask for a password at launch.
- Added more options for lockout behavior.
- Tidied up import & export code.
- Added "Change Log" section to Help scene.
- Version 0.0.4 - 2009-09-29
- Fixed a bug in the db upgrader
- Fixed a few import/export bugs
- Added error display to the help scene for user debugging
- Fixed an edge case bug where an item might not be hidden after a timeout.
- Version 0.0.3 - 2009-09-27
- Added import/export
- Fixed numerous bugs
- Look and feel cleanup
- Changed internal db format, and added db upgrade logic
- Version 0.0.2 - 2009-09-08
- Generated passwords didn't get put into the db properly (doh!).
- Changed values in focused fields were lost on timeout-initiated scene pop.
List of keys