Blowfish is broken. The order of the bytes in the ciphertext is wrong. The problem is the conversion from the ciphertext plaintext block to the array of u32int used by the core funcions and vice versa. This code has been tested on big endian and little endian machines. A test program is also included, bftets.c. It uses the test vectors of blowfish available at https://www.schneier.com/code/vectors.txt NOTE: I submitted a previous patch with the same name. It was not correct. Erik Quanstrom found the problem and we wrote this new code. I deleted the old directory and I created this new patch.