diff --git a/lib/keystore-fallback.js b/lib/keystore-fallback.js index 227d49c..7c663aa 100644 --- a/lib/keystore-fallback.js +++ b/lib/keystore-fallback.js @@ -17,6 +17,7 @@ module.exports.create = function (opts) { } , setPassword: function (service, name, key) { var f = path.join(opts.configDir, name + keyext); + console.log('[DEBUG] set', f); return fs.writeFile(f, key, 'utf8'); } , deletePassword: function (service, name) { @@ -28,7 +29,9 @@ module.exports.create = function (opts) { return Promise.all(nodes.filter(function (node) { return keyext === node.slice(-4); }).map(function (node) { - return fs.readFile(path.join(opts.configDir, node + keyext)); + return fs.readFile(path.join(opts.configDir, node), 'utf8').then(function (data) { + return { password: data }; + }); })); }); } diff --git a/lib/keystore-test.js b/lib/keystore-test.js index 859203c..3a288cc 100644 --- a/lib/keystore-test.js +++ b/lib/keystore-test.js @@ -1,8 +1,11 @@ +(function () { 'use strict'; var keystore = require('./keystore.js').create({ - configDir: require('path').join(require('os').homedir(), '.local/telebit/') + configDir: require('path').join(require('os').homedir(), '.config/telebit/') +, fallback: true }); + var name = "testy-mctestface-1"; return keystore.get(name).then(function (jwk) { console.log("get1", typeof jwk, jwk); @@ -10,8 +13,11 @@ return keystore.get(name).then(function (jwk) { return require('keypairs').generate().then(function (jwk) { var json = JSON.stringify(jwk.private); return keystore.set(name, json).then(function () { - return keystore.get(name).then(function (val2) { - console.log("get2", val2); + return keystore.all().then(function (vals) { + console.log("All", vals); + return keystore.get(name).then(function (val2) { + console.log("get2", val2); + }); }); }).catch(function (err) { console.log('badness', err); @@ -20,3 +26,4 @@ return keystore.get(name).then(function (jwk) { } return jwk; }); +}()); diff --git a/lib/keystore.js b/lib/keystore.js index 876e151..b142ac2 100644 --- a/lib/keystore.js +++ b/lib/keystore.js @@ -4,6 +4,9 @@ module.exports.create = function (opts) { var service = opts.name || "Telebit"; var keytar; try { + if (opts.fallback) { + throw new Error("forced fallback"); + } keytar = require('keytar'); // TODO test that long "passwords" (JWTs and JWKs) can be stored in all OSes } catch(e) {