Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

blowfish

Blowfish cipher (based on Paul Kocher implementation).

Documentation

[procedure] (make-blowfish-encryptor key)
[procedure] (make-blowfish-decryptor key)

key blob minimal length 4, maximum 56 bytes.

Returns one argument procedure, accept input blob and produce encrypted/decrypted output blob of same size. Input data blob should be aligned on 64 bit boundary.

Usage

(require-extension blowfish)

Examples

(require-extension blowfish)

(define enc (make-blowfish-encryptor (string->blob "TESTKEY")))
(enc '#${0100000002000000}) ; => '#${d23f33dfb41ba730}

(define dec (make-blowfish-decryptor (string->blob "TESTKEY"))) 
(dec '#${d23f33dfb41ba730}) ; => '#${0100000002000000}

Notes

Author

rivo

Version history

1.1
encryption/decryption fix on 64 bit systems
1.0
major release (cosmetic fixes)
0.1
initial release

License LGPL