chickadee » isaac

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.

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 »