Have ideas to improve npm?Join in the discussion! »

    @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

    Install

    npm i @consento/sync-randombytes

    DownloadsWeekly Downloads

    15,567

    Version

    1.0.5

    License

    MIT

    Unpacked Size

    430 kB

    Total Files

    52

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar