Tag Archives: keefox

KeeFox 0.7 Beta released

KeeFox version 0.7 Beta has been released. Please see http://keefox.org for more information and opportunities to keep up to date with KeeFox news from now on.

I am very keen to get feedback from a wide range of users on a variety of Windows systems so please take a look if you can spare the time. There are still some known bugs and some missing features (and probably many unknown issues) so please check the issue tracker to see if any issues you encounter have already been reported and then let me know what you think. There are more details and a link to the issue tracker at http://keefox.org where you can also subscribe to the RSS news feed for future updates.

I’ll post here when the 1.0 final version is ready but the main source for KeeFox news from now on will be the new official website at http://keefox.org

KeePass PLGX build automation

One of KeePass Password Safe’s strengths is the ability to install plugins. This keeps the main application simple and hence (potentially) more secure. Developing plugins for KeePass and installing them has always been pretty straight forward but starting with KeePass 2.09 there is a new plugin format which now means that your plugins will not need to be re-compiled every time a new version of KeePass is released. If enough plugin authors migrate their plugins to this new format then this should gradually remove some of the barriers that discourage users from promptly upgrading to the latest version of KeePass.

This article outlines how I moved my KeeICE plugin to the new format and shows how the PLGX build can be integrated with Visual Studio. (KeeICE is the KeePass plugin that the KeeFox firefox add-on communicates with – a beta release is (still) not far away).

First, check out the documentation and maybe the forum post where the feature was first announced.

I found that they explained the benefits (and small limitations) of the new format and it wasn’t long before I had a PLGX version of my plugin built and loaded into KeePass.

After a variety of changes to my installation routines (so they know to deal with one PLGX file rather than the previous two DLL files) the only remaining challenge was to find a way to package the PLGX quickly. To do this I modified my post-build event so that once Visual Studio has built the plugin DLL, the PLGX creation process happens automatically. This fits in nicely with my existing build process and ensures that I can quickly build a fully packaged Firefox add-on, ready to be shiped onto test virtual machines and the few other PCs I usually have bleeding-edge versions of KeeFox running on.

Of course, I also want to debug my KeePass plugin from time to time so my post-build script needs to put the actual plugin DLL (and dependancy) into the KeePass plugins directory whenever I am running Visual Studio in the Debug configuration (my debug command is set to load KeePass and Firefox so the plugin and add-on need to be in place by the end of the build process).

I have put the post-build script below in case anyone else finds it useful. You will need to read through it and modify it in a few places to suit your particular plugin and its dependencies (or lack thereof) but it should be almost ready for a quick copy and paste into your Visual Studio configuration. NB: The script assumes that the KeePass plugins directory already exists.

echo POSTBUILDSTEP for $(ProjectName)

set KPDir=C:Program FilesKeePass Password Safe 2
set KPPDir=%KPDir%plugins
set KPPTempDir=%KPPDir%$(ProjectName)

IF NOT "$(ConfigurationName)"=="Debug" Goto :NotDebug
REM In debug mode we want to move the generated DLLs and PDBs to the plugins
REM directory so we can easily set breakpoints, etc.
REM In this case, we don't care if the Firefox add-on has missing or outdated
REM files (they are only used at install time so it won't affect debugging)

REM delete the PLGX from any previous Release build
del /Q "%KPPDir%$(ProjectName).plgx"
if errorlevel 1 goto BuildEventFailed
echo Release plgx deleted

REM copy output DLLs to KeePass plugins directory
copy "$(ProjectName).dll" "%KPPDir%$(ProjectName).dll"
if errorlevel 1 goto BuildEventFailed
copy "Ice.dll" "%KPPDir%Ice.dll"
if errorlevel 1 goto BuildEventFailed
echo Debug DLLs copied to plugins directory

goto BuildEventOK

:NotDebug
IF NOT "$(ConfigurationName)"=="Release" Goto :NotRelease
REM In release mode we want to make sure that we are working with the PLGX version.
REM For the KeeFox project we will be in this mode quite a lot (whenever working
REM primarily on the Firefox add-on part of the project rather than KeeICE)

REM delete the DLLs from any previous Debug build
del /Q "%KPPDir%$(ProjectName).dll"
if errorlevel 1 goto BuildEventFailed
del /Q "%KPPDir%Ice.dll"
if errorlevel 1 goto BuildEventFailed
echo Debug DLLs deleted

REM create temporary directory
rmdir /S /Q "%KPPTempDir%"
mkdir "%KPPTempDir%"
if errorlevel 1 goto BuildEventFailed
echo Temporary directory created

REM copy relevant project files to temporary directory
REM (for simple KeePass plugins you may need to
REM copy only *.cs files and .csproj file)
copy "Ice.dll" "%KPPTempDir%Ice.dll"
if errorlevel 1 goto BuildEventFailed
copy "$(ProjectDir)*.cs" "%KPPTempDir%"
if errorlevel 1 goto BuildEventFailed
copy "$(ProjectDir)$(ProjectName).csproj" "%KPPTempDir%$(ProjectName).csproj"
if errorlevel 1 goto BuildEventFailed
mkdir "%KPPTempDir%Properties"
copy "$(ProjectDir)PropertiesAssemblyInfo.cs" "%KPPTempDir%PropertiesAssemblyInfo.cs"
if errorlevel 1 goto BuildEventFailed
mkdir "%KPPTempDir%generated"
copy "$(ProjectDir)generatedKeeICE.cs" "%KPPTempDir%generatedKeeICE.cs"
if errorlevel 1 goto BuildEventFailed
echo Files copied to temporary directory

REM create the PLGX
"%KPDir%KeePass.exe" --plgx-create "%KPPTempDir%"
if errorlevel 1 goto BuildEventFailed
echo PLGX created

REM copy PLGX to Firefox addon folder (for packaging in a .xpi later)
REM copy "%KPPDir%KeeICE.plgx" "$(SolutionDir)Firefox addonKeeFoxdepsKeeICE.plgx"
REM if errorlevel 1 goto BuildEventFailed
REM echo PLGX copied to Firefox add-on

REM delete the temporary directory and its contents
rmdir /S /Q "%KPPTempDir%"
if errorlevel 1 goto BuildEventFailed
echo Temporary directory deleted

goto BuildEventOK

This is all tested on Visual Studio 2008 on Windows XP SP3 but I have had this page bookmarked for a while in case I come across similar problems on newer versions of Windows. It might be useful if you’re running Vista or 7 and run into any problems copying the files into the KeePass directory (basically, take a sledgehammer to the permissions on the plugins directory).

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

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