diff --git a/src/crypto/random.js b/src/crypto/random.js index 61cca5d6..d1d3b17c 100644 --- a/src/crypto/random.js +++ b/src/crypto/random.js @@ -79,8 +79,10 @@ module.exports = { if (!(buf instanceof Uint8Array)) { throw new Error('Invalid type: buf not an Uint8Array'); } - if (typeof window !== 'undefined' && window.crypto) { + if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) { window.crypto.getRandomValues(buf); + } else if (typeof window !== 'undefined' && typeof window.msCrypto === 'object' && typeof window.msCrypto.getRandomValues === 'function') { + window.msCrypto.getRandomValues(buf); } else if (nodeCrypto) { var bytes = nodeCrypto.randomBytes(buf.length); buf.set(bytes);