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.
I'm Alphons van der Heijden, living in Lelystad, Netherlands, Europa, Earth. And currently I'm retiring from hard working ( ;- ), owning my own company. Because I'm full of energy, and a little to young to relax ...., I don't sit down, but create and recreate software solutions, that I like. Reinventing the wheel is my second nature. My interest is in the area of Internet technologies, .NET etc. I was there in 1992 when Mosaic came out, and from that point, my life changed dramatically, and so did the world, in fact. (Y)
I've been working with all aspects of software development since 1979 - from compiler construction to management. Currently I'm an independent consultant mostly specializing in computer security. Please see my homepage for contact details.
I speak C like a native, and have a pretty good grasp of C++. The most recent five years C# has been the main development language. Traditionally Unix has been the dominating environment, but currently the scales have tipped over to Windows, due to market demands but I'm equally at home developing in both environments.
When I'm not coding I'm usually sitting on one of my 4 bikes, indoors or outdoors, on the road or in the woods.
I am currently employed as a C# / MS SQL developer for a Medical Software company working on a large enterprise system.
I have used Delphi and MSM MUMPS in previous roles and love both languages.
I'm an avid Windows Mobile fan and moderator on http://xda-developers.com. I code in C#, and C++ for WM as well as cooking custom ROMs and learning to disasm the inners of my device.
I have some intensive experience with C#, ASP.NET and Delphi. Also I like to write API's, which I realized when I made a SmartCard library.