| 
									
										
										
										
											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 | 
					
						
							| 
									
										
										
										
											2009-10-19 22:17:02 -04:00
										 |  |  | io.encodings.binary init accessors system destructors ;
 | 
					
						
							| 
									
										
										
										
											2008-03-19 17:18:03 -04:00
										 |  |  | IN: random.unix | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-02 16:57:38 -04: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 ;
 | 
					
						
							| 
									
										
										
										
											2008-03-19 17:18:03 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-04-03 01:59:20 -04:00
										 |  |  | os openbsd? [ | 
					
						
							| 
									
										
										
										
											2008-03-30 07:45:38 -04:00
										 |  |  |     [ | 
					
						
							| 
									
										
										
										
											2009-10-20 18:26:10 -04:00
										 |  |  |         "/dev/srandom" <unix-random> &dispose secure-random-generator set-global
 | 
					
						
							|  |  |  |         "/dev/arandom" <unix-random> &dispose system-random-generator set-global
 | 
					
						
							| 
									
										
										
										
											2009-10-19 22:17:02 -04:00
										 |  |  |     ] "random.unix" add-startup-hook | 
					
						
							| 
									
										
										
										
											2008-03-30 07:45:38 -04:00
										 |  |  | ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							| 
									
										
										
										
											2009-10-20 18:26:10 -04:00
										 |  |  |         "/dev/random" <unix-random> &dispose secure-random-generator set-global
 | 
					
						
							|  |  |  |         "/dev/urandom" <unix-random> &dispose system-random-generator set-global
 | 
					
						
							| 
									
										
										
										
											2009-10-19 22:17:02 -04:00
										 |  |  |     ] "random.unix" add-startup-hook | 
					
						
							| 
									
										
										
										
											2008-03-30 07:45:38 -04:00
										 |  |  | ] if
 |