Resurrecting Coelacanth

I registered a project on Google Code months ago called Coelacanth. I’ve had a few different ideas about what my intentions were for the project but I’ve decided to use the name for a secure password management system.

To get the ball rolling, I’ve put up a very simple random password generator. This can be downloaded from:

This is my first C# program, so be kind.

I’ve written this using Microsoft Visual C# Express Edition 2008, so if you have that program installed, checking out the trunk and double clicking the Coelacanth.sln file should give you access to the source. If you want to study, compile, test, develop or extend the code in a different environment, please tell me about your experiences.

This is a very open ended project for me with no pressing time-frame. The program exists to help me with a specific problem.

I’ve only tested the program on Windows XP Pro with the Microsoft .NET Framework 3.5 SP1 installed. If you want the program to run on a different platform (e.g. on Mono on Linux), but this release does not work, please submit an issue on the Google Code site.

One area where I would like to extend this project would be to do with saving the passwords in some sort of secure data store. For example, in a file in an encrypted file system. I’m not terribly interesting in this store having any sophisticated access control. I only intend Coelacanth to be a single user system. It’s hard to see what value any other sort of system could be in this domain. So saving the file in an encrypted file system and assuming that anyone who can access that file system can access any password in the file is fine by me.

Another area that the project could be extended would be to give the user some sort of warning about how long a password has been in use. If a password is given an expiry date, then after that date the user should be alerted to update the password.

I was quickly reminded as I was putting this simple application together that once an idea is transferred to source code, it takes on a life of its own. Limitations become apparent and extensions become attractive. A Google Code project for a program as limited as this might seem like overkill, but hacking a little app, posting it on my blog, and then forgetting about it, did not seem to do it justice either.