chickadee » isaac

isaac

Description

Bindings to Bob Jenkins' ISAAC CSPRNG.

The source for this extension is available here.

Requirements

API

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

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

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.

Examples

#;> (use isaac)
#;> (define isaac (make-isaac))
#;> (isaac)
1659971739
#;> (isaac)
4077212320
#;> (isaac)
1011352789

Author

Evan Hanson

License

Public Domain

Contents »