UNPKG

ssb-keyring

Version:

A persistence store for encryption keys for scuttlebutt. It's purpose is to make easy to answer box2 encryption/ decryption questions.

66 lines (50 loc) 2.41 kB
/* eslint-disable camelcase */ const test = require('tape') const ssbKeys = require('ssb-keys') const { promisify: p } = require('util') const Keyring = require('../') const { tmpPath } = require('./helpers') test('keyring.signing', async t => { const path = tmpPath() let keyring = await Keyring(path) let DESCRIPTION const testKeys = ssbKeys.generate() /* keys.signing.add(keys, cb) */ DESCRIPTION = 'signing.add, bad keys.id => error' await p(keyring.signing.add)({ junk: true }) .then(res => t.fail(DESCRIPTION)) .catch(err => t.match(err && err.message, /keys.id is not defined/, DESCRIPTION)) // ✓ DESCRIPTION = 'signing.add, bad keys.curve => error' await p(keyring.signing.add)({ ...testKeys, curve: undefined }) .then(res => t.fail(DESCRIPTION)) .catch(err => t.match(err && err.message, /keys.curve is not defined/, DESCRIPTION)) // ✓ DESCRIPTION = 'signing.add, bad keys.public => error' await p(keyring.signing.add)({ ...testKeys, public: undefined }) .then(res => t.fail(DESCRIPTION)) .catch(err => t.match(err && err.message, /keys.public key is not defined/, DESCRIPTION)) // ✓ DESCRIPTION = 'signing.add, bad keys.private => error' await p(keyring.signing.add)({ ...testKeys, private: undefined }) .then(res => t.fail(DESCRIPTION)) .catch(err => t.match(err && err.message, /keys.private key is not defined/, DESCRIPTION)) // ✓ DESCRIPTION = 'signing.add, works! => true' const res = keyring.signing.add(testKeys, (err) => err && t.fail(err, DESCRIPTION)) t.equals(res, true, DESCRIPTION) // ✓ DESCRIPTION = 'signing.add, same key again => false' const res2 = keyring.signing.add(testKeys, (err) => err && t.fail(err, DESCRIPTION)) t.equals(res2, false, DESCRIPTION) // ✓ DESCRIPTION = 'signing.addNamed root => true' const res3 = keyring.signing.addNamed('root', testKeys, (err) => err && t.fail(err, DESCRIPTION)) t.equals(res3, true, DESCRIPTION) // ✓ /* keys.signing.get(id) */ DESCRIPTION = 'signing.get' t.deepEqual(keyring.signing.get(testKeys.id), testKeys, DESCRIPTION) DESCRIPTION = '...persists' await keyring.close() keyring = await Keyring(path) t.deepEqual(keyring.signing.get(testKeys.id), testKeys, DESCRIPTION) /* keys.signing.has(id) */ DESCRIPTION = 'signing.has' t.true(keyring.signing.has(testKeys.id), DESCRIPTION) keyring.close() t.end() })