make CSPRNG work on ES6
This commit is contained in:
parent
1cde390c23
commit
b4f97f4592
@ -68,7 +68,7 @@
|
|||||||
},
|
},
|
||||||
"ava": {
|
"ava": {
|
||||||
"files": [
|
"files": [
|
||||||
"lib/**/*test*"
|
"lib/**/*test.*"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,12 @@
|
|||||||
// Implementation derived from TweetNaCl version 20140427.
|
// Implementation derived from TweetNaCl version 20140427.
|
||||||
// See for details: http://tweetnacl.cr.yp.to/
|
// See for details: http://tweetnacl.cr.yp.to/
|
||||||
|
|
||||||
|
import { createRequire } from "module";
|
||||||
|
|
||||||
|
// We need this require function to synchronously
|
||||||
|
// import the "crypto" module in the CSPRNG initialization.
|
||||||
|
const require = createRequire(import.meta.url);
|
||||||
|
|
||||||
const gf = function (init: number[] = []): Float64Array {
|
const gf = function (init: number[] = []): Float64Array {
|
||||||
const r = new Float64Array(16);
|
const r = new Float64Array(16);
|
||||||
if (init) for (let i = 0; i < init.length; i++) r[i] = init[i];
|
if (init) for (let i = 0; i < init.length; i++) r[i] = init[i];
|
||||||
@ -3021,7 +3027,7 @@ export function secretbox_open(
|
|||||||
return m.subarray(crypto_secretbox_ZEROBYTES);
|
return m.subarray(crypto_secretbox_ZEROBYTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
(function () {
|
function initPRNG() {
|
||||||
// Initialize PRNG if environment provides CSPRNG.
|
// Initialize PRNG if environment provides CSPRNG.
|
||||||
// If not, methods calling randombytes will throw.
|
// If not, methods calling randombytes will throw.
|
||||||
// @ts-ignore-error
|
// @ts-ignore-error
|
||||||
@ -3050,4 +3056,6 @@ export function secretbox_open(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})();
|
}
|
||||||
|
|
||||||
|
initPRNG();
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"composite": true,
|
"composite": true,
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
"declarationMap": false,
|
"declarationMap": false,
|
||||||
"target": "ES6",
|
"target": "ES2017",
|
||||||
"module": "ESNext",
|
"module": "ESNext",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
@ -21,7 +21,7 @@
|
|||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"importHelpers": true,
|
"importHelpers": true,
|
||||||
"rootDir": "./src",
|
"rootDir": "./src",
|
||||||
"typeRoots": ["./node_modules/@types"]
|
"typeRoots": ["./node_modules/@types"],
|
||||||
},
|
},
|
||||||
"references": [
|
"references": [
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user