All posts by Luckyrat

KeeFox 0.6 released

KeeFox 0.6 is ready. I’d still consider it alpha quality but would be interested to hear any success (or failure) stories so that a relatively stable and complete beta version can be released (in maybe a few months). The install process should be quick enough for you to have a quick play with it but (of course) make sure you have a backup of your KeePass database before you begin.

If you have installed previous versions of the KeeFox XPI or the KeeICE KeePass plugin please remove them first and make sure you are running KeePass 2.07 (although if you do not have KeePass installed yet, KeeFox will do that for you).

I do not advise trusting this software with your important passwords. I know of no way that data could be lost or exposed but it is simply not mature enough for me to guarantee that there will be no problems. So keep backups of everything and don’t let anything too sensitive near it just in case.

Download the 0.6 XPI

A list of recent improvements is available in the full release notes.

For the next version I hope to have 95% of the essential functionality complete so that KeeFox can start being used every day. So most (if not all) of these features should be complete in 0.7:

  • Multiple password fields in one form (e.g. password and PIN)
  • Multiple page login procedures
  • Custom form field support, e.g. “use HTTPS login” checkbox
  • Add passwords to a specific group
  • HTTP authentication dialog box support

Visual Studio 2008 installer project tips

No doubt there are entire teams of people dedicated to understanding the Microsoft Windows installer system (.msi files) but for me it is just a means to an end. I didn’t find it a particularly accessible technology so from the point of view of someone interested in deploying the output from a Visual Studio 2008 project onto end user systems, here are a couple of the gotchas I came across.

First, there is a registry key on the end user system which should record the location into which the installer deployed the output of your project (maybe the end user choose this through an install wizard). I mistakenly assumed that Microsoft’s Visual Studio installer project would automatically handle the basics like this, but no. The answer was in this recent blog post: Using a Post-Build Script to set the InstallLocation property in VS Setup Projects – the author includes a handy script which you can just drop into your project to fix this problem.

The second problem was an error message I received when installing my project:

Error 1001. Unable to get installer types in the […] assembly. Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Although missing DLL dependencies and pre-requisites are already published known causes for this problem, that didn’t quite reveal the true cause in my case. The reason I experienced this error is because:

1) I had set up a custom install action in my main project assembly (to add the install folder to the system path)
2) I had redirected the primary project output to an alternative folder (rather than the default “Application folder”)

So the quick fix was to add a second project output to the installer so it now puts the DLL into my alternative folder as well as the main output folder (along with all its other DLL dependencies). Hopefully there is a neater way to do this which doesn’t clutter the end user’s system with two copies of the same file but I’m in no rush to find it because I just want to get on with some real development work rather than trying to understand VS2008 installer project limitations.

KeeFox 0.5 released

KeeFox 0.5 is ready. It is still not a finished product but in some cases you will be able to install the Firefox add-on and successfully step through the setup process. If you do that, you should see the basic functionality working fairly well (saving and loading passwords via Firefox).

I would not (and indeed do not) yet trust this software with my important passwords. I know of no way that data could be lost or exposed but it is simply not mature enough for me to guarantee that there will be no problems. So keep backups of everything and don’t let anything too sensitive near it just in case.

Go to the KeeFox website to find a link to the firefox addon and the full details of this release.

The source code is in the subversion (SVN) code repository at https://keefox.svn.sourceforge.net/svnroot/keefox/

Over the next couple of months I hope to do the following, leading to a 0.6 release which is suitable for wider testing among existing KeePass users.

  • Add all configurable options to the options panel
  • Make KeeFox understand KeePass groups
  • Provide a way to log in to websites by clicking on a password entry in a Firefox toolbar button dropdown
  • Support a wider array of login forms (maybe dynamically generated forms or forms with multiple password fields)
  • Add all other outstanding tasks to a public task tracker

I have postponed the integration with other areas of Firefox (such as the address bar or bookmarks) but still hope to achieve something in this area before the version 1.0 release. If you think you can help with this task, please

KeeFox 0.4 source code released

The latest version of KeeFox (0.4)  is now ready. The source code is now contained within a public subversion (SVN) code repository at https://keefox.svn.sourceforge.net/svnroot/keefox/

You could start by downloading the binary version (Windows only). I can’t promise it will work and I’m sure it’s not necessary for me to suggest early and regular backups of any important data on your machine so I won’t. It is in the form of a Firefox add-on but please only install it on a development Firefox user profile because it’s not been tested alongside many other add-ons and data loss is a possibility. I have done limited testing as an administrator on a 32bit Win XP machine with .NET, KeePass 2.06 and Firefox 3.0.5 already installed. I recommend reading the information on this KeeFox project page first. Please let me know if you do try it out and say how successful it was and what environment you were working in.

There were two main groups of tasks I wanted to finish by version 0.4: an installation process via a firefox add-on and a very basic UI to allow passwords to be saved and filled in. These have been pretty much finished although there are a number of little tweaks still to be made and there will no doubt be gradual improvements to both of these aspects for many months to come.

There are a number of main tasks I want to get finished before the release of 0.5:

  1. Handle multiple KeePass databases (or at the very least, don’t crash in their presence!)
  2. Develop the UI far enough that using and saving passwords is pretty intuitive
  3. Create an options panel to allow the user to manage some configurable add-on options
  4. Create a UI for the user to choose to load a site and auto-login (in the form of a drop down menu)
  5. Extend (4) to integrate with the user’s bookmarks (and history) probably via a customised firefox places view with annotations

The last three tasks can be separated from the other parts of the code easily enough so I think that they are ideal candidates for other people to help with. They will be written using mainly javascript and XUL, with CSS being required at a later date too (although this can be added by me or someone else if you prefer). If you’re interested in knowing more about what’s involved, leave a comment below or contact me.

I’m not updating the road-map for this release because I feel that the above list is more useful in the short term; in the long term I’m aiming to start using a public task tracker for version 0.6 onwards. The rough ideas in the road-map still apply, although I think it’s unlikely I’ll catch up the extra month it took to reach the 0.4 stage so it may be more realistic to expect a final release in late summer 2009. Of course, if I get a lot of help, this could be brought forward a bit!

If I get no offers of help for the three items mentioned above by the end of January 2009, I’ll start work on them myself and I roughly estimate that 0.5 would be released in mid-March. If others can help out then it could happen around a month earlier.

The version 0.4 code may be useful for:

  • developers that are keen to learn more about how KeeFox will be architected
  • developers that would like to help develop KeeFox, maybe through one of the tasks described above

Developers that are interested in seeing how a Firefox C++ XPCOM extension can be built using Visual Studio 2008, have a particular interest in seeing an ICE IPC example or are looking for ideas about how to integrate third party software with Firefox could also find it useful although version 0.2 may be a better place to start since it is less specific to the eventual aims of this project.

Compilation requirements and guidelines are on the sourceforge KeeFox project site

KeeFox 0.2 source code released

KeeFox 0.2 has been released.

I was just about to get stuck into writing the actual code that will handle reading and writing passwords from KeePass to/from Firefox but thought it might be a good time to take a new source code snapshot and call it version 0.2 so the code is now available from the KeeFox sourceforge project website

I’ve also updated the roadmap at KeeFox task list

There’s still nothing much to look at from an end-user perspective and I’ve now abandoned the idea of integrating directly with the existing Firefox 3 login manager becuase it is not completely suitable (see Who will implement nsILoginManagerStorage? for a more in depth reason).

I think I’ve identified a pretty workable installation process which should get new users up and running with minimal fuss – I’ve done enough work on this so I can be confident it will work but there are still a few missing links that I will fill in over the coming months.

As with 0.1, I’ve not really tested the compiled application at all so I would recommend restricting yourself to just reading the source code (and maybe attempting a compilation) for a little while longer.

The code may be useful for:

  • developers that are keen to learn more about how KeeFox will be architected
  • developers that would like to help understand KeeFox in order to help me get it on the road to a beta release early next year
  • developers that are interested in seeing how a Firefox C++ XPCOM extension can be built using Visual Studio 2008
  • developers with a particular interest in an ICE IPC example
  • developers looking for ideas about how to integrate third party software with Firefox

Compilation requirements and guidelines are on the sourceforge KeeFox project site