From 5768fd5b23575fe0ad7ec4d8a23863417b1c5082 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Thu, 9 Jan 2014 07:51:05 -0800 Subject: [PATCH] Fix nodejs support --- src/crypto/random.js | 8 +++----- src/keyring/localstore.js | 18 +++++++----------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/crypto/random.js b/src/crypto/random.js index c454e3a3..c807efdc 100644 --- a/src/crypto/random.js +++ b/src/crypto/random.js @@ -25,10 +25,8 @@ var type_mpi = require('../type/mpi.js'); var nodeCrypto = null; -if (typeof window === undefined) {} -try { +if (typeof window === 'undefined') { nodeCrypto = require('crypto'); -} catch (e) { } module.exports = { @@ -81,9 +79,9 @@ module.exports = { * @param {Uint32Array} buf */ getRandomValues: function(buf) { - try { + if (nodeCrypto == null) { window.crypto.getRandomValues(buf); - } catch (e) { + } else { var bytes = nodeCrypto.randomBytes(4); buf[0] = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]; } diff --git a/src/keyring/localstore.js b/src/keyring/localstore.js index 0b46bbe1..d2941899 100644 --- a/src/keyring/localstore.js +++ b/src/keyring/localstore.js @@ -25,6 +25,11 @@ module.exports = LocalStore; var openpgp = require('openpgp'); function LocalStore() { + if (typeof window != 'undefined' && window.localStorage) { + this.storage = window.localStorage; + } else { + this.storage = new (require('node-localstorage').LocalStorage)(openpgp.config.node_store); + } } /** @@ -32,16 +37,7 @@ function LocalStore() { * @return {Array} array of keys retrieved from localstore */ LocalStore.prototype.load = function () { - var storage = null; - try { - storage = window.localStorage; - } catch (e) { - } - - if (storage === null) { - storage = new (require('node-localstorage').LocalStorage)(openpgp.config.node_store); - } - var armoredKeys = JSON.parse(storage.getItem("armoredKeys")); + var armoredKeys = JSON.parse(this.storage.getItem('armoredKeys')); var keys = []; if (armoredKeys !== null && armoredKeys.length !== 0) { var key; @@ -63,5 +59,5 @@ LocalStore.prototype.store = function (keys) { for (var i = 0; i < keys.length; i++) { armoredKeys.push(keys[i].armor()); } - window.localStorage.setItem("armoredKeys", JSON.stringify(armoredKeys)); + this.storage.setItem('armoredKeys', JSON.stringify(armoredKeys)); };