1.0.5 • Published 5 years ago
@consento/sync-randombytes v1.0.5
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-randombytesas it's dependencies try torequire('crypto')- which is not available in react-native.
How it works?
- It uses
window.crypto.getRandomBytesif 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