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.


  1. Outdated egg!
  2. isaac
  3. Description
  4. Requirements
  5. API
  6. Examples
  7. Author
  8. License


Bindings to Bob Jenkins' ISAAC CSPRNG.

The source for this extension is available here.



A single function is provided, which creates a new random procedure:

[procedure] (make-isaac #!optional (seed (make-blob SEED)))

Creates a new ISAAC instance.

The result is a procedure of no arguments that returns a random fixnum value on each invocation.

seed is used to initialize the procedure's stream of random values. If given, it should be a blob of size 2048. If not given, a block of uninitialized memory will be used.

If cryptographic security is desired, seed should itself be the result of some secure random source. On Linux and BSD, 2048 bytes from "/dev/urandom" or "/dev/arandom" will suffice.


#;> (use isaac)
#;> (define isaac (make-isaac))
#;> (isaac)
#;> (isaac)
#;> (isaac)


Evan Hanson


Public Domain