This page is moving to http://carey.geek.nz/code/. The version here will disappear eventually.
This page was supposed to have all the free software I’ve written on it, for anyone to download. Unfortunately, I haven’t actually done much work on software recently. If you’re looking for something else I wrote years ago, please email me.
I’ve written a pure Python implementation of the Unix crypt(3) algorithm, and packaged it with Distutils and with doc strings for pydoc and doctest. Download it here: fcrypt-1.3.1.tar.gz (11K). This is based on Eric A. Young’s optimised fcrypt code, which was written in C.
There are some known problems with this version:
The bitwise arithmetic makes use of the behaviour of Python 2.2 and earlier when overflowing an integer on 32-bit architectures. Python 2.3 works the same but generates a very large number of warnings. Python 2.4 will convert many of the intermediate results from the int to the long type, which will still work, but is likely to be considerably slower.
Since I don’t really understand how the original code works, fixing this is quite difficult for me.
If you try to use MD5-crypted passwords which use a salt beginning with $1$, the current version uses $1 as the salt, and the DES crypt algorithm.
In view of the preceding points, and the low security provided by the DES-based password hashing algorithm, I recommend that you use michal j wallace’s md5crypt unless you really need compatibility with other software using the same algorithm. In a future version, I may try to provide MD5-based hashing in addition to the current algorithm.
My File::Sync Perl module has been superseded by the sync method in the standard IO::Handle module, but you can still download it here: File-Sync-0.09.tar.gz (4K).
I’ve also got some sample Python code to access CDROMs.
I’ve also worked on a free tn5250 terminal emulator for Unix and Windows, mainly writing documentation, and maintaining the Debian tn5250 package.