coopfish

A C++ implementation of the blowfish encryption algorithm
&
A simple file encryption utility that integrates with Code Co-op

Purpose

coopfish is a command-line utility for file encryption. It implements Bruce Schneier's blowfish algorithm and is written in standard C++.

This utility is a first throw at designing an add-on to a distributed version control system, the excellent Code Co-op (version 3.x or higher) developed by Reliable Software. Coopfish provides a straightforward way to encrypt the source code change scripts that are automatically transmitted to remote project members.

If you don't use Code Co-op, you may still find this utility or the provided code helpful.

Usage

To encrypt a file:

coopfish.exe [key] [EncryptedOutputFile] [InputFile]

And to decrypt a file:

coopfish.exe [key] [EncryptedInputFile]

Notes:

Download

Click here to download a zipped file of version 1.1 (January 2003, plus comment and license updates since).
The archive includes a Win32 executable, and the 4 source files that can easily be compiled to build the application on any platform.

The Blowfish implementation is encapsulated in a single pair of files, and can be re-used independently.

I am hereby putting this implementation in the public domain. This said, please let me know if you use this software, or have any feedback or comments; being given credit in derivative works is something I would of course appreciate.

Implementation Notes

Setting-up the Co-op Dispatcher

Here's an example configuration for the script dispatching:

Screenshot of the Dispatcher's settings window

Some things you should pay attention to:

Acknowledgements

Many thanks to Xavier for helping me test the initial version of coopfish.

For those interested, Xavier developed CoopFishFE, a graphical front-end for encrypting individual files with coopfish.

Most of what I know about security and encryption comes from books and other resources made available by Bruce Schneier. I recommend his excellent Crypto-gram newsletter or his weblog to anyone interested in security and encryption.