You are looking at historical revision 39572 of this page. It may differ significantly from its current revision.

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