UNPKG

3box

Version:
115 lines (102 loc) 4.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var Keyring = require('../keyring'); var _require = require('@ethersproject/hdnode'), mnemonicToSeed = _require.mnemonicToSeed; var nacl = require('tweetnacl'); nacl.util = require('tweetnacl-util'); describe('Keyring', function () { var keyring1; var keyring2; var keyring3; var seed = mnemonicToSeed('clay rubber drama brush salute cream nerve wear stuff sentence trade conduct'); it('throws error if no seed', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: expect(function () { return new Keyring(); }).toThrow(); case 1: case "end": return _context.stop(); } } }, _callee); }))); it('derives correct keys from entropy', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: keyring2 = new Keyring('0xf0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b'); keyring3 = new Keyring('0x24a0bc3a2a1d1404c0ab24bef9bb0618938ee892fbf62f63f82f015eddf1729e'); expect(keyring2._seed).toEqual('0xf0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b'); case 3: case "end": return _context2.stop(); } } }, _callee2); }))); it('derives correct keys from seed', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: keyring1 = new Keyring(seed); expect(keyring1.getPublicKeys()).toMatchSnapshot(); expect(keyring1.getPublicKeys(true)).toMatchSnapshot(); expect(keyring1.serialize()).toEqual(seed); case 4: case "end": return _context3.stop(); } } }, _callee3); }))); it('signs data correctly', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.t0 = expect; _context4.next = 3; return keyring1.getJWTSigner()('asdf'); case 3: _context4.t1 = _context4.sent; (0, _context4.t0)(_context4.t1).toMatchSnapshot(); case 5: case "end": return _context4.stop(); } } }, _callee4); }))); it('encrypts and decrypts correctly', function () { var testMsg = "Very secret test message"; var box = keyring1.asymEncrypt(testMsg, keyring2.getPublicKeys().asymEncryptionKey); var cleartext = keyring2.asymDecrypt(box.ciphertext, box.ephemeralFrom, box.nonce); expect(cleartext).toEqual(testMsg); }); it('symmetrically encrypts correctly', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { var testMsg, box, cleartext; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: testMsg = "Very secret test message"; box = keyring2.symEncrypt(testMsg); cleartext = keyring2.symDecrypt(box.ciphertext, box.nonce); expect(cleartext).toEqual(testMsg); case 4: case "end": return _context5.stop(); } } }, _callee5); }))); });