CasperSecurity

Current Path : /var/www/hrms.uiet.co.in/node_modules/crypto-browserify/test/
Upload File :
Current File : /var/www/hrms.uiet.co.in/node_modules/crypto-browserify/test/random-bytes.js

var test = require('tape')
var crypto = require('../')

var randomBytesFunctions = {
  randomBytes: require('randombytes'),
  pseudoRandomBytes: crypto.pseudoRandomBytes
}

for (var randomBytesName in randomBytesFunctions) {
  // Both randomBytes and pseudoRandomBytes should provide the same interface
  var randomBytes = randomBytesFunctions[randomBytesName]

  test('get error message', function (t) {
    try {
      var b = randomBytes(10)
      t.ok(Buffer.isBuffer(b))
      t.end()
    } catch (err) {
      t.ok(/not supported/.test(err.message), '"not supported"  is in error message')
      t.end()
    }
  })

  test(randomBytesName, function (t) {
    t.plan(5)
    t.equal(randomBytes(10).length, 10)
    t.ok(Buffer.isBuffer(randomBytes(10)))
    randomBytes(10, function (ex, bytes) {
      t.error(ex)
      t.equal(bytes.length, 10)
      t.ok(Buffer.isBuffer(bytes))
      t.end()
    })
  })

  test(randomBytesName + ' seem random', function (t) {
    var L = 1000
    var b = randomBytes(L)

    var mean = [].reduce.call(b, function (a, b) { return a + b }, 0) / L

    // test that the random numbers are plausably random.
    // Math.random() will pass this, but this will catch
    // terrible mistakes such as this blunder:
    // https://github.com/dominictarr/crypto-browserify/commit/3267955e1df7edd1680e52aeede9a89506ed2464#commitcomment-7916835

    // this doesn't check that the bytes are in a random *order*
    // but it's better than nothing.

    var expected = 256 / 2
    var smean = Math.sqrt(mean)

    // console.log doesn't work right on testling, *grumble grumble*
    console.log(JSON.stringify([expected - smean, mean, expected + smean]))
    t.ok(mean < expected + smean)
    t.ok(mean > expected - smean)

    t.end()
  })
}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY