I found myself reminiscing about my implementation of Blowfish today. It earned me the great honour of being listed on Bruce Schneier’s web page. My implementation made Blowfish compatible across 32-bit signed ints, 64-bit signed ints, and 64-bit floats. I wrote this code coming up on 12 years ago… how time flies.

JavaScript base64_encode

This is where all the trouble began. Back on July 19th this year I commented on the base64_encode function over at letting them know about a bug in their function whereby they were encoding as UTF-8 (whatever that means) prior to doing the Base64 encoding, which is a bug. Anyway, I had to patch the code myself for its use in pccipher and after several months no-one at phpjs has fixed up the implementation. So, that makes me mad, and when I’m mad, I fork!

I forked ProgSoc into ProgClub, and now I’m forking into Both times it was because there was something going on that gave me the shits and I felt as if I could do a better job. So far I’m really pleased with my results. One great thing about forking is that it encourages the other party to lift their game. I wouldn’t be surprised to see improve its features after they see what I’ve done with

Update: I ended up fixing that base64_encode function. My notes are in the comments.