For a long time, we have been using the excellent Password Safe (referred forward as PS) program for storing the countless passwords necessary in today's life. But a lot of times, we are not at the computer where our PS database is and we really need that password. Using the excellent work of Svante Seleborg (who made the PS Reader library for Windows XP/Vista) and Alphons (who modified it in order to work on Windows Mobile), I created a GUI around that library, which I also optimized a little for fast search.
The program requires .NET Compact Framework 3.5 and of course Windows Mobile (2003, 5, 6). The program is at its very beginning: the PS archive must be named exactly
pass.psafe3 and be placed in My Documents in the root directory of the device (not in Internal Storage, SDMMC, Storage Card, etc.). It is also possible to sync this file very easily with the file on the computer.
Using the Code
Svante made the original Password Safe Reader library, so most of the hard work is described in his article. Alphons modified the library in order to work on the Windows Mobile OS. I made the GUI which works like this: after program load, click Open File and the program will fill a
DataGrid bound using Binding Source from ADO.NET. As soon as you type anything in the textbox, the
DataGrid will be filtered real-time, and with pretty good performance.
After that, you can click on individual rows to display on the upper part the User and Password. The reason for this is because sometimes the passwords can be pretty long and hard to read on the
Also, the program stores in registry the password for the file in order to avoid asking for it everytime. If you feel your device can get into the wrong hands, you can use Reset password option from the Password menu.
The code is very alpha at best by my standards, but works ok if the necessary conditions are met. Take into consideration that in the GUI
catch blocks are almost non existent.
Points of Interest
- There is really limited real estate screen on a Windows Mobile App! You really need to be creative and be very efficient in order to have a useful application which won't require to pull out the stylus.
- The MSDN Library has incomplete information about .NET Compact Framework. When you want help for the
DataGrid you get the information for the Windows version and a lot of the examples there don't apply. In the limited time (3 hours) I made the GUI, I didn't find an autoresize method for columns and a Rows collection of
- The program can only read PS files. First of all, this is because I don't have the time to make a Writer Library. Common sense tells me that this can be made easily now. Be aware of sync problems if anyone thinks of starting work on this - what will happen when you have a new version on the device but ActiveSync is setup to replace the version on Device? Second, I don't think there is much use for this. Most of the time you make accounts on the PC/Laptop, not on the Device and you use the official PS program.