Beta 7 with some repo names changed.

This commit is contained in:
Luis Fernando Molina committed 2020-11-15 13:05:19 +01:00
1 parent 0f7b40cca7
commit 963c19493a
3408 files changed
+462217 -15516

No files matched your search

+108
View File
@@ -0,0 +1,108 @@
'use strict'
function oldBrowser () {
throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11')
}
var safeBuffer = require('safe-buffer')
var randombytes = require('randombytes')
var Buffer = safeBuffer.Buffer
var kBufferMaxLength = safeBuffer.kMaxLength
var crypto = global.crypto || global.msCrypto
var kMaxUint32 = Math.pow(2, 32) - 1
function assertOffset (offset, length) {
if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare
throw new TypeError('offset must be a number')
}
if (offset > kMaxUint32 || offset < 0) {
throw new TypeError('offset must be a uint32')
}
if (offset > kBufferMaxLength || offset > length) {
throw new RangeError('offset out of range')
}
}
function assertSize (size, offset, length) {
if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare
throw new TypeError('size must be a number')
}
if (size > kMaxUint32 || size < 0) {
throw new TypeError('size must be a uint32')
}
if (size + offset > length || size > kBufferMaxLength) {
throw new RangeError('buffer too small')
}
}
if ((crypto && crypto.getRandomValues) || !process.browser) {
exports.randomFill = randomFill
exports.randomFillSync = randomFillSync
} else {
exports.randomFill = oldBrowser
exports.randomFillSync = oldBrowser
}
function randomFill (buf, offset, size, cb) {
if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {
throw new TypeError('"buf" argument must be a Buffer or Uint8Array')
}
if (typeof offset === 'function') {
cb = offset
offset = 0
size = buf.length
} else if (typeof size === 'function') {
cb = size
size = buf.length - offset
} else if (typeof cb !== 'function') {
throw new TypeError('"cb" argument must be a function')
}
assertOffset(offset, buf.length)
assertSize(size, offset, buf.length)
return actualFill(buf, offset, size, cb)
}
function actualFill (buf, offset, size, cb) {
if (process.browser) {
var ourBuf = buf.buffer
var uint = new Uint8Array(ourBuf, offset, size)
crypto.getRandomValues(uint)
if (cb) {
process.nextTick(function () {
cb(null, buf)
})
return
}
return buf
}
if (cb) {
randombytes(size, function (err, bytes) {
if (err) {
return cb(err)
}
bytes.copy(buf, offset)
cb(null, buf)
})
return
}
var bytes = randombytes(size)
bytes.copy(buf, offset)
return buf
}
function randomFillSync (buf, offset, size) {
if (typeof offset === 'undefined') {
offset = 0
}
if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {
throw new TypeError('"buf" argument must be a Buffer or Uint8Array')
}
assertOffset(offset, buf.length)
if (size === undefined) size = buf.length - offset
assertSize(size, offset, buf.length)
return actualFill(buf, offset, size)
}
+7
View File
@@ -0,0 +1,7 @@
var crypto = require('crypto')
if (typeof crypto.randomFill === 'function' && typeof crypto.randomFillSync === 'function') {
exports.randomFill = crypto.randomFill
exports.randomFillSync = crypto.randomFillSync
} else {
module.exports = require('./browser')
}
+41
View File
@@ -0,0 +1,41 @@
{
"name": "randomfill",
"version": "1.0.4",
"description": "random fill from browserify stand alone",
"main": "index.js",
"scripts": {
"test": "standard && node test.js | tspec",
"phantom": "zuul --phantom -- test.js",
"local": "zuul --local --no-coverage -- test.js"
},
"repository": {
"type": "git",
"url": "https://github.com/crypto-browserify/randomfill.git"
},
"keywords": [
"crypto",
"random"
],
"author": "",
"license": "MIT",
"bugs": {
"url": "https://github.com/crypto-browserify/randomfill/issues"
},
"homepage": "https://github.com/crypto-browserify/randomfill",
"browser": "browser.js",
"devDependencies": {
"phantomjs": "^1.9.9",
"standard": "^10.0.2",
"tap-spec": "^2.1.2",
"tape": "^4.6.3",
"zuul": "^3.7.2"
},
"dependencies": {
"randombytes": "^2.0.5",
"safe-buffer": "^5.1.0"
}
,"_resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz"
,"_integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw=="
,"_from": "randomfill@^1.0.3"
}
+28
View File
@@ -0,0 +1,28 @@
var test = require('tape')
var crypto = require('./browser')
var Buffer = require('safe-buffer').Buffer
test('sync', function (t) {
t.test('first', function (t) {
const buf = Buffer.alloc(10)
const before = buf.toString('hex')
crypto.randomFillSync(buf, 5, 5)
const after = buf.toString('hex')
t.notEqual(before, after)
t.equal(before.slice(0, 10), after.slice(0, 10))
t.end()
})
})
test('async', function (t) {
t.test('first', function (t) {
const buf = Buffer.alloc(10)
const before = buf.toString('hex')
crypto.randomFill(buf, 5, 5, function (err, bufa) {
t.error(err)
const after = bufa.toString('hex')
t.notEqual(before, after)
t.equal(before.slice(0, 10), after.slice(0, 10))
t.ok(buf === bufa, 'same buffer')
t.end()
})
})
})