From 0ebe1f0be697d4d2879f408c230744a1a58ad6aa Mon Sep 17 00:00:00 2001 From: Chad Engler Date: Wed, 27 May 2015 08:29:18 -0700 Subject: [PATCH] add fallback to browser is secp256k1 --- browser.js | 4 ++-- index.js | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/browser.js b/browser.js index 045d523..e223c63 100644 --- a/browser.js +++ b/browser.js @@ -7,7 +7,7 @@ var EC = require("elliptic").ec; var ec = new EC("secp256k1"); -var cryptoObj = window.crypto || window.msCrypto || {}; +var cryptoObj = global.crypto || global.msCrypto || {}; var subtle = cryptoObj.subtle || cryptoObj.webkitSubtle; function assert(condition, message) { @@ -18,7 +18,7 @@ function assert(condition, message) { function randomBytes(size) { var arr = new Uint8Array(size); - window.crypto.getRandomValues(arr); + global.crypto.getRandomValues(arr); return new Buffer(arr); } diff --git a/index.js b/index.js index fa0f728..e9f1a4d 100644 --- a/index.js +++ b/index.js @@ -9,9 +9,12 @@ var promise = typeof Promise === "undefined" ? require("es6-promise").Promise : Promise; var crypto = require("crypto"); -// TODO(Kagami): We may fallback to pure JS implementation -// (`browser.js`) if this modules are failed to load. -var secp256k1 = require("secp256k1"); +// try to use secp256k1, fallback to browser implementation +try { + var secp256k1 = require("secp256k1"); +} catch (e) { + return module.exports = require("./browser"); +} var ecdh = require("./build/Release/ecdh"); function assert(condition, message) {