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

rabbit

Usage

(require-extension rabbit)

Documentation

The rabbit library is an implementation of the Rabbit stream cipher.

Procedure rabbit-make creates an encryption context:

[procedure] rabbit-make:: KEY -> CTX

where KEY is a blob containing the encryption key.

[procedure] rabbit-destroy!:: CTX -> VOID

Destroys the encryption context.

[procedure] rabbit-encode!:: CTX * BLOB -> BLOB

Encrypts the given blob. This procedure modifies its argument and returns the modified blob.

[procedure] rabbit-decode!:: CTX * BLOB -> BLOB

Decrypts the given blob. This procedure modifies its argument and returns the modified blob.

Examples

(use rabbit)
(let* ((key (string->blob "password"))
       (data (string->blob "important data"))
       (ctx (rabbit-make key)))
  (rabbit-encode! ctx data))

About this egg

Author

Ivan Raikov

Version history

1.0
Initial release

License

Martin Boesgaard, Mette Vesterager, Thomas Christensen and Erik Zenner; adapted to Chicken Scheme by Ivan Raikov.


This library is released in the public domain.