@consento/sync-randombytes
v1.0.5
Published
Synchronous randombytes function that works in node, the browser & react-native!
Downloads
11,230
Readme
sync-randombytes
sync-randombytes
is a polyfill for crypto.randomBytes
that works in node
, browsers, react-native
(with support for versions < 0.60) and expo.
npm i sync-randombytes --save
Usage
You can use it like an other randomBytes function by calling:
const randomBytes = require('sync-randombytes')
const randomUint8Array = randomBytes(new Uint8Array(16))
Why?
- React-native < 0.60 does not support crypto.randomBytes and you need a custom solution to implement a sync random method
- Metro bundlers complain when you try to use
react-native-randombytes
as it's dependencies try torequire('crypto')
- which is not available in react-native.
How it works?
- It uses
window.crypto.getRandomBytes
if available. - If 'crypto' can be "required" it will use
- from node > 6.13:
crypo.randomFill
- or a polyfill that implements it using crypto.randomBytes for node < 6.13
- from node > 6.13:
- .. else it will use
seedrandom
- with a randomseed from the native environment.
- if not available: with a custom random-seed if expo is available. Random quality degraded
- else the default random-seed if. Random quality degraded
License
with some source code adopted from react-native-randombytes