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.

rabbit

  1. Outdated egg!
  2. rabbit
  3. Usage
  4. Documentation
  5. Examples
  6. About this egg
    1. Author
    2. Version history
    3. License

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.