PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/sodium-native/test

Просмотр файла: randombytes.js

var tape = require('tape')
var sodium = require('../')

tape('constants', function (assert) {
  assert.same(typeof sodium.randombytes_SEEDBYTES, 'number', 'randombytes_SEEDBYTES is number')

  assert.end()
})

tape('randombytes_random', function (t) {
  for (var i = 0; i < 1e6; i++) {
    var n = sodium.randombytes_random()
    if (n > 0xffffffff || n < 0) t.fail()
  }

  t.end()
})

tape('randombytes_uniform', function (t) {
  var p = 5381
  for (var i = 0; i < 1e6; i++) {
    var n = sodium.randombytes_uniform(5381)
    if (n >= p || n < 0) t.fail()
  }

  t.end()
})

tape('randombytes_buf', function (t) {
  var buf = null

  buf = Buffer.alloc(10)
  sodium.randombytes_buf(buf)
  t.notEqual(buf, Buffer.alloc(10), 'not blank')

  buf = Buffer.alloc(1024)
  sodium.randombytes_buf(buf)
  t.notEqual(buf, Buffer.alloc(1024), 'large not blank')

  t.end()
})

tape('randombytes_deterministic', function (t) {
  var seed1 = Buffer.allocUnsafe(sodium.randombytes_SEEDBYTES)
  var seed2 = Buffer.allocUnsafe(sodium.randombytes_SEEDBYTES)
  var buf1 = Buffer.alloc(10)
  var buf2 = Buffer.alloc(10)

  for (var i = 0; i < 1e6; i++) {
    sodium.randombytes_buf(seed1)
    sodium.randombytes_buf(seed2)

    sodium.randombytes_buf_deterministic(buf1, seed1)
    sodium.randombytes_buf_deterministic(buf2, seed1)
    if (!buf1.equals(buf2)) t.fail('should equal')

    sodium.randombytes_buf_deterministic(buf1, seed1)
    sodium.randombytes_buf_deterministic(buf2, seed2)
    if (buf1.equals(buf2)) t.fail('should not equal')

    sodium.randombytes_buf_deterministic(buf1, seed2)
    sodium.randombytes_buf_deterministic(buf2, seed1)
    if (buf1.equals(buf2)) t.fail('should not equal')

    sodium.randombytes_buf_deterministic(buf1, seed2)
    sodium.randombytes_buf_deterministic(buf2, seed2)
    if (!buf1.equals(buf2)) t.fail('should equal')
  }

  t.end()
})

Выполнить команду


Для локальной разработки. Не используйте в интернете!