| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  | 'use strict'; | 
					
						
							| 
									
										
										
										
											2019-03-09 05:05:37 -07:00
										 |  |  | /*global Promise*/ | 
					
						
							| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | var fs = require('fs').promises; | 
					
						
							|  |  |  | var path = require('path'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports.create = function (opts) { | 
					
						
							| 
									
										
										
										
											2019-03-09 05:05:37 -07:00
										 |  |  |   var keyext = '.key'; | 
					
						
							| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  |   return { | 
					
						
							|  |  |  |     getPassword: function (service, name) { | 
					
						
							| 
									
										
										
										
											2019-03-09 05:05:37 -07:00
										 |  |  |       var f = path.join(opts.configDir, name + keyext); | 
					
						
							| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  |       return fs.readFile(f, 'utf8').catch(function (err) { | 
					
						
							|  |  |  |         if ('ENOEXIST' === err.code) { | 
					
						
							|  |  |  |           return; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   , setPassword: function (service, name, key) { | 
					
						
							| 
									
										
										
										
											2019-03-09 05:05:37 -07:00
										 |  |  |       var f = path.join(opts.configDir, name + keyext); | 
					
						
							| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  |       return fs.writeFile(f, key, 'utf8'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   , deletePassword: function (service, name) { | 
					
						
							| 
									
										
										
										
											2019-03-09 05:05:37 -07:00
										 |  |  |       var f = path.join(opts.configDir, name + keyext); | 
					
						
							| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  |       return fs.unlink(f); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-09 05:05:37 -07:00
										 |  |  |   , findCredentials: function (/*service*/) { | 
					
						
							|  |  |  |       return fs.readDir(opts.configDir).then(function (nodes) { | 
					
						
							|  |  |  |         return Promise.all(nodes.filter(function (node) { | 
					
						
							|  |  |  |           return keyext === node.slice(-4); | 
					
						
							|  |  |  |         }).map(function (node) { | 
					
						
							|  |  |  |           return fs.readFile(path.join(opts.configDir, node + keyext)); | 
					
						
							|  |  |  |         })); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-03-06 23:18:26 -07:00
										 |  |  |   , insecure: true | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | }; |