fix keystore fallback and tests
This commit is contained in:
		
							parent
							
								
									0489d20fd3
								
							
						
					
					
						commit
						6c6f9133e9
					
				| @ -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 }; | ||||
|           }); | ||||
|         })); | ||||
|       }); | ||||
|     } | ||||
|  | ||||
| @ -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; | ||||
| }); | ||||
| }()); | ||||
|  | ||||
| @ -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) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user