isaac

  1. isaac
    1. Description
    2. Requirements
    3. API
    4. Examples
    5. Author
    6. License

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:

[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.

Examples

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

Author

Evan Hanson

License

Public Domain