2008-09-19 01:26:27 -04:00
|
|
|
! Copyright (C) 2008 Doug Coleman
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2008-07-02 16:57:38 -04:00
|
|
|
USING: alien.c-types io io.files kernel namespaces random
|
2011-11-15 23:45:16 -05:00
|
|
|
io.encodings.binary init accessors system destructors
|
2011-11-16 20:29:46 -05:00
|
|
|
hints math ;
|
2008-03-19 17:18:03 -04:00
|
|
|
IN: random.unix
|
|
|
|
|
2011-11-16 20:29:46 -05:00
|
|
|
TUPLE: unix-random reader ;
|
2008-03-28 23:10:01 -04:00
|
|
|
|
2008-07-02 16:57:38 -04:00
|
|
|
: <unix-random> ( path -- random )
|
|
|
|
binary <file-reader> unix-random boa ;
|
2008-03-19 17:18:03 -04:00
|
|
|
|
2009-10-19 22:17:02 -04:00
|
|
|
M: unix-random dispose reader>> dispose ;
|
|
|
|
|
2008-03-28 23:10:01 -04:00
|
|
|
M: unix-random random-bytes* ( n tuple -- byte-array )
|
2008-07-02 16:57:38 -04:00
|
|
|
reader>> stream-read ;
|
2011-11-15 23:45:16 -05:00
|
|
|
HINTS: M\ unix-random random-bytes* { fixnum unix-random } ;
|
2008-03-19 17:18:03 -04:00
|
|
|
|
2011-11-02 20:13:31 -04:00
|
|
|
[
|
|
|
|
"/dev/random" <unix-random> &dispose secure-random-generator set-global
|
|
|
|
"/dev/urandom" <unix-random> &dispose system-random-generator set-global
|
|
|
|
] "random.unix" add-startup-hook
|