@consento/sync-randombytes
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

sync-randombytes

Build Status JavaScript Style Guide

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 to require('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
  • .. 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

MIT

with some source code adopted from react-native-randombytes

/@consento/sync-randombytes/

    Package Sidebar

    Install

    npm i @consento/sync-randombytes

    Weekly Downloads

    3,282

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    430 kB

    Total Files

    52

    Last publish

    Collaborators

    • rangermauve
    • dkastl
    • leichtgewicht