From 150222bee58a1230333d689481021709a842230d Mon Sep 17 00:00:00 2001 From: Sanjana Rajan Date: Tue, 25 Sep 2018 16:38:51 -0700 Subject: [PATCH] Release new version --- bower.json | 2 +- dist/compat/openpgp.js | 2933 +++++++++++++++-------------- dist/compat/openpgp.min.js | 4 +- dist/compat/openpgp.worker.min.js | 2 +- dist/openpgp.js | 263 +-- dist/openpgp.min.js | 4 +- dist/openpgp.worker.min.js | 2 +- npm-shrinkwrap.json | 2 +- package.json | 2 +- 9 files changed, 1600 insertions(+), 1614 deletions(-) diff --git a/bower.json b/bower.json index 57fedd49..e342900d 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "openpgp", - "version": "4.0.2", + "version": "4.1.0", "license": "LGPL-3.0+", "homepage": "https://openpgpjs.org/", "authors": [ diff --git a/dist/compat/openpgp.js b/dist/compat/openpgp.js index 84d53e28..7800a741 100644 --- a/dist/compat/openpgp.js +++ b/dist/compat/openpgp.js @@ -29617,7 +29617,7 @@ exports.default = { * @memberof module:config * @property {String} versionstring A version string to be included in armored messages */ - versionstring: "OpenPGP.js v4.0.2", + versionstring: "OpenPGP.js v4.1.0", /** * @memberof module:config * @property {String} commentstring A comment string to be included in armored messages @@ -39088,6 +39088,94 @@ var _asyncToGenerator2 = _dereq_('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); +/** + * Returns the valid and non-expired signature that has the latest creation date, while ignoring signatures created in the future. + * @param {Array} signatures List of signatures + * @param {Date} date Use the given date instead of the current time + * @returns {Promise} The latest valid signature + * @async + */ +var getLatestValidSignature = function () { + var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(signatures, primaryKey, dataToVerify) { + var date = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Date(); + var signature, i; + return _regenerator2.default.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + signature = void 0; + i = signatures.length - 1; + + case 2: + if (!(i >= 0)) { + _context.next = 16; + break; + } + + _context.t0 = (!signature || signatures[i].created >= signature.created) && + // check binding signature is not expired (ie, check for V4 expiration time) + !signatures[i].isExpired(date); + + if (!_context.t0) { + _context.next = 11; + break; + } + + _context.t1 = signatures[i].verified; + + if (_context.t1) { + _context.next = 10; + break; + } + + _context.next = 9; + return signatures[i].verify(primaryKey, dataToVerify); + + case 9: + _context.t1 = _context.sent; + + case 10: + _context.t0 = _context.t1; + + case 11: + if (!_context.t0) { + _context.next = 13; + break; + } + + signature = signatures[i]; + + case 13: + i--; + _context.next = 2; + break; + + case 16: + return _context.abrupt('return', signature); + + case 17: + case 'end': + return _context.stop(); + } + } + }, _callee, this); + })); + + return function getLatestValidSignature(_x3, _x4, _x5) { + return _ref.apply(this, arguments); + }; +}(); + +/** + * Returns last created key or key by given keyId that is available for signing and verification + * @param {module:type/keyid} keyId, optional + * @param {Date} date use the given date for verification instead of the current time + * @param {Object} userId, optional user ID + * @returns {Promise} key or null if no signing key has been found + * @async + */ + + /** * Merges signatures from source[attr] to dest[attr] * @private @@ -39097,73 +39185,73 @@ var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); * @param {Function} checkFn optional, signature only merged if true */ var mergeSignatures = function () { - var _ref19 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee18(source, dest, attr, checkFn) { - return _regenerator2.default.wrap(function _callee18$(_context18) { + var _ref19 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee19(source, dest, attr, checkFn) { + return _regenerator2.default.wrap(function _callee19$(_context19) { while (1) { - switch (_context18.prev = _context18.next) { + switch (_context19.prev = _context19.next) { case 0: source = source[attr]; if (!source) { - _context18.next = 8; + _context19.next = 8; break; } if (dest[attr].length) { - _context18.next = 6; + _context19.next = 6; break; } dest[attr] = source; - _context18.next = 8; + _context19.next = 8; break; case 6: - _context18.next = 8; + _context19.next = 8; return _promise2.default.all(source.map(function () { - var _ref20 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(sourceSig) { - return _regenerator2.default.wrap(function _callee17$(_context17) { + var _ref20 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee18(sourceSig) { + return _regenerator2.default.wrap(function _callee18$(_context18) { while (1) { - switch (_context17.prev = _context17.next) { + switch (_context18.prev = _context18.next) { case 0: - _context17.t1 = !sourceSig.isExpired(); + _context18.t1 = !sourceSig.isExpired(); - if (!_context17.t1) { - _context17.next = 8; + if (!_context18.t1) { + _context18.next = 8; break; } - _context17.t2 = !checkFn; + _context18.t2 = !checkFn; - if (_context17.t2) { - _context17.next = 7; + if (_context18.t2) { + _context18.next = 7; break; } - _context17.next = 6; + _context18.next = 6; return checkFn(sourceSig); case 6: - _context17.t2 = _context17.sent; + _context18.t2 = _context18.sent; case 7: - _context17.t1 = _context17.t2; + _context18.t1 = _context18.t2; case 8: - _context17.t0 = _context17.t1; + _context18.t0 = _context18.t1; - if (!_context17.t0) { - _context17.next = 11; + if (!_context18.t0) { + _context18.next = 11; break; } - _context17.t0 = !dest[attr].some(function (destSig) { + _context18.t0 = !dest[attr].some(function (destSig) { return _util2.default.equalsUint8Array(destSig.signature, sourceSig.signature); }); case 11: - if (!_context17.t0) { - _context17.next = 13; + if (!_context18.t0) { + _context18.next = 13; break; } @@ -39171,26 +39259,26 @@ var mergeSignatures = function () { case 13: case 'end': - return _context17.stop(); + return _context18.stop(); } } - }, _callee17, this); + }, _callee18, this); })); - return function (_x39) { + return function (_x40) { return _ref20.apply(this, arguments); }; }())); case 8: case 'end': - return _context18.stop(); + return _context19.stop(); } } - }, _callee18, this); + }, _callee19, this); })); - return function mergeSignatures(_x35, _x36, _x37, _x38) { + return function mergeSignatures(_x36, _x37, _x38, _x39) { return _ref19.apply(this, arguments); }; }(); @@ -39217,14 +39305,14 @@ var mergeSignatures = function () { * @returns {module:packet/signature} signature packet */ var createSignaturePacket = exports.createSignaturePacket = function () { - var _ref34 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee29(dataToSign, privateKey, signingKeyPacket, signatureProperties, date, userId) { + var _ref35 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee31(dataToSign, privateKey, signingKeyPacket, signatureProperties, date, userId) { var signaturePacket; - return _regenerator2.default.wrap(function _callee29$(_context29) { + return _regenerator2.default.wrap(function _callee31$(_context31) { while (1) { - switch (_context29.prev = _context29.next) { + switch (_context31.prev = _context31.next) { case 0: if (signingKeyPacket.isDecrypted()) { - _context29.next = 2; + _context31.next = 2; break; } @@ -39235,27 +39323,27 @@ var createSignaturePacket = exports.createSignaturePacket = function () { (0, _assign2.default)(signaturePacket, signatureProperties); signaturePacket.publicKeyAlgorithm = signingKeyPacket.algorithm; - _context29.next = 7; + _context31.next = 7; return getPreferredHashAlgo(privateKey, signingKeyPacket, date, userId); case 7: - signaturePacket.hashAlgorithm = _context29.sent; - _context29.next = 10; + signaturePacket.hashAlgorithm = _context31.sent; + _context31.next = 10; return signaturePacket.sign(signingKeyPacket, dataToSign); case 10: - return _context29.abrupt('return', signaturePacket); + return _context31.abrupt('return', signaturePacket); case 11: case 'end': - return _context29.stop(); + return _context31.stop(); } } - }, _callee29, this); + }, _callee31, this); })); - return function createSignaturePacket(_x55, _x56, _x57, _x58, _x59, _x60) { - return _ref34.apply(this, arguments); + return function createSignaturePacket(_x56, _x57, _x58, _x59, _x60, _x61) { + return _ref35.apply(this, arguments); }; }(); @@ -39280,31 +39368,38 @@ var createSignaturePacket = exports.createSignaturePacket = function () { * @static */ var read = exports.read = function () { - var _ref49 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee43(data) { - var result, packetlist, keyIndex, i, oneKeyList, newKey; - return _regenerator2.default.wrap(function _callee43$(_context43) { + var _ref51 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee46(data) { + var result, err, packetlist, keyIndex, i, oneKeyList, newKey; + return _regenerator2.default.wrap(function _callee46$(_context46) { while (1) { - switch (_context43.prev = _context43.next) { + switch (_context46.prev = _context46.next) { case 0: result = {}; result.keys = []; - _context43.prev = 2; + err = []; + _context46.prev = 3; packetlist = new _packet2.default.List(); - _context43.next = 6; + _context46.next = 7; return packetlist.read(data); - case 6: + case 7: + if (packetlist.filterByTag(_enums2.default.packet.signature).some(function (signature) { + return signature.revocationKeyClass !== null; + })) { + // Indicate an error, but still parse the key. + err.push(new Error('This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.')); + } keyIndex = packetlist.indexOfTag(_enums2.default.packet.publicKey, _enums2.default.packet.secretKey); if (!(keyIndex.length === 0)) { - _context43.next = 9; + _context46.next = 11; break; } throw new Error('No key packet found'); - case 9: + case 11: for (i = 0; i < keyIndex.length; i++) { oneKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]); @@ -39313,33 +39408,34 @@ var read = exports.read = function () { result.keys.push(newKey); } catch (e) { - result.err = result.err || []; - result.err.push(e); + err.push(e); } } - _context43.next = 16; + _context46.next = 17; break; - case 12: - _context43.prev = 12; - _context43.t0 = _context43['catch'](2); + case 14: + _context46.prev = 14; + _context46.t0 = _context46['catch'](3); - result.err = result.err || []; - result.err.push(_context43.t0); - - case 16: - return _context43.abrupt('return', result); + err.push(_context46.t0); case 17: + if (err.length) { + result.err = err; + } + return _context46.abrupt('return', result); + + case 19: case 'end': - return _context43.stop(); + return _context46.stop(); } } - }, _callee43, this, [[2, 12]]); + }, _callee46, this, [[3, 14]]); })); - return function read(_x87) { - return _ref49.apply(this, arguments); + return function read(_x89) { + return _ref51.apply(this, arguments); }; }(); @@ -39354,47 +39450,47 @@ var read = exports.read = function () { var readArmored = exports.readArmored = function () { - var _ref50 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee44(armoredText) { + var _ref52 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee47(armoredText) { var input, result; - return _regenerator2.default.wrap(function _callee44$(_context44) { + return _regenerator2.default.wrap(function _callee47$(_context47) { while (1) { - switch (_context44.prev = _context44.next) { + switch (_context47.prev = _context47.next) { case 0: - _context44.prev = 0; - _context44.next = 3; + _context47.prev = 0; + _context47.next = 3; return _armor2.default.decode(armoredText); case 3: - input = _context44.sent; + input = _context47.sent; if (input.type === _enums2.default.armor.public_key || input.type === _enums2.default.armor.private_key) { - _context44.next = 6; + _context47.next = 6; break; } throw new Error('Armored text not of type key'); case 6: - return _context44.abrupt('return', read(input.data)); + return _context47.abrupt('return', read(input.data)); case 9: - _context44.prev = 9; - _context44.t0 = _context44['catch'](0); + _context47.prev = 9; + _context47.t0 = _context47['catch'](0); result = { keys: [], err: [] }; - result.err.push(_context44.t0); - return _context44.abrupt('return', result); + result.err.push(_context47.t0); + return _context47.abrupt('return', result); case 14: case 'end': - return _context44.stop(); + return _context47.stop(); } } - }, _callee44, this, [[0, 9]]); + }, _callee47, this, [[0, 9]]); })); - return function readArmored(_x88) { - return _ref50.apply(this, arguments); + return function readArmored(_x90) { + return _ref52.apply(this, arguments); }; }(); @@ -39422,71 +39518,71 @@ var readArmored = exports.readArmored = function () { var generate = exports.generate = function () { - var _ref51 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee47(options) { + var _ref53 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee50(options) { var generateSecretKey = function () { - var _ref52 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee45(options) { + var _ref54 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee48(options) { var secretKeyPacket; - return _regenerator2.default.wrap(function _callee45$(_context45) { + return _regenerator2.default.wrap(function _callee48$(_context48) { while (1) { - switch (_context45.prev = _context45.next) { + switch (_context48.prev = _context48.next) { case 0: secretKeyPacket = new _packet2.default.SecretKey(options.date); secretKeyPacket.packets = null; secretKeyPacket.algorithm = _enums2.default.read(_enums2.default.publicKey, options.algorithm); - _context45.next = 5; + _context48.next = 5; return secretKeyPacket.generate(options.numBits, options.curve); case 5: - return _context45.abrupt('return', secretKeyPacket); + return _context48.abrupt('return', secretKeyPacket); case 6: case 'end': - return _context45.stop(); + return _context48.stop(); } } - }, _callee45, this); + }, _callee48, this); })); - return function generateSecretKey(_x91) { - return _ref52.apply(this, arguments); + return function generateSecretKey(_x93) { + return _ref54.apply(this, arguments); }; }(); var generateSecretSubkey = function () { - var _ref53 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee46(options) { + var _ref55 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee49(options) { var secretSubkeyPacket; - return _regenerator2.default.wrap(function _callee46$(_context46) { + return _regenerator2.default.wrap(function _callee49$(_context49) { while (1) { - switch (_context46.prev = _context46.next) { + switch (_context49.prev = _context49.next) { case 0: secretSubkeyPacket = new _packet2.default.SecretSubkey(options.date); secretSubkeyPacket.packets = null; secretSubkeyPacket.algorithm = _enums2.default.read(_enums2.default.publicKey, options.algorithm); - _context46.next = 5; + _context49.next = 5; return secretSubkeyPacket.generate(options.numBits, options.curve); case 5: - return _context46.abrupt('return', secretSubkeyPacket); + return _context49.abrupt('return', secretSubkeyPacket); case 6: case 'end': - return _context46.stop(); + return _context49.stop(); } } - }, _callee46, this); + }, _callee49, this); })); - return function generateSecretSubkey(_x92) { - return _ref53.apply(this, arguments); + return function generateSecretSubkey(_x94) { + return _ref55.apply(this, arguments); }; }(); var promises, sanitizeKeyOptions; - return _regenerator2.default.wrap(function _callee47$(_context47) { + return _regenerator2.default.wrap(function _callee50$(_context50) { while (1) { - switch (_context47.prev = _context47.next) { + switch (_context50.prev = _context50.next) { case 0: sanitizeKeyOptions = function sanitizeKeyOptions(options) { var subkeyDefaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -39537,20 +39633,20 @@ var generate = exports.generate = function () { promises = [generateSecretKey(options)]; promises = promises.concat(options.subkeys.map(generateSecretSubkey)); - return _context47.abrupt('return', _promise2.default.all(promises).then(function (packets) { + return _context50.abrupt('return', _promise2.default.all(promises).then(function (packets) { return wrapKeyObject(packets[0], packets.slice(1), options); })); case 7: case 'end': - return _context47.stop(); + return _context50.stop(); } } - }, _callee47, this); + }, _callee50, this); })); - return function generate(_x89) { - return _ref51.apply(this, arguments); + return function generate(_x91) { + return _ref53.apply(this, arguments); }; }(); @@ -39574,11 +39670,11 @@ var generate = exports.generate = function () { var reformat = exports.reformat = function () { - var _ref54 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee48(options) { + var _ref56 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee51(options) { var isDecrypted, packetlist, secretKeyPacket, secretSubkeyPackets, i, sanitizeKeyOptions; - return _regenerator2.default.wrap(function _callee48$(_context48) { + return _regenerator2.default.wrap(function _callee51$(_context51) { while (1) { - switch (_context48.prev = _context48.next) { + switch (_context51.prev = _context51.next) { case 0: sanitizeKeyOptions = function sanitizeKeyOptions(options) { var subkeyDefaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -39592,26 +39688,26 @@ var reformat = exports.reformat = function () { options = sanitizeKeyOptions(options); - _context48.prev = 2; + _context51.prev = 2; isDecrypted = options.privateKey.getKeys().every(function (key) { return key.isDecrypted(); }); if (isDecrypted) { - _context48.next = 7; + _context51.next = 7; break; } - _context48.next = 7; + _context51.next = 7; return options.privateKey.decrypt(); case 7: - _context48.next = 12; + _context51.next = 12; break; case 9: - _context48.prev = 9; - _context48.t0 = _context48['catch'](2); + _context51.prev = 9; + _context51.t0 = _context51['catch'](2); throw new Error('Key not decrypted'); case 12: @@ -39628,7 +39724,7 @@ var reformat = exports.reformat = function () { } if (secretKeyPacket) { - _context48.next = 18; + _context51.next = 18; break; } @@ -39643,7 +39739,7 @@ var reformat = exports.reformat = function () { } if (!(options.subkeys.length !== secretSubkeyPackets.length)) { - _context48.next = 21; + _context51.next = 21; break; } @@ -39655,65 +39751,65 @@ var reformat = exports.reformat = function () { return sanitizeKeyOptions(options.subkeys[index], options); }); - return _context48.abrupt('return', wrapKeyObject(secretKeyPacket, secretSubkeyPackets, options)); + return _context51.abrupt('return', wrapKeyObject(secretKeyPacket, secretSubkeyPackets, options)); case 23: case 'end': - return _context48.stop(); + return _context51.stop(); } } - }, _callee48, this, [[2, 9]]); + }, _callee51, this, [[2, 9]]); })); - return function reformat(_x93) { - return _ref54.apply(this, arguments); + return function reformat(_x95) { + return _ref56.apply(this, arguments); }; }(); var wrapKeyObject = function () { - var _ref55 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee53(secretKeyPacket, secretSubkeyPackets, options) { + var _ref57 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee56(secretKeyPacket, secretSubkeyPackets, options) { var packetlist, dataToSign; - return _regenerator2.default.wrap(function _callee53$(_context53) { + return _regenerator2.default.wrap(function _callee56$(_context56) { while (1) { - switch (_context53.prev = _context53.next) { + switch (_context56.prev = _context56.next) { case 0: if (!options.passphrase) { - _context53.next = 3; + _context56.next = 3; break; } - _context53.next = 3; + _context56.next = 3; return secretKeyPacket.encrypt(options.passphrase); case 3: - _context53.next = 5; + _context56.next = 5; return _promise2.default.all(secretSubkeyPackets.map(function () { - var _ref56 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee49(secretSubkeyPacket, index) { + var _ref58 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee52(secretSubkeyPacket, index) { var subkeyPassphrase; - return _regenerator2.default.wrap(function _callee49$(_context49) { + return _regenerator2.default.wrap(function _callee52$(_context52) { while (1) { - switch (_context49.prev = _context49.next) { + switch (_context52.prev = _context52.next) { case 0: subkeyPassphrase = options.subkeys[index].passphrase; if (!subkeyPassphrase) { - _context49.next = 4; + _context52.next = 4; break; } - _context49.next = 4; + _context52.next = 4; return secretSubkeyPacket.encrypt(subkeyPassphrase); case 4: case 'end': - return _context49.stop(); + return _context52.stop(); } } - }, _callee49, this); + }, _callee52, this); })); - return function (_x98, _x99) { - return _ref56.apply(this, arguments); + return function (_x100, _x101) { + return _ref58.apply(this, arguments); }; }())); @@ -39723,13 +39819,13 @@ var wrapKeyObject = function () { packetlist.push(secretKeyPacket); - _context53.next = 9; + _context56.next = 9; return _promise2.default.all(options.userIds.map(function () { - var _ref57 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee50(userId, index) { + var _ref59 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee53(userId, index) { var userIdPacket, dataToSign, signaturePacket; - return _regenerator2.default.wrap(function _callee50$(_context50) { + return _regenerator2.default.wrap(function _callee53$(_context53) { while (1) { - switch (_context50.prev = _context50.next) { + switch (_context53.prev = _context53.next) { case 0: userIdPacket = new _packet2.default.Userid(); @@ -39743,11 +39839,11 @@ var wrapKeyObject = function () { signaturePacket.signatureType = _enums2.default.signature.cert_generic; signaturePacket.publicKeyAlgorithm = secretKeyPacket.algorithm; - _context50.next = 10; + _context53.next = 10; return getPreferredHashAlgo(null, secretKeyPacket); case 10: - signaturePacket.hashAlgorithm = _context50.sent; + signaturePacket.hashAlgorithm = _context53.sent; signaturePacket.keyFlags = [_enums2.default.keyFlags.certify_keys | _enums2.default.keyFlags.sign_data]; signaturePacket.preferredSymmetricAlgorithms = []; @@ -39786,27 +39882,27 @@ var wrapKeyObject = function () { signaturePacket.keyExpirationTime = options.keyExpirationTime; signaturePacket.keyNeverExpires = false; } - _context50.next = 32; + _context53.next = 32; return signaturePacket.sign(secretKeyPacket, dataToSign); case 32: - return _context50.abrupt('return', { userIdPacket: userIdPacket, signaturePacket: signaturePacket }); + return _context53.abrupt('return', { userIdPacket: userIdPacket, signaturePacket: signaturePacket }); case 33: case 'end': - return _context50.stop(); + return _context53.stop(); } } - }, _callee50, this); + }, _callee53, this); })); - return function (_x100, _x101) { - return _ref57.apply(this, arguments); + return function (_x102, _x103) { + return _ref59.apply(this, arguments); }; }())).then(function (list) { - list.forEach(function (_ref58) { - var userIdPacket = _ref58.userIdPacket, - signaturePacket = _ref58.signaturePacket; + list.forEach(function (_ref60) { + var userIdPacket = _ref60.userIdPacket, + signaturePacket = _ref60.signaturePacket; packetlist.push(userIdPacket); packetlist.push(signaturePacket); @@ -39814,13 +39910,13 @@ var wrapKeyObject = function () { }); case 9: - _context53.next = 11; + _context56.next = 11; return _promise2.default.all(secretSubkeyPackets.map(function () { - var _ref59 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee51(secretSubkeyPacket, index) { + var _ref61 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee54(secretSubkeyPacket, index) { var subkeyOptions, dataToSign, subkeySignaturePacket; - return _regenerator2.default.wrap(function _callee51$(_context51) { + return _regenerator2.default.wrap(function _callee54$(_context54) { while (1) { - switch (_context51.prev = _context51.next) { + switch (_context54.prev = _context54.next) { case 0: subkeyOptions = options.subkeys[index]; dataToSign = {}; @@ -39831,38 +39927,38 @@ var wrapKeyObject = function () { subkeySignaturePacket.signatureType = _enums2.default.signature.subkey_binding; subkeySignaturePacket.publicKeyAlgorithm = secretKeyPacket.algorithm; - _context51.next = 9; + _context54.next = 9; return getPreferredHashAlgo(null, secretSubkeyPacket); case 9: - subkeySignaturePacket.hashAlgorithm = _context51.sent; + subkeySignaturePacket.hashAlgorithm = _context54.sent; subkeySignaturePacket.keyFlags = subkeyOptions.sign ? _enums2.default.keyFlags.sign_data : [_enums2.default.keyFlags.encrypt_communication | _enums2.default.keyFlags.encrypt_storage]; if (subkeyOptions.keyExpirationTime > 0) { subkeySignaturePacket.keyExpirationTime = subkeyOptions.keyExpirationTime; subkeySignaturePacket.keyNeverExpires = false; } - _context51.next = 14; + _context54.next = 14; return subkeySignaturePacket.sign(secretKeyPacket, dataToSign); case 14: - return _context51.abrupt('return', { secretSubkeyPacket: secretSubkeyPacket, subkeySignaturePacket: subkeySignaturePacket }); + return _context54.abrupt('return', { secretSubkeyPacket: secretSubkeyPacket, subkeySignaturePacket: subkeySignaturePacket }); case 15: case 'end': - return _context51.stop(); + return _context54.stop(); } } - }, _callee51, this); + }, _callee54, this); })); - return function (_x102, _x103) { - return _ref59.apply(this, arguments); + return function (_x104, _x105) { + return _ref61.apply(this, arguments); }; }())).then(function (packets) { - packets.forEach(function (_ref60) { - var secretSubkeyPacket = _ref60.secretSubkeyPacket, - subkeySignaturePacket = _ref60.subkeySignaturePacket; + packets.forEach(function (_ref62) { + var secretSubkeyPacket = _ref62.secretSubkeyPacket, + subkeySignaturePacket = _ref62.subkeySignaturePacket; packetlist.push(secretSubkeyPacket); packetlist.push(subkeySignaturePacket); @@ -39874,8 +39970,8 @@ var wrapKeyObject = function () { // Add revocation signature packet for creating a revocation certificate. // This packet should be removed before returning the key. dataToSign = { key: secretKeyPacket }; - _context53.t0 = packetlist; - _context53.next = 15; + _context56.t0 = packetlist; + _context56.next = 15; return createSignaturePacket(dataToSign, null, secretKeyPacket, { signatureType: _enums2.default.signature.key_revocation, reasonForRevocationFlag: _enums2.default.reasonForRevocation.no_reason, @@ -39883,22 +39979,22 @@ var wrapKeyObject = function () { }, options.date); case 15: - _context53.t1 = _context53.sent; + _context56.t1 = _context56.sent; - _context53.t0.push.call(_context53.t0, _context53.t1); + _context56.t0.push.call(_context56.t0, _context56.t1); // set passphrase protection if (options.passphrase) { secretKeyPacket.clearPrivateParams(); } - _context53.next = 20; + _context56.next = 20; return _promise2.default.all(secretSubkeyPackets.map(function () { - var _ref61 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee52(secretSubkeyPacket, index) { + var _ref63 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee55(secretSubkeyPacket, index) { var subkeyPassphrase; - return _regenerator2.default.wrap(function _callee52$(_context52) { + return _regenerator2.default.wrap(function _callee55$(_context55) { while (1) { - switch (_context52.prev = _context52.next) { + switch (_context55.prev = _context55.next) { case 0: subkeyPassphrase = options.subkeys[index].passphrase; @@ -39908,30 +40004,30 @@ var wrapKeyObject = function () { case 2: case 'end': - return _context52.stop(); + return _context55.stop(); } } - }, _callee52, this); + }, _callee55, this); })); - return function (_x104, _x105) { - return _ref61.apply(this, arguments); + return function (_x106, _x107) { + return _ref63.apply(this, arguments); }; }())); case 20: - return _context53.abrupt('return', new Key(packetlist)); + return _context56.abrupt('return', new Key(packetlist)); case 21: case 'end': - return _context53.stop(); + return _context56.stop(); } } - }, _callee53, this); + }, _callee56, this); })); - return function wrapKeyObject(_x95, _x96, _x97) { - return _ref55.apply(this, arguments); + return function wrapKeyObject(_x97, _x98, _x99) { + return _ref57.apply(this, arguments); }; }(); @@ -39953,96 +40049,96 @@ var wrapKeyObject = function () { var isDataRevoked = function () { - var _ref62 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee55(primaryKey, dataToVerify, revocations, signature, key) { + var _ref64 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee58(primaryKey, dataToVerify, revocations, signature, key) { var date = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : new Date(); var normDate, revocationKeyIds; - return _regenerator2.default.wrap(function _callee55$(_context55) { + return _regenerator2.default.wrap(function _callee58$(_context58) { while (1) { - switch (_context55.prev = _context55.next) { + switch (_context58.prev = _context58.next) { case 0: key = key || primaryKey; normDate = _util2.default.normalizeDate(date); revocationKeyIds = []; - _context55.next = 5; + _context58.next = 5; return _promise2.default.all(revocations.map(function () { - var _ref63 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee54(revocationSignature) { - return _regenerator2.default.wrap(function _callee54$(_context54) { + var _ref65 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee57(revocationSignature) { + return _regenerator2.default.wrap(function _callee57$(_context57) { while (1) { - switch (_context54.prev = _context54.next) { + switch (_context57.prev = _context57.next) { case 0: - _context54.t0 = !(_config2.default.revocations_expire && revocationSignature.isExpired(normDate)); + _context57.t0 = (!signature || revocationSignature.issuerKeyId.equals(signature.issuerKeyId)) && !(_config2.default.revocations_expire && revocationSignature.isExpired(normDate)); - if (!_context54.t0) { - _context54.next = 8; + if (!_context57.t0) { + _context57.next = 8; break; } - _context54.t1 = revocationSignature.verified; + _context57.t1 = revocationSignature.verified; - if (_context54.t1) { - _context54.next = 7; + if (_context57.t1) { + _context57.next = 7; break; } - _context54.next = 6; + _context57.next = 6; return revocationSignature.verify(key, dataToVerify); case 6: - _context54.t1 = _context54.sent; + _context57.t1 = _context57.sent; case 7: - _context54.t0 = _context54.t1; + _context57.t0 = _context57.t1; case 8: - if (!_context54.t0) { - _context54.next = 11; + if (!_context57.t0) { + _context57.next = 11; break; } // TODO get an identifier of the revoked object instead revocationKeyIds.push(revocationSignature.issuerKeyId); - return _context54.abrupt('return', true); + return _context57.abrupt('return', true); case 11: - return _context54.abrupt('return', false); + return _context57.abrupt('return', false); case 12: case 'end': - return _context54.stop(); + return _context57.stop(); } } - }, _callee54, this); + }, _callee57, this); })); - return function (_x112) { - return _ref63.apply(this, arguments); + return function (_x114) { + return _ref65.apply(this, arguments); }; }())); case 5: if (!signature) { - _context55.next = 8; + _context58.next = 8; break; } signature.revoked = revocationKeyIds.some(function (keyId) { return keyId.equals(signature.issuerKeyId); - }) ? true : signature.revoked; - return _context55.abrupt('return', signature.revoked); + }) ? true : signature.revoked || false; + return _context58.abrupt('return', signature.revoked); case 8: - return _context55.abrupt('return', revocationKeyIds.length > 0); + return _context58.abrupt('return', revocationKeyIds.length > 0); case 9: case 'end': - return _context55.stop(); + return _context58.stop(); } } - }, _callee55, this); + }, _callee58, this); })); - return function isDataRevoked(_x106, _x107, _x108, _x109, _x110) { - return _ref62.apply(this, arguments); + return function isDataRevoked(_x108, _x109, _x110, _x111, _x112) { + return _ref64.apply(this, arguments); }; }(); @@ -40056,29 +40152,29 @@ var isDataRevoked = function () { * @async */ var getPreferredHashAlgo = exports.getPreferredHashAlgo = function () { - var _ref64 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee56(key, keyPacket) { + var _ref66 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee59(key, keyPacket) { var date = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date(); var userId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var hash_algo, pref_algo, primaryUser, _primaryUser$selfCert; - return _regenerator2.default.wrap(function _callee56$(_context56) { + return _regenerator2.default.wrap(function _callee59$(_context59) { while (1) { - switch (_context56.prev = _context56.next) { + switch (_context59.prev = _context59.next) { case 0: hash_algo = _config2.default.prefer_hash_algorithm; pref_algo = hash_algo; if (!(key instanceof Key)) { - _context56.next = 7; + _context59.next = 7; break; } - _context56.next = 5; + _context59.next = 5; return key.getPrimaryUser(date, userId); case 5: - primaryUser = _context56.sent; + primaryUser = _context59.sent; if (primaryUser && primaryUser.selfCertification.preferredHashAlgorithms) { _primaryUser$selfCert = (0, _slicedToArray3.default)(primaryUser.selfCertification.preferredHashAlgorithms, 1); @@ -40100,18 +40196,18 @@ var getPreferredHashAlgo = exports.getPreferredHashAlgo = function () { pref_algo = _crypto2.default.publicKey.elliptic.getPreferredHashAlgo(keyPacket.params[0]); } } - return _context56.abrupt('return', _crypto2.default.hash.getHashByteLength(hash_algo) <= _crypto2.default.hash.getHashByteLength(pref_algo) ? pref_algo : hash_algo); + return _context59.abrupt('return', _crypto2.default.hash.getHashByteLength(hash_algo) <= _crypto2.default.hash.getHashByteLength(pref_algo) ? pref_algo : hash_algo); case 9: case 'end': - return _context56.stop(); + return _context59.stop(); } } - }, _callee56, this); + }, _callee59, this); })); - return function getPreferredHashAlgo(_x114, _x115) { - return _ref64.apply(this, arguments); + return function getPreferredHashAlgo(_x116, _x117) { + return _ref66.apply(this, arguments); }; }(); @@ -40127,37 +40223,37 @@ var getPreferredHashAlgo = exports.getPreferredHashAlgo = function () { var getPreferredAlgo = exports.getPreferredAlgo = function () { - var _ref65 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee58(type, keys) { + var _ref67 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee61(type, keys) { var date = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date(); var userId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var prefProperty, defaultAlgo, prioMap, prefAlgo; - return _regenerator2.default.wrap(function _callee58$(_context58) { + return _regenerator2.default.wrap(function _callee61$(_context61) { while (1) { - switch (_context58.prev = _context58.next) { + switch (_context61.prev = _context61.next) { case 0: prefProperty = type === 'symmetric' ? 'preferredSymmetricAlgorithms' : 'preferredAeadAlgorithms'; defaultAlgo = type === 'symmetric' ? _config2.default.encryption_cipher : _config2.default.aead_mode; prioMap = {}; - _context58.next = 5; + _context61.next = 5; return _promise2.default.all(keys.map(function () { - var _ref66 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee57(key) { + var _ref68 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee60(key) { var primaryUser; - return _regenerator2.default.wrap(function _callee57$(_context57) { + return _regenerator2.default.wrap(function _callee60$(_context60) { while (1) { - switch (_context57.prev = _context57.next) { + switch (_context60.prev = _context60.next) { case 0: - _context57.next = 2; + _context60.next = 2; return key.getPrimaryUser(date, userId); case 2: - primaryUser = _context57.sent; + primaryUser = _context60.sent; if (!(!primaryUser || !primaryUser.selfCertification[prefProperty])) { - _context57.next = 5; + _context60.next = 5; break; } - return _context57.abrupt('return', defaultAlgo); + return _context60.abrupt('return', defaultAlgo); case 5: primaryUser.selfCertification[prefProperty].forEach(function (algo, index) { @@ -40168,24 +40264,24 @@ var getPreferredAlgo = exports.getPreferredAlgo = function () { case 6: case 'end': - return _context57.stop(); + return _context60.stop(); } } - }, _callee57, this); + }, _callee60, this); })); - return function (_x122) { - return _ref66.apply(this, arguments); + return function (_x124) { + return _ref68.apply(this, arguments); }; }())); case 5: prefAlgo = { prio: 0, algo: defaultAlgo }; - (0, _values2.default)(prioMap).forEach(function (_ref67) { - var prio = _ref67.prio, - count = _ref67.count, - algo = _ref67.algo; + (0, _values2.default)(prioMap).forEach(function (_ref69) { + var prio = _ref69.prio, + count = _ref69.count, + algo = _ref69.algo; try { if (algo !== _enums2.default[type].plaintext && algo !== _enums2.default[type].idea && // not implemented @@ -40196,18 +40292,18 @@ var getPreferredAlgo = exports.getPreferredAlgo = function () { } } catch (e) {} }); - return _context58.abrupt('return', prefAlgo.algo); + return _context61.abrupt('return', prefAlgo.algo); case 8: case 'end': - return _context58.stop(); + return _context61.stop(); } } - }, _callee58, this); + }, _callee61, this); })); - return function getPreferredAlgo(_x118, _x119) { - return _ref65.apply(this, arguments); + return function getPreferredAlgo(_x120, _x121) { + return _ref67.apply(this, arguments); }; }(); @@ -40221,30 +40317,30 @@ var getPreferredAlgo = exports.getPreferredAlgo = function () { var isAeadSupported = exports.isAeadSupported = function () { - var _ref68 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee60(keys) { + var _ref70 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee63(keys) { var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); var userId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var supported; - return _regenerator2.default.wrap(function _callee60$(_context60) { + return _regenerator2.default.wrap(function _callee63$(_context63) { while (1) { - switch (_context60.prev = _context60.next) { + switch (_context63.prev = _context63.next) { case 0: supported = true; // TODO replace when Promise.some or Promise.any are implemented - _context60.next = 3; + _context63.next = 3; return _promise2.default.all(keys.map(function () { - var _ref69 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee59(key) { + var _ref71 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee62(key) { var primaryUser; - return _regenerator2.default.wrap(function _callee59$(_context59) { + return _regenerator2.default.wrap(function _callee62$(_context62) { while (1) { - switch (_context59.prev = _context59.next) { + switch (_context62.prev = _context62.next) { case 0: - _context59.next = 2; + _context62.next = 2; return key.getPrimaryUser(date, userId); case 2: - primaryUser = _context59.sent; + primaryUser = _context62.sent; if (!primaryUser || !primaryUser.selfCertification.features || !(primaryUser.selfCertification.features[0] & _enums2.default.features.aead)) { supported = false; @@ -40252,30 +40348,30 @@ var isAeadSupported = exports.isAeadSupported = function () { case 4: case 'end': - return _context59.stop(); + return _context62.stop(); } } - }, _callee59, this); + }, _callee62, this); })); - return function (_x126) { - return _ref69.apply(this, arguments); + return function (_x128) { + return _ref71.apply(this, arguments); }; }())); case 3: - return _context60.abrupt('return', supported); + return _context63.abrupt('return', supported); case 4: case 'end': - return _context60.stop(); + return _context63.stop(); } } - }, _callee60, this); + }, _callee63, this); })); - return function isAeadSupported(_x123) { - return _ref68.apply(this, arguments); + return function isAeadSupported(_x125) { + return _ref70.apply(this, arguments); }; }(); @@ -40573,60 +40669,34 @@ Key.prototype.toPublic = function () { Key.prototype.armor = function () { var type = this.isPublic() ? _enums2.default.armor.public_key : _enums2.default.armor.private_key; return _armor2.default.encode(type, this.toPacketlist().write()); -}; - -/** - * Returns the signature that has the latest creation date, while ignoring signatures created in the future. - * @param {Array} signatures List of signatures - * @param {Date} date Use the given date instead of the current time - * @returns {module:packet.Signature} The latest signature - */ -function getLatestSignature(signatures) { - var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); - - var signature = signatures[0]; - for (var i = 1; i < signatures.length; i++) { - if (signatures[i].created >= signature.created && (signatures[i].created <= date || date === null)) { - signature = signatures[i]; - } - } - return signature; -} - -function isValidSigningKeyPacket(keyPacket, signature) { - var date = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date(); - - return keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.rsa_encrypt) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.elgamal) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.ecdh) && (!signature.keyFlags || (signature.keyFlags[0] & _enums2.default.keyFlags.sign_data) !== 0) && signature.verified && !signature.revoked && !signature.isExpired(date) && !isDataExpired(keyPacket, signature, date); -} - -/** - * Returns last created key or key by given keyId that is available for signing and verification - * @param {module:type/keyid} keyId, optional - * @param {Date} date use the given date for verification instead of the current time - * @param {Object} userId, optional user ID - * @returns {Promise} key or null if no signing key has been found - * @async - */ -Key.prototype.getSigningKey = function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { +};Key.prototype.getSigningKey = function () { + var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { var keyId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); var userId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var primaryKey, subKeys, i, bindingSignature, primaryUser; - return _regenerator2.default.wrap(function _callee$(_context) { + var primaryKey, subKeys, i, dataToVerify, bindingSignature, primaryUser, isValidSigningKeyPacket; + return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { - switch (_context.prev = _context.next) { + switch (_context2.prev = _context2.next) { case 0: + isValidSigningKeyPacket = function isValidSigningKeyPacket(keyPacket, signature) { + if (!signature.verified || signature.revoked !== false) { + // Sanity check + throw new Error('Signature not verified'); + } + return keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.rsa_encrypt) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.elgamal) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.ecdh) && (!signature.keyFlags || (signature.keyFlags[0] & _enums2.default.keyFlags.sign_data) !== 0); + }; + primaryKey = this.keyPacket; - _context.next = 3; + _context2.next = 4; return this.verifyPrimaryKey(date, userId); - case 3: - _context.t0 = _context.sent; - _context.t1 = _enums2.default.keyStatus.valid; + case 4: + _context2.t0 = _context2.sent; + _context2.t1 = _enums2.default.keyStatus.valid; - if (!(_context.t0 === _context.t1)) { - _context.next = 26; + if (!(_context2.t0 === _context2.t1)) { + _context2.next = 30; break; } @@ -40635,79 +40705,78 @@ Key.prototype.getSigningKey = function () { }); i = 0; - case 8: + case 9: if (!(i < subKeys.length)) { - _context.next = 21; + _context2.next = 25; break; } if (!(!keyId || subKeys[i].getKeyId().equals(keyId))) { - _context.next = 18; + _context2.next = 22; break; } - _context.next = 12; + _context2.next = 13; return subKeys[i].verify(primaryKey, date); - case 12: - _context.t2 = _context.sent; - _context.t3 = _enums2.default.keyStatus.valid; + case 13: + _context2.t2 = _context2.sent; + _context2.t3 = _enums2.default.keyStatus.valid; - if (!(_context.t2 === _context.t3)) { - _context.next = 18; + if (!(_context2.t2 === _context2.t3)) { + _context2.next = 22; break; } - bindingSignature = getLatestSignature(subKeys[i].bindingSignatures, date); + dataToVerify = { key: primaryKey, bind: subKeys[i].keyPacket }; + _context2.next = 19; + return getLatestValidSignature(subKeys[i].bindingSignatures, primaryKey, dataToVerify, date); - if (!isValidSigningKeyPacket(subKeys[i].keyPacket, bindingSignature, date)) { - _context.next = 18; + case 19: + bindingSignature = _context2.sent; + + if (!(bindingSignature && isValidSigningKeyPacket(subKeys[i].keyPacket, bindingSignature))) { + _context2.next = 22; break; } - return _context.abrupt('return', subKeys[i]); + return _context2.abrupt('return', subKeys[i]); - case 18: + case 22: i++; - _context.next = 8; + _context2.next = 9; break; - case 21: - _context.next = 23; + case 25: + _context2.next = 27; return this.getPrimaryUser(date, userId); - case 23: - primaryUser = _context.sent; + case 27: + primaryUser = _context2.sent; - if (!(primaryUser && (!keyId || primaryKey.getKeyId().equals(keyId)) && isValidSigningKeyPacket(primaryKey, primaryUser.selfCertification, date))) { - _context.next = 26; + if (!(primaryUser && (!keyId || primaryKey.getKeyId().equals(keyId)) && isValidSigningKeyPacket(primaryKey, primaryUser.selfCertification))) { + _context2.next = 30; break; } - return _context.abrupt('return', this); + return _context2.abrupt('return', this); - case 26: - return _context.abrupt('return', null); + case 30: + return _context2.abrupt('return', null); - case 27: + case 31: case 'end': - return _context.stop(); + return _context2.stop(); } } - }, _callee, this); + }, _callee2, this); })); return function () { - return _ref.apply(this, arguments); + return _ref2.apply(this, arguments); }; }(); -function isValidEncryptionKeyPacket(keyPacket, signature) { - var date = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date(); - - return keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.dsa) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.rsa_sign) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.ecdsa) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.eddsa) && (!signature.keyFlags || (signature.keyFlags[0] & _enums2.default.keyFlags.encrypt_communication) !== 0 || (signature.keyFlags[0] & _enums2.default.keyFlags.encrypt_storage) !== 0) && signature.verified && !signature.revoked && !signature.isExpired(date) && !isDataExpired(keyPacket, signature, date); -} - /** * Returns last created key or key by given keyId that is available for encryption or decryption * @param {module:type/keyid} keyId, optional @@ -40717,24 +40786,32 @@ function isValidEncryptionKeyPacket(keyPacket, signature) { * @async */ Key.prototype.getEncryptionKey = function () { - var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(keyId) { + var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(keyId) { var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); var userId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var primaryKey, subKeys, i, bindingSignature, primaryUser; - return _regenerator2.default.wrap(function _callee2$(_context2) { + var primaryKey, subKeys, i, dataToVerify, bindingSignature, primaryUser, isValidEncryptionKeyPacket; + return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { - switch (_context2.prev = _context2.next) { + switch (_context3.prev = _context3.next) { case 0: + isValidEncryptionKeyPacket = function isValidEncryptionKeyPacket(keyPacket, signature) { + if (!signature.verified || signature.revoked !== false) { + // Sanity check + throw new Error('Signature not verified'); + } + return keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.dsa) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.rsa_sign) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.ecdsa) && keyPacket.algorithm !== _enums2.default.read(_enums2.default.publicKey, _enums2.default.publicKey.eddsa) && (!signature.keyFlags || (signature.keyFlags[0] & _enums2.default.keyFlags.encrypt_communication) !== 0 || (signature.keyFlags[0] & _enums2.default.keyFlags.encrypt_storage) !== 0); + }; + primaryKey = this.keyPacket; - _context2.next = 3; + _context3.next = 4; return this.verifyPrimaryKey(date, userId); - case 3: - _context2.t0 = _context2.sent; - _context2.t1 = _enums2.default.keyStatus.valid; + case 4: + _context3.t0 = _context3.sent; + _context3.t1 = _enums2.default.keyStatus.valid; - if (!(_context2.t0 === _context2.t1)) { - _context2.next = 26; + if (!(_context3.t0 === _context3.t1)) { + _context3.next = 30; break; } @@ -40744,70 +40821,75 @@ Key.prototype.getEncryptionKey = function () { }); i = 0; - case 8: + case 9: if (!(i < subKeys.length)) { - _context2.next = 21; + _context3.next = 25; break; } if (!(!keyId || subKeys[i].getKeyId().equals(keyId))) { - _context2.next = 18; + _context3.next = 22; break; } - _context2.next = 12; + _context3.next = 13; return subKeys[i].verify(primaryKey, date); - case 12: - _context2.t2 = _context2.sent; - _context2.t3 = _enums2.default.keyStatus.valid; + case 13: + _context3.t2 = _context3.sent; + _context3.t3 = _enums2.default.keyStatus.valid; - if (!(_context2.t2 === _context2.t3)) { - _context2.next = 18; + if (!(_context3.t2 === _context3.t3)) { + _context3.next = 22; break; } - bindingSignature = getLatestSignature(subKeys[i].bindingSignatures, date); + dataToVerify = { key: primaryKey, bind: subKeys[i].keyPacket }; + _context3.next = 19; + return getLatestValidSignature(subKeys[i].bindingSignatures, primaryKey, dataToVerify, date); - if (!isValidEncryptionKeyPacket(subKeys[i].keyPacket, bindingSignature, date)) { - _context2.next = 18; + case 19: + bindingSignature = _context3.sent; + + if (!(bindingSignature && isValidEncryptionKeyPacket(subKeys[i].keyPacket, bindingSignature))) { + _context3.next = 22; break; } - return _context2.abrupt('return', subKeys[i]); + return _context3.abrupt('return', subKeys[i]); - case 18: + case 22: i++; - _context2.next = 8; + _context3.next = 9; break; - case 21: - _context2.next = 23; + case 25: + _context3.next = 27; return this.getPrimaryUser(date, userId); - case 23: - primaryUser = _context2.sent; + case 27: + primaryUser = _context3.sent; - if (!(primaryUser && (!keyId || primaryKey.getKeyId().equals(keyId)) && isValidEncryptionKeyPacket(primaryKey, primaryUser.selfCertification, date))) { - _context2.next = 26; + if (!(primaryUser && (!keyId || primaryKey.getKeyId().equals(keyId)) && isValidEncryptionKeyPacket(primaryKey, primaryUser.selfCertification))) { + _context3.next = 30; break; } - return _context2.abrupt('return', this); + return _context3.abrupt('return', this); - case 26: - return _context2.abrupt('return', null); + case 30: + return _context3.abrupt('return', null); - case 27: + case 31: case 'end': - return _context2.stop(); + return _context3.stop(); } } - }, _callee2, this); + }, _callee3, this); })); - return function (_x9) { - return _ref2.apply(this, arguments); + return function (_x10) { + return _ref3.apply(this, arguments); }; }(); @@ -40819,15 +40901,15 @@ Key.prototype.getEncryptionKey = function () { * @async */ Key.prototype.encrypt = function () { - var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(passphrases) { + var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(passphrases) { var keyId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var keys; - return _regenerator2.default.wrap(function _callee4$(_context4) { + return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { - switch (_context4.prev = _context4.next) { + switch (_context5.prev = _context5.next) { case 0: if (this.isPrivate()) { - _context4.next = 2; + _context5.next = 2; break; } @@ -40839,51 +40921,51 @@ Key.prototype.encrypt = function () { passphrases = _util2.default.isArray(passphrases) ? passphrases : new Array(keys.length).fill(passphrases); if (!(passphrases.length !== keys.length)) { - _context4.next = 6; + _context5.next = 6; break; } throw new Error("Invalid number of passphrases for key"); case 6: - return _context4.abrupt('return', _promise2.default.all(keys.map(function () { - var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(key, i) { + return _context5.abrupt('return', _promise2.default.all(keys.map(function () { + var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(key, i) { var keyPacket; - return _regenerator2.default.wrap(function _callee3$(_context3) { + return _regenerator2.default.wrap(function _callee4$(_context4) { while (1) { - switch (_context3.prev = _context3.next) { + switch (_context4.prev = _context4.next) { case 0: keyPacket = key.keyPacket; - _context3.next = 3; + _context4.next = 3; return keyPacket.encrypt(passphrases[i]); case 3: keyPacket.clearPrivateParams(); - return _context3.abrupt('return', keyPacket); + return _context4.abrupt('return', keyPacket); case 5: case 'end': - return _context3.stop(); + return _context4.stop(); } } - }, _callee3, this); + }, _callee4, this); })); - return function (_x14, _x15) { - return _ref4.apply(this, arguments); + return function (_x15, _x16) { + return _ref5.apply(this, arguments); }; }()))); case 7: case 'end': - return _context4.stop(); + return _context5.stop(); } } - }, _callee4, this); + }, _callee5, this); })); - return function (_x12) { - return _ref3.apply(this, arguments); + return function (_x13) { + return _ref4.apply(this, arguments); }; }(); @@ -40895,15 +40977,15 @@ Key.prototype.encrypt = function () { * @async */ Key.prototype.decrypt = function () { - var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(passphrases) { + var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(passphrases) { var keyId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var results; - return _regenerator2.default.wrap(function _callee7$(_context7) { + return _regenerator2.default.wrap(function _callee8$(_context8) { while (1) { - switch (_context7.prev = _context7.next) { + switch (_context8.prev = _context8.next) { case 0: if (this.isPrivate()) { - _context7.next = 2; + _context8.next = 2; break; } @@ -40912,91 +40994,91 @@ Key.prototype.decrypt = function () { case 2: passphrases = _util2.default.isArray(passphrases) ? passphrases : [passphrases]; - _context7.next = 5; + _context8.next = 5; return _promise2.default.all(this.getKeys(keyId).map(function () { - var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(key) { + var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(key) { var decrypted, error; - return _regenerator2.default.wrap(function _callee6$(_context6) { + return _regenerator2.default.wrap(function _callee7$(_context7) { while (1) { - switch (_context6.prev = _context6.next) { + switch (_context7.prev = _context7.next) { case 0: decrypted = false; error = null; - _context6.next = 4; + _context7.next = 4; return _promise2.default.all(passphrases.map(function () { - var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(passphrase) { - return _regenerator2.default.wrap(function _callee5$(_context5) { + var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(passphrase) { + return _regenerator2.default.wrap(function _callee6$(_context6) { while (1) { - switch (_context5.prev = _context5.next) { + switch (_context6.prev = _context6.next) { case 0: - _context5.prev = 0; - _context5.next = 3; + _context6.prev = 0; + _context6.next = 3; return key.keyPacket.decrypt(passphrase); case 3: decrypted = true; - _context5.next = 9; + _context6.next = 9; break; case 6: - _context5.prev = 6; - _context5.t0 = _context5['catch'](0); + _context6.prev = 6; + _context6.t0 = _context6['catch'](0); - error = _context5.t0; + error = _context6.t0; case 9: case 'end': - return _context5.stop(); + return _context6.stop(); } } - }, _callee5, this, [[0, 6]]); + }, _callee6, this, [[0, 6]]); })); - return function (_x19) { - return _ref7.apply(this, arguments); + return function (_x20) { + return _ref8.apply(this, arguments); }; }())); case 4: if (decrypted) { - _context6.next = 6; + _context7.next = 6; break; } throw error; case 6: - return _context6.abrupt('return', decrypted); + return _context7.abrupt('return', decrypted); case 7: case 'end': - return _context6.stop(); + return _context7.stop(); } } - }, _callee6, this); + }, _callee7, this); })); - return function (_x18) { - return _ref6.apply(this, arguments); + return function (_x19) { + return _ref7.apply(this, arguments); }; }())); case 5: - results = _context7.sent; - return _context7.abrupt('return', results.every(function (result) { + results = _context8.sent; + return _context8.abrupt('return', results.every(function (result) { return result === true; })); case 7: case 'end': - return _context7.stop(); + return _context8.stop(); } } - }, _callee7, this); + }, _callee8, this); })); - return function (_x16) { - return _ref5.apply(this, arguments); + return function (_x17) { + return _ref6.apply(this, arguments); }; }(); @@ -41013,24 +41095,24 @@ Key.prototype.decrypt = function () { * @async */ Key.prototype.isRevoked = function () { - var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(signature, key) { + var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(signature, key) { var date = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date(); - return _regenerator2.default.wrap(function _callee8$(_context8) { + return _regenerator2.default.wrap(function _callee9$(_context9) { while (1) { - switch (_context8.prev = _context8.next) { + switch (_context9.prev = _context9.next) { case 0: - return _context8.abrupt('return', isDataRevoked(this.keyPacket, { key: this.keyPacket }, this.revocationSignatures, signature, key, date)); + return _context9.abrupt('return', isDataRevoked(this.keyPacket, { key: this.keyPacket }, this.revocationSignatures, signature, key, date)); case 1: case 'end': - return _context8.stop(); + return _context9.stop(); } } - }, _callee8, this); + }, _callee9, this); })); - return function (_x20, _x21) { - return _ref8.apply(this, arguments); + return function (_x21, _x22) { + return _ref9.apply(this, arguments); }; }(); @@ -41043,115 +41125,116 @@ Key.prototype.isRevoked = function () { * @async */ Key.prototype.verifyPrimaryKey = function () { - var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9() { + var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10() { var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); var userId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var primaryKey, _ref10, user, selfCertification; + var primaryKey, _ref11, user, selfCertification; - return _regenerator2.default.wrap(function _callee9$(_context9) { + return _regenerator2.default.wrap(function _callee10$(_context10) { while (1) { - switch (_context9.prev = _context9.next) { + switch (_context10.prev = _context10.next) { case 0: primaryKey = this.keyPacket; // check for key revocation signatures - _context9.next = 3; + _context10.next = 3; return this.isRevoked(null, null, date); case 3: - if (!_context9.sent) { - _context9.next = 5; + if (!_context10.sent) { + _context10.next = 5; break; } - return _context9.abrupt('return', _enums2.default.keyStatus.revoked); + return _context10.abrupt('return', _enums2.default.keyStatus.revoked); case 5: if (this.users.some(function (user) { return user.userId && user.selfCertifications.length; })) { - _context9.next = 7; + _context10.next = 7; break; } - return _context9.abrupt('return', _enums2.default.keyStatus.no_self_cert); + return _context10.abrupt('return', _enums2.default.keyStatus.no_self_cert); case 7: - _context9.next = 9; + _context10.next = 9; return this.getPrimaryUser(date, userId); case 9: - _context9.t0 = _context9.sent; + _context10.t0 = _context10.sent; - if (_context9.t0) { - _context9.next = 12; + if (_context10.t0) { + _context10.next = 12; break; } - _context9.t0 = {}; + _context10.t0 = {}; case 12: - _ref10 = _context9.t0; - user = _ref10.user; - selfCertification = _ref10.selfCertification; + _ref11 = _context10.t0; + user = _ref11.user; + selfCertification = _ref11.selfCertification; if (user) { - _context9.next = 17; + _context10.next = 17; break; } - return _context9.abrupt('return', _enums2.default.keyStatus.invalid); + return _context10.abrupt('return', _enums2.default.keyStatus.invalid); case 17: if (!isDataExpired(primaryKey, selfCertification, date)) { - _context9.next = 19; + _context10.next = 19; break; } - return _context9.abrupt('return', _enums2.default.keyStatus.expired); + return _context10.abrupt('return', _enums2.default.keyStatus.expired); case 19: - return _context9.abrupt('return', _enums2.default.keyStatus.valid); + return _context10.abrupt('return', _enums2.default.keyStatus.valid); case 20: case 'end': - return _context9.stop(); + return _context10.stop(); } } - }, _callee9, this); + }, _callee10, this); })); return function () { - return _ref9.apply(this, arguments); + return _ref10.apply(this, arguments); }; }(); /** * Returns the latest date when the key can be used for encrypting, signing, or both, depending on the `capabilities` paramater. * When `capabilities` is null, defaults to returning the expiry date of the primary key. + * Returns null if `capabilities` is passed and the key does not have the specified capabilities or is revoked or invalid. * Returns Infinity if the key doesn't expire. * @param {encrypt|sign|encrypt_sign} capabilities, optional * @param {module:type/keyid} keyId, optional * @param {Object} userId, optional user ID - * @returns {Promise} + * @returns {Promise} * @async */ Key.prototype.getExpirationTime = function () { - var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(capabilities, keyId, userId) { + var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(capabilities, keyId, userId) { var primaryUser, selfCert, keyExpiry, sigExpiry, expiry, encryptKey, encryptExpiry, signKey, signExpiry; - return _regenerator2.default.wrap(function _callee10$(_context10) { + return _regenerator2.default.wrap(function _callee11$(_context11) { while (1) { - switch (_context10.prev = _context10.next) { + switch (_context11.prev = _context11.next) { case 0: - _context10.next = 2; + _context11.next = 2; return this.getPrimaryUser(null); case 2: - primaryUser = _context10.sent; + primaryUser = _context11.sent; if (primaryUser) { - _context10.next = 5; + _context11.next = 5; break; } @@ -41164,65 +41247,73 @@ Key.prototype.getExpirationTime = function () { expiry = keyExpiry < sigExpiry ? keyExpiry : sigExpiry; if (!(capabilities === 'encrypt' || capabilities === 'encrypt_sign')) { - _context10.next = 17; + _context11.next = 19; break; } - _context10.next = 12; + _context11.next = 12; return this.getEncryptionKey(keyId, null, userId); case 12: - encryptKey = _context10.sent; + encryptKey = _context11.sent; if (encryptKey) { - _context10.next = 15; + _context11.next = 15; break; } - return _context10.abrupt('return', null); + return _context11.abrupt('return', null); case 15: - encryptExpiry = encryptKey.getExpirationTime(); + _context11.next = 17; + return encryptKey.getExpirationTime(this.keyPacket); + + case 17: + encryptExpiry = _context11.sent; if (encryptExpiry < expiry) expiry = encryptExpiry; - case 17: + case 19: if (!(capabilities === 'sign' || capabilities === 'encrypt_sign')) { - _context10.next = 25; + _context11.next = 29; break; } - _context10.next = 20; + _context11.next = 22; return this.getSigningKey(keyId, null, userId); - case 20: - signKey = _context10.sent; + case 22: + signKey = _context11.sent; if (signKey) { - _context10.next = 23; + _context11.next = 25; break; } - return _context10.abrupt('return', null); + return _context11.abrupt('return', null); - case 23: - signExpiry = signKey.getExpirationTime(); + case 25: + _context11.next = 27; + return signKey.getExpirationTime(this.keyPacket); + + case 27: + signExpiry = _context11.sent; if (signExpiry < expiry) expiry = signExpiry; - case 25: - return _context10.abrupt('return', expiry); + case 29: + return _context11.abrupt('return', expiry); - case 26: + case 30: case 'end': - return _context10.stop(); + return _context11.stop(); } } - }, _callee10, this); + }, _callee11, this); })); - return function (_x25, _x26, _x27) { - return _ref11.apply(this, arguments); + return function (_x26, _x27, _x28) { + return _ref12.apply(this, arguments); }; }(); @@ -41237,40 +41328,75 @@ Key.prototype.getExpirationTime = function () { * @async */ Key.prototype.getPrimaryUser = function () { - var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11() { + var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12() { var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); var userId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var users, primaryUser, user, cert, primaryKey, dataToVerify; - return _regenerator2.default.wrap(function _callee11$(_context11) { + + var primaryKey, users, i, _user, dataToVerify, selfCertification, primaryUser, user, cert; + + return _regenerator2.default.wrap(function _callee12$(_context12) { while (1) { - switch (_context11.prev = _context11.next) { + switch (_context12.prev = _context12.next) { case 0: - users = this.users.map(function (user, index) { - var selfCertification = getLatestSignature(user.selfCertifications, date); - return { index: index, user: user, selfCertification: selfCertification }; - }).filter(function (_ref13) { - var user = _ref13.user, - selfCertification = _ref13.selfCertification; + primaryKey = this.keyPacket; + users = []; + i = 0; - return user.userId && selfCertification && (userId.name === undefined || user.userId.name === userId.name) && (userId.email === undefined || user.userId.email === userId.email) && (userId.comment === undefined || user.userId.comment === userId.comment); - }); + case 3: + if (!(i < this.users.length)) { + _context12.next = 17; + break; + } + _user = this.users[i]; + + if (!(!_user.userId || !((userId.name === undefined || _user.userId.name === userId.name) && (userId.email === undefined || _user.userId.email === userId.email) && (userId.comment === undefined || _user.userId.comment === userId.comment)))) { + _context12.next = 7; + break; + } + + return _context12.abrupt('continue', 14); + + case 7: + dataToVerify = { userId: _user.userId, key: primaryKey }; + _context12.next = 10; + return getLatestValidSignature(_user.selfCertifications, primaryKey, dataToVerify, date); + + case 10: + selfCertification = _context12.sent; + + if (selfCertification) { + _context12.next = 13; + break; + } + + return _context12.abrupt('continue', 14); + + case 13: + users.push({ index: i, user: _user, selfCertification: selfCertification }); + + case 14: + i++; + _context12.next = 3; + break; + + case 17: if (users.length) { - _context11.next = 5; + _context12.next = 21; break; } if (!(userId.name !== undefined || userId.email !== undefined || userId.comment !== undefined)) { - _context11.next = 4; + _context12.next = 20; break; } throw new Error('Could not find user that matches that user ID'); - case 4: - return _context11.abrupt('return', null); + case 20: + return _context12.abrupt('return', null); - case 5: + case 21: // sort by primary user flag and signature creation time primaryUser = users.sort(function (a, b) { var A = a.selfCertification; @@ -41278,74 +41404,40 @@ Key.prototype.getPrimaryUser = function () { return A.isPrimaryUserID - B.isPrimaryUserID || A.created - B.created; }).pop(); user = primaryUser.user, cert = primaryUser.selfCertification; - primaryKey = this.keyPacket; - dataToVerify = { userId: user.userId, key: primaryKey }; - // skip if certificates is invalid, revoked, or expired + _context12.t0 = cert.revoked; - _context11.t0 = cert.verified; - - if (_context11.t0) { - _context11.next = 14; + if (_context12.t0) { + _context12.next = 28; break; } - _context11.next = 13; - return cert.verify(primaryKey, dataToVerify); - - case 13: - _context11.t0 = _context11.sent; - - case 14: - if (_context11.t0) { - _context11.next = 16; - break; - } - - return _context11.abrupt('return', null); - - case 16: - _context11.t1 = cert.revoked; - - if (_context11.t1) { - _context11.next = 21; - break; - } - - _context11.next = 20; + _context12.next = 27; return user.isRevoked(primaryKey, cert, null, date); - case 20: - _context11.t1 = _context11.sent; + case 27: + _context12.t0 = _context12.sent; - case 21: - if (!_context11.t1) { - _context11.next = 23; + case 28: + if (!_context12.t0) { + _context12.next = 30; break; } - return _context11.abrupt('return', null); + return _context12.abrupt('return', null); - case 23: - if (!cert.isExpired(date)) { - _context11.next = 25; - break; - } + case 30: + return _context12.abrupt('return', primaryUser); - return _context11.abrupt('return', null); - - case 25: - return _context11.abrupt('return', primaryUser); - - case 26: + case 31: case 'end': - return _context11.stop(); + return _context12.stop(); } } - }, _callee11, this); + }, _callee12, this); })); return function () { - return _ref12.apply(this, arguments); + return _ref13.apply(this, arguments); }; }(); @@ -41361,31 +41453,31 @@ Key.prototype.getPrimaryUser = function () { * @async */ Key.prototype.update = function () { - var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(key) { + var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(key) { var _this = this; var equal; - return _regenerator2.default.wrap(function _callee16$(_context16) { + return _regenerator2.default.wrap(function _callee17$(_context17) { while (1) { - switch (_context16.prev = _context16.next) { + switch (_context17.prev = _context17.next) { case 0: - _context16.next = 2; + _context17.next = 2; return key.verifyPrimaryKey(); case 2: - _context16.t0 = _context16.sent; - _context16.t1 = _enums2.default.keyStatus.invalid; + _context17.t0 = _context17.sent; + _context17.t1 = _enums2.default.keyStatus.invalid; - if (!(_context16.t0 === _context16.t1)) { - _context16.next = 6; + if (!(_context17.t0 === _context17.t1)) { + _context17.next = 6; break; } - return _context16.abrupt('return'); + return _context17.abrupt('return'); case 6: if (!(this.getFingerprint() !== key.getFingerprint())) { - _context16.next = 8; + _context17.next = 8; break; } @@ -41393,7 +41485,7 @@ Key.prototype.update = function () { case 8: if (!(this.isPublic() && key.isPrivate())) { - _context16.next = 13; + _context17.next = 13; break; } @@ -41405,7 +41497,7 @@ Key.prototype.update = function () { }); if (equal) { - _context16.next = 12; + _context17.next = 12; break; } @@ -41415,38 +41507,38 @@ Key.prototype.update = function () { this.keyPacket = key.keyPacket; case 13: - _context16.next = 15; + _context17.next = 15; return mergeSignatures(key, this, 'revocationSignatures', function (srcRevSig) { return isDataRevoked(_this.keyPacket, _this, [srcRevSig], null, key.keyPacket); }); case 15: - _context16.next = 17; + _context17.next = 17; return mergeSignatures(key, this, 'directSignatures'); case 17: - _context16.next = 19; + _context17.next = 19; return _promise2.default.all(key.users.map(function () { - var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(srcUser) { + var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(srcUser) { var found; - return _regenerator2.default.wrap(function _callee13$(_context13) { + return _regenerator2.default.wrap(function _callee14$(_context14) { while (1) { - switch (_context13.prev = _context13.next) { + switch (_context14.prev = _context14.next) { case 0: found = false; - _context13.next = 3; + _context14.next = 3; return _promise2.default.all(_this.users.map(function () { - var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(dstUser) { - return _regenerator2.default.wrap(function _callee12$(_context12) { + var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(dstUser) { + return _regenerator2.default.wrap(function _callee13$(_context13) { while (1) { - switch (_context12.prev = _context12.next) { + switch (_context13.prev = _context13.next) { case 0: if (!(srcUser.userId && dstUser.userId && srcUser.userId.userid === dstUser.userId.userid || srcUser.userAttribute && srcUser.userAttribute.equals(dstUser.userAttribute))) { - _context12.next = 4; + _context13.next = 4; break; } - _context12.next = 3; + _context13.next = 3; return dstUser.update(srcUser, _this.keyPacket); case 3: @@ -41454,13 +41546,13 @@ Key.prototype.update = function () { case 4: case 'end': - return _context12.stop(); + return _context13.stop(); } } - }, _callee12, _this); + }, _callee13, _this); })); - return function (_x32) { + return function (_x33) { return _ref16.apply(this, arguments); }; }())); @@ -41472,40 +41564,40 @@ Key.prototype.update = function () { case 4: case 'end': - return _context13.stop(); + return _context14.stop(); } } - }, _callee13, _this); + }, _callee14, _this); })); - return function (_x31) { + return function (_x32) { return _ref15.apply(this, arguments); }; }())); case 19: - _context16.next = 21; + _context17.next = 21; return _promise2.default.all(key.subKeys.map(function () { - var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(srcSubKey) { + var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(srcSubKey) { var found; - return _regenerator2.default.wrap(function _callee15$(_context15) { + return _regenerator2.default.wrap(function _callee16$(_context16) { while (1) { - switch (_context15.prev = _context15.next) { + switch (_context16.prev = _context16.next) { case 0: found = false; - _context15.next = 3; + _context16.next = 3; return _promise2.default.all(_this.subKeys.map(function () { - var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(dstSubKey) { - return _regenerator2.default.wrap(function _callee14$(_context14) { + var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(dstSubKey) { + return _regenerator2.default.wrap(function _callee15$(_context15) { while (1) { - switch (_context14.prev = _context14.next) { + switch (_context15.prev = _context15.next) { case 0: if (!(srcSubKey.getFingerprint() === dstSubKey.getFingerprint())) { - _context14.next = 4; + _context15.next = 4; break; } - _context14.next = 3; + _context15.next = 3; return dstSubKey.update(srcSubKey, _this.keyPacket); case 3: @@ -41513,13 +41605,13 @@ Key.prototype.update = function () { case 4: case 'end': - return _context14.stop(); + return _context15.stop(); } } - }, _callee14, _this); + }, _callee15, _this); })); - return function (_x34) { + return function (_x35) { return _ref18.apply(this, arguments); }; }())); @@ -41531,30 +41623,30 @@ Key.prototype.update = function () { case 4: case 'end': - return _context15.stop(); + return _context16.stop(); } } - }, _callee15, _this); + }, _callee16, _this); })); - return function (_x33) { + return function (_x34) { return _ref17.apply(this, arguments); }; }())); case 21: case 'end': - return _context16.stop(); + return _context17.stop(); } } - }, _callee16, this); + }, _callee17, this); })); - return function (_x30) { + return function (_x31) { return _ref14.apply(this, arguments); }; }();Key.prototype.revoke = function () { - var _ref21 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee19() { + var _ref21 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee20() { var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref22$flag = _ref22.flag, reasonForRevocationFlag = _ref22$flag === undefined ? _enums2.default.reasonForRevocation.no_reason : _ref22$flag, @@ -41563,12 +41655,12 @@ Key.prototype.update = function () { var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); var dataToSign, key; - return _regenerator2.default.wrap(function _callee19$(_context19) { + return _regenerator2.default.wrap(function _callee20$(_context20) { while (1) { - switch (_context19.prev = _context19.next) { + switch (_context20.prev = _context20.next) { case 0: if (!this.isPublic()) { - _context19.next = 2; + _context20.next = 2; break; } @@ -41577,8 +41669,8 @@ Key.prototype.update = function () { case 2: dataToSign = { key: this.keyPacket }; key = new Key(this.toPacketlist()); - _context19.t0 = key.revocationSignatures; - _context19.next = 7; + _context20.t0 = key.revocationSignatures; + _context20.next = 7; return createSignaturePacket(dataToSign, null, this.keyPacket, { signatureType: _enums2.default.signature.key_revocation, reasonForRevocationFlag: _enums2.default.write(_enums2.default.reasonForRevocation, reasonForRevocationFlag), @@ -41586,18 +41678,18 @@ Key.prototype.update = function () { }, date); case 7: - _context19.t1 = _context19.sent; + _context20.t1 = _context20.sent; - _context19.t0.push.call(_context19.t0, _context19.t1); + _context20.t0.push.call(_context20.t0, _context20.t1); - return _context19.abrupt('return', key); + return _context20.abrupt('return', key); case 10: case 'end': - return _context19.stop(); + return _context20.stop(); } } - }, _callee19, this); + }, _callee20, this); })); return function () { @@ -41608,15 +41700,39 @@ Key.prototype.update = function () { /** * Get revocation certificate from a revoked key. * (To get a revocation certificate for an unrevoked key, call revoke() first.) - * @returns {String} armored revocation certificate + * @returns {Promise} armored revocation certificate + * @async */ -Key.prototype.getRevocationCertificate = function () { - if (this.revocationSignatures.length) { - var packetlist = new _packet2.default.List(); - packetlist.push(getLatestSignature(this.revocationSignatures)); - return _armor2.default.encode(_enums2.default.armor.public_key, packetlist.write(), null, null, 'This is a revocation certificate'); - } -}; +Key.prototype.getRevocationCertificate = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee21() { + var dataToVerify, revocationSignature, packetlist; + return _regenerator2.default.wrap(function _callee21$(_context21) { + while (1) { + switch (_context21.prev = _context21.next) { + case 0: + dataToVerify = { key: this.keyPacket }; + _context21.next = 3; + return getLatestValidSignature(this.revocationSignatures, this.keyPacket, dataToVerify); + + case 3: + revocationSignature = _context21.sent; + + if (!revocationSignature) { + _context21.next = 8; + break; + } + + packetlist = new _packet2.default.List(); + + packetlist.push(revocationSignature); + return _context21.abrupt('return', _armor2.default.encode(_enums2.default.armor.public_key, packetlist.write(), null, null, 'This is a revocation certificate')); + + case 8: + case 'end': + return _context21.stop(); + } + } + }, _callee21, this); +})); /** * Applies a revocation certificate to a key @@ -41627,26 +41743,26 @@ Key.prototype.getRevocationCertificate = function () { * @async */ Key.prototype.applyRevocationCertificate = function () { - var _ref23 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee20(revocationCertificate) { + var _ref24 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee22(revocationCertificate) { var input, packetlist, revocationSignature, key; - return _regenerator2.default.wrap(function _callee20$(_context20) { + return _regenerator2.default.wrap(function _callee22$(_context22) { while (1) { - switch (_context20.prev = _context20.next) { + switch (_context22.prev = _context22.next) { case 0: - _context20.next = 2; + _context22.next = 2; return _armor2.default.decode(revocationCertificate); case 2: - input = _context20.sent; + input = _context22.sent; packetlist = new _packet2.default.List(); - _context20.next = 6; + _context22.next = 6; return packetlist.read(input.data); case 6: revocationSignature = packetlist.findPacket(_enums2.default.packet.signature); if (!(!revocationSignature || revocationSignature.signatureType !== _enums2.default.signature.key_revocation)) { - _context20.next = 9; + _context22.next = 9; break; } @@ -41654,7 +41770,7 @@ Key.prototype.applyRevocationCertificate = function () { case 9: if (revocationSignature.issuerKeyId.equals(this.getKeyId())) { - _context20.next = 11; + _context22.next = 11; break; } @@ -41662,19 +41778,19 @@ Key.prototype.applyRevocationCertificate = function () { case 11: if (!revocationSignature.isExpired()) { - _context20.next = 13; + _context22.next = 13; break; } throw new Error('Revocation signature is expired'); case 13: - _context20.next = 15; + _context22.next = 15; return revocationSignature.verify(this.keyPacket, { key: this.keyPacket }); case 15: - if (_context20.sent) { - _context20.next = 17; + if (_context22.sent) { + _context22.next = 17; break; } @@ -41684,18 +41800,18 @@ Key.prototype.applyRevocationCertificate = function () { key = new Key(this.toPacketlist()); key.revocationSignatures.push(revocationSignature); - return _context20.abrupt('return', key); + return _context22.abrupt('return', key); case 20: case 'end': - return _context20.stop(); + return _context22.stop(); } } - }, _callee20, this); + }, _callee22, this); })); - return function (_x42) { - return _ref23.apply(this, arguments); + return function (_x43) { + return _ref24.apply(this, arguments); }; }(); @@ -41706,59 +41822,59 @@ Key.prototype.applyRevocationCertificate = function () { * @async */ Key.prototype.signPrimaryUser = function () { - var _ref24 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee21(privateKeys) { - var _ref25, index, user, userSign, key; + var _ref25 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee23(privateKeys) { + var _ref26, index, user, userSign, key; - return _regenerator2.default.wrap(function _callee21$(_context21) { + return _regenerator2.default.wrap(function _callee23$(_context23) { while (1) { - switch (_context21.prev = _context21.next) { + switch (_context23.prev = _context23.next) { case 0: - _context21.next = 2; + _context23.next = 2; return this.getPrimaryUser(); case 2: - _context21.t0 = _context21.sent; + _context23.t0 = _context23.sent; - if (_context21.t0) { - _context21.next = 5; + if (_context23.t0) { + _context23.next = 5; break; } - _context21.t0 = {}; + _context23.t0 = {}; case 5: - _ref25 = _context21.t0; - index = _ref25.index; - user = _ref25.user; + _ref26 = _context23.t0; + index = _ref26.index; + user = _ref26.user; if (user) { - _context21.next = 10; + _context23.next = 10; break; } throw new Error('Could not find primary user'); case 10: - _context21.next = 12; + _context23.next = 12; return user.sign(this.keyPacket, privateKeys); case 12: - userSign = _context21.sent; + userSign = _context23.sent; key = new Key(this.toPacketlist()); key.users[index] = userSign; - return _context21.abrupt('return', key); + return _context23.abrupt('return', key); case 16: case 'end': - return _context21.stop(); + return _context23.stop(); } } - }, _callee21, this); + }, _callee23, this); })); - return function (_x43) { - return _ref24.apply(this, arguments); + return function (_x44) { + return _ref25.apply(this, arguments); }; }(); @@ -41769,33 +41885,33 @@ Key.prototype.signPrimaryUser = function () { * @async */ Key.prototype.signAllUsers = function () { - var _ref26 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee22(privateKeys) { + var _ref27 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee24(privateKeys) { var that, key; - return _regenerator2.default.wrap(function _callee22$(_context22) { + return _regenerator2.default.wrap(function _callee24$(_context24) { while (1) { - switch (_context22.prev = _context22.next) { + switch (_context24.prev = _context24.next) { case 0: that = this; key = new Key(this.toPacketlist()); - _context22.next = 4; + _context24.next = 4; return _promise2.default.all(this.users.map(function (user) { return user.sign(that.keyPacket, privateKeys); })); case 4: - key.users = _context22.sent; - return _context22.abrupt('return', key); + key.users = _context24.sent; + return _context24.abrupt('return', key); case 6: case 'end': - return _context22.stop(); + return _context24.stop(); } } - }, _callee22, this); + }, _callee24, this); })); - return function (_x44) { - return _ref26.apply(this, arguments); + return function (_x45) { + return _ref27.apply(this, arguments); }; }(); @@ -41809,33 +41925,33 @@ Key.prototype.signAllUsers = function () { * @async */ Key.prototype.verifyPrimaryUser = function () { - var _ref27 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee23(keys) { - var primaryKey, _ref28, user, results; + var _ref28 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee25(keys) { + var primaryKey, _ref29, user, results; - return _regenerator2.default.wrap(function _callee23$(_context23) { + return _regenerator2.default.wrap(function _callee25$(_context25) { while (1) { - switch (_context23.prev = _context23.next) { + switch (_context25.prev = _context25.next) { case 0: primaryKey = this.keyPacket; - _context23.next = 3; + _context25.next = 3; return this.getPrimaryUser(); case 3: - _context23.t0 = _context23.sent; + _context25.t0 = _context25.sent; - if (_context23.t0) { - _context23.next = 6; + if (_context25.t0) { + _context25.next = 6; break; } - _context23.t0 = {}; + _context25.t0 = {}; case 6: - _ref28 = _context23.t0; - user = _ref28.user; + _ref29 = _context25.t0; + user = _ref29.user; if (user) { - _context23.next = 10; + _context25.next = 10; break; } @@ -41843,47 +41959,47 @@ Key.prototype.verifyPrimaryUser = function () { case 10: if (!keys) { - _context23.next = 16; + _context25.next = 16; break; } - _context23.next = 13; + _context25.next = 13; return user.verifyAllCertifications(primaryKey, keys); case 13: - _context23.t1 = _context23.sent; - _context23.next = 24; + _context25.t1 = _context25.sent; + _context25.next = 24; break; case 16: - _context23.t2 = primaryKey.keyid; - _context23.next = 19; + _context25.t2 = primaryKey.keyid; + _context25.next = 19; return user.verify(primaryKey); case 19: - _context23.t3 = _context23.sent; - _context23.t4 = _enums2.default.keyStatus.valid; - _context23.t5 = _context23.t3 === _context23.t4; - _context23.t6 = { - keyid: _context23.t2, - valid: _context23.t5 + _context25.t3 = _context25.sent; + _context25.t4 = _enums2.default.keyStatus.valid; + _context25.t5 = _context25.t3 === _context25.t4; + _context25.t6 = { + keyid: _context25.t2, + valid: _context25.t5 }; - _context23.t1 = [_context23.t6]; + _context25.t1 = [_context25.t6]; case 24: - results = _context23.t1; - return _context23.abrupt('return', results); + results = _context25.t1; + return _context25.abrupt('return', results); case 26: case 'end': - return _context23.stop(); + return _context25.stop(); } } - }, _callee23, this); + }, _callee25, this); })); - return function (_x45) { - return _ref27.apply(this, arguments); + return function (_x46) { + return _ref28.apply(this, arguments); }; }(); @@ -41898,52 +42014,52 @@ Key.prototype.verifyPrimaryUser = function () { * @async */ Key.prototype.verifyAllUsers = function () { - var _ref29 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee25(keys) { + var _ref30 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee27(keys) { var results, primaryKey; - return _regenerator2.default.wrap(function _callee25$(_context25) { + return _regenerator2.default.wrap(function _callee27$(_context27) { while (1) { - switch (_context25.prev = _context25.next) { + switch (_context27.prev = _context27.next) { case 0: results = []; primaryKey = this.keyPacket; - _context25.next = 4; + _context27.next = 4; return _promise2.default.all(this.users.map(function () { - var _ref30 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee24(user) { + var _ref31 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee26(user) { var signatures; - return _regenerator2.default.wrap(function _callee24$(_context24) { + return _regenerator2.default.wrap(function _callee26$(_context26) { while (1) { - switch (_context24.prev = _context24.next) { + switch (_context26.prev = _context26.next) { case 0: if (!keys) { - _context24.next = 6; + _context26.next = 6; break; } - _context24.next = 3; + _context26.next = 3; return user.verifyAllCertifications(primaryKey, keys); case 3: - _context24.t0 = _context24.sent; - _context24.next = 14; + _context26.t0 = _context26.sent; + _context26.next = 14; break; case 6: - _context24.t1 = primaryKey.keyid; - _context24.next = 9; + _context26.t1 = primaryKey.keyid; + _context26.next = 9; return user.verify(primaryKey); case 9: - _context24.t2 = _context24.sent; - _context24.t3 = _enums2.default.keyStatus.valid; - _context24.t4 = _context24.t2 === _context24.t3; - _context24.t5 = { - keyid: _context24.t1, - valid: _context24.t4 + _context26.t2 = _context26.sent; + _context26.t3 = _enums2.default.keyStatus.valid; + _context26.t4 = _context26.t2 === _context26.t3; + _context26.t5 = { + keyid: _context26.t1, + valid: _context26.t4 }; - _context24.t0 = [_context24.t5]; + _context26.t0 = [_context26.t5]; case 14: - signatures = _context24.t0; + signatures = _context26.t0; signatures.forEach(function (signature) { results.push({ @@ -41955,30 +42071,30 @@ Key.prototype.verifyAllUsers = function () { case 16: case 'end': - return _context24.stop(); + return _context26.stop(); } } - }, _callee24, this); + }, _callee26, this); })); - return function (_x47) { - return _ref30.apply(this, arguments); + return function (_x48) { + return _ref31.apply(this, arguments); }; }())); case 4: - return _context25.abrupt('return', results); + return _context27.abrupt('return', results); case 5: case 'end': - return _context25.stop(); + return _context27.stop(); } } - }, _callee25, this); + }, _callee27, this); })); - return function (_x46) { - return _ref29.apply(this, arguments); + return function (_x47) { + return _ref30.apply(this, arguments); }; }(); @@ -42019,11 +42135,11 @@ User.prototype.toPacketlist = function () { * @async */ User.prototype.sign = function () { - var _ref31 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee27(primaryKey, privateKeys) { + var _ref32 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee29(primaryKey, privateKeys) { var dataToSign, user; - return _regenerator2.default.wrap(function _callee27$(_context27) { + return _regenerator2.default.wrap(function _callee29$(_context29) { while (1) { - switch (_context27.prev = _context27.next) { + switch (_context29.prev = _context29.next) { case 0: dataToSign = { userId: this.userId, @@ -42031,16 +42147,16 @@ User.prototype.sign = function () { key: primaryKey }; user = new User(dataToSign.userId || dataToSign.userAttribute); - _context27.next = 4; + _context29.next = 4; return _promise2.default.all(privateKeys.map(function () { - var _ref32 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee26(privateKey) { + var _ref33 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee28(privateKey) { var signingKey; - return _regenerator2.default.wrap(function _callee26$(_context26) { + return _regenerator2.default.wrap(function _callee28$(_context28) { while (1) { - switch (_context26.prev = _context26.next) { + switch (_context28.prev = _context28.next) { case 0: if (!privateKey.isPublic()) { - _context26.next = 2; + _context28.next = 2; break; } @@ -42048,28 +42164,28 @@ User.prototype.sign = function () { case 2: if (!(privateKey.getFingerprint() === primaryKey.getFingerprint())) { - _context26.next = 4; + _context28.next = 4; break; } throw new Error('Not implemented for self signing'); case 4: - _context26.next = 6; + _context28.next = 6; return privateKey.getSigningKey(); case 6: - signingKey = _context26.sent; + signingKey = _context28.sent; if (signingKey) { - _context26.next = 9; + _context28.next = 9; break; } throw new Error('Could not find valid signing key packet in key ' + privateKey.getKeyId().toHex()); case 9: - return _context26.abrupt('return', createSignaturePacket(dataToSign, privateKey, signingKey.keyPacket, { + return _context28.abrupt('return', createSignaturePacket(dataToSign, privateKey, signingKey.keyPacket, { // Most OpenPGP implementations use generic certification (0x10) signatureType: _enums2.default.signature.cert_generic, keyFlags: [_enums2.default.keyFlags.certify_keys | _enums2.default.keyFlags.sign_data] @@ -42077,35 +42193,35 @@ User.prototype.sign = function () { case 10: case 'end': - return _context26.stop(); + return _context28.stop(); } } - }, _callee26, this); + }, _callee28, this); })); - return function (_x50) { - return _ref32.apply(this, arguments); + return function (_x51) { + return _ref33.apply(this, arguments); }; }())); case 4: - user.otherCertifications = _context27.sent; - _context27.next = 7; + user.otherCertifications = _context29.sent; + _context29.next = 7; return user.update(this, primaryKey); case 7: - return _context27.abrupt('return', user); + return _context29.abrupt('return', user); case 8: case 'end': - return _context27.stop(); + return _context29.stop(); } } - }, _callee27, this); + }, _callee29, this); })); - return function (_x48, _x49) { - return _ref31.apply(this, arguments); + return function (_x49, _x50) { + return _ref32.apply(this, arguments); }; }(); @@ -42123,13 +42239,13 @@ User.prototype.sign = function () { * @async */ User.prototype.isRevoked = function () { - var _ref33 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee28(primaryKey, certificate, key) { + var _ref34 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee30(primaryKey, certificate, key) { var date = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Date(); - return _regenerator2.default.wrap(function _callee28$(_context28) { + return _regenerator2.default.wrap(function _callee30$(_context30) { while (1) { - switch (_context28.prev = _context28.next) { + switch (_context30.prev = _context30.next) { case 0: - return _context28.abrupt('return', isDataRevoked(primaryKey, { + return _context30.abrupt('return', isDataRevoked(primaryKey, { key: primaryKey, userId: this.userId, userAttribute: this.userAttribute @@ -42137,22 +42253,22 @@ User.prototype.isRevoked = function () { case 1: case 'end': - return _context28.stop(); + return _context30.stop(); } } - }, _callee28, this); + }, _callee30, this); })); - return function (_x51, _x52, _x53) { - return _ref33.apply(this, arguments); + return function (_x52, _x53, _x54) { + return _ref34.apply(this, arguments); }; }();User.prototype.verifyCertificate = function () { - var _ref35 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee31(primaryKey, certificate, keys) { + var _ref36 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee33(primaryKey, certificate, keys) { var date = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Date(); var that, keyid, dataToVerify, results; - return _regenerator2.default.wrap(function _callee31$(_context31) { + return _regenerator2.default.wrap(function _callee33$(_context33) { while (1) { - switch (_context31.prev = _context31.next) { + switch (_context33.prev = _context33.next) { case 0: that = this; keyid = certificate.issuerKeyId; @@ -42161,112 +42277,112 @@ User.prototype.isRevoked = function () { userAttribute: this.userAttribute, key: primaryKey }; - _context31.next = 5; + _context33.next = 5; return _promise2.default.all(keys.map(function () { - var _ref36 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee30(key) { + var _ref37 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee32(key) { var signingKey; - return _regenerator2.default.wrap(function _callee30$(_context30) { + return _regenerator2.default.wrap(function _callee32$(_context32) { while (1) { - switch (_context30.prev = _context30.next) { + switch (_context32.prev = _context32.next) { case 0: if (key.getKeyIds().some(function (id) { return id.equals(keyid); })) { - _context30.next = 2; + _context32.next = 2; break; } - return _context30.abrupt('return'); + return _context32.abrupt('return'); case 2: - _context30.next = 4; + _context32.next = 4; return key.getSigningKey(keyid, date); case 4: - signingKey = _context30.sent; - _context30.t0 = certificate.revoked; + signingKey = _context32.sent; + _context32.t0 = certificate.revoked; - if (_context30.t0) { - _context30.next = 10; + if (_context32.t0) { + _context32.next = 10; break; } - _context30.next = 9; + _context32.next = 9; return that.isRevoked(primaryKey, certificate, signingKey.keyPacket); case 9: - _context30.t0 = _context30.sent; + _context32.t0 = _context32.sent; case 10: - if (!_context30.t0) { - _context30.next = 12; + if (!_context32.t0) { + _context32.next = 12; break; } - return _context30.abrupt('return', _enums2.default.keyStatus.revoked); + return _context32.abrupt('return', _enums2.default.keyStatus.revoked); case 12: - _context30.t1 = certificate.verified; + _context32.t1 = certificate.verified; - if (_context30.t1) { - _context30.next = 17; + if (_context32.t1) { + _context32.next = 17; break; } - _context30.next = 16; + _context32.next = 16; return certificate.verify(signingKey.keyPacket, dataToVerify); case 16: - _context30.t1 = _context30.sent; + _context32.t1 = _context32.sent; case 17: - if (_context30.t1) { - _context30.next = 19; + if (_context32.t1) { + _context32.next = 19; break; } - return _context30.abrupt('return', _enums2.default.keyStatus.invalid); + return _context32.abrupt('return', _enums2.default.keyStatus.invalid); case 19: if (!certificate.isExpired()) { - _context30.next = 21; + _context32.next = 21; break; } - return _context30.abrupt('return', _enums2.default.keyStatus.expired); + return _context32.abrupt('return', _enums2.default.keyStatus.expired); case 21: - return _context30.abrupt('return', _enums2.default.keyStatus.valid); + return _context32.abrupt('return', _enums2.default.keyStatus.valid); case 22: case 'end': - return _context30.stop(); + return _context32.stop(); } } - }, _callee30, this); + }, _callee32, this); })); - return function (_x65) { - return _ref36.apply(this, arguments); + return function (_x66) { + return _ref37.apply(this, arguments); }; }())); case 5: - results = _context31.sent; - return _context31.abrupt('return', results.find(function (result) { + results = _context33.sent; + return _context33.abrupt('return', results.find(function (result) { return result !== undefined; })); case 7: case 'end': - return _context31.stop(); + return _context33.stop(); } } - }, _callee31, this); + }, _callee33, this); })); - return function (_x61, _x62, _x63) { - return _ref35.apply(this, arguments); + return function (_x62, _x63, _x64) { + return _ref36.apply(this, arguments); }; }(); @@ -42280,54 +42396,54 @@ User.prototype.isRevoked = function () { * @async */ User.prototype.verifyAllCertifications = function () { - var _ref37 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee33(primaryKey, keys) { + var _ref38 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee35(primaryKey, keys) { var that, certifications; - return _regenerator2.default.wrap(function _callee33$(_context33) { + return _regenerator2.default.wrap(function _callee35$(_context35) { while (1) { - switch (_context33.prev = _context33.next) { + switch (_context35.prev = _context35.next) { case 0: that = this; certifications = this.selfCertifications.concat(this.otherCertifications); - return _context33.abrupt('return', _promise2.default.all(certifications.map(function () { - var _ref38 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee32(certification) { + return _context35.abrupt('return', _promise2.default.all(certifications.map(function () { + var _ref39 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee34(certification) { var status; - return _regenerator2.default.wrap(function _callee32$(_context32) { + return _regenerator2.default.wrap(function _callee34$(_context34) { while (1) { - switch (_context32.prev = _context32.next) { + switch (_context34.prev = _context34.next) { case 0: - _context32.next = 2; + _context34.next = 2; return that.verifyCertificate(primaryKey, certification, keys); case 2: - status = _context32.sent; - return _context32.abrupt('return', { + status = _context34.sent; + return _context34.abrupt('return', { keyid: certification.issuerKeyId, valid: status === undefined ? null : status === _enums2.default.keyStatus.valid }); case 4: case 'end': - return _context32.stop(); + return _context34.stop(); } } - }, _callee32, this); + }, _callee34, this); })); - return function (_x68) { - return _ref38.apply(this, arguments); + return function (_x69) { + return _ref39.apply(this, arguments); }; }()))); case 3: case 'end': - return _context33.stop(); + return _context35.stop(); } } - }, _callee33, this); + }, _callee35, this); })); - return function (_x66, _x67) { - return _ref37.apply(this, arguments); + return function (_x67, _x68) { + return _ref38.apply(this, arguments); }; }(); @@ -42340,18 +42456,18 @@ User.prototype.verifyAllCertifications = function () { * @async */ User.prototype.verify = function () { - var _ref39 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee35(primaryKey) { + var _ref40 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee37(primaryKey) { var that, dataToVerify, results; - return _regenerator2.default.wrap(function _callee35$(_context35) { + return _regenerator2.default.wrap(function _callee37$(_context37) { while (1) { - switch (_context35.prev = _context35.next) { + switch (_context37.prev = _context37.next) { case 0: if (this.selfCertifications.length) { - _context35.next = 2; + _context37.next = 2; break; } - return _context35.abrupt('return', _enums2.default.keyStatus.no_self_cert); + return _context37.abrupt('return', _enums2.default.keyStatus.no_self_cert); case 2: that = this; @@ -42362,98 +42478,98 @@ User.prototype.verify = function () { }; // TODO replace when Promise.some or Promise.any are implemented - _context35.t0 = [_enums2.default.keyStatus.invalid]; - _context35.next = 7; + _context37.t0 = [_enums2.default.keyStatus.invalid]; + _context37.next = 7; return _promise2.default.all(this.selfCertifications.map(function () { - var _ref40 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee34(selfCertification) { - return _regenerator2.default.wrap(function _callee34$(_context34) { + var _ref41 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee36(selfCertification) { + return _regenerator2.default.wrap(function _callee36$(_context36) { while (1) { - switch (_context34.prev = _context34.next) { + switch (_context36.prev = _context36.next) { case 0: - _context34.t0 = selfCertification.revoked; + _context36.t0 = selfCertification.revoked; - if (_context34.t0) { - _context34.next = 5; + if (_context36.t0) { + _context36.next = 5; break; } - _context34.next = 4; + _context36.next = 4; return that.isRevoked(primaryKey, selfCertification); case 4: - _context34.t0 = _context34.sent; + _context36.t0 = _context36.sent; case 5: - if (!_context34.t0) { - _context34.next = 7; + if (!_context36.t0) { + _context36.next = 7; break; } - return _context34.abrupt('return', _enums2.default.keyStatus.revoked); + return _context36.abrupt('return', _enums2.default.keyStatus.revoked); case 7: - _context34.t1 = selfCertification.verified; + _context36.t1 = selfCertification.verified; - if (_context34.t1) { - _context34.next = 12; + if (_context36.t1) { + _context36.next = 12; break; } - _context34.next = 11; + _context36.next = 11; return selfCertification.verify(primaryKey, dataToVerify); case 11: - _context34.t1 = _context34.sent; + _context36.t1 = _context36.sent; case 12: - if (_context34.t1) { - _context34.next = 14; + if (_context36.t1) { + _context36.next = 14; break; } - return _context34.abrupt('return', _enums2.default.keyStatus.invalid); + return _context36.abrupt('return', _enums2.default.keyStatus.invalid); case 14: if (!selfCertification.isExpired()) { - _context34.next = 16; + _context36.next = 16; break; } - return _context34.abrupt('return', _enums2.default.keyStatus.expired); + return _context36.abrupt('return', _enums2.default.keyStatus.expired); case 16: - return _context34.abrupt('return', _enums2.default.keyStatus.valid); + return _context36.abrupt('return', _enums2.default.keyStatus.valid); case 17: case 'end': - return _context34.stop(); + return _context36.stop(); } } - }, _callee34, this); + }, _callee36, this); })); - return function (_x70) { - return _ref40.apply(this, arguments); + return function (_x71) { + return _ref41.apply(this, arguments); }; }())); case 7: - _context35.t1 = _context35.sent; - results = _context35.t0.concat.call(_context35.t0, _context35.t1); - return _context35.abrupt('return', results.some(function (status) { + _context37.t1 = _context37.sent; + results = _context37.t0.concat.call(_context37.t0, _context37.t1); + return _context37.abrupt('return', results.some(function (status) { return status === _enums2.default.keyStatus.valid; }) ? _enums2.default.keyStatus.valid : results.pop()); case 10: case 'end': - return _context35.stop(); + return _context37.stop(); } } - }, _callee35, this); + }, _callee37, this); })); - return function (_x69) { - return _ref39.apply(this, arguments); + return function (_x70) { + return _ref40.apply(this, arguments); }; }(); @@ -42466,11 +42582,11 @@ User.prototype.verify = function () { * @async */ User.prototype.update = function () { - var _ref41 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee37(user, primaryKey) { + var _ref42 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee39(user, primaryKey) { var dataToVerify; - return _regenerator2.default.wrap(function _callee37$(_context37) { + return _regenerator2.default.wrap(function _callee39$(_context39) { while (1) { - switch (_context37.prev = _context37.next) { + switch (_context39.prev = _context39.next) { case 0: dataToVerify = { userId: this.userId, @@ -42479,48 +42595,48 @@ User.prototype.update = function () { }; // self signatures - _context37.next = 3; + _context39.next = 3; return mergeSignatures(user, this, 'selfCertifications', function () { - var _ref42 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee36(srcSelfSig) { - return _regenerator2.default.wrap(function _callee36$(_context36) { + var _ref43 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee38(srcSelfSig) { + return _regenerator2.default.wrap(function _callee38$(_context38) { while (1) { - switch (_context36.prev = _context36.next) { + switch (_context38.prev = _context38.next) { case 0: - return _context36.abrupt('return', srcSelfSig.verified || srcSelfSig.verify(primaryKey, dataToVerify)); + return _context38.abrupt('return', srcSelfSig.verified || srcSelfSig.verify(primaryKey, dataToVerify)); case 1: case 'end': - return _context36.stop(); + return _context38.stop(); } } - }, _callee36, this); + }, _callee38, this); })); - return function (_x73) { - return _ref42.apply(this, arguments); + return function (_x74) { + return _ref43.apply(this, arguments); }; }()); case 3: - _context37.next = 5; + _context39.next = 5; return mergeSignatures(user, this, 'otherCertifications'); case 5: - _context37.next = 7; + _context39.next = 7; return mergeSignatures(user, this, 'revocationSignatures', function (srcRevSig) { return isDataRevoked(primaryKey, dataToVerify, [srcRevSig]); }); case 7: case 'end': - return _context37.stop(); + return _context39.stop(); } } - }, _callee37, this); + }, _callee39, this); })); - return function (_x71, _x72) { - return _ref41.apply(this, arguments); + return function (_x72, _x73) { + return _ref42.apply(this, arguments); }; }(); @@ -42568,27 +42684,27 @@ SubKey.prototype.toPacketlist = function () { * @async */ SubKey.prototype.isRevoked = function () { - var _ref43 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee38(primaryKey, signature, key) { + var _ref44 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee40(primaryKey, signature, key) { var date = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Date(); - return _regenerator2.default.wrap(function _callee38$(_context38) { + return _regenerator2.default.wrap(function _callee40$(_context40) { while (1) { - switch (_context38.prev = _context38.next) { + switch (_context40.prev = _context40.next) { case 0: - return _context38.abrupt('return', isDataRevoked(primaryKey, { + return _context40.abrupt('return', isDataRevoked(primaryKey, { key: primaryKey, bind: this.keyPacket }, this.revocationSignatures, signature, key, date)); case 1: case 'end': - return _context38.stop(); + return _context40.stop(); } } - }, _callee38, this); + }, _callee40, this); })); - return function (_x74, _x75, _x76) { - return _ref43.apply(this, arguments); + return function (_x75, _x76, _x77) { + return _ref44.apply(this, arguments); }; }(); @@ -42602,100 +42718,124 @@ SubKey.prototype.isRevoked = function () { * @async */ SubKey.prototype.verify = function () { - var _ref44 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee39(primaryKey) { + var _ref45 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee41(primaryKey) { var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); var that, dataToVerify, bindingSignature; - return _regenerator2.default.wrap(function _callee39$(_context39) { + return _regenerator2.default.wrap(function _callee41$(_context41) { while (1) { - switch (_context39.prev = _context39.next) { + switch (_context41.prev = _context41.next) { case 0: that = this; dataToVerify = { key: primaryKey, bind: this.keyPacket }; // check subkey binding signatures - bindingSignature = getLatestSignature(this.bindingSignatures, date); - // check binding signature is verified + _context41.next = 4; + return getLatestValidSignature(this.bindingSignatures, primaryKey, dataToVerify, date); - _context39.t0 = bindingSignature.verified; + case 4: + bindingSignature = _context41.sent; - if (_context39.t0) { - _context39.next = 8; + if (bindingSignature) { + _context41.next = 7; break; } - _context39.next = 7; - return bindingSignature.verify(primaryKey, dataToVerify); + return _context41.abrupt('return', _enums2.default.keyStatus.invalid); case 7: - _context39.t0 = _context39.sent; + _context41.t0 = bindingSignature.revoked; - case 8: - if (_context39.t0) { - _context39.next = 10; + if (_context41.t0) { + _context41.next = 12; break; } - return _context39.abrupt('return', _enums2.default.keyStatus.invalid); - - case 10: - _context39.t1 = bindingSignature.revoked; - - if (_context39.t1) { - _context39.next = 15; - break; - } - - _context39.next = 14; + _context41.next = 11; return that.isRevoked(primaryKey, bindingSignature, null, date); - case 14: - _context39.t1 = _context39.sent; + case 11: + _context41.t0 = _context41.sent; - case 15: - if (!_context39.t1) { - _context39.next = 17; + case 12: + if (!_context41.t0) { + _context41.next = 14; break; } - return _context39.abrupt('return', _enums2.default.keyStatus.revoked); + return _context41.abrupt('return', _enums2.default.keyStatus.revoked); + + case 14: + if (!isDataExpired(this.keyPacket, bindingSignature, date)) { + _context41.next = 16; + break; + } + + return _context41.abrupt('return', _enums2.default.keyStatus.expired); + + case 16: + return _context41.abrupt('return', _enums2.default.keyStatus.valid); case 17: - if (!bindingSignature.isExpired(date)) { - _context39.next = 19; - break; - } - - return _context39.abrupt('return', _enums2.default.keyStatus.expired); - - case 19: - return _context39.abrupt('return', _enums2.default.keyStatus.valid); - - case 20: case 'end': - return _context39.stop(); + return _context41.stop(); } } - }, _callee39, this); + }, _callee41, this); })); - return function (_x78) { - return _ref44.apply(this, arguments); + return function (_x79) { + return _ref45.apply(this, arguments); }; }(); /** * Returns the expiration time of the subkey or Infinity if key does not expire + * Returns null if the subkey is invalid. + * @param {module:packet.SecretKey| + * module:packet.PublicKey} primaryKey The primary key packet * @param {Date} date Use the given date instead of the current time - * @returns {Date} + * @returns {Promise} + * @async */ SubKey.prototype.getExpirationTime = function () { - var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date(); + var _ref46 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee42(primaryKey) { + var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date(); + var dataToVerify, bindingSignature, keyExpiry, sigExpiry; + return _regenerator2.default.wrap(function _callee42$(_context42) { + while (1) { + switch (_context42.prev = _context42.next) { + case 0: + dataToVerify = { key: primaryKey, bind: this.keyPacket }; + _context42.next = 3; + return getLatestValidSignature(this.bindingSignatures, primaryKey, dataToVerify, date); - var bindingSignature = getLatestSignature(this.bindingSignatures, date); - var keyExpiry = getExpirationTime(this.keyPacket, bindingSignature); - var sigExpiry = bindingSignature.getExpirationTime(); - return keyExpiry < sigExpiry ? keyExpiry : sigExpiry; -}; + case 3: + bindingSignature = _context42.sent; + + if (bindingSignature) { + _context42.next = 6; + break; + } + + return _context42.abrupt('return', null); + + case 6: + keyExpiry = getExpirationTime(this.keyPacket, bindingSignature); + sigExpiry = bindingSignature.getExpirationTime(); + return _context42.abrupt('return', keyExpiry < sigExpiry ? keyExpiry : sigExpiry); + + case 9: + case 'end': + return _context42.stop(); + } + } + }, _callee42, this); + })); + + return function (_x81) { + return _ref46.apply(this, arguments); + }; +}(); /** * Update subkey with new components from specified subkey @@ -42706,29 +42846,29 @@ SubKey.prototype.getExpirationTime = function () { * @async */ SubKey.prototype.update = function () { - var _ref45 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee41(subKey, primaryKey) { + var _ref47 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee44(subKey, primaryKey) { var that, dataToVerify; - return _regenerator2.default.wrap(function _callee41$(_context41) { + return _regenerator2.default.wrap(function _callee44$(_context44) { while (1) { - switch (_context41.prev = _context41.next) { + switch (_context44.prev = _context44.next) { case 0: - _context41.next = 2; + _context44.next = 2; return subKey.verify(primaryKey); case 2: - _context41.t0 = _context41.sent; - _context41.t1 = _enums2.default.keyStatus.invalid; + _context44.t0 = _context44.sent; + _context44.t1 = _enums2.default.keyStatus.invalid; - if (!(_context41.t0 === _context41.t1)) { - _context41.next = 6; + if (!(_context44.t0 === _context44.t1)) { + _context44.next = 6; break; } - return _context41.abrupt('return'); + return _context44.abrupt('return'); case 6: if (!(this.getFingerprint() !== subKey.getFingerprint())) { - _context41.next = 8; + _context44.next = 8; break; } @@ -42742,94 +42882,94 @@ SubKey.prototype.update = function () { // update missing binding signatures that = this; dataToVerify = { key: primaryKey, bind: that.keyPacket }; - _context41.next = 13; + _context44.next = 13; return mergeSignatures(subKey, this, 'bindingSignatures', function () { - var _ref46 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee40(srcBindSig) { + var _ref48 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee43(srcBindSig) { var i; - return _regenerator2.default.wrap(function _callee40$(_context40) { + return _regenerator2.default.wrap(function _callee43$(_context43) { while (1) { - switch (_context40.prev = _context40.next) { + switch (_context43.prev = _context43.next) { case 0: - _context40.t0 = srcBindSig.verified; + _context43.t0 = srcBindSig.verified; - if (_context40.t0) { - _context40.next = 5; + if (_context43.t0) { + _context43.next = 5; break; } - _context40.next = 4; + _context43.next = 4; return srcBindSig.verify(primaryKey, dataToVerify); case 4: - _context40.t0 = _context40.sent; + _context43.t0 = _context43.sent; case 5: - if (_context40.t0) { - _context40.next = 7; + if (_context43.t0) { + _context43.next = 7; break; } - return _context40.abrupt('return', false); + return _context43.abrupt('return', false); case 7: i = 0; case 8: if (!(i < that.bindingSignatures.length)) { - _context40.next = 16; + _context43.next = 16; break; } if (!that.bindingSignatures[i].issuerKeyId.equals(srcBindSig.issuerKeyId)) { - _context40.next = 13; + _context43.next = 13; break; } if (!(srcBindSig.created < that.bindingSignatures[i].created)) { - _context40.next = 13; + _context43.next = 13; break; } that.bindingSignatures[i] = srcBindSig; - return _context40.abrupt('return', false); + return _context43.abrupt('return', false); case 13: i++; - _context40.next = 8; + _context43.next = 8; break; case 16: - return _context40.abrupt('return', true); + return _context43.abrupt('return', true); case 17: case 'end': - return _context40.stop(); + return _context43.stop(); } } - }, _callee40, this); + }, _callee43, this); })); - return function (_x83) { - return _ref46.apply(this, arguments); + return function (_x85) { + return _ref48.apply(this, arguments); }; }()); case 13: - _context41.next = 15; + _context44.next = 15; return mergeSignatures(subKey, this, 'revocationSignatures', function (srcRevSig) { return isDataRevoked(primaryKey, dataToVerify, [srcRevSig]); }); case 15: case 'end': - return _context41.stop(); + return _context44.stop(); } } - }, _callee41, this); + }, _callee44, this); })); - return function (_x81, _x82) { - return _ref45.apply(this, arguments); + return function (_x83, _x84) { + return _ref47.apply(this, arguments); }; }(); @@ -42844,23 +42984,23 @@ SubKey.prototype.update = function () { * @async */ SubKey.prototype.revoke = function () { - var _ref47 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee42(primaryKey) { - var _ref48 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref48$flag = _ref48.flag, - reasonForRevocationFlag = _ref48$flag === undefined ? _enums2.default.reasonForRevocation.no_reason : _ref48$flag, - _ref48$string = _ref48.string, - reasonForRevocationString = _ref48$string === undefined ? '' : _ref48$string; + var _ref49 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee45(primaryKey) { + var _ref50 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref50$flag = _ref50.flag, + reasonForRevocationFlag = _ref50$flag === undefined ? _enums2.default.reasonForRevocation.no_reason : _ref50$flag, + _ref50$string = _ref50.string, + reasonForRevocationString = _ref50$string === undefined ? '' : _ref50$string; var date = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Date(); var dataToSign, subKey; - return _regenerator2.default.wrap(function _callee42$(_context42) { + return _regenerator2.default.wrap(function _callee45$(_context45) { while (1) { - switch (_context42.prev = _context42.next) { + switch (_context45.prev = _context45.next) { case 0: dataToSign = { key: primaryKey, bind: this.keyPacket }; subKey = new SubKey(this.keyPacket); - _context42.t0 = subKey.revocationSignatures; - _context42.next = 5; + _context45.t0 = subKey.revocationSignatures; + _context45.next = 5; return createSignaturePacket(dataToSign, null, primaryKey, { signatureType: _enums2.default.signature.subkey_revocation, reasonForRevocationFlag: _enums2.default.write(_enums2.default.reasonForRevocation, reasonForRevocationFlag), @@ -42868,31 +43008,29 @@ SubKey.prototype.revoke = function () { }, date); case 5: - _context42.t1 = _context42.sent; + _context45.t1 = _context45.sent; - _context42.t0.push.call(_context42.t0, _context42.t1); + _context45.t0.push.call(_context45.t0, _context45.t1); - _context42.next = 9; + _context45.next = 9; return subKey.update(this, primaryKey); case 9: - return _context42.abrupt('return', subKey); + return _context45.abrupt('return', subKey); case 10: case 'end': - return _context42.stop(); + return _context45.stop(); } } - }, _callee42, this); + }, _callee45, this); })); - return function (_x84) { - return _ref47.apply(this, arguments); + return function (_x86) { + return _ref49.apply(this, arguments); }; }(); -/** - */ ['getKeyId', 'getFingerprint', 'getAlgorithmInfo', 'getCreationTime', 'isDecrypted'].forEach(function (name) { Key.prototype[name] = SubKey.prototype[name] = function () { return this.keyPacket[name](); @@ -45321,17 +45459,17 @@ var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); * @returns {Object} the data in the respective format */ var convertStream = function () { - var _ref23 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(data, streaming) { - return _regenerator2.default.wrap(function _callee11$(_context11) { + var _ref24 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(data, streaming) { + return _regenerator2.default.wrap(function _callee12$(_context12) { while (1) { - switch (_context11.prev = _context11.next) { + switch (_context12.prev = _context12.next) { case 0: if (!(!streaming && _util2.default.isStream(data))) { - _context11.next = 2; + _context12.next = 2; break; } - return _context11.abrupt('return', _webStreamTools2.default.readToEnd(data)); + return _context12.abrupt('return', _webStreamTools2.default.readToEnd(data)); case 2: if (streaming && !_util2.default.isStream(data)) { @@ -45345,18 +45483,18 @@ var convertStream = function () { if (streaming === 'node') { data = _webStreamTools2.default.webToNode(data); } - return _context11.abrupt('return', data); + return _context12.abrupt('return', data); case 5: case 'end': - return _context11.stop(); + return _context12.stop(); } } - }, _callee11, this); + }, _callee12, this); })); - return function convertStream(_x6, _x7) { - return _ref23.apply(this, arguments); + return function convertStream(_x7, _x8) { + return _ref24.apply(this, arguments); }; }(); @@ -45370,73 +45508,73 @@ var convertStream = function () { var convertStreams = function () { - var _ref24 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(obj, streaming) { - var _this3 = this; + var _ref25 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(obj, streaming) { + var _this4 = this; var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; - return _regenerator2.default.wrap(function _callee13$(_context13) { + return _regenerator2.default.wrap(function _callee14$(_context14) { while (1) { - switch (_context13.prev = _context13.next) { + switch (_context14.prev = _context14.next) { case 0: if (!Object.prototype.isPrototypeOf(obj)) { - _context13.next = 3; + _context14.next = 3; break; } - _context13.next = 3; + _context14.next = 3; return _promise2.default.all((0, _entries2.default)(obj).map(function () { - var _ref25 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(_ref26) { - var _ref27 = (0, _slicedToArray3.default)(_ref26, 2), - key = _ref27[0], - value = _ref27[1]; + var _ref26 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(_ref27) { + var _ref28 = (0, _slicedToArray3.default)(_ref27, 2), + key = _ref28[0], + value = _ref28[1]; - return _regenerator2.default.wrap(function _callee12$(_context12) { + return _regenerator2.default.wrap(function _callee13$(_context13) { while (1) { - switch (_context12.prev = _context12.next) { + switch (_context13.prev = _context13.next) { case 0: if (!(_util2.default.isStream(value) || keys.includes(key))) { - _context12.next = 6; + _context13.next = 6; break; } - _context12.next = 3; + _context13.next = 3; return convertStream(value, streaming); case 3: - obj[key] = _context12.sent; - _context12.next = 8; + obj[key] = _context13.sent; + _context13.next = 8; break; case 6: - _context12.next = 8; + _context13.next = 8; return convertStreams(obj[key], streaming); case 8: case 'end': - return _context12.stop(); + return _context13.stop(); } } - }, _callee12, _this3); + }, _callee13, _this4); })); - return function (_x11) { - return _ref25.apply(this, arguments); + return function (_x12) { + return _ref26.apply(this, arguments); }; }())); case 3: - return _context13.abrupt('return', obj); + return _context14.abrupt('return', obj); case 4: case 'end': - return _context13.stop(); + return _context14.stop(); } } - }, _callee13, this); + }, _callee14, this); })); - return function convertStreams(_x8, _x9) { - return _ref24.apply(this, arguments); + return function convertStreams(_x9, _x10) { + return _ref25.apply(this, arguments); }; }(); @@ -45455,54 +45593,54 @@ var convertStreams = function () { * @param {Object} signatures list of signatures */ var prepareSignatures = function () { - var _ref29 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(signatures) { - var _this5 = this; + var _ref30 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(signatures) { + var _this6 = this; - return _regenerator2.default.wrap(function _callee16$(_context16) { + return _regenerator2.default.wrap(function _callee17$(_context17) { while (1) { - switch (_context16.prev = _context16.next) { + switch (_context17.prev = _context17.next) { case 0: - _context16.next = 2; + _context17.next = 2; return _promise2.default.all(signatures.map(function () { - var _ref30 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(signature) { - return _regenerator2.default.wrap(function _callee15$(_context15) { + var _ref31 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(signature) { + return _regenerator2.default.wrap(function _callee16$(_context16) { while (1) { - switch (_context15.prev = _context15.next) { + switch (_context16.prev = _context16.next) { case 0: - _context15.next = 2; + _context16.next = 2; return signature.signature; case 2: - signature.signature = _context15.sent; - _context15.next = 5; + signature.signature = _context16.sent; + _context16.next = 5; return signature.verified; case 5: - signature.valid = _context15.sent; + signature.valid = _context16.sent; case 6: case 'end': - return _context15.stop(); + return _context16.stop(); } } - }, _callee15, _this5); + }, _callee16, _this6); })); - return function (_x15) { - return _ref30.apply(this, arguments); + return function (_x16) { + return _ref31.apply(this, arguments); }; }())); case 2: case 'end': - return _context16.stop(); + return _context17.stop(); } } - }, _callee16, this); + }, _callee17, this); })); - return function prepareSignatures(_x14) { - return _ref29.apply(this, arguments); + return function prepareSignatures(_x15) { + return _ref30.apply(this, arguments); }; }(); @@ -45709,7 +45847,11 @@ function generateKey(_ref2) { while (1) { switch (_context.prev = _context.next) { case 0: - revocationCertificate = key.getRevocationCertificate(); + _context.next = 2; + return key.getRevocationCertificate(); + + case 2: + revocationCertificate = _context.sent; key.revocationSignatures = []; @@ -45722,7 +45864,7 @@ function generateKey(_ref2) { })); - case 3: + case 5: case 'end': return _context.stop(); } @@ -45749,6 +45891,8 @@ function generateKey(_ref2) { * @static */ function reformatKey(_ref4) { + var _this2 = this; + var privateKey = _ref4.privateKey, _ref4$userIds = _ref4.userIds, userIds = _ref4$userIds === undefined ? [] : _ref4$userIds, @@ -45768,19 +45912,42 @@ function reformatKey(_ref4) { options.revoked = options.revocationCertificate; - return (0, _key.reformat)(options).then(function (key) { - var revocationCertificate = key.getRevocationCertificate(); - key.revocationSignatures = []; + return (0, _key.reformat)(options).then(function () { + var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(key) { + var revocationCertificate; + return _regenerator2.default.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return key.getRevocationCertificate(); - return { + case 2: + revocationCertificate = _context2.sent; - key: key, - privateKeyArmored: key.armor(), - publicKeyArmored: key.toPublic().armor(), - revocationCertificate: revocationCertificate + key.revocationSignatures = []; + return _context2.abrupt('return', { + + key: key, + privateKeyArmored: key.armor(), + publicKeyArmored: key.toPublic().armor(), + revocationCertificate: revocationCertificate + + }); + + case 5: + case 'end': + return _context2.stop(); + } + } + }, _callee2, _this2); + })); + + return function (_x3) { + return _ref5.apply(this, arguments); }; - }).catch(onError.bind(null, 'Error reformatting keypair')); + }()).catch(onError.bind(null, 'Error reformatting keypair')); } /** @@ -45797,10 +45964,10 @@ function reformatKey(_ref4) { * @static */ function revokeKey() { - var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - key = _ref5.key, - revocationCertificate = _ref5.revocationCertificate, - reasonForRevocation = _ref5.reasonForRevocation; + var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + key = _ref6.key, + revocationCertificate = _ref6.revocationCertificate, + reasonForRevocation = _ref6.reasonForRevocation; var options = { key: key, revocationCertificate: revocationCertificate, reasonForRevocation: reasonForRevocation @@ -45841,60 +46008,22 @@ function revokeKey() { * @returns {Promise} the unlocked key object in the form: { key:Key } * @async */ -function decryptKey(_ref6) { - var privateKey = _ref6.privateKey, - passphrase = _ref6.passphrase; +function decryptKey(_ref7) { + var privateKey = _ref7.privateKey, + passphrase = _ref7.passphrase; if (asyncProxy) { // use web worker if available return asyncProxy.delegate('decryptKey', { privateKey: privateKey, passphrase: passphrase }); } - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { - return _regenerator2.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return privateKey.decrypt(passphrase); - - case 2: - return _context2.abrupt('return', { - key: privateKey - }); - - case 3: - case 'end': - return _context2.stop(); - } - } - }, _callee2, this); - }))).catch(onError.bind(null, 'Error decrypting private key')); -} - -/** - * Lock a private key with your passphrase. - * @param {Key} privateKey the private key that is to be decrypted - * @param {String|Array} passphrase the user's passphrase(s) chosen during key generation - * @returns {Promise} the locked key object in the form: { key:Key } - * @async - */ -function encryptKey(_ref8) { - var privateKey = _ref8.privateKey, - passphrase = _ref8.passphrase; - - if (asyncProxy) { - // use web worker if available - return asyncProxy.delegate('encryptKey', { privateKey: privateKey, passphrase: passphrase }); - } - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() { return _regenerator2.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.next = 2; - return privateKey.encrypt(passphrase); + return privateKey.decrypt(passphrase); case 2: return _context3.abrupt('return', { @@ -45910,6 +46039,44 @@ function encryptKey(_ref8) { }))).catch(onError.bind(null, 'Error decrypting private key')); } +/** + * Lock a private key with your passphrase. + * @param {Key} privateKey the private key that is to be decrypted + * @param {String|Array} passphrase the user's passphrase(s) chosen during key generation + * @returns {Promise} the locked key object in the form: { key:Key } + * @async + */ +function encryptKey(_ref9) { + var privateKey = _ref9.privateKey, + passphrase = _ref9.passphrase; + + if (asyncProxy) { + // use web worker if available + return asyncProxy.delegate('encryptKey', { privateKey: privateKey, passphrase: passphrase }); + } + + return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4() { + return _regenerator2.default.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return privateKey.encrypt(passphrase); + + case 2: + return _context4.abrupt('return', { + key: privateKey + }); + + case 3: + case 'end': + return _context4.stop(); + } + } + }, _callee4, this); + }))).catch(onError.bind(null, 'Error decrypting private key')); +} + /////////////////////////////////////////// // // // Message encryption and decryption // @@ -45947,34 +46114,34 @@ function encryptKey(_ref8) { * @async * @static */ -function encrypt(_ref10) { - var _this2 = this; +function encrypt(_ref11) { + var _this3 = this; - var message = _ref10.message, - publicKeys = _ref10.publicKeys, - privateKeys = _ref10.privateKeys, - passwords = _ref10.passwords, - sessionKey = _ref10.sessionKey, - _ref10$compression = _ref10.compression, - compression = _ref10$compression === undefined ? _config2.default.compression : _ref10$compression, - _ref10$armor = _ref10.armor, - armor = _ref10$armor === undefined ? true : _ref10$armor, - _ref10$streaming = _ref10.streaming, - streaming = _ref10$streaming === undefined ? message && message.fromStream : _ref10$streaming, - _ref10$detached = _ref10.detached, - detached = _ref10$detached === undefined ? false : _ref10$detached, - _ref10$signature = _ref10.signature, - signature = _ref10$signature === undefined ? null : _ref10$signature, - _ref10$returnSessionK = _ref10.returnSessionKey, - returnSessionKey = _ref10$returnSessionK === undefined ? false : _ref10$returnSessionK, - _ref10$wildcard = _ref10.wildcard, - wildcard = _ref10$wildcard === undefined ? false : _ref10$wildcard, - _ref10$date = _ref10.date, - date = _ref10$date === undefined ? new Date() : _ref10$date, - _ref10$fromUserId = _ref10.fromUserId, - fromUserId = _ref10$fromUserId === undefined ? {} : _ref10$fromUserId, - _ref10$toUserId = _ref10.toUserId, - toUserId = _ref10$toUserId === undefined ? {} : _ref10$toUserId; + var message = _ref11.message, + publicKeys = _ref11.publicKeys, + privateKeys = _ref11.privateKeys, + passwords = _ref11.passwords, + sessionKey = _ref11.sessionKey, + _ref11$compression = _ref11.compression, + compression = _ref11$compression === undefined ? _config2.default.compression : _ref11$compression, + _ref11$armor = _ref11.armor, + armor = _ref11$armor === undefined ? true : _ref11$armor, + _ref11$streaming = _ref11.streaming, + streaming = _ref11$streaming === undefined ? message && message.fromStream : _ref11$streaming, + _ref11$detached = _ref11.detached, + detached = _ref11$detached === undefined ? false : _ref11$detached, + _ref11$signature = _ref11.signature, + signature = _ref11$signature === undefined ? null : _ref11$signature, + _ref11$returnSessionK = _ref11.returnSessionKey, + returnSessionKey = _ref11$returnSessionK === undefined ? false : _ref11$returnSessionK, + _ref11$wildcard = _ref11.wildcard, + wildcard = _ref11$wildcard === undefined ? false : _ref11$wildcard, + _ref11$date = _ref11.date, + date = _ref11$date === undefined ? new Date() : _ref11$date, + _ref11$fromUserId = _ref11.fromUserId, + fromUserId = _ref11$fromUserId === undefined ? {} : _ref11$fromUserId, + _ref11$toUserId = _ref11.toUserId, + toUserId = _ref11$toUserId === undefined ? {} : _ref11$toUserId; checkMessage(message);publicKeys = toArray(publicKeys);privateKeys = toArray(privateKeys);passwords = toArray(passwords); @@ -45983,58 +46150,58 @@ function encrypt(_ref10) { return asyncProxy.delegate('encrypt', { message: message, publicKeys: publicKeys, privateKeys: privateKeys, passwords: passwords, sessionKey: sessionKey, compression: compression, armor: armor, streaming: streaming, detached: detached, signature: signature, returnSessionKey: returnSessionKey, wildcard: wildcard, date: date, fromUserId: fromUserId, toUserId: toUserId }); } var result = {}; - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4() { + return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5() { var detachedSignature; - return _regenerator2.default.wrap(function _callee4$(_context4) { + return _regenerator2.default.wrap(function _callee5$(_context5) { while (1) { - switch (_context4.prev = _context4.next) { + switch (_context5.prev = _context5.next) { case 0: if (!privateKeys) { privateKeys = []; } if (!(privateKeys.length || signature)) { - _context4.next = 12; + _context5.next = 12; break; } if (!detached) { - _context4.next = 9; + _context5.next = 9; break; } - _context4.next = 5; + _context5.next = 5; return message.signDetached(privateKeys, signature, date, fromUserId); case 5: - detachedSignature = _context4.sent; + detachedSignature = _context5.sent; result.signature = armor ? detachedSignature.armor() : detachedSignature; - _context4.next = 12; + _context5.next = 12; break; case 9: - _context4.next = 11; + _context5.next = 11; return message.sign(privateKeys, signature, date, fromUserId); case 11: - message = _context4.sent; + message = _context5.sent; case 12: message = message.compress(compression); - return _context4.abrupt('return', message.encrypt(publicKeys, passwords, sessionKey, wildcard, date, toUserId, streaming)); + return _context5.abrupt('return', message.encrypt(publicKeys, passwords, sessionKey, wildcard, date, toUserId, streaming)); case 14: case 'end': - return _context4.stop(); + return _context5.stop(); } } - }, _callee4, this); + }, _callee5, this); }))).then(function () { - var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(encrypted) { - return _regenerator2.default.wrap(function _callee5$(_context5) { + var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(encrypted) { + return _regenerator2.default.wrap(function _callee6$(_context6) { while (1) { - switch (_context5.prev = _context5.next) { + switch (_context6.prev = _context6.next) { case 0: if (armor) { result.data = encrypted.message.armor(); @@ -46044,18 +46211,18 @@ function encrypt(_ref10) { if (returnSessionKey) { result.sessionKey = encrypted.sessionKey; } - return _context5.abrupt('return', convertStreams(result, streaming, armor ? ['signature', 'data'] : [])); + return _context6.abrupt('return', convertStreams(result, streaming, armor ? ['signature', 'data'] : [])); case 3: case 'end': - return _context5.stop(); + return _context6.stop(); } } - }, _callee5, _this2); + }, _callee6, _this3); })); - return function (_x4) { - return _ref12.apply(this, arguments); + return function (_x5) { + return _ref13.apply(this, arguments); }; }()).catch(onError.bind(null, 'Error encrypting message')); } @@ -46068,7 +46235,7 @@ function encrypt(_ref10) { * @param {String|Array} passwords (optional) passwords to decrypt the message * @param {Object|Array} sessionKeys (optional) session keys in the form: { data:Uint8Array, algorithm:String } * @param {Key|Array} publicKeys (optional) array of public keys or single key, to verify signatures - * @param {String} format (optional) return data format either as 'utf8' or 'binary' + * @param {'utf8'|'binary'} format (optional) whether to return data as a string(Stream) or Uint8Array(Stream). If 'utf8' (the default), also normalize newlines. * @param {'web'|'node'|false} streaming (optional) whether to return data as a stream. Defaults to the type of stream `message` was created from, if any. * @param {Signature} signature (optional) detached signature for verification * @param {Date} date (optional) use the given date for verification instead of the current time @@ -46089,20 +46256,20 @@ function encrypt(_ref10) { * @async * @static */ -function decrypt(_ref13) { - var message = _ref13.message, - privateKeys = _ref13.privateKeys, - passwords = _ref13.passwords, - sessionKeys = _ref13.sessionKeys, - publicKeys = _ref13.publicKeys, - _ref13$format = _ref13.format, - format = _ref13$format === undefined ? 'utf8' : _ref13$format, - _ref13$streaming = _ref13.streaming, - streaming = _ref13$streaming === undefined ? message && message.fromStream : _ref13$streaming, - _ref13$signature = _ref13.signature, - signature = _ref13$signature === undefined ? null : _ref13$signature, - _ref13$date = _ref13.date, - date = _ref13$date === undefined ? new Date() : _ref13$date; +function decrypt(_ref14) { + var message = _ref14.message, + privateKeys = _ref14.privateKeys, + passwords = _ref14.passwords, + sessionKeys = _ref14.sessionKeys, + publicKeys = _ref14.publicKeys, + _ref14$format = _ref14.format, + format = _ref14$format === undefined ? 'utf8' : _ref14$format, + _ref14$streaming = _ref14.streaming, + streaming = _ref14$streaming === undefined ? message && message.fromStream : _ref14$streaming, + _ref14$signature = _ref14.signature, + signature = _ref14$signature === undefined ? null : _ref14$signature, + _ref14$date = _ref14.date, + date = _ref14$date === undefined ? new Date() : _ref14$date; checkMessage(message);publicKeys = toArray(publicKeys);privateKeys = toArray(privateKeys);passwords = toArray(passwords);sessionKeys = toArray(sessionKeys); @@ -46112,11 +46279,11 @@ function decrypt(_ref13) { } return message.decrypt(privateKeys, passwords, sessionKeys, streaming).then(function () { - var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(decrypted) { + var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(decrypted) { var result; - return _regenerator2.default.wrap(function _callee6$(_context6) { + return _regenerator2.default.wrap(function _callee7$(_context7) { while (1) { - switch (_context6.prev = _context6.next) { + switch (_context7.prev = _context7.next) { case 0: if (!publicKeys) { publicKeys = []; @@ -46125,58 +46292,58 @@ function decrypt(_ref13) { result = {}; if (!signature) { - _context6.next = 8; + _context7.next = 8; break; } - _context6.next = 5; + _context7.next = 5; return decrypted.verifyDetached(signature, publicKeys, date, streaming); case 5: - _context6.t0 = _context6.sent; - _context6.next = 11; + _context7.t0 = _context7.sent; + _context7.next = 11; break; case 8: - _context6.next = 10; + _context7.next = 10; return decrypted.verify(publicKeys, date, streaming); case 10: - _context6.t0 = _context6.sent; + _context7.t0 = _context7.sent; case 11: - result.signatures = _context6.t0; + result.signatures = _context7.t0; result.data = format === 'binary' ? decrypted.getLiteralData() : decrypted.getText(); result.filename = decrypted.getFilename(); if (streaming) linkStreams(result, message, decrypted.packets.stream); - _context6.next = 17; + _context7.next = 17; return convertStream(result.data, streaming); case 17: - result.data = _context6.sent; + result.data = _context7.sent; if (streaming) { - _context6.next = 21; + _context7.next = 21; break; } - _context6.next = 21; + _context7.next = 21; return prepareSignatures(result.signatures); case 21: - return _context6.abrupt('return', result); + return _context7.abrupt('return', result); case 22: case 'end': - return _context6.stop(); + return _context7.stop(); } } - }, _callee6, this); + }, _callee7, this); })); - return function (_x5) { - return _ref14.apply(this, arguments); + return function (_x6) { + return _ref15.apply(this, arguments); }; }()).catch(onError.bind(null, 'Error decrypting message')); } @@ -46213,19 +46380,19 @@ function decrypt(_ref13) { * @async * @static */ -function sign(_ref15) { - var message = _ref15.message, - privateKeys = _ref15.privateKeys, - _ref15$armor = _ref15.armor, - armor = _ref15$armor === undefined ? true : _ref15$armor, - _ref15$streaming = _ref15.streaming, - streaming = _ref15$streaming === undefined ? message && message.fromStream : _ref15$streaming, - _ref15$detached = _ref15.detached, - detached = _ref15$detached === undefined ? false : _ref15$detached, - _ref15$date = _ref15.date, - date = _ref15$date === undefined ? new Date() : _ref15$date, - _ref15$fromUserId = _ref15.fromUserId, - fromUserId = _ref15$fromUserId === undefined ? {} : _ref15$fromUserId; +function sign(_ref16) { + var message = _ref16.message, + privateKeys = _ref16.privateKeys, + _ref16$armor = _ref16.armor, + armor = _ref16$armor === undefined ? true : _ref16$armor, + _ref16$streaming = _ref16.streaming, + streaming = _ref16$streaming === undefined ? message && message.fromStream : _ref16$streaming, + _ref16$detached = _ref16.detached, + detached = _ref16$detached === undefined ? false : _ref16$detached, + _ref16$date = _ref16.date, + date = _ref16$date === undefined ? new Date() : _ref16$date, + _ref16$fromUserId = _ref16.fromUserId, + fromUserId = _ref16$fromUserId === undefined ? {} : _ref16$fromUserId; checkCleartextOrMessage(message); privateKeys = toArray(privateKeys); @@ -46238,33 +46405,33 @@ function sign(_ref15) { } var result = {}; - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7() { + return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8() { var signature; - return _regenerator2.default.wrap(function _callee7$(_context7) { + return _regenerator2.default.wrap(function _callee8$(_context8) { while (1) { - switch (_context7.prev = _context7.next) { + switch (_context8.prev = _context8.next) { case 0: if (!detached) { - _context7.next = 7; + _context8.next = 7; break; } - _context7.next = 3; + _context8.next = 3; return message.signDetached(privateKeys, undefined, date, fromUserId); case 3: - signature = _context7.sent; + signature = _context8.sent; result.signature = armor ? signature.armor() : signature; - _context7.next = 11; + _context8.next = 11; break; case 7: - _context7.next = 9; + _context8.next = 9; return message.sign(privateKeys, undefined, date, fromUserId); case 9: - message = _context7.sent; + message = _context8.sent; if (armor) { result.data = message.armor(); @@ -46273,14 +46440,14 @@ function sign(_ref15) { } case 11: - return _context7.abrupt('return', convertStreams(result, streaming, armor ? ['signature', 'data'] : [])); + return _context8.abrupt('return', convertStreams(result, streaming, armor ? ['signature', 'data'] : [])); case 12: case 'end': - return _context7.stop(); + return _context8.stop(); } } - }, _callee7, this); + }, _callee8, this); }))).catch(onError.bind(null, 'Error signing cleartext message')); } @@ -46307,15 +46474,15 @@ function sign(_ref15) { * @async * @static */ -function verify(_ref17) { - var message = _ref17.message, - publicKeys = _ref17.publicKeys, - _ref17$streaming = _ref17.streaming, - streaming = _ref17$streaming === undefined ? message && message.fromStream : _ref17$streaming, - _ref17$signature = _ref17.signature, - signature = _ref17$signature === undefined ? null : _ref17$signature, - _ref17$date = _ref17.date, - date = _ref17$date === undefined ? new Date() : _ref17$date; +function verify(_ref18) { + var message = _ref18.message, + publicKeys = _ref18.publicKeys, + _ref18$streaming = _ref18.streaming, + streaming = _ref18$streaming === undefined ? message && message.fromStream : _ref18$streaming, + _ref18$signature = _ref18.signature, + signature = _ref18$signature === undefined ? null : _ref18$signature, + _ref18$date = _ref18.date, + date = _ref18$date === undefined ? new Date() : _ref18$date; checkCleartextOrMessage(message); publicKeys = toArray(publicKeys); @@ -46325,62 +46492,62 @@ function verify(_ref17) { return asyncProxy.delegate('verify', { message: message, publicKeys: publicKeys, streaming: streaming, signature: signature, date: date }); } - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8() { + return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9() { var result; - return _regenerator2.default.wrap(function _callee8$(_context8) { + return _regenerator2.default.wrap(function _callee9$(_context9) { while (1) { - switch (_context8.prev = _context8.next) { + switch (_context9.prev = _context9.next) { case 0: result = {}; if (!signature) { - _context8.next = 7; + _context9.next = 7; break; } - _context8.next = 4; + _context9.next = 4; return message.verifyDetached(signature, publicKeys, date, streaming); case 4: - _context8.t0 = _context8.sent; - _context8.next = 10; + _context9.t0 = _context9.sent; + _context9.next = 10; break; case 7: - _context8.next = 9; + _context9.next = 9; return message.verify(publicKeys, date, streaming); case 9: - _context8.t0 = _context8.sent; + _context9.t0 = _context9.sent; case 10: - result.signatures = _context8.t0; + result.signatures = _context9.t0; result.data = message instanceof _cleartext.CleartextMessage ? message.getText() : message.getLiteralData(); if (streaming) linkStreams(result, message); - _context8.next = 15; + _context9.next = 15; return convertStream(result.data, streaming); case 15: - result.data = _context8.sent; + result.data = _context9.sent; if (streaming) { - _context8.next = 19; + _context9.next = 19; break; } - _context8.next = 19; + _context9.next = 19; return prepareSignatures(result.signatures); case 19: - return _context8.abrupt('return', result); + return _context9.abrupt('return', result); case 20: case 'end': - return _context8.stop(); + return _context9.stop(); } } - }, _callee8, this); + }, _callee9, this); }))).catch(onError.bind(null, 'Error verifying cleartext signed message')); } @@ -46406,18 +46573,18 @@ function verify(_ref17) { * @async * @static */ -function encryptSessionKey(_ref19) { - var data = _ref19.data, - algorithm = _ref19.algorithm, - aeadAlgorithm = _ref19.aeadAlgorithm, - publicKeys = _ref19.publicKeys, - passwords = _ref19.passwords, - _ref19$wildcard = _ref19.wildcard, - wildcard = _ref19$wildcard === undefined ? false : _ref19$wildcard, - _ref19$date = _ref19.date, - date = _ref19$date === undefined ? new Date() : _ref19$date, - _ref19$toUserId = _ref19.toUserId, - toUserId = _ref19$toUserId === undefined ? {} : _ref19$toUserId; +function encryptSessionKey(_ref20) { + var data = _ref20.data, + algorithm = _ref20.algorithm, + aeadAlgorithm = _ref20.aeadAlgorithm, + publicKeys = _ref20.publicKeys, + passwords = _ref20.passwords, + _ref20$wildcard = _ref20.wildcard, + wildcard = _ref20$wildcard === undefined ? false : _ref20$wildcard, + _ref20$date = _ref20.date, + date = _ref20$date === undefined ? new Date() : _ref20$date, + _ref20$toUserId = _ref20.toUserId, + toUserId = _ref20$toUserId === undefined ? {} : _ref20$toUserId; checkBinary(data);checkString(algorithm, 'algorithm');publicKeys = toArray(publicKeys);passwords = toArray(passwords); @@ -46426,26 +46593,26 @@ function encryptSessionKey(_ref19) { return asyncProxy.delegate('encryptSessionKey', { data: data, algorithm: algorithm, aeadAlgorithm: aeadAlgorithm, publicKeys: publicKeys, passwords: passwords, wildcard: wildcard, date: date, toUserId: toUserId }); } - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9() { - return _regenerator2.default.wrap(function _callee9$(_context9) { + return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10() { + return _regenerator2.default.wrap(function _callee10$(_context10) { while (1) { - switch (_context9.prev = _context9.next) { + switch (_context10.prev = _context10.next) { case 0: - _context9.next = 2; + _context10.next = 2; return messageLib.encryptSessionKey(data, algorithm, aeadAlgorithm, publicKeys, passwords, wildcard, date, toUserId); case 2: - _context9.t0 = _context9.sent; - return _context9.abrupt('return', { - message: _context9.t0 + _context10.t0 = _context10.sent; + return _context10.abrupt('return', { + message: _context10.t0 }); case 4: case 'end': - return _context9.stop(); + return _context10.stop(); } } - }, _callee9, this); + }, _callee10, this); }))).catch(onError.bind(null, 'Error encrypting session key')); } @@ -46461,10 +46628,10 @@ function encryptSessionKey(_ref19) { * @async * @static */ -function decryptSessionKeys(_ref21) { - var message = _ref21.message, - privateKeys = _ref21.privateKeys, - passwords = _ref21.passwords; +function decryptSessionKeys(_ref22) { + var message = _ref22.message, + privateKeys = _ref22.privateKeys, + passwords = _ref22.passwords; checkMessage(message);privateKeys = toArray(privateKeys);passwords = toArray(passwords); @@ -46473,19 +46640,19 @@ function decryptSessionKeys(_ref21) { return asyncProxy.delegate('decryptSessionKeys', { message: message, privateKeys: privateKeys, passwords: passwords }); } - return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10() { - return _regenerator2.default.wrap(function _callee10$(_context10) { + return _promise2.default.resolve().then((0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11() { + return _regenerator2.default.wrap(function _callee11$(_context11) { while (1) { - switch (_context10.prev = _context10.next) { + switch (_context11.prev = _context11.next) { case 0: - return _context10.abrupt('return', message.decryptSessionKeys(privateKeys, passwords)); + return _context11.abrupt('return', message.decryptSessionKeys(privateKeys, passwords)); case 1: case 'end': - return _context10.stop(); + return _context11.stop(); } } - }, _callee10, this); + }, _callee11, this); }))).catch(onError.bind(null, 'Error decrypting session keys')); } @@ -46531,52 +46698,52 @@ function toArray(param) { } return param; }function linkStreams(result, message, erroringStream) { - var _this4 = this; + var _this5 = this; result.data = _webStreamTools2.default.transformPair(message.packets.stream, function () { - var _ref28 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(readable, writable) { + var _ref29 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(readable, writable) { var writer; - return _regenerator2.default.wrap(function _callee14$(_context14) { + return _regenerator2.default.wrap(function _callee15$(_context15) { while (1) { - switch (_context14.prev = _context14.next) { + switch (_context15.prev = _context15.next) { case 0: - _context14.next = 2; + _context15.next = 2; return _webStreamTools2.default.pipe(result.data, writable, { preventClose: true }); case 2: writer = _webStreamTools2.default.getWriter(writable); - _context14.prev = 3; - _context14.next = 6; + _context15.prev = 3; + _context15.next = 6; return _webStreamTools2.default.readToEnd(erroringStream || readable, function (arr) { return arr; }); case 6: - _context14.next = 8; + _context15.next = 8; return writer.close(); case 8: - _context14.next = 14; + _context15.next = 14; break; case 10: - _context14.prev = 10; - _context14.t0 = _context14['catch'](3); - _context14.next = 14; - return writer.abort(_context14.t0); + _context15.prev = 10; + _context15.t0 = _context15['catch'](3); + _context15.next = 14; + return writer.abort(_context15.t0); case 14: case 'end': - return _context14.stop(); + return _context15.stop(); } } - }, _callee14, _this4, [[3, 10]]); + }, _callee15, _this5, [[3, 10]]); })); - return function (_x12, _x13) { - return _ref28.apply(this, arguments); + return function (_x13, _x14) { + return _ref29.apply(this, arguments); }; }()); }function onError(message, error) { @@ -48524,6 +48691,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de * are stored as numerical indices. * @memberof module:packet * @constructor + * @extends Array */ /* eslint-disable callback-return */ /** @@ -48544,6 +48712,8 @@ function List() { this.length = 0; } +List.prototype = []; + /** * Reads a stream of binary data and interprents it as a list of packets. * @param {Uint8Array | ReadableStream} A Uint8Array of bytes. @@ -48795,37 +48965,6 @@ List.prototype.push = function (packet) { this.length++; }; -/** - * Remove a packet from the list and return it. - * @returns {Object} The packet that was removed - */ -List.prototype.pop = function () { - if (this.length === 0) { - return; - } - - var packet = this[this.length - 1]; - delete this[this.length - 1]; - this.length--; - - return packet; -}; - -/** - * Creates a new PacketList with all packets that pass the test implemented by the provided function. - */ -List.prototype.filter = function (callback) { - var filtered = new List(); - - for (var i = 0; i < this.length; i++) { - if (callback(this[i], i, this)) { - filtered.push(this[i]); - } - } - - return filtered; -}; - /** * Creates a new PacketList with all packets from the given types */ @@ -48851,96 +48990,6 @@ List.prototype.filterByTag = function () { return filtered; }; -/** - * Executes the provided callback once for each element - */ -List.prototype.forEach = function (callback) { - for (var i = 0; i < this.length; i++) { - callback(this[i], i, this); - } -}; - -/** - * Returns an array containing return values of callback - * on each element - */ -List.prototype.map = function (callback) { - var packetArray = []; - - for (var i = 0; i < this.length; i++) { - packetArray.push(callback(this[i], i, this)); - } - - return packetArray; -}; - -/** - * Executes the callback function once for each element - * until it finds one where callback returns a truthy value - * @param {Function} callback - * @returns {Promise} - * @async - */ -List.prototype.some = function () { - var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(callback) { - var i; - return _regenerator2.default.wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - i = 0; - - case 1: - if (!(i < this.length)) { - _context4.next = 9; - break; - } - - _context4.next = 4; - return callback(this[i], i, this); - - case 4: - if (!_context4.sent) { - _context4.next = 6; - break; - } - - return _context4.abrupt('return', true); - - case 6: - i++; - _context4.next = 1; - break; - - case 9: - return _context4.abrupt('return', false); - - case 10: - case 'end': - return _context4.stop(); - } - } - }, _callee4, this); - })); - - return function (_x5) { - return _ref5.apply(this, arguments); - }; -}(); - -/** - * Executes the callback function once for each element, - * returns true if all callbacks returns a truthy value - */ -List.prototype.every = function (callback) { - for (var i = 0; i < this.length; i++) { - if (!callback(this[i], i, this)) { - return false; - } - } - return true; -}; - /** * Traverses packet tree and returns first matching packet * @param {module:enums.packet} type The packet type @@ -48989,20 +49038,6 @@ List.prototype.indexOfTag = function () { return tagIndex; }; -/** - * Returns slice of packetlist - */ -List.prototype.slice = function (begin, end) { - if (!end) { - end = this.length; - } - var part = new List(); - for (var i = begin; i < end; i++) { - part.push(this[i]); - } - return part; -}; - /** * Concatenates packetlist or array of packets */ @@ -50527,9 +50562,15 @@ Signature.prototype.sign = function () { } }, _callee, _this2); }))); + + // Store the fact that this signature is valid, e.g. for when we call `await + // getLatestValidSignature(this.revocationSignatures, key, data)` later. Note + // that this only holds up if the key and data passed to verify are the same + // as the ones passed to sign. + this.verified = true; return _context2.abrupt('return', true); - case 14: + case 15: case 'end': return _context2.stop(); } diff --git a/dist/compat/openpgp.min.js b/dist/compat/openpgp.min.js index 6975ab7e..10d1ae41 100644 --- a/dist/compat/openpgp.min.js +++ b/dist/compat/openpgp.min.js @@ -1,2 +1,2 @@ -/*! OpenPGP.js v4.0.2 - 2018-09-17 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).openpgp=e()}}(function(){return function(){return function e(t,r,n){function a(o,s){if(!r[o]){if(!t[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(i)return i(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var f=r[o]={exports:{}};t[o][0].call(f.exports,function(e){return a(t[o][1][e]||e)},f,f.exports,e,t,r,n)}return r[o].exports}for(var i="function"==typeof require&&require,o=0;o0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");mt(this)}},n(e,[{key:"closed",get:function(){return!1===pt(this)?Promise.reject(Xt("closed")):this._closedPromise}}]),e}(),lt=function(){function e(e){if(!Qe(e))throw new TypeError("ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a byte source");if(!1===Bt(e._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");if(et(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");bt(this,e),this._readIntoRequests=[]}var t=e.prototype;return t.cancel=function(e){return ht(this)?void 0===this._ownerReadableStream?Promise.reject(Yt("cancel")):yt(this,e):Promise.reject($t("cancel"))},t.read=function(e){return ht(this)?void 0===this._ownerReadableStream?Promise.reject(Yt("read from")):ArrayBuffer.isView(e)?!0===Pe(e.buffer)?Promise.reject(new TypeError("Cannot read into a view onto a detached ArrayBuffer")):0===e.byteLength?Promise.reject(new TypeError("view must have non-zero byteLength")):function(e,t){var r=e._ownerReadableStream;return r._disturbed=!0,"errored"===r._state?Promise.reject(r._storedError):function(e,t){var r=e._controlledReadableByteStream,n=1;t.constructor!==DataView&&(n=t.constructor.BYTES_PER_ELEMENT);var a=t.constructor,i={buffer:Me(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength,bytesFilled:0,elementSize:n,ctor:a,readerType:"byob"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(i),tt(r);if("closed"===r._state){var o=new t.constructor(i.buffer,i.byteOffset,0);return Promise.resolve(Se(o,!0))}if(e._queueTotalSize>0){if(!0===zt(e,i)){var s=Ot(i);return Nt(e),Promise.resolve(Se(s,!1))}if(!0===e._closeRequested){var u=new TypeError("Insufficient bytes to fill elements in the given buffer");return Gt(e,u),Promise.reject(u)}}e._pendingPullIntos.push(i);var c=tt(r);return Rt(e),c}(r._readableStreamController,t)}(this,e):Promise.reject(new TypeError("view must be an array buffer view")):Promise.reject($t("read"))},t.releaseLock=function(){if(!ht(this))throw $t("releaseLock");if(void 0!==this._ownerReadableStream){if(this._readIntoRequests.length>0)throw new TypeError("Tried to release a reader lock when that reader has pending read() calls un-settled");mt(this)}},n(e,[{key:"closed",get:function(){return ht(this)?this._closedPromise:Promise.reject($t("closed"))}}]),e}();function ht(e){return!!Re(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")}function pt(e){return!!Re(e)&&!!Object.prototype.hasOwnProperty.call(e,"_readRequests")}function bt(e,t){e._ownerReadableStream=t,t._reader=e,"readable"===t._state?function(e){e._closedPromise=new Promise(function(t,r){e._closedPromise_resolve=t,e._closedPromise_reject=r})}(e):"closed"===t._state?function(e){e._closedPromise=Promise.resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(e):(function(e,t){e._closedPromise=Promise.reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}(e,t._storedError),e._closedPromise.catch(function(){}))}function yt(e,t){return nt(e._ownerReadableStream,t)}function mt(e){"readable"===e._ownerReadableStream._state?Jt(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(e,t){e._closedPromise=Promise.reject(t)}(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),e._closedPromise.catch(function(){}),e._ownerReadableStream._reader=void 0,e._ownerReadableStream=void 0}function vt(e){var t=e._ownerReadableStream;return t._disturbed=!0,"closed"===t._state?Promise.resolve(Se(void 0,!0)):"errored"===t._state?Promise.reject(t._storedError):t._readableStreamController[Ve]()}var gt=function(){function e(){throw new TypeError}var t=e.prototype;return t.close=function(){if(!1===_t(this))throw Qt("close");if(!1===jt(this))throw new TypeError("The stream is not in a state that permits close");xt(this)},t.enqueue=function(e){if(!1===_t(this))throw Qt("enqueue");if(!1===jt(this))throw new TypeError("The stream is not in a state that permits enqueue");return At(this,e)},t.error=function(e){if(!1===_t(this))throw Qt("error");St(this,e)},t[He]=function(e){return Ke(this),this._cancelAlgorithm(e)},t[Ve]=function(){var e=this._controlledReadableStream;if(this._queue.length>0){var t=Ue(this);return!0===this._closeRequested&&0===this._queue.length?at(e):wt(this),Promise.resolve(Se(t,!1))}var r=rt(e);return wt(this),r},n(e,[{key:"desiredSize",get:function(){if(!1===_t(this))throw Qt("desiredSize");return Et(this)}}]),e}();function _t(e){return!!Re(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")}function wt(e){!1!==kt(e)&&(!0!==e._pulling?(e._pulling=!0,e._pullAlgorithm().then(function(){if(e._pulling=!1,!0===e._pullAgain)return e._pullAgain=!1,wt(e)},function(t){St(e,t)}).catch(Ie)):e._pullAgain=!0)}function kt(e){var t=e._controlledReadableStream;return!1!==jt(e)&&!1!==e._started&&(!0===et(t)&&ut(t)>0||Et(e)>0)}function xt(e){var t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&at(t)}function At(e,t){var r=e._controlledReadableStream;if(!0===et(r)&&ut(r)>0)ot(r,t,!1);else{var n;try{n=e._strategySizeAlgorithm(t)}catch(t){throw St(e,t),t}try{Oe(e,t,n)}catch(t){throw St(e,t),t}}wt(e)}function St(e,t){var r=e._controlledReadableStream;"readable"===r._state&&(Ke(e),it(r,t))}function Et(e){var t=e._controlledReadableStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function jt(e){var t=e._controlledReadableStream._state;return!1===e._closeRequested&&"readable"===t}function Pt(e,t,r,n,a,i,o){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,Ke(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=o,t._strategyHWM=i,t._pullAlgorithm=n,t._cancelAlgorithm=a,e._readableStreamController=t;var s=r();Promise.resolve(s).then(function(){t._started=!0,wt(t)},function(e){St(t,e)}).catch(Ie)}var Mt=function(){function e(){throw new TypeError("ReadableStreamBYOBRequest cannot be used directly")}var t=e.prototype;return t.respond=function(e){if(!1===Tt(this))throw er("respond");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");if(!0===Pe(this._view.buffer))throw new TypeError("The BYOB request's buffer has been detached and so cannot be used as a response");!function(e,t){if(t=Number(t),!1===Ee(t))throw new RangeError("bytesWritten must be a finite");qt(e,t)}(this._associatedReadableByteStreamController,e)},t.respondWithNewView=function(e){if(!1===Tt(this))throw er("respond");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");if(!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(!0===Pe(e.buffer))throw new TypeError("The supplied view's buffer has been detached and so cannot be used as a response");!function(e,t){var r=e._pendingPullIntos[0];if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.byteLength!==t.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");r.buffer=t.buffer,qt(e,t.byteLength)}(this._associatedReadableByteStreamController,e)},n(e,[{key:"view",get:function(){if(!1===Tt(this))throw er("view");return this._view}}]),e}(),Ct=function(){function e(){throw new TypeError("ReadableByteStreamController constructor cannot be used directly")}var t=e.prototype;return t.close=function(){if(!1===Bt(this))throw tr("close");if(!0===this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");var e=this._controlledReadableByteStream._state;if("readable"!==e)throw new TypeError("The stream (in "+e+" state) is not in the readable state and cannot be closed");!function(e){var t=e._controlledReadableByteStream;if(e._queueTotalSize>0)e._closeRequested=!0;else{if(e._pendingPullIntos.length>0)if(e._pendingPullIntos[0].bytesFilled>0){var r=new TypeError("Insufficient bytes to fill elements in the given buffer");throw Gt(e,r),r}at(t)}}(this)},t.enqueue=function(e){if(!1===Bt(this))throw tr("enqueue");if(!0===this._closeRequested)throw new TypeError("stream is closed or draining");var t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError("The stream (in "+t+" state) is not in the readable state and cannot be enqueued to");if(!ArrayBuffer.isView(e))throw new TypeError("You can only enqueue array buffer views when using a ReadableByteStreamController");if(!0===Pe(e.buffer))throw new TypeError("Cannot enqueue a view onto a detached ArrayBuffer");!function(e,t){var r=e._controlledReadableByteStream,n=t.buffer,a=t.byteOffset,i=t.byteLength,o=Me(n);if(!0===ft(r))if(0===ut(r))Kt(e,o,a,i);else{ot(r,new Uint8Array(o,a,i),!1)}else!0===ct(r)?(Kt(e,o,a,i),Lt(e)):Kt(e,o,a,i);Rt(e)}(this,e)},t.error=function(e){if(!1===Bt(this))throw tr("error");Gt(this,e)},t[He]=function(e){return this._pendingPullIntos.length>0&&(this._pendingPullIntos[0].bytesFilled=0),Ke(this),this._cancelAlgorithm(e)},t[Ve]=function(){var e=this._controlledReadableByteStream;if(this._queueTotalSize>0){var t,r=this._queue.shift();this._queueTotalSize-=r.byteLength,Nt(this);try{t=new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}catch(e){return Promise.reject(e)}return Promise.resolve(Se(t,!1))}var n=this._autoAllocateChunkSize;if(void 0!==n){var a;try{a=new ArrayBuffer(n)}catch(e){return Promise.reject(e)}var i={buffer:a,byteOffset:0,byteLength:n,bytesFilled:0,elementSize:1,ctor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(i)}var o=rt(e);return Rt(this),o},n(e,[{key:"byobRequest",get:function(){if(!1===Bt(this))throw tr("byobRequest");if(void 0===this._byobRequest&&this._pendingPullIntos.length>0){var e=this._pendingPullIntos[0],t=new Uint8Array(e.buffer,e.byteOffset+e.bytesFilled,e.byteLength-e.bytesFilled),r=Object.create(Mt.prototype);!function(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}(r,this,t),this._byobRequest=r}return this._byobRequest}},{key:"desiredSize",get:function(){if(!1===Bt(this))throw tr("desiredSize");return Ht(this)}}]),e}();function Bt(e){return!!Re(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")}function Tt(e){return!!Re(e)&&!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")}function Rt(e){!1!==function(e){var t=e._controlledReadableByteStream;return"readable"===t._state&&(!0!==e._closeRequested&&(!1!==e._started&&(!0===ft(t)&&ut(t)>0||(!0===ct(t)&&st(t)>0||Ht(e)>0))))}(e)&&(!0!==e._pulling?(e._pulling=!0,e._pullAlgorithm().then(function(){e._pulling=!1,!0===e._pullAgain&&(e._pullAgain=!1,Rt(e))},function(t){Gt(e,t)}).catch(Ie)):e._pullAgain=!0)}function It(e){Ft(e),e._pendingPullIntos=[]}function Ut(e,t){var r=!1;"closed"===e._state&&(r=!0);var n=Ot(t);"default"===t.readerType?ot(e,n,r):function(e,t,r){e._reader._readIntoRequests.shift()._resolve(Se(t,r))}(e,n,r)}function Ot(e){var t=e.bytesFilled,r=e.elementSize;return new e.ctor(e.buffer,e.byteOffset,t/r)}function Kt(e,t,r,n){e._queue.push({buffer:t,byteOffset:r,byteLength:n}),e._queueTotalSize+=n}function zt(e,t){var r=t.elementSize,n=t.bytesFilled-t.bytesFilled%r,a=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),i=t.bytesFilled+a,o=i-i%r,s=a,u=!1;o>n&&(s=o-t.bytesFilled,u=!0);for(var c=e._queue;s>0;){var f=c[0],d=Math.min(s,f.byteLength),l=t.byteOffset+t.bytesFilled;xe(t.buffer,l,f.buffer,f.byteOffset,d),f.byteLength===d?c.shift():(f.byteOffset+=d,f.byteLength-=d),e._queueTotalSize-=d,Dt(e,d,t),s-=d}return u}function Dt(e,t,r){Ft(e),r.bytesFilled+=t}function Nt(e){0===e._queueTotalSize&&!0===e._closeRequested?at(e._controlledReadableByteStream):Rt(e)}function Ft(e){void 0!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=void 0,e._byobRequest=void 0)}function Lt(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;var t=e._pendingPullIntos[0];!0===zt(e,t)&&(Wt(e),Ut(e._controlledReadableByteStream,t))}}function qt(e,t){var r=e._pendingPullIntos[0];if("closed"===e._controlledReadableByteStream._state){if(0!==t)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream");!function(e,t){t.buffer=Me(t.buffer);var r=e._controlledReadableByteStream;if(!0===ct(r))for(;st(r)>0;)Ut(r,Wt(e))}(e,r)}else!function(e,t,r){if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range");if(Dt(e,t,r),!(r.bytesFilled0){var a=r.byteOffset+r.bytesFilled,i=r.buffer.slice(a-n,a);Kt(e,i,0,i.byteLength)}r.buffer=Me(r.buffer),r.bytesFilled-=n,Ut(e._controlledReadableByteStream,r),Lt(e)}}(e,t,r);Rt(e)}function Wt(e){var t=e._pendingPullIntos.shift();return Ft(e),t}function Gt(e,t){var r=e._controlledReadableByteStream;"readable"===r._state&&(It(e),Ke(e),it(r,t))}function Ht(e){var t=e._controlledReadableByteStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function Vt(e,t,r,n,a,i,o){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,It(t),t._queue=t._queueTotalSize=void 0,Ke(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=Ce(i),t._pullAlgorithm=n,t._cancelAlgorithm=a,t._autoAllocateChunkSize=o,t._pendingPullIntos=[],e._readableStreamController=t;var s=r();Promise.resolve(s).then(function(){t._started=!0,Rt(t)},function(e){Gt(t,e)}).catch(Ie)}function Zt(e){return new TypeError("ReadableStream.prototype."+e+" can only be used on a ReadableStream")}function Yt(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function Xt(e){return new TypeError("ReadableStreamDefaultReader.prototype."+e+" can only be used on a ReadableStreamDefaultReader")}function Jt(e,t){e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0}function $t(e){return new TypeError("ReadableStreamBYOBReader.prototype."+e+" can only be used on a ReadableStreamBYOBReader")}function Qt(e){return new TypeError("ReadableStreamDefaultController.prototype."+e+" can only be used on a ReadableStreamDefaultController")}function er(e){return new TypeError("ReadableStreamBYOBRequest.prototype."+e+" can only be used on a ReadableStreamBYOBRequest")}function tr(e){return new TypeError("ReadableByteStreamController.prototype."+e+" can only be used on a ReadableByteStreamController")}var rr=Ye.ReadableStream,nr=v.createDataProperty,ar=function(){function e(e){var t=e.highWaterMark;nr(this,"highWaterMark",t)}return e.prototype.size=function(e){return e.byteLength},e}(),ir=v.createDataProperty,or=function(){function e(e){var t=e.highWaterMark;ir(this,"highWaterMark",t)}return e.prototype.size=function(){return 1},e}(),sr=(j("streams:transform-stream:verbose"),v.InvokeOrNoop),ur=v.CreateAlgorithmFromUnderlyingMethod,cr=v.PromiseCall,fr=v.typeIsObject,dr=v.ValidateAndNormalizeHighWaterMark,lr=(v.IsNonNegativeNumber,v.MakeSizeAlgorithmFromSizeFunction),hr=Ye.CreateReadableStream,pr=Ye.ReadableStreamDefaultControllerClose,br=Ye.ReadableStreamDefaultControllerEnqueue,yr=Ye.ReadableStreamDefaultControllerError,mr=Ye.ReadableStreamDefaultControllerGetDesiredSize,vr=Ye.ReadableStreamDefaultControllerHasBackpressure,gr=Ye.ReadableStreamDefaultControllerCanCloseOrEnqueue,_r=q.CreateWritableStream,wr=q.WritableStreamDefaultControllerErrorIfNeeded,kr=function(){function e(e,t,r){if(void 0===e&&(e={}),void 0===t&&(t={}),void 0===r&&(r={}),void 0!==e.readableType)throw new RangeError("Invalid readable type specified");if(void 0!==e.writableType)throw new RangeError("Invalid writable type specified");var n=t.size,a=lr(n),i=t.highWaterMark;void 0===i&&(i=1),i=dr(i);var o,s=r.size,u=lr(s),c=r.highWaterMark;void 0===c&&(c=0),c=dr(c),xr(this,new Promise(function(e){o=e}),i,a,c,u),function(e,t){var r=Object.create(Pr.prototype),n=function(e){try{return Br(r,e),Promise.resolve()}catch(e){return Promise.reject(e)}},a=t.transform;if(void 0!==a){if("function"!=typeof a)throw new TypeError("transform is not a method");n=function(n){return cr(a,t,[n,r]).catch(function(t){throw Sr(e,t),t})}}var i=ur(t,"flush",0,[r]);Cr(e,r,n,i)}(this,e);var f=sr(e,"start",[this._transformStreamController]);o(f)}return n(e,[{key:"readable",get:function(){if(!1===Ar(this))throw Rr("readable");return this._readable}},{key:"writable",get:function(){if(!1===Ar(this))throw Rr("writable");return this._writable}}]),e}();function xr(e,t,r,n,a,i){function o(){return t}e._writable=_r(o,function(t){return function(e,t){var r=e._transformStreamController;return!0===e._backpressure?e._backpressureChangePromise.then(function(){var n=e._writable;if("erroring"===n._state)throw n._storedError;return r._transformAlgorithm(t)}):r._transformAlgorithm(t)}(e,t)},function(){return function(e){var t=e._readable;return e._transformStreamController._flushAlgorithm().then(function(){if("errored"===t._state)throw t._storedError;var e=t._readableStreamController;!0===gr(e)&&pr(e)}).catch(function(r){throw Sr(e,r),t._storedError})}(e)},function(t){return function(e,t){return Sr(e,t),Promise.resolve()}(e,t)},r,n),e._readable=hr(o,function(){return function(e){return jr(e,!1),e._backpressureChangePromise}(e)},function(t){return Er(e,t),Promise.resolve()},a,i),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,jr(e,!0),e._transformStreamController=void 0}function Ar(e){return!!fr(e)&&!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")}function Sr(e,t){yr(e._readable._readableStreamController,t),Er(e,t)}function Er(e,t){wr(e._writable._writableStreamController,t),!0===e._backpressure&&jr(e,!1)}function jr(e,t){void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=new Promise(function(t){e._backpressureChangePromise_resolve=t}),e._backpressure=t}var Pr=function(){function e(){throw new TypeError("TransformStreamDefaultController instances cannot be created directly")}var t=e.prototype;return t.enqueue=function(e){if(!1===Mr(this))throw Tr("enqueue");Br(this,e)},t.error=function(e){if(!1===Mr(this))throw Tr("error");!function(e,t){Sr(e._controlledTransformStream,t)}(this,e)},t.terminate=function(){if(!1===Mr(this))throw Tr("terminate");var e,t;e=this._controlledTransformStream,t=e._readable._readableStreamController,!0===gr(t)&&pr(t),Er(e,new TypeError("TransformStream terminated"))},n(e,[{key:"desiredSize",get:function(){if(!1===Mr(this))throw Tr("desiredSize");var e=this._controlledTransformStream._readable._readableStreamController;return mr(e)}}]),e}();function Mr(e){return!!fr(e)&&!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")}function Cr(e,t,r,n){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=n}function Br(e,t){var r=e._controlledTransformStream,n=r._readable._readableStreamController;if(!1===gr(n))throw new TypeError("Readable side is not in a state that permits enqueue");try{br(n,t)}catch(e){throw Er(r,e),r._readable._storedError}vr(n)!==r._backpressure&&jr(r,!0)}function Tr(e){return new TypeError("TransformStreamDefaultController.prototype."+e+" can only be used on a TransformStreamDefaultController")}function Rr(e){return new TypeError("TransformStream.prototype."+e+" can only be used on a TransformStream")}var Ir=kr;void 0!==u&&a(u,{ReadableStream:rr,WritableStream:ke,ByteLengthQueuingStrategy:ar,CountQueuingStrategy:or,TransformStream:Ir}),t.ReadableStream=rr,t.WritableStream=ke,t.ByteLengthQueuingStrategy=ar,t.CountQueuingStrategy=or,t.TransformStream=Ir,Object.defineProperty(t,"__esModule",{value:!0})})("object"==typeof r&&void 0!==t?r:this.WebStreamsPolyfill={})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,r){"use strict";var n=i(e("babel-runtime/helpers/classCallCheck")),a=i(e("babel-runtime/helpers/createClass"));function i(e){return e&&e.__esModule?e:{default:e}}var o=e("email-addresses");function s(e){if("group"===e.type)return new u(e.name,e.addresses.map(s));var t=void 0;e.parts.comments&&(t=e.parts.comments.map(function(e){return e.tokens.trim()}).join(" ").trim());var r=e.local;return!e.name&&/:/.test(r)&&(r='"'+r+'"'),new c(e.name,r+"@"+e.domain,t)}r.parse=function(e,t){if(!e)throw"Nothing to parse";e=e.trim();var r=o({input:e,rfc6532:!0,partial:!1,simple:!1,strict:!1,rejectTLD:!1,startAt:t||null});if(!r)throw"No results";return r.addresses.map(s)},r.parseFrom=function(e){return r.parse(e,"from")},r.parseSender=function(e){return r.parse(e,"sender")},r.parseReplyTo=function(e){return r.parse(e,"reply-to")};var u=function(){function e(t,r){(0,n.default)(this,e),this.phrase=t,this.addresses=r}return(0,a.default)(e,[{key:"format",value:function(){return this.phrase+":"+this.addresses.map(function(e){return e.format()}).join(",")}},{key:"name",value:function(){var e=this.phrase;e&&e.length||(e=this.comment);var t=f(e);return t}}]),e}(),c=function(){function e(t,r,a){(0,n.default)(this,e),this.phrase=t||"",this.address=r||"",this.comment=a||""}return(0,a.default)(e,[{key:"host",value:function(){var e=/.*@(.*)$/.exec(this.address);return e?e[1]:null}},{key:"user",value:function(){var e=/^(.*)@/.exec(this.address);return e?e[1]:null}},{key:"format",value:function(){var e=this.phrase,t=this.address,r=this.comment,n=[],a=new RegExp("^[\\-\\w !#$%&'*+/=?^`{|}~]+$");return e&&e.length?(n.push(a.test(e.trim())?e:function(e){if(/^"/.test(e))return!0;var t=void 0;for(;t=/^[\s\S]*?([\s\S])"/.exec(e);){if("\\"!==t[1])return!0;e=e.substr(t[0].length)}return!1}(e)?e:'"'+e+'"'),t&&t.length&&n.push("<"+t+">")):t&&t.length&&n.push(t),r&&/\S/.test(r)&&(r=r.replace(/^\s*\(?/,"(").replace(/\)?\s*$/,")")),r&&r.length&&n.push(r),n.join(" ")}},{key:"name",value:function(){var e=this.phrase,t=this.address;e&&e.length||(e=this.comment);var r=f(e);if(""===r){var n=/([^%.@_]+([._][^%.@_]+)+)[@%]/.exec(t);n&&(r=n[1].replace(/[._]+/g," "),r=f(r))}if(""===r&&/\/g=/i.test(t)){var a=/\/g=([^/]*)/i.exec(t);r=f(a[1]+" "+(a=/\/s=([^/]*)/i.exec(t))[1])}return r}}]),e}();function f(e){return/=?.*?\?=/.test(e)?"":(e=(e=e.trim()).replace(/\s+/," "),/^[\d ]+$/.test(e)?"":(e=e.replace(/^\((.*)\)$/,"$1").replace(/^"(.*)"$/,"$1").replace(/\(.*?\)/g,"").replace(/\\/g,"").replace(/^"(.*)"$/,"$1").replace(/^([^\s]+) ?, ?(.*)$/,"$2 $1").replace(/,.*/,""),(r.isAllUpper(e)||r.isAllLower(e))&&(e=r.nameCase(e)),e=e.replace(/\[[^\]]*\]/g,"").replace(/(^[\s'"]+|[\s'"]+$)/g,"").replace(/\s{2,}/g," ")))}r.Address=c,r.isAllLower=function(e){return e===e.toLowerCase()},r.isAllUpper=function(e){return e===e.toUpperCase()},r.nameCase=function(e){return e.toLowerCase().replace(/\b(\w+)/g,function(e,t){return t.charAt(0).toUpperCase()+t.slice(1)}).replace(/\bMc(\w)/gi,function(e,t){return"Mc"+t.toUpperCase()}).replace(/\bo'(\w)/gi,function(e,t){return"O'"+t.toUpperCase()}).replace(/\b(x*(ix)?v*(iv)?i*)\b/gi,function(e,t){return t.toUpperCase()})}},{"babel-runtime/helpers/classCallCheck":35,"babel-runtime/helpers/createClass":36,"email-addresses":297}],3:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.AES_asm=function(){var e,t,r=!1;function n(r,n){var a=e[(t[r]+t[n])%255];return 0!==r&&0!==n||(a=0),a}var a,i,o,s,u=!1;function c(){function c(r){var n,a,i;for(a=i=function(r){var n=e[255-t[r]];return 0===r&&(n=0),n}(r),n=0;n<4;n++)i^=a=255&(a<<1|a>>>7);return i^=99}r||function(){e=[],t=[];var n,a,i=1;for(n=0;n<255;n++)e[n]=i,a=128&i,i<<=1,i&=255,128===a&&(i^=27),i^=e[n],t[e[n]]=n;e[255]=e[0],t[0]=0,r=!0}(),a=[],i=[],o=[[],[],[],[]],s=[[],[],[],[]];for(var f=0;f<256;f++){var d=c(f);a[f]=d,i[d]=f,o[0][f]=n(2,d)<<24|d<<16|d<<8|n(3,d),s[0][d]=n(14,f)<<24|n(9,f)<<16|n(13,f)<<8|n(11,f);for(var l=1;l<4;l++)o[l][f]=o[l-1][f]>>>8|o[l-1][f]<<24,s[l][d]=s[l-1][d]>>>8|s[l-1][d]<<24}u=!0}var f=function(e,t){u||c();var r=new Uint32Array(t);r.set(a,512),r.set(i,768);for(var n=0;n<4;n++)r.set(o[n],4096+1024*n>>2),r.set(s[n],8192+1024*n>>2);var f=function(e,t,r){"use asm";var n=0,a=0,i=0,o=0,s=0,u=0,c=0,f=0,d=0,l=0,h=0,p=0,b=0,y=0,m=0,v=0,g=0,_=0,w=0,k=0,x=0;var A=new e.Uint32Array(r),S=new e.Uint8Array(r);function E(e,t,r,s,u,c,f,d){e=e|0;t=t|0;r=r|0;s=s|0;u=u|0;c=c|0;f=f|0;d=d|0;var l=0,h=0,p=0,b=0,y=0,m=0,v=0,g=0;l=r|0x400,h=r|0x800,p=r|0xc00;u=u^A[(e|0)>>2],c=c^A[(e|4)>>2],f=f^A[(e|8)>>2],d=d^A[(e|12)>>2];for(g=16;(g|0)<=s<<4;g=g+16|0){b=A[(r|u>>22&1020)>>2]^A[(l|c>>14&1020)>>2]^A[(h|f>>6&1020)>>2]^A[(p|d<<2&1020)>>2]^A[(e|g|0)>>2],y=A[(r|c>>22&1020)>>2]^A[(l|f>>14&1020)>>2]^A[(h|d>>6&1020)>>2]^A[(p|u<<2&1020)>>2]^A[(e|g|4)>>2],m=A[(r|f>>22&1020)>>2]^A[(l|d>>14&1020)>>2]^A[(h|u>>6&1020)>>2]^A[(p|c<<2&1020)>>2]^A[(e|g|8)>>2],v=A[(r|d>>22&1020)>>2]^A[(l|u>>14&1020)>>2]^A[(h|c>>6&1020)>>2]^A[(p|f<<2&1020)>>2]^A[(e|g|12)>>2];u=b,c=y,f=m,d=v}n=A[(t|u>>22&1020)>>2]<<24^A[(t|c>>14&1020)>>2]<<16^A[(t|f>>6&1020)>>2]<<8^A[(t|d<<2&1020)>>2]^A[(e|g|0)>>2],a=A[(t|c>>22&1020)>>2]<<24^A[(t|f>>14&1020)>>2]<<16^A[(t|d>>6&1020)>>2]<<8^A[(t|u<<2&1020)>>2]^A[(e|g|4)>>2],i=A[(t|f>>22&1020)>>2]<<24^A[(t|d>>14&1020)>>2]<<16^A[(t|u>>6&1020)>>2]<<8^A[(t|c<<2&1020)>>2]^A[(e|g|8)>>2],o=A[(t|d>>22&1020)>>2]<<24^A[(t|u>>14&1020)>>2]<<16^A[(t|c>>6&1020)>>2]<<8^A[(t|f<<2&1020)>>2]^A[(e|g|12)>>2]}function j(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;E(0x0000,0x0800,0x1000,x,e,t,r,n)}function P(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var i=0;E(0x0400,0x0c00,0x2000,x,e,n,r,t);i=a,a=o,o=i}function M(e,t,r,d){e=e|0;t=t|0;r=r|0;d=d|0;E(0x0000,0x0800,0x1000,x,s^e,u^t,c^r,f^d);s=n,u=a,c=i,f=o}function C(e,t,r,d){e=e|0;t=t|0;r=r|0;d=d|0;var l=0;E(0x0400,0x0c00,0x2000,x,e,d,r,t);l=a,a=o,o=l;n=n^s,a=a^u,i=i^c,o=o^f;s=e,u=t,c=r,f=d}function B(e,t,r,d){e=e|0;t=t|0;r=r|0;d=d|0;E(0x0000,0x0800,0x1000,x,s,u,c,f);s=n=n^e,u=a=a^t,c=i=i^r,f=o=o^d}function T(e,t,r,d){e=e|0;t=t|0;r=r|0;d=d|0;E(0x0000,0x0800,0x1000,x,s,u,c,f);n=n^e,a=a^t,i=i^r,o=o^d;s=e,u=t,c=r,f=d}function R(e,t,r,d){e=e|0;t=t|0;r=r|0;d=d|0;E(0x0000,0x0800,0x1000,x,s,u,c,f);s=n,u=a,c=i,f=o;n=n^e,a=a^t,i=i^r,o=o^d}function I(e,t,r,s){e=e|0;t=t|0;r=r|0;s=s|0;E(0x0000,0x0800,0x1000,x,d,l,h,p);p=~v&p|v&p+1;h=~m&h|m&h+((p|0)==0);l=~y&l|y&l+((h|0)==0);d=~b&d|b&d+((l|0)==0);n=n^e;a=a^t;i=i^r;o=o^s}function U(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;var a=0,i=0,o=0,d=0,l=0,h=0,p=0,b=0,y=0,m=0;e=e^s,t=t^u,r=r^c,n=n^f;a=g|0,i=_|0,o=w|0,d=k|0;for(;(y|0)<128;y=y+1|0){if(a>>>31){l=l^e,h=h^t,p=p^r,b=b^n}a=a<<1|i>>>31,i=i<<1|o>>>31,o=o<<1|d>>>31,d=d<<1;m=n&1;n=n>>>1|r<<31,r=r>>>1|t<<31,t=t>>>1|e<<31,e=e>>>1;if(m)e=e^0xe1000000}s=l,u=h,c=p,f=b}function O(e){e=e|0;x=e}function K(e,t,r,s){e=e|0;t=t|0;r=r|0;s=s|0;n=e,a=t,i=r,o=s}function z(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;s=e,u=t,c=r,f=n}function D(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;d=e,l=t,h=r,p=n}function N(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;b=e,y=t,m=r,v=n}function F(e,t,r,n){e=e|0;t=t|0;r=r|0;n=n|0;p=~v&p|v&n,h=~m&h|m&r,l=~y&l|y&t,d=~b&d|b&e}function L(e){e=e|0;if(e&15)return-1;S[e|0]=n>>>24,S[e|1]=n>>>16&255,S[e|2]=n>>>8&255,S[e|3]=n&255,S[e|4]=a>>>24,S[e|5]=a>>>16&255,S[e|6]=a>>>8&255,S[e|7]=a&255,S[e|8]=i>>>24,S[e|9]=i>>>16&255,S[e|10]=i>>>8&255,S[e|11]=i&255,S[e|12]=o>>>24,S[e|13]=o>>>16&255,S[e|14]=o>>>8&255,S[e|15]=o&255;return 16}function q(e){e=e|0;if(e&15)return-1;S[e|0]=s>>>24,S[e|1]=s>>>16&255,S[e|2]=s>>>8&255,S[e|3]=s&255,S[e|4]=u>>>24,S[e|5]=u>>>16&255,S[e|6]=u>>>8&255,S[e|7]=u&255,S[e|8]=c>>>24,S[e|9]=c>>>16&255,S[e|10]=c>>>8&255,S[e|11]=c&255,S[e|12]=f>>>24,S[e|13]=f>>>16&255,S[e|14]=f>>>8&255,S[e|15]=f&255;return 16}function W(){j(0,0,0,0);g=n,_=a,w=i,k=o}function G(e,t,r){e=e|0;t=t|0;r=r|0;var s=0;if(t&15)return-1;while((r|0)>=16){V[e&7](S[t|0]<<24|S[t|1]<<16|S[t|2]<<8|S[t|3],S[t|4]<<24|S[t|5]<<16|S[t|6]<<8|S[t|7],S[t|8]<<24|S[t|9]<<16|S[t|10]<<8|S[t|11],S[t|12]<<24|S[t|13]<<16|S[t|14]<<8|S[t|15]);S[t|0]=n>>>24,S[t|1]=n>>>16&255,S[t|2]=n>>>8&255,S[t|3]=n&255,S[t|4]=a>>>24,S[t|5]=a>>>16&255,S[t|6]=a>>>8&255,S[t|7]=a&255,S[t|8]=i>>>24,S[t|9]=i>>>16&255,S[t|10]=i>>>8&255,S[t|11]=i&255,S[t|12]=o>>>24,S[t|13]=o>>>16&255,S[t|14]=o>>>8&255,S[t|15]=o&255;s=s+16|0,t=t+16|0,r=r-16|0}return s|0}function H(e,t,r){e=e|0;t=t|0;r=r|0;var n=0;if(t&15)return-1;while((r|0)>=16){Z[e&1](S[t|0]<<24|S[t|1]<<16|S[t|2]<<8|S[t|3],S[t|4]<<24|S[t|5]<<16|S[t|6]<<8|S[t|7],S[t|8]<<24|S[t|9]<<16|S[t|10]<<8|S[t|11],S[t|12]<<24|S[t|13]<<16|S[t|14]<<8|S[t|15]);n=n+16|0,t=t+16|0,r=r-16|0}return n|0}var V=[j,P,M,C,B,T,R,I];var Z=[M,U];return{set_rounds:O,set_state:K,set_iv:z,set_nonce:D,set_mask:N,set_counter:F,get_state:L,get_iv:q,gcm_init:W,cipher:G,mac:H}}({Uint8Array:Uint8Array,Uint32Array:Uint32Array},e,t);return f.set_key=function(e,t,n,i,o,u,c,d,l){var h=r.subarray(0,60),p=r.subarray(256,316);h.set([t,n,i,o,u,c,d,l]);for(var b=e,y=1;b<4*e+28;b++){var m=h[b-1];(b%e==0||8===e&&b%e==4)&&(m=a[m>>>24]<<24^a[m>>>16&255]<<16^a[m>>>8&255]<<8^a[255&m]),b%e==0&&(m=m<<8^m>>>24^y<<24,y=y<<1^(128&y?27:0)),h[b]=h[b-e]^m}for(var v=0;v=b-4?m:s[0][a[m>>>24]]^s[1][a[m>>>16&255]]^s[2][a[m>>>8&255]]^s[3][a[255&m]];f.set_rounds(e+5)},f};return f.ENC={ECB:0,CBC:2,CFB:4,OFB:6,CTR:7},f.DEC={ECB:1,CBC:3,CFB:5,OFB:6,CTR:7},f.MAC={CBC:0,GCM:1},f.HEAP_DATA=16384,f}()},{}],4:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.AES=void 0;var n=e("./aes.asm"),a=e("../other/utils"),i=e("../other/errors"),o=[],s=[],u=function(){function e(e,t,r,n){void 0===r&&(r=!0),this.pos=0,this.len=0,this.mode=n,this.pos=0,this.len=0,this.key=e,this.iv=t,this.padding=r,this.acquire_asm()}return e.prototype.acquire_asm=function(){void 0===this.heap&&void 0===this.asm&&(this.heap=o.pop()||(0,a._heap_init)().subarray(n.AES_asm.HEAP_DATA),this.asm=s.pop()||(0,n.AES_asm)(null,this.heap.buffer),this.reset(this.key,this.iv))},e.prototype.release_asm=function(){o.push(this.heap),s.push(this.asm),this.heap=void 0,this.asm=void 0},e.prototype.reset=function(e,t){var r=e.length;if(16!==r&&24!==r&&32!==r)throw new i.IllegalArgumentError("illegal key size");var n=new DataView(e.buffer,e.byteOffset,e.byteLength);if(this.asm.set_key(r>>2,n.getUint32(0),n.getUint32(4),n.getUint32(8),n.getUint32(12),r>16?n.getUint32(16):0,r>16?n.getUint32(20):0,r>24?n.getUint32(24):0,r>24?n.getUint32(28):0),void 0!==t){if(16!==t.length)throw new i.IllegalArgumentError("illegal iv size");var a=new DataView(t.buffer,t.byteOffset,t.byteLength);this.asm.set_iv(a.getUint32(0),a.getUint32(4),a.getUint32(8),a.getUint32(12))}else this.asm.set_iv(0,0,0,0)},e.prototype.AES_Encrypt_process=function(e){if(!(0,a.is_bytes)(e))throw new TypeError("data isn't of expected type");this.acquire_asm();for(var t=this.asm,r=this.heap,i=n.AES_asm.ENC[this.mode],o=n.AES_asm.HEAP_DATA,s=this.pos,u=this.len,c=0,f=e.length||0,d=0,l=0,h=new Uint8Array(u+f&-16);f>0;)u+=l=(0,a._heap_write)(r,s+u,e,c,f),c+=l,f-=l,(l=t.cipher(i,o+s,u))&&h.set(r.subarray(s,s+l),d),d+=l,l0;)u+=p=(0,a._heap_write)(r,s+u,e,c,f),c+=p,f-=p,(p=t.cipher(i,o+s,u-(f?0:h)))&&b.set(r.subarray(s,s+p),d),d+=p,p0){if(s%16){if(this.hasOwnProperty("padding"))throw new i.IllegalArgumentError("data length must be a multiple of the block size");s+=16-s%16}if(e.cipher(r,a+o,s),this.hasOwnProperty("padding")&&this.padding){var c=t[o+u-1];if(c<1||c>16||c>u)throw new i.SecurityError("bad padding");for(var f=0,d=c;d>1;d--)f|=c^t[o+u-d];if(f)throw new i.SecurityError("bad padding");u-=c}}var l=new Uint8Array(u);return u>0&&l.set(t.subarray(o,o+u)),this.pos=0,this.len=0,this.release_asm(),l},e}();r.AES=u},{"../other/errors":15,"../other/utils":16,"./aes.asm":3}],5:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.AES_CBC=void 0;var n=s(e("babel-runtime/core-js/object/create")),a=s(e("babel-runtime/core-js/object/set-prototype-of")),i=e("./aes"),o=e("../other/utils");function s(e){return e&&e.__esModule?e:{default:e}}var u,c=(u=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),f=function(e){function t(t,r,n){return void 0===n&&(n=!0),e.call(this,t,r,n,"CBC")||this}return c(t,e),t.encrypt=function(e,r,n,a){return void 0===n&&(n=!0),new t(r,a,n).encrypt(e)},t.decrypt=function(e,r,n,a){return void 0===n&&(n=!0),new t(r,a,n).decrypt(e)},t.prototype.encrypt=function(e){var t=this.AES_Encrypt_process(e),r=this.AES_Encrypt_finish();return(0,o.joinBytes)(t,r)},t.prototype.decrypt=function(e){var t=this.AES_Decrypt_process(e),r=this.AES_Decrypt_finish();return(0,o.joinBytes)(t,r)},t}(i.AES);r.AES_CBC=f},{"../other/utils":16,"./aes":4,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],6:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.AES_CFB=void 0;var n=s(e("babel-runtime/core-js/object/create")),a=s(e("babel-runtime/core-js/object/set-prototype-of")),i=e("./aes"),o=e("../other/utils");function s(e){return e&&e.__esModule?e:{default:e}}var u,c=(u=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),f=function(e){function t(t,r){var n=e.call(this,t,r,!0,"CFB")||this;return delete n.padding,n}return c(t,e),t.encrypt=function(e,r,n){return new t(r,n).encrypt(e)},t.decrypt=function(e,r,n){return new t(r,n).decrypt(e)},t.prototype.encrypt=function(e){var t=this.AES_Encrypt_process(e),r=this.AES_Encrypt_finish();return(0,o.joinBytes)(t,r)},t.prototype.decrypt=function(e){var t=this.AES_Decrypt_process(e),r=this.AES_Decrypt_finish();return(0,o.joinBytes)(t,r)},t}(i.AES);r.AES_CFB=f},{"../other/utils":16,"./aes":4,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],7:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.AES_CTR=void 0;var n=u(e("babel-runtime/core-js/object/create")),a=u(e("babel-runtime/core-js/object/set-prototype-of")),i=e("./aes"),o=e("../other/errors"),s=e("../other/utils");function u(e){return e&&e.__esModule?e:{default:e}}var c,f=(c=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}c(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),d=function(e){function t(t,r){var n=e.call(this,t,void 0,!1,"CTR")||this;return delete n.padding,n.AES_CTR_set_options(r),n}return f(t,e),t.encrypt=function(e,r,n){return new t(r,n).encrypt(e)},t.decrypt=function(e,r,n){return new t(r,n).encrypt(e)},t.prototype.encrypt=function(e){var t=this.AES_Encrypt_process(e),r=this.AES_Encrypt_finish();return(0,s.joinBytes)(t,r)},t.prototype.decrypt=function(e){var t=this.AES_Encrypt_process(e),r=this.AES_Encrypt_finish();return(0,s.joinBytes)(t,r)},t.prototype.AES_CTR_set_options=function(e,t,r){if(void 0!==r){if(r<8||r>48)throw new o.IllegalArgumentError("illegal counter size");var n=Math.pow(2,r)-1;this.asm.set_mask(0,0,n/4294967296|0,0|n)}else r=48,this.asm.set_mask(0,0,65535,4294967295);if(void 0===e)throw new Error("nonce is required");var a=e.length;if(!a||a>16)throw new o.IllegalArgumentError("illegal nonce size");var i=new DataView(new ArrayBuffer(16));if(new Uint8Array(i.buffer).set(e),this.asm.set_nonce(i.getUint32(0),i.getUint32(4),i.getUint32(8),i.getUint32(12)),void 0!==t){if(t<0||t>=Math.pow(2,r))throw new o.IllegalArgumentError("illegal counter value");this.asm.set_counter(0,0,t/4294967296|0,0|t)}},t}(i.AES);r.AES_CTR=d},{"../other/errors":15,"../other/utils":16,"./aes":4,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],8:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.AES_ECB=void 0;var n=s(e("babel-runtime/core-js/object/create")),a=s(e("babel-runtime/core-js/object/set-prototype-of")),i=e("./aes"),o=e("../other/utils");function s(e){return e&&e.__esModule?e:{default:e}}var u,c=(u=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),f=function(e){function t(t,r){return void 0===r&&(r=!1),e.call(this,t,void 0,r,"ECB")||this}return c(t,e),t.encrypt=function(e,r,n){return void 0===n&&(n=!1),new t(r,n).encrypt(e)},t.decrypt=function(e,r,n){return void 0===n&&(n=!1),new t(r,n).decrypt(e)},t.prototype.encrypt=function(e){var t=this.AES_Encrypt_process(e),r=this.AES_Encrypt_finish();return(0,o.joinBytes)(t,r)},t.prototype.decrypt=function(e){var t=this.AES_Decrypt_process(e),r=this.AES_Decrypt_finish();return(0,o.joinBytes)(t,r)},t}(i.AES);r.AES_ECB=f},{"../other/utils":16,"./aes":4,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],9:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.AES_GCM=void 0;var n=c(e("babel-runtime/core-js/object/create")),a=c(e("babel-runtime/core-js/object/set-prototype-of")),i=e("../other/errors"),o=e("../other/utils"),s=e("./aes"),u=e("./aes.asm");function c(e){return e&&e.__esModule?e:{default:e}}var f,d=(f=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}f(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),l=68719476704,h=function(e){function t(t,r,n,a){void 0===a&&(a=16);var o=e.call(this,t,void 0,!1,"CTR")||this;if(o.tagSize=a,o.gamma0=0,o.counter=1,o.asm.gcm_init(),o.tagSize<4||o.tagSize>16)throw new i.IllegalArgumentError("illegal tagSize value");var s=r.length||0,c=new Uint8Array(16);12!==s?(o._gcm_mac_process(r),o.heap[0]=0,o.heap[1]=0,o.heap[2]=0,o.heap[3]=0,o.heap[4]=0,o.heap[5]=0,o.heap[6]=0,o.heap[7]=0,o.heap[8]=0,o.heap[9]=0,o.heap[10]=0,o.heap[11]=s>>>29,o.heap[12]=s>>>21&255,o.heap[13]=s>>>13&255,o.heap[14]=s>>>5&255,o.heap[15]=s<<3&255,o.asm.mac(u.AES_asm.MAC.GCM,u.AES_asm.HEAP_DATA,16),o.asm.get_iv(u.AES_asm.HEAP_DATA),o.asm.set_iv(0,0,0,0),c.set(o.heap.subarray(0,16))):(c.set(r),c[15]=1);var f=new DataView(c.buffer);if(o.gamma0=f.getUint32(12),o.asm.set_nonce(f.getUint32(0),f.getUint32(4),f.getUint32(8),0),o.asm.set_mask(0,0,0,4294967295),void 0!==n){if(n.length>l)throw new i.IllegalArgumentError("illegal adata length");n.length?(o.adata=n,o._gcm_mac_process(n)):o.adata=void 0}else o.adata=void 0;if(o.counter<1||o.counter>4294967295)throw new RangeError("counter must be a positive 32-bit integer");return o.asm.set_counter(0,0,0,o.gamma0+o.counter|0),o}return d(t,e),t.encrypt=function(e,r,n,a,i){return new t(r,n,a,i).encrypt(e)},t.decrypt=function(e,r,n,a,i){return new t(r,n,a,i).decrypt(e)},t.prototype.encrypt=function(e){return this.AES_GCM_encrypt(e)},t.prototype.decrypt=function(e){return this.AES_GCM_decrypt(e)},t.prototype.AES_GCM_Encrypt_process=function(e){var t=0,r=e.length||0,n=this.asm,a=this.heap,i=this.counter,s=this.pos,c=this.len,f=0,d=c+r&-16,h=0;if((i-1<<4)+c+r>l)throw new RangeError("counter overflow");for(var p=new Uint8Array(d);r>0;)c+=h=(0,o._heap_write)(a,s+c,e,t,r),t+=h,r-=h,h=n.cipher(u.AES_asm.ENC.CTR,u.AES_asm.HEAP_DATA+s,c),(h=n.mac(u.AES_asm.MAC.GCM,u.AES_asm.HEAP_DATA+s,h))&&p.set(a.subarray(s,s+h),f),i+=h>>>4,f+=h,h>>29,t[4]=f>>>21,t[5]=f>>>13&255,t[6]=f>>>5&255,t[7]=f<<3&255,t[8]=t[9]=t[10]=0,t[11]=d>>>29,t[12]=d>>>21&255,t[13]=d>>>13&255,t[14]=d>>>5&255,t[15]=d<<3&255,e.mac(u.AES_asm.MAC.GCM,u.AES_asm.HEAP_DATA,16),e.get_iv(u.AES_asm.HEAP_DATA),e.set_counter(0,0,0,this.gamma0),e.cipher(u.AES_asm.ENC.CTR,u.AES_asm.HEAP_DATA,16),s.set(t.subarray(0,n),o),this.counter=1,this.pos=0,this.len=0,s},t.prototype.AES_GCM_Decrypt_process=function(e){var t=0,r=e.length||0,n=this.asm,a=this.heap,i=this.counter,s=this.tagSize,c=this.pos,f=this.len,d=0,h=f+r>s?f+r-s&-16:0,p=f+r-h,b=0;if((i-1<<4)+f+r>l)throw new RangeError("counter overflow");for(var y=new Uint8Array(h);r>p;)f+=b=(0,o._heap_write)(a,c+f,e,t,r-p),t+=b,r-=b,b=n.mac(u.AES_asm.MAC.GCM,u.AES_asm.HEAP_DATA+c,b),(b=n.cipher(u.AES_asm.DEC.CTR,u.AES_asm.HEAP_DATA+c,b))&&y.set(a.subarray(c,c+b),d),i+=b>>>4,d+=b,c=0,f=0;return r>0&&(f+=(0,o._heap_write)(a,0,e,t,r)),this.counter=i,this.pos=c,this.len=f,y},t.prototype.AES_GCM_Decrypt_finish=function(){var e=this.asm,t=this.heap,r=this.tagSize,n=this.adata,a=this.counter,o=this.pos,s=this.len,c=s-r;if(s>>29,t[4]=h>>>21,t[5]=h>>>13&255,t[6]=h>>>5&255,t[7]=h<<3&255,t[8]=t[9]=t[10]=0,t[11]=p>>>29,t[12]=p>>>21&255,t[13]=p>>>13&255,t[14]=p>>>5&255,t[15]=p<<3&255,e.mac(u.AES_asm.MAC.GCM,u.AES_asm.HEAP_DATA,16),e.get_iv(u.AES_asm.HEAP_DATA),e.set_counter(0,0,0,this.gamma0),e.cipher(u.AES_asm.ENC.CTR,u.AES_asm.HEAP_DATA,16);for(var b=0,y=0;y0;){for(n+=i=(0,o._heap_write)(t,0,e,n,a),a-=i;15&i;)t[i++]=0;r.mac(u.AES_asm.MAC.GCM,u.AES_asm.HEAP_DATA,i)}},t}(s.AES);r.AES_GCM=h},{"../other/errors":15,"../other/utils":16,"./aes":4,"./aes.asm":3,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],10:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Hash=void 0;var n=e("../other/utils"),a=e("../other/errors"),i=function(){function e(){this.pos=0,this.len=0,this.acquire_asm()}return e.prototype.acquire_asm=function(){void 0===this.heap&&void 0===this.asm&&(this.heap=this.constructor.heap_pool.pop()||(0,n._heap_init)(),this.asm=this.constructor.asm_pool.pop()||this.constructor.asm_function({Uint8Array:Uint8Array},null,this.heap.buffer),this.reset())},e.prototype.release_asm=function(){this.constructor.heap_pool.push(this.heap),this.constructor.asm_pool.push(this.asm),this.heap=void 0,this.asm=void 0},e.prototype.reset=function(){return this.acquire_asm(),this.result=null,this.pos=0,this.len=0,this.asm.reset(),this},e.prototype.process=function(e){if(null!==this.result)throw new a.IllegalStateError("state must be reset before processing new data");this.acquire_asm();for(var t=this.asm,r=this.heap,i=this.pos,o=this.len,s=0,u=e.length,c=0;u>0;)o+=c=(0,n._heap_write)(r,i+o,e,s,u),s+=c,u-=c,i+=c=t.process(i,o),(o-=c)||(i=0);return this.pos=i,this.len=o,this},e.prototype.finish=function(){if(null!==this.result)throw new a.IllegalStateError("state must be reset before processing new data");return this.acquire_asm(),this.asm.finish(this.pos,this.len,0),this.result=new Uint8Array(this.HASH_SIZE),this.result.set(this.heap.subarray(0,this.HASH_SIZE)),this.pos=0,this.len=0,this.release_asm(),this},e}();r.Hash=i},{"../other/errors":15,"../other/utils":16}],11:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.sha1_asm=function(e,t,r){"use asm";var n=0,a=0,i=0,o=0,s=0,u=0,c=0,f=0,d=0,l=0,h=0,p=0,b=0,y=0,m=0,v=0,g=0,_=new e.Uint8Array(r);function w(e,t,r,u,c,f,d,l,h,p,b,y,m,v,g,_){e=e|0;t=t|0;r=r|0;u=u|0;c=c|0;f=f|0;d=d|0;l=l|0;h=h|0;p=p|0;b=b|0;y=y|0;m=m|0;v=v|0;g=g|0;_=_|0;var w=0,k=0,x=0,A=0,S=0,E=0,j=0,P=0,M=0,C=0,B=0,T=0,R=0,I=0,U=0,O=0,K=0,z=0,D=0,N=0,F=0,L=0,q=0,W=0,G=0,H=0,V=0,Z=0,Y=0,X=0,J=0,$=0,Q=0,ee=0,te=0,re=0,ne=0,ae=0,ie=0,oe=0,se=0,ue=0,ce=0,fe=0,de=0,le=0,he=0,pe=0,be=0,ye=0,me=0,ve=0,ge=0,_e=0,we=0,ke=0,xe=0,Ae=0,Se=0,Ee=0,je=0,Pe=0,Me=0,Ce=0,Be=0,Te=0,Re=0,Ie=0,Ue=0,Oe=0,Ke=0;w=n;k=a;x=i;A=o;S=s;j=e+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=t+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=r+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=u+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=c+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=f+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=d+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=l+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=h+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=p+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=b+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=y+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=m+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=v+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=g+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;j=_+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=v^h^r^e;P=E<<1|E>>>31;j=P+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=g^p^u^t;M=E<<1|E>>>31;j=M+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=_^b^c^r;C=E<<1|E>>>31;j=C+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=P^y^f^u;B=E<<1|E>>>31;j=B+(w<<5|w>>>27)+S+(k&x|~k&A)+0x5a827999|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=M^m^d^c;T=E<<1|E>>>31;j=T+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=C^v^l^f;R=E<<1|E>>>31;j=R+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=B^g^h^d;I=E<<1|E>>>31;j=I+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=T^_^p^l;U=E<<1|E>>>31;j=U+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=R^P^b^h;O=E<<1|E>>>31;j=O+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=I^M^y^p;K=E<<1|E>>>31;j=K+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=U^C^m^b;z=E<<1|E>>>31;j=z+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=O^B^v^y;D=E<<1|E>>>31;j=D+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=K^T^g^m;N=E<<1|E>>>31;j=N+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=z^R^_^v;F=E<<1|E>>>31;j=F+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=D^I^P^g;L=E<<1|E>>>31;j=L+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=N^U^M^_;q=E<<1|E>>>31;j=q+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=F^O^C^P;W=E<<1|E>>>31;j=W+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=L^K^B^M;G=E<<1|E>>>31;j=G+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=q^z^T^C;H=E<<1|E>>>31;j=H+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=W^D^R^B;V=E<<1|E>>>31;j=V+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=G^N^I^T;Z=E<<1|E>>>31;j=Z+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=H^F^U^R;Y=E<<1|E>>>31;j=Y+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=V^L^O^I;X=E<<1|E>>>31;j=X+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Z^q^K^U;J=E<<1|E>>>31;j=J+(w<<5|w>>>27)+S+(k^x^A)+0x6ed9eba1|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Y^W^z^O;$=E<<1|E>>>31;j=$+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=X^G^D^K;Q=E<<1|E>>>31;j=Q+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=J^H^N^z;ee=E<<1|E>>>31;j=ee+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=$^V^F^D;te=E<<1|E>>>31;j=te+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Q^Z^L^N;re=E<<1|E>>>31;j=re+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ee^Y^q^F;ne=E<<1|E>>>31;j=ne+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=te^X^W^L;ae=E<<1|E>>>31;j=ae+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=re^J^G^q;ie=E<<1|E>>>31;j=ie+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ne^$^H^W;oe=E<<1|E>>>31;j=oe+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ae^Q^V^G;se=E<<1|E>>>31;j=se+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ie^ee^Z^H;ue=E<<1|E>>>31;j=ue+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=oe^te^Y^V;ce=E<<1|E>>>31;j=ce+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=se^re^X^Z;fe=E<<1|E>>>31;j=fe+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ue^ne^J^Y;de=E<<1|E>>>31;j=de+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ce^ae^$^X;le=E<<1|E>>>31;j=le+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=fe^ie^Q^J;he=E<<1|E>>>31;j=he+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=de^oe^ee^$;pe=E<<1|E>>>31;j=pe+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=le^se^te^Q;be=E<<1|E>>>31;j=be+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=he^ue^re^ee;ye=E<<1|E>>>31;j=ye+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=pe^ce^ne^te;me=E<<1|E>>>31;j=me+(w<<5|w>>>27)+S+(k&x|k&A|x&A)-0x70e44324|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=be^fe^ae^re;ve=E<<1|E>>>31;j=ve+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ye^de^ie^ne;ge=E<<1|E>>>31;j=ge+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=me^le^oe^ae;_e=E<<1|E>>>31;j=_e+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ve^he^se^ie;we=E<<1|E>>>31;j=we+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ge^pe^ue^oe;ke=E<<1|E>>>31;j=ke+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=_e^be^ce^se;xe=E<<1|E>>>31;j=xe+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=we^ye^fe^ue;Ae=E<<1|E>>>31;j=Ae+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=ke^me^de^ce;Se=E<<1|E>>>31;j=Se+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=xe^ve^le^fe;Ee=E<<1|E>>>31;j=Ee+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Ae^ge^he^de;je=E<<1|E>>>31;j=je+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Se^_e^pe^le;Pe=E<<1|E>>>31;j=Pe+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Ee^we^be^he;Me=E<<1|E>>>31;j=Me+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=je^ke^ye^pe;Ce=E<<1|E>>>31;j=Ce+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Pe^xe^me^be;Be=E<<1|E>>>31;j=Be+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Me^Ae^ve^ye;Te=E<<1|E>>>31;j=Te+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Ce^Se^ge^me;Re=E<<1|E>>>31;j=Re+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Be^Ee^_e^ve;Ie=E<<1|E>>>31;j=Ie+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Te^je^we^ge;Ue=E<<1|E>>>31;j=Ue+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Re^Pe^ke^_e;Oe=E<<1|E>>>31;j=Oe+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;E=Ie^Me^xe^we;Ke=E<<1|E>>>31;j=Ke+(w<<5|w>>>27)+S+(k^x^A)-0x359d3e2a|0;S=A;A=x;x=k<<30|k>>>2;k=w;w=j;n=n+w|0;a=a+k|0;i=i+x|0;o=o+A|0;s=s+S|0}function k(e){e=e|0;w(_[e|0]<<24|_[e|1]<<16|_[e|2]<<8|_[e|3],_[e|4]<<24|_[e|5]<<16|_[e|6]<<8|_[e|7],_[e|8]<<24|_[e|9]<<16|_[e|10]<<8|_[e|11],_[e|12]<<24|_[e|13]<<16|_[e|14]<<8|_[e|15],_[e|16]<<24|_[e|17]<<16|_[e|18]<<8|_[e|19],_[e|20]<<24|_[e|21]<<16|_[e|22]<<8|_[e|23],_[e|24]<<24|_[e|25]<<16|_[e|26]<<8|_[e|27],_[e|28]<<24|_[e|29]<<16|_[e|30]<<8|_[e|31],_[e|32]<<24|_[e|33]<<16|_[e|34]<<8|_[e|35],_[e|36]<<24|_[e|37]<<16|_[e|38]<<8|_[e|39],_[e|40]<<24|_[e|41]<<16|_[e|42]<<8|_[e|43],_[e|44]<<24|_[e|45]<<16|_[e|46]<<8|_[e|47],_[e|48]<<24|_[e|49]<<16|_[e|50]<<8|_[e|51],_[e|52]<<24|_[e|53]<<16|_[e|54]<<8|_[e|55],_[e|56]<<24|_[e|57]<<16|_[e|58]<<8|_[e|59],_[e|60]<<24|_[e|61]<<16|_[e|62]<<8|_[e|63])}function x(e){e=e|0;_[e|0]=n>>>24;_[e|1]=n>>>16&255;_[e|2]=n>>>8&255;_[e|3]=n&255;_[e|4]=a>>>24;_[e|5]=a>>>16&255;_[e|6]=a>>>8&255;_[e|7]=a&255;_[e|8]=i>>>24;_[e|9]=i>>>16&255;_[e|10]=i>>>8&255;_[e|11]=i&255;_[e|12]=o>>>24;_[e|13]=o>>>16&255;_[e|14]=o>>>8&255;_[e|15]=o&255;_[e|16]=s>>>24;_[e|17]=s>>>16&255;_[e|18]=s>>>8&255;_[e|19]=s&255}function A(){n=0x67452301;a=0xefcdab89;i=0x98badcfe;o=0x10325476;s=0xc3d2e1f0;u=c=0}function S(e,t,r,f,d,l,h){e=e|0;t=t|0;r=r|0;f=f|0;d=d|0;l=l|0;h=h|0;n=e;a=t;i=r;o=f;s=d;u=l;c=h}function E(e,t){e=e|0;t=t|0;var r=0;if(e&63)return-1;while((t|0)>=64){k(e);e=e+64|0;t=t-64|0;r=r+64|0}u=u+r|0;if(u>>>0>>0)c=c+1|0;return r|0}function j(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,a=0;if(e&63)return-1;if(~r)if(r&31)return-1;if((t|0)>=64){n=E(e,t)|0;if((n|0)==-1)return-1;e=e+n|0;t=t-n|0}n=n+t|0;u=u+t|0;if(u>>>0>>0)c=c+1|0;_[e|t]=0x80;if((t|0)>=56){for(a=t+1|0;(a|0)<64;a=a+1|0){_[e|a]=0x00}k(e);t=0;_[e|0]=0}for(a=t+1|0;(a|0)<59;a=a+1|0){_[e|a]=0}_[e|56]=c>>>21&255;_[e|57]=c>>>13&255;_[e|58]=c>>>5&255;_[e|59]=c<<3&255|u>>>29;_[e|60]=u>>>21&255;_[e|61]=u>>>13&255;_[e|62]=u>>>5&255;_[e|63]=u<<3&255;k(e);if(~r)x(r);return n|0}function P(){n=f;a=d;i=l;o=h;s=p;u=64;c=0}function M(){n=b;a=y;i=m;o=v;s=g;u=64;c=0}function C(e,t,r,_,k,x,S,E,j,P,M,C,B,T,R,I){e=e|0;t=t|0;r=r|0;_=_|0;k=k|0;x=x|0;S=S|0;E=E|0;j=j|0;P=P|0;M=M|0;C=C|0;B=B|0;T=T|0;R=R|0;I=I|0;A();w(e^0x5c5c5c5c,t^0x5c5c5c5c,r^0x5c5c5c5c,_^0x5c5c5c5c,k^0x5c5c5c5c,x^0x5c5c5c5c,S^0x5c5c5c5c,E^0x5c5c5c5c,j^0x5c5c5c5c,P^0x5c5c5c5c,M^0x5c5c5c5c,C^0x5c5c5c5c,B^0x5c5c5c5c,T^0x5c5c5c5c,R^0x5c5c5c5c,I^0x5c5c5c5c);b=n;y=a;m=i;v=o;g=s;A();w(e^0x36363636,t^0x36363636,r^0x36363636,_^0x36363636,k^0x36363636,x^0x36363636,S^0x36363636,E^0x36363636,j^0x36363636,P^0x36363636,M^0x36363636,C^0x36363636,B^0x36363636,T^0x36363636,R^0x36363636,I^0x36363636);f=n;d=a;l=i;h=o;p=s;u=64;c=0}function B(e,t,r){e=e|0;t=t|0;r=r|0;var u=0,c=0,f=0,d=0,l=0,h=0;if(e&63)return-1;if(~r)if(r&31)return-1;h=j(e,t,-1)|0;u=n,c=a,f=i,d=o,l=s;M();w(u,c,f,d,l,0x80000000,0,0,0,0,0,0,0,0,0,672);if(~r)x(r);return h|0}function T(e,t,r,u,c){e=e|0;t=t|0;r=r|0;u=u|0;c=c|0;var f=0,d=0,l=0,h=0,p=0,b=0,y=0,m=0,v=0,g=0;if(e&63)return-1;if(~c)if(c&31)return-1;_[e+t|0]=r>>>24;_[e+t+1|0]=r>>>16&255;_[e+t+2|0]=r>>>8&255;_[e+t+3|0]=r&255;B(e,t+4|0,-1)|0;f=b=n,d=y=a,l=m=i,h=v=o,p=g=s;u=u-1|0;while((u|0)>0){P();w(b,y,m,v,g,0x80000000,0,0,0,0,0,0,0,0,0,672);b=n,y=a,m=i,v=o,g=s;M();w(b,y,m,v,g,0x80000000,0,0,0,0,0,0,0,0,0,672);b=n,y=a,m=i,v=o,g=s;f=f^n;d=d^a;l=l^i;h=h^o;p=p^s;u=u-1|0}n=f;a=d;i=l;o=h;s=p;if(~c)x(c);return 0}return{reset:A,init:S,process:E,finish:j,hmac_reset:P,hmac_init:C,hmac_finish:B,pbkdf2_generate_block:T}}},{}],12:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Sha1=r._sha1_hash_size=r._sha1_block_size=void 0;var n=s(e("babel-runtime/core-js/object/create")),a=s(e("babel-runtime/core-js/object/set-prototype-of")),i=e("./sha1.asm"),o=e("../hash");function s(e){return e&&e.__esModule?e:{default:e}}var u,c=(u=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),f=r._sha1_block_size=64,d=r._sha1_hash_size=20,l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.NAME="sha1",t.BLOCK_SIZE=f,t.HASH_SIZE=d,t}return c(t,e),t.bytes=function(e){return(new t).process(e).finish().result},t.NAME="sha1",t.heap_pool=[],t.asm_pool=[],t.asm_function=i.sha1_asm,t}(o.Hash);r.Sha1=l},{"../hash":10,"./sha1.asm":11,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],13:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.sha256_asm=function(e,t,r){"use asm";var n=0,a=0,i=0,o=0,s=0,u=0,c=0,f=0,d=0,l=0,h=0,p=0,b=0,y=0,m=0,v=0,g=0,_=0,w=0,k=0,x=0,A=0,S=0,E=0,j=0,P=0,M=new e.Uint8Array(r);function C(e,t,r,d,l,h,p,b,y,m,v,g,_,w,k,x){e=e|0;t=t|0;r=r|0;d=d|0;l=l|0;h=h|0;p=p|0;b=b|0;y=y|0;m=m|0;v=v|0;g=g|0;_=_|0;w=w|0;k=k|0;x=x|0;var A=0,S=0,E=0,j=0,P=0,M=0,C=0,B=0;A=n;S=a;E=i;j=o;P=s;M=u;C=c;B=f;B=e+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0x428a2f98|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;C=t+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0x71374491|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;M=r+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0xb5c0fbcf|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;P=d+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0xe9b5dba5|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;j=l+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0x3956c25b|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;E=h+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0x59f111f1|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;S=p+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0x923f82a4|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;A=b+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0xab1c5ed5|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;B=y+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0xd807aa98|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;C=m+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0x12835b01|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;M=v+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0x243185be|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;P=g+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0x550c7dc3|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;j=_+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0x72be5d74|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;E=w+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0x80deb1fe|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;S=k+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0x9bdc06a7|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;A=x+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0xc19bf174|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+e+m|0;B=e+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0xe49b69c1|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(x>>>17^x>>>19^x>>>10^x<<15^x<<13)+t+v|0;C=t+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0xefbe4786|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;r=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+g|0;M=r+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0x0fc19dc6|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;d=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+_|0;P=d+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0x240ca1cc|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;l=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+l+w|0;j=l+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0x2de92c6f|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;h=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+h+k|0;E=h+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0x4a7484aa|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;p=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+x|0;S=p+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0x5cb0a9dc|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;b=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+b+e|0;A=b+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0x76f988da|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;y=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+t|0;B=y+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0x983e5152|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;m=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+m+r|0;C=m+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0xa831c66d|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;v=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+v+d|0;M=v+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0xb00327c8|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;g=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+g+l|0;P=g+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0xbf597fc7|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;_=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+h|0;j=_+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0xc6e00bf3|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;w=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+p|0;E=w+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0xd5a79147|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;k=(x>>>7^x>>>18^x>>>3^x<<25^x<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+k+b|0;S=k+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0x06ca6351|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;x=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+x+y|0;A=x+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0x14292967|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+e+m|0;B=e+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0x27b70a85|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(x>>>17^x>>>19^x>>>10^x<<15^x<<13)+t+v|0;C=t+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0x2e1b2138|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;r=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+g|0;M=r+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0x4d2c6dfc|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;d=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+_|0;P=d+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0x53380d13|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;l=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+l+w|0;j=l+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0x650a7354|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;h=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+h+k|0;E=h+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0x766a0abb|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;p=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+x|0;S=p+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0x81c2c92e|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;b=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+b+e|0;A=b+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0x92722c85|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;y=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+t|0;B=y+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0xa2bfe8a1|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;m=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+m+r|0;C=m+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0xa81a664b|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;v=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+v+d|0;M=v+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0xc24b8b70|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;g=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+g+l|0;P=g+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0xc76c51a3|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;_=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+h|0;j=_+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0xd192e819|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;w=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+p|0;E=w+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0xd6990624|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;k=(x>>>7^x>>>18^x>>>3^x<<25^x<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+k+b|0;S=k+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0xf40e3585|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;x=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+x+y|0;A=x+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0x106aa070|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;e=(t>>>7^t>>>18^t>>>3^t<<25^t<<14)+(k>>>17^k>>>19^k>>>10^k<<15^k<<13)+e+m|0;B=e+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0x19a4c116|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;t=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(x>>>17^x>>>19^x>>>10^x<<15^x<<13)+t+v|0;C=t+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0x1e376c08|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;r=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+r+g|0;M=r+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0x2748774c|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;d=(l>>>7^l>>>18^l>>>3^l<<25^l<<14)+(t>>>17^t>>>19^t>>>10^t<<15^t<<13)+d+_|0;P=d+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0x34b0bcb5|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;l=(h>>>7^h>>>18^h>>>3^h<<25^h<<14)+(r>>>17^r>>>19^r>>>10^r<<15^r<<13)+l+w|0;j=l+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0x391c0cb3|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;h=(p>>>7^p>>>18^p>>>3^p<<25^p<<14)+(d>>>17^d>>>19^d>>>10^d<<15^d<<13)+h+k|0;E=h+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0x4ed8aa4a|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;p=(b>>>7^b>>>18^b>>>3^b<<25^b<<14)+(l>>>17^l>>>19^l>>>10^l<<15^l<<13)+p+x|0;S=p+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0x5b9cca4f|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;b=(y>>>7^y>>>18^y>>>3^y<<25^y<<14)+(h>>>17^h>>>19^h>>>10^h<<15^h<<13)+b+e|0;A=b+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0x682e6ff3|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;y=(m>>>7^m>>>18^m>>>3^m<<25^m<<14)+(p>>>17^p>>>19^p>>>10^p<<15^p<<13)+y+t|0;B=y+B+(P>>>6^P>>>11^P>>>25^P<<26^P<<21^P<<7)+(C^P&(M^C))+0x748f82ee|0;j=j+B|0;B=B+(A&S^E&(A^S))+(A>>>2^A>>>13^A>>>22^A<<30^A<<19^A<<10)|0;m=(v>>>7^v>>>18^v>>>3^v<<25^v<<14)+(b>>>17^b>>>19^b>>>10^b<<15^b<<13)+m+r|0;C=m+C+(j>>>6^j>>>11^j>>>25^j<<26^j<<21^j<<7)+(M^j&(P^M))+0x78a5636f|0;E=E+C|0;C=C+(B&A^S&(B^A))+(B>>>2^B>>>13^B>>>22^B<<30^B<<19^B<<10)|0;v=(g>>>7^g>>>18^g>>>3^g<<25^g<<14)+(y>>>17^y>>>19^y>>>10^y<<15^y<<13)+v+d|0;M=v+M+(E>>>6^E>>>11^E>>>25^E<<26^E<<21^E<<7)+(P^E&(j^P))+0x84c87814|0;S=S+M|0;M=M+(C&B^A&(C^B))+(C>>>2^C>>>13^C>>>22^C<<30^C<<19^C<<10)|0;g=(_>>>7^_>>>18^_>>>3^_<<25^_<<14)+(m>>>17^m>>>19^m>>>10^m<<15^m<<13)+g+l|0;P=g+P+(S>>>6^S>>>11^S>>>25^S<<26^S<<21^S<<7)+(j^S&(E^j))+0x8cc70208|0;A=A+P|0;P=P+(M&C^B&(M^C))+(M>>>2^M>>>13^M>>>22^M<<30^M<<19^M<<10)|0;_=(w>>>7^w>>>18^w>>>3^w<<25^w<<14)+(v>>>17^v>>>19^v>>>10^v<<15^v<<13)+_+h|0;j=_+j+(A>>>6^A>>>11^A>>>25^A<<26^A<<21^A<<7)+(E^A&(S^E))+0x90befffa|0;B=B+j|0;j=j+(P&M^C&(P^M))+(P>>>2^P>>>13^P>>>22^P<<30^P<<19^P<<10)|0;w=(k>>>7^k>>>18^k>>>3^k<<25^k<<14)+(g>>>17^g>>>19^g>>>10^g<<15^g<<13)+w+p|0;E=w+E+(B>>>6^B>>>11^B>>>25^B<<26^B<<21^B<<7)+(S^B&(A^S))+0xa4506ceb|0;C=C+E|0;E=E+(j&P^M&(j^P))+(j>>>2^j>>>13^j>>>22^j<<30^j<<19^j<<10)|0;k=(x>>>7^x>>>18^x>>>3^x<<25^x<<14)+(_>>>17^_>>>19^_>>>10^_<<15^_<<13)+k+b|0;S=k+S+(C>>>6^C>>>11^C>>>25^C<<26^C<<21^C<<7)+(A^C&(B^A))+0xbef9a3f7|0;M=M+S|0;S=S+(E&j^P&(E^j))+(E>>>2^E>>>13^E>>>22^E<<30^E<<19^E<<10)|0;x=(e>>>7^e>>>18^e>>>3^e<<25^e<<14)+(w>>>17^w>>>19^w>>>10^w<<15^w<<13)+x+y|0;A=x+A+(M>>>6^M>>>11^M>>>25^M<<26^M<<21^M<<7)+(B^M&(C^B))+0xc67178f2|0;P=P+A|0;A=A+(S&E^j&(S^E))+(S>>>2^S>>>13^S>>>22^S<<30^S<<19^S<<10)|0;n=n+A|0;a=a+S|0;i=i+E|0;o=o+j|0;s=s+P|0;u=u+M|0;c=c+C|0;f=f+B|0}function B(e){e=e|0;C(M[e|0]<<24|M[e|1]<<16|M[e|2]<<8|M[e|3],M[e|4]<<24|M[e|5]<<16|M[e|6]<<8|M[e|7],M[e|8]<<24|M[e|9]<<16|M[e|10]<<8|M[e|11],M[e|12]<<24|M[e|13]<<16|M[e|14]<<8|M[e|15],M[e|16]<<24|M[e|17]<<16|M[e|18]<<8|M[e|19],M[e|20]<<24|M[e|21]<<16|M[e|22]<<8|M[e|23],M[e|24]<<24|M[e|25]<<16|M[e|26]<<8|M[e|27],M[e|28]<<24|M[e|29]<<16|M[e|30]<<8|M[e|31],M[e|32]<<24|M[e|33]<<16|M[e|34]<<8|M[e|35],M[e|36]<<24|M[e|37]<<16|M[e|38]<<8|M[e|39],M[e|40]<<24|M[e|41]<<16|M[e|42]<<8|M[e|43],M[e|44]<<24|M[e|45]<<16|M[e|46]<<8|M[e|47],M[e|48]<<24|M[e|49]<<16|M[e|50]<<8|M[e|51],M[e|52]<<24|M[e|53]<<16|M[e|54]<<8|M[e|55],M[e|56]<<24|M[e|57]<<16|M[e|58]<<8|M[e|59],M[e|60]<<24|M[e|61]<<16|M[e|62]<<8|M[e|63])}function T(e){e=e|0;M[e|0]=n>>>24;M[e|1]=n>>>16&255;M[e|2]=n>>>8&255;M[e|3]=n&255;M[e|4]=a>>>24;M[e|5]=a>>>16&255;M[e|6]=a>>>8&255;M[e|7]=a&255;M[e|8]=i>>>24;M[e|9]=i>>>16&255;M[e|10]=i>>>8&255;M[e|11]=i&255;M[e|12]=o>>>24;M[e|13]=o>>>16&255;M[e|14]=o>>>8&255;M[e|15]=o&255;M[e|16]=s>>>24;M[e|17]=s>>>16&255;M[e|18]=s>>>8&255;M[e|19]=s&255;M[e|20]=u>>>24;M[e|21]=u>>>16&255;M[e|22]=u>>>8&255;M[e|23]=u&255;M[e|24]=c>>>24;M[e|25]=c>>>16&255;M[e|26]=c>>>8&255;M[e|27]=c&255;M[e|28]=f>>>24;M[e|29]=f>>>16&255;M[e|30]=f>>>8&255;M[e|31]=f&255}function R(){n=0x6a09e667;a=0xbb67ae85;i=0x3c6ef372;o=0xa54ff53a;s=0x510e527f;u=0x9b05688c;c=0x1f83d9ab;f=0x5be0cd19;d=l=0}function I(e,t,r,h,p,b,y,m,v,g){e=e|0;t=t|0;r=r|0;h=h|0;p=p|0;b=b|0;y=y|0;m=m|0;v=v|0;g=g|0;n=e;a=t;i=r;o=h;s=p;u=b;c=y;f=m;d=v;l=g}function U(e,t){e=e|0;t=t|0;var r=0;if(e&63)return-1;while((t|0)>=64){B(e);e=e+64|0;t=t-64|0;r=r+64|0}d=d+r|0;if(d>>>0>>0)l=l+1|0;return r|0}function O(e,t,r){e=e|0;t=t|0;r=r|0;var n=0,a=0;if(e&63)return-1;if(~r)if(r&31)return-1;if((t|0)>=64){n=U(e,t)|0;if((n|0)==-1)return-1;e=e+n|0;t=t-n|0}n=n+t|0;d=d+t|0;if(d>>>0>>0)l=l+1|0;M[e|t]=0x80;if((t|0)>=56){for(a=t+1|0;(a|0)<64;a=a+1|0){M[e|a]=0x00}B(e);t=0;M[e|0]=0}for(a=t+1|0;(a|0)<59;a=a+1|0){M[e|a]=0}M[e|56]=l>>>21&255;M[e|57]=l>>>13&255;M[e|58]=l>>>5&255;M[e|59]=l<<3&255|d>>>29;M[e|60]=d>>>21&255;M[e|61]=d>>>13&255;M[e|62]=d>>>5&255;M[e|63]=d<<3&255;B(e);if(~r)T(r);return n|0}function K(){n=h;a=p;i=b;o=y;s=m;u=v;c=g;f=_;d=64;l=0}function z(){n=w;a=k;i=x;o=A;s=S;u=E;c=j;f=P;d=64;l=0}function D(e,t,r,M,B,T,I,U,O,K,z,D,N,F,L,q){e=e|0;t=t|0;r=r|0;M=M|0;B=B|0;T=T|0;I=I|0;U=U|0;O=O|0;K=K|0;z=z|0;D=D|0;N=N|0;F=F|0;L=L|0;q=q|0;R();C(e^0x5c5c5c5c,t^0x5c5c5c5c,r^0x5c5c5c5c,M^0x5c5c5c5c,B^0x5c5c5c5c,T^0x5c5c5c5c,I^0x5c5c5c5c,U^0x5c5c5c5c,O^0x5c5c5c5c,K^0x5c5c5c5c,z^0x5c5c5c5c,D^0x5c5c5c5c,N^0x5c5c5c5c,F^0x5c5c5c5c,L^0x5c5c5c5c,q^0x5c5c5c5c);w=n;k=a;x=i;A=o;S=s;E=u;j=c;P=f;R();C(e^0x36363636,t^0x36363636,r^0x36363636,M^0x36363636,B^0x36363636,T^0x36363636,I^0x36363636,U^0x36363636,O^0x36363636,K^0x36363636,z^0x36363636,D^0x36363636,N^0x36363636,F^0x36363636,L^0x36363636,q^0x36363636);h=n;p=a;b=i;y=o;m=s;v=u;g=c;_=f;d=64;l=0}function N(e,t,r){e=e|0;t=t|0;r=r|0;var d=0,l=0,h=0,p=0,b=0,y=0,m=0,v=0,g=0;if(e&63)return-1;if(~r)if(r&31)return-1;g=O(e,t,-1)|0;d=n,l=a,h=i,p=o,b=s,y=u,m=c,v=f;z();C(d,l,h,p,b,y,m,v,0x80000000,0,0,0,0,0,0,768);if(~r)T(r);return g|0}function F(e,t,r,d,l){e=e|0;t=t|0;r=r|0;d=d|0;l=l|0;var h=0,p=0,b=0,y=0,m=0,v=0,g=0,_=0,w=0,k=0,x=0,A=0,S=0,E=0,j=0,P=0;if(e&63)return-1;if(~l)if(l&31)return-1;M[e+t|0]=r>>>24;M[e+t+1|0]=r>>>16&255;M[e+t+2|0]=r>>>8&255;M[e+t+3|0]=r&255;N(e,t+4|0,-1)|0;h=w=n,p=k=a,b=x=i,y=A=o,m=S=s,v=E=u,g=j=c,_=P=f;d=d-1|0;while((d|0)>0){K();C(w,k,x,A,S,E,j,P,0x80000000,0,0,0,0,0,0,768);w=n,k=a,x=i,A=o,S=s,E=u,j=c,P=f;z();C(w,k,x,A,S,E,j,P,0x80000000,0,0,0,0,0,0,768);w=n,k=a,x=i,A=o,S=s,E=u,j=c,P=f;h=h^n;p=p^a;b=b^i;y=y^o;m=m^s;v=v^u;g=g^c;_=_^f;d=d-1|0}n=h;a=p;i=b;o=y;s=m;u=v;c=g;f=_;if(~l)T(l);return 0}return{reset:R,init:I,process:U,finish:O,hmac_reset:K,hmac_init:D,hmac_finish:N,pbkdf2_generate_block:F}}},{}],14:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Sha256=r._sha256_hash_size=r._sha256_block_size=void 0;var n=s(e("babel-runtime/core-js/object/create")),a=s(e("babel-runtime/core-js/object/set-prototype-of")),i=e("./sha256.asm"),o=e("../hash");function s(e){return e&&e.__esModule?e:{default:e}}var u,c=(u=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}u(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),f=r._sha256_block_size=64,d=r._sha256_hash_size=32,l=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.NAME="sha256",t.BLOCK_SIZE=f,t.HASH_SIZE=d,t}return c(t,e),t.bytes=function(e){return(new t).process(e).finish().result},t.NAME="sha256",t.heap_pool=[],t.asm_pool=[],t.asm_function=i.sha256_asm,t}(o.Hash);r.Sha256=l},{"../hash":10,"./sha256.asm":13,"babel-runtime/core-js/object/create":22,"babel-runtime/core-js/object/set-prototype-of":28}],15:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.SecurityError=r.IllegalArgumentError=r.IllegalStateError=void 0;var n=i(e("babel-runtime/core-js/object/create")),a=i(e("babel-runtime/core-js/object/set-prototype-of"));function i(e){return e&&e.__esModule?e:{default:e}}var o,s=(o=a.default||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])},function(e,t){function r(){this.constructor=e}o(e,t),e.prototype=null===t?(0,n.default)(t):(r.prototype=t.prototype,new r)}),u=function(e){function t(){for(var t=[],r=0;r>1),n=0;n>1]=parseInt(e.substr(n,2),16);return r},r.base64_to_bytes=function(e){return i(n(e))},r.bytes_to_string=o,r.bytes_to_hex=function(e){for(var t="",r=0;r>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+=1},r.is_number=function(e){return"number"==typeof e},r.is_string=function(e){return"string"==typeof e},r.is_buffer=function(e){return e instanceof ArrayBuffer},r.is_bytes=function(e){return e instanceof Uint8Array},r.is_typed_array=function(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array},r._heap_init=function(e,t){var r=e?e.byteLength:t||65536;if(4095&r||r<=0)throw new Error("heap size must be a positive integer and a multiple of 4096");return e=e||new Uint8Array(new ArrayBuffer(r))},r._heap_write=function(e,t,r,n,a){var i=e.length-t,o=i=r)throw new Error("Malformed string, low surrogate expected at position "+a);o=(55296^o)<<10|65536|56320^e.charCodeAt(a)}else if(!t&&o>>>8)throw new Error("Wide characters are not allowed.");!t||o<=127?n[i++]=o:o<=2047?(n[i++]=192|o>>6,n[i++]=128|63&o):o<=65535?(n[i++]=224|o>>12,n[i++]=128|o>>6&63,n[i++]=128|63&o):(n[i++]=240|o>>18,n[i++]=128|o>>12&63,n[i++]=128|o>>6&63,n[i++]=128|63&o)}return n.subarray(0,i)}function o(e,t){void 0===t&&(t=!1);for(var r=e.length,n=new Array(r),a=0,i=0;a=192&&o<224&&a+1=224&&o<240&&a+2=240&&o<248&&a+3>10,n[i++]=56320|1023&s)}}var u="";for(a=0;a=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function u(e,t,r,n){for(var a=0,i=Math.min(e.length,r),o=t;o=49?s-49+10:s>=17?s-17+10:s}return a}i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var a=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&a++,16===t?this._parseHex(e,a):this._parseBase(e,t,a),"-"===e[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var a=0;a=0;a-=3)o=e[a]|e[a-1]<<8|e[a-2]<<16,this.words[i]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if("le"===r)for(a=0,i=0;a>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this.strip()},i.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=6)a=s(e,r,r+6),this.words[n]|=a<>>26-i&4194303,(i+=24)>=26&&(i-=26,n++);r+6!==t&&(a=s(e,t,r+6),this.words[n]|=a<>>26-i&4194303),this.strip()},i.prototype._parseBase=function(e,t,r){this.words=[0],this.length=1;for(var n=0,a=1;a<=67108863;a*=t)n++;n--,a=a/t|0;for(var i=e.length-r,o=i%n,s=Math.min(i,i-o)+r,c=0,f=r;f1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},i.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function l(e,t,r){r.negative=t.negative^e.negative;var n=e.length+t.length|0;r.length=n,n=n-1|0;var a=0|e.words[0],i=0|t.words[0],o=a*i,s=67108863&o,u=o/67108864|0;r.words[0]=s;for(var c=1;c>>26,d=67108863&u,l=Math.min(c,t.length-1),h=Math.max(0,c-e.length+1);h<=l;h++){var p=c-h|0;f+=(o=(a=0|e.words[p])*(i=0|t.words[h])+d)/67108864|0,d=67108863&o}r.words[c]=0|d,u=0|f}return 0!==u?r.words[c]=0|u:r.length--,r.strip()}i.prototype.toString=function(e,t){var r;if(e=e||10,t=0|t||1,16===e||"hex"===e){r="";for(var a=0,i=0,o=0;o>>24-a&16777215)||o!==this.length-1?c[6-u.length]+u+r:u+r,(a+=2)>=26&&(a-=26,o--)}for(0!==i&&(r=i.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var l=f[e],h=d[e];r="";var p=this.clone();for(p.negative=0;!p.isZero();){var b=p.modn(h).toString(e);r=(p=p.idivn(h)).isZero()?b+r:c[l-b.length]+b+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16)},i.prototype.toBuffer=function(e,t){return n(void 0!==o),this.toArrayLike(o,e,t)},i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},i.prototype.toArrayLike=function(e,t,r){var a=this.byteLength(),i=r||Math.max(1,a);n(a<=i,"byte array longer than desired length"),n(i>0,"Requested array length <= 0"),this.strip();var o,s,u="le"===t,c=new e(i),f=this.clone();if(u){for(s=0;!f.isZero();s++)o=f.andln(255),f.iushrn(8),c[s]=o;for(;s=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var r=0;re.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,r;this.length>e.length?(t=this,r=e):(t=e,r=this);for(var n=0;ne.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var a=0;a0&&(this.words[a]=~this.words[a]&67108863>>26-r),this.strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,a=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<e.length?(r=this,n=e):(r=e,n=this);for(var a=0,i=0;i>>26;for(;0!==a&&i>>26;if(this.length=r.length,0!==a)this.words[this.length]=a,this.length++;else if(r!==this)for(;ie.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var r,n,a=this.cmp(e);if(0===a)return this.negative=0,this.length=1,this.words[0]=0,this;a>0?(r=this,n=e):(r=e,n=this);for(var i=0,o=0;o>26,this.words[o]=67108863&t;for(;0!==i&&o>26,this.words[o]=67108863&t;if(0===i&&o>>13,h=0|o[1],p=8191&h,b=h>>>13,y=0|o[2],m=8191&y,v=y>>>13,g=0|o[3],_=8191&g,w=g>>>13,k=0|o[4],x=8191&k,A=k>>>13,S=0|o[5],E=8191&S,j=S>>>13,P=0|o[6],M=8191&P,C=P>>>13,B=0|o[7],T=8191&B,R=B>>>13,I=0|o[8],U=8191&I,O=I>>>13,K=0|o[9],z=8191&K,D=K>>>13,N=0|s[0],F=8191&N,L=N>>>13,q=0|s[1],W=8191&q,G=q>>>13,H=0|s[2],V=8191&H,Z=H>>>13,Y=0|s[3],X=8191&Y,J=Y>>>13,$=0|s[4],Q=8191&$,ee=$>>>13,te=0|s[5],re=8191&te,ne=te>>>13,ae=0|s[6],ie=8191&ae,oe=ae>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,fe=0|s[8],de=8191&fe,le=fe>>>13,he=0|s[9],pe=8191&he,be=he>>>13;r.negative=e.negative^t.negative,r.length=19;var ye=(c+(n=Math.imul(d,F))|0)+((8191&(a=(a=Math.imul(d,L))+Math.imul(l,F)|0))<<13)|0;c=((i=Math.imul(l,L))+(a>>>13)|0)+(ye>>>26)|0,ye&=67108863,n=Math.imul(p,F),a=(a=Math.imul(p,L))+Math.imul(b,F)|0,i=Math.imul(b,L);var me=(c+(n=n+Math.imul(d,W)|0)|0)+((8191&(a=(a=a+Math.imul(d,G)|0)+Math.imul(l,W)|0))<<13)|0;c=((i=i+Math.imul(l,G)|0)+(a>>>13)|0)+(me>>>26)|0,me&=67108863,n=Math.imul(m,F),a=(a=Math.imul(m,L))+Math.imul(v,F)|0,i=Math.imul(v,L),n=n+Math.imul(p,W)|0,a=(a=a+Math.imul(p,G)|0)+Math.imul(b,W)|0,i=i+Math.imul(b,G)|0;var ve=(c+(n=n+Math.imul(d,V)|0)|0)+((8191&(a=(a=a+Math.imul(d,Z)|0)+Math.imul(l,V)|0))<<13)|0;c=((i=i+Math.imul(l,Z)|0)+(a>>>13)|0)+(ve>>>26)|0,ve&=67108863,n=Math.imul(_,F),a=(a=Math.imul(_,L))+Math.imul(w,F)|0,i=Math.imul(w,L),n=n+Math.imul(m,W)|0,a=(a=a+Math.imul(m,G)|0)+Math.imul(v,W)|0,i=i+Math.imul(v,G)|0,n=n+Math.imul(p,V)|0,a=(a=a+Math.imul(p,Z)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,Z)|0;var ge=(c+(n=n+Math.imul(d,X)|0)|0)+((8191&(a=(a=a+Math.imul(d,J)|0)+Math.imul(l,X)|0))<<13)|0;c=((i=i+Math.imul(l,J)|0)+(a>>>13)|0)+(ge>>>26)|0,ge&=67108863,n=Math.imul(x,F),a=(a=Math.imul(x,L))+Math.imul(A,F)|0,i=Math.imul(A,L),n=n+Math.imul(_,W)|0,a=(a=a+Math.imul(_,G)|0)+Math.imul(w,W)|0,i=i+Math.imul(w,G)|0,n=n+Math.imul(m,V)|0,a=(a=a+Math.imul(m,Z)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,Z)|0,n=n+Math.imul(p,X)|0,a=(a=a+Math.imul(p,J)|0)+Math.imul(b,X)|0,i=i+Math.imul(b,J)|0;var _e=(c+(n=n+Math.imul(d,Q)|0)|0)+((8191&(a=(a=a+Math.imul(d,ee)|0)+Math.imul(l,Q)|0))<<13)|0;c=((i=i+Math.imul(l,ee)|0)+(a>>>13)|0)+(_e>>>26)|0,_e&=67108863,n=Math.imul(E,F),a=(a=Math.imul(E,L))+Math.imul(j,F)|0,i=Math.imul(j,L),n=n+Math.imul(x,W)|0,a=(a=a+Math.imul(x,G)|0)+Math.imul(A,W)|0,i=i+Math.imul(A,G)|0,n=n+Math.imul(_,V)|0,a=(a=a+Math.imul(_,Z)|0)+Math.imul(w,V)|0,i=i+Math.imul(w,Z)|0,n=n+Math.imul(m,X)|0,a=(a=a+Math.imul(m,J)|0)+Math.imul(v,X)|0,i=i+Math.imul(v,J)|0,n=n+Math.imul(p,Q)|0,a=(a=a+Math.imul(p,ee)|0)+Math.imul(b,Q)|0,i=i+Math.imul(b,ee)|0;var we=(c+(n=n+Math.imul(d,re)|0)|0)+((8191&(a=(a=a+Math.imul(d,ne)|0)+Math.imul(l,re)|0))<<13)|0;c=((i=i+Math.imul(l,ne)|0)+(a>>>13)|0)+(we>>>26)|0,we&=67108863,n=Math.imul(M,F),a=(a=Math.imul(M,L))+Math.imul(C,F)|0,i=Math.imul(C,L),n=n+Math.imul(E,W)|0,a=(a=a+Math.imul(E,G)|0)+Math.imul(j,W)|0,i=i+Math.imul(j,G)|0,n=n+Math.imul(x,V)|0,a=(a=a+Math.imul(x,Z)|0)+Math.imul(A,V)|0,i=i+Math.imul(A,Z)|0,n=n+Math.imul(_,X)|0,a=(a=a+Math.imul(_,J)|0)+Math.imul(w,X)|0,i=i+Math.imul(w,J)|0,n=n+Math.imul(m,Q)|0,a=(a=a+Math.imul(m,ee)|0)+Math.imul(v,Q)|0,i=i+Math.imul(v,ee)|0,n=n+Math.imul(p,re)|0,a=(a=a+Math.imul(p,ne)|0)+Math.imul(b,re)|0,i=i+Math.imul(b,ne)|0;var ke=(c+(n=n+Math.imul(d,ie)|0)|0)+((8191&(a=(a=a+Math.imul(d,oe)|0)+Math.imul(l,ie)|0))<<13)|0;c=((i=i+Math.imul(l,oe)|0)+(a>>>13)|0)+(ke>>>26)|0,ke&=67108863,n=Math.imul(T,F),a=(a=Math.imul(T,L))+Math.imul(R,F)|0,i=Math.imul(R,L),n=n+Math.imul(M,W)|0,a=(a=a+Math.imul(M,G)|0)+Math.imul(C,W)|0,i=i+Math.imul(C,G)|0,n=n+Math.imul(E,V)|0,a=(a=a+Math.imul(E,Z)|0)+Math.imul(j,V)|0,i=i+Math.imul(j,Z)|0,n=n+Math.imul(x,X)|0,a=(a=a+Math.imul(x,J)|0)+Math.imul(A,X)|0,i=i+Math.imul(A,J)|0,n=n+Math.imul(_,Q)|0,a=(a=a+Math.imul(_,ee)|0)+Math.imul(w,Q)|0,i=i+Math.imul(w,ee)|0,n=n+Math.imul(m,re)|0,a=(a=a+Math.imul(m,ne)|0)+Math.imul(v,re)|0,i=i+Math.imul(v,ne)|0,n=n+Math.imul(p,ie)|0,a=(a=a+Math.imul(p,oe)|0)+Math.imul(b,ie)|0,i=i+Math.imul(b,oe)|0;var xe=(c+(n=n+Math.imul(d,ue)|0)|0)+((8191&(a=(a=a+Math.imul(d,ce)|0)+Math.imul(l,ue)|0))<<13)|0;c=((i=i+Math.imul(l,ce)|0)+(a>>>13)|0)+(xe>>>26)|0,xe&=67108863,n=Math.imul(U,F),a=(a=Math.imul(U,L))+Math.imul(O,F)|0,i=Math.imul(O,L),n=n+Math.imul(T,W)|0,a=(a=a+Math.imul(T,G)|0)+Math.imul(R,W)|0,i=i+Math.imul(R,G)|0,n=n+Math.imul(M,V)|0,a=(a=a+Math.imul(M,Z)|0)+Math.imul(C,V)|0,i=i+Math.imul(C,Z)|0,n=n+Math.imul(E,X)|0,a=(a=a+Math.imul(E,J)|0)+Math.imul(j,X)|0,i=i+Math.imul(j,J)|0,n=n+Math.imul(x,Q)|0,a=(a=a+Math.imul(x,ee)|0)+Math.imul(A,Q)|0,i=i+Math.imul(A,ee)|0,n=n+Math.imul(_,re)|0,a=(a=a+Math.imul(_,ne)|0)+Math.imul(w,re)|0,i=i+Math.imul(w,ne)|0,n=n+Math.imul(m,ie)|0,a=(a=a+Math.imul(m,oe)|0)+Math.imul(v,ie)|0,i=i+Math.imul(v,oe)|0,n=n+Math.imul(p,ue)|0,a=(a=a+Math.imul(p,ce)|0)+Math.imul(b,ue)|0,i=i+Math.imul(b,ce)|0;var Ae=(c+(n=n+Math.imul(d,de)|0)|0)+((8191&(a=(a=a+Math.imul(d,le)|0)+Math.imul(l,de)|0))<<13)|0;c=((i=i+Math.imul(l,le)|0)+(a>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,n=Math.imul(z,F),a=(a=Math.imul(z,L))+Math.imul(D,F)|0,i=Math.imul(D,L),n=n+Math.imul(U,W)|0,a=(a=a+Math.imul(U,G)|0)+Math.imul(O,W)|0,i=i+Math.imul(O,G)|0,n=n+Math.imul(T,V)|0,a=(a=a+Math.imul(T,Z)|0)+Math.imul(R,V)|0,i=i+Math.imul(R,Z)|0,n=n+Math.imul(M,X)|0,a=(a=a+Math.imul(M,J)|0)+Math.imul(C,X)|0,i=i+Math.imul(C,J)|0,n=n+Math.imul(E,Q)|0,a=(a=a+Math.imul(E,ee)|0)+Math.imul(j,Q)|0,i=i+Math.imul(j,ee)|0,n=n+Math.imul(x,re)|0,a=(a=a+Math.imul(x,ne)|0)+Math.imul(A,re)|0,i=i+Math.imul(A,ne)|0,n=n+Math.imul(_,ie)|0,a=(a=a+Math.imul(_,oe)|0)+Math.imul(w,ie)|0,i=i+Math.imul(w,oe)|0,n=n+Math.imul(m,ue)|0,a=(a=a+Math.imul(m,ce)|0)+Math.imul(v,ue)|0,i=i+Math.imul(v,ce)|0,n=n+Math.imul(p,de)|0,a=(a=a+Math.imul(p,le)|0)+Math.imul(b,de)|0,i=i+Math.imul(b,le)|0;var Se=(c+(n=n+Math.imul(d,pe)|0)|0)+((8191&(a=(a=a+Math.imul(d,be)|0)+Math.imul(l,pe)|0))<<13)|0;c=((i=i+Math.imul(l,be)|0)+(a>>>13)|0)+(Se>>>26)|0,Se&=67108863,n=Math.imul(z,W),a=(a=Math.imul(z,G))+Math.imul(D,W)|0,i=Math.imul(D,G),n=n+Math.imul(U,V)|0,a=(a=a+Math.imul(U,Z)|0)+Math.imul(O,V)|0,i=i+Math.imul(O,Z)|0,n=n+Math.imul(T,X)|0,a=(a=a+Math.imul(T,J)|0)+Math.imul(R,X)|0,i=i+Math.imul(R,J)|0,n=n+Math.imul(M,Q)|0,a=(a=a+Math.imul(M,ee)|0)+Math.imul(C,Q)|0,i=i+Math.imul(C,ee)|0,n=n+Math.imul(E,re)|0,a=(a=a+Math.imul(E,ne)|0)+Math.imul(j,re)|0,i=i+Math.imul(j,ne)|0,n=n+Math.imul(x,ie)|0,a=(a=a+Math.imul(x,oe)|0)+Math.imul(A,ie)|0,i=i+Math.imul(A,oe)|0,n=n+Math.imul(_,ue)|0,a=(a=a+Math.imul(_,ce)|0)+Math.imul(w,ue)|0,i=i+Math.imul(w,ce)|0,n=n+Math.imul(m,de)|0,a=(a=a+Math.imul(m,le)|0)+Math.imul(v,de)|0,i=i+Math.imul(v,le)|0;var Ee=(c+(n=n+Math.imul(p,pe)|0)|0)+((8191&(a=(a=a+Math.imul(p,be)|0)+Math.imul(b,pe)|0))<<13)|0;c=((i=i+Math.imul(b,be)|0)+(a>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,n=Math.imul(z,V),a=(a=Math.imul(z,Z))+Math.imul(D,V)|0,i=Math.imul(D,Z),n=n+Math.imul(U,X)|0,a=(a=a+Math.imul(U,J)|0)+Math.imul(O,X)|0,i=i+Math.imul(O,J)|0,n=n+Math.imul(T,Q)|0,a=(a=a+Math.imul(T,ee)|0)+Math.imul(R,Q)|0,i=i+Math.imul(R,ee)|0,n=n+Math.imul(M,re)|0,a=(a=a+Math.imul(M,ne)|0)+Math.imul(C,re)|0,i=i+Math.imul(C,ne)|0,n=n+Math.imul(E,ie)|0,a=(a=a+Math.imul(E,oe)|0)+Math.imul(j,ie)|0,i=i+Math.imul(j,oe)|0,n=n+Math.imul(x,ue)|0,a=(a=a+Math.imul(x,ce)|0)+Math.imul(A,ue)|0,i=i+Math.imul(A,ce)|0,n=n+Math.imul(_,de)|0,a=(a=a+Math.imul(_,le)|0)+Math.imul(w,de)|0,i=i+Math.imul(w,le)|0;var je=(c+(n=n+Math.imul(m,pe)|0)|0)+((8191&(a=(a=a+Math.imul(m,be)|0)+Math.imul(v,pe)|0))<<13)|0;c=((i=i+Math.imul(v,be)|0)+(a>>>13)|0)+(je>>>26)|0,je&=67108863,n=Math.imul(z,X),a=(a=Math.imul(z,J))+Math.imul(D,X)|0,i=Math.imul(D,J),n=n+Math.imul(U,Q)|0,a=(a=a+Math.imul(U,ee)|0)+Math.imul(O,Q)|0,i=i+Math.imul(O,ee)|0,n=n+Math.imul(T,re)|0,a=(a=a+Math.imul(T,ne)|0)+Math.imul(R,re)|0,i=i+Math.imul(R,ne)|0,n=n+Math.imul(M,ie)|0,a=(a=a+Math.imul(M,oe)|0)+Math.imul(C,ie)|0,i=i+Math.imul(C,oe)|0,n=n+Math.imul(E,ue)|0,a=(a=a+Math.imul(E,ce)|0)+Math.imul(j,ue)|0,i=i+Math.imul(j,ce)|0,n=n+Math.imul(x,de)|0,a=(a=a+Math.imul(x,le)|0)+Math.imul(A,de)|0,i=i+Math.imul(A,le)|0;var Pe=(c+(n=n+Math.imul(_,pe)|0)|0)+((8191&(a=(a=a+Math.imul(_,be)|0)+Math.imul(w,pe)|0))<<13)|0;c=((i=i+Math.imul(w,be)|0)+(a>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,n=Math.imul(z,Q),a=(a=Math.imul(z,ee))+Math.imul(D,Q)|0,i=Math.imul(D,ee),n=n+Math.imul(U,re)|0,a=(a=a+Math.imul(U,ne)|0)+Math.imul(O,re)|0,i=i+Math.imul(O,ne)|0,n=n+Math.imul(T,ie)|0,a=(a=a+Math.imul(T,oe)|0)+Math.imul(R,ie)|0,i=i+Math.imul(R,oe)|0,n=n+Math.imul(M,ue)|0,a=(a=a+Math.imul(M,ce)|0)+Math.imul(C,ue)|0,i=i+Math.imul(C,ce)|0,n=n+Math.imul(E,de)|0,a=(a=a+Math.imul(E,le)|0)+Math.imul(j,de)|0,i=i+Math.imul(j,le)|0;var Me=(c+(n=n+Math.imul(x,pe)|0)|0)+((8191&(a=(a=a+Math.imul(x,be)|0)+Math.imul(A,pe)|0))<<13)|0;c=((i=i+Math.imul(A,be)|0)+(a>>>13)|0)+(Me>>>26)|0,Me&=67108863,n=Math.imul(z,re),a=(a=Math.imul(z,ne))+Math.imul(D,re)|0,i=Math.imul(D,ne),n=n+Math.imul(U,ie)|0,a=(a=a+Math.imul(U,oe)|0)+Math.imul(O,ie)|0,i=i+Math.imul(O,oe)|0,n=n+Math.imul(T,ue)|0,a=(a=a+Math.imul(T,ce)|0)+Math.imul(R,ue)|0,i=i+Math.imul(R,ce)|0,n=n+Math.imul(M,de)|0,a=(a=a+Math.imul(M,le)|0)+Math.imul(C,de)|0,i=i+Math.imul(C,le)|0;var Ce=(c+(n=n+Math.imul(E,pe)|0)|0)+((8191&(a=(a=a+Math.imul(E,be)|0)+Math.imul(j,pe)|0))<<13)|0;c=((i=i+Math.imul(j,be)|0)+(a>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,n=Math.imul(z,ie),a=(a=Math.imul(z,oe))+Math.imul(D,ie)|0,i=Math.imul(D,oe),n=n+Math.imul(U,ue)|0,a=(a=a+Math.imul(U,ce)|0)+Math.imul(O,ue)|0,i=i+Math.imul(O,ce)|0,n=n+Math.imul(T,de)|0,a=(a=a+Math.imul(T,le)|0)+Math.imul(R,de)|0,i=i+Math.imul(R,le)|0;var Be=(c+(n=n+Math.imul(M,pe)|0)|0)+((8191&(a=(a=a+Math.imul(M,be)|0)+Math.imul(C,pe)|0))<<13)|0;c=((i=i+Math.imul(C,be)|0)+(a>>>13)|0)+(Be>>>26)|0,Be&=67108863,n=Math.imul(z,ue),a=(a=Math.imul(z,ce))+Math.imul(D,ue)|0,i=Math.imul(D,ce),n=n+Math.imul(U,de)|0,a=(a=a+Math.imul(U,le)|0)+Math.imul(O,de)|0,i=i+Math.imul(O,le)|0;var Te=(c+(n=n+Math.imul(T,pe)|0)|0)+((8191&(a=(a=a+Math.imul(T,be)|0)+Math.imul(R,pe)|0))<<13)|0;c=((i=i+Math.imul(R,be)|0)+(a>>>13)|0)+(Te>>>26)|0,Te&=67108863,n=Math.imul(z,de),a=(a=Math.imul(z,le))+Math.imul(D,de)|0,i=Math.imul(D,le);var Re=(c+(n=n+Math.imul(U,pe)|0)|0)+((8191&(a=(a=a+Math.imul(U,be)|0)+Math.imul(O,pe)|0))<<13)|0;c=((i=i+Math.imul(O,be)|0)+(a>>>13)|0)+(Re>>>26)|0,Re&=67108863;var Ie=(c+(n=Math.imul(z,pe))|0)+((8191&(a=(a=Math.imul(z,be))+Math.imul(D,pe)|0))<<13)|0;return c=((i=Math.imul(D,be))+(a>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,u[0]=ye,u[1]=me,u[2]=ve,u[3]=ge,u[4]=_e,u[5]=we,u[6]=ke,u[7]=xe,u[8]=Ae,u[9]=Se,u[10]=Ee,u[11]=je,u[12]=Pe,u[13]=Me,u[14]=Ce,u[15]=Be,u[16]=Te,u[17]=Re,u[18]=Ie,0!==c&&(u[19]=c,r.length++),r};function p(e,t,r){return(new b).mulp(e,t,r)}function b(e,t){this.x=e,this.y=t}Math.imul||(h=l),i.prototype.mulTo=function(e,t){var r=this.length+e.length;return 10===this.length&&10===e.length?h(this,e,t):r<63?l(this,e,t):r<1024?function(e,t,r){r.negative=t.negative^e.negative,r.length=e.length+t.length;for(var n=0,a=0,i=0;i>>26)|0)>>>26,o&=67108863}r.words[i]=s,n=o,o=a}return 0!==n?r.words[i]=n:r.length--,r.strip()}(this,e,t):p(this,e,t)},b.prototype.makeRBT=function(e){for(var t=new Array(e),r=i.prototype._countBits(e)-1,n=0;n>=1;return n},b.prototype.permute=function(e,t,r,n,a,i){for(var o=0;o>>=1)a++;return 1<>>=13,r[2*o+1]=8191&i,i>>>=13;for(o=2*t;o>=26,t+=a/67108864|0,t+=i>>>26,this.words[r]=67108863&i}return 0!==t&&(this.words[r]=t,this.length++),this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),r=0;r>>a}return t}(e);if(0===t.length)return new i(1);for(var r=this,n=0;n=0);var t,r=e%26,a=(e-r)/26,i=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==a){for(t=this.length-1;t>=0;t--)this.words[t+a]=this.words[t];for(t=0;t=0),a=t?(t-t%26)/26:0;var i=e%26,o=Math.min((e-i)/26,this.length),s=67108863^67108863>>>i<o)for(this.length-=o,c=0;c=0&&(0!==f||c>=a);c--){var d=0|this.words[c];this.words[c]=f<<26-i|d>>>i,f=d&s}return u&&0!==f&&(u.words[u.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,a=1<=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var a=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(u/67108864|0),this.words[a+r]=67108863&i}for(;a>26,this.words[a+r]=67108863&i;if(0===s)return this.strip();for(n(-1===s),s=0,a=0;a>26,this.words[a]=67108863&i;return this.negative=1,this.strip()},i.prototype._wordDiv=function(e,t){var r=(this.length,e.length),n=this.clone(),a=e,o=0|a.words[a.length-1];0!==(r=26-this._countBits(o))&&(a=a.ushln(r),n.iushln(r),o=0|a.words[a.length-1]);var s,u=n.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c=0;d--){var l=67108864*(0|n.words[a.length+d])+(0|n.words[a.length+d-1]);for(l=Math.min(l/o|0,67108863),n._ishlnsubmul(a,l,d);0!==n.negative;)l--,n.negative=0,n._ishlnsubmul(a,1,d),n.isZero()||(n.negative^=1);s&&(s.words[d]=l)}return s&&s.strip(),n.strip(),"div"!==t&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var r=0!==t.div.negative?t.mod.isub(e):t.mod,n=e.ushrn(1),a=e.andln(1),i=r.cmp(n);return i<0||1===a&&0===i?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modn=function(e){n(e<=67108863);for(var t=(1<<26)%e,r=0,a=this.length-1;a>=0;a--)r=(t*r+(0|this.words[a]))%e;return r},i.prototype.idivn=function(e){n(e<=67108863);for(var t=0,r=this.length-1;r>=0;r--){var a=(0|this.words[r])+67108864*t;this.words[r]=a/e|0,t=a%e}return this.strip()},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var f=r.clone(),d=t.clone();!t.isZero();){for(var l=0,h=1;0==(t.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(t.iushrn(l);l-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(f),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var p=0,b=1;0==(r.words[0]&b)&&p<26;++p,b<<=1);if(p>0)for(r.iushrn(p);p-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(f),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,f=1;0==(t.words[0]&f)&&c<26;++c,f<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,l=1;0==(r.words[0]&l)&&d<26;++d,l<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),r=e.clone();t.negative=0,r.negative=0;for(var n=0;t.isEven()&&r.isEven();n++)t.iushrn(1),r.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;r.isEven();)r.iushrn(1);var a=t.cmp(r);if(a<0){var i=t;t=r,r=i}else if(0===a||0===r.cmpn(1))break;t.isub(r)}return r.iushln(n)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,a=1<>>26,s&=67108863,this.words[o]=s}return 0!==i&&(this.words[o]=i,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var a=0|this.words[0];t=a===e?0:ae.length)return 1;if(this.length=0;r--){var n=0|this.words[r],a=0|e.words[r];if(n!==a){na&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new k(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var y={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function g(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function w(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function x(e){k.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.prototype.ireduce=function(e){var t,r=e;do{this.split(r,this.tmp),t=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(t>this.n);var n=t0?r.isub(this.p):r.strip(),r},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},a(v,m),v.prototype.split=function(e,t){for(var r=Math.min(e.length,9),n=0;n>>22,a=i}a>>>=22,e.words[n-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,r=0;r>>=26,e.words[r]=a,t=n}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(y[e])return y[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new g;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new w}return y[e]=t,t},k.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},k.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},k.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},k.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},k.prototype.add=function(e,t){this._verify2(e,t);var r=e.add(t);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},k.prototype.iadd=function(e,t){this._verify2(e,t);var r=e.iadd(t);return r.cmp(this.m)>=0&&r.isub(this.m),r},k.prototype.sub=function(e,t){this._verify2(e,t);var r=e.sub(t);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},k.prototype.isub=function(e,t){this._verify2(e,t);var r=e.isub(t);return r.cmpn(0)<0&&r.iadd(this.m),r},k.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},k.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},k.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},k.prototype.isqr=function(e){return this.imul(e,e.clone())},k.prototype.sqr=function(e){return this.mul(e,e)},k.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new i(2*f*f).toRed(this);0!==this.pow(f,c).cmp(u);)f.redIAdd(u);for(var d=this.pow(f,a),l=this.pow(e,a.addn(1).iushrn(1)),h=this.pow(e,a),p=o;0!==h.cmp(s);){for(var b=h,y=0;0!==b.cmp(s);y++)b=b.redSqr();n(y=0;n--){for(var c=t.words[n],f=u-1;f>=0;f--){var d=c>>f&1;a!==r[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===n&&0===f)&&(a=this.mul(a,r[o]),s=0,o=0)):s=0}u=26}return a},k.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},k.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new x(e)},a(x,k),x.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},x.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},x.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var r=e.imul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).iushrn(this.shift),i=a;return a.cmp(this.m)>=0?i=a.isub(this.m):a.cmpn(0)<0&&(i=a.iadd(this.m)),i._forceRed(this)},x.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var r=e.mul(t),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=r.isub(n).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},x.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===t||t,this)},{buffer:"buffer"}],44:[function(e,t,r){var n;function a(e){this.rand=e}if(t.exports=function(e){return n||(n=new a(null)),n.generate(e)},t.exports.Rand=a,a.prototype.generate=function(e){return this._rand(e)},a.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),r=0;rf;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((e||f in u)&&u[f]===r)return e||f||0;return!e&&-1}}},{"./_to-absolute-index":144,"./_to-iobject":146,"./_to-length":147}],76:[function(e,t,r){var n=e("./_ctx"),a=e("./_iobject"),i=e("./_to-object"),o=e("./_to-length"),s=e("./_array-species-create");t.exports=function(e,t){var r=1==e,u=2==e,c=3==e,f=4==e,d=6==e,l=5==e||d,h=t||s;return function(t,s,p){for(var b,y,m=i(t),v=a(m),g=n(s,p,3),_=o(v.length),w=0,k=r?h(t,_):u?h(t,0):void 0;_>w;w++)if((l||w in v)&&(y=g(b=v[w],w,m),e))if(r)k[w]=y;else if(y)switch(e){case 3:return!0;case 5:return b;case 6:return w;case 2:k.push(b)}else if(f)return!1;return d?-1:c||f?f:k}}},{"./_array-species-create":78,"./_ctx":85,"./_iobject":100,"./_to-length":147,"./_to-object":148}],77:[function(e,t,r){var n=e("./_is-object"),a=e("./_is-array"),i=e("./_wks")("species");t.exports=function(e){var t;return a(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!a(t.prototype)||(t=void 0),n(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},{"./_is-array":102,"./_is-object":103,"./_wks":154}],78:[function(e,t,r){var n=e("./_array-species-constructor");t.exports=function(e,t){return new(n(e))(t)}},{"./_array-species-constructor":77}],79:[function(e,t,r){var n=e("./_cof"),a=e("./_wks")("toStringTag"),i="Arguments"==n(function(){return arguments}());t.exports=function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),a))?r:i?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},{"./_cof":80,"./_wks":154}],80:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],81:[function(e,t,r){"use strict";var n=e("./_redefine-all"),a=e("./_meta").getWeak,i=e("./_an-object"),o=e("./_is-object"),s=e("./_an-instance"),u=e("./_for-of"),c=e("./_array-methods"),f=e("./_has"),d=e("./_validate-collection"),l=c(5),h=c(6),p=0,b=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},m=function(e,t){return l(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=m(this,e);if(t)return t[1]},has:function(e){return!!m(this,e)},set:function(e,t){var r=m(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,r,i){var c=e(function(e,n){s(e,c,t,"_i"),e._t=t,e._i=p++,e._l=void 0,void 0!=n&&u(n,r,e[i],e)});return n(c.prototype,{delete:function(e){if(!o(e))return!1;var r=a(e);return!0===r?b(d(this,t)).delete(e):r&&f(r,this._i)&&delete r[this._i]},has:function(e){if(!o(e))return!1;var r=a(e);return!0===r?b(d(this,t)).has(e):r&&f(r,this._i)}}),c},def:function(e,t,r){var n=a(i(t),!0);return!0===n?b(e).set(t,r):n[e._i]=r,e},ufstore:b}},{"./_an-instance":73,"./_an-object":74,"./_array-methods":76,"./_for-of":93,"./_has":95,"./_is-object":103,"./_meta":111,"./_redefine-all":132,"./_validate-collection":151}],82:[function(e,t,r){"use strict";var n=e("./_global"),a=e("./_export"),i=e("./_meta"),o=e("./_fails"),s=e("./_hide"),u=e("./_redefine-all"),c=e("./_for-of"),f=e("./_an-instance"),d=e("./_is-object"),l=e("./_set-to-string-tag"),h=e("./_object-dp").f,p=e("./_array-methods")(0),b=e("./_descriptors");t.exports=function(e,t,r,y,m,v){var g=n[e],_=g,w=m?"set":"add",k=_&&_.prototype,x={};return b&&"function"==typeof _&&(v||k.forEach&&!o(function(){(new _).entries().next()}))?(_=t(function(t,r){f(t,_,e,"_c"),t._c=new g,void 0!=r&&c(r,m,t[w],t)}),p("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in k&&(!v||"clear"!=e)&&s(_.prototype,e,function(r,n){if(f(this,_,e),!t&&v&&!d(r))return"get"==e&&void 0;var a=this._c[e](0===r?0:r,n);return t?this:a})}),v||h(_.prototype,"size",{get:function(){return this._c.size}})):(_=y.getConstructor(t,e,m,w),u(_.prototype,r),i.NEED=!0),l(_,e),x[e]=_,a(a.G+a.W+a.F,x),v||y.setStrong(_,e,m),_}},{"./_an-instance":73,"./_array-methods":76,"./_descriptors":87,"./_export":91,"./_fails":92,"./_for-of":93,"./_global":94,"./_hide":96,"./_is-object":103,"./_meta":111,"./_object-dp":116,"./_redefine-all":132,"./_set-to-string-tag":138}],83:[function(e,t,r){var n=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},{}],84:[function(e,t,r){"use strict";var n=e("./_object-dp"),a=e("./_property-desc");t.exports=function(e,t,r){t in e?n.f(e,t,a(0,r)):e[t]=r}},{"./_object-dp":116,"./_property-desc":131}],85:[function(e,t,r){var n=e("./_a-function");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,a){return e.call(t,r,n,a)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":71}],86:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],87:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":92}],88:[function(e,t,r){var n=e("./_is-object"),a=e("./_global").document,i=n(a)&&n(a.createElement);t.exports=function(e){return i?a.createElement(e):{}}},{"./_global":94,"./_is-object":103}],89:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],90:[function(e,t,r){var n=e("./_object-keys"),a=e("./_object-gops"),i=e("./_object-pie");t.exports=function(e){var t=n(e),r=a.f;if(r)for(var o,s=r(e),u=i.f,c=0;s.length>c;)u.call(e,o=s[c++])&&t.push(o);return t}},{"./_object-gops":121,"./_object-keys":124,"./_object-pie":125}],91:[function(e,t,r){var n=e("./_global"),a=e("./_core"),i=e("./_ctx"),o=e("./_hide"),s=function(e,t,r){var u,c,f,d=e&s.F,l=e&s.G,h=e&s.S,p=e&s.P,b=e&s.B,y=e&s.W,m=l?a:a[t]||(a[t]={}),v=m.prototype,g=l?n:h?n[t]:(n[t]||{}).prototype;for(u in l&&(r=t),r)(c=!d&&g&&void 0!==g[u])&&u in m||(f=c?g[u]:r[u],m[u]=l&&"function"!=typeof g[u]?r[u]:b&&c?i(f,n):y&&g[u]==f?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):p&&"function"==typeof f?i(Function.call,f):f,p&&((m.virtual||(m.virtual={}))[u]=f,e&s.R&&v&&!v[u]&&o(v,u,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},{"./_core":83,"./_ctx":85,"./_global":94,"./_hide":96}],92:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],93:[function(e,t,r){var n=e("./_ctx"),a=e("./_iter-call"),i=e("./_is-array-iter"),o=e("./_an-object"),s=e("./_to-length"),u=e("./core.get-iterator-method"),c={},f={};(r=t.exports=function(e,t,r,d,l){var h,p,b,y,m=l?function(){return e}:u(e),v=n(r,d,t?2:1),g=0;if("function"!=typeof m)throw TypeError(e+" is not iterable!");if(i(m)){for(h=s(e.length);h>g;g++)if((y=t?v(o(p=e[g])[0],p[1]):v(e[g]))===c||y===f)return y}else for(b=m.call(e);!(p=b.next()).done;)if((y=a(b,v,p.value,t))===c||y===f)return y}).BREAK=c,r.RETURN=f},{"./_an-object":74,"./_ctx":85,"./_is-array-iter":101,"./_iter-call":104,"./_to-length":147,"./core.get-iterator-method":155}],94:[function(e,t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},{}],95:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],96:[function(e,t,r){var n=e("./_object-dp"),a=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,r){return n.f(e,t,a(1,r))}:function(e,t,r){return e[t]=r,e}},{"./_descriptors":87,"./_object-dp":116,"./_property-desc":131}],97:[function(e,t,r){var n=e("./_global").document;t.exports=n&&n.documentElement},{"./_global":94}],98:[function(e,t,r){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":87,"./_dom-create":88,"./_fails":92}],99:[function(e,t,r){t.exports=function(e,t,r){var n=void 0===r;switch(t.length){case 0:return n?e():e.call(r);case 1:return n?e(t[0]):e.call(r,t[0]);case 2:return n?e(t[0],t[1]):e.call(r,t[0],t[1]);case 3:return n?e(t[0],t[1],t[2]):e.call(r,t[0],t[1],t[2]);case 4:return n?e(t[0],t[1],t[2],t[3]):e.call(r,t[0],t[1],t[2],t[3])}return e.apply(r,t)}},{}],100:[function(e,t,r){var n=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},{"./_cof":80}],101:[function(e,t,r){var n=e("./_iterators"),a=e("./_wks")("iterator"),i=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||i[a]===e)}},{"./_iterators":109,"./_wks":154}],102:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":80}],103:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],104:[function(e,t,r){var n=e("./_an-object");t.exports=function(e,t,r,a){try{return a?t(n(r)[0],r[1]):t(r)}catch(t){var i=e.return;throw void 0!==i&&n(i.call(e)),t}}},{"./_an-object":74}],105:[function(e,t,r){"use strict";var n=e("./_object-create"),a=e("./_property-desc"),i=e("./_set-to-string-tag"),o={};e("./_hide")(o,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,r){e.prototype=n(o,{next:a(1,r)}),i(e,t+" Iterator")}},{"./_hide":96,"./_object-create":115,"./_property-desc":131,"./_set-to-string-tag":138,"./_wks":154}],106:[function(e,t,r){"use strict";var n=e("./_library"),a=e("./_export"),i=e("./_redefine"),o=e("./_hide"),s=e("./_has"),u=e("./_iterators"),c=e("./_iter-create"),f=e("./_set-to-string-tag"),d=e("./_object-gpo"),l=e("./_wks")("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(e,t,r,b,y,m,v){c(r,t,b);var g,_,w,k=function(e){if(!h&&e in E)return E[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},x=t+" Iterator",A="values"==y,S=!1,E=e.prototype,j=E[l]||E["@@iterator"]||y&&E[y],P=!h&&j||k(y),M=y?A?k("entries"):P:void 0,C="Array"==t&&E.entries||j;if(C&&(w=d(C.call(new e)))!==Object.prototype&&w.next&&(f(w,x,!0),n||s(w,l)||o(w,l,p)),A&&j&&"values"!==j.name&&(S=!0,P=function(){return j.call(this)}),n&&!v||!h&&!S&&E[l]||o(E,l,P),u[t]=P,u[x]=p,y)if(g={values:A?P:k("values"),keys:m?P:k("keys"),entries:M},v)for(_ in g)_ in E||i(E,_,g[_]);else a(a.P+a.F*(h||S),t,g);return g}},{"./_export":91,"./_has":95,"./_hide":96,"./_iter-create":105,"./_iterators":109,"./_library":110,"./_object-gpo":122,"./_redefine":133,"./_set-to-string-tag":138,"./_wks":154}],107:[function(e,t,r){var n=e("./_wks")("iterator"),a=!1;try{var i=[7][n]();i.return=function(){a=!0},Array.from(i,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!a)return!1;var r=!1;try{var i=[7],o=i[n]();o.next=function(){return{done:r=!0}},i[n]=function(){return o},e(i)}catch(e){}return r}},{"./_wks":154}],108:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],109:[function(e,t,r){t.exports={}},{}],110:[function(e,t,r){t.exports=!0},{}],111:[function(e,t,r){var n=e("./_uid")("meta"),a=e("./_is-object"),i=e("./_has"),o=e("./_object-dp").f,s=0,u=Object.isExtensible||function(){return!0},c=!e("./_fails")(function(){return u(Object.preventExtensions({}))}),f=function(e){o(e,n,{value:{i:"O"+ ++s,w:{}}})},d=t.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,n)){if(!u(e))return"F";if(!t)return"E";f(e)}return e[n].i},getWeak:function(e,t){if(!i(e,n)){if(!u(e))return!0;if(!t)return!1;f(e)}return e[n].w},onFreeze:function(e){return c&&d.NEED&&u(e)&&!i(e,n)&&f(e),e}}},{"./_fails":92,"./_has":95,"./_is-object":103,"./_object-dp":116,"./_uid":150}],112:[function(e,t,r){var n=e("./_global"),a=e("./_task").set,i=n.MutationObserver||n.WebKitMutationObserver,o=n.process,s=n.Promise,u="process"==e("./_cof")(o);t.exports=function(){var e,t,r,c=function(){var n,a;for(u&&(n=o.domain)&&n.exit();e;){a=e.fn,e=e.next;try{a()}catch(n){throw e?r():t=void 0,n}}t=void 0,n&&n.enter()};if(u)r=function(){o.nextTick(c)};else if(!i||n.navigator&&n.navigator.standalone)if(s&&s.resolve){var f=s.resolve();r=function(){f.then(c)}}else r=function(){a.call(n,c)};else{var d=!0,l=document.createTextNode("");new i(c).observe(l,{characterData:!0}),r=function(){l.data=d=!d}}return function(n){var a={fn:n,next:void 0};t&&(t.next=a),e||(e=a,r()),t=a}}},{"./_cof":80,"./_global":94,"./_task":143}],113:[function(e,t,r){"use strict";var n=e("./_a-function");t.exports.f=function(e){return new function(e){var t,r;this.promise=new e(function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n}),this.resolve=n(t),this.reject=n(r)}(e)}},{"./_a-function":71}],114:[function(e,t,r){"use strict";var n=e("./_object-keys"),a=e("./_object-gops"),i=e("./_object-pie"),o=e("./_to-object"),s=e("./_iobject"),u=Object.assign;t.exports=!u||e("./_fails")(function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach(function(e){t[e]=e}),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n})?function(e,t){for(var r=o(e),u=arguments.length,c=1,f=a.f,d=i.f;u>c;)for(var l,h=s(arguments[c++]),p=f?n(h).concat(f(h)):n(h),b=p.length,y=0;b>y;)d.call(h,l=p[y++])&&(r[l]=h[l]);return r}:u},{"./_fails":92,"./_iobject":100,"./_object-gops":121,"./_object-keys":124,"./_object-pie":125,"./_to-object":148}],115:[function(e,t,r){var n=e("./_an-object"),a=e("./_object-dps"),i=e("./_enum-bug-keys"),o=e("./_shared-key")("IE_PROTO"),s=function(){},u=function(){var t,r=e("./_dom-create")("iframe"),n=i.length;for(r.style.display="none",e("./_html").appendChild(r),r.src="javascript:",(t=r.contentWindow.document).open(),t.write("