File tree Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 1
1
'use strict' ;
2
- var rng = require ( './rng' )
2
+ var rng = exports . rng = require ( './rng' )
3
+ var prng = exports . prng = require ( './prng' ) ;
3
4
4
5
function error ( ) {
5
6
var m = [ ] . slice . call ( arguments ) . join ( ' ' )
@@ -23,6 +24,15 @@ exports.randomBytes = function(size, callback) {
23
24
return new Buffer ( rng ( size ) )
24
25
}
25
26
}
27
+ exports . pseudoRandomBytes = function ( size , callback ) {
28
+ if ( callback && callback . call ) {
29
+ try {
30
+ callback . call ( this , undefined , new Buffer ( prng ( size ) ) )
31
+ } catch ( err ) { callback ( err ) }
32
+ } else {
33
+ return new Buffer ( prng ( size ) )
34
+ }
35
+ }
26
36
27
37
function each ( a , f ) {
28
38
for ( var i in a )
Original file line number Diff line number Diff line change
1
+ 'use strict' ;
2
+ ( function ( ) {
3
+ var g = ( 'undefined' === typeof window ? global : window ) || { }
4
+ var _crypto = (
5
+ g . crypto || g . msCrypto || require ( 'crypto' )
6
+ )
7
+ module . exports = function ( size ) {
8
+ // Modern Browsers
9
+ if ( _crypto . getRandomValues ) {
10
+ var bytes = new Buffer ( size ) ; //in browserify, this is an extended Uint8Array
11
+ /* This will not work in older browsers.
12
+ * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
13
+ */
14
+
15
+ _crypto . getRandomValues ( bytes ) ;
16
+ return bytes ;
17
+ }
18
+ else if ( _crypto . pseudoRandomBytes ) {
19
+ return _crypto . pseudoRandomBytes ( size )
20
+ }
21
+ else
22
+ throw new Error (
23
+ 'pseudo random number generation not yet implemented for this browser\n' +
24
+ 'use chrome, FireFox or Internet Explorer 11'
25
+ )
26
+ }
27
+ } ( ) )
You can’t perform that action at this time.
0 commit comments