Skip to content

Commit bd32847

Browse files
committed
Re-apply #58 from scisci/master
1 parent 7e7039c commit bd32847

4 files changed

Lines changed: 16 additions & 4 deletions

File tree

lib/index.esm.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,9 @@ function detectPrng() {
102102
if (browserCrypto) {
103103
try {
104104
return function () {
105-
return browserCrypto.getRandomValues(new Uint8Array(1))[0] / 0xff;
105+
var buffer = new Uint8Array(1);
106+
browserCrypto.getRandomValues(buffer);
107+
return buffer[0] / 0xff;
106108
};
107109
} catch (e) {}
108110
} else {

lib/index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,11 @@ export function detectPrng(allowInsecure = false, root) {
102102
const browserCrypto = root && (root.crypto || root.msCrypto);
103103
if (browserCrypto) {
104104
try {
105-
return () => browserCrypto.getRandomValues(new Uint8Array(1))[0] / 0xff;
105+
return () => {
106+
const buffer = new Uint8Array(1);
107+
browserCrypto.getRandomValues(buffer);
108+
return buffer[0] / 0xff;
109+
};
106110
}
107111
catch (e) { }
108112
}

lib/index.umd.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ function detectPrng() {
108108
if (browserCrypto) {
109109
try {
110110
return function () {
111-
return browserCrypto.getRandomValues(new Uint8Array(1))[0] / 0xff;
111+
var buffer = new Uint8Array(1);
112+
browserCrypto.getRandomValues(buffer);
113+
return buffer[0] / 0xff;
112114
};
113115
} catch (e) {}
114116
} else {

src/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,11 @@ export function detectPrng(allowInsecure: boolean = false, root?: any): PRNG {
124124

125125
if (browserCrypto) {
126126
try {
127-
return () => browserCrypto.getRandomValues(new Uint8Array(1))[0] / 0xff
127+
return () => {
128+
const buffer = new Uint8Array(1)
129+
browserCrypto.getRandomValues(buffer)
130+
return buffer[0] / 0xff
131+
}
128132
} catch (e) {}
129133
} else {
130134
try {

0 commit comments

Comments
 (0)