UNPKG

oidc-plus4u-vault

Version:

CLI tool for managing access codes for insomnia-plugin-oidc-plus4u.

31 lines (24 loc) 938 B
const path = require("path"); const fs = require("fs"); const {promisify} = require('util'); const mkdirp = promisify(require("mkdirp")); const homedir = require('os').homedir(); const defaultSecureStoreLoc = path.join(homedir, ".oidc-plus4u-vault", "vault.data"); const mycrypto = require("./mycrypto"); function write(content, password, file = defaultSecureStoreLoc) { mkdirp(path.dirname(file)); let encrypted = mycrypto.encrypt(JSON.stringify(content), password); fs.writeFileSync(file, encrypted); } function read(password, file = defaultSecureStoreLoc) { let encrypted = fs.readFileSync(file); return readFromBytes(password, encrypted); } function readFromBytes(password, bytes) { let decrypted = mycrypto.decrypt(bytes.toString(), password); return JSON.parse(decrypted); } function exists(file = defaultSecureStoreLoc) { return fs.existsSync(file); } module.exports = { read, readFromBytes, write, exists };