From b2d3eb789f51542e8fc49e312f512de5b7da8911 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Wed, 2 May 2018 15:53:27 +0200 Subject: Began encryption/decryption - later use PGP Keys --- .../core/assets/SiteAssets/js/encryption.js | 22172 ++++++++++++++++--- .../sprinkles/core/assets/SiteAssets/js/main.js | 30 + .../core/assets/SiteAssets/js/openpgp.worker.js | 70 + 3 files changed, 19043 insertions(+), 3229 deletions(-) create mode 100644 main/app/sprinkles/core/assets/SiteAssets/js/openpgp.worker.js (limited to 'main/app/sprinkles/core/assets') diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/encryption.js b/main/app/sprinkles/core/assets/SiteAssets/js/encryption.js index 3a1a485..00162a2 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/encryption.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/encryption.js @@ -1,3407 +1,19121 @@ -// Copyright (c) 2005 Tom Wu -// All Rights Reserved. -// See "LICENSE" for details. -// Basic JavaScript BN library - subset useful for RSA encryption. - -// Bits per digit -var dbits; - -// JavaScript engine analysis -var canary = 0xdeadbeefcafe; -var j_lm = ((canary & 0xffffff) == 0xefcafe); - -// (public) Constructor - -function BigInteger(a, b, c) { - if (a != null) if ("number" === typeof a) this.fromNumber(a, b, c); - else if (b == null && "string" !== typeof a) this.fromString(a, 256); - else this.fromString(a, b); -} - -// return new, unset BigInteger - -function nbi() { - return new BigInteger(null); -} - -// am: Compute w_j += (x*this_i), propagate carries, -// c is initial carry, returns final carry. -// c < 3*dvalue, x < 2*dvalue, this_i < dvalue -// We need to select the fastest one that works in this environment. -// am1: use a single mult and divide to get the high bits, -// max digit bits should be 26 because -// max internal value = 2*dvalue^2-2*dvalue (< 2^53) - -function am1(i, x, w, j, c, n) { - while (--n >= 0) { - var v = x * this[i++] + w[j] + c; - c = Math.floor(v / 0x4000000); - w[j++] = v & 0x3ffffff; +/*! OpenPGP.js v3.0.9 - 2018-04-30 - 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() } - return c; -} - -// am2 avoids a big mult-and-extract completely. -// Max digit bits should be <= 30 because we do bitwise ops -// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) - -function am2(i, x, w, j, c, n) { - var xl = x & 0x7fff, - xh = x >> 15; - while (--n >= 0) { - var l = this[i] & 0x7fff; - var h = this[i++] >> 15; - var m = xh * l + h * xl; - l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff); - c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30); - w[j++] = l & 0x3fffffff; - } - return c; -} - -// Alternately, set max digit bits to 28 since some -// browsers slow down when dealing with 32-bit numbers. - -function am3(i, x, w, j, c, n) { - var xl = x & 0x3fff, - xh = x >> 14; - while (--n >= 0) { - var l = this[i] & 0x3fff; - var h = this[i++] >> 14; - var m = xh * l + h * xl; - l = xl * l + ((m & 0x3fff) << 14) + w[j] + c; - c = (l >> 28) + (m >> 14) + xh * h; - w[j++] = l & 0xfffffff; - } - return c; -} - -if (j_lm && (navigator.appName == "Microsoft Internet Explorer")) { - BigInteger.prototype.am = am2; - dbits = 30; -} -else if (j_lm && (navigator.appName != "Netscape")) { - BigInteger.prototype.am = am1; - dbits = 26; -} -else { // Mozilla/Netscape seems to prefer am3 - BigInteger.prototype.am = am3; - dbits = 28; -} - -BigInteger.prototype.DB = dbits; -BigInteger.prototype.DM = ((1 << dbits) - 1); -BigInteger.prototype.DV = (1 << dbits); - -var BI_FP = 52; -BigInteger.prototype.FV = Math.pow(2, BI_FP); -BigInteger.prototype.F1 = BI_FP - dbits; -BigInteger.prototype.F2 = 2 * dbits - BI_FP; - -// Digit conversions -var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz"; -var BI_RC = new Array(); -var rr, vv; -rr = "0".charCodeAt(0); -for (vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv; -rr = "a".charCodeAt(0); -for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; -rr = "A".charCodeAt(0); -for (vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv; - -function int2char(n) { - return BI_RM.charAt(n); -} - -function intAt(s, i) { - var c = BI_RC[s.charCodeAt(i)]; - return (c == null) ? -1 : c; -} - -// (protected) copy this to r - -function bnpCopyTo(r) { - for (var i = this.t - 1; i >= 0; --i) r[i] = this[i]; - r.t = this.t; - r.s = this.s; -} - -// (protected) set from integer value x, -DV <= x < DV - -function bnpFromInt(x) { - this.t = 1; - this.s = (x < 0) ? -1 : 0; - if (x > 0) this[0] = x; - else if (x < -1) this[0] = x + DV; - else this.t = 0; -} - -// return bigint initialized to value - -function nbv(i) { - var r = nbi(); - r.fromInt(i); - return r; -} - -// (protected) set from string and radix - -function bnpFromString(s, b) { - var k; - if (b == 16) k = 4; - else if (b == 8) k = 3; - else if (b == 256) k = 8; // byte array - else if (b == 2) k = 1; - else if (b == 32) k = 5; - else if (b == 4) k = 2; - else { - this.fromRadix(s, b); - return; - } - this.t = 0; - this.s = 0; - var i = s.length, - mi = false, - sh = 0; - while (--i >= 0) { - var x = (k == 8) ? s[i] & 0xff : intAt(s, i); - if (x < 0) { - if (s.charAt(i) == "-") mi = true; - continue; - } - mi = false; - if (sh == 0) this[this.t++] = x; - else if (sh + k > this.DB) { - this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh; - this[this.t++] = (x >> (this.DB - sh)); - } - else this[this.t - 1] |= x << sh; - sh += k; - if (sh >= this.DB) sh -= this.DB; - } - if (k == 8 && (s[0] & 0x80) != 0) { - this.s = -1; - if (sh > 0) this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh; - } - this.clamp(); - if (mi) BigInteger.ZERO.subTo(this, this); -} - -// (protected) clamp off excess high words - -function bnpClamp() { - var c = this.s & this.DM; - while (this.t > 0 && this[this.t - 1] == c) --this.t; -} - -// (public) return string representation in given radix - -function bnToString(b) { - if (this.s < 0) return "-" + this.negate().toString(b); - var k; - if (b == 16) k = 4; - else if (b == 8) k = 3; - else if (b == 2) k = 1; - else if (b == 32) k = 5; - else if (b == 64) k = 6; - else if (b == 4) k = 2; - else return this.toRadix(b); - var km = (1 << k) - 1, - d, m = false, - r = "", - i = this.t; - var p = this.DB - (i * this.DB) % k; - if (i-- > 0) { - if (p < this.DB && (d = this[i] >> p) > 0) { - m = true; - r = int2char(d); +}(function () { + return function e(t, r, n) { + function i(s, o) { + if (!r[s]) { + if (!t[s]) { + var u = "function" == typeof require && require; + if (!o && u) return u(s, !0); + if (a) return a(s, !0); + var f = new Error("Cannot find module '" + s + "'"); + throw f.code = "MODULE_NOT_FOUND", f + } + var c = r[s] = {exports: {}}; + t[s][0].call(c.exports, function (e) { + var r = t[s][1][e]; + return i(r || e) + }, c, c.exports, e, t, r, n) + } + return r[s].exports } - while (i >= 0) { - if (p < k) { - d = (this[i] & ((1 << p) - 1)) << (k - p); - d |= this[--i] >> (p += this.DB - k); + + for (var a = "function" == typeof require && require, s = 0; s < n.length; s++) i(n[s]); + return i + }({ + 1: [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 i = e[(t[r] + t[n]) % 255]; + return 0 !== r && 0 !== n || (i = 0), i + } + + var i, a, s, o; + + function u() { + function u(r) { + var n, i, a; + for (i = a = function (r) { + var n = e[255 - t[r]]; + return 0 === r && (n = 0), n + }(r), n = 0; n < 4; n++) a ^= i = 255 & (i << 1 | i >>> 7); + return a ^= 99 + } + + r || function () { + e = [], t = []; + var n, i, a = 1; + for (n = 0; n < 255; n++) e[n] = a, i = 128 & a, a <<= 1, a &= 255, 128 === i && (a ^= 27), a ^= e[n], t[e[n]] = n; + e[255] = e[0], t[0] = 0, r = !0 + }(), i = [], a = [], s = [[], [], [], []], o = [[], [], [], []]; + for (var f = 0; f < 256; f++) { + var c = u(f); + i[f] = c, a[c] = f, s[0][f] = n(2, c) << 24 | c << 16 | c << 8 | n(3, c), o[0][c] = n(14, f) << 24 | n(9, f) << 16 | n(13, f) << 8 | n(11, f); + for (var d = 1; d < 4; d++) s[d][f] = s[d - 1][f] >>> 8 | s[d - 1][f] << 24, o[d][c] = o[d - 1][c] >>> 8 | o[d - 1][c] << 24 + } + } + + var f = function (e, t) { + u(); + var r = new Uint32Array(t); + r.set(i, 512), r.set(a, 768); + for (var n = 0; n < 4; n++) r.set(s[n], 4096 + 1024 * n >> 2), r.set(o[n], 8192 + 1024 * n >> 2); + var f = function (e, t, r) { + "use asm"; + var n = 0, i = 0, a = 0, s = 0, o = 0, u = 0, f = 0, c = 0, d = 0, l = 0, h = 0, p = 0, y = 0, + b = 0, m = 0, g = 0, v = 0, _ = 0, w = 0, k = 0, A = 0; + var x = new e.Uint32Array(r), S = new e.Uint8Array(r); + + function E(e, t, r, o, u, f, c, d) { + e = e | 0; + t = t | 0; + r = r | 0; + o = o | 0; + u = u | 0; + f = f | 0; + c = c | 0; + d = d | 0; + var l = 0, h = 0, p = 0, y = 0, b = 0, m = 0, g = 0, v = 0; + l = r | 0x400, h = r | 0x800, p = r | 0xc00; + u = u ^ x[(e | 0) >> 2], f = f ^ x[(e | 4) >> 2], c = c ^ x[(e | 8) >> 2], d = d ^ x[(e | 12) >> 2]; + for (v = 16; (v | 0) <= o << 4; v = v + 16 | 0) { + y = x[(r | u >> 22 & 1020) >> 2] ^ x[(l | f >> 14 & 1020) >> 2] ^ x[(h | c >> 6 & 1020) >> 2] ^ x[(p | d << 2 & 1020) >> 2] ^ x[(e | v | 0) >> 2], b = x[(r | f >> 22 & 1020) >> 2] ^ x[(l | c >> 14 & 1020) >> 2] ^ x[(h | d >> 6 & 1020) >> 2] ^ x[(p | u << 2 & 1020) >> 2] ^ x[(e | v | 4) >> 2], m = x[(r | c >> 22 & 1020) >> 2] ^ x[(l | d >> 14 & 1020) >> 2] ^ x[(h | u >> 6 & 1020) >> 2] ^ x[(p | f << 2 & 1020) >> 2] ^ x[(e | v | 8) >> 2], g = x[(r | d >> 22 & 1020) >> 2] ^ x[(l | u >> 14 & 1020) >> 2] ^ x[(h | f >> 6 & 1020) >> 2] ^ x[(p | c << 2 & 1020) >> 2] ^ x[(e | v | 12) >> 2]; + u = y, f = b, c = m, d = g + } + n = x[(t | u >> 22 & 1020) >> 2] << 24 ^ x[(t | f >> 14 & 1020) >> 2] << 16 ^ x[(t | c >> 6 & 1020) >> 2] << 8 ^ x[(t | d << 2 & 1020) >> 2] ^ x[(e | v | 0) >> 2], i = x[(t | f >> 22 & 1020) >> 2] << 24 ^ x[(t | c >> 14 & 1020) >> 2] << 16 ^ x[(t | d >> 6 & 1020) >> 2] << 8 ^ x[(t | u << 2 & 1020) >> 2] ^ x[(e | v | 4) >> 2], a = x[(t | c >> 22 & 1020) >> 2] << 24 ^ x[(t | d >> 14 & 1020) >> 2] << 16 ^ x[(t | u >> 6 & 1020) >> 2] << 8 ^ x[(t | f << 2 & 1020) >> 2] ^ x[(e | v | 8) >> 2], s = x[(t | d >> 22 & 1020) >> 2] << 24 ^ x[(t | u >> 14 & 1020) >> 2] << 16 ^ x[(t | f >> 6 & 1020) >> 2] << 8 ^ x[(t | c << 2 & 1020) >> 2] ^ x[(e | v | 12) >> 2] + } + + function M(e, t, r, n) { + e = e | 0; + t = t | 0; + r = r | 0; + n = n | 0; + E(0x0000, 0x0800, 0x1000, A, e, t, r, n) + } + + function C(e, t, r, n) { + e = e | 0; + t = t | 0; + r = r | 0; + n = n | 0; + var a = 0; + E(0x0400, 0x0c00, 0x2000, A, e, n, r, t); + a = i, i = s, s = a + } + + function j(e, t, r, d) { + e = e | 0; + t = t | 0; + r = r | 0; + d = d | 0; + E(0x0000, 0x0800, 0x1000, A, o ^ e, u ^ t, f ^ r, c ^ d); + o = n, u = i, f = a, c = s + } + + function P(e, t, r, d) { + e = e | 0; + t = t | 0; + r = r | 0; + d = d | 0; + var l = 0; + E(0x0400, 0x0c00, 0x2000, A, e, d, r, t); + l = i, i = s, s = l; + n = n ^ o, i = i ^ u, a = a ^ f, s = s ^ c; + o = e, u = t, f = r, c = d + } + + function B(e, t, r, d) { + e = e | 0; + t = t | 0; + r = r | 0; + d = d | 0; + E(0x0000, 0x0800, 0x1000, A, o, u, f, c); + o = n = n ^ e, u = i = i ^ t, f = a = a ^ r, c = s = s ^ d + } + + function U(e, t, r, d) { + e = e | 0; + t = t | 0; + r = r | 0; + d = d | 0; + E(0x0000, 0x0800, 0x1000, A, o, u, f, c); + n = n ^ e, i = i ^ t, a = a ^ r, s = s ^ d; + o = e, u = t, f = r, c = d + } + + function K(e, t, r, d) { + e = e | 0; + t = t | 0; + r = r | 0; + d = d | 0; + E(0x0000, 0x0800, 0x1000, A, o, u, f, c); + o = n, u = i, f = a, c = s; + n = n ^ e, i = i ^ t, a = a ^ r, s = s ^ d + } + + function I(e, t, r, o) { + e = e | 0; + t = t | 0; + r = r | 0; + o = o | 0; + E(0x0000, 0x0800, 0x1000, A, d, l, h, p); + p = ~g & p | g & p + 1; + h = ~m & h | m & h + ((p | 0) == 0); + l = ~b & l | b & l + ((h | 0) == 0); + d = ~y & d | y & d + ((l | 0) == 0); + n = n ^ e; + i = i ^ t; + a = a ^ r; + s = s ^ o + } + + function T(e, t, r, n) { + e = e | 0; + t = t | 0; + r = r | 0; + n = n | 0; + var i = 0, a = 0, s = 0, d = 0, l = 0, h = 0, p = 0, y = 0, b = 0, m = 0; + e = e ^ o, t = t ^ u, r = r ^ f, n = n ^ c; + i = v | 0, a = _ | 0, s = w | 0, d = k | 0; + for (; (b | 0) < 128; b = b + 1 | 0) { + if (i >>> 31) { + l = l ^ e, h = h ^ t, p = p ^ r, y = y ^ n + } + i = i << 1 | a >>> 31, a = a << 1 | s >>> 31, s = s << 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 + } + o = l, u = h, f = p, c = y + } + + function O(e) { + e = e | 0; + A = e + } + + function R(e, t, r, o) { + e = e | 0; + t = t | 0; + r = r | 0; + o = o | 0; + n = e, i = t, a = r, s = o + } + + function D(e, t, r, n) { + e = e | 0; + t = t | 0; + r = r | 0; + n = n | 0; + o = e, u = t, f = r, c = n + } + + function z(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 L(e, t, r, n) { + e = e | 0; + t = t | 0; + r = r | 0; + n = n | 0; + y = e, b = t, m = r, g = n + } + + function F(e, t, r, n) { + e = e | 0; + t = t | 0; + r = r | 0; + n = n | 0; + p = ~g & p | g & n, h = ~m & h | m & r, l = ~b & l | b & t, d = ~y & d | y & e + } + + function N(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] = i >>> 24, S[e | 5] = i >>> 16 & 255, S[e | 6] = i >>> 8 & 255, S[e | 7] = i & 255, S[e | 8] = a >>> 24, S[e | 9] = a >>> 16 & 255, S[e | 10] = a >>> 8 & 255, S[e | 11] = a & 255, S[e | 12] = s >>> 24, S[e | 13] = s >>> 16 & 255, S[e | 14] = s >>> 8 & 255, S[e | 15] = s & 255; + return 16 + } + + function q(e) { + e = e | 0; + if (e & 15) return -1; + S[e | 0] = o >>> 24, S[e | 1] = o >>> 16 & 255, S[e | 2] = o >>> 8 & 255, S[e | 3] = o & 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] = f >>> 24, S[e | 9] = f >>> 16 & 255, S[e | 10] = f >>> 8 & 255, S[e | 11] = f & 255, S[e | 12] = c >>> 24, S[e | 13] = c >>> 16 & 255, S[e | 14] = c >>> 8 & 255, S[e | 15] = c & 255; + return 16 + } + + function G() { + M(0, 0, 0, 0); + v = n, _ = i, w = a, k = s + } + + function H(e, t, r) { + e = e | 0; + t = t | 0; + r = r | 0; + var o = 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] = i >>> 24, S[t | 5] = i >>> 16 & 255, S[t | 6] = i >>> 8 & 255, S[t | 7] = i & 255, S[t | 8] = a >>> 24, S[t | 9] = a >>> 16 & 255, S[t | 10] = a >>> 8 & 255, S[t | 11] = a & 255, S[t | 12] = s >>> 24, S[t | 13] = s >>> 16 & 255, S[t | 14] = s >>> 8 & 255, S[t | 15] = s & 255; + o = o + 16 | 0, t = t + 16 | 0, r = r - 16 | 0 + } + return o | 0 + } + + function Z(e, t, r) { + e = e | 0; + t = t | 0; + r = r | 0; + var n = 0; + if (t & 15) return -1; + while ((r | 0) >= 16) { + W[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 = [M, C, j, P, B, U, K, I]; + var W = [j, T]; + return { + set_rounds: O, + set_state: R, + set_iv: D, + set_nonce: z, + set_mask: L, + set_counter: F, + get_state: N, + get_iv: q, + gcm_init: G, + cipher: H, + mac: Z + } + }({Uint8Array: Uint8Array, Uint32Array: Uint32Array}, e, t); + return f.set_key = function (e, t, n, a, s, u, c, d, l) { + var h = r.subarray(0, 60), p = r.subarray(256, 316); + h.set([t, n, a, s, u, c, d, l]); + for (var y = e, b = 1; y < 4 * e + 28; y++) { + var m = h[y - 1]; + (y % e == 0 || 8 === e && y % e == 4) && (m = i[m >>> 24] << 24 ^ i[m >>> 16 & 255] << 16 ^ i[m >>> 8 & 255] << 8 ^ i[255 & m]), y % e == 0 && (m = m << 8 ^ m >>> 24 ^ b << 24, b = b << 1 ^ (128 & b ? 27 : 0)), h[y] = h[y - e] ^ m + } + for (var g = 0; g < y; g += 4) for (var v = 0; v < 4; v++) m = h[y - (4 + g) + (4 - v) % 4], p[g + v] = g < 4 || g >= y - 4 ? m : o[0][i[m >>> 24]] ^ o[1][i[m >>> 16 & 255]] ^ o[2][i[m >>> 8 & 255]] ^ o[3][i[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 + }() + }, {}], + 2: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES = void 0; + var n = u(e("babel-runtime/helpers/classCallCheck")), i = u(e("babel-runtime/helpers/createClass")), + a = e("./aes.asm"), s = e("../utils"), o = e("../errors"); + + function u(e) { + return e && e.__esModule ? e : {default: e} } - else { - d = (this[i] >> (p -= k)) & km; - if (p <= 0) { - p += this.DB; - --i; + + r.AES = function () { + function e(t, r, i, o, u) { + (0, n.default)(this, e), this.nonce = null, this.counter = 0, this.counterSize = 0, this.heap = (0, s._heap_init)(Uint8Array, o).subarray(a.AES_asm.HEAP_DATA), this.asm = u || (0, a.AES_asm)(null, this.heap.buffer), this.mode = null, this.key = null, this.AES_reset(t, r, i) } + + return (0, i.default)(e, [{ + key: "AES_set_key", value: function (e) { + if (void 0 !== e) { + if (!(0, s.is_bytes)(e)) throw new TypeError("unexpected key type"); + var t = e.length; + if (16 !== t && 24 !== t && 32 !== t) throw new o.IllegalArgumentError("illegal key size"); + var r = new DataView(e.buffer, e.byteOffset, e.byteLength); + this.asm.set_key(t >> 2, r.getUint32(0), r.getUint32(4), r.getUint32(8), r.getUint32(12), t > 16 ? r.getUint32(16) : 0, t > 16 ? r.getUint32(20) : 0, t > 24 ? r.getUint32(24) : 0, t > 24 ? r.getUint32(28) : 0), this.key = e + } else if (!this.key) throw new Error("key is required") + } + }, { + key: "AES_CTR_set_options", value: function (e, t, r) { + if (void 0 !== r) { + if (r < 8 || r > 48) throw new o.IllegalArgumentError("illegal counter size"); + this.counterSize = r; + var n = Math.pow(2, r) - 1; + this.asm.set_mask(0, 0, n / 4294967296 | 0, 0 | n) + } else this.counterSize = r = 48, this.asm.set_mask(0, 0, 65535, 4294967295); + if (void 0 === e) throw new Error("nonce is required"); + if (!(0, s.is_bytes)(e)) throw new TypeError("unexpected nonce type"); + var i = e.length; + if (!i || i > 16) throw new o.IllegalArgumentError("illegal nonce size"); + this.nonce = e; + var a = new DataView(new ArrayBuffer(16)); + if (new Uint8Array(a.buffer).set(e), this.asm.set_nonce(a.getUint32(0), a.getUint32(4), a.getUint32(8), a.getUint32(12)), void 0 !== t) { + if (!(0, s.is_number)(t)) throw new TypeError("unexpected counter type"); + if (t < 0 || t >= Math.pow(2, r)) throw new o.IllegalArgumentError("illegal counter value"); + this.counter = t, this.asm.set_counter(0, 0, t / 4294967296 | 0, 0 | t) + } else this.counter = 0 + } + }, { + key: "AES_set_iv", value: function (e) { + if (void 0 !== e) { + if (!(0, s.is_bytes)(e)) throw new TypeError("unexpected iv type"); + if (16 !== e.length) throw new o.IllegalArgumentError("illegal iv size"); + var t = new DataView(e.buffer, e.byteOffset, e.byteLength); + this.iv = e, this.asm.set_iv(t.getUint32(0), t.getUint32(4), t.getUint32(8), t.getUint32(12)) + } else this.iv = null, this.asm.set_iv(0, 0, 0, 0) + } + }, { + key: "AES_set_padding", value: function (e) { + this.padding = void 0 === e || !!e + } + }, { + key: "AES_reset", value: function (e, t, r) { + return this.result = null, this.pos = 0, this.len = 0, this.AES_set_key(e), this.AES_set_iv(t), this.AES_set_padding(r), this + } + }, { + key: "AES_Encrypt_process", value: function (e) { + if (!(0, s.is_bytes)(e)) throw new TypeError("data isn't of expected type"); + for (var t = this.asm, r = this.heap, n = a.AES_asm.ENC[this.mode], i = a.AES_asm.HEAP_DATA, o = this.pos, u = this.len, f = 0, c = e.length || 0, d = 0, l = 0, h = new Uint8Array(u + c & -16); c > 0;) u += l = (0, s._heap_write)(r, o + u, e, f, c), f += l, c -= l, (l = t.cipher(n, i + o, u)) && h.set(r.subarray(o, o + l), d), d += l, l < u ? (o += l, u -= l) : (o = 0, u = 0); + return this.result = h, this.pos = o, this.len = u, this + } + }, { + key: "AES_Encrypt_finish", value: function (e) { + var t = null, r = 0; + void 0 !== e && (r = (t = this.AES_Encrypt_process(e).result).length); + var n = this.asm, i = this.heap, s = a.AES_asm.ENC[this.mode], u = a.AES_asm.HEAP_DATA, + f = this.pos, c = this.len, d = 16 - c % 16, l = c; + if (this.hasOwnProperty("padding")) { + if (this.padding) { + for (var h = 0; h < d; ++h) i[f + c + h] = d; + l = c += d + } else if (c % 16) throw new o.IllegalArgumentError("data length must be a multiple of the block size") + } else c += d; + var p = new Uint8Array(r + l); + return r && p.set(t), c && n.cipher(s, u + f, c), l && p.set(i.subarray(f, f + l), r), this.result = p, this.pos = 0, this.len = 0, this + } + }, { + key: "AES_Decrypt_process", value: function (e) { + if (!(0, s.is_bytes)(e)) throw new TypeError("data isn't of expected type"); + var t = this.asm, r = this.heap, n = a.AES_asm.DEC[this.mode], i = a.AES_asm.HEAP_DATA, + o = this.pos, u = this.len, f = 0, c = e.length || 0, d = 0, l = u + c & -16, h = 0, p = 0; + this.padding && (l -= h = u + c - l || 16); + for (var y = new Uint8Array(l); c > 0;) u += p = (0, s._heap_write)(r, o + u, e, f, c), f += p, c -= p, (p = t.cipher(n, i + o, u - (c ? 0 : h))) && y.set(r.subarray(o, o + p), d), d += p, p < u ? (o += p, u -= p) : (o = 0, u = 0); + return this.result = y, this.pos = o, this.len = u, this + } + }, { + key: "AES_Decrypt_finish", value: function (e) { + var t = null, r = 0; + void 0 !== e && (r = (t = this.AES_Decrypt_process(e).result).length); + var n = this.asm, i = this.heap, s = a.AES_asm.DEC[this.mode], u = a.AES_asm.HEAP_DATA, + f = this.pos, c = this.len, d = c; + if (c > 0) { + if (c % 16) { + if (this.hasOwnProperty("padding")) throw new o.IllegalArgumentError("data length must be a multiple of the block size"); + c += 16 - c % 16 + } + if (n.cipher(s, u + f, c), this.hasOwnProperty("padding") && this.padding) { + var l = i[f + d - 1]; + if (l < 1 || l > 16 || l > d) throw new o.SecurityError("bad padding"); + for (var h = 0, p = l; p > 1; p--) h |= l ^ i[f + d - p]; + if (h) throw new o.SecurityError("bad padding"); + d -= l + } + } + var y = new Uint8Array(r + d); + return r > 0 && y.set(t), d > 0 && y.set(i.subarray(f, f + d), r), this.result = y, this.pos = 0, this.len = 0, this + } + }]), e + }() + }, { + "../errors": 13, + "../utils": 18, + "./aes.asm": 1, + "babel-runtime/helpers/classCallCheck": 32, + "babel-runtime/helpers/createClass": 33 + }], + 3: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_CBC_Decrypt = r.AES_CBC_Encrypt = r.AES_CBC = void 0; + var n = f(e("babel-runtime/core-js/object/get-prototype-of")), + i = f(e("babel-runtime/helpers/classCallCheck")), a = f(e("babel-runtime/helpers/createClass")), + s = f(e("babel-runtime/helpers/possibleConstructorReturn")), o = f(e("babel-runtime/helpers/inherits")), + u = e("../aes"); + + function f(e) { + return e && e.__esModule ? e : {default: e} } - if (d > 0) m = true; - if (m) r += int2char(d); - } - } - return m ? r : "0"; -} - -// (public) -this - -function bnNegate() { - var r = nbi(); - BigInteger.ZERO.subTo(this, r); - return r; -} - -// (public) |this| - -function bnAbs() { - return (this.s < 0) ? this.negate() : this; -} - -// (public) return + if this > a, - if this < a, 0 if equal - -function bnCompareTo(a) { - var r = this.s - a.s; - if (r != 0) return r; - var i = this.t; - r = i - a.t; - if (r != 0) return r; - while (--i >= 0) if ((r = this[i] - a[i]) != 0) return r; - return 0; -} - -// returns bit length of the integer x - -function nbits(x) { - var r = 1, - t; - if ((t = x >>> 16) != 0) { - x = t; - r += 16; - } - if ((t = x >> 8) != 0) { - x = t; - r += 8; - } - if ((t = x >> 4) != 0) { - x = t; - r += 4; - } - if ((t = x >> 2) != 0) { - x = t; - r += 2; - } - if ((t = x >> 1) != 0) { - x = t; - r += 1; - } - return r; -} - -// (public) return the number of bits in "this" - -function bnBitLength() { - if (this.t <= 0) return 0; - return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM)); -} - -// (protected) r = this << n*DB - -function bnpDLShiftTo(n, r) { - var i; - for (i = this.t - 1; i >= 0; --i) r[i + n] = this[i]; - for (i = n - 1; i >= 0; --i) r[i] = 0; - r.t = this.t + n; - r.s = this.s; -} - -// (protected) r = this >> n*DB - -function bnpDRShiftTo(n, r) { - for (var i = n; i < this.t; ++i) r[i - n] = this[i]; - r.t = Math.max(this.t - n, 0); - r.s = this.s; -} - -// (protected) r = this << n - -function bnpLShiftTo(n, r) { - var bs = n % this.DB; - var cbs = this.DB - bs; - var bm = (1 << cbs) - 1; - var ds = Math.floor(n / this.DB), - c = (this.s << bs) & this.DM, - i; - for (i = this.t - 1; i >= 0; --i) { - r[i + ds + 1] = (this[i] >> cbs) | c; - c = (this[i] & bm) << bs; - } - for (i = ds - 1; i >= 0; --i) r[i] = 0; - r[ds] = c; - r.t = this.t + ds + 1; - r.s = this.s; - r.clamp(); -} - -// (protected) r = this >> n - -function bnpRShiftTo(n, r) { - r.s = this.s; - var ds = Math.floor(n / this.DB); - if (ds >= this.t) { - r.t = 0; - return; - } - var bs = n % this.DB; - var cbs = this.DB - bs; - var bm = (1 << bs) - 1; - r[0] = this[ds] >> bs; - for (var i = ds + 1; i < this.t; ++i) { - r[i - ds - 1] |= (this[i] & bm) << cbs; - r[i - ds] = this[i] >> bs; - } - if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs; - r.t = this.t - ds; - r.clamp(); -} - -// (protected) r = this - a - -function bnpSubTo(a, r) { - var i = 0, - c = 0, - m = Math.min(a.t, this.t); - while (i < m) { - c += this[i] - a[i]; - r[i++] = c & this.DM; - c >>= this.DB; - } - if (a.t < this.t) { - c -= a.s; - while (i < this.t) { - c += this[i]; - r[i++] = c & this.DM; - c >>= this.DB; - } - c += this.s; - } - else { - c += this.s; - while (i < a.t) { - c -= a[i]; - r[i++] = c & this.DM; - c >>= this.DB; - } - c -= a.s; - } - r.s = (c < 0) ? -1 : 0; - if (c < -1) r[i++] = this.DV + c; - else if (c > 0) r[i++] = c; - r.t = i; - r.clamp(); -} - -// (protected) r = this * a, r != this,a (HAC 14.12) -// "this" should be the larger one if appropriate. - -function bnpMultiplyTo(a, r) { - var x = this.abs(), - y = a.abs(); - var i = x.t; - r.t = i + y.t; - while (--i >= 0) r[i] = 0; - for (i = 0; i < y.t; ++i) r[i + x.t] = x.am(0, y[i], r, i, 0, x.t); - r.s = 0; - r.clamp(); - if (this.s != a.s) BigInteger.ZERO.subTo(r, r); -} - -// (protected) r = this^2, r != this (HAC 14.16) - -function bnpSquareTo(r) { - var x = this.abs(); - var i = r.t = 2 * x.t; - while (--i >= 0) r[i] = 0; - for (i = 0; i < x.t - 1; ++i) { - var c = x.am(i, x[i], r, 2 * i, 0, 1); - if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) { - r[i + x.t] -= x.DV; - r[i + x.t + 1] = 1; - } - } - if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1); - r.s = 0; - r.clamp(); -} - -// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) -// r != q, this != m. q or r may be null. - -function bnpDivRemTo(m, q, r) { - var pm = m.abs(); - if (pm.t <= 0) return; - var pt = this.abs(); - if (pt.t < pm.t) { - if (q != null) q.fromInt(0); - if (r != null) this.copyTo(r); - return; - } - if (r == null) r = nbi(); - var y = nbi(), - ts = this.s, - ms = m.s; - var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus - if (nsh > 0) { - pm.lShiftTo(nsh, y); - pt.lShiftTo(nsh, r); - } - else { - pm.copyTo(y); - pt.copyTo(r); - } - var ys = y.t; - var y0 = y[ys - 1]; - if (y0 == 0) return; - var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0); - var d1 = this.FV / yt, - d2 = (1 << this.F1) / yt, - e = 1 << this.F2; - var i = r.t, - j = i - ys, - t = (q == null) ? nbi() : q; - y.dlShiftTo(j, t); - if (r.compareTo(t) >= 0) { - r[r.t++] = 1; - r.subTo(t, r); - } - BigInteger.ONE.dlShiftTo(ys, t); - t.subTo(y, y); // "negative" y so we can replace sub with am later - while (y.t < ys) y[y.t++] = 0; - while (--j >= 0) { - // Estimate quotient digit - var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2); - if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out - y.dlShiftTo(j, t); - r.subTo(t, r); - while (r[i] < --qd) r.subTo(t, r); - } - } - if (q != null) { - r.drShiftTo(ys, q); - if (ts != ms) BigInteger.ZERO.subTo(q, q); - } - r.t = ys; - r.clamp(); - if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder - if (ts < 0) BigInteger.ZERO.subTo(r, r); -} - -// (public) this mod a - -function bnMod(a) { - var r = nbi(); - this.abs().divRemTo(a, null, r); - if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r); - return r; -} - -// Modular reduction using "classic" algorithm - -function Classic(m) { - this.m = m; -} - -function cConvert(x) { - if (x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m); - else return x; -} - -function cRevert(x) { - return x; -} - -function cReduce(x) { - x.divRemTo(this.m, null, x); -} - -function cMulTo(x, y, r) { - x.multiplyTo(y, r); - this.reduce(r); -} - -function cSqrTo(x, r) { - x.squareTo(r); - this.reduce(r); -} - -Classic.prototype.convert = cConvert; -Classic.prototype.revert = cRevert; -Classic.prototype.reduce = cReduce; -Classic.prototype.mulTo = cMulTo; -Classic.prototype.sqrTo = cSqrTo; - -// (protected) return "-1/this % 2^DB"; useful for Mont. reduction -// justification: -// xy == 1 (mod m) -// xy = 1+km -// xy(2-xy) = (1+km)(1-km) -// x[y(2-xy)] = 1-k^2m^2 -// x[y(2-xy)] == 1 (mod m^2) -// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 -// should reduce x and y(2-xy) by m^2 at each step to keep size bounded. -// JS multiply "overflows" differently from C/C++, so care is needed here. - -function bnpInvDigit() { - if (this.t < 1) return 0; - var x = this[0]; - if ((x & 1) == 0) return 0; - var y = x & 3; // y == 1/x mod 2^2 - y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4 - y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8 - y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16 - // last step - calculate inverse mod DV directly; - // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints - y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits - // we really want the negative inverse, and -DV < y < DV - return (y > 0) ? this.DV - y : -y; -} - -// Montgomery reduction - -function Montgomery(m) { - this.m = m; - this.mp = m.invDigit(); - this.mpl = this.mp & 0x7fff; - this.mph = this.mp >> 15; - this.um = (1 << (m.DB - 15)) - 1; - this.mt2 = 2 * m.t; -} - -// xR mod m - -function montConvert(x) { - var r = nbi(); - x.abs().dlShiftTo(this.m.t, r); - r.divRemTo(this.m, null, r); - if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r); - return r; -} - -// x/R mod m - -function montRevert(x) { - var r = nbi(); - x.copyTo(r); - this.reduce(r); - return r; -} - -// x = x/R mod m (HAC 14.32) - -function montReduce(x) { - while (x.t <= this.mt2) // pad x so am has enough room later - x[x.t++] = 0; - for (var i = 0; i < this.m.t; ++i) { - // faster way of calculating u0 = x[i]*mp mod DV - var j = x[i] & 0x7fff; - var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM; - // use am to combine the multiply-shift-add into one call - j = i + this.m.t; - x[j] += this.m.am(0, u0, x, i, 0, this.m.t); - // propagate carry - while (x[j] >= x.DV) { - x[j] -= x.DV; - x[++j]++; - } - } - x.clamp(); - x.drShiftTo(this.m.t, x); - if (x.compareTo(this.m) >= 0) x.subTo(this.m, x); -} - -// r = "x^2/R mod m"; x != r - -function montSqrTo(x, r) { - x.squareTo(r); - this.reduce(r); -} - -// r = "xy/R mod m"; x,y != r - -function montMulTo(x, y, r) { - x.multiplyTo(y, r); - this.reduce(r); -} - -Montgomery.prototype.convert = montConvert; -Montgomery.prototype.revert = montRevert; -Montgomery.prototype.reduce = montReduce; -Montgomery.prototype.mulTo = montMulTo; -Montgomery.prototype.sqrTo = montSqrTo; - -// (protected) true iff this is even - -function bnpIsEven() { - return ((this.t > 0) ? (this[0] & 1) : this.s) == 0; -} - -// (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79) - -function bnpExp(e, z) { - if (e > 0xffffffff || e < 1) return BigInteger.ONE; - var r = nbi(), - r2 = nbi(), - g = z.convert(this), - i = nbits(e) - 1; - g.copyTo(r); - while (--i >= 0) { - z.sqrTo(r, r2); - if ((e & (1 << i)) > 0) z.mulTo(r2, g, r); - else { - var t = r; - r = r2; - r2 = t; - } - } - return z.revert(r); -} - -// (public) this^e % m, 0 <= e < 2^32 - -function bnModPowInt(e, m) { - var z; - if (e < 256 || m.isEven()) z = new Classic(m); - else z = new Montgomery(m); - return this.exp(e, z); -} - -// protected -BigInteger.prototype.copyTo = bnpCopyTo; -BigInteger.prototype.fromInt = bnpFromInt; -BigInteger.prototype.fromString = bnpFromString; -BigInteger.prototype.clamp = bnpClamp; -BigInteger.prototype.dlShiftTo = bnpDLShiftTo; -BigInteger.prototype.drShiftTo = bnpDRShiftTo; -BigInteger.prototype.lShiftTo = bnpLShiftTo; -BigInteger.prototype.rShiftTo = bnpRShiftTo; -BigInteger.prototype.subTo = bnpSubTo; -BigInteger.prototype.multiplyTo = bnpMultiplyTo; -BigInteger.prototype.squareTo = bnpSquareTo; -BigInteger.prototype.divRemTo = bnpDivRemTo; -BigInteger.prototype.invDigit = bnpInvDigit; -BigInteger.prototype.isEven = bnpIsEven; -BigInteger.prototype.exp = bnpExp; - -// public -BigInteger.prototype.toString = bnToString; -BigInteger.prototype.negate = bnNegate; -BigInteger.prototype.abs = bnAbs; -BigInteger.prototype.compareTo = bnCompareTo; -BigInteger.prototype.bitLength = bnBitLength; -BigInteger.prototype.mod = bnMod; -BigInteger.prototype.modPowInt = bnModPowInt; - -// "constants" -BigInteger.ZERO = nbv(0); -BigInteger.ONE = nbv(1); - - -function bnClone() { - var r = nbi(); - this.copyTo(r); - return r; -} - -// (public) return value as integer - -function bnIntValue() { - if (this.s < 0) { - if (this.t == 1) return this[0] - this.DV; - else if (this.t == 0) return -1; - } - else if (this.t == 1) return this[0]; - else if (this.t == 0) return 0; - // assumes 16 < DB < 32 - return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0]; -} - -// (public) return value as byte - -function bnByteValue() { - return (this.t == 0) ? this.s : (this[0] << 24) >> 24; -} - -// (public) return value as short (assumes DB>=16) - -function bnShortValue() { - return (this.t == 0) ? this.s : (this[0] << 16) >> 16; -} - -// (protected) return x s.t. r^x < DV - -function bnpChunkSize(r) { - return Math.floor(Math.LN2 * this.DB / Math.log(r)); -} - -// (public) 0 if this == 0, 1 if this > 0 - -function bnSigNum() { - if (this.s < 0) return -1; - else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0; - else return 1; -} - -// (protected) convert to radix string - -function bnpToRadix(b) { - if (b == null) b = 10; - if (this.signum() == 0 || b < 2 || b > 36) return "0"; - var cs = this.chunkSize(b); - var a = Math.pow(b, cs); - var d = nbv(a), - y = nbi(), - z = nbi(), - r = ""; - this.divRemTo(d, y, z); - while (y.signum() > 0) { - r = (a + z.intValue()).toString(b).substr(1) + r; - y.divRemTo(d, y, z); - } - return z.intValue().toString(b) + r; -} - -// (protected) convert from radix string - -function bnpFromRadix(s, b) { - this.fromInt(0); - if (b == null) b = 10; - var cs = this.chunkSize(b); - var d = Math.pow(b, cs), - mi = false, - j = 0, - w = 0; - for (var i = 0; i < s.length; ++i) { - var x = intAt(s, i); - if (x < 0) { - if (s.charAt(i) == "-" && this.signum() == 0) mi = true; - continue; - } - w = b * w + x; - if (++j >= cs) { - this.dMultiply(d); - this.dAddOffset(w, 0); - j = 0; - w = 0; - } - } - if (j > 0) { - this.dMultiply(Math.pow(b, j)); - this.dAddOffset(w, 0); - } - if (mi) BigInteger.ZERO.subTo(this, this); -} - -// (protected) alternate constructor - -function bnpFromNumber(a, b, c) { - if ("number" == typeof b) { - // new BigInteger(int,int,RNG) - if (a < 2) this.fromInt(1); - else { - this.fromNumber(a, c); - if (!this.testBit(a - 1)) // force MSB set - this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this); - if (this.isEven()) this.dAddOffset(1, 0); // force odd - while (!this.isProbablePrime(b)) { - this.dAddOffset(2, 0); - if (this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a - 1), this); + + var c = r.AES_CBC = function (e) { + function t(e) { + var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, + a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], o = arguments[3], + u = arguments[4]; + (0, i.default)(this, t); + var f = (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o, u)); + return f.mode = "CBC", f.BLOCK_SIZE = 16, f + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "encrypt", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }, { + key: "decrypt", value: function (e) { + return this.AES_Decrypt_finish(e) + } + }]), t + }(u.AES); + r.AES_CBC_Encrypt = function (e) { + function t(e, r, a, o, u) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o, u)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e) { + return this.AES_reset(e, null, !0) + } + }, { + key: "process", value: function (e) { + return this.AES_Encrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }]), t + }(c), r.AES_CBC_Decrypt = function (e) { + function t(e, r, a, o, u) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o, u)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e) { + return this.AES_reset(e, null, !0) + } + }, { + key: "process", value: function (e) { + return this.AES_Decrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Decrypt_finish(e) + } + }]), t + }(c) + }, { + "../aes": 2, + "babel-runtime/core-js/object/get-prototype-of": 26, + "babel-runtime/helpers/classCallCheck": 32, + "babel-runtime/helpers/createClass": 33, + "babel-runtime/helpers/inherits": 34, + "babel-runtime/helpers/possibleConstructorReturn": 35 + }], + 4: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_CBC_Decrypt = r.AES_CBC_Encrypt = r.AES_CBC = void 0; + var n = e("../exports"), i = e("./cbc"); + i.AES_CBC.encrypt = function (e, t, r, a) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + return new i.AES_CBC(t, a, r, n._AES_heap_instance, n._AES_asm_instance).encrypt(e).result + }, i.AES_CBC.decrypt = function (e, t, r, a) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + return new i.AES_CBC(t, a, r, n._AES_heap_instance, n._AES_asm_instance).decrypt(e).result + }, r.AES_CBC = i.AES_CBC, r.AES_CBC_Encrypt = i.AES_CBC_Encrypt, r.AES_CBC_Decrypt = i.AES_CBC_Decrypt + }, {"../exports": 10, "./cbc": 3}], + 5: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_CFB_Decrypt = r.AES_CFB_Encrypt = r.AES_CFB = void 0; + var n = f(e("babel-runtime/core-js/object/get-prototype-of")), + i = f(e("babel-runtime/helpers/classCallCheck")), a = f(e("babel-runtime/helpers/createClass")), + s = f(e("babel-runtime/helpers/possibleConstructorReturn")), o = f(e("babel-runtime/helpers/inherits")), + u = e("../aes"); + + function f(e) { + return e && e.__esModule ? e : {default: e} + } + + var c = r.AES_CFB = function (e) { + function t(e, r, a, o) { + (0, i.default)(this, t); + var u = (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, !0, a, o)); + return delete u.padding, u.mode = "CFB", u.BLOCK_SIZE = 16, u + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "encrypt", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }, { + key: "decrypt", value: function (e) { + return this.AES_Decrypt_finish(e) + } + }]), t + }(u.AES); + r.AES_CFB_Encrypt = function (e) { + function t(e, r, a, o) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e, t, r) { + return this.AES_reset(e, t, r) + } + }, { + key: "process", value: function (e) { + return this.AES_Encrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }]), t + }(c), r.AES_CFB_Decrypt = function (e) { + function t(e, r, a, o) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e, t, r) { + return this.AES_reset(e, t, r) + } + }, { + key: "process", value: function (e) { + return this.AES_Decrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Decrypt_finish(e) + } + }]), t + }(c) + }, { + "../aes": 2, + "babel-runtime/core-js/object/get-prototype-of": 26, + "babel-runtime/helpers/classCallCheck": 32, + "babel-runtime/helpers/createClass": 33, + "babel-runtime/helpers/inherits": 34, + "babel-runtime/helpers/possibleConstructorReturn": 35 + }], + 6: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_CFB_Decrypt = r.AES_CFB_Encrypt = r.AES_CFB = void 0; + var n = e("../exports"), i = e("./cfb"); + i.AES_CFB.encrypt = function (e, t, r) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + return new i.AES_CFB(t, r, n._AES_heap_instance, n._AES_asm_instance).encrypt(e).result + }, i.AES_CFB.decrypt = function (e, t, r) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + return new i.AES_CFB(t, r, n._AES_heap_instance, n._AES_asm_instance).decrypt(e).result + }, r.AES_CFB = i.AES_CFB, r.AES_CFB_Encrypt = i.AES_CFB_Encrypt, r.AES_CFB_Decrypt = i.AES_CFB_Decrypt + }, {"../exports": 10, "./cfb": 5}], + 7: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_CTR_Crypt = r.AES_CTR = void 0; + var n = f(e("babel-runtime/core-js/object/get-prototype-of")), + i = f(e("babel-runtime/helpers/classCallCheck")), a = f(e("babel-runtime/helpers/createClass")), + s = f(e("babel-runtime/helpers/possibleConstructorReturn")), o = f(e("babel-runtime/helpers/inherits")), + u = e("../aes"); + + function f(e) { + return e && e.__esModule ? e : {default: e} + } + + var c = r.AES_CTR = function (e) { + function t(e, r, a, o) { + (0, i.default)(this, t); + var u = (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, void 0, void 0, a, o)); + return u.reset(e, r), u.AES_CTR_set_options(r), delete u.padding, u.mode = "CTR", u.BLOCK_SIZE = 16, u + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e, t, r, n) { + return this.AES_reset(e, void 0, void 0), this.AES_CTR_set_options(t, r, n), this + } + }, { + key: "encrypt", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }, { + key: "decrypt", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }]), t + }(u.AES); + r.AES_CTR_Crypt = function (e) { + function t(e, r, a, o) { + (0, i.default)(this, t); + var u = (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o)); + return u.BLOCK_SIZE = 16, u + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e, t, r, n) { + return this.AES_reset(e, void 0, void 0), this.AES_CTR_set_options(t, r, n), this + } + }, { + key: "process", value: function (e) { + return this.AES_Encrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }]), t + }(c) + }, { + "../aes": 2, + "babel-runtime/core-js/object/get-prototype-of": 26, + "babel-runtime/helpers/classCallCheck": 32, + "babel-runtime/helpers/createClass": 33, + "babel-runtime/helpers/inherits": 34, + "babel-runtime/helpers/possibleConstructorReturn": 35 + }], + 8: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_CTR = void 0; + var n = e("../exports"), i = e("./ctr"); + + function a(e, t, r) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + if (void 0 === r) throw new SyntaxError("nonce required"); + return new i.AES_CTR(t, r, n._AES_heap_instance, n._AES_asm_instance).encrypt(e).result + } + + i.AES_CTR.encrypt = a, i.AES_CTR.decrypt = a, r.AES_CTR = i.AES_CTR + }, {"../exports": 10, "./ctr": 7}], + 9: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_ECB_Decrypt = r.AES_ECB_Encrypt = r.AES_ECB = void 0; + var n = f(e("babel-runtime/core-js/object/get-prototype-of")), + i = f(e("babel-runtime/helpers/classCallCheck")), a = f(e("babel-runtime/helpers/createClass")), + s = f(e("babel-runtime/helpers/possibleConstructorReturn")), o = f(e("babel-runtime/helpers/inherits")), + u = e("../aes"); + + function f(e) { + return e && e.__esModule ? e : {default: e} + } + + var c = r.AES_ECB = function (e) { + function t(e, r, a) { + (0, i.default)(this, t); + var o = (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, void 0, !1, r, a)); + return o.mode = "ECB", o.BLOCK_SIZE = 16, o + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "encrypt", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }, { + key: "decrypt", value: function (e) { + return this.AES_Decrypt_finish(e) + } + }]), t + }(u.AES); + r.AES_ECB_Encrypt = function (e) { + function t(e, r, a) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e) { + return this.AES_reset(e, null, !0) + } + }, { + key: "process", value: function (e) { + return this.AES_Encrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Encrypt_finish(e) + } + }]), t + }(c), r.AES_ECB_Decrypt = function (e) { + function t(e, r, a) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e) { + return this.AES_reset(e, null, !0) + } + }, { + key: "process", value: function (e) { + return this.AES_Decrypt_process(e) + } + }, { + key: "finish", value: function (e) { + return this.AES_Decrypt_finish(e) + } + }]), t + }(c) + }, { + "../aes": 2, + "babel-runtime/core-js/object/get-prototype-of": 26, + "babel-runtime/helpers/classCallCheck": 32, + "babel-runtime/helpers/createClass": 33, + "babel-runtime/helpers/inherits": 34, + "babel-runtime/helpers/possibleConstructorReturn": 35 + }], + 10: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r._AES_asm_instance = r._AES_heap_instance = void 0; + var n = e("./aes.asm"), i = r._AES_heap_instance = new Uint8Array(1048576); + r._AES_asm_instance = (0, n.AES_asm)(null, i.buffer) + }, {"./aes.asm": 1}], + 11: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_GCM_Decrypt = r.AES_GCM_Encrypt = r.AES_GCM = void 0; + var n = e("../exports"), i = e("./gcm"); + i.AES_GCM.encrypt = function (e, t, r, a, s) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + if (void 0 === r) throw new SyntaxError("nonce required"); + return new i.AES_GCM(t, r, a, s, n._AES_heap_instance, n._AES_asm_instance).encrypt(e).result + }, i.AES_GCM.decrypt = function (e, t, r, a, s) { + if (void 0 === e) throw new SyntaxError("data required"); + if (void 0 === t) throw new SyntaxError("key required"); + if (void 0 === r) throw new SyntaxError("nonce required"); + return new i.AES_GCM(t, r, a, s, n._AES_heap_instance, n._AES_asm_instance).decrypt(e).result + }, r.AES_GCM = i.AES_GCM, r.AES_GCM_Encrypt = i.AES_GCM_Encrypt, r.AES_GCM_Decrypt = i.AES_GCM_Decrypt + }, {"../exports": 10, "./gcm": 12}], + 12: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.AES_GCM_Decrypt = r.AES_GCM_Encrypt = r.AES_GCM = void 0; + var n = l(e("babel-runtime/core-js/object/get-prototype-of")), + i = l(e("babel-runtime/helpers/classCallCheck")), a = l(e("babel-runtime/helpers/createClass")), + s = l(e("babel-runtime/helpers/possibleConstructorReturn")), o = l(e("babel-runtime/helpers/inherits")), + u = e("../../errors"), f = e("../../utils"), c = e("../aes"), d = e("../aes.asm"); + + function l(e) { + return e && e.__esModule ? e : {default: e} + } + + var h = r.AES_GCM = function (e) { + function t(e, r, a, o, u, f) { + (0, i.default)(this, t); + var c = (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, void 0, !1, u, f)); + return c.nonce = null, c.adata = null, c.iv = null, c.counter = 1, c.tagSize = 16, c.mode = "GCM", c.BLOCK_SIZE = 16, c.reset(e, o, r, a), c + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "reset", value: function (e, t, r, n) { + return this.AES_GCM_reset(e, t, r, n) + } + }, { + key: "encrypt", value: function (e) { + return this.AES_GCM_encrypt(e) + } + }, { + key: "decrypt", value: function (e) { + return this.AES_GCM_decrypt(e) + } + }, { + key: "AES_GCM_Encrypt_process", value: function (e) { + if (!(0, f.is_bytes)(e)) throw new TypeError("data isn't of expected type"); + var t = 0, r = e.length || 0, n = this.asm, i = this.heap, a = this.counter, s = this.pos, + o = this.len, u = 0, c = o + r & -16, l = 0; + if ((a - 1 << 4) + o + r > 68719476704) throw new RangeError("counter overflow"); + for (var h = new Uint8Array(c); r > 0;) o += l = (0, f._heap_write)(i, s + o, e, t, r), t += l, r -= l, l = n.cipher(d.AES_asm.ENC.CTR, d.AES_asm.HEAP_DATA + s, o), (l = n.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA + s, l)) && h.set(i.subarray(s, s + l), u), a += l >>> 4, u += l, l < o ? (s += l, o -= l) : (s = 0, o = 0); + return this.result = h, this.counter = a, this.pos = s, this.len = o, this + } + }, { + key: "AES_GCM_Encrypt_finish", value: function () { + var e = this.asm, t = this.heap, r = this.counter, n = this.tagSize, i = this.adata, + a = this.pos, s = this.len, o = new Uint8Array(s + n); + e.cipher(d.AES_asm.ENC.CTR, d.AES_asm.HEAP_DATA + a, s + 15 & -16), s && o.set(t.subarray(a, a + s)); + for (var u = s; 15 & u; u++) t[a + u] = 0; + e.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA + a, u); + var f = null !== i ? i.length : 0, c = (r - 1 << 4) + s; + return t[0] = t[1] = t[2] = 0, t[3] = f >>> 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] = c >>> 29, t[12] = c >>> 21 & 255, t[13] = c >>> 13 & 255, t[14] = c >>> 5 & 255, t[15] = c << 3 & 255, e.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA, 16), e.get_iv(d.AES_asm.HEAP_DATA), e.set_counter(0, 0, 0, this.gamma0), e.cipher(d.AES_asm.ENC.CTR, d.AES_asm.HEAP_DATA, 16), o.set(t.subarray(0, n), s), this.result = o, this.counter = 1, this.pos = 0, this.len = 0, this + } + }, { + key: "AES_GCM_Decrypt_process", value: function (e) { + if (!(0, f.is_bytes)(e)) throw new TypeError("data isn't of expected type"); + var t = 0, r = e.length || 0, n = this.asm, i = this.heap, a = this.counter, s = this.tagSize, + o = this.pos, u = this.len, c = 0, l = u + r > s ? u + r - s & -16 : 0, h = u + r - l, + p = 0; + if ((a - 1 << 4) + u + r > 68719476704) throw new RangeError("counter overflow"); + for (var y = new Uint8Array(l); r > h;) u += p = (0, f._heap_write)(i, o + u, e, t, r - h), t += p, r -= p, p = n.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA + o, p), (p = n.cipher(d.AES_asm.DEC.CTR, d.AES_asm.HEAP_DATA + o, p)) && y.set(i.subarray(o, o + p), c), a += p >>> 4, c += p, o = 0, u = 0; + return r > 0 && (u += (0, f._heap_write)(i, 0, e, t, r)), this.result = y, this.counter = a, this.pos = o, this.len = u, this + } + }, { + key: "AES_GCM_Decrypt_finish", value: function () { + var e = this.asm, t = this.heap, r = this.tagSize, n = this.adata, i = this.counter, + a = this.pos, s = this.len, o = s - r; + if (s < r) throw new u.IllegalStateError("authentication tag not found"); + for (var f = new Uint8Array(o), c = new Uint8Array(t.subarray(a + o, a + s)), l = o; 15 & l; l++) t[a + l] = 0; + e.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA + a, l), e.cipher(d.AES_asm.DEC.CTR, d.AES_asm.HEAP_DATA + a, l), o && f.set(t.subarray(a, a + o)); + var h = null !== n ? n.length : 0, p = (i - 1 << 4) + s - r; + t[0] = t[1] = t[2] = 0, t[3] = h >>> 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(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA, 16), e.get_iv(d.AES_asm.HEAP_DATA), e.set_counter(0, 0, 0, this.gamma0), e.cipher(d.AES_asm.ENC.CTR, d.AES_asm.HEAP_DATA, 16); + var y = 0; + for (l = 0; l < r; ++l) y |= c[l] ^ t[l]; + if (y) throw new u.SecurityError("data integrity check failed"); + return this.result = f, this.counter = 1, this.pos = 0, this.len = 0, this + } + }, { + key: "AES_GCM_decrypt", value: function (e) { + var t = this.AES_GCM_Decrypt_process(e).result, r = this.AES_GCM_Decrypt_finish().result, + n = new Uint8Array(t.length + r.length); + return t.length && n.set(t), r.length && n.set(r, t.length), this.result = n, this + } + }, { + key: "AES_GCM_encrypt", value: function (e) { + var t = this.AES_GCM_Encrypt_process(e).result, r = this.AES_GCM_Encrypt_finish().result, + n = new Uint8Array(t.length + r.length); + return t.length && n.set(t), r.length && n.set(r, t.length), this.result = n, this + } + }, { + key: "AES_GCM_reset", value: function (e, t, r, n, i, a) { + this.AES_reset(e, void 0, !1); + var s = this.asm, o = this.heap; + if (s.gcm_init(), void 0 !== (t = t)) { + if (!(0, f.is_number)(t)) throw new TypeError("tagSize must be a number"); + if (t < 4 || t > 16) throw new u.IllegalArgumentError("illegal tagSize value"); + this.tagSize = t + } else this.tagSize = 16; + if (void 0 === r) throw new Error("nonce is required"); + if (!(0, f.is_bytes)(r)) throw new TypeError("unexpected nonce type"); + this.nonce = r; + var c = r.length || 0, l = new Uint8Array(16); + 12 !== c ? (this._gcm_mac_process(r), o[0] = o[1] = o[2] = o[3] = o[4] = o[5] = o[6] = o[7] = o[8] = o[9] = o[10] = 0, o[11] = c >>> 29, o[12] = c >>> 21 & 255, o[13] = c >>> 13 & 255, o[14] = c >>> 5 & 255, o[15] = c << 3 & 255, s.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA, 16), s.get_iv(d.AES_asm.HEAP_DATA), s.set_iv(), l.set(o.subarray(0, 16))) : (l.set(r), l[15] = 1); + var h = new DataView(l.buffer); + if (this.gamma0 = h.getUint32(12), s.set_nonce(h.getUint32(0), h.getUint32(4), h.getUint32(8), 0), s.set_mask(0, 0, 0, 4294967295), void 0 !== n && null !== n) { + if (!(0, f.is_bytes)(n)) throw new TypeError("unexpected adata type"); + if (n.length > 68719476704) throw new u.IllegalArgumentError("illegal adata length"); + n.length ? (this.adata = n, this._gcm_mac_process(n)) : this.adata = null + } else this.adata = null; + if (void 0 !== i) { + if (!(0, f.is_number)(i)) throw new TypeError("counter must be a number"); + if (i < 1 || i > 4294967295) throw new RangeError("counter must be a positive 32-bit integer"); + this.counter = i, s.set_counter(0, 0, 0, this.gamma0 + i | 0) + } else this.counter = 1, s.set_counter(0, 0, 0, this.gamma0 + 1 | 0); + if (void 0 !== a) { + if (!(0, f.is_number)(a)) throw new TypeError("iv must be a number"); + this.iv = a, this.AES_set_iv(a) + } + return this + } + }, { + key: "_gcm_mac_process", value: function (e) { + for (var t = this.heap, r = this.asm, n = 0, i = e.length || 0, a = 0; i > 0;) { + for (n += a = (0, f._heap_write)(t, 0, e, n, i), i -= a; 15 & a;) t[a++] = 0; + r.mac(d.AES_asm.MAC.GCM, d.AES_asm.HEAP_DATA, a) + } + } + }]), t + }(c.AES); + r.AES_GCM_Encrypt = function (e) { + function t(e, r, a, o, u, f) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o, u, f)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "process", value: function (e) { + return this.AES_GCM_Encrypt_process(e) + } + }, { + key: "finish", value: function () { + return this.AES_GCM_Encrypt_finish() + } + }]), t + }(h), r.AES_GCM_Decrypt = function (e) { + function t(e, r, a, o, u, f) { + return (0, i.default)(this, t), (0, s.default)(this, (t.__proto__ || (0, n.default)(t)).call(this, e, r, a, o, u, f)) + } + + return (0, o.default)(t, e), (0, a.default)(t, [{ + key: "process", value: function (e) { + return this.AES_GCM_Decrypt_process(e) + } + }, { + key: "finish", value: function () { + return this.AES_GCM_Decrypt_finish() + } + }]), t + }(h) + }, { + "../../errors": 13, + "../../utils": 18, + "../aes": 2, + "../aes.asm": 1, + "babel-runtime/core-js/object/get-prototype-of": 26, + "babel-runtime/helpers/classCallCheck": 32, + "babel-runtime/helpers/createClass": 33, + "babel-runtime/helpers/inherits": 34, + "babel-runtime/helpers/possibleConstructorReturn": 35 + }], + 13: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("babel-runtime/core-js/object/create"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s() { + var e = Error.apply(this, arguments); + this.message = e.message, this.stack = e.stack + } + + function o() { + var e = Error.apply(this, arguments); + this.message = e.message, this.stack = e.stack + } + + function u() { + var e = Error.apply(this, arguments); + this.message = e.message, this.stack = e.stack + } + + r.IllegalStateError = s, r.IllegalArgumentError = o, r.SecurityError = u, s.prototype = (0, a.default)(Error.prototype, {name: {value: "IllegalStateError"}}), o.prototype = (0, a.default)(Error.prototype, {name: {value: "IllegalArgumentError"}}), u.prototype = (0, a.default)(Error.prototype, {name: {value: "SecurityError"}}) + }, {"babel-runtime/core-js/object/create": 23}], + 14: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.hash_reset = function () { + return this.result = null, this.pos = 0, this.len = 0, this.asm.reset(), this + }, r.hash_process = function (e) { + if (null !== this.result) throw new i.IllegalStateError("state must be reset before processing new data"); + (0, n.is_string)(e) && (e = (0, n.string_to_bytes)(e)); + (0, n.is_buffer)(e) && (e = new Uint8Array(e)); + if (!(0, n.is_bytes)(e)) throw new TypeError("data isn't of expected type"); + var t = this.asm, r = this.heap, a = this.pos, s = this.len, o = 0, u = e.length, f = 0; + for (; u > 0;) f = (0, n._heap_write)(r, a + s, e, o, u), s += f, o += f, u -= f, f = t.process(a, s), a += f, (s -= f) || (a = 0); + return this.pos = a, this.len = s, this + }, r.hash_finish = function () { + if (null !== this.result) throw new i.IllegalStateError("state must be reset before processing new data"); + return 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 + }; + var n = e("../utils"), i = e("../errors") + }, {"../errors": 13, "../utils": 18}], + 15: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.SHA256 = void 0; + var n = e("./sha256"), i = e("../../utils"); + + function a(e) { + if (void 0 === e) throw new SyntaxError("data required"); + return (0, n.get_sha256_instance)().reset().process(e).finish().result + } + + var s = r.SHA256 = n.sha256_constructor; + s.bytes = a, s.hex = function (e) { + var t = a(e); + return (0, i.bytes_to_hex)(t) + }, s.base64 = function (e) { + var t = a(e); + return (0, i.bytes_to_base64)(t) + } + }, {"../../utils": 18, "./sha256": 17}], + 16: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.sha256_asm = function (e, t, r) { + "use asm"; + var n = 0, i = 0, a = 0, s = 0, o = 0, u = 0, f = 0, c = 0, d = 0, l = 0, h = 0, p = 0, y = 0, b = 0, + m = 0, g = 0, v = 0, _ = 0, w = 0, k = 0, A = 0, x = 0, S = 0, E = 0, M = 0, C = 0, + j = new e.Uint8Array(r); + + function P(e, t, r, d, l, h, p, y, b, m, g, v, _, w, k, A) { + e = e | 0; + t = t | 0; + r = r | 0; + d = d | 0; + l = l | 0; + h = h | 0; + p = p | 0; + y = y | 0; + b = b | 0; + m = m | 0; + g = g | 0; + v = v | 0; + _ = _ | 0; + w = w | 0; + k = k | 0; + A = A | 0; + var x = 0, S = 0, E = 0, M = 0, C = 0, j = 0, P = 0, B = 0; + x = n; + S = i; + E = a; + M = s; + C = o; + j = u; + P = f; + B = c; + B = e + B + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0x428a2f98 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + P = t + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0x71374491 | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (B >>> 2 ^ B >>> 13 ^ B >>> 22 ^ B << 30 ^ B << 19 ^ B << 10) | 0; + j = r + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0xb5c0fbcf | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 10) | 0; + C = d + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0xe9b5dba5 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 10) | 0; + M = l + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0x3956c25b | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 10) | 0; + E = h + E + (B >>> 6 ^ B >>> 11 ^ B >>> 25 ^ B << 26 ^ B << 21 ^ B << 7) + (S ^ B & (x ^ S)) + 0x59f111f1 | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + S = p + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0x923f82a4 | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + x = y + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0xab1c5ed5 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (S ^ E)) + (S >>> 2 ^ S >>> 13 ^ S >>> 22 ^ S << 30 ^ S << 19 ^ S << 10) | 0; + B = b + B + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0xd807aa98 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + P = m + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0x12835b01 | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (B >>> 2 ^ B >>> 13 ^ B >>> 22 ^ B << 30 ^ B << 19 ^ B << 10) | 0; + j = g + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0x243185be | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 10) | 0; + C = v + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0x550c7dc3 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 10) | 0; + M = _ + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0x72be5d74 | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 10) | 0; + E = w + E + (B >>> 6 ^ B >>> 11 ^ B >>> 25 ^ B << 26 ^ B << 21 ^ B << 7) + (S ^ B & (x ^ S)) + 0x80deb1fe | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + S = k + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0x9bdc06a7 | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + x = A + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0xc19bf174 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (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 + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0xe49b69c1 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + t = (r >>> 7 ^ r >>> 18 ^ r >>> 3 ^ r << 25 ^ r << 14) + (A >>> 17 ^ A >>> 19 ^ A >>> 10 ^ A << 15 ^ A << 13) + t + g | 0; + P = t + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0xefbe4786 | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (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 + v | 0; + j = r + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0x0fc19dc6 | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 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; + C = d + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0x240ca1cc | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 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; + M = l + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0x2de92c6f | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 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 & (x ^ S)) + 0x4a7484aa | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + p = (y >>> 7 ^ y >>> 18 ^ y >>> 3 ^ y << 25 ^ y << 14) + (l >>> 17 ^ l >>> 19 ^ l >>> 10 ^ l << 15 ^ l << 13) + p + A | 0; + S = p + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0x5cb0a9dc | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + y = (b >>> 7 ^ b >>> 18 ^ b >>> 3 ^ b << 25 ^ b << 14) + (h >>> 17 ^ h >>> 19 ^ h >>> 10 ^ h << 15 ^ h << 13) + y + e | 0; + x = y + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0x76f988da | 0; + C = C + x | 0; + x = x + (S & E ^ M & (S ^ E)) + (S >>> 2 ^ S >>> 13 ^ S >>> 22 ^ S << 30 ^ S << 19 ^ S << 10) | 0; + b = (m >>> 7 ^ m >>> 18 ^ m >>> 3 ^ m << 25 ^ m << 14) + (p >>> 17 ^ p >>> 19 ^ p >>> 10 ^ p << 15 ^ p << 13) + b + t | 0; + B = b + B + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0x983e5152 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + m = (g >>> 7 ^ g >>> 18 ^ g >>> 3 ^ g << 25 ^ g << 14) + (y >>> 17 ^ y >>> 19 ^ y >>> 10 ^ y << 15 ^ y << 13) + m + r | 0; + P = m + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0xa831c66d | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (B >>> 2 ^ B >>> 13 ^ B >>> 22 ^ B << 30 ^ B << 19 ^ B << 10) | 0; + g = (v >>> 7 ^ v >>> 18 ^ v >>> 3 ^ v << 25 ^ v << 14) + (b >>> 17 ^ b >>> 19 ^ b >>> 10 ^ b << 15 ^ b << 13) + g + d | 0; + j = g + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0xb00327c8 | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 10) | 0; + v = (_ >>> 7 ^ _ >>> 18 ^ _ >>> 3 ^ _ << 25 ^ _ << 14) + (m >>> 17 ^ m >>> 19 ^ m >>> 10 ^ m << 15 ^ m << 13) + v + l | 0; + C = v + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0xbf597fc7 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 10) | 0; + _ = (w >>> 7 ^ w >>> 18 ^ w >>> 3 ^ w << 25 ^ w << 14) + (g >>> 17 ^ g >>> 19 ^ g >>> 10 ^ g << 15 ^ g << 13) + _ + h | 0; + M = _ + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0xc6e00bf3 | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 10) | 0; + w = (k >>> 7 ^ k >>> 18 ^ k >>> 3 ^ k << 25 ^ k << 14) + (v >>> 17 ^ v >>> 19 ^ v >>> 10 ^ v << 15 ^ v << 13) + w + p | 0; + E = w + E + (B >>> 6 ^ B >>> 11 ^ B >>> 25 ^ B << 26 ^ B << 21 ^ B << 7) + (S ^ B & (x ^ S)) + 0xd5a79147 | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + k = (A >>> 7 ^ A >>> 18 ^ A >>> 3 ^ A << 25 ^ A << 14) + (_ >>> 17 ^ _ >>> 19 ^ _ >>> 10 ^ _ << 15 ^ _ << 13) + k + y | 0; + S = k + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0x06ca6351 | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + A = (e >>> 7 ^ e >>> 18 ^ e >>> 3 ^ e << 25 ^ e << 14) + (w >>> 17 ^ w >>> 19 ^ w >>> 10 ^ w << 15 ^ w << 13) + A + b | 0; + x = A + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0x14292967 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (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 + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0x27b70a85 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + t = (r >>> 7 ^ r >>> 18 ^ r >>> 3 ^ r << 25 ^ r << 14) + (A >>> 17 ^ A >>> 19 ^ A >>> 10 ^ A << 15 ^ A << 13) + t + g | 0; + P = t + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0x2e1b2138 | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (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 + v | 0; + j = r + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0x4d2c6dfc | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 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; + C = d + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0x53380d13 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 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; + M = l + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0x650a7354 | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 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 & (x ^ S)) + 0x766a0abb | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + p = (y >>> 7 ^ y >>> 18 ^ y >>> 3 ^ y << 25 ^ y << 14) + (l >>> 17 ^ l >>> 19 ^ l >>> 10 ^ l << 15 ^ l << 13) + p + A | 0; + S = p + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0x81c2c92e | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + y = (b >>> 7 ^ b >>> 18 ^ b >>> 3 ^ b << 25 ^ b << 14) + (h >>> 17 ^ h >>> 19 ^ h >>> 10 ^ h << 15 ^ h << 13) + y + e | 0; + x = y + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0x92722c85 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (S ^ E)) + (S >>> 2 ^ S >>> 13 ^ S >>> 22 ^ S << 30 ^ S << 19 ^ S << 10) | 0; + b = (m >>> 7 ^ m >>> 18 ^ m >>> 3 ^ m << 25 ^ m << 14) + (p >>> 17 ^ p >>> 19 ^ p >>> 10 ^ p << 15 ^ p << 13) + b + t | 0; + B = b + B + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0xa2bfe8a1 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + m = (g >>> 7 ^ g >>> 18 ^ g >>> 3 ^ g << 25 ^ g << 14) + (y >>> 17 ^ y >>> 19 ^ y >>> 10 ^ y << 15 ^ y << 13) + m + r | 0; + P = m + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0xa81a664b | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (B >>> 2 ^ B >>> 13 ^ B >>> 22 ^ B << 30 ^ B << 19 ^ B << 10) | 0; + g = (v >>> 7 ^ v >>> 18 ^ v >>> 3 ^ v << 25 ^ v << 14) + (b >>> 17 ^ b >>> 19 ^ b >>> 10 ^ b << 15 ^ b << 13) + g + d | 0; + j = g + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0xc24b8b70 | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 10) | 0; + v = (_ >>> 7 ^ _ >>> 18 ^ _ >>> 3 ^ _ << 25 ^ _ << 14) + (m >>> 17 ^ m >>> 19 ^ m >>> 10 ^ m << 15 ^ m << 13) + v + l | 0; + C = v + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0xc76c51a3 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 10) | 0; + _ = (w >>> 7 ^ w >>> 18 ^ w >>> 3 ^ w << 25 ^ w << 14) + (g >>> 17 ^ g >>> 19 ^ g >>> 10 ^ g << 15 ^ g << 13) + _ + h | 0; + M = _ + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0xd192e819 | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 10) | 0; + w = (k >>> 7 ^ k >>> 18 ^ k >>> 3 ^ k << 25 ^ k << 14) + (v >>> 17 ^ v >>> 19 ^ v >>> 10 ^ v << 15 ^ v << 13) + w + p | 0; + E = w + E + (B >>> 6 ^ B >>> 11 ^ B >>> 25 ^ B << 26 ^ B << 21 ^ B << 7) + (S ^ B & (x ^ S)) + 0xd6990624 | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + k = (A >>> 7 ^ A >>> 18 ^ A >>> 3 ^ A << 25 ^ A << 14) + (_ >>> 17 ^ _ >>> 19 ^ _ >>> 10 ^ _ << 15 ^ _ << 13) + k + y | 0; + S = k + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0xf40e3585 | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + A = (e >>> 7 ^ e >>> 18 ^ e >>> 3 ^ e << 25 ^ e << 14) + (w >>> 17 ^ w >>> 19 ^ w >>> 10 ^ w << 15 ^ w << 13) + A + b | 0; + x = A + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0x106aa070 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (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 + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0x19a4c116 | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + t = (r >>> 7 ^ r >>> 18 ^ r >>> 3 ^ r << 25 ^ r << 14) + (A >>> 17 ^ A >>> 19 ^ A >>> 10 ^ A << 15 ^ A << 13) + t + g | 0; + P = t + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0x1e376c08 | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (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 + v | 0; + j = r + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0x2748774c | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 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; + C = d + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0x34b0bcb5 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 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; + M = l + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0x391c0cb3 | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 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 & (x ^ S)) + 0x4ed8aa4a | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + p = (y >>> 7 ^ y >>> 18 ^ y >>> 3 ^ y << 25 ^ y << 14) + (l >>> 17 ^ l >>> 19 ^ l >>> 10 ^ l << 15 ^ l << 13) + p + A | 0; + S = p + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0x5b9cca4f | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + y = (b >>> 7 ^ b >>> 18 ^ b >>> 3 ^ b << 25 ^ b << 14) + (h >>> 17 ^ h >>> 19 ^ h >>> 10 ^ h << 15 ^ h << 13) + y + e | 0; + x = y + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0x682e6ff3 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (S ^ E)) + (S >>> 2 ^ S >>> 13 ^ S >>> 22 ^ S << 30 ^ S << 19 ^ S << 10) | 0; + b = (m >>> 7 ^ m >>> 18 ^ m >>> 3 ^ m << 25 ^ m << 14) + (p >>> 17 ^ p >>> 19 ^ p >>> 10 ^ p << 15 ^ p << 13) + b + t | 0; + B = b + B + (C >>> 6 ^ C >>> 11 ^ C >>> 25 ^ C << 26 ^ C << 21 ^ C << 7) + (P ^ C & (j ^ P)) + 0x748f82ee | 0; + M = M + B | 0; + B = B + (x & S ^ E & (x ^ S)) + (x >>> 2 ^ x >>> 13 ^ x >>> 22 ^ x << 30 ^ x << 19 ^ x << 10) | 0; + m = (g >>> 7 ^ g >>> 18 ^ g >>> 3 ^ g << 25 ^ g << 14) + (y >>> 17 ^ y >>> 19 ^ y >>> 10 ^ y << 15 ^ y << 13) + m + r | 0; + P = m + P + (M >>> 6 ^ M >>> 11 ^ M >>> 25 ^ M << 26 ^ M << 21 ^ M << 7) + (j ^ M & (C ^ j)) + 0x78a5636f | 0; + E = E + P | 0; + P = P + (B & x ^ S & (B ^ x)) + (B >>> 2 ^ B >>> 13 ^ B >>> 22 ^ B << 30 ^ B << 19 ^ B << 10) | 0; + g = (v >>> 7 ^ v >>> 18 ^ v >>> 3 ^ v << 25 ^ v << 14) + (b >>> 17 ^ b >>> 19 ^ b >>> 10 ^ b << 15 ^ b << 13) + g + d | 0; + j = g + j + (E >>> 6 ^ E >>> 11 ^ E >>> 25 ^ E << 26 ^ E << 21 ^ E << 7) + (C ^ E & (M ^ C)) + 0x84c87814 | 0; + S = S + j | 0; + j = j + (P & B ^ x & (P ^ B)) + (P >>> 2 ^ P >>> 13 ^ P >>> 22 ^ P << 30 ^ P << 19 ^ P << 10) | 0; + v = (_ >>> 7 ^ _ >>> 18 ^ _ >>> 3 ^ _ << 25 ^ _ << 14) + (m >>> 17 ^ m >>> 19 ^ m >>> 10 ^ m << 15 ^ m << 13) + v + l | 0; + C = v + C + (S >>> 6 ^ S >>> 11 ^ S >>> 25 ^ S << 26 ^ S << 21 ^ S << 7) + (M ^ S & (E ^ M)) + 0x8cc70208 | 0; + x = x + C | 0; + C = C + (j & P ^ B & (j ^ P)) + (j >>> 2 ^ j >>> 13 ^ j >>> 22 ^ j << 30 ^ j << 19 ^ j << 10) | 0; + _ = (w >>> 7 ^ w >>> 18 ^ w >>> 3 ^ w << 25 ^ w << 14) + (g >>> 17 ^ g >>> 19 ^ g >>> 10 ^ g << 15 ^ g << 13) + _ + h | 0; + M = _ + M + (x >>> 6 ^ x >>> 11 ^ x >>> 25 ^ x << 26 ^ x << 21 ^ x << 7) + (E ^ x & (S ^ E)) + 0x90befffa | 0; + B = B + M | 0; + M = M + (C & j ^ P & (C ^ j)) + (C >>> 2 ^ C >>> 13 ^ C >>> 22 ^ C << 30 ^ C << 19 ^ C << 10) | 0; + w = (k >>> 7 ^ k >>> 18 ^ k >>> 3 ^ k << 25 ^ k << 14) + (v >>> 17 ^ v >>> 19 ^ v >>> 10 ^ v << 15 ^ v << 13) + w + p | 0; + E = w + E + (B >>> 6 ^ B >>> 11 ^ B >>> 25 ^ B << 26 ^ B << 21 ^ B << 7) + (S ^ B & (x ^ S)) + 0xa4506ceb | 0; + P = P + E | 0; + E = E + (M & C ^ j & (M ^ C)) + (M >>> 2 ^ M >>> 13 ^ M >>> 22 ^ M << 30 ^ M << 19 ^ M << 10) | 0; + k = (A >>> 7 ^ A >>> 18 ^ A >>> 3 ^ A << 25 ^ A << 14) + (_ >>> 17 ^ _ >>> 19 ^ _ >>> 10 ^ _ << 15 ^ _ << 13) + k + y | 0; + S = k + S + (P >>> 6 ^ P >>> 11 ^ P >>> 25 ^ P << 26 ^ P << 21 ^ P << 7) + (x ^ P & (B ^ x)) + 0xbef9a3f7 | 0; + j = j + S | 0; + S = S + (E & M ^ C & (E ^ M)) + (E >>> 2 ^ E >>> 13 ^ E >>> 22 ^ E << 30 ^ E << 19 ^ E << 10) | 0; + A = (e >>> 7 ^ e >>> 18 ^ e >>> 3 ^ e << 25 ^ e << 14) + (w >>> 17 ^ w >>> 19 ^ w >>> 10 ^ w << 15 ^ w << 13) + A + b | 0; + x = A + x + (j >>> 6 ^ j >>> 11 ^ j >>> 25 ^ j << 26 ^ j << 21 ^ j << 7) + (B ^ j & (P ^ B)) + 0xc67178f2 | 0; + C = C + x | 0; + x = x + (S & E ^ M & (S ^ E)) + (S >>> 2 ^ S >>> 13 ^ S >>> 22 ^ S << 30 ^ S << 19 ^ S << 10) | 0; + n = n + x | 0; + i = i + S | 0; + a = a + E | 0; + s = s + M | 0; + o = o + C | 0; + u = u + j | 0; + f = f + P | 0; + c = c + B | 0 + } + + function B(e) { + e = e | 0; + P(j[e | 0] << 24 | j[e | 1] << 16 | j[e | 2] << 8 | j[e | 3], j[e | 4] << 24 | j[e | 5] << 16 | j[e | 6] << 8 | j[e | 7], j[e | 8] << 24 | j[e | 9] << 16 | j[e | 10] << 8 | j[e | 11], j[e | 12] << 24 | j[e | 13] << 16 | j[e | 14] << 8 | j[e | 15], j[e | 16] << 24 | j[e | 17] << 16 | j[e | 18] << 8 | j[e | 19], j[e | 20] << 24 | j[e | 21] << 16 | j[e | 22] << 8 | j[e | 23], j[e | 24] << 24 | j[e | 25] << 16 | j[e | 26] << 8 | j[e | 27], j[e | 28] << 24 | j[e | 29] << 16 | j[e | 30] << 8 | j[e | 31], j[e | 32] << 24 | j[e | 33] << 16 | j[e | 34] << 8 | j[e | 35], j[e | 36] << 24 | j[e | 37] << 16 | j[e | 38] << 8 | j[e | 39], j[e | 40] << 24 | j[e | 41] << 16 | j[e | 42] << 8 | j[e | 43], j[e | 44] << 24 | j[e | 45] << 16 | j[e | 46] << 8 | j[e | 47], j[e | 48] << 24 | j[e | 49] << 16 | j[e | 50] << 8 | j[e | 51], j[e | 52] << 24 | j[e | 53] << 16 | j[e | 54] << 8 | j[e | 55], j[e | 56] << 24 | j[e | 57] << 16 | j[e | 58] << 8 | j[e | 59], j[e | 60] << 24 | j[e | 61] << 16 | j[e | 62] << 8 | j[e | 63]) + } + + function U(e) { + e = e | 0; + j[e | 0] = n >>> 24; + j[e | 1] = n >>> 16 & 255; + j[e | 2] = n >>> 8 & 255; + j[e | 3] = n & 255; + j[e | 4] = i >>> 24; + j[e | 5] = i >>> 16 & 255; + j[e | 6] = i >>> 8 & 255; + j[e | 7] = i & 255; + j[e | 8] = a >>> 24; + j[e | 9] = a >>> 16 & 255; + j[e | 10] = a >>> 8 & 255; + j[e | 11] = a & 255; + j[e | 12] = s >>> 24; + j[e | 13] = s >>> 16 & 255; + j[e | 14] = s >>> 8 & 255; + j[e | 15] = s & 255; + j[e | 16] = o >>> 24; + j[e | 17] = o >>> 16 & 255; + j[e | 18] = o >>> 8 & 255; + j[e | 19] = o & 255; + j[e | 20] = u >>> 24; + j[e | 21] = u >>> 16 & 255; + j[e | 22] = u >>> 8 & 255; + j[e | 23] = u & 255; + j[e | 24] = f >>> 24; + j[e | 25] = f >>> 16 & 255; + j[e | 26] = f >>> 8 & 255; + j[e | 27] = f & 255; + j[e | 28] = c >>> 24; + j[e | 29] = c >>> 16 & 255; + j[e | 30] = c >>> 8 & 255; + j[e | 31] = c & 255 + } + + function K() { + n = 0x6a09e667; + i = 0xbb67ae85; + a = 0x3c6ef372; + s = 0xa54ff53a; + o = 0x510e527f; + u = 0x9b05688c; + f = 0x1f83d9ab; + c = 0x5be0cd19; + d = l = 0 + } + + function I(e, t, r, h, p, y, b, m, g, v) { + e = e | 0; + t = t | 0; + r = r | 0; + h = h | 0; + p = p | 0; + y = y | 0; + b = b | 0; + m = m | 0; + g = g | 0; + v = v | 0; + n = e; + i = t; + a = r; + s = h; + o = p; + u = y; + f = b; + c = m; + d = g; + l = v + } + + function T(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 < r >>> 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, i = 0; + if (e & 63) return -1; + if (~r) if (r & 31) return -1; + if ((t | 0) >= 64) { + n = T(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 < t >>> 0) l = l + 1 | 0; + j[e | t] = 0x80; + if ((t | 0) >= 56) { + for (i = t + 1 | 0; (i | 0) < 64; i = i + 1 | 0) { + j[e | i] = 0x00 + } + B(e); + t = 0; + j[e | 0] = 0 + } + for (i = t + 1 | 0; (i | 0) < 59; i = i + 1 | 0) { + j[e | i] = 0 + } + j[e | 56] = l >>> 21 & 255; + j[e | 57] = l >>> 13 & 255; + j[e | 58] = l >>> 5 & 255; + j[e | 59] = l << 3 & 255 | d >>> 29; + j[e | 60] = d >>> 21 & 255; + j[e | 61] = d >>> 13 & 255; + j[e | 62] = d >>> 5 & 255; + j[e | 63] = d << 3 & 255; + B(e); + if (~r) U(r); + return n | 0 + } + + function R() { + n = h; + i = p; + a = y; + s = b; + o = m; + u = g; + f = v; + c = _; + d = 64; + l = 0 + } + + function D() { + n = w; + i = k; + a = A; + s = x; + o = S; + u = E; + f = M; + c = C; + d = 64; + l = 0 + } + + function z(e, t, r, j, B, U, I, T, O, R, D, z, L, F, N, q) { + e = e | 0; + t = t | 0; + r = r | 0; + j = j | 0; + B = B | 0; + U = U | 0; + I = I | 0; + T = T | 0; + O = O | 0; + R = R | 0; + D = D | 0; + z = z | 0; + L = L | 0; + F = F | 0; + N = N | 0; + q = q | 0; + K(); + P(e ^ 0x5c5c5c5c, t ^ 0x5c5c5c5c, r ^ 0x5c5c5c5c, j ^ 0x5c5c5c5c, B ^ 0x5c5c5c5c, U ^ 0x5c5c5c5c, I ^ 0x5c5c5c5c, T ^ 0x5c5c5c5c, O ^ 0x5c5c5c5c, R ^ 0x5c5c5c5c, D ^ 0x5c5c5c5c, z ^ 0x5c5c5c5c, L ^ 0x5c5c5c5c, F ^ 0x5c5c5c5c, N ^ 0x5c5c5c5c, q ^ 0x5c5c5c5c); + w = n; + k = i; + A = a; + x = s; + S = o; + E = u; + M = f; + C = c; + K(); + P(e ^ 0x36363636, t ^ 0x36363636, r ^ 0x36363636, j ^ 0x36363636, B ^ 0x36363636, U ^ 0x36363636, I ^ 0x36363636, T ^ 0x36363636, O ^ 0x36363636, R ^ 0x36363636, D ^ 0x36363636, z ^ 0x36363636, L ^ 0x36363636, F ^ 0x36363636, N ^ 0x36363636, q ^ 0x36363636); + h = n; + p = i; + y = a; + b = s; + m = o; + g = u; + v = f; + _ = c; + d = 64; + l = 0 + } + + function L(e, t, r) { + e = e | 0; + t = t | 0; + r = r | 0; + var d = 0, l = 0, h = 0, p = 0, y = 0, b = 0, m = 0, g = 0, v = 0; + if (e & 63) return -1; + if (~r) if (r & 31) return -1; + v = O(e, t, -1) | 0; + d = n, l = i, h = a, p = s, y = o, b = u, m = f, g = c; + D(); + P(d, l, h, p, y, b, m, g, 0x80000000, 0, 0, 0, 0, 0, 0, 768); + if (~r) U(r); + return v | 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, y = 0, b = 0, m = 0, g = 0, v = 0, _ = 0, w = 0, k = 0, A = 0, x = 0, S = 0, + E = 0, M = 0, C = 0; + if (e & 63) return -1; + if (~l) if (l & 31) return -1; + j[e + t | 0] = r >>> 24; + j[e + t + 1 | 0] = r >>> 16 & 255; + j[e + t + 2 | 0] = r >>> 8 & 255; + j[e + t + 3 | 0] = r & 255; + L(e, t + 4 | 0, -1) | 0; + h = w = n, p = k = i, y = A = a, b = x = s, m = S = o, g = E = u, v = M = f, _ = C = c; + d = d - 1 | 0; + while ((d | 0) > 0) { + R(); + P(w, k, A, x, S, E, M, C, 0x80000000, 0, 0, 0, 0, 0, 0, 768); + w = n, k = i, A = a, x = s, S = o, E = u, M = f, C = c; + D(); + P(w, k, A, x, S, E, M, C, 0x80000000, 0, 0, 0, 0, 0, 0, 768); + w = n, k = i, A = a, x = s, S = o, E = u, M = f, C = c; + h = h ^ n; + p = p ^ i; + y = y ^ a; + b = b ^ s; + m = m ^ o; + g = g ^ u; + v = v ^ f; + _ = _ ^ c; + d = d - 1 | 0 + } + n = h; + i = p; + a = y; + s = b; + o = m; + u = g; + f = v; + c = _; + if (~l) U(l); + return 0 + } + + return { + reset: K, + init: I, + process: T, + finish: O, + hmac_reset: R, + hmac_init: z, + hmac_finish: L, + pbkdf2_generate_block: F + } + } + }, {}], + 17: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r._sha256_hash_size = r._sha256_block_size = void 0, r.sha256_constructor = u, r.get_sha256_instance = function () { + null === c && (c = new u({heapSize: 1048576})); + return c + }; + var n = e("./sha256.asm"), i = e("../hash"), a = e("../../utils"), s = r._sha256_block_size = 64, + o = r._sha256_hash_size = 32; + + function u(e) { + e = e || {}, this.heap = (0, a._heap_init)(Uint8Array, e.heap), this.asm = e.asm || (0, n.sha256_asm)({Uint8Array: Uint8Array}, null, this.heap.buffer), this.BLOCK_SIZE = s, this.HASH_SIZE = o, this.reset() + } + + u.BLOCK_SIZE = s, u.HASH_SIZE = o, u.NAME = "sha256"; + var f = u.prototype; + f.reset = i.hash_reset, f.process = i.hash_process, f.finish = i.hash_finish; + var c = null + }, {"../../utils": 18, "../hash": 14, "./sha256.asm": 16}], + 18: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.string_to_bytes = n, r.hex_to_bytes = function (e) { + var t = e.length; + 1 & t && (e = "0" + e, t++); + for (var r = new Uint8Array(t >> 1), n = 0; n < t; n += 2) r[n >> 1] = parseInt(e.substr(n, 2), 16); + return r + }, r.base64_to_bytes = function (e) { + return n(atob(e)) + }, r.bytes_to_string = i, r.bytes_to_hex = function (e) { + for (var t = "", r = 0; r < e.length; r++) { + var n = (255 & e[r]).toString(16); + n.length < 2 && (t += "0"), t += n + } + return t + }, r.bytes_to_base64 = function (e) { + return btoa(i(e)) + }, r.pow2_ceil = function (e) { + return e -= 1, e |= e >>> 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, r) { + var n = t ? t.byteLength : r || 65536; + if (4095 & n || n <= 0) throw new Error("heap size must be a positive integer and a multiple of 4096"); + return t = t || new e(new ArrayBuffer(n)) + }, r._heap_write = function (e, t, r, n, i) { + var a = e.length - t, s = a < i ? a : i; + return e.set(r.subarray(n, n + s), t), s + }; + r.FloatArray = "undefined" != typeof Float64Array ? Float64Array : Float32Array; + + function n(e, t) { + t = !!t; + for (var r = e.length, n = new Uint8Array(t ? 4 * r : r), i = 0, a = 0; i < r; i++) { + var s = e.charCodeAt(i); + if (t && 55296 <= s && s <= 56319) { + if (++i >= r) throw new Error("Malformed string, low surrogate expected at position " + i); + s = (55296 ^ s) << 10 | 65536 | 56320 ^ e.charCodeAt(i) + } else if (!t && s >>> 8) throw new Error("Wide characters are not allowed."); + !t || s <= 127 ? n[a++] = s : s <= 2047 ? (n[a++] = 192 | s >> 6, n[a++] = 128 | 63 & s) : s <= 65535 ? (n[a++] = 224 | s >> 12, n[a++] = 128 | s >> 6 & 63, n[a++] = 128 | 63 & s) : (n[a++] = 240 | s >> 18, n[a++] = 128 | s >> 12 & 63, n[a++] = 128 | s >> 6 & 63, n[a++] = 128 | 63 & s) + } + return n.subarray(0, a) + } + + function i(e, t) { + t = !!t; + for (var r = e.length, n = new Array(r), i = 0, a = 0; i < r; i++) { + var s = e[i]; + if (!t || s < 128) n[a++] = s; else if (s >= 192 && s < 224 && i + 1 < r) n[a++] = (31 & s) << 6 | 63 & e[++i]; else if (s >= 224 && s < 240 && i + 2 < r) n[a++] = (15 & s) << 12 | (63 & e[++i]) << 6 | 63 & e[++i]; else { + if (!(s >= 240 && s < 248 && i + 3 < r)) throw new Error("Malformed UTF8 character at byte offset " + i); + var o = (7 & s) << 18 | (63 & e[++i]) << 12 | (63 & e[++i]) << 6 | 63 & e[++i]; + o <= 65535 ? n[a++] = o : (o ^= 65536, n[a++] = 55296 | o >> 10, n[a++] = 56320 | 1023 & o) + } + } + var u = ""; + for (i = 0; i < a; i += 16384) u += String.fromCharCode.apply(String, n.slice(i, i + 16384 <= a ? i + 16384 : a)); + return u + } + }, {}], + 19: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/array/from"), __esModule: !0} + }, {"core-js/library/fn/array/from": 51}], + 20: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/get-iterator"), __esModule: !0} + }, {"core-js/library/fn/get-iterator": 52}], + 21: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/is-iterable"), __esModule: !0} + }, {"core-js/library/fn/is-iterable": 53}], + 22: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/json/stringify"), __esModule: !0} + }, {"core-js/library/fn/json/stringify": 54}], + 23: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/object/create"), __esModule: !0} + }, {"core-js/library/fn/object/create": 55}], + 24: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/object/define-property"), __esModule: !0} + }, {"core-js/library/fn/object/define-property": 56}], + 25: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/object/freeze"), __esModule: !0} + }, {"core-js/library/fn/object/freeze": 57}], + 26: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/object/get-prototype-of"), __esModule: !0} + }, {"core-js/library/fn/object/get-prototype-of": 58}], + 27: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/object/set-prototype-of"), __esModule: !0} + }, {"core-js/library/fn/object/set-prototype-of": 59}], + 28: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/promise"), __esModule: !0} + }, {"core-js/library/fn/promise": 60}], + 29: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/symbol"), __esModule: !0} + }, {"core-js/library/fn/symbol": 61}], + 30: [function (e, t, r) { + t.exports = {default: e("core-js/library/fn/symbol/iterator"), __esModule: !0} + }, {"core-js/library/fn/symbol/iterator": 62}], + 31: [function (e, t, r) { + "use strict"; + r.__esModule = !0; + var n, i = e("../core-js/promise"), a = (n = i) && n.__esModule ? n : {default: n}; + r.default = function (e) { + return function () { + var t = e.apply(this, arguments); + return new a.default(function (e, r) { + return function n(i, s) { + try { + var o = t[i](s), u = o.value + } catch (e) { + return void r(e) + } + if (!o.done) return a.default.resolve(u).then(function (e) { + n("next", e) + }, function (e) { + n("throw", e) + }); + e(u) + }("next") + }) + } + } + }, {"../core-js/promise": 28}], + 32: [function (e, t, r) { + "use strict"; + r.__esModule = !0, r.default = function (e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + } + }, {}], + 33: [function (e, t, r) { + "use strict"; + r.__esModule = !0; + var n, i = e("../core-js/object/define-property"), a = (n = i) && n.__esModule ? n : {default: n}; + r.default = function () { + function e(e, t) { + for (var r = 0; r < t.length; r++) { + var n = t[r]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), (0, a.default)(e, n.key, n) + } + } + + return function (t, r, n) { + return r && e(t.prototype, r), n && e(t, n), t + } + }() + }, {"../core-js/object/define-property": 24}], + 34: [function (e, t, r) { + "use strict"; + r.__esModule = !0; + var n = s(e("../core-js/object/set-prototype-of")), i = s(e("../core-js/object/create")), + a = s(e("../helpers/typeof")); + + function s(e) { + return e && e.__esModule ? e : {default: e} + } + + r.default = function (e, t) { + if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + (void 0 === t ? "undefined" : (0, a.default)(t))); + e.prototype = (0, i.default)(t && t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), t && (n.default ? (0, n.default)(e, t) : e.__proto__ = t) + } + }, {"../core-js/object/create": 23, "../core-js/object/set-prototype-of": 27, "../helpers/typeof": 37}], + 35: [function (e, t, r) { + "use strict"; + r.__esModule = !0; + var n, i = e("../helpers/typeof"), a = (n = i) && n.__esModule ? n : {default: n}; + r.default = function (e, t) { + if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !t || "object" !== (void 0 === t ? "undefined" : (0, a.default)(t)) && "function" != typeof t ? e : t + } + }, {"../helpers/typeof": 37}], + 36: [function (e, t, r) { + "use strict"; + r.__esModule = !0; + var n = a(e("../core-js/is-iterable")), i = a(e("../core-js/get-iterator")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } + + r.default = function () { + return function (e, t) { + if (Array.isArray(e)) return e; + if ((0, n.default)(Object(e))) return function (e, t) { + var r = [], n = !0, a = !1, s = void 0; + try { + for (var o, u = (0, i.default)(e); !(n = (o = u.next()).done) && (r.push(o.value), !t || r.length !== t); n = !0) ; + } catch (e) { + a = !0, s = e + } finally { + try { + !n && u.return && u.return() + } finally { + if (a) throw s + } + } + return r + }(e, t); + throw new TypeError("Invalid attempt to destructure non-iterable instance") + } + }() + }, {"../core-js/get-iterator": 20, "../core-js/is-iterable": 21}], + 37: [function (e, t, r) { + "use strict"; + r.__esModule = !0; + var n = s(e("../core-js/symbol/iterator")), i = s(e("../core-js/symbol")), + a = "function" == typeof i.default && "symbol" == typeof n.default ? function (e) { + return typeof e + } : function (e) { + return e && "function" == typeof i.default && e.constructor === i.default && e !== i.default.prototype ? "symbol" : typeof e + }; + + function s(e) { + return e && e.__esModule ? e : {default: e} + } + + r.default = "function" == typeof i.default && "symbol" === a(n.default) ? function (e) { + return void 0 === e ? "undefined" : a(e) + } : function (e) { + return e && "function" == typeof i.default && e.constructor === i.default && e !== i.default.prototype ? "symbol" : void 0 === e ? "undefined" : a(e) + } + }, {"../core-js/symbol": 29, "../core-js/symbol/iterator": 30}], + 38: [function (e, t, r) { + t.exports = e("regenerator-runtime") + }, {"regenerator-runtime": 302}], + 39: [function (e, t, r) { + "use strict"; + r.byteLength = function (e) { + return 3 * e.length / 4 - f(e) + }, r.toByteArray = function (e) { + var t, r, n, s, o, u = e.length; + s = f(e), o = new a(3 * u / 4 - s), r = s > 0 ? u - 4 : u; + var c = 0; + for (t = 0; t < r; t += 4) n = i[e.charCodeAt(t)] << 18 | i[e.charCodeAt(t + 1)] << 12 | i[e.charCodeAt(t + 2)] << 6 | i[e.charCodeAt(t + 3)], o[c++] = n >> 16 & 255, o[c++] = n >> 8 & 255, o[c++] = 255 & n; + 2 === s ? (n = i[e.charCodeAt(t)] << 2 | i[e.charCodeAt(t + 1)] >> 4, o[c++] = 255 & n) : 1 === s && (n = i[e.charCodeAt(t)] << 10 | i[e.charCodeAt(t + 1)] << 4 | i[e.charCodeAt(t + 2)] >> 2, o[c++] = n >> 8 & 255, o[c++] = 255 & n); + return o + }, r.fromByteArray = function (e) { + for (var t, r = e.length, i = r % 3, a = "", s = [], o = 0, u = r - i; o < u; o += 16383) s.push(c(e, o, o + 16383 > u ? u : o + 16383)); + 1 === i ? (t = e[r - 1], a += n[t >> 2], a += n[t << 4 & 63], a += "==") : 2 === i && (t = (e[r - 2] << 8) + e[r - 1], a += n[t >> 10], a += n[t >> 4 & 63], a += n[t << 2 & 63], a += "="); + return s.push(a), s.join("") + }; + for (var n = [], i = [], a = "undefined" != typeof Uint8Array ? Uint8Array : Array, s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", o = 0, u = s.length; o < u; ++o) n[o] = s[o], i[s.charCodeAt(o)] = o; + + function f(e) { + var t = e.length; + if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); + return "=" === e[t - 2] ? 2 : "=" === e[t - 1] ? 1 : 0 + } + + function c(e, t, r) { + for (var i, a, s = [], o = t; o < r; o += 3) i = (e[o] << 16) + (e[o + 1] << 8) + e[o + 2], s.push(n[(a = i) >> 18 & 63] + n[a >> 12 & 63] + n[a >> 6 & 63] + n[63 & a]); + return s.join("") + } + + i["-".charCodeAt(0)] = 62, i["_".charCodeAt(0)] = 63 + }, {}], + 40: [function (e, t, r) { + !function (t, r) { + "use strict"; + + function n(e, t) { + if (!e) throw new Error(t || "Assertion failed") + } + + function i(e, t) { + e.super_ = t; + var r = function () { + }; + r.prototype = t.prototype, e.prototype = new r, e.prototype.constructor = e + } + + function a(e, t, r) { + if (a.isBN(e)) return e; + this.negative = 0, this.words = null, this.length = 0, this.red = null, null !== e && ("le" !== t && "be" !== t || (r = t, t = 10), this._init(e || 0, t || 10, r || "be")) + } + + var s; + "object" == typeof t ? t.exports = a : r.BN = a, a.BN = a, a.wordSize = 26; + try { + s = e("buffer").Buffer + } catch (e) { + } + + function o(e, t, r) { + for (var n = 0, i = Math.min(e.length, r), a = t; a < i; a++) { + var s = e.charCodeAt(a) - 48; + n <<= 4, n |= s >= 49 && s <= 54 ? s - 49 + 10 : s >= 17 && s <= 22 ? s - 17 + 10 : 15 & s + } + return n + } + + function u(e, t, r, n) { + for (var i = 0, a = Math.min(e.length, r), s = t; s < a; s++) { + var o = e.charCodeAt(s) - 48; + i *= n, i += o >= 49 ? o - 49 + 10 : o >= 17 ? o - 17 + 10 : o + } + return i + } + + a.isBN = function (e) { + return e instanceof a || null !== e && "object" == typeof e && e.constructor.wordSize === a.wordSize && Array.isArray(e.words) + }, a.max = function (e, t) { + return e.cmp(t) > 0 ? e : t + }, a.min = function (e, t) { + return e.cmp(t) < 0 ? e : t + }, a.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 i = 0; + "-" === (e = e.toString().replace(/\s+/g, ""))[0] && i++, 16 === t ? this._parseHex(e, i) : this._parseBase(e, t, i), "-" === e[0] && (this.negative = 1), this.strip(), "le" === r && this._initArray(this.toArray(), t, r) + }, a.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) + }, a.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 i = 0; i < this.length; i++) this.words[i] = 0; + var a, s, o = 0; + if ("be" === r) for (i = e.length - 1, a = 0; i >= 0; i -= 3) s = e[i] | e[i - 1] << 8 | e[i - 2] << 16, this.words[a] |= s << o & 67108863, this.words[a + 1] = s >>> 26 - o & 67108863, (o += 24) >= 26 && (o -= 26, a++); else if ("le" === r) for (i = 0, a = 0; i < e.length; i += 3) s = e[i] | e[i + 1] << 8 | e[i + 2] << 16, this.words[a] |= s << o & 67108863, this.words[a + 1] = s >>> 26 - o & 67108863, (o += 24) >= 26 && (o -= 26, a++); + return this.strip() + }, a.prototype._parseHex = function (e, t) { + this.length = Math.ceil((e.length - t) / 6), this.words = new Array(this.length); + for (var r = 0; r < this.length; r++) this.words[r] = 0; + var n, i, a = 0; + for (r = e.length - 6, n = 0; r >= t; r -= 6) i = o(e, r, r + 6), this.words[n] |= i << a & 67108863, this.words[n + 1] |= i >>> 26 - a & 4194303, (a += 24) >= 26 && (a -= 26, n++); + r + 6 !== t && (i = o(e, t, r + 6), this.words[n] |= i << a & 67108863, this.words[n + 1] |= i >>> 26 - a & 4194303), this.strip() + }, a.prototype._parseBase = function (e, t, r) { + this.words = [0], this.length = 1; + for (var n = 0, i = 1; i <= 67108863; i *= t) n++; + n--, i = i / t | 0; + for (var a = e.length - r, s = a % n, o = Math.min(a, a - s) + r, f = 0, c = r; c < o; c += n) f = u(e, c, c + n, t), this.imuln(i), this.words[0] + f < 67108864 ? this.words[0] += f : this._iaddn(f); + if (0 !== s) { + var d = 1; + for (f = u(e, c, e.length, t), c = 0; c < s; c++) d *= t; + this.imuln(d), this.words[0] + f < 67108864 ? this.words[0] += f : this._iaddn(f) + } + }, a.prototype.copy = function (e) { + e.words = new Array(this.length); + for (var t = 0; t < this.length; t++) e.words[t] = this.words[t]; + e.length = this.length, e.negative = this.negative, e.red = this.red + }, a.prototype.clone = function () { + var e = new a(null); + return this.copy(e), e + }, a.prototype._expand = function (e) { + for (; this.length < e;) this.words[this.length++] = 0; + return this + }, a.prototype.strip = function () { + for (; this.length > 1 && 0 === this.words[this.length - 1];) this.length--; + return this._normSign() + }, a.prototype._normSign = function () { + return 1 === this.length && 0 === this.words[0] && (this.negative = 0), this + }, a.prototype.inspect = function () { + return (this.red ? "" + }; + var f = ["", "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"], + c = [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 i = 0 | e.words[0], a = 0 | t.words[0], s = i * a, o = 67108863 & s, u = s / 67108864 | 0; + r.words[0] = o; + for (var f = 1; f < n; f++) { + for (var c = u >>> 26, d = 67108863 & u, l = Math.min(f, t.length - 1), h = Math.max(0, f - e.length + 1); h <= l; h++) { + var p = f - h | 0; + c += (s = (i = 0 | e.words[p]) * (a = 0 | t.words[h]) + d) / 67108864 | 0, d = 67108863 & s + } + r.words[f] = 0 | d, u = 0 | c + } + return 0 !== u ? r.words[f] = 0 | u : r.length--, r.strip() + } + + a.prototype.toString = function (e, t) { + var r; + if (e = e || 10, t = 0 | t || 1, 16 === e || "hex" === e) { + r = ""; + for (var i = 0, a = 0, s = 0; s < this.length; s++) { + var o = this.words[s], u = (16777215 & (o << i | a)).toString(16); + r = 0 !== (a = o >>> 24 - i & 16777215) || s !== this.length - 1 ? f[6 - u.length] + u + r : u + r, (i += 2) >= 26 && (i -= 26, s--) + } + for (0 !== a && (r = a.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 = c[e], h = d[e]; + r = ""; + var p = this.clone(); + for (p.negative = 0; !p.isZero();) { + var y = p.modn(h).toString(e); + r = (p = p.idivn(h)).isZero() ? y + r : f[l - y.length] + y + 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") + }, a.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 + }, a.prototype.toJSON = function () { + return this.toString(16) + }, a.prototype.toBuffer = function (e, t) { + return n(void 0 !== s), this.toArrayLike(s, e, t) + }, a.prototype.toArray = function (e, t) { + return this.toArrayLike(Array, e, t) + }, a.prototype.toArrayLike = function (e, t, r) { + var i = this.byteLength(), a = r || Math.max(1, i); + n(i <= a, "byte array longer than desired length"), n(a > 0, "Requested array length <= 0"), this.strip(); + var s, o, u = "le" === t, f = new e(a), c = this.clone(); + if (u) { + for (o = 0; !c.isZero(); o++) s = c.andln(255), c.iushrn(8), f[o] = s; + for (; o < a; o++) f[o] = 0 + } else { + for (o = 0; o < a - i; o++) f[o] = 0; + for (o = 0; !c.isZero(); o++) s = c.andln(255), c.iushrn(8), f[a - o - 1] = s + } + return f + }, Math.clz32 ? a.prototype._countBits = function (e) { + return 32 - Math.clz32(e) + } : a.prototype._countBits = function (e) { + var t = e, r = 0; + return t >= 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 + }, a.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 + }, a.prototype.bitLength = function () { + var e = this.words[this.length - 1], t = this._countBits(e); + return 26 * (this.length - 1) + t + }, a.prototype.zeroBits = function () { + if (this.isZero()) return 0; + for (var e = 0, t = 0; t < this.length; t++) { + var r = this._zeroBits(this.words[t]); + if (e += r, 26 !== r) break + } + return e + }, a.prototype.byteLength = function () { + return Math.ceil(this.bitLength() / 8) + }, a.prototype.toTwos = function (e) { + return 0 !== this.negative ? this.abs().inotn(e).iaddn(1) : this.clone() + }, a.prototype.fromTwos = function (e) { + return this.testn(e - 1) ? this.notn(e).iaddn(1).ineg() : this.clone() + }, a.prototype.isNeg = function () { + return 0 !== this.negative + }, a.prototype.neg = function () { + return this.clone().ineg() + }, a.prototype.ineg = function () { + return this.isZero() || (this.negative ^= 1), this + }, a.prototype.iuor = function (e) { + for (; this.length < e.length;) this.words[this.length++] = 0; + for (var t = 0; t < e.length; t++) this.words[t] = this.words[t] | e.words[t]; + return this.strip() + }, a.prototype.ior = function (e) { + return n(0 == (this.negative | e.negative)), this.iuor(e) + }, a.prototype.or = function (e) { + return this.length > e.length ? this.clone().ior(e) : e.clone().ior(this) + }, a.prototype.uor = function (e) { + return this.length > e.length ? this.clone().iuor(e) : e.clone().iuor(this) + }, a.prototype.iuand = function (e) { + var t; + t = this.length > e.length ? e : this; + for (var r = 0; r < t.length; r++) this.words[r] = this.words[r] & e.words[r]; + return this.length = t.length, this.strip() + }, a.prototype.iand = function (e) { + return n(0 == (this.negative | e.negative)), this.iuand(e) + }, a.prototype.and = function (e) { + return this.length > e.length ? this.clone().iand(e) : e.clone().iand(this) + }, a.prototype.uand = function (e) { + return this.length > e.length ? this.clone().iuand(e) : e.clone().iuand(this) + }, a.prototype.iuxor = function (e) { + var t, r; + this.length > e.length ? (t = this, r = e) : (t = e, r = this); + for (var n = 0; n < r.length; n++) this.words[n] = t.words[n] ^ r.words[n]; + if (this !== t) for (; n < t.length; n++) this.words[n] = t.words[n]; + return this.length = t.length, this.strip() + }, a.prototype.ixor = function (e) { + return n(0 == (this.negative | e.negative)), this.iuxor(e) + }, a.prototype.xor = function (e) { + return this.length > e.length ? this.clone().ixor(e) : e.clone().ixor(this) + }, a.prototype.uxor = function (e) { + return this.length > e.length ? this.clone().iuxor(e) : e.clone().iuxor(this) + }, a.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 i = 0; i < t; i++) this.words[i] = 67108863 & ~this.words[i]; + return r > 0 && (this.words[i] = ~this.words[i] & 67108863 >> 26 - r), this.strip() + }, a.prototype.notn = function (e) { + return this.clone().inotn(e) + }, a.prototype.setn = function (e, t) { + n("number" == typeof e && e >= 0); + var r = e / 26 | 0, i = e % 26; + return this._expand(r + 1), this.words[r] = t ? this.words[r] | 1 << i : this.words[r] & ~(1 << i), this.strip() + }, a.prototype.iadd = function (e) { + var t, r, n; + if (0 !== this.negative && 0 === e.negative) return this.negative = 0, t = this.isub(e), this.negative ^= 1, this._normSign(); + if (0 === this.negative && 0 !== e.negative) return e.negative = 0, t = this.isub(e), e.negative = 1, t._normSign(); + this.length > e.length ? (r = this, n = e) : (r = e, n = this); + for (var i = 0, a = 0; a < n.length; a++) t = (0 | r.words[a]) + (0 | n.words[a]) + i, this.words[a] = 67108863 & t, i = t >>> 26; + for (; 0 !== i && a < r.length; a++) t = (0 | r.words[a]) + i, this.words[a] = 67108863 & t, i = t >>> 26; + if (this.length = r.length, 0 !== i) this.words[this.length] = i, this.length++; else if (r !== this) for (; a < r.length; a++) this.words[a] = r.words[a]; + return this + }, a.prototype.add = function (e) { + var t; + return 0 !== e.negative && 0 === this.negative ? (e.negative = 0, t = this.sub(e), e.negative ^= 1, t) : 0 === e.negative && 0 !== this.negative ? (this.negative = 0, t = e.sub(this), this.negative = 1, t) : this.length > e.length ? this.clone().iadd(e) : e.clone().iadd(this) + }, a.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, i = this.cmp(e); + if (0 === i) return this.negative = 0, this.length = 1, this.words[0] = 0, this; + i > 0 ? (r = this, n = e) : (r = e, n = this); + for (var a = 0, s = 0; s < n.length; s++) a = (t = (0 | r.words[s]) - (0 | n.words[s]) + a) >> 26, this.words[s] = 67108863 & t; + for (; 0 !== a && s < r.length; s++) a = (t = (0 | r.words[s]) + a) >> 26, this.words[s] = 67108863 & t; + if (0 === a && s < r.length && r !== this) for (; s < r.length; s++) this.words[s] = r.words[s]; + return this.length = Math.max(this.length, s), r !== this && (this.negative = 1), this.strip() + }, a.prototype.sub = function (e) { + return this.clone().isub(e) + }; + var h = function (e, t, r) { + var n, i, a, s = e.words, o = t.words, u = r.words, f = 0, c = 0 | s[0], d = 8191 & c, l = c >>> 13, + h = 0 | s[1], p = 8191 & h, y = h >>> 13, b = 0 | s[2], m = 8191 & b, g = b >>> 13, + v = 0 | s[3], _ = 8191 & v, w = v >>> 13, k = 0 | s[4], A = 8191 & k, x = k >>> 13, + S = 0 | s[5], E = 8191 & S, M = S >>> 13, C = 0 | s[6], j = 8191 & C, P = C >>> 13, + B = 0 | s[7], U = 8191 & B, K = B >>> 13, I = 0 | s[8], T = 8191 & I, O = I >>> 13, + R = 0 | s[9], D = 8191 & R, z = R >>> 13, L = 0 | o[0], F = 8191 & L, N = L >>> 13, + q = 0 | o[1], G = 8191 & q, H = q >>> 13, Z = 0 | o[2], V = 8191 & Z, W = Z >>> 13, + Y = 0 | o[3], X = 8191 & Y, J = Y >>> 13, $ = 0 | o[4], Q = 8191 & $, ee = $ >>> 13, + te = 0 | o[5], re = 8191 & te, ne = te >>> 13, ie = 0 | o[6], ae = 8191 & ie, se = ie >>> 13, + oe = 0 | o[7], ue = 8191 & oe, fe = oe >>> 13, ce = 0 | o[8], de = 8191 & ce, le = ce >>> 13, + he = 0 | o[9], pe = 8191 & he, ye = he >>> 13; + r.negative = e.negative ^ t.negative, r.length = 19; + var be = (f + (n = Math.imul(d, F)) | 0) + ((8191 & (i = (i = Math.imul(d, N)) + Math.imul(l, F) | 0)) << 13) | 0; + f = ((a = Math.imul(l, N)) + (i >>> 13) | 0) + (be >>> 26) | 0, be &= 67108863, n = Math.imul(p, F), i = (i = Math.imul(p, N)) + Math.imul(y, F) | 0, a = Math.imul(y, N); + var me = (f + (n = n + Math.imul(d, G) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, H) | 0) + Math.imul(l, G) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, H) | 0) + (i >>> 13) | 0) + (me >>> 26) | 0, me &= 67108863, n = Math.imul(m, F), i = (i = Math.imul(m, N)) + Math.imul(g, F) | 0, a = Math.imul(g, N), n = n + Math.imul(p, G) | 0, i = (i = i + Math.imul(p, H) | 0) + Math.imul(y, G) | 0, a = a + Math.imul(y, H) | 0; + var ge = (f + (n = n + Math.imul(d, V) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, W) | 0) + Math.imul(l, V) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, W) | 0) + (i >>> 13) | 0) + (ge >>> 26) | 0, ge &= 67108863, n = Math.imul(_, F), i = (i = Math.imul(_, N)) + Math.imul(w, F) | 0, a = Math.imul(w, N), n = n + Math.imul(m, G) | 0, i = (i = i + Math.imul(m, H) | 0) + Math.imul(g, G) | 0, a = a + Math.imul(g, H) | 0, n = n + Math.imul(p, V) | 0, i = (i = i + Math.imul(p, W) | 0) + Math.imul(y, V) | 0, a = a + Math.imul(y, W) | 0; + var ve = (f + (n = n + Math.imul(d, X) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, J) | 0) + Math.imul(l, X) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, J) | 0) + (i >>> 13) | 0) + (ve >>> 26) | 0, ve &= 67108863, n = Math.imul(A, F), i = (i = Math.imul(A, N)) + Math.imul(x, F) | 0, a = Math.imul(x, N), n = n + Math.imul(_, G) | 0, i = (i = i + Math.imul(_, H) | 0) + Math.imul(w, G) | 0, a = a + Math.imul(w, H) | 0, n = n + Math.imul(m, V) | 0, i = (i = i + Math.imul(m, W) | 0) + Math.imul(g, V) | 0, a = a + Math.imul(g, W) | 0, n = n + Math.imul(p, X) | 0, i = (i = i + Math.imul(p, J) | 0) + Math.imul(y, X) | 0, a = a + Math.imul(y, J) | 0; + var _e = (f + (n = n + Math.imul(d, Q) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, ee) | 0) + Math.imul(l, Q) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, ee) | 0) + (i >>> 13) | 0) + (_e >>> 26) | 0, _e &= 67108863, n = Math.imul(E, F), i = (i = Math.imul(E, N)) + Math.imul(M, F) | 0, a = Math.imul(M, N), n = n + Math.imul(A, G) | 0, i = (i = i + Math.imul(A, H) | 0) + Math.imul(x, G) | 0, a = a + Math.imul(x, H) | 0, n = n + Math.imul(_, V) | 0, i = (i = i + Math.imul(_, W) | 0) + Math.imul(w, V) | 0, a = a + Math.imul(w, W) | 0, n = n + Math.imul(m, X) | 0, i = (i = i + Math.imul(m, J) | 0) + Math.imul(g, X) | 0, a = a + Math.imul(g, J) | 0, n = n + Math.imul(p, Q) | 0, i = (i = i + Math.imul(p, ee) | 0) + Math.imul(y, Q) | 0, a = a + Math.imul(y, ee) | 0; + var we = (f + (n = n + Math.imul(d, re) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, ne) | 0) + Math.imul(l, re) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, ne) | 0) + (i >>> 13) | 0) + (we >>> 26) | 0, we &= 67108863, n = Math.imul(j, F), i = (i = Math.imul(j, N)) + Math.imul(P, F) | 0, a = Math.imul(P, N), n = n + Math.imul(E, G) | 0, i = (i = i + Math.imul(E, H) | 0) + Math.imul(M, G) | 0, a = a + Math.imul(M, H) | 0, n = n + Math.imul(A, V) | 0, i = (i = i + Math.imul(A, W) | 0) + Math.imul(x, V) | 0, a = a + Math.imul(x, W) | 0, n = n + Math.imul(_, X) | 0, i = (i = i + Math.imul(_, J) | 0) + Math.imul(w, X) | 0, a = a + Math.imul(w, J) | 0, n = n + Math.imul(m, Q) | 0, i = (i = i + Math.imul(m, ee) | 0) + Math.imul(g, Q) | 0, a = a + Math.imul(g, ee) | 0, n = n + Math.imul(p, re) | 0, i = (i = i + Math.imul(p, ne) | 0) + Math.imul(y, re) | 0, a = a + Math.imul(y, ne) | 0; + var ke = (f + (n = n + Math.imul(d, ae) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, se) | 0) + Math.imul(l, ae) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, se) | 0) + (i >>> 13) | 0) + (ke >>> 26) | 0, ke &= 67108863, n = Math.imul(U, F), i = (i = Math.imul(U, N)) + Math.imul(K, F) | 0, a = Math.imul(K, N), n = n + Math.imul(j, G) | 0, i = (i = i + Math.imul(j, H) | 0) + Math.imul(P, G) | 0, a = a + Math.imul(P, H) | 0, n = n + Math.imul(E, V) | 0, i = (i = i + Math.imul(E, W) | 0) + Math.imul(M, V) | 0, a = a + Math.imul(M, W) | 0, n = n + Math.imul(A, X) | 0, i = (i = i + Math.imul(A, J) | 0) + Math.imul(x, X) | 0, a = a + Math.imul(x, J) | 0, n = n + Math.imul(_, Q) | 0, i = (i = i + Math.imul(_, ee) | 0) + Math.imul(w, Q) | 0, a = a + Math.imul(w, ee) | 0, n = n + Math.imul(m, re) | 0, i = (i = i + Math.imul(m, ne) | 0) + Math.imul(g, re) | 0, a = a + Math.imul(g, ne) | 0, n = n + Math.imul(p, ae) | 0, i = (i = i + Math.imul(p, se) | 0) + Math.imul(y, ae) | 0, a = a + Math.imul(y, se) | 0; + var Ae = (f + (n = n + Math.imul(d, ue) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, fe) | 0) + Math.imul(l, ue) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, fe) | 0) + (i >>> 13) | 0) + (Ae >>> 26) | 0, Ae &= 67108863, n = Math.imul(T, F), i = (i = Math.imul(T, N)) + Math.imul(O, F) | 0, a = Math.imul(O, N), n = n + Math.imul(U, G) | 0, i = (i = i + Math.imul(U, H) | 0) + Math.imul(K, G) | 0, a = a + Math.imul(K, H) | 0, n = n + Math.imul(j, V) | 0, i = (i = i + Math.imul(j, W) | 0) + Math.imul(P, V) | 0, a = a + Math.imul(P, W) | 0, n = n + Math.imul(E, X) | 0, i = (i = i + Math.imul(E, J) | 0) + Math.imul(M, X) | 0, a = a + Math.imul(M, J) | 0, n = n + Math.imul(A, Q) | 0, i = (i = i + Math.imul(A, ee) | 0) + Math.imul(x, Q) | 0, a = a + Math.imul(x, ee) | 0, n = n + Math.imul(_, re) | 0, i = (i = i + Math.imul(_, ne) | 0) + Math.imul(w, re) | 0, a = a + Math.imul(w, ne) | 0, n = n + Math.imul(m, ae) | 0, i = (i = i + Math.imul(m, se) | 0) + Math.imul(g, ae) | 0, a = a + Math.imul(g, se) | 0, n = n + Math.imul(p, ue) | 0, i = (i = i + Math.imul(p, fe) | 0) + Math.imul(y, ue) | 0, a = a + Math.imul(y, fe) | 0; + var xe = (f + (n = n + Math.imul(d, de) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, le) | 0) + Math.imul(l, de) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, le) | 0) + (i >>> 13) | 0) + (xe >>> 26) | 0, xe &= 67108863, n = Math.imul(D, F), i = (i = Math.imul(D, N)) + Math.imul(z, F) | 0, a = Math.imul(z, N), n = n + Math.imul(T, G) | 0, i = (i = i + Math.imul(T, H) | 0) + Math.imul(O, G) | 0, a = a + Math.imul(O, H) | 0, n = n + Math.imul(U, V) | 0, i = (i = i + Math.imul(U, W) | 0) + Math.imul(K, V) | 0, a = a + Math.imul(K, W) | 0, n = n + Math.imul(j, X) | 0, i = (i = i + Math.imul(j, J) | 0) + Math.imul(P, X) | 0, a = a + Math.imul(P, J) | 0, n = n + Math.imul(E, Q) | 0, i = (i = i + Math.imul(E, ee) | 0) + Math.imul(M, Q) | 0, a = a + Math.imul(M, ee) | 0, n = n + Math.imul(A, re) | 0, i = (i = i + Math.imul(A, ne) | 0) + Math.imul(x, re) | 0, a = a + Math.imul(x, ne) | 0, n = n + Math.imul(_, ae) | 0, i = (i = i + Math.imul(_, se) | 0) + Math.imul(w, ae) | 0, a = a + Math.imul(w, se) | 0, n = n + Math.imul(m, ue) | 0, i = (i = i + Math.imul(m, fe) | 0) + Math.imul(g, ue) | 0, a = a + Math.imul(g, fe) | 0, n = n + Math.imul(p, de) | 0, i = (i = i + Math.imul(p, le) | 0) + Math.imul(y, de) | 0, a = a + Math.imul(y, le) | 0; + var Se = (f + (n = n + Math.imul(d, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(d, ye) | 0) + Math.imul(l, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(l, ye) | 0) + (i >>> 13) | 0) + (Se >>> 26) | 0, Se &= 67108863, n = Math.imul(D, G), i = (i = Math.imul(D, H)) + Math.imul(z, G) | 0, a = Math.imul(z, H), n = n + Math.imul(T, V) | 0, i = (i = i + Math.imul(T, W) | 0) + Math.imul(O, V) | 0, a = a + Math.imul(O, W) | 0, n = n + Math.imul(U, X) | 0, i = (i = i + Math.imul(U, J) | 0) + Math.imul(K, X) | 0, a = a + Math.imul(K, J) | 0, n = n + Math.imul(j, Q) | 0, i = (i = i + Math.imul(j, ee) | 0) + Math.imul(P, Q) | 0, a = a + Math.imul(P, ee) | 0, n = n + Math.imul(E, re) | 0, i = (i = i + Math.imul(E, ne) | 0) + Math.imul(M, re) | 0, a = a + Math.imul(M, ne) | 0, n = n + Math.imul(A, ae) | 0, i = (i = i + Math.imul(A, se) | 0) + Math.imul(x, ae) | 0, a = a + Math.imul(x, se) | 0, n = n + Math.imul(_, ue) | 0, i = (i = i + Math.imul(_, fe) | 0) + Math.imul(w, ue) | 0, a = a + Math.imul(w, fe) | 0, n = n + Math.imul(m, de) | 0, i = (i = i + Math.imul(m, le) | 0) + Math.imul(g, de) | 0, a = a + Math.imul(g, le) | 0; + var Ee = (f + (n = n + Math.imul(p, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(p, ye) | 0) + Math.imul(y, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(y, ye) | 0) + (i >>> 13) | 0) + (Ee >>> 26) | 0, Ee &= 67108863, n = Math.imul(D, V), i = (i = Math.imul(D, W)) + Math.imul(z, V) | 0, a = Math.imul(z, W), n = n + Math.imul(T, X) | 0, i = (i = i + Math.imul(T, J) | 0) + Math.imul(O, X) | 0, a = a + Math.imul(O, J) | 0, n = n + Math.imul(U, Q) | 0, i = (i = i + Math.imul(U, ee) | 0) + Math.imul(K, Q) | 0, a = a + Math.imul(K, ee) | 0, n = n + Math.imul(j, re) | 0, i = (i = i + Math.imul(j, ne) | 0) + Math.imul(P, re) | 0, a = a + Math.imul(P, ne) | 0, n = n + Math.imul(E, ae) | 0, i = (i = i + Math.imul(E, se) | 0) + Math.imul(M, ae) | 0, a = a + Math.imul(M, se) | 0, n = n + Math.imul(A, ue) | 0, i = (i = i + Math.imul(A, fe) | 0) + Math.imul(x, ue) | 0, a = a + Math.imul(x, fe) | 0, n = n + Math.imul(_, de) | 0, i = (i = i + Math.imul(_, le) | 0) + Math.imul(w, de) | 0, a = a + Math.imul(w, le) | 0; + var Me = (f + (n = n + Math.imul(m, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(m, ye) | 0) + Math.imul(g, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(g, ye) | 0) + (i >>> 13) | 0) + (Me >>> 26) | 0, Me &= 67108863, n = Math.imul(D, X), i = (i = Math.imul(D, J)) + Math.imul(z, X) | 0, a = Math.imul(z, J), n = n + Math.imul(T, Q) | 0, i = (i = i + Math.imul(T, ee) | 0) + Math.imul(O, Q) | 0, a = a + Math.imul(O, ee) | 0, n = n + Math.imul(U, re) | 0, i = (i = i + Math.imul(U, ne) | 0) + Math.imul(K, re) | 0, a = a + Math.imul(K, ne) | 0, n = n + Math.imul(j, ae) | 0, i = (i = i + Math.imul(j, se) | 0) + Math.imul(P, ae) | 0, a = a + Math.imul(P, se) | 0, n = n + Math.imul(E, ue) | 0, i = (i = i + Math.imul(E, fe) | 0) + Math.imul(M, ue) | 0, a = a + Math.imul(M, fe) | 0, n = n + Math.imul(A, de) | 0, i = (i = i + Math.imul(A, le) | 0) + Math.imul(x, de) | 0, a = a + Math.imul(x, le) | 0; + var Ce = (f + (n = n + Math.imul(_, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(_, ye) | 0) + Math.imul(w, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(w, ye) | 0) + (i >>> 13) | 0) + (Ce >>> 26) | 0, Ce &= 67108863, n = Math.imul(D, Q), i = (i = Math.imul(D, ee)) + Math.imul(z, Q) | 0, a = Math.imul(z, ee), n = n + Math.imul(T, re) | 0, i = (i = i + Math.imul(T, ne) | 0) + Math.imul(O, re) | 0, a = a + Math.imul(O, ne) | 0, n = n + Math.imul(U, ae) | 0, i = (i = i + Math.imul(U, se) | 0) + Math.imul(K, ae) | 0, a = a + Math.imul(K, se) | 0, n = n + Math.imul(j, ue) | 0, i = (i = i + Math.imul(j, fe) | 0) + Math.imul(P, ue) | 0, a = a + Math.imul(P, fe) | 0, n = n + Math.imul(E, de) | 0, i = (i = i + Math.imul(E, le) | 0) + Math.imul(M, de) | 0, a = a + Math.imul(M, le) | 0; + var je = (f + (n = n + Math.imul(A, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(A, ye) | 0) + Math.imul(x, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(x, ye) | 0) + (i >>> 13) | 0) + (je >>> 26) | 0, je &= 67108863, n = Math.imul(D, re), i = (i = Math.imul(D, ne)) + Math.imul(z, re) | 0, a = Math.imul(z, ne), n = n + Math.imul(T, ae) | 0, i = (i = i + Math.imul(T, se) | 0) + Math.imul(O, ae) | 0, a = a + Math.imul(O, se) | 0, n = n + Math.imul(U, ue) | 0, i = (i = i + Math.imul(U, fe) | 0) + Math.imul(K, ue) | 0, a = a + Math.imul(K, fe) | 0, n = n + Math.imul(j, de) | 0, i = (i = i + Math.imul(j, le) | 0) + Math.imul(P, de) | 0, a = a + Math.imul(P, le) | 0; + var Pe = (f + (n = n + Math.imul(E, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(E, ye) | 0) + Math.imul(M, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(M, ye) | 0) + (i >>> 13) | 0) + (Pe >>> 26) | 0, Pe &= 67108863, n = Math.imul(D, ae), i = (i = Math.imul(D, se)) + Math.imul(z, ae) | 0, a = Math.imul(z, se), n = n + Math.imul(T, ue) | 0, i = (i = i + Math.imul(T, fe) | 0) + Math.imul(O, ue) | 0, a = a + Math.imul(O, fe) | 0, n = n + Math.imul(U, de) | 0, i = (i = i + Math.imul(U, le) | 0) + Math.imul(K, de) | 0, a = a + Math.imul(K, le) | 0; + var Be = (f + (n = n + Math.imul(j, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(j, ye) | 0) + Math.imul(P, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(P, ye) | 0) + (i >>> 13) | 0) + (Be >>> 26) | 0, Be &= 67108863, n = Math.imul(D, ue), i = (i = Math.imul(D, fe)) + Math.imul(z, ue) | 0, a = Math.imul(z, fe), n = n + Math.imul(T, de) | 0, i = (i = i + Math.imul(T, le) | 0) + Math.imul(O, de) | 0, a = a + Math.imul(O, le) | 0; + var Ue = (f + (n = n + Math.imul(U, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(U, ye) | 0) + Math.imul(K, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(K, ye) | 0) + (i >>> 13) | 0) + (Ue >>> 26) | 0, Ue &= 67108863, n = Math.imul(D, de), i = (i = Math.imul(D, le)) + Math.imul(z, de) | 0, a = Math.imul(z, le); + var Ke = (f + (n = n + Math.imul(T, pe) | 0) | 0) + ((8191 & (i = (i = i + Math.imul(T, ye) | 0) + Math.imul(O, pe) | 0)) << 13) | 0; + f = ((a = a + Math.imul(O, ye) | 0) + (i >>> 13) | 0) + (Ke >>> 26) | 0, Ke &= 67108863; + var Ie = (f + (n = Math.imul(D, pe)) | 0) + ((8191 & (i = (i = Math.imul(D, ye)) + Math.imul(z, pe) | 0)) << 13) | 0; + return f = ((a = Math.imul(z, ye)) + (i >>> 13) | 0) + (Ie >>> 26) | 0, Ie &= 67108863, u[0] = be, u[1] = me, u[2] = ge, u[3] = ve, u[4] = _e, u[5] = we, u[6] = ke, u[7] = Ae, u[8] = xe, u[9] = Se, u[10] = Ee, u[11] = Me, u[12] = Ce, u[13] = je, u[14] = Pe, u[15] = Be, u[16] = Ue, u[17] = Ke, u[18] = Ie, 0 !== f && (u[19] = f, r.length++), r + }; + + function p(e, t, r) { + return (new y).mulp(e, t, r) + } + + function y(e, t) { + this.x = e, this.y = t + } + + Math.imul || (h = l), a.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, i = 0, a = 0; a < r.length - 1; a++) { + var s = i; + i = 0; + for (var o = 67108863 & n, u = Math.min(a, t.length - 1), f = Math.max(0, a - e.length + 1); f <= u; f++) { + var c = a - f, d = (0 | e.words[c]) * (0 | t.words[f]), l = 67108863 & d; + o = 67108863 & (l = l + o | 0), i += (s = (s = s + (d / 67108864 | 0) | 0) + (l >>> 26) | 0) >>> 26, s &= 67108863 + } + r.words[a] = o, n = s, s = i + } + return 0 !== n ? r.words[a] = n : r.length--, r.strip() + }(this, e, t) : p(this, e, t) + }, y.prototype.makeRBT = function (e) { + for (var t = new Array(e), r = a.prototype._countBits(e) - 1, n = 0; n < e; n++) t[n] = this.revBin(n, r, e); + return t + }, y.prototype.revBin = function (e, t, r) { + if (0 === e || e === r - 1) return e; + for (var n = 0, i = 0; i < t; i++) n |= (1 & e) << t - i - 1, e >>= 1; + return n + }, y.prototype.permute = function (e, t, r, n, i, a) { + for (var s = 0; s < a; s++) n[s] = t[e[s]], i[s] = r[e[s]] + }, y.prototype.transform = function (e, t, r, n, i, a) { + this.permute(a, e, t, r, n, i); + for (var s = 1; s < i; s <<= 1) for (var o = s << 1, u = Math.cos(2 * Math.PI / o), f = Math.sin(2 * Math.PI / o), c = 0; c < i; c += o) for (var d = u, l = f, h = 0; h < s; h++) { + var p = r[c + h], y = n[c + h], b = r[c + h + s], m = n[c + h + s], g = d * b - l * m; + m = d * m + l * b, b = g, r[c + h] = p + b, n[c + h] = y + m, r[c + h + s] = p - b, n[c + h + s] = y - m, h !== o && (g = u * d - f * l, l = u * l + f * d, d = g) + } + }, y.prototype.guessLen13b = function (e, t) { + var r = 1 | Math.max(t, e), n = 1 & r, i = 0; + for (r = r / 2 | 0; r; r >>>= 1) i++; + return 1 << i + 1 + n + }, y.prototype.conjugate = function (e, t, r) { + if (!(r <= 1)) for (var n = 0; n < r / 2; n++) { + var i = e[n]; + e[n] = e[r - n - 1], e[r - n - 1] = i, i = t[n], t[n] = -t[r - n - 1], t[r - n - 1] = -i + } + }, y.prototype.normalize13b = function (e, t) { + for (var r = 0, n = 0; n < t / 2; n++) { + var i = 8192 * Math.round(e[2 * n + 1] / t) + Math.round(e[2 * n] / t) + r; + e[n] = 67108863 & i, r = i < 67108864 ? 0 : i / 67108864 | 0 + } + return e + }, y.prototype.convert13b = function (e, t, r, i) { + for (var a = 0, s = 0; s < t; s++) a += 0 | e[s], r[2 * s] = 8191 & a, a >>>= 13, r[2 * s + 1] = 8191 & a, a >>>= 13; + for (s = 2 * t; s < i; ++s) r[s] = 0; + n(0 === a), n(0 == (-8192 & a)) + }, y.prototype.stub = function (e) { + for (var t = new Array(e), r = 0; r < e; r++) t[r] = 0; + return t + }, y.prototype.mulp = function (e, t, r) { + var n = 2 * this.guessLen13b(e.length, t.length), i = this.makeRBT(n), a = this.stub(n), + s = new Array(n), o = new Array(n), u = new Array(n), f = new Array(n), c = new Array(n), + d = new Array(n), l = r.words; + l.length = n, this.convert13b(e.words, e.length, s, n), this.convert13b(t.words, t.length, f, n), this.transform(s, a, o, u, n, i), this.transform(f, a, c, d, n, i); + for (var h = 0; h < n; h++) { + var p = o[h] * c[h] - u[h] * d[h]; + u[h] = o[h] * d[h] + u[h] * c[h], o[h] = p + } + return this.conjugate(o, u, n), this.transform(o, u, l, a, n, i), this.conjugate(l, a, n), this.normalize13b(l, n), r.negative = e.negative ^ t.negative, r.length = e.length + t.length, r.strip() + }, a.prototype.mul = function (e) { + var t = new a(null); + return t.words = new Array(this.length + e.length), this.mulTo(e, t) + }, a.prototype.mulf = function (e) { + var t = new a(null); + return t.words = new Array(this.length + e.length), p(this, e, t) + }, a.prototype.imul = function (e) { + return this.clone().mulTo(e, this) + }, a.prototype.imuln = function (e) { + n("number" == typeof e), n(e < 67108864); + for (var t = 0, r = 0; r < this.length; r++) { + var i = (0 | this.words[r]) * e, a = (67108863 & i) + (67108863 & t); + t >>= 26, t += i / 67108864 | 0, t += a >>> 26, this.words[r] = 67108863 & a + } + return 0 !== t && (this.words[r] = t, this.length++), this + }, a.prototype.muln = function (e) { + return this.clone().imuln(e) + }, a.prototype.sqr = function () { + return this.mul(this) + }, a.prototype.isqr = function () { + return this.imul(this.clone()) + }, a.prototype.pow = function (e) { + var t = function (e) { + for (var t = new Array(e.bitLength()), r = 0; r < t.length; r++) { + var n = r / 26 | 0, i = r % 26; + t[r] = (e.words[n] & 1 << i) >>> i + } + return t + }(e); + if (0 === t.length) return new a(1); + for (var r = this, n = 0; n < t.length && 0 === t[n]; n++, r = r.sqr()) ; + if (++n < t.length) for (var i = r.sqr(); n < t.length; n++, i = i.sqr()) 0 !== t[n] && (r = r.mul(i)); + return r + }, a.prototype.iushln = function (e) { + n("number" == typeof e && e >= 0); + var t, r = e % 26, i = (e - r) / 26, a = 67108863 >>> 26 - r << 26 - r; + if (0 !== r) { + var s = 0; + for (t = 0; t < this.length; t++) { + var o = this.words[t] & a, u = (0 | this.words[t]) - o << r; + this.words[t] = u | s, s = o >>> 26 - r + } + s && (this.words[t] = s, this.length++) + } + if (0 !== i) { + for (t = this.length - 1; t >= 0; t--) this.words[t + i] = this.words[t]; + for (t = 0; t < i; t++) this.words[t] = 0; + this.length += i + } + return this.strip() + }, a.prototype.ishln = function (e) { + return n(0 === this.negative), this.iushln(e) + }, a.prototype.iushrn = function (e, t, r) { + var i; + n("number" == typeof e && e >= 0), i = t ? (t - t % 26) / 26 : 0; + var a = e % 26, s = Math.min((e - a) / 26, this.length), o = 67108863 ^ 67108863 >>> a << a, u = r; + if (i -= s, i = Math.max(0, i), u) { + for (var f = 0; f < s; f++) u.words[f] = this.words[f]; + u.length = s + } + if (0 === s) ; else if (this.length > s) for (this.length -= s, f = 0; f < this.length; f++) this.words[f] = this.words[f + s]; else this.words[0] = 0, this.length = 1; + var c = 0; + for (f = this.length - 1; f >= 0 && (0 !== c || f >= i); f--) { + var d = 0 | this.words[f]; + this.words[f] = c << 26 - a | d >>> a, c = d & o + } + return u && 0 !== c && (u.words[u.length++] = c), 0 === this.length && (this.words[0] = 0, this.length = 1), this.strip() + }, a.prototype.ishrn = function (e, t, r) { + return n(0 === this.negative), this.iushrn(e, t, r) + }, a.prototype.shln = function (e) { + return this.clone().ishln(e) + }, a.prototype.ushln = function (e) { + return this.clone().iushln(e) + }, a.prototype.shrn = function (e) { + return this.clone().ishrn(e) + }, a.prototype.ushrn = function (e) { + return this.clone().iushrn(e) + }, a.prototype.testn = function (e) { + n("number" == typeof e && e >= 0); + var t = e % 26, r = (e - t) / 26, i = 1 << t; + return !(this.length <= r) && !!(this.words[r] & i) + }, a.prototype.imaskn = function (e) { + n("number" == typeof e && e >= 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 i = 67108863 ^ 67108863 >>> t << t; + this.words[this.length - 1] &= i + } + return this.strip() + }, a.prototype.maskn = function (e) { + return this.clone().imaskn(e) + }, a.prototype.iaddn = function (e) { + return n("number" == typeof e), n(e < 67108864), e < 0 ? this.isubn(-e) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) < e ? (this.words[0] = e - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(e), this.negative = 1, this) : this._iaddn(e) + }, a.prototype._iaddn = function (e) { + this.words[0] += e; + for (var t = 0; t < this.length && this.words[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 + }, a.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 < this.length && this.words[t] < 0; t++) this.words[t] += 67108864, this.words[t + 1] -= 1; + return this.strip() + }, a.prototype.addn = function (e) { + return this.clone().iaddn(e) + }, a.prototype.subn = function (e) { + return this.clone().isubn(e) + }, a.prototype.iabs = function () { + return this.negative = 0, this + }, a.prototype.abs = function () { + return this.clone().iabs() + }, a.prototype._ishlnsubmul = function (e, t, r) { + var i, a, s = e.length + r; + this._expand(s); + var o = 0; + for (i = 0; i < e.length; i++) { + a = (0 | this.words[i + r]) + o; + var u = (0 | e.words[i]) * t; + o = ((a -= 67108863 & u) >> 26) - (u / 67108864 | 0), this.words[i + r] = 67108863 & a + } + for (; i < this.length - r; i++) o = (a = (0 | this.words[i + r]) + o) >> 26, this.words[i + r] = 67108863 & a; + if (0 === o) return this.strip(); + for (n(-1 === o), o = 0, i = 0; i < this.length; i++) o = (a = -(0 | this.words[i]) + o) >> 26, this.words[i] = 67108863 & a; + return this.negative = 1, this.strip() + }, a.prototype._wordDiv = function (e, t) { + var r = (this.length, e.length), n = this.clone(), i = e, s = 0 | i.words[i.length - 1]; + 0 !== (r = 26 - this._countBits(s)) && (i = i.ushln(r), n.iushln(r), s = 0 | i.words[i.length - 1]); + var o, u = n.length - i.length; + if ("mod" !== t) { + (o = new a(null)).length = u + 1, o.words = new Array(o.length); + for (var f = 0; f < o.length; f++) o.words[f] = 0 + } + var c = n.clone()._ishlnsubmul(i, 1, u); + 0 === c.negative && (n = c, o && (o.words[u] = 1)); + for (var d = u - 1; d >= 0; d--) { + var l = 67108864 * (0 | n.words[i.length + d]) + (0 | n.words[i.length + d - 1]); + for (l = Math.min(l / s | 0, 67108863), n._ishlnsubmul(i, l, d); 0 !== n.negative;) l--, n.negative = 0, n._ishlnsubmul(i, 1, d), n.isZero() || (n.negative ^= 1); + o && (o.words[d] = l) + } + return o && o.strip(), n.strip(), "div" !== t && 0 !== r && n.iushrn(r), {div: o || null, mod: n} + }, a.prototype.divmod = function (e, t, r) { + return n(!e.isZero()), this.isZero() ? { + div: new a(0), + mod: new a(0) + } : 0 !== this.negative && 0 === e.negative ? (o = this.neg().divmod(e, t), "mod" !== t && (i = o.div.neg()), "div" !== t && (s = o.mod.neg(), r && 0 !== s.negative && s.iadd(e)), { + div: i, + mod: s + }) : 0 === this.negative && 0 !== e.negative ? (o = this.divmod(e.neg(), t), "mod" !== t && (i = o.div.neg()), { + div: i, + mod: o.mod + }) : 0 != (this.negative & e.negative) ? (o = this.neg().divmod(e.neg(), t), "div" !== t && (s = o.mod.neg(), r && 0 !== s.negative && s.isub(e)), { + div: o.div, + mod: s + }) : e.length > this.length || this.cmp(e) < 0 ? { + div: new a(0), + mod: this + } : 1 === e.length ? "div" === t ? { + div: this.divn(e.words[0]), + mod: null + } : "mod" === t ? {div: null, mod: new a(this.modn(e.words[0]))} : { + div: this.divn(e.words[0]), + mod: new a(this.modn(e.words[0])) + } : this._wordDiv(e, t); + var i, s, o + }, a.prototype.div = function (e) { + return this.divmod(e, "div", !1).div + }, a.prototype.mod = function (e) { + return this.divmod(e, "mod", !1).mod + }, a.prototype.umod = function (e) { + return this.divmod(e, "mod", !0).mod + }, a.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), i = e.andln(1), a = r.cmp(n); + return a < 0 || 1 === i && 0 === a ? t.div : 0 !== t.div.negative ? t.div.isubn(1) : t.div.iaddn(1) + }, a.prototype.modn = function (e) { + n(e <= 67108863); + for (var t = (1 << 26) % e, r = 0, i = this.length - 1; i >= 0; i--) r = (t * r + (0 | this.words[i])) % e; + return r + }, a.prototype.idivn = function (e) { + n(e <= 67108863); + for (var t = 0, r = this.length - 1; r >= 0; r--) { + var i = (0 | this.words[r]) + 67108864 * t; + this.words[r] = i / e | 0, t = i % e + } + return this.strip() + }, a.prototype.divn = function (e) { + return this.clone().idivn(e) + }, a.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 i = new a(1), s = new a(0), o = new a(0), u = new a(1), f = 0; t.isEven() && r.isEven();) t.iushrn(1), r.iushrn(1), ++f; + for (var c = 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;) (i.isOdd() || s.isOdd()) && (i.iadd(c), s.isub(d)), i.iushrn(1), s.iushrn(1); + for (var p = 0, y = 1; 0 == (r.words[0] & y) && p < 26; ++p, y <<= 1) ; + if (p > 0) for (r.iushrn(p); p-- > 0;) (o.isOdd() || u.isOdd()) && (o.iadd(c), u.isub(d)), o.iushrn(1), u.iushrn(1); + t.cmp(r) >= 0 ? (t.isub(r), i.isub(o), s.isub(u)) : (r.isub(t), o.isub(i), u.isub(s)) + } + return {a: o, b: u, gcd: r.iushln(f)} + }, a.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 i, s = new a(1), o = new a(0), u = r.clone(); t.cmpn(1) > 0 && r.cmpn(1) > 0;) { + for (var f = 0, c = 1; 0 == (t.words[0] & c) && f < 26; ++f, c <<= 1) ; + if (f > 0) for (t.iushrn(f); f-- > 0;) s.isOdd() && s.iadd(u), s.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;) o.isOdd() && o.iadd(u), o.iushrn(1); + t.cmp(r) >= 0 ? (t.isub(r), s.isub(o)) : (r.isub(t), o.isub(s)) + } + return (i = 0 === t.cmpn(1) ? s : o).cmpn(0) < 0 && i.iadd(e), i + }, a.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 i = t.cmp(r); + if (i < 0) { + var a = t; + t = r, r = a + } else if (0 === i || 0 === r.cmpn(1)) break; + t.isub(r) + } + return r.iushln(n) + }, a.prototype.invm = function (e) { + return this.egcd(e).a.umod(e) + }, a.prototype.isEven = function () { + return 0 == (1 & this.words[0]) + }, a.prototype.isOdd = function () { + return 1 == (1 & this.words[0]) + }, a.prototype.andln = function (e) { + return this.words[0] & e + }, a.prototype.bincn = function (e) { + n("number" == typeof e); + var t = e % 26, r = (e - t) / 26, i = 1 << t; + if (this.length <= r) return this._expand(r + 1), this.words[r] |= i, this; + for (var a = i, s = r; 0 !== a && s < this.length; s++) { + var o = 0 | this.words[s]; + a = (o += a) >>> 26, o &= 67108863, this.words[s] = o + } + return 0 !== a && (this.words[s] = a, this.length++), this + }, a.prototype.isZero = function () { + return 1 === this.length && 0 === this.words[0] + }, a.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 i = 0 | this.words[0]; + t = i === e ? 0 : i < e ? -1 : 1 + } + return 0 !== this.negative ? 0 | -t : t + }, a.prototype.cmp = function (e) { + if (0 !== this.negative && 0 === e.negative) return -1; + if (0 === this.negative && 0 !== e.negative) return 1; + var t = this.ucmp(e); + return 0 !== this.negative ? 0 | -t : t + }, a.prototype.ucmp = function (e) { + if (this.length > e.length) return 1; + if (this.length < e.length) return -1; + for (var t = 0, r = this.length - 1; r >= 0; r--) { + var n = 0 | this.words[r], i = 0 | e.words[r]; + if (n !== i) { + n < i ? t = -1 : n > i && (t = 1); + break + } + } + return t + }, a.prototype.gtn = function (e) { + return 1 === this.cmpn(e) + }, a.prototype.gt = function (e) { + return 1 === this.cmp(e) + }, a.prototype.gten = function (e) { + return this.cmpn(e) >= 0 + }, a.prototype.gte = function (e) { + return this.cmp(e) >= 0 + }, a.prototype.ltn = function (e) { + return -1 === this.cmpn(e) + }, a.prototype.lt = function (e) { + return -1 === this.cmp(e) + }, a.prototype.lten = function (e) { + return this.cmpn(e) <= 0 + }, a.prototype.lte = function (e) { + return this.cmp(e) <= 0 + }, a.prototype.eqn = function (e) { + return 0 === this.cmpn(e) + }, a.prototype.eq = function (e) { + return 0 === this.cmp(e) + }, a.red = function (e) { + return new k(e) + }, a.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) + }, a.prototype.fromRed = function () { + return n(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this) + }, a.prototype._forceRed = function (e) { + return this.red = e, this + }, a.prototype.forceRed = function (e) { + return n(!this.red, "Already a number in reduction context"), this._forceRed(e) + }, a.prototype.redAdd = function (e) { + return n(this.red, "redAdd works only with red numbers"), this.red.add(this, e) + }, a.prototype.redIAdd = function (e) { + return n(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, e) + }, a.prototype.redSub = function (e) { + return n(this.red, "redSub works only with red numbers"), this.red.sub(this, e) + }, a.prototype.redISub = function (e) { + return n(this.red, "redISub works only with red numbers"), this.red.isub(this, e) + }, a.prototype.redShl = function (e) { + return n(this.red, "redShl works only with red numbers"), this.red.shl(this, e) + }, a.prototype.redMul = function (e) { + return n(this.red, "redMul works only with red numbers"), this.red._verify2(this, e), this.red.mul(this, e) + }, a.prototype.redIMul = function (e) { + return n(this.red, "redMul works only with red numbers"), this.red._verify2(this, e), this.red.imul(this, e) + }, a.prototype.redSqr = function () { + return n(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this) + }, a.prototype.redISqr = function () { + return n(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this) + }, a.prototype.redSqrt = function () { + return n(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this) + }, a.prototype.redInvm = function () { + return n(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this) + }, a.prototype.redNeg = function () { + return n(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this) + }, a.prototype.redPow = function (e) { + return n(this.red && !e.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, e) + }; + var b = {k256: null, p224: null, p192: null, p25519: null}; + + function m(e, t) { + this.name = e, this.p = new a(t, 16), this.n = this.p.bitLength(), this.k = new a(1).iushln(this.n).isub(this.p), this.tmp = this._tmp() + } + + function g() { + m.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f") + } + + function v() { + 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 = a._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 A(e) { + k.call(this, e), this.shift = this.m.bitLength(), this.shift % 26 != 0 && (this.shift += 26 - this.shift % 26), this.r = new a(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 a(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 = t < this.n ? -1 : r.ucmp(this.p); + return 0 === n ? (r.words[0] = 0, r.length = 1) : n > 0 ? 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) + }, i(g, m), g.prototype.split = function (e, t) { + for (var r = Math.min(e.length, 9), n = 0; n < r; n++) t.words[n] = e.words[n]; + if (t.length = r, e.length <= 9) return e.words[0] = 0, void(e.length = 1); + var i = e.words[9]; + for (t.words[t.length++] = 4194303 & i, n = 10; n < e.length; n++) { + var a = 0 | e.words[n]; + e.words[n - 10] = (4194303 & a) << 4 | i >>> 22, i = a + } + i >>>= 22, e.words[n - 10] = i, 0 === i && e.length > 10 ? e.length -= 10 : e.length -= 9 + }, g.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 < e.length; r++) { + var n = 0 | e.words[r]; + t += 977 * n, e.words[r] = 67108863 & t, t = 64 * n + (t / 67108864 | 0) + } + return 0 === e.words[e.length - 1] && (e.length--, 0 === e.words[e.length - 1] && e.length--), e + }, i(v, m), i(_, m), i(w, m), w.prototype.imulK = function (e) { + for (var t = 0, r = 0; r < e.length; r++) { + var n = 19 * (0 | e.words[r]) + t, i = 67108863 & n; + n >>>= 26, e.words[r] = i, t = n + } + return 0 !== t && (e.words[e.length++] = t), e + }, a._prime = function (e) { + if (b[e]) return b[e]; + var t; + if ("k256" === e) t = new g; else if ("p224" === e) t = new v; else if ("p192" === e) t = new _; else { + if ("p25519" !== e) throw new Error("Unknown prime " + e); + t = new w + } + return b[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 a(1)).iushrn(2); + return this.pow(e, r) + } + for (var i = this.m.subn(1), s = 0; !i.isZero() && 0 === i.andln(1);) s++, i.iushrn(1); + n(!i.isZero()); + var o = new a(1).toRed(this), u = o.redNeg(), f = this.m.subn(1).iushrn(1), c = this.m.bitLength(); + for (c = new a(2 * c * c).toRed(this); 0 !== this.pow(c, f).cmp(u);) c.redIAdd(u); + for (var d = this.pow(c, i), l = this.pow(e, i.addn(1).iushrn(1)), h = this.pow(e, i), p = s; 0 !== h.cmp(o);) { + for (var y = h, b = 0; 0 !== y.cmp(o); b++) y = y.redSqr(); + n(b < p); + var m = this.pow(d, new a(1).iushln(p - b - 1)); + l = l.redMul(m), d = m.redSqr(), h = h.redMul(d), p = b + } + return l + }, k.prototype.invm = function (e) { + var t = e._invmp(this.m); + return 0 !== t.negative ? (t.negative = 0, this.imod(t).redNeg()) : this.imod(t) + }, k.prototype.pow = function (e, t) { + if (t.isZero()) return new a(1).toRed(this); + if (0 === t.cmpn(1)) return e.clone(); + var r = new Array(16); + r[0] = new a(1).toRed(this), r[1] = e; + for (var n = 2; n < r.length; n++) r[n] = this.mul(r[n - 1], e); + var i = r[0], s = 0, o = 0, u = t.bitLength() % 26; + for (0 === u && (u = 26), n = t.length - 1; n >= 0; n--) { + for (var f = t.words[n], c = u - 1; c >= 0; c--) { + var d = f >> c & 1; + i !== r[0] && (i = this.sqr(i)), 0 !== d || 0 !== s ? (s <<= 1, s |= d, (4 === ++o || 0 === n && 0 === c) && (i = this.mul(i, r[s]), o = 0, s = 0)) : o = 0 + } + u = 26 + } + return i + }, 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 + }, a.mont = function (e) { + return new A(e) + }, i(A, k), A.prototype.convertTo = function (e) { + return this.imod(e.ushln(this.shift)) + }, A.prototype.convertFrom = function (e) { + var t = this.imod(e.mul(this.rinv)); + return t.red = null, t + }, A.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), + i = r.isub(n).iushrn(this.shift), a = i; + return i.cmp(this.m) >= 0 ? a = i.isub(this.m) : i.cmpn(0) < 0 && (a = i.iadd(this.m)), a._forceRed(this) + }, A.prototype.mul = function (e, t) { + if (e.isZero() || t.isZero()) return new a(0)._forceRed(this); + var r = e.mul(t), n = r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), + i = r.isub(n).iushrn(this.shift), s = i; + return i.cmp(this.m) >= 0 ? s = i.isub(this.m) : i.cmpn(0) < 0 && (s = i.iadd(this.m)), s._forceRed(this) + }, A.prototype.invm = function (e) { + return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this) + } + }(void 0 === t || t, this) + }, {buffer: 42}], + 41: [function (e, t, r) { + var n; + + function i(e) { + this.rand = e + } + + if (t.exports = function (e) { + return n || (n = new i(null)), n.generate(e) + }, t.exports.Rand = i, i.prototype.generate = function (e) { + return this._rand(e) + }, i.prototype._rand = function (e) { + if (this.rand.getBytes) return this.rand.getBytes(e); + for (var t = new Uint8Array(e), r = 0; r < t.length; r++) t[r] = this.rand.getByte(); + return t + }, "object" == typeof self) self.crypto && self.crypto.getRandomValues ? i.prototype._rand = function (e) { + var t = new Uint8Array(e); + return self.crypto.getRandomValues(t), t + } : self.msCrypto && self.msCrypto.getRandomValues ? i.prototype._rand = function (e) { + var t = new Uint8Array(e); + return self.msCrypto.getRandomValues(t), t + } : "object" == typeof window && (i.prototype._rand = function () { + throw new Error("Not implemented yet") + }); else try { + var a = e("crypto"); + if ("function" != typeof a.randomBytes) throw new Error("Not supported"); + i.prototype._rand = function (e) { + return a.randomBytes(e) + } + } catch (e) { + } + }, {crypto: "crypto"}], + 42: [function (e, t, r) { + }, {}], + 43: [function (e, t, r) { + "use strict"; + var n = e("base64-js"), i = e("ieee754"); + r.Buffer = o, r.SlowBuffer = function (e) { + +e != e && (e = 0); + return o.alloc(+e) + }, r.INSPECT_MAX_BYTES = 50; + var a = 2147483647; + + function s(e) { + if (e > a) throw new RangeError("Invalid typed array length"); + var t = new Uint8Array(e); + return t.__proto__ = o.prototype, t + } + + function o(e, t, r) { + if ("number" == typeof e) { + if ("string" == typeof t) throw new Error("If encoding is specified then the first argument must be a string"); + return c(e) + } + return u(e, t, r) + } + + function u(e, t, r) { + if ("number" == typeof e) throw new TypeError('"value" argument must not be a number'); + return L(e) ? function (e, t, r) { + if (t < 0 || e.byteLength < t) throw new RangeError("'offset' is out of bounds"); + if (e.byteLength < t + (r || 0)) throw new RangeError("'length' is out of bounds"); + var n; + n = void 0 === t && void 0 === r ? new Uint8Array(e) : void 0 === r ? new Uint8Array(e, t) : new Uint8Array(e, t, r); + return n.__proto__ = o.prototype, n + }(e, t, r) : "string" == typeof e ? function (e, t) { + "string" == typeof t && "" !== t || (t = "utf8"); + if (!o.isEncoding(t)) throw new TypeError('"encoding" must be a valid string encoding'); + var r = 0 | h(e, t), n = s(r), i = n.write(e, t); + i !== r && (n = n.slice(0, i)); + return n + }(e, t) : function (e) { + if (o.isBuffer(e)) { + var t = 0 | l(e.length), r = s(t); + return 0 === r.length ? r : (e.copy(r, 0, 0, t), r) + } + if (e) { + if (F(e) || "length" in e) return "number" != typeof e.length || N(e.length) ? s(0) : d(e); + if ("Buffer" === e.type && Array.isArray(e.data)) return d(e.data) + } + throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.") + }(e) + } + + function f(e) { + if ("number" != typeof e) throw new TypeError('"size" argument must be a number'); + if (e < 0) throw new RangeError('"size" argument must not be negative') + } + + function c(e) { + return f(e), s(e < 0 ? 0 : 0 | l(e)) + } + + function d(e) { + for (var t = e.length < 0 ? 0 : 0 | l(e.length), r = s(t), n = 0; n < t; n += 1) r[n] = 255 & e[n]; + return r + } + + function l(e) { + if (e >= a) throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + a.toString(16) + " bytes"); + return 0 | e + } + + function h(e, t) { + if (o.isBuffer(e)) return e.length; + if (F(e) || L(e)) return e.byteLength; + "string" != typeof e && (e = "" + e); + var r = e.length; + if (0 === r) return 0; + for (var n = !1; ;) switch (t) { + case"ascii": + case"latin1": + case"binary": + return r; + case"utf8": + case"utf-8": + case void 0: + return R(e).length; + case"ucs2": + case"ucs-2": + case"utf16le": + case"utf-16le": + return 2 * r; + case"hex": + return r >>> 1; + case"base64": + return D(e).length; + default: + if (n) return R(e).length; + t = ("" + t).toLowerCase(), n = !0 + } + } + + function p(e, t, r) { + var n = e[t]; + e[t] = e[r], e[r] = n + } + + function y(e, t, r, n, i) { + if (0 === e.length) return -1; + if ("string" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), N(r = +r) && (r = i ? 0 : e.length - 1), r < 0 && (r = e.length + r), r >= e.length) { + if (i) return -1; + r = e.length - 1 + } else if (r < 0) { + if (!i) return -1; + r = 0 + } + if ("string" == typeof t && (t = o.from(t, n)), o.isBuffer(t)) return 0 === t.length ? -1 : b(e, t, r, n, i); + if ("number" == typeof t) return t &= 255, "function" == typeof Uint8Array.prototype.indexOf ? i ? Uint8Array.prototype.indexOf.call(e, t, r) : Uint8Array.prototype.lastIndexOf.call(e, t, r) : b(e, [t], r, n, i); + throw new TypeError("val must be string, number or Buffer") + } + + function b(e, t, r, n, i) { + var a, s = 1, o = e.length, u = t.length; + if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" === n || "utf16le" === n || "utf-16le" === n)) { + if (e.length < 2 || t.length < 2) return -1; + s = 2, o /= 2, u /= 2, r /= 2 + } + + function f(e, t) { + return 1 === s ? e[t] : e.readUInt16BE(t * s) + } + + if (i) { + var c = -1; + for (a = r; a < o; a++) if (f(e, a) === f(t, -1 === c ? 0 : a - c)) { + if (-1 === c && (c = a), a - c + 1 === u) return c * s + } else -1 !== c && (a -= a - c), c = -1 + } else for (r + u > o && (r = o - u), a = r; a >= 0; a--) { + for (var d = !0, l = 0; l < u; l++) if (f(e, a + l) !== f(t, l)) { + d = !1; + break + } + if (d) return a + } + return -1 + } + + function m(e, t, r, n) { + r = Number(r) || 0; + var i = e.length - r; + n ? (n = Number(n)) > i && (n = i) : n = i; + var a = t.length; + if (a % 2 != 0) throw new TypeError("Invalid hex string"); + n > a / 2 && (n = a / 2); + for (var s = 0; s < n; ++s) { + var o = parseInt(t.substr(2 * s, 2), 16); + if (N(o)) return s; + e[r + s] = o + } + return s + } + + function g(e, t, r, n) { + return z(R(t, e.length - r), e, r, n) + } + + function v(e, t, r, n) { + return z(function (e) { + for (var t = [], r = 0; r < e.length; ++r) t.push(255 & e.charCodeAt(r)); + return t + }(t), e, r, n) + } + + function _(e, t, r, n) { + return v(e, t, r, n) + } + + function w(e, t, r, n) { + return z(D(t), e, r, n) + } + + function k(e, t, r, n) { + return z(function (e, t) { + for (var r, n, i, a = [], s = 0; s < e.length && !((t -= 2) < 0); ++s) r = e.charCodeAt(s), n = r >> 8, i = r % 256, a.push(i), a.push(n); + return a + }(t, e.length - r), e, r, n) + } + + function A(e, t, r) { + return 0 === t && r === e.length ? n.fromByteArray(e) : n.fromByteArray(e.slice(t, r)) + } + + function x(e, t, r) { + r = Math.min(e.length, r); + for (var n = [], i = t; i < r;) { + var a, s, o, u, f = e[i], c = null, d = f > 239 ? 4 : f > 223 ? 3 : f > 191 ? 2 : 1; + if (i + d <= r) switch (d) { + case 1: + f < 128 && (c = f); + break; + case 2: + 128 == (192 & (a = e[i + 1])) && (u = (31 & f) << 6 | 63 & a) > 127 && (c = u); + break; + case 3: + a = e[i + 1], s = e[i + 2], 128 == (192 & a) && 128 == (192 & s) && (u = (15 & f) << 12 | (63 & a) << 6 | 63 & s) > 2047 && (u < 55296 || u > 57343) && (c = u); + break; + case 4: + a = e[i + 1], s = e[i + 2], o = e[i + 3], 128 == (192 & a) && 128 == (192 & s) && 128 == (192 & o) && (u = (15 & f) << 18 | (63 & a) << 12 | (63 & s) << 6 | 63 & o) > 65535 && u < 1114112 && (c = u) + } + null === c ? (c = 65533, d = 1) : c > 65535 && (c -= 65536, n.push(c >>> 10 & 1023 | 55296), c = 56320 | 1023 & c), n.push(c), i += d + } + return function (e) { + var t = e.length; + if (t <= S) return String.fromCharCode.apply(String, e); + var r = "", n = 0; + for (; n < t;) r += String.fromCharCode.apply(String, e.slice(n, n += S)); + return r + }(n) + } + + r.kMaxLength = a, o.TYPED_ARRAY_SUPPORT = function () { + try { + var e = new Uint8Array(1); + return e.__proto__ = { + __proto__: Uint8Array.prototype, foo: function () { + return 42 + } + }, 42 === e.foo() + } catch (e) { + return !1 + } + }(), o.TYPED_ARRAY_SUPPORT || "undefined" == typeof console || "function" != typeof console.error || console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."), "undefined" != typeof Symbol && Symbol.species && o[Symbol.species] === o && Object.defineProperty(o, Symbol.species, { + value: null, + configurable: !0, + enumerable: !1, + writable: !1 + }), o.poolSize = 8192, o.from = function (e, t, r) { + return u(e, t, r) + }, o.prototype.__proto__ = Uint8Array.prototype, o.__proto__ = Uint8Array, o.alloc = function (e, t, r) { + return function (e, t, r) { + return f(e), e <= 0 ? s(e) : void 0 !== t ? "string" == typeof r ? s(e).fill(t, r) : s(e).fill(t) : s(e) + }(e, t, r) + }, o.allocUnsafe = function (e) { + return c(e) + }, o.allocUnsafeSlow = function (e) { + return c(e) + }, o.isBuffer = function (e) { + return null != e && !0 === e._isBuffer + }, o.compare = function (e, t) { + if (!o.isBuffer(e) || !o.isBuffer(t)) throw new TypeError("Arguments must be Buffers"); + if (e === t) return 0; + for (var r = e.length, n = t.length, i = 0, a = Math.min(r, n); i < a; ++i) if (e[i] !== t[i]) { + r = e[i], n = t[i]; + break + } + return r < n ? -1 : n < r ? 1 : 0 + }, o.isEncoding = function (e) { + switch (String(e).toLowerCase()) { + case"hex": + case"utf8": + case"utf-8": + case"ascii": + case"latin1": + case"binary": + case"base64": + case"ucs2": + case"ucs-2": + case"utf16le": + case"utf-16le": + return !0; + default: + return !1 + } + }, o.concat = function (e, t) { + if (!Array.isArray(e)) throw new TypeError('"list" argument must be an Array of Buffers'); + if (0 === e.length) return o.alloc(0); + var r; + if (void 0 === t) for (t = 0, r = 0; r < e.length; ++r) t += e[r].length; + var n = o.allocUnsafe(t), i = 0; + for (r = 0; r < e.length; ++r) { + var a = e[r]; + if (!o.isBuffer(a)) throw new TypeError('"list" argument must be an Array of Buffers'); + a.copy(n, i), i += a.length + } + return n + }, o.byteLength = h, o.prototype._isBuffer = !0, o.prototype.swap16 = function () { + var e = this.length; + if (e % 2 != 0) throw new RangeError("Buffer size must be a multiple of 16-bits"); + for (var t = 0; t < e; t += 2) p(this, t, t + 1); + return this + }, o.prototype.swap32 = function () { + var e = this.length; + if (e % 4 != 0) throw new RangeError("Buffer size must be a multiple of 32-bits"); + for (var t = 0; t < e; t += 4) p(this, t, t + 3), p(this, t + 1, t + 2); + return this + }, o.prototype.swap64 = function () { + var e = this.length; + if (e % 8 != 0) throw new RangeError("Buffer size must be a multiple of 64-bits"); + for (var t = 0; t < e; t += 8) p(this, t, t + 7), p(this, t + 1, t + 6), p(this, t + 2, t + 5), p(this, t + 3, t + 4); + return this + }, o.prototype.toString = function () { + var e = this.length; + return 0 === e ? "" : 0 === arguments.length ? x(this, 0, e) : function (e, t, r) { + var n = !1; + if ((void 0 === t || t < 0) && (t = 0), t > this.length) return ""; + if ((void 0 === r || r > this.length) && (r = this.length), r <= 0) return ""; + if ((r >>>= 0) <= (t >>>= 0)) return ""; + for (e || (e = "utf8"); ;) switch (e) { + case"hex": + return C(this, t, r); + case"utf8": + case"utf-8": + return x(this, t, r); + case"ascii": + return E(this, t, r); + case"latin1": + case"binary": + return M(this, t, r); + case"base64": + return A(this, t, r); + case"ucs2": + case"ucs-2": + case"utf16le": + case"utf-16le": + return j(this, t, r); + default: + if (n) throw new TypeError("Unknown encoding: " + e); + e = (e + "").toLowerCase(), n = !0 + } + }.apply(this, arguments) + }, o.prototype.equals = function (e) { + if (!o.isBuffer(e)) throw new TypeError("Argument must be a Buffer"); + return this === e || 0 === o.compare(this, e) + }, o.prototype.inspect = function () { + var e = "", t = r.INSPECT_MAX_BYTES; + return this.length > 0 && (e = this.toString("hex", 0, t).match(/.{2}/g).join(" "), this.length > t && (e += " ... ")), "" + }, o.prototype.compare = function (e, t, r, n, i) { + if (!o.isBuffer(e)) throw new TypeError("Argument must be a Buffer"); + if (void 0 === t && (t = 0), void 0 === r && (r = e ? e.length : 0), void 0 === n && (n = 0), void 0 === i && (i = this.length), t < 0 || r > e.length || n < 0 || i > this.length) throw new RangeError("out of range index"); + if (n >= i && t >= r) return 0; + if (n >= i) return -1; + if (t >= r) return 1; + if (t >>>= 0, r >>>= 0, n >>>= 0, i >>>= 0, this === e) return 0; + for (var a = i - n, s = r - t, u = Math.min(a, s), f = this.slice(n, i), c = e.slice(t, r), d = 0; d < u; ++d) if (f[d] !== c[d]) { + a = f[d], s = c[d]; + break + } + return a < s ? -1 : s < a ? 1 : 0 + }, o.prototype.includes = function (e, t, r) { + return -1 !== this.indexOf(e, t, r) + }, o.prototype.indexOf = function (e, t, r) { + return y(this, e, t, r, !0) + }, o.prototype.lastIndexOf = function (e, t, r) { + return y(this, e, t, r, !1) + }, o.prototype.write = function (e, t, r, n) { + if (void 0 === t) n = "utf8", r = this.length, t = 0; else if (void 0 === r && "string" == typeof t) n = t, r = this.length, t = 0; else { + if (!isFinite(t)) throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported"); + t >>>= 0, isFinite(r) ? (r >>>= 0, void 0 === n && (n = "utf8")) : (n = r, r = void 0) + } + var i = this.length - t; + if ((void 0 === r || r > i) && (r = i), e.length > 0 && (r < 0 || t < 0) || t > this.length) throw new RangeError("Attempt to write outside buffer bounds"); + n || (n = "utf8"); + for (var a = !1; ;) switch (n) { + case"hex": + return m(this, e, t, r); + case"utf8": + case"utf-8": + return g(this, e, t, r); + case"ascii": + return v(this, e, t, r); + case"latin1": + case"binary": + return _(this, e, t, r); + case"base64": + return w(this, e, t, r); + case"ucs2": + case"ucs-2": + case"utf16le": + case"utf-16le": + return k(this, e, t, r); + default: + if (a) throw new TypeError("Unknown encoding: " + n); + n = ("" + n).toLowerCase(), a = !0 + } + }, o.prototype.toJSON = function () { + return {type: "Buffer", data: Array.prototype.slice.call(this._arr || this, 0)} + }; + var S = 4096; + + function E(e, t, r) { + var n = ""; + r = Math.min(e.length, r); + for (var i = t; i < r; ++i) n += String.fromCharCode(127 & e[i]); + return n + } + + function M(e, t, r) { + var n = ""; + r = Math.min(e.length, r); + for (var i = t; i < r; ++i) n += String.fromCharCode(e[i]); + return n + } + + function C(e, t, r) { + var n = e.length; + (!t || t < 0) && (t = 0), (!r || r < 0 || r > n) && (r = n); + for (var i = "", a = t; a < r; ++a) i += O(e[a]); + return i + } + + function j(e, t, r) { + for (var n = e.slice(t, r), i = "", a = 0; a < n.length; a += 2) i += String.fromCharCode(n[a] + 256 * n[a + 1]); + return i + } + + function P(e, t, r) { + if (e % 1 != 0 || e < 0) throw new RangeError("offset is not uint"); + if (e + t > r) throw new RangeError("Trying to access beyond buffer length") + } + + function B(e, t, r, n, i, a) { + if (!o.isBuffer(e)) throw new TypeError('"buffer" argument must be a Buffer instance'); + if (t > i || t < a) throw new RangeError('"value" argument is out of bounds'); + if (r + n > e.length) throw new RangeError("Index out of range") + } + + function U(e, t, r, n, i, a) { + if (r + n > e.length) throw new RangeError("Index out of range"); + if (r < 0) throw new RangeError("Index out of range") + } + + function K(e, t, r, n, a) { + return t = +t, r >>>= 0, a || U(e, 0, r, 4), i.write(e, t, r, n, 23, 4), r + 4 + } + + function I(e, t, r, n, a) { + return t = +t, r >>>= 0, a || U(e, 0, r, 8), i.write(e, t, r, n, 52, 8), r + 8 + } + + o.prototype.slice = function (e, t) { + var r = this.length; + e = ~~e, t = void 0 === t ? r : ~~t, e < 0 ? (e += r) < 0 && (e = 0) : e > r && (e = r), t < 0 ? (t += r) < 0 && (t = 0) : t > r && (t = r), t < e && (t = e); + var n = this.subarray(e, t); + return n.__proto__ = o.prototype, n + }, o.prototype.readUIntLE = function (e, t, r) { + e >>>= 0, t >>>= 0, r || P(e, t, this.length); + for (var n = this[e], i = 1, a = 0; ++a < t && (i *= 256);) n += this[e + a] * i; + return n + }, o.prototype.readUIntBE = function (e, t, r) { + e >>>= 0, t >>>= 0, r || P(e, t, this.length); + for (var n = this[e + --t], i = 1; t > 0 && (i *= 256);) n += this[e + --t] * i; + return n + }, o.prototype.readUInt8 = function (e, t) { + return e >>>= 0, t || P(e, 1, this.length), this[e] + }, o.prototype.readUInt16LE = function (e, t) { + return e >>>= 0, t || P(e, 2, this.length), this[e] | this[e + 1] << 8 + }, o.prototype.readUInt16BE = function (e, t) { + return e >>>= 0, t || P(e, 2, this.length), this[e] << 8 | this[e + 1] + }, o.prototype.readUInt32LE = function (e, t) { + return e >>>= 0, t || P(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3] + }, o.prototype.readUInt32BE = function (e, t) { + return e >>>= 0, t || P(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]) + }, o.prototype.readIntLE = function (e, t, r) { + e >>>= 0, t >>>= 0, r || P(e, t, this.length); + for (var n = this[e], i = 1, a = 0; ++a < t && (i *= 256);) n += this[e + a] * i; + return n >= (i *= 128) && (n -= Math.pow(2, 8 * t)), n + }, o.prototype.readIntBE = function (e, t, r) { + e >>>= 0, t >>>= 0, r || P(e, t, this.length); + for (var n = t, i = 1, a = this[e + --n]; n > 0 && (i *= 256);) a += this[e + --n] * i; + return a >= (i *= 128) && (a -= Math.pow(2, 8 * t)), a + }, o.prototype.readInt8 = function (e, t) { + return e >>>= 0, t || P(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e] + }, o.prototype.readInt16LE = function (e, t) { + e >>>= 0, t || P(e, 2, this.length); + var r = this[e] | this[e + 1] << 8; + return 32768 & r ? 4294901760 | r : r + }, o.prototype.readInt16BE = function (e, t) { + e >>>= 0, t || P(e, 2, this.length); + var r = this[e + 1] | this[e] << 8; + return 32768 & r ? 4294901760 | r : r + }, o.prototype.readInt32LE = function (e, t) { + return e >>>= 0, t || P(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24 + }, o.prototype.readInt32BE = function (e, t) { + return e >>>= 0, t || P(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3] + }, o.prototype.readFloatLE = function (e, t) { + return e >>>= 0, t || P(e, 4, this.length), i.read(this, e, !0, 23, 4) + }, o.prototype.readFloatBE = function (e, t) { + return e >>>= 0, t || P(e, 4, this.length), i.read(this, e, !1, 23, 4) + }, o.prototype.readDoubleLE = function (e, t) { + return e >>>= 0, t || P(e, 8, this.length), i.read(this, e, !0, 52, 8) + }, o.prototype.readDoubleBE = function (e, t) { + return e >>>= 0, t || P(e, 8, this.length), i.read(this, e, !1, 52, 8) + }, o.prototype.writeUIntLE = function (e, t, r, n) { + (e = +e, t >>>= 0, r >>>= 0, n) || B(this, e, t, r, Math.pow(2, 8 * r) - 1, 0); + var i = 1, a = 0; + for (this[t] = 255 & e; ++a < r && (i *= 256);) this[t + a] = e / i & 255; + return t + r + }, o.prototype.writeUIntBE = function (e, t, r, n) { + (e = +e, t >>>= 0, r >>>= 0, n) || B(this, e, t, r, Math.pow(2, 8 * r) - 1, 0); + var i = r - 1, a = 1; + for (this[t + i] = 255 & e; --i >= 0 && (a *= 256);) this[t + i] = e / a & 255; + return t + r + }, o.prototype.writeUInt8 = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 1, 255, 0), this[t] = 255 & e, t + 1 + }, o.prototype.writeUInt16LE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 2, 65535, 0), this[t] = 255 & e, this[t + 1] = e >>> 8, t + 2 + }, o.prototype.writeUInt16BE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 2, 65535, 0), this[t] = e >>> 8, this[t + 1] = 255 & e, t + 2 + }, o.prototype.writeUInt32LE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 4, 4294967295, 0), this[t + 3] = e >>> 24, this[t + 2] = e >>> 16, this[t + 1] = e >>> 8, this[t] = 255 & e, t + 4 + }, o.prototype.writeUInt32BE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 4, 4294967295, 0), this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e, t + 4 + }, o.prototype.writeIntLE = function (e, t, r, n) { + if (e = +e, t >>>= 0, !n) { + var i = Math.pow(2, 8 * r - 1); + B(this, e, t, r, i - 1, -i) + } + var a = 0, s = 1, o = 0; + for (this[t] = 255 & e; ++a < r && (s *= 256);) e < 0 && 0 === o && 0 !== this[t + a - 1] && (o = 1), this[t + a] = (e / s >> 0) - o & 255; + return t + r + }, o.prototype.writeIntBE = function (e, t, r, n) { + if (e = +e, t >>>= 0, !n) { + var i = Math.pow(2, 8 * r - 1); + B(this, e, t, r, i - 1, -i) + } + var a = r - 1, s = 1, o = 0; + for (this[t + a] = 255 & e; --a >= 0 && (s *= 256);) e < 0 && 0 === o && 0 !== this[t + a + 1] && (o = 1), this[t + a] = (e / s >> 0) - o & 255; + return t + r + }, o.prototype.writeInt8 = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 1, 127, -128), e < 0 && (e = 255 + e + 1), this[t] = 255 & e, t + 1 + }, o.prototype.writeInt16LE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 2, 32767, -32768), this[t] = 255 & e, this[t + 1] = e >>> 8, t + 2 + }, o.prototype.writeInt16BE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 2, 32767, -32768), this[t] = e >>> 8, this[t + 1] = 255 & e, t + 2 + }, o.prototype.writeInt32LE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 4, 2147483647, -2147483648), this[t] = 255 & e, this[t + 1] = e >>> 8, this[t + 2] = e >>> 16, this[t + 3] = e >>> 24, t + 4 + }, o.prototype.writeInt32BE = function (e, t, r) { + return e = +e, t >>>= 0, r || B(this, e, t, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), this[t] = e >>> 24, this[t + 1] = e >>> 16, this[t + 2] = e >>> 8, this[t + 3] = 255 & e, t + 4 + }, o.prototype.writeFloatLE = function (e, t, r) { + return K(this, e, t, !0, r) + }, o.prototype.writeFloatBE = function (e, t, r) { + return K(this, e, t, !1, r) + }, o.prototype.writeDoubleLE = function (e, t, r) { + return I(this, e, t, !0, r) + }, o.prototype.writeDoubleBE = function (e, t, r) { + return I(this, e, t, !1, r) + }, o.prototype.copy = function (e, t, r, n) { + if (r || (r = 0), n || 0 === n || (n = this.length), t >= e.length && (t = e.length), t || (t = 0), n > 0 && n < r && (n = r), n === r) return 0; + if (0 === e.length || 0 === this.length) return 0; + if (t < 0) throw new RangeError("targetStart out of bounds"); + if (r < 0 || r >= this.length) throw new RangeError("sourceStart out of bounds"); + if (n < 0) throw new RangeError("sourceEnd out of bounds"); + n > this.length && (n = this.length), e.length - t < n - r && (n = e.length - t + r); + var i, a = n - r; + if (this === e && r < t && t < n) for (i = a - 1; i >= 0; --i) e[i + t] = this[i + r]; else if (a < 1e3) for (i = 0; i < a; ++i) e[i + t] = this[i + r]; else Uint8Array.prototype.set.call(e, this.subarray(r, r + a), t); + return a + }, o.prototype.fill = function (e, t, r, n) { + if ("string" == typeof e) { + if ("string" == typeof t ? (n = t, t = 0, r = this.length) : "string" == typeof r && (n = r, r = this.length), 1 === e.length) { + var i = e.charCodeAt(0); + i < 256 && (e = i) + } + if (void 0 !== n && "string" != typeof n) throw new TypeError("encoding must be a string"); + if ("string" == typeof n && !o.isEncoding(n)) throw new TypeError("Unknown encoding: " + n) + } else "number" == typeof e && (e &= 255); + if (t < 0 || this.length < t || this.length < r) throw new RangeError("Out of range index"); + if (r <= t) return this; + var a; + if (t >>>= 0, r = void 0 === r ? this.length : r >>> 0, e || (e = 0), "number" == typeof e) for (a = t; a < r; ++a) this[a] = e; else { + var s = o.isBuffer(e) ? e : new o(e, n), u = s.length; + for (a = 0; a < r - t; ++a) this[a + t] = s[a % u] + } + return this + }; + var T = /[^+/0-9A-Za-z-_]/g; + + function O(e) { + return e < 16 ? "0" + e.toString(16) : e.toString(16) + } + + function R(e, t) { + var r; + t = t || 1 / 0; + for (var n = e.length, i = null, a = [], s = 0; s < n; ++s) { + if ((r = e.charCodeAt(s)) > 55295 && r < 57344) { + if (!i) { + if (r > 56319) { + (t -= 3) > -1 && a.push(239, 191, 189); + continue + } + if (s + 1 === n) { + (t -= 3) > -1 && a.push(239, 191, 189); + continue + } + i = r; + continue + } + if (r < 56320) { + (t -= 3) > -1 && a.push(239, 191, 189), i = r; + continue + } + r = 65536 + (i - 55296 << 10 | r - 56320) + } else i && (t -= 3) > -1 && a.push(239, 191, 189); + if (i = null, r < 128) { + if ((t -= 1) < 0) break; + a.push(r) + } else if (r < 2048) { + if ((t -= 2) < 0) break; + a.push(r >> 6 | 192, 63 & r | 128) + } else if (r < 65536) { + if ((t -= 3) < 0) break; + a.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128) + } else { + if (!(r < 1114112)) throw new Error("Invalid code point"); + if ((t -= 4) < 0) break; + a.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128) + } + } + return a + } + + function D(e) { + return n.toByteArray(function (e) { + if ((e = e.trim().replace(T, "")).length < 2) return ""; + for (; e.length % 4 != 0;) e += "="; + return e + }(e)) + } + + function z(e, t, r, n) { + for (var i = 0; i < n && !(i + r >= t.length || i >= e.length); ++i) t[i + r] = e[i]; + return i + } + + function L(e) { + return e instanceof ArrayBuffer || null != e && null != e.constructor && "ArrayBuffer" === e.constructor.name && "number" == typeof e.byteLength + } + + function F(e) { + return "function" == typeof ArrayBuffer.isView && ArrayBuffer.isView(e) + } + + function N(e) { + return e != e + } + }, {"base64-js": 39, ieee754: 281}], + 44: [function (e, t, r) { + e("../../modules/es6.array.fill"), t.exports = e("../../modules/_core").Array.fill + }, {"../../modules/_core": 167, "../../modules/es6.array.fill": 237}], + 45: [function (e, t, r) { + e("../../modules/es6.array.find"), t.exports = e("../../modules/_core").Array.find + }, {"../../modules/_core": 167, "../../modules/es6.array.find": 238}], + 46: [function (e, t, r) { + e("../../modules/es6.string.iterator"), e("../../modules/es6.array.from"), t.exports = e("../../modules/_core").Array.from + }, {"../../modules/_core": 167, "../../modules/es6.array.from": 239, "../../modules/es6.string.iterator": 243}], + 47: [function (e, t, r) { + e("../modules/es6.object.to-string"), e("../modules/es6.string.iterator"), e("../modules/web.dom.iterable"), e("../modules/es6.promise"), e("../modules/es7.promise.finally"), e("../modules/es7.promise.try"), t.exports = e("../modules/_core").Promise + }, { + "../modules/_core": 167, + "../modules/es6.object.to-string": 241, + "../modules/es6.promise": 242, + "../modules/es6.string.iterator": 243, + "../modules/es7.promise.finally": 247, + "../modules/es7.promise.try": 248, + "../modules/web.dom.iterable": 251 + }], + 48: [function (e, t, r) { + e("../../modules/es6.string.repeat"), t.exports = e("../../modules/_core").String.repeat + }, {"../../modules/_core": 167, "../../modules/es6.string.repeat": 244}], + 49: [function (e, t, r) { + e("../../modules/es6.symbol"), e("../../modules/es6.object.to-string"), e("../../modules/es7.symbol.async-iterator"), e("../../modules/es7.symbol.observable"), t.exports = e("../../modules/_core").Symbol + }, { + "../../modules/_core": 167, + "../../modules/es6.object.to-string": 241, + "../../modules/es6.symbol": 245, + "../../modules/es7.symbol.async-iterator": 249, + "../../modules/es7.symbol.observable": 250 + }], + 50: [function (e, t, r) { + e("../../modules/es6.typed.uint8-array"), t.exports = e("../../modules/_core").Uint8Array + }, {"../../modules/_core": 167, "../../modules/es6.typed.uint8-array": 246}], + 51: [function (e, t, r) { + arguments[4][46][0].apply(r, arguments) + }, { + "../../modules/_core": 70, + "../../modules/es6.array.from": 139, + "../../modules/es6.string.iterator": 148, + dup: 46 + }], + 52: [function (e, t, r) { + e("../modules/web.dom.iterable"), e("../modules/es6.string.iterator"), t.exports = e("../modules/core.get-iterator") + }, { + "../modules/core.get-iterator": 137, + "../modules/es6.string.iterator": 148, + "../modules/web.dom.iterable": 154 + }], + 53: [function (e, t, r) { + e("../modules/web.dom.iterable"), e("../modules/es6.string.iterator"), t.exports = e("../modules/core.is-iterable") + }, { + "../modules/core.is-iterable": 138, + "../modules/es6.string.iterator": 148, + "../modules/web.dom.iterable": 154 + }], + 54: [function (e, t, r) { + var n = e("../../modules/_core"), i = n.JSON || (n.JSON = {stringify: JSON.stringify}); + t.exports = function (e) { + return i.stringify.apply(i, arguments) + } + }, {"../../modules/_core": 70}], + 55: [function (e, t, r) { + e("../../modules/es6.object.create"); + var n = e("../../modules/_core").Object; + t.exports = function (e, t) { + return n.create(e, t) + } + }, {"../../modules/_core": 70, "../../modules/es6.object.create": 141}], + 56: [function (e, t, r) { + e("../../modules/es6.object.define-property"); + var n = e("../../modules/_core").Object; + t.exports = function (e, t, r) { + return n.defineProperty(e, t, r) + } + }, {"../../modules/_core": 70, "../../modules/es6.object.define-property": 142}], + 57: [function (e, t, r) { + e("../../modules/es6.object.freeze"), t.exports = e("../../modules/_core").Object.freeze + }, {"../../modules/_core": 70, "../../modules/es6.object.freeze": 143}], + 58: [function (e, t, r) { + e("../../modules/es6.object.get-prototype-of"), t.exports = e("../../modules/_core").Object.getPrototypeOf + }, {"../../modules/_core": 70, "../../modules/es6.object.get-prototype-of": 144}], + 59: [function (e, t, r) { + e("../../modules/es6.object.set-prototype-of"), t.exports = e("../../modules/_core").Object.setPrototypeOf + }, {"../../modules/_core": 70, "../../modules/es6.object.set-prototype-of": 145}], + 60: [function (e, t, r) { + arguments[4][47][0].apply(r, arguments) + }, { + "../modules/_core": 70, + "../modules/es6.object.to-string": 146, + "../modules/es6.promise": 147, + "../modules/es6.string.iterator": 148, + "../modules/es7.promise.finally": 150, + "../modules/es7.promise.try": 151, + "../modules/web.dom.iterable": 154, + dup: 47 + }], + 61: [function (e, t, r) { + arguments[4][49][0].apply(r, arguments) + }, { + "../../modules/_core": 70, + "../../modules/es6.object.to-string": 146, + "../../modules/es6.symbol": 149, + "../../modules/es7.symbol.async-iterator": 152, + "../../modules/es7.symbol.observable": 153, + dup: 49 + }], + 62: [function (e, t, r) { + e("../../modules/es6.string.iterator"), e("../../modules/web.dom.iterable"), t.exports = e("../../modules/_wks-ext").f("iterator") + }, { + "../../modules/_wks-ext": 134, + "../../modules/es6.string.iterator": 148, + "../../modules/web.dom.iterable": 154 + }], + 63: [function (e, t, r) { + t.exports = function (e) { + if ("function" != typeof e) throw TypeError(e + " is not a function!"); + return e + } + }, {}], + 64: [function (e, t, r) { + t.exports = function () { + } + }, {}], + 65: [function (e, t, r) { + t.exports = function (e, t, r, n) { + if (!(e instanceof t) || void 0 !== n && n in e) throw TypeError(r + ": incorrect invocation!"); + return e + } + }, {}], + 66: [function (e, t, r) { + var n = e("./_is-object"); + t.exports = function (e) { + if (!n(e)) throw TypeError(e + " is not an object!"); + return e + } + }, {"./_is-object": 90}], + 67: [function (e, t, r) { + var n = e("./_to-iobject"), i = e("./_to-length"), a = e("./_to-absolute-index"); + t.exports = function (e) { + return function (t, r, s) { + var o, u = n(t), f = i(u.length), c = a(s, f); + if (e && r != r) { + for (; f > c;) if ((o = u[c++]) != o) return !0 + } else for (; f > c; c++) if ((e || c in u) && u[c] === r) return e || c || 0; + return !e && -1 + } + } + }, {"./_to-absolute-index": 126, "./_to-iobject": 128, "./_to-length": 129}], + 68: [function (e, t, r) { + var n = e("./_cof"), i = e("./_wks")("toStringTag"), a = "Arguments" == n(function () { + return arguments + }()); + t.exports = function (e) { + var t, r, s; + return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof(r = function (e, t) { + try { + return e[t] + } catch (e) { + } + }(t = Object(e), i)) ? r : a ? n(t) : "Object" == (s = n(t)) && "function" == typeof t.callee ? "Arguments" : s + } + }, {"./_cof": 69, "./_wks": 135}], + 69: [function (e, t, r) { + var n = {}.toString; + t.exports = function (e) { + return n.call(e).slice(8, -1) + } + }, {}], + 70: [function (e, t, r) { + var n = t.exports = {version: "2.5.3"}; + "number" == typeof __e && (__e = n) + }, {}], + 71: [function (e, t, r) { + "use strict"; + var n = e("./_object-dp"), i = e("./_property-desc"); + t.exports = function (e, t, r) { + t in e ? n.f(e, t, i(0, r)) : e[t] = r + } + }, {"./_object-dp": 102, "./_property-desc": 115}], + 72: [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, i) { + return e.call(t, r, n, i) + } + } + return function () { + return e.apply(t, arguments) + } + } + }, {"./_a-function": 63}], + 73: [function (e, t, r) { + t.exports = function (e) { + if (void 0 == e) throw TypeError("Can't call method on " + e); + return e + } + }, {}], + 74: [function (e, t, r) { + t.exports = !e("./_fails")(function () { + return 7 != Object.defineProperty({}, "a", { + get: function () { + return 7 + } + }).a + }) + }, {"./_fails": 79}], + 75: [function (e, t, r) { + var n = e("./_is-object"), i = e("./_global").document, a = n(i) && n(i.createElement); + t.exports = function (e) { + return a ? i.createElement(e) : {} + } + }, {"./_global": 81, "./_is-object": 90}], + 76: [function (e, t, r) { + t.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",") + }, {}], + 77: [function (e, t, r) { + var n = e("./_object-keys"), i = e("./_object-gops"), a = e("./_object-pie"); + t.exports = function (e) { + var t = n(e), r = i.f; + if (r) for (var s, o = r(e), u = a.f, f = 0; o.length > f;) u.call(e, s = o[f++]) && t.push(s); + return t + } + }, {"./_object-gops": 107, "./_object-keys": 110, "./_object-pie": 111}], + 78: [function (e, t, r) { + var n = e("./_global"), i = e("./_core"), a = e("./_ctx"), s = e("./_hide"), o = function (e, t, r) { + var u, f, c, d = e & o.F, l = e & o.G, h = e & o.S, p = e & o.P, y = e & o.B, b = e & o.W, + m = l ? i : i[t] || (i[t] = {}), g = m.prototype, v = l ? n : h ? n[t] : (n[t] || {}).prototype; + for (u in l && (r = t), r) (f = !d && v && void 0 !== v[u]) && u in m || (c = f ? v[u] : r[u], m[u] = l && "function" != typeof v[u] ? r[u] : y && f ? a(c, n) : b && v[u] == c ? 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 + }(c) : p && "function" == typeof c ? a(Function.call, c) : c, p && ((m.virtual || (m.virtual = {}))[u] = c, e & o.R && g && !g[u] && s(g, u, c))) + }; + o.F = 1, o.G = 2, o.S = 4, o.P = 8, o.B = 16, o.W = 32, o.U = 64, o.R = 128, t.exports = o + }, {"./_core": 70, "./_ctx": 72, "./_global": 81, "./_hide": 83}], + 79: [function (e, t, r) { + t.exports = function (e) { + try { + return !!e() + } catch (e) { + return !0 + } + } + }, {}], + 80: [function (e, t, r) { + var n = e("./_ctx"), i = e("./_iter-call"), a = e("./_is-array-iter"), s = e("./_an-object"), + o = e("./_to-length"), u = e("./core.get-iterator-method"), f = {}, c = {}; + (r = t.exports = function (e, t, r, d, l) { + var h, p, y, b, m = l ? function () { + return e + } : u(e), g = n(r, d, t ? 2 : 1), v = 0; + if ("function" != typeof m) throw TypeError(e + " is not iterable!"); + if (a(m)) { + for (h = o(e.length); h > v; v++) if ((b = t ? g(s(p = e[v])[0], p[1]) : g(e[v])) === f || b === c) return b + } else for (y = m.call(e); !(p = y.next()).done;) if ((b = i(y, g, p.value, t)) === f || b === c) return b + }).BREAK = f, r.RETURN = c + }, { + "./_an-object": 66, + "./_ctx": 72, + "./_is-array-iter": 88, + "./_iter-call": 91, + "./_to-length": 129, + "./core.get-iterator-method": 136 + }], + 81: [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) + }, {}], + 82: [function (e, t, r) { + var n = {}.hasOwnProperty; + t.exports = function (e, t) { + return n.call(e, t) + } + }, {}], + 83: [function (e, t, r) { + var n = e("./_object-dp"), i = e("./_property-desc"); + t.exports = e("./_descriptors") ? function (e, t, r) { + return n.f(e, t, i(1, r)) + } : function (e, t, r) { + return e[t] = r, e + } + }, {"./_descriptors": 74, "./_object-dp": 102, "./_property-desc": 115}], + 84: [function (e, t, r) { + var n = e("./_global").document; + t.exports = n && n.documentElement + }, {"./_global": 81}], + 85: [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": 74, "./_dom-create": 75, "./_fails": 79}], + 86: [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) + } + }, {}], + 87: [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": 69}], + 88: [function (e, t, r) { + var n = e("./_iterators"), i = e("./_wks")("iterator"), a = Array.prototype; + t.exports = function (e) { + return void 0 !== e && (n.Array === e || a[i] === e) + } + }, {"./_iterators": 96, "./_wks": 135}], + 89: [function (e, t, r) { + var n = e("./_cof"); + t.exports = Array.isArray || function (e) { + return "Array" == n(e) + } + }, {"./_cof": 69}], + 90: [function (e, t, r) { + t.exports = function (e) { + return "object" == typeof e ? null !== e : "function" == typeof e + } + }, {}], + 91: [function (e, t, r) { + var n = e("./_an-object"); + t.exports = function (e, t, r, i) { + try { + return i ? t(n(r)[0], r[1]) : t(r) + } catch (t) { + var a = e.return; + throw void 0 !== a && n(a.call(e)), t + } + } + }, {"./_an-object": 66}], + 92: [function (e, t, r) { + "use strict"; + var n = e("./_object-create"), i = e("./_property-desc"), a = e("./_set-to-string-tag"), s = {}; + e("./_hide")(s, e("./_wks")("iterator"), function () { + return this + }), t.exports = function (e, t, r) { + e.prototype = n(s, {next: i(1, r)}), a(e, t + " Iterator") + } + }, { + "./_hide": 83, + "./_object-create": 101, + "./_property-desc": 115, + "./_set-to-string-tag": 120, + "./_wks": 135 + }], + 93: [function (e, t, r) { + "use strict"; + var n = e("./_library"), i = e("./_export"), a = e("./_redefine"), s = e("./_hide"), o = e("./_has"), + u = e("./_iterators"), f = e("./_iter-create"), c = 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, y, b, m, g) { + f(r, t, y); + var v, _, 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) + } + }, A = t + " Iterator", x = "values" == b, S = !1, E = e.prototype, + M = E[l] || E["@@iterator"] || b && E[b], C = !h && M || k(b), + j = b ? x ? k("entries") : C : void 0, P = "Array" == t && E.entries || M; + if (P && (w = d(P.call(new e))) !== Object.prototype && w.next && (c(w, A, !0), n || o(w, l) || s(w, l, p)), x && M && "values" !== M.name && (S = !0, C = function () { + return M.call(this) + }), n && !g || !h && !S && E[l] || s(E, l, C), u[t] = C, u[A] = p, b) if (v = { + values: x ? C : k("values"), + keys: m ? C : k("keys"), + entries: j + }, g) for (_ in v) _ in E || a(E, _, v[_]); else i(i.P + i.F * (h || S), t, v); + return v + } + }, { + "./_export": 78, + "./_has": 82, + "./_hide": 83, + "./_iter-create": 92, + "./_iterators": 96, + "./_library": 97, + "./_object-gpo": 108, + "./_redefine": 117, + "./_set-to-string-tag": 120, + "./_wks": 135 + }], + 94: [function (e, t, r) { + var n = e("./_wks")("iterator"), i = !1; + try { + var a = [7][n](); + a.return = function () { + i = !0 + }, Array.from(a, function () { + throw 2 + }) + } catch (e) { + } + t.exports = function (e, t) { + if (!t && !i) return !1; + var r = !1; + try { + var a = [7], s = a[n](); + s.next = function () { + return {done: r = !0} + }, a[n] = function () { + return s + }, e(a) + } catch (e) { + } + return r + } + }, {"./_wks": 135}], + 95: [function (e, t, r) { + t.exports = function (e, t) { + return {value: t, done: !!e} + } + }, {}], + 96: [function (e, t, r) { + t.exports = {} + }, {}], + 97: [function (e, t, r) { + t.exports = !0 + }, {}], + 98: [function (e, t, r) { + var n = e("./_uid")("meta"), i = e("./_is-object"), a = e("./_has"), s = e("./_object-dp").f, o = 0, + u = Object.isExtensible || function () { + return !0 + }, f = !e("./_fails")(function () { + return u(Object.preventExtensions({})) + }), c = function (e) { + s(e, n, {value: {i: "O" + ++o, w: {}}}) + }, d = t.exports = { + KEY: n, NEED: !1, fastKey: function (e, t) { + if (!i(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e; + if (!a(e, n)) { + if (!u(e)) return "F"; + if (!t) return "E"; + c(e) + } + return e[n].i + }, getWeak: function (e, t) { + if (!a(e, n)) { + if (!u(e)) return !0; + if (!t) return !1; + c(e) + } + return e[n].w + }, onFreeze: function (e) { + return f && d.NEED && u(e) && !a(e, n) && c(e), e + } + } + }, {"./_fails": 79, "./_has": 82, "./_is-object": 90, "./_object-dp": 102, "./_uid": 132}], + 99: [function (e, t, r) { + var n = e("./_global"), i = e("./_task").set, a = n.MutationObserver || n.WebKitMutationObserver, + s = n.process, o = n.Promise, u = "process" == e("./_cof")(s); + t.exports = function () { + var e, t, r, f = function () { + var n, i; + for (u && (n = s.domain) && n.exit(); e;) { + i = e.fn, e = e.next; + try { + i() + } catch (n) { + throw e ? r() : t = void 0, n + } + } + t = void 0, n && n.enter() + }; + if (u) r = function () { + s.nextTick(f) + }; else if (!a || n.navigator && n.navigator.standalone) if (o && o.resolve) { + var c = o.resolve(); + r = function () { + c.then(f) + } + } else r = function () { + i.call(n, f) + }; else { + var d = !0, l = document.createTextNode(""); + new a(f).observe(l, {characterData: !0}), r = function () { + l.data = d = !d + } + } + return function (n) { + var i = {fn: n, next: void 0}; + t && (t.next = i), e || (e = i, r()), t = i + } + } + }, {"./_cof": 69, "./_global": 81, "./_task": 125}], + 100: [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": 63}], + 101: [function (e, t, r) { + var n = e("./_an-object"), i = e("./_object-dps"), a = e("./_enum-bug-keys"), + s = e("./_shared-key")("IE_PROTO"), o = function () { + }, u = function () { + var t, r = e("./_dom-create")("iframe"), n = a.length; + for (r.style.display = "none", e("./_html").appendChild(r), r.src = "javascript:", (t = r.contentWindow.document).open(), t.write(" -// -// Math.seedrandom('yipee'); Sets Math.random to a function that is -// initialized using the given explicit seed. -// -// Math.seedrandom(); Sets Math.random to a function that is -// seeded using the current time, dom state, -// and other accumulated local entropy. -// The generated seed string is returned. -// -// Math.seedrandom('yowza', true); -// Seeds using the given explicit seed mixed -// together with accumulated entropy. -// -// -// Seeds using physical random bits downloaded -// from random.org. -// -// Seeds using urandom bits from call.jsonlib.com, -// which is faster than random.org. -// -// Examples: -// -// Math.seedrandom("hello"); // Use "hello" as the seed. -// document.write(Math.random()); // Always 0.5463663768140734 -// document.write(Math.random()); // Always 0.43973793770592234 -// var rng1 = Math.random; // Remember the current prng. -// -// var autoseed = Math.seedrandom(); // New prng with an automatic seed. -// document.write(Math.random()); // Pretty much unpredictable. -// -// Math.random = rng1; // Continue "hello" prng sequence. -// document.write(Math.random()); // Always 0.554769432473455 -// -// Math.seedrandom(autoseed); // Restart at the previous seed. -// document.write(Math.random()); // Repeat the 'unpredictable' value. -// -// Notes: -// -// Each time seedrandom('arg') is called, entropy from the passed seed -// is accumulated in a pool to help generate future seeds for the -// zero-argument form of Math.seedrandom, so entropy can be injected over -// time by calling seedrandom with explicit data repeatedly. -// -// On speed - This javascript implementation of Math.random() is about -// 3-10x slower than the built-in Math.random() because it is not native -// code, but this is typically fast enough anyway. Seeding is more expensive, -// especially if you use auto-seeding. Some details (timings on Chrome 4): -// -// Our Math.random() - avg less than 0.002 milliseconds per call -// seedrandom('explicit') - avg less than 0.5 milliseconds per call -// seedrandom('explicit', true) - avg less than 2 milliseconds per call -// seedrandom() - avg about 38 milliseconds per call -// -// LICENSE (BSD): -// -// Copyright 2010 David Bau, all rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// 3. Neither the name of this module nor the names of its contributors may -// be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -/** - * All code is in an anonymous closure to keep the global namespace clean. - * - * @param {number=} overflow - * @param {number=} startdenom - */ -(function (pool, math, width, chunks, significance, overflow, startdenom) { - - - // - // seedrandom() - // This is the seedrandom function described above. - // - math['seedrandom'] = function seedrandom(seed, use_entropy) { - var key = []; - var arc4; - - // Flatten the seed string or build one from local entropy if needed. - seed = mixkey(flatten( - use_entropy ? [seed, pool] : arguments.length ? seed : [new Date().getTime(), pool, window], 3), key); - - // Use the seed to initialize an ARC4 generator. - arc4 = new ARC4(key); - - // Mix the randomness into accumulated entropy. - mixkey(arc4.S, pool); - - // Override Math.random - // This function returns a random double in [0, 1) that contains - // randomness in every bit of the mantissa of the IEEE 754 value. - math['random'] = function random() { // Closure to return a random double: - var n = arc4.g(chunks); // Start with a numerator n < 2 ^ 48 - var d = startdenom; // and denominator d = 2 ^ 48. - var x = 0; // and no 'extra last byte'. - while (n < significance) { // Fill up all significant digits by - n = (n + x) * width; // shifting numerator and - d *= width; // denominator and generating a - x = arc4.g(1); // new least-significant-byte. - } - while (n >= overflow) { // To avoid rounding up, before adding - n /= 2; // last byte, shift everything - d /= 2; // right using integer math until - x >>>= 1; // we have exactly the desired bits. - } - return (n + x) / d; // Form the number within [0, 1). - }; - - // Return the seed that was used - return seed; - }; - - // - // ARC4 - // - // An ARC4 implementation. The constructor takes a key in the form of - // an array of at most (width) integers that should be 0 <= x < (width). - // - // The g(count) method returns a pseudorandom integer that concatenates - // the next (count) outputs from ARC4. Its return value is a number x - // that is in the range 0 <= x < (width ^ count). - // - /** @constructor */ - - function ARC4(key) { - var t, u, me = this, - keylen = key.length; - var i = 0, - j = me.i = me.j = me.m = 0; - me.S = []; - me.c = []; - - // The empty key [] is treated as [0]. - if (!keylen) { - key = [keylen++]; - } - - // Set up S using the standard key scheduling algorithm. - while (i < width) { - me.S[i] = i++; - } - for (i = 0; i < width; i++) { - t = me.S[i]; - j = lowbits(j + t + key[i % keylen]); - u = me.S[j]; - me.S[i] = u; - me.S[j] = t; - } + }, {}], + 328: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = f(e("babel-runtime/regenerator")), i = f(e("babel-runtime/helpers/asyncToGenerator")), + a = f(e("bn.js")), s = f(e("../hash")), o = f(e("../random")), + u = (f(e("../../config")), f(e("../../util"))); + + function f(e) { + return e && e.__esModule ? e : {default: e} + } - // The "g" method returns the next (count) outputs as one number. - me.g = function getnext(count) { - var s = me.S; - var i = lowbits(me.i + 1); - var t = s[i]; - var j = lowbits(me.j + t); - var u = s[j]; - s[i] = u; - s[j] = t; - var r = s[lowbits(t + u)]; - while (--count) { - i = lowbits(i + 1); - t = s[i]; - j = lowbits(j + t); - u = s[j]; - s[i] = u; - s[j] = t; - r = r * width + s[lowbits(t + u)]; - } - me.i = i; - me.j = j; - return r; - }; - // For robust unpredictability discard an initial batch of values. - // See http://www.rsa.com/rsalabs/node.asp?id=2009 - me.g(width); - } + var c = new a.default(1), d = new a.default(0); + r.default = { + sign: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i, f, l, h) { + var p, y, b, m, g, v, _, w; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + p = void 0, y = void 0, b = void 0, m = void 0, g = new a.default.red(f), v = new a.default.red(l), _ = i.toRed(g), h.toRed(v), w = new a.default(u.default.getLeftNBits(s.default.digest(t, r), l.bitLength())); + case 9: + return e.next = 12, o.default.getRandomBN(c, l); + case 12: + if (p = e.sent, y = _.redPow(p).fromRed().toRed(v), 0 !== d.cmp(y)) { + e.next = 16; + break + } + return e.abrupt("continue", 9); + case 16: + if (m = w.add(h.mul(y)).toRed(v), b = p.toRed(v).redInvm().redMul(m), 0 !== d.cmp(b)) { + e.next = 20; + break + } + return e.abrupt("continue", 9); + case 20: + return e.abrupt("break", 23); + case 23: + return e.abrupt("return", { + r: y.toArrayLike(Uint8Array), + s: b.toArrayLike(Uint8Array) + }); + case 24: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i, a, s) { + return e.apply(this, arguments) + } + }(), verify: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i, o, f, c, l, h) { + var p, y, b, m, g, v, _, w, k; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(d.ucmp(r) >= 0 || r.ucmp(l) >= 0 || d.ucmp(i) >= 0 || i.ucmp(l) >= 0)) { + e.next = 3; + break + } + return u.default.print_debug("invalid DSA Signature"), e.abrupt("return", null); + case 3: + if (p = new a.default.red(c), y = new a.default.red(l), b = new a.default(u.default.getLeftNBits(s.default.digest(t, o), l.bitLength())), m = i.toRed(y).redInvm(), 0 !== d.cmp(m)) { + e.next = 10; + break + } + return u.default.print_debug("invalid DSA Signature"), e.abrupt("return", null); + case 10: + return g = b.toRed(y).redMul(m), v = r.toRed(y).redMul(m), _ = f.toRed(p).redPow(g.fromRed()), w = h.toRed(p).redPow(v.fromRed()), k = _.redMul(w).fromRed().mod(l), e.abrupt("return", 0 === k.cmp(r)); + case 16: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i, a, s, o, u) { + return e.apply(this, arguments) + } + }() + } + }, { + "../../config": 309, + "../../util": 382, + "../hash": 322, + "../random": 339, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 329: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = o(e("babel-runtime/regenerator")), i = o(e("babel-runtime/helpers/asyncToGenerator")), + a = o(e("bn.js")), s = o(e("../random")); + + function o(e) { + return e && e.__esModule ? e : {default: e} + } - // - // flatten() - // Converts an object tree to nested arrays of strings. - // - /** @param {Object=} result - * @param {string=} prop - * @param {string=} typ */ - - function flatten(obj, depth, result, prop, typ) { - result = []; - typ = typeof (obj); - if (depth && typ == 'object') { - for (prop in obj) { - if (prop.indexOf('S') < 5) { // Avoid FF3 bug (local/sessionStorage) - try { - result.push(flatten(obj[prop], depth - 1)); + var u = new a.default(0); + r.default = { + encrypt: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i, o) { + var f, c, d, l, h; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return f = new a.default.red(r), c = t.toRed(f), d = i.toRed(f), l = o.toRed(f), e.next = 6, s.default.getRandomBN(u, r); + case 6: + return h = e.sent, e.abrupt("return", { + c1: d.redPow(h).fromRed(), + c2: l.redPow(h).redMul(c).fromRed() + }); + case 8: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i) { + return e.apply(this, arguments) + } + }(), decrypt: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i, s) { + var o, u, f; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return o = new a.default.red(i), u = t.toRed(o), f = r.toRed(o), e.abrupt("return", u.redPow(s).redInvm().redMul(f).fromRed()); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i) { + return e.apply(this, arguments) } - catch (e) { + }() + } + }, { + "../random": 339, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 330: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.getPreferredHashAlgo = r.generate = r.nodeCurves = r.webCurves = r.curves = void 0; + var n, i, a, s = g(e("babel-runtime/regenerator")), o = g(e("babel-runtime/helpers/asyncToGenerator")), + u = (n = (0, o.default)(s.default.mark(function e(t) { + var r; + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return t = new S(t), e.next = 3, t.genKeyPair(); + case 3: + return r = e.sent, e.abrupt("return", { + oid: t.oid, + Q: new d.default(r.getPublic()), + d: new d.default(r.getPrivate()), + hash: t.hash, + cipher: t.cipher + }); + case 5: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }), f = (i = (0, o.default)(s.default.mark(function e(t) { + var r, n, i; + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, v.generateKey({name: "ECDSA", namedCurve: w[t]}, !0, ["sign", "verify"]); + case 2: + return r = e.sent, e.next = 5, v.exportKey("jwk", r.privateKey); + case 5: + return n = e.sent, e.next = 8, v.exportKey("jwk", r.publicKey); + case 8: + return i = e.sent, e.abrupt("return", { + pub: { + x: b.default.b64_to_Uint8Array(i.x, !0), + y: b.default.b64_to_Uint8Array(i.y, !0) + }, priv: b.default.b64_to_Uint8Array(n.d, !0) + }); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return i.apply(this, arguments) + }), c = (a = (0, o.default)(s.default.mark(function e(t) { + var r; + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = _.createECDH(A[t]), e.next = 3, r.generateKeys(); + case 3: + return e.abrupt("return", { + pub: r.getPublicKey().toJSON().data, + priv: r.getPrivateKey().toJSON().data + }); + case 4: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return a.apply(this, arguments) + }), d = g(e("bn.js")), l = e("elliptic"), h = g(e("./key")), p = g(e("../../random")), + y = g(e("../../../enums")), b = g(e("../../../util")), m = g(e("../../../type/oid")); + + function g(e) { + return e && e.__esModule ? e : {default: e} + } + + var v = b.default.getWebCrypto(), _ = b.default.getNodeCrypto(), + w = {p256: "P-256", p384: "P-384", p521: "P-521"}, k = _ ? _.getCurves() : [], A = _ ? { + secp256k1: k.includes("secp256k1") ? "secp256k1" : void 0, + p256: k.includes("prime256v1") ? "prime256v1" : void 0, + p384: k.includes("secp384r1") ? "secp384r1" : void 0, + p521: k.includes("secp521r1") ? "secp521r1" : void 0, + ed25519: k.includes("ED25519") ? "ED25519" : void 0, + curve25519: k.includes("X25519") ? "X25519" : void 0, + brainpoolP256r1: k.includes("brainpoolP256r1") ? "brainpoolP256r1" : void 0, + brainpoolP384r1: k.includes("brainpoolP384r1") ? "brainpoolP384r1" : void 0, + brainpoolP512r1: k.includes("brainpoolP512r1") ? "brainpoolP512r1" : void 0 + } : {}, x = { + p256: { + oid: [6, 8, 42, 134, 72, 206, 61, 3, 1, 7], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha256, + cipher: y.default.symmetric.aes128, + node: A.p256, + web: w.p256, + payloadSize: 32 + }, + p384: { + oid: [6, 5, 43, 129, 4, 0, 34], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha384, + cipher: y.default.symmetric.aes192, + node: A.p384, + web: w.p384, + payloadSize: 48 + }, + p521: { + oid: [6, 5, 43, 129, 4, 0, 35], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha512, + cipher: y.default.symmetric.aes256, + node: A.p521, + web: w.p521, + payloadSize: 66 + }, + secp256k1: { + oid: [6, 5, 43, 129, 4, 0, 10], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha256, + cipher: y.default.symmetric.aes128, + node: A.secp256k1 + }, + ed25519: { + oid: [6, 9, 43, 6, 1, 4, 1, 218, 71, 15, 1], + keyType: y.default.publicKey.eddsa, + hash: y.default.hash.sha512, + node: !1 + }, + curve25519: { + oid: [6, 10, 43, 6, 1, 4, 1, 151, 85, 1, 5, 1], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha256, + cipher: y.default.symmetric.aes128, + node: !1 + }, + brainpoolP256r1: { + oid: [6, 9, 43, 36, 3, 3, 2, 8, 1, 1, 7], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha256, + cipher: y.default.symmetric.aes128, + node: A.brainpoolP256r1 + }, + brainpoolP384r1: { + oid: [6, 9, 43, 36, 3, 3, 2, 8, 1, 1, 11], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha384, + cipher: y.default.symmetric.aes192, + node: A.brainpoolP384r1 + }, + brainpoolP512r1: { + oid: [6, 9, 43, 36, 3, 3, 2, 8, 1, 1, 13], + keyType: y.default.publicKey.ecdsa, + hash: y.default.hash.sha512, + cipher: y.default.symmetric.aes256, + node: A.brainpoolP512r1 } + }; + + function S(e, t) { + try { + (b.default.isArray(e) || b.default.isUint8Array(e)) && (e = new m.default(e)), e instanceof m.default && (e = e.getName()), this.name = y.default.write(y.default.curve, e) + } catch (e) { + throw new Error("Not valid curve") + } + switch (t = t || x[this.name], this.keyType = t.keyType, this.keyType) { + case y.default.publicKey.ecdsa: + this.curve = new l.ec(this.name); + break; + case y.default.publicKey.eddsa: + this.curve = new l.eddsa(this.name); + break; + default: + throw new Error("Unknown elliptic key type;") } + this.oid = t.oid, this.hash = t.hash, this.cipher = t.cipher, this.node = t.node && x[this.name], this.web = t.web && x[this.name], this.payloadSize = t.payloadSize } - } - return (result.length ? result : obj + (typ != 'string' ? '\0' : '')); - } - // - // mixkey() - // Mixes a string seed into a key that is an array of integers, and - // returns a shortened string seed that is equivalent to the result key. - // - /** @param {number=} smear - * @param {number=} j */ - - function mixkey(seed, key, smear, j) { - seed += ''; // Ensure the seed is a string - smear = 0; - for (j = 0; j < seed.length; j++) { - key[lowbits(j)] = lowbits((smear ^= key[lowbits(j)] * 19) + seed.charCodeAt(j)); - } - seed = ''; - for (j in key) { - seed += String.fromCharCode(key[j]); - } - return seed; - } + S.prototype.keyFromPrivate = function (e) { + return new h.default(this, {priv: e}) + }, S.prototype.keyFromSecret = function (e) { + return new h.default(this, {secret: e}) + }, S.prototype.keyFromPublic = function (e) { + return new h.default(this, {pub: e}) + }, S.prototype.genKeyPair = (0, o.default)(s.default.mark(function e() { + var t, r, n; + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (t = void 0, !this.web || !b.default.getWebCrypto()) { + e.next = 13; + break + } + return e.prev = 2, e.next = 5, f(this.name); + case 5: + t = e.sent, e.next = 11; + break; + case 8: + e.prev = 8, e.t0 = e.catch(2), b.default.print_debug("Browser did not support signing: " + e.t0.message); + case 11: + e.next = 17; + break; + case 13: + if (!this.node || !b.default.getNodeCrypto()) { + e.next = 17; + break + } + return e.next = 16, c(this.name); + case 16: + t = e.sent; + case 17: + if (t && t.priv) { + e.next = 30; + break + } + return e.t1 = this.curve, e.t2 = b.default, e.next = 22, p.default.getRandomBytes(32); + case 22: + return e.t3 = e.sent, e.t4 = e.t2.Uint8Array_to_str.call(e.t2, e.t3), e.t5 = {entropy: e.t4}, e.next = 27, e.t1.genKeyPair.call(e.t1, e.t5); + case 27: + r = e.sent, n = "edwards" === this.curve.curve.type || "mont" === this.curve.curve.type, t = this.keyType === y.default.publicKey.eddsa ? {secret: r.getSecret()} : { + pub: r.getPublic("array", n), + priv: r.getPrivate().toArray() + }; + case 30: + return e.abrupt("return", new h.default(this, t)); + case 31: + case"end": + return e.stop() + } + }, e, this, [[2, 8]]) + })), r.default = S, r.curves = x, r.webCurves = w, r.nodeCurves = A, r.generate = u, r.getPreferredHashAlgo = function (e) { + return x[y.default.write(y.default.curve, e.toHex())].hash + } + }, { + "../../../enums": 343, + "../../../type/oid": 380, + "../../../util": 382, + "../../random": 339, + "./key": 335, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40, + elliptic: 252 + }], + 331: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = m(e("babel-runtime/regenerator")), s = m(e("babel-runtime/helpers/asyncToGenerator")), + o = (n = (0, s.default)(a.default.mark(function e(t, r, n, i, s, o) { + var u, h, p, b, m, _; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return u = new c.default(t), h = g(y.default.publicKey.ecdh, t, r, n, o), r = y.default.read(y.default.symmetric, r), e.next = 5, u.genKeyPair(); + case 5: + return p = e.sent, s = u.keyFromPublic(s), b = p.derive(s), m = v(n, b, l.default[r].keySize, h), _ = d.default.wrap(m, i.toString()), e.abrupt("return", { + V: new f.default(p.getPublic()), + C: _ + }); + case 11: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, i, a, s) { + return n.apply(this, arguments) + }), u = (i = (0, s.default)(a.default.mark(function e(t, r, n, i, s, o, u) { + var h, p, b, m; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return h = new c.default(t), p = g(y.default.publicKey.ecdh, t, r, n, u), r = y.default.read(y.default.symmetric, r), i = h.keyFromPublic(i), o = h.keyFromPrivate(o), b = o.derive(i), m = v(n, b, l.default[r].keySize, p), e.abrupt("return", new f.default(d.default.unwrap(m, s))); + case 8: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n, a, s, o) { + return i.apply(this, arguments) + }), f = m(e("bn.js")), c = m(e("./curves")), d = m(e("../../aes_kw")), l = m(e("../../cipher")), + h = m(e("../../hash")), p = m(e("../../../type/kdf_params")), + y = (m(e("../../../type/oid")), m(e("../../../enums"))), b = m(e("../../../util")); + + function m(e) { + return e && e.__esModule ? e : {default: e} + } - // - // lowbits() - // A quick "n mod width" for width a power of 2. - // + function g(e, t, r, n, i) { + var a = new p.default([n, r]); + return b.default.concatUint8Array([t.write(), new Uint8Array([e]), a.write(), b.default.str_to_Uint8Array("Anonymous Sender "), i.subarray(0, 20)]) + } + function v(e, t, r, n) { + return h.default.digest(e, b.default.concatUint8Array([new Uint8Array([0, 0, 0, 1]), new Uint8Array(t), n])).subarray(0, r) + } - function lowbits(n) { - return n & (width - 1); - } + r.default = {encrypt: o, decrypt: u} + }, { + "../../../enums": 343, + "../../../type/kdf_params": 377, + "../../../type/oid": 380, + "../../../util": 382, + "../../aes_kw": 310, + "../../cipher": 316, + "../../hash": 322, + "./curves": 330, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 332: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = c(e("babel-runtime/regenerator")), s = c(e("babel-runtime/helpers/asyncToGenerator")), + o = (n = (0, s.default)(a.default.mark(function e(t, r, n, i) { + var s, o, u; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return s = new f.default(t), o = s.keyFromPrivate(i), e.next = 4, o.sign(n, r); + case 4: + return u = e.sent, e.abrupt("return", { + r: u.r.toArrayLike(Uint8Array), + s: u.s.toArrayLike(Uint8Array) + }); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, i) { + return n.apply(this, arguments) + }), u = (i = (0, s.default)(a.default.mark(function e(t, r, n, i, s) { + var o, u; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return o = new f.default(t), u = o.keyFromPublic(s), e.abrupt("return", u.verify(i, n, r)); + case 3: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n, a) { + return i.apply(this, arguments) + }), f = (c(e("../../hash")), c(e("./curves"))); + + function c(e) { + return e && e.__esModule ? e : {default: e} + } - // - // The following constants are related to IEEE 754 limits. - // - startdenom = math.pow(width, chunks); - significance = math.pow(2, significance); - overflow = significance * 2; - - // - // When seedrandom.js is loaded, we immediately mix a few bits - // from the built-in RNG into the entropy pool. Because we do - // not want to intefere with determinstic PRNG state later, - // seedrandom will not call math.random on its own again after - // initialization. - // - mixkey(math.random(), pool); - - // End anonymous scope, and pass initial values. -})([], // pool: entropy pool starts empty - Math, // math: package containing random, pow, and seedrandom - 256, // width: each RC4 output is 0 <= x < 256 - 6, // chunks: at least six RC4 outputs for each double - 52 // significance: there are 52 significant digits in a double -); - - -// This is not really a random number generator object, and two SeededRandom -// objects will conflict with one another, but it's good enough for generating -// the rsa key. -function SeededRandom() { -} - -function SRnextBytes(ba) { - var i; - for (i = 0; i < ba.length; i++) { - ba[i] = Math.floor(Math.random() * 256); - } -} - -SeededRandom.prototype.nextBytes = SRnextBytes; - -// prng4.js - uses Arcfour as a PRNG - -function Arcfour() { - this.i = 0; - this.j = 0; - this.S = new Array(); -} - -// Initialize arcfour context from key, an array of ints, each from [0..255] -function ARC4init(key) { - var i, j, t; - for (i = 0; i < 256; ++i) - this.S[i] = i; - j = 0; - for (i = 0; i < 256; ++i) { - j = (j + this.S[i] + key[i % key.length]) & 255; - t = this.S[i]; - this.S[i] = this.S[j]; - this.S[j] = t; - } - this.i = 0; - this.j = 0; -} - -function ARC4next() { - var t; - this.i = (this.i + 1) & 255; - this.j = (this.j + this.S[this.i]) & 255; - t = this.S[this.i]; - this.S[this.i] = this.S[this.j]; - this.S[this.j] = t; - return this.S[(t + this.S[this.i]) & 255]; -} - -Arcfour.prototype.init = ARC4init; -Arcfour.prototype.next = ARC4next; - -// Plug in your RNG constructor here -function prng_newstate() { - return new Arcfour(); -} - -// Pool size must be a multiple of 4 and greater than 32. -// An array of bytes the size of the pool will be passed to init() -var rng_psize = 256; - -// Random number generator - requires a PRNG backend, e.g. prng4.js - -// For best results, put code like -// -// in your main HTML document. - -var rng_state; -var rng_pool; -var rng_pptr; - -// Mix in a 32-bit integer into the pool -function rng_seed_int(x) { - rng_pool[rng_pptr++] ^= x & 255; - rng_pool[rng_pptr++] ^= (x >> 8) & 255; - rng_pool[rng_pptr++] ^= (x >> 16) & 255; - rng_pool[rng_pptr++] ^= (x >> 24) & 255; - if (rng_pptr >= rng_psize) rng_pptr -= rng_psize; -} - -// Mix in the current time (w/milliseconds) into the pool -function rng_seed_time() { - rng_seed_int(new Date().getTime()); -} - -// Initialize the pool with junk if needed. -if (rng_pool == null) { - rng_pool = new Array(); - rng_pptr = 0; - var t; - if (navigator.appName == "Netscape" && navigator.appVersion < "5" && window.crypto) { - // Extract entropy (256 bits) from NS4 RNG if available - var z = window.crypto.random(32); - for (t = 0; t < z.length; ++t) - rng_pool[rng_pptr++] = z.charCodeAt(t) & 255; - } - while (rng_pptr < rng_psize) { // extract some randomness from Math.random() - t = Math.floor(65536 * Math.random()); - rng_pool[rng_pptr++] = t >>> 8; - rng_pool[rng_pptr++] = t & 255; - } - rng_pptr = 0; - rng_seed_time(); - //rng_seed_int(window.screenX); - //rng_seed_int(window.screenY); -} - -function rng_get_byte() { - if (rng_state == null) { - rng_seed_time(); - rng_state = prng_newstate(); - rng_state.init(rng_pool); - for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) - rng_pool[rng_pptr] = 0; - rng_pptr = 0; - //rng_pool = null; - } - // TODO: allow reseeding after first request - return rng_state.next(); -} + r.default = {sign: o, verify: u} + }, { + "../../hash": 322, + "./curves": 330, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 333: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = c(e("babel-runtime/regenerator")), s = c(e("babel-runtime/helpers/asyncToGenerator")), + o = (n = (0, s.default)(a.default.mark(function e(t, r, n, i) { + var s, o, u; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return s = new f.default(t), o = s.keyFromSecret(i), e.next = 4, o.sign(n, r); + case 4: + return u = e.sent, e.abrupt("return", { + R: new Uint8Array(u.Rencoded()), + S: new Uint8Array(u.Sencoded()) + }); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, i) { + return n.apply(this, arguments) + }), u = (i = (0, s.default)(a.default.mark(function e(t, r, n, i, s) { + var o, u; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return o = new f.default(t), u = o.keyFromPublic(s), e.abrupt("return", u.verify(i, n, r)); + case 3: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n, a) { + return i.apply(this, arguments) + }), f = (c(e("bn.js")), c(e("../../hash")), c(e("./curves"))); + + function c(e) { + return e && e.__esModule ? e : {default: e} + } -function rng_get_bytes(ba) { - var i; - for (i = 0; i < ba.length; ++i) ba[i] = rng_get_byte(); -} + r.default = {sign: o, verify: u} + }, { + "../../hash": 322, + "./curves": 330, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 334: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = e("./curves"), i = u(n), a = u(e("./ecdsa")), s = u(e("./eddsa")), o = u(e("./ecdh")); + + function u(e) { + return e && e.__esModule ? e : {default: e} + } -function SecureRandom() { -} + r.default = { + Curve: i.default, + ecdh: o.default, + ecdsa: a.default, + eddsa: s.default, + generate: n.generate, + getPreferredHashAlgo: n.getPreferredHashAlgo + } + }, {"./curves": 330, "./ecdh": 331, "./ecdsa": 332, "./eddsa": 333}], + 335: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a, s, o = g(e("babel-runtime/regenerator")), u = g(e("babel-runtime/helpers/asyncToGenerator")), + f = (n = (0, u.default)(o.default.mark(function e(t, r, n, i) { + var a, s, u; + return o.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return a = t.payloadSize, e.next = 3, w.importKey("jwk", { + kty: "EC", + crv: p.webCurves[t.name], + x: b.default.Uint8Array_to_b64(new Uint8Array(i.getPublic().getX().toArray("be", a)), !0), + y: b.default.Uint8Array_to_b64(new Uint8Array(i.getPublic().getY().toArray("be", a)), !0), + d: b.default.Uint8Array_to_b64(new Uint8Array(i.getPrivate().toArray("be", a)), !0), + use: "sig", + kid: "ECDSA Private Key" + }, { + name: "ECDSA", + namedCurve: p.webCurves[t.name], + hash: {name: m.default.read(m.default.webHash, t.hash)} + }, !1, ["sign"]); + case 3: + return s = e.sent, e.t0 = Uint8Array, e.next = 7, w.sign({ + name: "ECDSA", + namedCurve: p.webCurves[t.name], + hash: {name: m.default.read(m.default.webHash, r)} + }, s, n); + case 7: + return e.t1 = e.sent, u = new e.t0(e.t1), e.abrupt("return", { + r: new h.default(u.slice(0, a)), + s: new h.default(u.slice(a, a << 1)) + }); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, i) { + return n.apply(this, arguments) + }), c = (i = (0, u.default)(o.default.mark(function e(t, r, n, i, a) { + var s, u, f, c = n.r, d = n.s; + return o.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return s = t.payloadSize, e.next = 3, w.importKey("jwk", { + kty: "EC", + crv: p.webCurves[t.name], + x: b.default.Uint8Array_to_b64(new Uint8Array(a.getX().toArray("be", s)), !0), + y: b.default.Uint8Array_to_b64(new Uint8Array(a.getY().toArray("be", s)), !0), + use: "sig", + kid: "ECDSA Public Key" + }, { + name: "ECDSA", + namedCurve: p.webCurves[t.name], + hash: {name: m.default.read(m.default.webHash, t.hash)} + }, !1, ["verify"]); + case 3: + return u = e.sent, f = b.default.concatUint8Array([new Uint8Array(s - c.length), c, new Uint8Array(s - d.length), d]).buffer, e.abrupt("return", w.verify({ + name: "ECDSA", + namedCurve: p.webCurves[t.name], + hash: {name: m.default.read(m.default.webHash, r)} + }, u, f, i)); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n, a) { + return i.apply(this, arguments) + }), d = (a = (0, u.default)(o.default.mark(function e(t, r, n, i) { + var a, s; + return o.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return (a = k.createSign(m.default.read(m.default.hash, r))).write(n), a.end(), s = E.encode({ + version: 1, + parameters: t.oid, + privateKey: i.getPrivate().toArray(), + publicKey: {unused: 0, data: i.getPublic().encode()} + }, "pem", {label: "EC PRIVATE KEY"}), e.abrupt("return", S.decode(a.sign(s), "der")); + case 5: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n) { + return a.apply(this, arguments) + }), l = (s = (0, u.default)(o.default.mark(function e(t, r, n, i, a) { + var s, u, f, c = n.r, d = n.s; + return o.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return (s = k.createVerify(m.default.read(m.default.hash, r))).write(i), s.end(), u = C.encode({ + algorithm: { + algorithm: [1, 2, 840, 10045, 2, 1], + parameters: t.oid + }, subjectPublicKey: {unused: 0, data: a.encode()} + }, "pem", {label: "PUBLIC KEY"}), f = S.encode({ + r: new h.default(c), + s: new h.default(d) + }, "der"), e.prev = 5, e.abrupt("return", s.verify(u, f)); + case 9: + return e.prev = 9, e.t0 = e.catch(5), e.abrupt("return", !1); + case 12: + case"end": + return e.stop() + } + }, e, this, [[5, 9]]) + })), function (e, t, r, n, i) { + return s.apply(this, arguments) + }), h = g(e("bn.js")), p = e("./curves"), y = g(e("../../hash")), b = g(e("../../../util")), + m = g(e("../../../enums")); + + function g(e) { + return e && e.__esModule ? e : {default: e} + } -SecureRandom.prototype.nextBytes = rng_get_bytes; + var v, _, w = b.default.getWebCrypto(), k = b.default.getNodeCrypto(); + function A(e, t) { + this.curve = e, this.keyType = "edwards" === e.curve.type ? m.default.publicKey.eddsa : m.default.publicKey.ecdsa, this.keyPair = this.curve.curve.keyPair(t) + } -/** - * - * Secure Hash Algorithm (SHA256) - * http://www.webtoolkit.info/ - * - * Original code by Angel Marin, Paul Johnston. - * - **/ + A.prototype.sign = (v = (0, u.default)(o.default.mark(function e(t, r) { + var n, i; + return o.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!this.curve.web || !b.default.getWebCrypto()) { + e.next = 13; + break + } + return e.prev = 1, e.next = 4, f(this.curve, r, t, this.keyPair); + case 4: + return n = e.sent, e.abrupt("return", n); + case 8: + e.prev = 8, e.t0 = e.catch(1), b.default.print_debug("Browser did not support signing: " + e.t0.message); + case 11: + e.next = 15; + break; + case 13: + if (!this.curve.node || !b.default.getNodeCrypto()) { + e.next = 15; + break + } + return e.abrupt("return", d(this.curve, r, t, this.keyPair)); + case 15: + return i = void 0 === r ? t : y.default.digest(r, t), e.abrupt("return", this.keyPair.sign(i)); + case 17: + case"end": + return e.stop() + } + }, e, this, [[1, 8]]) + })), function (e, t) { + return v.apply(this, arguments) + }), A.prototype.verify = (_ = (0, u.default)(o.default.mark(function e(t, r, n) { + var i, a; + return o.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!this.curve.web || !b.default.getWebCrypto()) { + e.next = 13; + break + } + return e.prev = 1, e.next = 4, c(this.curve, n, r, t, this.keyPair.getPublic()); + case 4: + return i = e.sent, e.abrupt("return", i); + case 8: + e.prev = 8, e.t0 = e.catch(1), b.default.print_debug("Browser did not support signing: " + e.t0.message); + case 11: + e.next = 15; + break; + case 13: + if (!this.curve.node || !b.default.getNodeCrypto()) { + e.next = 15; + break + } + return e.abrupt("return", l(this.curve, n, r, t, this.keyPair.getPublic())); + case 15: + return a = void 0 === n ? t : y.default.digest(n, t), e.abrupt("return", this.keyPair.verify(a, r)); + case 17: + case"end": + return e.stop() + } + }, e, this, [[1, 8]]) + })), function (e, t, r) { + return _.apply(this, arguments) + }), A.prototype.derive = function (e) { + if (this.keyType === m.default.publicKey.eddsa) throw new Error("Key can only be used for EdDSA"); + return this.keyPair.derive(e.keyPair.getPublic()) + }, A.prototype.getPublic = function () { + var e = "edwards" === this.curve.curve.curve.type || "mont" === this.curve.curve.curve.type; + return this.keyPair.getPublic("array", e) + }, A.prototype.getPrivate = function () { + return this.curve.keyType === m.default.publicKey.eddsa ? this.keyPair.getSecret() : this.keyPair.getPrivate().toArray() + }, r.default = A; + var x = k ? e("asn1.js") : void 0, S = k ? x.define("ECDSASignature", function () { + this.seq().obj(this.key("r").int(), this.key("s").int()) + }) : void 0, E = k ? x.define("ECPrivateKey", function () { + this.seq().obj(this.key("version").int(), this.key("privateKey").octstr(), this.key("parameters").explicit(0).optional().any(), this.key("publicKey").explicit(1).optional().bitstr()) + }) : void 0, M = k ? x.define("AlgorithmIdentifier", function () { + this.seq().obj(this.key("algorithm").objid(), this.key("parameters").optional().any()) + }) : void 0, C = k ? x.define("SubjectPublicKeyInfo", function () { + this.seq().obj(this.key("algorithm").use(M), this.key("subjectPublicKey").bitstr()) + }) : void 0 + }, { + "../../../enums": 343, + "../../../util": 382, + "../../hash": 322, + "./curves": 330, + "asn1.js": "asn1.js", + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 336: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = o(e("./rsa")), i = o(e("./elgamal")), a = o(e("./elliptic")), s = o(e("./dsa")); + + function o(e) { + return e && e.__esModule ? e : {default: e} + } -function SHA256(s) { + r.default = {rsa: n.default, elgamal: i.default, elliptic: a.default, dsa: s.default} + }, {"./dsa": 328, "./elgamal": 329, "./elliptic": 334, "./rsa": 338}], + 337: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a, s = h(e("babel-runtime/regenerator")), o = h(e("babel-runtime/helpers/asyncToGenerator")), + u = (n = (0, o.default)(s.default.mark(function e(t, r, n) { + var i, a, o, u, c; + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return i = new d.default(1).shln(t - 1), a = new d.default(30), o = [1, 6, 5, 4, 3, 2, 1, 4, 3, 2, 1, 2, 1, 4, 3, 2, 1, 2, 1, 4, 3, 2, 1, 6, 5, 4, 3, 2, 1, 2], e.next = 5, l.default.getRandomBN(i, i.shln(1)); + case 5: + u = e.sent, c = u.mod(a).toNumber(); + case 7: + u.iaddn(o[c]), c = (c + o[c]) % o.length, u.bitLength() > t && (u = u.mod(i.shln(1)).iadd(i), c = u.mod(a).toNumber()); + case 10: + return e.next = 12, f(u, r, n); + case 12: + if (!e.sent) { + e.next = 7; + break + } + case 13: + return e.abrupt("return", u); + case 14: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return n.apply(this, arguments) + }), f = (i = (0, o.default)(s.default.mark(function e(t, r, n) { + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!r || t.subn(1).gcd(r).eqn(1)) { + e.next = 2; + break + } + return e.abrupt("return", !1); + case 2: + if (y(t)) { + e.next = 4; + break + } + return e.abrupt("return", !1); + case 4: + if (p(t)) { + e.next = 6; + break + } + return e.abrupt("return", !1); + case 6: + return e.next = 8, c(t, n); + case 8: + if (e.sent) { + e.next = 10; + break + } + return e.abrupt("return", !1); + case 10: + return e.abrupt("return", !0); + case 11: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return i.apply(this, arguments) + }), c = (a = (0, o.default)(s.default.mark(function e(t, r, n) { + var i, a, o, u, f, c, h, p, y, b; + return s.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + for (i = t.bitLength(), a = d.default.mont(t), o = new d.default(1).toRed(a), r || (r = Math.max(1, i / 48 | 0)), u = t.subn(1), f = u.toRed(a), c = 0; !u.testn(c);) c++; + h = t.shrn(c); + case 9: + if (!(r > 0)) { + e.next = 37; + break + } + if (!n) { + e.next = 14; + break + } + e.t0 = n(), e.next = 17; + break; + case 14: + return e.next = 16, l.default.getRandomBN(new d.default(2), u); + case 16: + e.t0 = e.sent; + case 17: + if (p = e.t0, !(y = p.toRed(a).redPow(h)).eq(o) && !y.eq(f)) { + e.next = 21; + break + } + return e.abrupt("continue", 34); + case 21: + b = void 0, b = 1; + case 23: + if (!(b < c)) { + e.next = 32; + break + } + if (!(y = y.redSqr()).eq(o)) { + e.next = 27; + break + } + return e.abrupt("return", !1); + case 27: + if (!y.eq(f)) { + e.next = 29; + break + } + return e.abrupt("break", 32); + case 29: + b++, e.next = 23; + break; + case 32: + if (b !== c) { + e.next = 34; + break + } + return e.abrupt("return", !1); + case 34: + r--, e.next = 9; + break; + case 37: + return e.abrupt("return", !0); + case 38: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return a.apply(this, arguments) + }), d = h(e("bn.js")), l = h(e("../random")); + + function h(e) { + return e && e.__esModule ? e : {default: e} + } - var chrsz = 8; - var hexcase = 0; + function p(e, t) { + return 0 === (t = t || new d.default(2)).toRed(d.default.mont(e)).redPow(e.subn(1)).fromRed().cmpn(1) + } - function safe_add(x, y) { - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); - } + function y(e) { + return b.every(function (t) { + return 0 !== e.modn(t) + }) + } - function S(X, n) { - return (X >>> n) | (X << (32 - n)); - } + r.default = {randomProbablePrime: u, isProbablePrime: f, fermat: p, millerRabin: c, divisionTest: y}; + var b = [7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999] + }, { + "../random": 339, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 338: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = d(e("babel-runtime/regenerator")), i = d(e("babel-runtime/helpers/asyncToGenerator")), + a = d(e("babel-runtime/core-js/promise")), s = d(e("bn.js")), o = d(e("./prime")), + u = d(e("../random")), f = d(e("../../config")), c = d(e("../../util")); + + function d(e) { + return e && e.__esModule ? e : {default: e} + } - function R(X, n) { - return (X >>> n); - } + function l(e, t) { + return "function" != typeof e.then ? new a.default(function (r, n) { + e.onerror = function () { + n(new Error(t)) + }, e.oncomplete = function (e) { + r(e.target.result) + } + }) : e + } - function Ch(x, y, z) { - return ((x & y) ^ ((~x) & z)); - } + r.default = { + sign: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i, a) { + var o; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(r.cmp(t) <= 0)) { + e.next = 2; + break + } + throw new Error("Data too large."); + case 2: + return o = new s.default.red(r), e.abrupt("return", t.toRed(o).redPow(a).toArrayLike(Uint8Array, "be", r.byteLength())); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i) { + return e.apply(this, arguments) + } + }(), verify: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i) { + var a; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(r.cmp(t) <= 0)) { + e.next = 2; + break + } + throw new Error("Data too large."); + case 2: + return a = new s.default.red(r), e.abrupt("return", t.toRed(a).redPow(i).toArrayLike(Uint8Array, "be", r.byteLength())); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n) { + return e.apply(this, arguments) + } + }(), encrypt: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i) { + var a; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(r.cmp(t) <= 0)) { + e.next = 2; + break + } + throw new Error("Data too large."); + case 2: + return a = new s.default.red(r), e.abrupt("return", t.toRed(a).redPow(i).toArrayLike(Uint8Array, "be", r.byteLength())); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n) { + return e.apply(this, arguments) + } + }(), decrypt: function () { + var e = (0, i.default)(n.default.mark(function e(t, r, i, a, o, c, d) { + var l, h, p, y, b, m, g, v, _, w, k, A; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(r.cmp(t) <= 0)) { + e.next = 2; + break + } + throw new Error("Data too large."); + case 2: + if (l = a.mod(c.subn(1)), h = a.mod(o.subn(1)), p = new s.default.red(o), y = new s.default.red(c), b = new s.default.red(r), m = void 0, g = void 0, !f.default.rsa_blinding) { + e.next = 16; + break + } + return e.next = 12, u.default.getRandomBN(new s.default(2), r); + case 12: + e.t0 = b, g = e.sent.toRed(e.t0), m = g.redInvm().redPow(i), t = t.toRed(b).redMul(m).fromRed(); + case 16: + return v = t.toRed(p).redPow(h), _ = t.toRed(y).redPow(l), w = _.redSub(v.fromRed().toRed(y)), k = d.toRed(y).redMul(w).fromRed(), A = k.mul(o).add(v).toRed(b), f.default.rsa_blinding && (A = A.redMul(g)), e.abrupt("return", A.toArrayLike(Uint8Array, "be", r.byteLength())); + case 23: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i, a, s, o) { + return e.apply(this, arguments) + } + }(), generate: function () { + var e = (0, i.default)(n.default.mark(function e(t, r) { + var i, a, u, f, d, h, p, y, b; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (i = void 0, r = new s.default(r, 16), !(a = c.default.getWebCryptoAll())) { + e.next = 35; + break + } + if (u = void 0, f = void 0, !(window.crypto && window.crypto.subtle || window.msCrypto)) { + e.next = 14; + break + } + return f = { + name: "RSASSA-PKCS1-v1_5", + modulusLength: t, + publicExponent: r.toArrayLike(Uint8Array), + hash: {name: "SHA-1"} + }, u = a.generateKey(f, !0, ["sign", "verify"]), e.next = 11, l(u, "Error generating RSA key pair."); + case 11: + u = e.sent, e.next = 22; + break; + case 14: + if (!window.crypto || !window.crypto.webkitSubtle) { + e.next = 21; + break + } + return f = { + name: "RSA-OAEP", + modulusLength: t, + publicExponent: r.toArrayLike(Uint8Array), + hash: {name: "SHA-1"} + }, e.next = 18, a.generateKey(f, !0, ["encrypt", "decrypt"]); + case 18: + u = e.sent, e.next = 22; + break; + case 21: + throw new Error("Unknown WebCrypto implementation"); + case 22: + return d = a.exportKey("jwk", u.privateKey), e.next = 25, l(d, "Error exporting RSA key pair."); + case 25: + return (d = e.sent) instanceof ArrayBuffer && (d = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(d)))), (i = {}).n = new s.default(c.default.b64_to_Uint8Array(d.n)), i.e = r, i.d = new s.default(c.default.b64_to_Uint8Array(d.d)), i.p = new s.default(c.default.b64_to_Uint8Array(d.p)), i.q = new s.default(c.default.b64_to_Uint8Array(d.q)), i.u = i.p.invm(i.q), e.abrupt("return", i); + case 35: + return e.next = 37, o.default.randomProbablePrime(t - (t >> 1), r, 40); + case 37: + return h = e.sent, e.next = 40, o.default.randomProbablePrime(t >> 1, r, 40); + case 40: + return p = e.sent, h.cmp(p) < 0 && (h = (y = [p, h])[0], p = y[1]), b = h.subn(1).mul(p.subn(1)), e.abrupt("return", { + n: h.mul(p), + e: r, + d: r.invm(b), + p: h, + q: p, + u: h.invm(p) + }); + case 44: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }(), prime: o.default + } + }, { + "../../config": 309, + "../../util": 382, + "../random": 339, + "./prime": 337, + "babel-runtime/core-js/promise": 28, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 339: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = o(e("babel-runtime/regenerator")), i = o(e("babel-runtime/helpers/typeof")), + a = o(e("babel-runtime/helpers/asyncToGenerator")), s = o(e("bn.js")); + o(e("../type/mpi")); + + function o(e) { + return e && e.__esModule ? e : {default: e} + } - function Maj(x, y, z) { - return ((x & y) ^ (x & z) ^ (y & z)); - } + var u, f = o(e("../util")).default.detectNode() && e("crypto"); - function Sigma0256(x) { - return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); - } + function c() { + this.buffer = null, this.size = null, this.callback = null + } - function Sigma1256(x) { - return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); - } + r.default = { + getRandomBytes: function () { + var e = (0, a.default)(n.default.mark(function e(t) { + var r, a; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (r = new Uint8Array(t), "undefined" == typeof window || !window.crypto || !window.crypto.getRandomValues) { + e.next = 5; + break + } + window.crypto.getRandomValues(r), e.next = 20; + break; + case 5: + if ("undefined" == typeof window || "object" !== (0, i.default)(window.msCrypto) || "function" != typeof window.msCrypto.getRandomValues) { + e.next = 9; + break + } + window.msCrypto.getRandomValues(r), e.next = 20; + break; + case 9: + if (!f) { + e.next = 14; + break + } + a = f.randomBytes(r.length), r.set(a), e.next = 20; + break; + case 14: + if (!this.randomBuffer.buffer) { + e.next = 19; + break + } + return e.next = 17, this.randomBuffer.get(r); + case 17: + e.next = 20; + break; + case 19: + throw new Error("No secure random number generator available."); + case 20: + return e.abrupt("return", r); + case 21: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }(), getRandomBN: function () { + var e = (0, a.default)(n.default.mark(function e(t, r) { + var i, a, o; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(r.cmp(t) <= 0)) { + e.next = 2; + break + } + throw new Error("Illegal parameter value: max <= min"); + case 2: + return i = r.sub(t), a = i.byteLength(), e.t0 = s.default, e.next = 7, this.getRandomBytes(a + 8); + case 7: + return e.t1 = e.sent, o = new e.t0(e.t1), e.abrupt("return", o.mod(i).add(t)); + case 10: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }(), randomBuffer: new c + }, c.prototype.init = function (e, t) { + this.buffer = new Uint8Array(e), this.size = 0, this.callback = t + }, c.prototype.set = function (e) { + if (!this.buffer) throw new Error("RandomBuffer is not initialized"); + if (!(e instanceof Uint8Array)) throw new Error("Invalid type: buf not an Uint8Array"); + var t = this.buffer.length - this.size; + e.length > t && (e = e.subarray(0, t)), this.buffer.set(e, this.size), this.size += e.length + }, c.prototype.get = (u = (0, a.default)(n.default.mark(function e(t) { + var r; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (this.buffer) { + e.next = 2; + break + } + throw new Error("RandomBuffer is not initialized"); + case 2: + if (t instanceof Uint8Array) { + e.next = 4; + break + } + throw new Error("Invalid type: buf not an Uint8Array"); + case 4: + if (!(this.size < t.length)) { + e.next = 10; + break + } + if (this.callback) { + e.next = 7; + break + } + throw new Error("Random number buffer depleted"); + case 7: + return e.next = 9, this.callback(); + case 9: + return e.abrupt("return", this.get(t)); + case 10: + for (r = 0; r < t.length; r++) t[r] = this.buffer[--this.size], this.buffer[this.size] = 0; + case 11: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return u.apply(this, arguments) + }) + }, { + "../type/mpi": 379, + "../util": 382, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/helpers/typeof": 37, + "babel-runtime/regenerator": 38, + "bn.js": 40, + crypto: "crypto" + }], + 340: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = d(e("babel-runtime/regenerator")), i = d(e("babel-runtime/core-js/array/from")), + a = d(e("babel-runtime/helpers/asyncToGenerator")), s = d(e("bn.js")), o = d(e("./public_key")), + u = d(e("./pkcs1")), f = d(e("../enums")), c = d(e("../util")); + + function d(e) { + return e && e.__esModule ? e : {default: e} + } - function Gamma0256(x) { - return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); - } + r.default = { + verify: function () { + var e = (0, a.default)(n.default.mark(function e(t, r, a, s, d) { + var l, h, p, y, b, m, g, v, _, w, k, A, x, S, E, M, C; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + e.t0 = t, e.next = e.t0 === f.default.publicKey.rsa_encrypt_sign ? 3 : e.t0 === f.default.publicKey.rsa_encrypt ? 3 : e.t0 === f.default.publicKey.rsa_sign ? 3 : e.t0 === f.default.publicKey.dsa ? 11 : e.t0 === f.default.publicKey.ecdsa ? 18 : e.t0 === f.default.publicKey.eddsa ? 22 : 26; + break; + case 3: + return l = a[0].toBN(), h = s[0].toBN(), p = s[1].toBN(), e.next = 8, o.default.rsa.verify(l, h, p); + case 8: + return y = e.sent, b = u.default.emsa.encode(r, c.default.Uint8Array_to_str(d), h.byteLength()), e.abrupt("return", c.default.Uint8Array_to_hex(y) === b); + case 11: + return m = a[0].toBN(), g = a[1].toBN(), v = s[0].toBN(), _ = s[1].toBN(), w = s[2].toBN(), k = s[3].toBN(), e.abrupt("return", o.default.dsa.verify(r, m, g, d, w, v, _, k)); + case 18: + return A = s[0], x = { + r: a[0].toUint8Array(), + s: a[1].toUint8Array() + }, S = s[1].toUint8Array(), e.abrupt("return", o.default.elliptic.ecdsa.verify(A, r, x, d, S)); + case 22: + return E = s[0], M = { + R: (0, i.default)(a[0].toUint8Array("le", 32)), + S: (0, i.default)(a[1].toUint8Array("le", 32)) + }, C = (0, i.default)(s[1].toUint8Array("be", 33)), e.abrupt("return", o.default.elliptic.eddsa.verify(E, r, M, d, C)); + case 26: + throw new Error("Invalid signature algorithm."); + case 27: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i, a) { + return e.apply(this, arguments) + } + }(), sign: function () { + var e = (0, a.default)(n.default.mark(function e(t, r, a, d) { + var l, h, p, y, b, m, g, v, _, w, k, A, x, S, E, M; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + e.t0 = t, e.next = e.t0 === f.default.publicKey.rsa_encrypt_sign ? 3 : e.t0 === f.default.publicKey.rsa_encrypt ? 3 : e.t0 === f.default.publicKey.rsa_sign ? 3 : e.t0 === f.default.publicKey.dsa ? 12 : e.t0 === f.default.publicKey.elgamal ? 20 : e.t0 === f.default.publicKey.ecdsa ? 21 : e.t0 === f.default.publicKey.eddsa ? 27 : 33; + break; + case 3: + return l = a[0].toBN(), h = a[1].toBN(), p = a[2].toBN(), d = c.default.Uint8Array_to_str(d), y = new s.default(u.default.emsa.encode(r, d, l.byteLength()), 16), e.next = 10, o.default.rsa.sign(y, l, h, p); + case 10: + return b = e.sent, e.abrupt("return", c.default.Uint8Array_to_MPI(b)); + case 12: + return m = a[0].toBN(), g = a[1].toBN(), v = a[2].toBN(), _ = a[4].toBN(), e.next = 18, o.default.dsa.sign(r, d, v, m, g, _); + case 18: + return w = e.sent, e.abrupt("return", c.default.concatUint8Array([c.default.Uint8Array_to_MPI(w.r), c.default.Uint8Array_to_MPI(w.s)])); + case 20: + throw new Error("Signing with Elgamal is not defined in the OpenPGP standard."); + case 21: + return k = a[0], A = a[2].toUint8Array(), e.next = 25, o.default.elliptic.ecdsa.sign(k, r, d, A); + case 25: + return x = e.sent, e.abrupt("return", c.default.concatUint8Array([c.default.Uint8Array_to_MPI(x.r), c.default.Uint8Array_to_MPI(x.s)])); + case 27: + return S = a[0], E = (0, i.default)(a[2].toUint8Array("be", 32)), e.next = 31, o.default.elliptic.eddsa.sign(S, r, d, E); + case 31: + return M = e.sent, e.abrupt("return", c.default.concatUint8Array([c.default.Uint8Array_to_MPI(M.R), c.default.Uint8Array_to_MPI(M.S)])); + case 33: + throw new Error("Invalid signature algorithm."); + case 34: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i) { + return e.apply(this, arguments) + } + }() + } + }, { + "../enums": 343, + "../util": 382, + "./pkcs1": 326, + "./public_key": 336, + "babel-runtime/core-js/array/from": 19, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38, + "bn.js": 40 + }], + 341: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = s(e("./base64.js")), i = s(e("../enums.js")), a = s(e("../config")); + + function s(e) { + return e && e.__esModule ? e : {default: e} + } - function Gamma1256(x) { - return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); - } + function o() { + var e = ""; + return a.default.show_version && (e += "Version: " + a.default.versionstring + "\r\n"), a.default.show_comment && (e += "Comment: " + a.default.commentstring + "\r\n"), e += "\r\n" + } - function core_sha256(m, l) { - var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2); - var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19); - var W = new Array(64); - var a, b, c, d, e, f, g, h, i, j; - var T1, T2; - - m[l >> 5] |= 0x80 << (24 - l % 32); - m[((l + 64 >> 9) << 4) + 15] = l; - - for (var i = 0; i < m.length; i += 16) { - a = HASH[0]; - b = HASH[1]; - c = HASH[2]; - d = HASH[3]; - e = HASH[4]; - f = HASH[5]; - g = HASH[6]; - h = HASH[7]; - - for (var j = 0; j < 64; j++) { - if (j < 16) W[j] = m[j + i]; - else W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]); - - T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]); - T2 = safe_add(Sigma0256(a), Maj(a, b, c)); - - h = g; - g = f; - f = e; - e = safe_add(d, T1); - d = c; - c = b; - b = a; - a = safe_add(T1, T2); - } - - HASH[0] = safe_add(a, HASH[0]); - HASH[1] = safe_add(b, HASH[1]); - HASH[2] = safe_add(c, HASH[2]); - HASH[3] = safe_add(d, HASH[3]); - HASH[4] = safe_add(e, HASH[4]); - HASH[5] = safe_add(f, HASH[5]); - HASH[6] = safe_add(g, HASH[6]); - HASH[7] = safe_add(h, HASH[7]); - } - return HASH; - } + function u(e) { + var t = function (e) { + for (var t = 11994318, r = 0; r < e.length; r++) t = t << 8 ^ f[255 & (t >> 16 ^ e[r])]; + return 16777215 & t + }(e), r = new Uint8Array([t >> 16, t >> 8 & 255, 255 & t]); + return n.default.encode(r) + } - function str2binb(str) { - var bin = Array(); - var mask = (1 << chrsz) - 1; - for (var i = 0; i < str.length * chrsz; i += chrsz) { - bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32); - } - return bin; - } + var f = [0, 8801531, 25875725, 17603062, 60024545, 51751450, 35206124, 44007191, 128024889, 120049090, 103502900, 112007375, 70412248, 78916387, 95990485, 88014382, 264588937, 256049778, 240098180, 248108927, 207005800, 215016595, 232553829, 224014750, 140824496, 149062475, 166599357, 157832774, 200747345, 191980970, 176028764, 184266919, 520933865, 529177874, 512099556, 503334943, 480196360, 471432179, 487973381, 496217854, 414011600, 405478443, 422020573, 430033190, 457094705, 465107658, 448029500, 439496647, 281648992, 273666971, 289622637, 298124950, 324696449, 333198714, 315665548, 307683447, 392699481, 401494690, 383961940, 375687087, 352057528, 343782467, 359738805, 368533838, 1041867730, 1050668841, 1066628831, 1058355748, 1032471859, 1024199112, 1006669886, 1015471301, 968368875, 960392720, 942864358, 951368477, 975946762, 984451313, 1000411399, 992435708, 836562267, 828023200, 810956886, 818967725, 844041146, 852051777, 868605623, 860066380, 914189410, 922427545, 938981743, 930215316, 904825475, 896059e3, 878993294, 887231349, 555053627, 563297984, 547333942, 538569677, 579245274, 570480673, 588005847, 596249900, 649392898, 640860153, 658384399, 666397428, 623318499, 631331096, 615366894, 606833685, 785398962, 777416777, 794487231, 802989380, 759421523, 767923880, 751374174, 743392165, 695319947, 704115056, 687564934, 679289981, 719477610, 711202705, 728272487, 737067676, 2083735460, 2092239711, 2109313705, 2101337682, 2141233477, 2133257662, 2116711496, 2125215923, 2073216669, 2064943718, 2048398224, 2057199467, 2013339772, 2022141063, 2039215473, 2030942602, 1945504045, 1936737750, 1920785440, 1929023707, 1885728716, 1893966647, 1911503553, 1902736954, 1951893524, 1959904495, 1977441561, 1968902626, 2009362165, 2000822798, 1984871416, 1992881923, 1665111629, 1673124534, 1656046400, 1647513531, 1621913772, 1613380695, 1629922721, 1637935450, 1688082292, 1679317903, 1695859321, 1704103554, 1728967061, 1737211246, 1720132760, 1711368291, 1828378820, 1820103743, 1836060105, 1844855090, 1869168165, 1877963486, 1860430632, 1852155859, 1801148925, 1809650950, 1792118e3, 1784135691, 1757986588, 1750004711, 1765960209, 1774462698, 1110107254, 1118611597, 1134571899, 1126595968, 1102643863, 1094667884, 1077139354, 1085643617, 1166763343, 1158490548, 1140961346, 1149762745, 1176011694, 1184812885, 1200772771, 1192499800, 1307552511, 1298785796, 1281720306, 1289958153, 1316768798, 1325007077, 1341561107, 1332794856, 1246636998, 1254647613, 1271201483, 1262662192, 1239272743, 1230733788, 1213667370, 1221678289, 1562785183, 1570797924, 1554833554, 1546300521, 1588974462, 1580441477, 1597965939, 1605978760, 1518843046, 1510078557, 1527603627, 1535847760, 1494504007, 1502748348, 1486784330, 1478020017, 1390639894, 1382365165, 1399434779, 1408230112, 1366334967, 1375129868, 1358579962, 1350304769, 1430452783, 1438955220, 1422405410, 1414423513, 1456544974, 1448562741, 1465633219, 1474135352]; - function Utf8Encode(string) { - string = string.replace(/\r\n/g, "\n"); - var utftext = ""; + function c(e) { + var t = "", r = e, n = /^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*\n/m.exec(e); + if (null === n) throw new Error("Mandatory blank line missing between armor headers and armor data"); + return t = e.slice(0, n.index), r = e.slice(n.index + n[0].length), (t = t.split("\n")).pop(), { + headers: t, + body: r + } + } - for (var n = 0; n < string.length; n++) { + function d(e) { + for (var t = 0; t < e.length; t++) { + if (!/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t])) throw new Error("Improperly formatted armor header: " + e[t]); + a.default.debug && !/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t]) && console.log("Unknown header: " + e[t]) + } + } - var c = string.charCodeAt(n); + function l(e) { + var t = e = e.trim(), r = "", n = e.lastIndexOf("="); + return n >= 0 && n !== e.length - 1 && (t = e.slice(0, n), r = e.slice(n + 1).substr(0, 4)), { + body: t, + checksum: r + } + } - if (c < 128) { - utftext += String.fromCharCode(c); + r.default = { + encode: function (e, t, r, a) { + var s = []; + switch (e) { + case i.default.armor.multipart_section: + s.push("-----BEGIN PGP MESSAGE, PART " + r + "/" + a + "-----\r\n"), s.push(o()), s.push(n.default.encode(t)), s.push("\r\n=" + u(t) + "\r\n"), s.push("-----END PGP MESSAGE, PART " + r + "/" + a + "-----\r\n"); + break; + case i.default.armor.multipart_last: + s.push("-----BEGIN PGP MESSAGE, PART " + r + "-----\r\n"), s.push(o()), s.push(n.default.encode(t)), s.push("\r\n=" + u(t) + "\r\n"), s.push("-----END PGP MESSAGE, PART " + r + "-----\r\n"); + break; + case i.default.armor.signed: + s.push("\r\n-----BEGIN PGP SIGNED MESSAGE-----\r\n"), s.push("Hash: " + t.hash + "\r\n\r\n"), s.push(t.text.replace(/^-/gm, "- -")), s.push("\r\n-----BEGIN PGP SIGNATURE-----\r\n"), s.push(o()), s.push(n.default.encode(t.data)), s.push("\r\n=" + u(t.data) + "\r\n"), s.push("-----END PGP SIGNATURE-----\r\n"); + break; + case i.default.armor.message: + s.push("-----BEGIN PGP MESSAGE-----\r\n"), s.push(o()), s.push(n.default.encode(t)), s.push("\r\n=" + u(t) + "\r\n"), s.push("-----END PGP MESSAGE-----\r\n"); + break; + case i.default.armor.public_key: + s.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n"), s.push(o()), s.push(n.default.encode(t)), s.push("\r\n=" + u(t) + "\r\n"), s.push("-----END PGP PUBLIC KEY BLOCK-----\r\n\r\n"); + break; + case i.default.armor.private_key: + s.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\r\n"), s.push(o()), s.push(n.default.encode(t)), s.push("\r\n=" + u(t) + "\r\n"), s.push("-----END PGP PRIVATE KEY BLOCK-----\r\n"); + break; + case i.default.armor.signature: + s.push("-----BEGIN PGP SIGNATURE-----\r\n"), s.push(o()), s.push(n.default.encode(t)), s.push("\r\n=" + u(t) + "\r\n"), s.push("-----END PGP SIGNATURE-----\r\n") + } + return s.join("") + }, decode: function (e) { + var t = /^-----[^-]+-----$\n/m, r = function (e) { + var t = e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$\n/m); + if (!t) throw new Error("Unknown ASCII armor type"); + return /MESSAGE, PART \d+\/\d+/.test(t[1]) ? i.default.armor.multipart_section : /MESSAGE, PART \d+/.test(t[1]) ? i.default.armor.multipart_last : /SIGNED MESSAGE/.test(t[1]) ? i.default.armor.signed : /MESSAGE/.test(t[1]) ? i.default.armor.message : /PUBLIC KEY BLOCK/.test(t[1]) ? i.default.armor.public_key : /PRIVATE KEY BLOCK/.test(t[1]) ? i.default.armor.private_key : /SIGNATURE/.test(t[1]) ? i.default.armor.signature : void 0 + }(e = e.trim().replace(/[\t\r ]+\n/g, "\n")), s = (e += "\n").split(t), o = 1, f = void 0, + h = void 0, p = void 0; + if (e.search(t) !== s[0].length && (o = 0), 2 !== r) { + var y = l((p = c(s[o])).body); + f = {data: n.default.decode(y.body), headers: p.headers, type: r}, h = y.checksum + } else { + p = c(s[o].replace(/^- /gm, "")); + var b = c(s[o + 1].replace(/^- /gm, "")); + d(b.headers); + var m = l(b.body); + f = { + text: p.body.replace(/\n$/, "").replace(/\n/g, "\r\n"), + data: n.default.decode(m.body), + headers: p.headers, + type: r + }, h = m.checksum + } + if (!function (e, t) { + var r = u(e), n = t; + return r[0] === n[0] && r[1] === n[1] && r[2] === n[2] && r[3] === n[3] + }(f.data, h) && (h || a.default.checksum_required)) throw new Error("Ascii armor integrity check on message failed: '" + h + "' should be '" + u(f.data) + "'"); + return d(f.headers), f + } + } + }, {"../config": 309, "../enums.js": 343, "./base64.js": 342}], + 342: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", + i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; + r.default = { + encode: function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], r = t ? i : n, a = void 0, + s = void 0, o = void 0, u = [], f = 0, c = 0, d = e.length; + for (o = 0; o < d; o++) s = e[o], 0 === c ? (u.push(r.charAt(s >> 2 & 63)), a = (3 & s) << 4) : 1 === c ? (u.push(r.charAt(a | s >> 4 & 15)), a = (15 & s) << 2) : 2 === c && (u.push(r.charAt(a | s >> 6 & 3)), (f += 1) % 60 != 0 || t || u.push("\n"), u.push(r.charAt(63 & s))), (f += 1) % 60 != 0 || t || u.push("\n"), 3 === (c += 1) && (c = 0); + return c > 0 && (u.push(r.charAt(a)), (f += 1) % 60 != 0 || t || u.push("\n"), t || (u.push("="), f += 1)), 1 !== c || t || (f % 60 != 0 || t || u.push("\n"), u.push("=")), u.join("") + }, decode: function (e, t) { + var r = t ? i : n, a = void 0, s = void 0, o = [], u = 0, f = 0, c = e.length; + for (s = 0; s < c; s++) (a = r.indexOf(e.charAt(s))) >= 0 && (u && o.push(f | a >> 6 - u & 255), f = a << (u = u + 2 & 7) & 255); + return new Uint8Array(o) + } } - else if ((c > 127) && (c < 2048)) { - utftext += String.fromCharCode((c >> 6) | 192); - utftext += String.fromCharCode((c & 63) | 128); + }, {}], + 343: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.default = { + curve: { + p256: "p256", + "P-256": "p256", + secp256r1: "p256", + prime256v1: "p256", + "1.2.840.10045.3.1.7": "p256", + "2a8648ce3d030107": "p256", + "2A8648CE3D030107": "p256", + p384: "p384", + "P-384": "p384", + secp384r1: "p384", + "1.3.132.0.34": "p384", + "2b81040022": "p384", + "2B81040022": "p384", + p521: "p521", + "P-521": "p521", + secp521r1: "p521", + "1.3.132.0.35": "p521", + "2b81040023": "p521", + "2B81040023": "p521", + secp256k1: "secp256k1", + "1.3.132.0.10": "secp256k1", + "2b8104000a": "secp256k1", + "2B8104000A": "secp256k1", + ED25519: "ed25519", + ed25519: "ed25519", + Ed25519: "ed25519", + "1.3.6.1.4.1.11591.15.1": "ed25519", + "2b06010401da470f01": "ed25519", + "2B06010401DA470F01": "ed25519", + X25519: "curve25519", + cv25519: "curve25519", + curve25519: "curve25519", + Curve25519: "curve25519", + "1.3.6.1.4.1.3029.1.5.1": "curve25519", + "2b060104019755010501": "curve25519", + "2B060104019755010501": "curve25519", + brainpoolP256r1: "brainpoolP256r1", + "1.3.36.3.3.2.8.1.1.7": "brainpoolP256r1", + "2b2403030208010107": "brainpoolP256r1", + "2B2403030208010107": "brainpoolP256r1", + brainpoolP384r1: "brainpoolP384r1", + "1.3.36.3.3.2.8.1.1.11": "brainpoolP384r1", + "2b240303020801010b": "brainpoolP384r1", + "2B240303020801010B": "brainpoolP384r1", + brainpoolP512r1: "brainpoolP512r1", + "1.3.36.3.3.2.8.1.1.13": "brainpoolP512r1", + "2b240303020801010d": "brainpoolP512r1", + "2B240303020801010D": "brainpoolP512r1" + }, + s2k: {simple: 0, salted: 1, iterated: 3, gnu: 101}, + publicKey: { + rsa_encrypt_sign: 1, + rsa_encrypt: 2, + rsa_sign: 3, + elgamal: 16, + dsa: 17, + ecdh: 18, + ecdsa: 19, + eddsa: 22, + aedh: 23, + aedsa: 24 + }, + symmetric: { + plaintext: 0, + idea: 1, + tripledes: 2, + cast5: 3, + blowfish: 4, + aes128: 7, + aes192: 8, + aes256: 9, + twofish: 10 + }, + compression: {uncompressed: 0, zip: 1, zlib: 2, bzip2: 3}, + hash: {md5: 1, sha1: 2, ripemd: 3, sha256: 8, sha384: 9, sha512: 10, sha224: 11}, + webHash: {"SHA-1": 2, "SHA-256": 8, "SHA-384": 9, "SHA-512": 10}, + aead: {eax: 1, ocb: 2, experimental_gcm: 100}, + packet: { + publicKeyEncryptedSessionKey: 1, + signature: 2, + symEncryptedSessionKey: 3, + onePassSignature: 4, + secretKey: 5, + publicKey: 6, + secretSubkey: 7, + compressed: 8, + symmetricallyEncrypted: 9, + marker: 10, + literal: 11, + trust: 12, + userid: 13, + publicSubkey: 14, + userAttribute: 17, + symEncryptedIntegrityProtected: 18, + modificationDetectionCode: 19, + symEncryptedAEADProtected: 20 + }, + literal: { + binary: "b".charCodeAt(), + text: "t".charCodeAt(), + utf8: "u".charCodeAt(), + mime: "m".charCodeAt() + }, + signature: { + binary: 0, + text: 1, + standalone: 2, + cert_generic: 16, + cert_persona: 17, + cert_casual: 18, + cert_positive: 19, + cert_revocation: 48, + subkey_binding: 24, + key_binding: 25, + key: 31, + key_revocation: 32, + subkey_revocation: 40, + timestamp: 64, + third_party: 80 + }, + signatureSubpacket: { + signature_creation_time: 2, + signature_expiration_time: 3, + exportable_certification: 4, + trust_signature: 5, + regular_expression: 6, + revocable: 7, + key_expiration_time: 9, + placeholder_backwards_compatibility: 10, + preferred_symmetric_algorithms: 11, + revocation_key: 12, + issuer: 16, + notation_data: 20, + preferred_hash_algorithms: 21, + preferred_compression_algorithms: 22, + key_server_preferences: 23, + preferred_key_server: 24, + primary_user_id: 25, + policy_uri: 26, + key_flags: 27, + signers_user_id: 28, + reason_for_revocation: 29, + features: 30, + signature_target: 31, + embedded_signature: 32, + issuer_fingerprint: 33, + preferred_aead_algorithms: 34 + }, + keyFlags: { + certify_keys: 1, + sign_data: 2, + encrypt_communication: 4, + encrypt_storage: 8, + split_private_key: 16, + authentication: 32, + shared_private_key: 128 + }, + keyStatus: {invalid: 0, expired: 1, revoked: 2, valid: 3, no_self_cert: 4}, + armor: { + multipart_section: 0, + multipart_last: 1, + signed: 2, + message: 3, + public_key: 4, + private_key: 5, + signature: 6 + }, + features: {modification_detection: 1, aead: 2, v5_keys: 4}, + write: function (e, t) { + if ("number" == typeof t && (t = this.read(e, t)), void 0 !== e[t]) return e[t]; + throw new Error("Invalid enum value.") + }, + read: function (e, t) { + for (var r in e) if (e[r] === parseInt(t, 10)) return r; + throw new Error("Invalid enum value.") + } } - else { - utftext += String.fromCharCode((c >> 12) | 224); - utftext += String.fromCharCode(((c >> 6) & 63) | 128); - utftext += String.fromCharCode((c & 63) | 128); + }, {}], + 344: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("./config"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s(t) { + this._baseUrl = t || a.default.keyserver, this._fetch = "undefined" != typeof window ? window.fetch : e("node-fetch") } - } + s.prototype.lookup = function (e) { + var t = this._baseUrl + "/pks/lookup?op=get&options=mr&search=", r = this._fetch; + if (e.keyId) t += "0x" + encodeURIComponent(e.keyId); else { + if (!e.query) throw new Error("You must provide a query parameter!"); + t += encodeURIComponent(e.query) + } + return r(t).then(function (e) { + if (200 === e.status) return e.text() + }).then(function (e) { + if (e && !(e.indexOf("-----END PGP PUBLIC KEY BLOCK-----") < 0)) return e.trim() + }) + }, s.prototype.upload = function (e) { + var t = this._baseUrl + "/pks/add"; + return (0, this._fetch)(t, { + method: "post", + headers: {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}, + body: "keytext=" + encodeURIComponent(e) + }) + }, r.default = s + }, {"./config": 309, "node-fetch": "node-fetch"}], + 345: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.HKP = r.AsyncProxy = r.Keyring = r.crypto = r.config = r.enums = r.armor = r.OID = r.KDFParams = r.ECDHSymmetricKey = r.Keyid = r.S2K = r.MPI = r.packet = r.util = r.cleartext = r.message = r.signature = r.key = r.destroyWorker = r.getWorker = r.initWorker = r.decryptSessionKeys = r.encryptSessionKey = r.decryptKey = r.reformatKey = r.generateKey = r.verify = r.sign = r.decrypt = r.encrypt = void 0; + var n = e("./openpgp"); + Object.defineProperty(r, "encrypt", { + enumerable: !0, get: function () { + return n.encrypt + } + }), Object.defineProperty(r, "decrypt", { + enumerable: !0, get: function () { + return n.decrypt + } + }), Object.defineProperty(r, "sign", { + enumerable: !0, get: function () { + return n.sign + } + }), Object.defineProperty(r, "verify", { + enumerable: !0, get: function () { + return n.verify + } + }), Object.defineProperty(r, "generateKey", { + enumerable: !0, get: function () { + return n.generateKey + } + }), Object.defineProperty(r, "reformatKey", { + enumerable: !0, get: function () { + return n.reformatKey + } + }), Object.defineProperty(r, "decryptKey", { + enumerable: !0, get: function () { + return n.decryptKey + } + }), Object.defineProperty(r, "encryptSessionKey", { + enumerable: !0, get: function () { + return n.encryptSessionKey + } + }), Object.defineProperty(r, "decryptSessionKeys", { + enumerable: !0, get: function () { + return n.decryptSessionKeys + } + }), Object.defineProperty(r, "initWorker", { + enumerable: !0, get: function () { + return n.initWorker + } + }), Object.defineProperty(r, "getWorker", { + enumerable: !0, get: function () { + return n.getWorker + } + }), Object.defineProperty(r, "destroyWorker", { + enumerable: !0, get: function () { + return n.destroyWorker + } + }); + var i = e("./util"); + Object.defineProperty(r, "util", { + enumerable: !0, get: function () { + return S(i).default + } + }); + var a = e("./packet"); + Object.defineProperty(r, "packet", { + enumerable: !0, get: function () { + return S(a).default + } + }); + var s = e("./type/mpi"); + Object.defineProperty(r, "MPI", { + enumerable: !0, get: function () { + return S(s).default + } + }); + var o = e("./type/s2k"); + Object.defineProperty(r, "S2K", { + enumerable: !0, get: function () { + return S(o).default + } + }); + var u = e("./type/keyid"); + Object.defineProperty(r, "Keyid", { + enumerable: !0, get: function () { + return S(u).default + } + }); + var f = e("./type/ecdh_symkey"); + Object.defineProperty(r, "ECDHSymmetricKey", { + enumerable: !0, get: function () { + return S(f).default + } + }); + var c = e("./type/kdf_params"); + Object.defineProperty(r, "KDFParams", { + enumerable: !0, get: function () { + return S(c).default + } + }); + var d = e("./type/oid"); + Object.defineProperty(r, "OID", { + enumerable: !0, get: function () { + return S(d).default + } + }); + var l = e("./encoding/armor"); + Object.defineProperty(r, "armor", { + enumerable: !0, get: function () { + return S(l).default + } + }); + var h = e("./enums"); + Object.defineProperty(r, "enums", { + enumerable: !0, get: function () { + return S(h).default + } + }); + var p = e("./config/config"); + Object.defineProperty(r, "config", { + enumerable: !0, get: function () { + return S(p).default + } + }); + var y = e("./crypto"); + Object.defineProperty(r, "crypto", { + enumerable: !0, get: function () { + return S(y).default + } + }); + var b = e("./keyring"); + Object.defineProperty(r, "Keyring", { + enumerable: !0, get: function () { + return S(b).default + } + }); + var m = e("./worker/async_proxy"); + Object.defineProperty(r, "AsyncProxy", { + enumerable: !0, get: function () { + return S(m).default + } + }); + var g = e("./hkp"); + Object.defineProperty(r, "HKP", { + enumerable: !0, get: function () { + return S(g).default + } + }); + var v = x(n), _ = x(e("./key")), w = x(e("./signature")), k = x(e("./message")), A = x(e("./cleartext")); + + function x(e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); + return t.default = e, t + } - return utftext; - } + function S(e) { + return e && e.__esModule ? e : {default: e} + } - function binb2hex(binarray) { - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var str = ""; - for (var i = 0; i < binarray.length * 4; i++) { - str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + - hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF); - } - return str; - } + r.default = v; + r.key = _, r.signature = w, r.message = k, r.cleartext = A + }, { + "./cleartext": 306, + "./config/config": 308, + "./crypto": 324, + "./encoding/armor": 341, + "./enums": 343, + "./hkp": 344, + "./key": 346, + "./keyring": 347, + "./message": 350, + "./openpgp": 351, + "./packet": 355, + "./signature": 375, + "./type/ecdh_symkey": 376, + "./type/kdf_params": 377, + "./type/keyid": 378, + "./type/mpi": 379, + "./type/oid": 380, + "./type/s2k": 381, + "./util": 382, + "./worker/async_proxy": 383 + }], + 346: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.isAeadSupported = r.getPreferredAlgo = r.getPreferredHashAlgo = r.reformat = r.generate = void 0; + var n, i, a, s, o, u, f, c, d = V(e("babel-runtime/core-js/object/get-prototype-of")), + l = V(e("babel-runtime/helpers/slicedToArray")), h = V(e("babel-runtime/core-js/promise")), + p = V(e("babel-runtime/regenerator")), y = V(e("babel-runtime/helpers/asyncToGenerator")), + b = (n = (0, y.default)(p.default.mark(function e(t, r, n, i) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(t = t[n])) { + e.next = 8; + break + } + if (r[n].length) { + e.next = 6; + break + } + r[n] = t, e.next = 8; + break; + case 6: + return e.next = 8, h.default.all(t.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (e.t1 = !t.isExpired(), !e.t1) { + e.next = 8; + break + } + if (e.t2 = !i, e.t2) { + e.next = 7; + break + } + return e.next = 6, i(t); + case 6: + e.t2 = e.sent; + case 7: + e.t1 = e.t2; + case 8: + if (e.t0 = e.t1, !e.t0) { + e.next = 11; + break + } + e.t0 = !r[n].some(function (e) { + return Z.default.equalsUint8Array(e.signature, t.signature) + }); + case 11: + if (!e.t0) { + e.next = 13; + break + } + r[n].push(t); + case 13: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 8: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, i) { + return n.apply(this, arguments) + }), m = (r.generate = (i = (0, y.default)(p.default.mark(function e(t) { + var r, n, i, a, s = (r = (0, y.default)(p.default.mark(function e(t) { + var r; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return (r = new q.default.SecretKey(t.date)).packets = null, r.algorithm = H.default.read(H.default.publicKey, t.algorithm), e.next = 5, r.generate(t.numBits, t.curve); + case 5: + return e.abrupt("return", r); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return r.apply(this, arguments) + }), o = (n = (0, y.default)(p.default.mark(function e(t) { + var r; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return (r = new q.default.SecretSubkey(t.date)).packets = null, r.algorithm = H.default.read(H.default.publicKey, t.algorithm), e.next = 5, r.generate(t.numBits, t.curve); + case 5: + return e.abrupt("return", r); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }); + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return a = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + if (e.curve = e.curve || t.curve, e.numBits = e.numBits || t.numBits, e.keyExpirationTime = void 0 !== e.keyExpirationTime ? e.keyExpirationTime : t.keyExpirationTime, e.passphrase = Z.default.isString(e.passphrase) ? e.passphrase : t.passphrase, e.date = e.date || t.date, e.sign = e.sign || !1, e.curve) { + try { + e.curve = H.default.write(H.default.curve, e.curve) + } catch (e) { + throw new Error("Not valid curve.") + } + e.curve === H.default.curve.ed25519 || e.curve === H.default.curve.curve25519 ? e.sign ? (e.algorithm = H.default.publicKey.eddsa, e.curve = H.default.curve.ed25519) : (e.algorithm = H.default.publicKey.ecdh, e.curve = H.default.curve.curve25519) : e.sign ? e.algorithm = H.default.publicKey.ecdsa : e.algorithm = H.default.publicKey.ecdh + } else { + if (!e.numBits) throw new Error("Unrecognized key type"); + e.algorithm = H.default.publicKey.rsa_encrypt_sign + } + return e + }, t.sign = !0, (t = a(t)).subkeys = t.subkeys.map(function (e, r) { + return a(t.subkeys[r], t) + }), i = (i = [s(t)]).concat(t.subkeys.map(o)), e.abrupt("return", h.default.all(i).then(function (e) { + return m(e[0], e.slice(1), t) + })); + case 7: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return i.apply(this, arguments) + }), r.reformat = (a = (0, y.default)(p.default.mark(function e(t) { + var r, n, i, a, s; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (s = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return e.keyExpirationTime = e.keyExpirationTime || t.keyExpirationTime, e.passphrase = Z.default.isString(e.passphrase) ? e.passphrase : t.passphrase, e.date = e.date || t.date, e + }, t = s(t), e.prev = 2, t.privateKey.getKeyPackets().every(function (e) { + return e.isDecrypted + })) { + e.next = 7; + break + } + return e.next = 7, t.privateKey.decrypt(); + case 7: + e.next = 12; + break; + case 9: + throw e.prev = 9, e.t0 = e.catch(2), new Error("Key not decrypted"); + case 12: + for (r = t.privateKey.toPacketlist(), n = void 0, i = [], a = 0; a < r.length; a++) r[a].tag === H.default.packet.secretKey ? n = r[a] : r[a].tag === H.default.packet.secretSubkey && i.push(r[a]); + if (n) { + e.next = 18; + break + } + throw new Error("Key does not contain a secret key packet"); + case 18: + if (t.subkeys || (t.subkeys = i.map(function () { + return {} + })), t.subkeys.length === i.length) { + e.next = 21; + break + } + throw new Error("Number of subkey options does not match number of subkeys"); + case 21: + return t.subkeys = t.subkeys.map(function (e, r) { + return s(t.subkeys[r], t) + }), e.abrupt("return", m(n, i, t)); + case 23: + case"end": + return e.stop() + } + }, e, this, [[2, 9]]) + })), function (e) { + return a.apply(this, arguments) + }), s = (0, y.default)(p.default.mark(function e(t, r, n) { + var i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!n.passphrase) { + e.next = 3; + break + } + return e.next = 3, t.encrypt(n.passphrase); + case 3: + return e.next = 5, h.default.all(r.map(function () { + var e = (0, y.default)(p.default.mark(function e(t, r) { + var i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(i = n.subkeys[r].passphrase)) { + e.next = 4; + break + } + return e.next = 4, t.encrypt(i); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }())); + case 5: + return (i = new q.default.List).push(t), e.next = 9, h.default.all(n.userIds.map(function () { + var e = (0, y.default)(p.default.mark(function e(r, i) { + var a, s, o; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return (a = new q.default.Userid).read(Z.default.str_to_Uint8Array(r)), (s = {}).userid = a, s.key = t, (o = new q.default.Signature(n.date)).signatureType = H.default.signature.cert_generic, o.publicKeyAlgorithm = t.algorithm, e.next = 10, v(t); + case 10: + return o.hashAlgorithm = e.sent, o.keyFlags = [H.default.keyFlags.certify_keys | H.default.keyFlags.sign_data], o.preferredSymmetricAlgorithms = [], o.preferredSymmetricAlgorithms.push(H.default.symmetric.aes256), o.preferredSymmetricAlgorithms.push(H.default.symmetric.aes128), o.preferredSymmetricAlgorithms.push(H.default.symmetric.aes192), o.preferredSymmetricAlgorithms.push(H.default.symmetric.cast5), o.preferredSymmetricAlgorithms.push(H.default.symmetric.tripledes), G.default.aead_protect && 4 === G.default.aead_protect_version && (o.preferredAeadAlgorithms = [], o.preferredAeadAlgorithms.push(H.default.aead.eax), o.preferredAeadAlgorithms.push(H.default.aead.ocb)), o.preferredHashAlgorithms = [], o.preferredHashAlgorithms.push(H.default.hash.sha256), o.preferredHashAlgorithms.push(H.default.hash.sha512), o.preferredHashAlgorithms.push(H.default.hash.sha1), o.preferredCompressionAlgorithms = [], o.preferredCompressionAlgorithms.push(H.default.compression.zlib), o.preferredCompressionAlgorithms.push(H.default.compression.zip), 0 === i && (o.isPrimaryUserID = !0), G.default.integrity_protect && (o.features = [0], o.features[0] |= H.default.features.modification_detection), G.default.aead_protect && 4 === G.default.aead_protect_version && (o.features || (o.features = [0]), o.features[0] |= H.default.features.aead, o.features[0] |= H.default.features.v5_keys), n.keyExpirationTime > 0 && (o.keyExpirationTime = n.keyExpirationTime, o.keyNeverExpires = !1), e.next = 32, o.sign(t, s); + case 32: + return e.abrupt("return", {userIdPacket: a, signaturePacket: o}); + case 33: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }())).then(function (e) { + e.forEach(function (e) { + var t = e.userIdPacket, r = e.signaturePacket; + i.push(t), i.push(r) + }) + }); + case 9: + return e.next = 11, h.default.all(r.map(function () { + var e = (0, y.default)(p.default.mark(function e(r, i) { + var a, s, o; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return a = n.subkeys[i], (s = {}).key = t, s.bind = r, (o = new q.default.Signature(a.date)).signatureType = H.default.signature.subkey_binding, o.publicKeyAlgorithm = t.algorithm, e.next = 9, v(r); + case 9: + return o.hashAlgorithm = e.sent, o.keyFlags = a.sign ? H.default.keyFlags.sign_data : [H.default.keyFlags.encrypt_communication | H.default.keyFlags.encrypt_storage], a.keyExpirationTime > 0 && (o.keyExpirationTime = a.keyExpirationTime, o.keyNeverExpires = !1), e.next = 14, o.sign(t, s); + case 14: + return e.abrupt("return", { + secretSubkeyPacket: r, + subkeySignaturePacket: o + }); + case 15: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }())).then(function (e) { + e.forEach(function (e) { + var t = e.secretSubkeyPacket, r = e.subkeySignaturePacket; + i.push(t), i.push(r) + }) + }); + case 11: + return n.passphrase && t.clearPrivateParams(), e.next = 14, h.default.all(r.map(function () { + var e = (0, y.default)(p.default.mark(function e(t, r) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + n.subkeys[r].passphrase && t.clearPrivateParams(); + case 2: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }())); + case 14: + return e.abrupt("return", new W(i)); + case 15: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return s.apply(this, arguments) + }), g = (o = (0, y.default)(p.default.mark(function e(t, r, n, i, a) { + var s, o, u = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return a = a || t, s = Z.default.normalizeDate(u), o = [], e.next = 5, h.default.all(n.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (e.t0 = !(G.default.revocations_expire && t.isExpired(s)), !e.t0) { + e.next = 8; + break + } + if (e.t1 = t.verified, e.t1) { + e.next = 7; + break + } + return e.next = 6, t.verify(a, r); + case 6: + e.t1 = e.sent; + case 7: + e.t0 = e.t1; + case 8: + if (!e.t0) { + e.next = 11; + break + } + return o.push(t.issuerKeyId), e.abrupt("return", !0); + case 11: + return e.abrupt("return", !1); + case 12: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 5: + if (!i) { + e.next = 8; + break + } + return i.revoked = !!o.some(function (e) { + return e.equals(i.issuerKeyId) + }) || i.revoked, e.abrupt("return", i.revoked); + case 8: + return e.abrupt("return", o.length > 0); + case 9: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n, i) { + return o.apply(this, arguments) + }), v = r.getPreferredHashAlgo = (u = (0, y.default)(p.default.mark(function e(t, r) { + var n, i, a, s; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (n = G.default.prefer_hash_algorithm, i = n, !(t instanceof W)) { + e.next = 8; + break + } + return e.next = 5, t.getPrimaryUser(r); + case 5: + (a = e.sent) && a.selfCertification.preferredHashAlgorithms && (s = (0, l.default)(a.selfCertification.preferredHashAlgorithms, 1), i = s[0], n = N.default.hash.getHashByteLength(n) <= N.default.hash.getHashByteLength(i) ? i : n), t = t.getSigningKeyPacket(void 0, null); + case 8: + switch ((0, d.default)(t)) { + case q.default.SecretKey.prototype: + case q.default.PublicKey.prototype: + case q.default.SecretSubkey.prototype: + case q.default.PublicSubkey.prototype: + switch (t.algorithm) { + case"ecdh": + case"ecdsa": + case"eddsa": + i = N.default.publicKey.elliptic.getPreferredHashAlgo(t.params[0]) + } + } + return e.abrupt("return", N.default.hash.getHashByteLength(n) <= N.default.hash.getHashByteLength(i) ? i : n); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return u.apply(this, arguments) + }); + r.getPreferredAlgo = (f = (0, y.default)(p.default.mark(function e(t, r, n) { + var i, a, s, o, u; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return i = "symmetric" === t ? "preferredSymmetricAlgorithms" : "preferredAeadAlgorithms", a = "symmetric" === t ? G.default.encryption_cipher : G.default.aead_mode, s = {}, e.next = 5, h.default.all(r.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + var r; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, t.getPrimaryUser(n); + case 2: + if ((r = e.sent) && r.selfCertification[i]) { + e.next = 5; + break + } + return e.abrupt("return", a); + case 5: + r.selfCertification[i].forEach(function (e, t) { + var r = s[e] || (s[e] = {prio: 0, count: 0, algo: e}); + r.prio += 64 >> t, r.count++ + }); + case 6: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 5: + for (u in o = {prio: 0, algo: a}, s) try { + u !== H.default[t].plaintext && u !== H.default[t].idea && H.default.read(H.default[t], u) && s[u].count === r.length && s[u].prio > o.prio && (o = s[u]) + } catch (e) { + } + return e.abrupt("return", o.algo); + case 8: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return f.apply(this, arguments) + }), r.isAeadSupported = (c = (0, y.default)(p.default.mark(function e(t, r) { + var n; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = !0, e.next = 3, h.default.all(t.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + var i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, t.getPrimaryUser(r); + case 2: + (i = e.sent) && i.selfCertification.features && i.selfCertification.features[0] & H.default.features.aead || (n = !1); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 3: + return e.abrupt("return", n); + case 4: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return c.apply(this, arguments) + }); + r.Key = W, r.read = ee, r.readArmored = function (e) { + try { + var t = F.default.decode(e); + if (t.type !== H.default.armor.public_key && t.type !== H.default.armor.private_key) throw new Error("Armored text not of type key"); + return ee(t.data) + } catch (e) { + var r = {keys: [], err: []}; + return r.err.push(e), r + } + }; + var _, w, k, A, x, S, E, M, C, j, P, B, U, K, I, T, O, R, D, z, L, F = V(e("./encoding/armor")), + N = V(e("./crypto")), q = V(e("./packet")), G = V(e("./config")), H = V(e("./enums")), + Z = V(e("./util")); - s = Utf8Encode(s); - return binb2hex(core_sha256(str2binb(s), s.length * chrsz)); -} - -var sha256 = {} -sha256.hex = function (s) { - return SHA256(s); -} - -/** - * - * Secure Hash Algorithm (SHA1) - * http://www.webtoolkit.info/ - * - **/ - -function SHA1(msg) { - - function rotate_left(n, s) { - var t4 = (n << s) | (n >>> (32 - s)); - return t4; - }; - - function lsb_hex(val) { - var str = ""; - var i; - var vh; - var vl; - - for (i = 0; i <= 6; i += 2) { - vh = (val >>> (i * 4 + 4)) & 0x0f; - vl = (val >>> (i * 4)) & 0x0f; - str += vh.toString(16) + vl.toString(16); - } - return str; - }; + function V(e) { + return e && e.__esModule ? e : {default: e} + } - function cvt_hex(val) { - var str = ""; - var i; - var v; + function W(e) { + if (!(this instanceof W)) return new W(e); + if (this.primaryKey = null, this.revocationSignatures = [], this.directSignatures = [], this.users = [], this.subKeys = [], this.packetlist2structure(e), !this.primaryKey || !this.users.length) throw new Error("Invalid key: need at least key and user ID packet") + } - for (i = 7; i >= 0; i--) { - v = (val >>> (i * 4)) & 0x0f; - str += v.toString(16); - } - return str; - }; + function Y(e) { + for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date, r = e[0], n = 1; n < e.length; n++) e[n].created >= r.created && (e[n].created <= t || null === t) && (r = e[n]); + return r + } + function X(e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date; + return e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.rsa_encrypt) && e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.elgamal) && e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.ecdh) && (!t.keyFlags || 0 != (t.keyFlags[0] & H.default.keyFlags.sign_data)) && t.verified && !t.revoked && !t.isExpired(r) && !te(e, t, r) + } - function Utf8Encode(string) { - string = string.replace(/\r\n/g, "\n"); - var utftext = ""; + function J(e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date; + return e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.dsa) && e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.rsa_sign) && e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.ecdsa) && e.algorithm !== H.default.read(H.default.publicKey, H.default.publicKey.eddsa) && (!t.keyFlags || 0 != (t.keyFlags[0] & H.default.keyFlags.encrypt_communication) || 0 != (t.keyFlags[0] & H.default.keyFlags.encrypt_storage)) && t.verified && !t.revoked && !t.isExpired(r) && !te(e, t, r) + } - for (var n = 0; n < string.length; n++) { + function $(e) { + if (!(this instanceof $)) return new $(e); + this.userId = e.tag === H.default.packet.userid ? e : null, this.userAttribute = e.tag === H.default.packet.userAttribute ? e : null, this.selfCertifications = [], this.otherCertifications = [], this.revocationSignatures = [] + } - var c = string.charCodeAt(n); + function Q(e) { + if (!(this instanceof Q)) return new Q(e); + this.subKey = e, this.bindingSignatures = [], this.revocationSignatures = [] + } - if (c < 128) { - utftext += String.fromCharCode(c); + function ee(e) { + var t = {keys: []}; + try { + var r = new q.default.List; + r.read(e); + var n = r.indexOfTag(H.default.packet.publicKey, H.default.packet.secretKey); + if (0 === n.length) throw new Error("No key packet found"); + for (var i = 0; i < n.length; i++) { + var a = r.slice(n[i], n[i + 1]); + try { + var s = new W(a); + t.keys.push(s) + } catch (e) { + t.err = t.err || [], t.err.push(e) + } + } + } catch (e) { + t.err = t.err || [], t.err.push(e) + } + return t } - else if ((c > 127) && (c < 2048)) { - utftext += String.fromCharCode((c >> 6) | 192); - utftext += String.fromCharCode((c & 63) | 128); + + function te(e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date, + n = Z.default.normalizeDate(r); + if (null !== n) { + var i = re(e, t); + return !(e.created <= n && n < i) || t && t.isExpired(r) + } + return !1 } - else { - utftext += String.fromCharCode((c >> 12) | 224); - utftext += String.fromCharCode(((c >> 6) & 63) | 128); - utftext += String.fromCharCode((c & 63) | 128); + + function re(e, t) { + var r = void 0; + return 3 === e.version && 0 !== e.expirationTimeV3 && (r = e.created.getTime() + 24 * e.expirationTimeV3 * 3600 * 1e3), e.version >= 4 && !1 === t.keyNeverExpires && (r = e.created.getTime() + 1e3 * t.keyExpirationTime), r ? new Date(r) : 1 / 0 } - } + W.prototype.packetlist2structure = function (e) { + for (var t = void 0, r = void 0, n = void 0, i = 0; i < e.length; i++) switch (e[i].tag) { + case H.default.packet.publicKey: + case H.default.packet.secretKey: + this.primaryKey = e[i], r = this.primaryKey.getKeyId(); + break; + case H.default.packet.userid: + case H.default.packet.userAttribute: + t = new $(e[i]), this.users.push(t); + break; + case H.default.packet.publicSubkey: + case H.default.packet.secretSubkey: + t = null, n = new Q(e[i]), this.subKeys.push(n); + break; + case H.default.packet.signature: + switch (e[i].signatureType) { + case H.default.signature.cert_generic: + case H.default.signature.cert_persona: + case H.default.signature.cert_casual: + case H.default.signature.cert_positive: + if (!t) { + Z.default.print_debug("Dropping certification signatures without preceding user packet"); + continue + } + e[i].issuerKeyId.equals(r) ? t.selfCertifications.push(e[i]) : t.otherCertifications.push(e[i]); + break; + case H.default.signature.cert_revocation: + t ? t.revocationSignatures.push(e[i]) : this.directSignatures.push(e[i]); + break; + case H.default.signature.key: + this.directSignatures.push(e[i]); + break; + case H.default.signature.subkey_binding: + if (!n) { + Z.default.print_debug("Dropping subkey binding signature without preceding subkey packet"); + continue + } + n.bindingSignatures.push(e[i]); + break; + case H.default.signature.key_revocation: + this.revocationSignatures.push(e[i]); + break; + case H.default.signature.subkey_revocation: + if (!n) { + Z.default.print_debug("Dropping subkey revocation signature without preceding subkey packet"); + continue + } + n.revocationSignatures.push(e[i]) + } + } + }, W.prototype.toPacketlist = function () { + var e = new q.default.List; + return e.push(this.primaryKey), e.concat(this.revocationSignatures), e.concat(this.directSignatures), this.users.map(function (t) { + return e.concat(t.toPacketlist()) + }), this.subKeys.map(function (t) { + return e.concat(t.toPacketlist()) + }), e + }, W.prototype.getSubkeyPackets = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, t = new q.default.List; + return this.subKeys.forEach(function (r) { + e && !r.subKey.getKeyId().equals(e, !0) || t.push(r.subKey) + }), t + }, W.prototype.getKeyPackets = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, t = new q.default.List; + return e && !this.primaryKey.getKeyId().equals(e, !0) || t.push(this.primaryKey), t.concat(this.getSubkeyPackets(e)), t + }, W.prototype.getKeyIds = function () { + return this.getKeyPackets().map(function (e) { + return e.getKeyId() + }) + }, W.prototype.getUserIds = function () { + return this.users.map(function (e) { + return e.userId ? Z.default.encode_utf8(e.userId.userid) : null + }).filter(function (e) { + return null !== e + }) + }, W.prototype.isPublic = function () { + return this.primaryKey.tag === H.default.packet.publicKey + }, W.prototype.isPrivate = function () { + return this.primaryKey.tag === H.default.packet.secretKey + }, W.prototype.toPublic = function () { + for (var e = new q.default.List, t = this.toPacketlist(), r = void 0, n = void 0, i = void 0, a = 0; a < t.length; a++) switch (t[a].tag) { + case H.default.packet.secretKey: + r = t[a].writePublicKey(), (n = new q.default.PublicKey).read(r), e.push(n); + break; + case H.default.packet.secretSubkey: + r = t[a].writePublicKey(), (i = new q.default.PublicSubkey).read(r), e.push(i); + break; + default: + e.push(t[a]) + } + return new W(e) + }, W.prototype.armor = function () { + var e = this.isPublic() ? H.default.armor.public_key : H.default.armor.private_key; + return F.default.encode(e, this.toPacketlist().write()) + }, W.prototype.getSigningKeyPacket = (_ = (0, y.default)(p.default.mark(function e() { + var t, r, n, i, a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, + s = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return t = this.primaryKey, e.next = 3, this.verifyPrimaryKey(s); + case 3: + if (e.t0 = e.sent, e.t1 = H.default.keyStatus.valid, e.t0 !== e.t1) { + e.next = 25; + break + } + return e.next = 8, this.getPrimaryUser(s); + case 8: + if (!(r = e.sent) || a && !t.getKeyId().equals(a) || !X(t, r.selfCertification, s)) { + e.next = 11; + break + } + return e.abrupt("return", t); + case 11: + n = 0; + case 12: + if (!(n < this.subKeys.length)) { + e.next = 25; + break + } + if (a && !this.subKeys[n].subKey.getKeyId().equals(a)) { + e.next = 22; + break + } + return e.next = 16, this.subKeys[n].verify(t, s); + case 16: + if (e.t2 = e.sent, e.t3 = H.default.keyStatus.valid, e.t2 !== e.t3) { + e.next = 22; + break + } + if (i = Y(this.subKeys[n].bindingSignatures, s), !X(this.subKeys[n].subKey, i, s)) { + e.next = 22; + break + } + return e.abrupt("return", this.subKeys[n].subKey); + case 22: + n++, e.next = 12; + break; + case 25: + return e.abrupt("return", null); + case 26: + case"end": + return e.stop() + } + }, e, this) + })), function () { + return _.apply(this, arguments) + }), W.prototype.getEncryptionKeyPacket = (w = (0, y.default)(p.default.mark(function e(t) { + var r, n, i, a, s = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = this.primaryKey, e.next = 3, this.verifyPrimaryKey(s); + case 3: + if (e.t0 = e.sent, e.t1 = H.default.keyStatus.valid, e.t0 !== e.t1) { + e.next = 25; + break + } + n = 0; + case 7: + if (!(n < this.subKeys.length)) { + e.next = 20; + break + } + if (t && !this.subKeys[n].subKey.getKeyId().equals(t)) { + e.next = 17; + break + } + return e.next = 11, this.subKeys[n].verify(r, s); + case 11: + if (e.t2 = e.sent, e.t3 = H.default.keyStatus.valid, e.t2 !== e.t3) { + e.next = 17; + break + } + if (i = Y(this.subKeys[n].bindingSignatures, s), !J(this.subKeys[n].subKey, i, s)) { + e.next = 17; + break + } + return e.abrupt("return", this.subKeys[n].subKey); + case 17: + n++, e.next = 7; + break; + case 20: + return e.next = 22, this.getPrimaryUser(s); + case 22: + if (!(a = e.sent) || t && !r.getKeyId().equals(t) || !J(r, a.selfCertification, s)) { + e.next = 25; + break + } + return e.abrupt("return", r); + case 25: + return e.abrupt("return", null); + case 26: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return w.apply(this, arguments) + }), W.prototype.encrypt = (k = (0, y.default)(p.default.mark(function e(t) { + var r, n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (this.isPrivate()) { + e.next = 2; + break + } + throw new Error("Nothing to encrypt in a public key"); + case 2: + if (r = this.getKeyPackets(n), (t = Z.default.isArray(t) ? t : new Array(r.length).fill(t)).length === r.length) { + e.next = 6; + break + } + throw new Error("Invalid number of passphrases for key"); + case 6: + return e.abrupt("return", h.default.all(r.map(function () { + var e = (0, y.default)(p.default.mark(function e(r, n) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, r.encrypt(t[n]); + case 2: + return e.next = 4, r.clearPrivateParams(); + case 4: + return e.abrupt("return", r); + case 5: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }()))); + case 7: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return k.apply(this, arguments) + }), W.prototype.decrypt = (A = (0, y.default)(p.default.mark(function e(t) { + var r, n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (this.isPrivate()) { + e.next = 2; + break + } + throw new Error("Nothing to decrypt in a public key"); + case 2: + return t = Z.default.isArray(t) ? t : [t], e.next = 5, h.default.all(this.getKeyPackets(n).map(function () { + var e = (0, y.default)(p.default.mark(function e(r) { + var n, i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = !1, i = null, e.next = 4, h.default.all(t.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.prev = 0, e.next = 3, r.decrypt(t); + case 3: + n = !0, e.next = 9; + break; + case 6: + e.prev = 6, e.t0 = e.catch(0), i = e.t0; + case 9: + case"end": + return e.stop() + } + }, e, this, [[0, 6]]) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 4: + if (n) { + e.next = 6; + break + } + throw i; + case 6: + return e.abrupt("return", n); + case 7: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 5: + return r = e.sent, e.abrupt("return", r.every(function (e) { + return !0 === e + })); + case 7: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return A.apply(this, arguments) + }), W.prototype.isRevoked = (x = (0, y.default)(p.default.mark(function e(t, r) { + var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.abrupt("return", g(this.primaryKey, {key: this.primaryKey}, this.revocationSignatures, t, r, n)); + case 1: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return x.apply(this, arguments) + }), W.prototype.verifyPrimaryKey = (S = (0, y.default)(p.default.mark(function e() { + var t, r, n, i, a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return t = this.primaryKey, e.next = 3, this.isRevoked(null, null, a); + case 3: + if (!e.sent) { + e.next = 5; + break + } + return e.abrupt("return", H.default.keyStatus.revoked); + case 5: + if (this.users.some(function (e) { + return e.userId && e.selfCertifications.length + })) { + e.next = 7; + break + } + return e.abrupt("return", H.default.keyStatus.no_self_cert); + case 7: + return e.next = 9, this.getPrimaryUser(a); + case 9: + if (e.t0 = e.sent, e.t0) { + e.next = 12; + break + } + e.t0 = {}; + case 12: + if (r = e.t0, n = r.user, i = r.selfCertification, n) { + e.next = 17; + break + } + return e.abrupt("return", H.default.keyStatus.invalid); + case 17: + if (!te(t, i, a)) { + e.next = 19; + break + } + return e.abrupt("return", H.default.keyStatus.expired); + case 19: + return e.abrupt("return", H.default.keyStatus.valid); + case 20: + case"end": + return e.stop() + } + }, e, this) + })), function () { + return S.apply(this, arguments) + }), W.prototype.getExpirationTime = (0, y.default)(p.default.mark(function e() { + var t, r, n, i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (3 !== this.primaryKey.version) { + e.next = 2; + break + } + return e.abrupt("return", re(this.primaryKey)); + case 2: + if (!(this.primaryKey.version >= 4)) { + e.next = 10; + break + } + return e.next = 5, this.getPrimaryUser(null); + case 5: + return t = e.sent, r = t.selfCertification, n = re(this.primaryKey, r), i = r.getExpirationTime(), e.abrupt("return", n < i ? n : i); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), W.prototype.getPrimaryUser = (E = (0, y.default)(p.default.mark(function e() { + var t, r, n, i, a, s = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (t = this.users.map(function (e, t) { + return {index: t, user: e, selfCertification: Y(e.selfCertifications, s)} + }).sort(function (e, t) { + var r = e.selfCertification, n = t.selfCertification; + return r.isPrimaryUserID - n.isPrimaryUserID || r.created - n.created + }).pop(), r = t.user, n = t.selfCertification, r.userId) { + e.next = 4; + break + } + return e.abrupt("return", null); + case 4: + if (i = this.primaryKey, a = {userid: r.userId, key: i}, e.t0 = n.verified, e.t0) { + e.next = 11; + break + } + return e.next = 10, n.verify(i, a); + case 10: + e.t0 = e.sent; + case 11: + if (e.t0) { + e.next = 13; + break + } + return e.abrupt("return", null); + case 13: + if (e.t1 = n.revoked, e.t1) { + e.next = 18; + break + } + return e.next = 17, r.isRevoked(i, n, null, s); + case 17: + e.t1 = e.sent; + case 18: + if (!e.t1) { + e.next = 20; + break + } + return e.abrupt("return", null); + case 20: + if (!n.isExpired(s)) { + e.next = 22; + break + } + return e.abrupt("return", null); + case 22: + return e.abrupt("return", t); + case 23: + case"end": + return e.stop() + } + }, e, this) + })), function () { + return E.apply(this, arguments) + }), W.prototype.update = (M = (0, y.default)(p.default.mark(function e(t) { + var r; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = this, e.next = 3, t.verifyPrimaryKey(); + case 3: + if (e.t0 = e.sent, e.t1 = H.default.keyStatus.invalid, e.t0 !== e.t1) { + e.next = 7; + break + } + return e.abrupt("return"); + case 7: + if (this.primaryKey.getFingerprint() === t.primaryKey.getFingerprint()) { + e.next = 9; + break + } + throw new Error("Key update method: fingerprints of keys not equal"); + case 9: + if (!this.isPublic() || !t.isPrivate()) { + e.next = 14; + break + } + if (this.subKeys.length === t.subKeys.length && this.subKeys.every(function (e) { + return t.subKeys.some(function (t) { + return e.subKey.getFingerprint() === t.subKey.getFingerprint() + }) + })) { + e.next = 13; + break + } + throw new Error("Cannot update public key with private key if subkey mismatch"); + case 13: + this.primaryKey = t.primaryKey; + case 14: + return e.next = 16, b(t, this, "revocationSignatures", function (e) { + return g(r.primaryKey, r, [e], null, t.primaryKey) + }); + case 16: + return e.next = 18, b(t, this, "directSignatures"); + case 18: + return e.next = 20, h.default.all(t.users.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + var n; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = !1, e.next = 3, h.default.all(r.users.map(function () { + var e = (0, y.default)(p.default.mark(function e(i) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!(t.userId && t.userId.userid === i.userId.userid || t.userAttribute && t.userAttribute.equals(i.userAttribute))) { + e.next = 4; + break + } + return e.next = 3, i.update(t, r.primaryKey); + case 3: + n = !0; + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 3: + n || r.users.push(t); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 20: + return e.next = 22, h.default.all(t.subKeys.map(function () { + var e = (0, y.default)(p.default.mark(function e(t) { + var n; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = !1, e.next = 3, h.default.all(r.subKeys.map(function () { + var e = (0, y.default)(p.default.mark(function e(i) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (t.subKey.getFingerprint() !== i.subKey.getFingerprint()) { + e.next = 4; + break + } + return e.next = 3, i.update(t, r.primaryKey); + case 3: + n = !0; + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 3: + n || r.subKeys.push(t); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 22: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return M.apply(this, arguments) + }), W.prototype.revoke = function () { + }, W.prototype.signPrimaryUser = (C = (0, y.default)(p.default.mark(function e(t) { + var r, n, i, a, s; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, this.getPrimaryUser(); + case 2: + if (e.t0 = e.sent, e.t0) { + e.next = 5; + break + } + e.t0 = {}; + case 5: + if (r = e.t0, n = r.index, i = r.user) { + e.next = 10; + break + } + throw new Error("Could not find primary user"); + case 10: + return e.next = 12, i.sign(this.primaryKey, t); + case 12: + return a = e.sent, (s = new W(this.toPacketlist())).users[n] = a, e.abrupt("return", s); + case 16: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return C.apply(this, arguments) + }), W.prototype.signAllUsers = (j = (0, y.default)(p.default.mark(function e(t) { + var r, n; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = this, n = new W(this.toPacketlist()), e.next = 4, h.default.all(this.users.map(function (e) { + return e.sign(r.primaryKey, t) + })); + case 4: + return n.users = e.sent, e.abrupt("return", n); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return j.apply(this, arguments) + }), W.prototype.verifyPrimaryUser = (P = (0, y.default)(p.default.mark(function e(t) { + var r, n, i, a; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = this.primaryKey, e.next = 3, this.getPrimaryUser(); + case 3: + if (e.t0 = e.sent, e.t0) { + e.next = 6; + break + } + e.t0 = {}; + case 6: + if (n = e.t0, i = n.user) { + e.next = 10; + break + } + throw new Error("Could not find primary user"); + case 10: + if (!t) { + e.next = 16; + break + } + return e.next = 13, i.verifyAllCertifications(r, t); + case 13: + e.t1 = e.sent, e.next = 24; + break; + case 16: + return e.t2 = r.keyid, e.next = 19, i.verify(r); + case 19: + e.t3 = e.sent, e.t4 = H.default.keyStatus.valid, e.t5 = e.t3 === e.t4, e.t6 = { + keyid: e.t2, + valid: e.t5 + }, e.t1 = [e.t6]; + case 24: + return a = e.t1, e.abrupt("return", a); + case 26: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return P.apply(this, arguments) + }), W.prototype.verifyAllUsers = (B = (0, y.default)(p.default.mark(function e(t) { + var r, n; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = [], n = this.primaryKey, e.next = 4, h.default.all(this.users.map(function () { + var e = (0, y.default)(p.default.mark(function e(i) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!t) { + e.next = 6; + break + } + return e.next = 3, i.verifyAllCertifications(n, t); + case 3: + e.t0 = e.sent, e.next = 14; + break; + case 6: + return e.t1 = n.keyid, e.next = 9, i.verify(n); + case 9: + e.t2 = e.sent, e.t3 = H.default.keyStatus.valid, e.t4 = e.t2 === e.t3, e.t5 = { + keyid: e.t1, + valid: e.t4 + }, e.t0 = [e.t5]; + case 14: + e.t0.forEach(function (e) { + r.push({userid: i.userId.userid, keyid: e.keyid, valid: e.valid}) + }); + case 16: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 4: + return e.abrupt("return", r); + case 5: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return B.apply(this, arguments) + }), $.prototype.toPacketlist = function () { + var e = new q.default.List; + return e.push(this.userId || this.userAttribute), e.concat(this.revocationSignatures), e.concat(this.selfCertifications), e.concat(this.otherCertifications), e + }, $.prototype.sign = (U = (0, y.default)(p.default.mark(function e(t, r) { + var n, i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = { + userid: this.userId || this.userAttribute, + key: t + }, i = new $(n.userid), e.next = 4, h.default.all(r.map(function () { + var e = (0, y.default)(p.default.mark(function e(r) { + var i, a; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!r.isPublic()) { + e.next = 2; + break + } + throw new Error("Need private key for signing"); + case 2: + if (r.primaryKey.getFingerprint() !== t.getFingerprint()) { + e.next = 4; + break + } + throw new Error("Not implemented for self signing"); + case 4: + return e.next = 6, r.getSigningKeyPacket(); + case 6: + if (i = e.sent) { + e.next = 9; + break + } + throw new Error("Could not find valid signing key packet in key " + r.primaryKey.getKeyId().toHex()); + case 9: + if (i.isDecrypted) { + e.next = 11; + break + } + throw new Error("Private key is not decrypted."); + case 11: + return (a = new q.default.Signature).signatureType = H.default.write(H.default.signature, H.default.signature.cert_generic), a.keyFlags = [H.default.keyFlags.certify_keys | H.default.keyFlags.sign_data], a.publicKeyAlgorithm = i.algorithm, e.next = 17, v(r); + case 17: + return a.hashAlgorithm = e.sent, a.signingKeyId = i.getKeyId(), a.sign(i, n), e.abrupt("return", a); + case 21: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 4: + return i.otherCertifications = e.sent, e.next = 7, i.update(this, t); + case 7: + return e.abrupt("return", i); + case 8: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return U.apply(this, arguments) + }), $.prototype.isRevoked = (K = (0, y.default)(p.default.mark(function e(t, r, n) { + var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.abrupt("return", g(t, { + key: t, + userid: this.userId || this.userAttribute + }, this.revocationSignatures, r, n, i)); + case 1: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return K.apply(this, arguments) + }), $.prototype.verifyCertificate = (I = (0, y.default)(p.default.mark(function e(t, r, n) { + var i, a, s, o, u = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return i = this, a = r.issuerKeyId, s = { + userid: this.userId || this.userAttribute, + key: t + }, e.next = 5, h.default.all(n.map(function () { + var e = (0, y.default)(p.default.mark(function e(n) { + var o; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (n.getKeyIds().some(function (e) { + return e.equals(a) + })) { + e.next = 2; + break + } + return e.abrupt("return"); + case 2: + return e.next = 4, n.getSigningKeyPacket(a, u); + case 4: + if (o = e.sent, e.t0 = r.revoked, e.t0) { + e.next = 10; + break + } + return e.next = 9, i.isRevoked(t, r, o); + case 9: + e.t0 = e.sent; + case 10: + if (!e.t0) { + e.next = 12; + break + } + return e.abrupt("return", H.default.keyStatus.revoked); + case 12: + if (e.t1 = r.verified, e.t1) { + e.next = 17; + break + } + return e.next = 16, r.verify(o, s); + case 16: + e.t1 = e.sent; + case 17: + if (e.t1) { + e.next = 19; + break + } + return e.abrupt("return", H.default.keyStatus.invalid); + case 19: + if (!r.isExpired()) { + e.next = 21; + break + } + return e.abrupt("return", H.default.keyStatus.expired); + case 21: + return e.abrupt("return", H.default.keyStatus.valid); + case 22: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 5: + return o = e.sent, e.abrupt("return", o.find(function (e) { + return void 0 !== e + })); + case 7: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return I.apply(this, arguments) + }), $.prototype.verifyAllCertifications = (T = (0, y.default)(p.default.mark(function e(t, r) { + var n, i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = this, i = this.selfCertifications.concat(this.otherCertifications), e.abrupt("return", h.default.all(i.map(function () { + var e = (0, y.default)(p.default.mark(function e(i) { + var a; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, n.verifyCertificate(t, i, r); + case 2: + return a = e.sent, e.abrupt("return", { + keyid: i.issuerKeyId, + valid: void 0 === a ? null : a === H.default.keyStatus.valid + }); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }()))); + case 3: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return T.apply(this, arguments) + }), $.prototype.verify = (O = (0, y.default)(p.default.mark(function e(t) { + var r, n, i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (this.selfCertifications.length) { + e.next = 2; + break + } + return e.abrupt("return", H.default.keyStatus.no_self_cert); + case 2: + return r = this, n = { + userid: this.userId || this.userAttribute, + key: t + }, e.t0 = [H.default.keyStatus.invalid], e.next = 7, h.default.all(this.selfCertifications.map(function () { + var e = (0, y.default)(p.default.mark(function e(i) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (e.t0 = i.revoked, e.t0) { + e.next = 5; + break + } + return e.next = 4, r.isRevoked(t, i); + case 4: + e.t0 = e.sent; + case 5: + if (!e.t0) { + e.next = 7; + break + } + return e.abrupt("return", H.default.keyStatus.revoked); + case 7: + if (e.t1 = i.verified, e.t1) { + e.next = 12; + break + } + return e.next = 11, i.verify(t, n); + case 11: + e.t1 = e.sent; + case 12: + if (e.t1) { + e.next = 14; + break + } + return e.abrupt("return", H.default.keyStatus.invalid); + case 14: + if (!i.isExpired()) { + e.next = 16; + break + } + return e.abrupt("return", H.default.keyStatus.expired); + case 16: + return e.abrupt("return", H.default.keyStatus.valid); + case 17: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 7: + return e.t1 = e.sent, i = e.t0.concat.call(e.t0, e.t1), e.abrupt("return", i.some(function (e) { + return e === H.default.keyStatus.valid + }) ? H.default.keyStatus.valid : i.pop()); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return O.apply(this, arguments) + }), $.prototype.update = (R = (0, y.default)(p.default.mark(function e(t, r) { + var n; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = { + userid: this.userId || this.userAttribute, + key: r + }, e.next = 3, b(t, this, "selfCertifications", function () { + var e = (0, y.default)(p.default.mark(function e(t) { + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.abrupt("return", t.verified || t.verify(r, n)); + case 1: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }()); + case 3: + return e.next = 5, b(t, this, "otherCertifications"); + case 5: + return e.next = 7, b(t, this, "revocationSignatures", function (e) { + return g(r, n, [e]) + }); + case 7: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return R.apply(this, arguments) + }), Q.prototype.toPacketlist = function () { + var e = new q.default.List; + return e.push(this.subKey), e.concat(this.revocationSignatures), e.concat(this.bindingSignatures), e + }, Q.prototype.isRevoked = (D = (0, y.default)(p.default.mark(function e(t, r, n) { + var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.abrupt("return", g(t, { + key: t, + bind: this.subKey + }, this.revocationSignatures, r, n, i)); + case 1: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return D.apply(this, arguments) + }), Q.prototype.verify = (z = (0, y.default)(p.default.mark(function e(t) { + var r, n, i, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (r = this, n = { + key: t, + bind: this.subKey + }, 3 !== this.subKey.version || !te(this.subKey, null, a)) { + e.next = 4; + break + } + return e.abrupt("return", H.default.keyStatus.expired); + case 4: + if (i = Y(this.bindingSignatures, a), e.t0 = i.verified, e.t0) { + e.next = 10; + break + } + return e.next = 9, i.verify(t, n); + case 9: + e.t0 = e.sent; + case 10: + if (e.t0) { + e.next = 12; + break + } + return e.abrupt("return", H.default.keyStatus.invalid); + case 12: + if (e.t1 = i.revoked, e.t1) { + e.next = 17; + break + } + return e.next = 16, r.isRevoked(t, i, null, a); + case 16: + e.t1 = e.sent; + case 17: + if (!e.t1) { + e.next = 19; + break + } + return e.abrupt("return", H.default.keyStatus.revoked); + case 19: + if (!i.isExpired(a)) { + e.next = 21; + break + } + return e.abrupt("return", H.default.keyStatus.expired); + case 21: + return e.abrupt("return", H.default.keyStatus.valid); + case 22: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return z.apply(this, arguments) + }), Q.prototype.getExpirationTime = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date, + t = Y(this.bindingSignatures, e), r = re(this.subKey, t), n = t.getExpirationTime(); + return r < n ? r : n + }, Q.prototype.update = (L = (0, y.default)(p.default.mark(function e(t, r) { + var n, i; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, t.verify(r); + case 2: + if (e.t0 = e.sent, e.t1 = H.default.keyStatus.invalid, e.t0 !== e.t1) { + e.next = 6; + break + } + return e.abrupt("return"); + case 6: + if (this.subKey.getFingerprint() === t.subKey.getFingerprint()) { + e.next = 8; + break + } + throw new Error("SubKey update method: fingerprints of subkeys not equal"); + case 8: + return this.subKey.tag === H.default.packet.publicSubkey && t.subKey.tag === H.default.packet.secretSubkey && (this.subKey = t.subKey), i = { + key: r, + bind: (n = this).subKey + }, e.next = 13, b(t, this, "bindingSignatures", function () { + var e = (0, y.default)(p.default.mark(function e(t) { + var a; + return p.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (e.t0 = t.verified, e.t0) { + e.next = 5; + break + } + return e.next = 4, t.verify(r, i); + case 4: + e.t0 = e.sent; + case 5: + if (e.t0) { + e.next = 7; + break + } + return e.abrupt("return", !1); + case 7: + a = 0; + case 8: + if (!(a < n.bindingSignatures.length)) { + e.next = 16; + break + } + if (!n.bindingSignatures[a].issuerKeyId.equals(t.issuerKeyId)) { + e.next = 13; + break + } + if (!(t.created < n.bindingSignatures[a].created)) { + e.next = 13; + break + } + return n.bindingSignatures[a] = t, e.abrupt("return", !1); + case 13: + a++, e.next = 8; + break; + case 16: + return e.abrupt("return", !0); + case 17: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }()); + case 13: + return e.next = 15, b(t, this, "revocationSignatures", function (e) { + return g(r, i, [e]) + }); + case 15: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return L.apply(this, arguments) + }) + }, { + "./config": 309, + "./crypto": 324, + "./encoding/armor": 341, + "./enums": 343, + "./packet": 355, + "./util": 382, + "babel-runtime/core-js/object/get-prototype-of": 26, + "babel-runtime/core-js/promise": 28, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/helpers/slicedToArray": 36, + "babel-runtime/regenerator": 38 + }], + 347: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("./keyring.js")), i = a(e("./localstore.js")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } - return utftext; - }; - - var blockstart; - var i, j; - var W = new Array(80); - var H0 = 0x67452301; - var H1 = 0xEFCDAB89; - var H2 = 0x98BADCFE; - var H3 = 0x10325476; - var H4 = 0xC3D2E1F0; - var A, B, C, D, E; - var temp; - - msg = Utf8Encode(msg); - - var msg_len = msg.length; - - var word_array = new Array(); - for (i = 0; i < msg_len - 3; i += 4) { - j = msg.charCodeAt(i) << 24 | msg.charCodeAt(i + 1) << 16 | - msg.charCodeAt(i + 2) << 8 | msg.charCodeAt(i + 3); - word_array.push(j); - } + n.default.localstore = i.default, r.default = n.default + }, {"./keyring.js": 348, "./localstore.js": 349}], + 348: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = u(e("babel-runtime/regenerator")), a = u(e("babel-runtime/helpers/asyncToGenerator")), + s = e("../key"), o = u(e("./localstore")); - switch (msg_len % 4) { - case 0: - i = 0x080000000; - break; - case 1: - i = msg.charCodeAt(msg_len - 1) << 24 | 0x0800000; - break; - - case 2: - i = msg.charCodeAt(msg_len - 2) << 24 | msg.charCodeAt(msg_len - 1) << 16 | 0x08000; - break; - - case 3: - i = msg.charCodeAt(msg_len - 3) << 24 | msg.charCodeAt(msg_len - 2) << 16 | msg.charCodeAt(msg_len - 1) << 8 | 0x80; - break; - } + function u(e) { + return e && e.__esModule ? e : {default: e} + } + + function f(e) { + this.storeHandler = e || new o.default, this.publicKeys = new c(this.storeHandler.loadPublic()), this.privateKeys = new c(this.storeHandler.loadPrivate()) + } - word_array.push(i); + function c(e) { + this.keys = e + } - while ((word_array.length % 16) != 14) word_array.push(0); + function d(e, t) { + for (var r = (e = e.toLowerCase()).replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), n = new RegExp("<" + r + ">"), i = t.getUserIds(), a = 0; a < i.length; a++) { + var s = i[a].toLowerCase(); + if (e === s || n.test(s)) return !0 + } + return !1 + } - word_array.push(msg_len >>> 29); - word_array.push((msg_len << 3) & 0x0ffffffff); + function l(e, t) { + return 16 === e.length ? e === t.getKeyId().toHex() : e === t.getFingerprint() + } + f.prototype.store = function () { + this.storeHandler.storePublic(this.publicKeys.keys), this.storeHandler.storePrivate(this.privateKeys.keys) + }, f.prototype.clear = function () { + this.publicKeys.keys = [], this.privateKeys.keys = [] + }, f.prototype.getKeysForId = function (e, t) { + var r = []; + return (r = (r = r.concat(this.publicKeys.getForId(e, t) || [])).concat(this.privateKeys.getForId(e, t) || [])).length ? r : null + }, f.prototype.removeKeysForId = function (e) { + var t = []; + return (t = (t = t.concat(this.publicKeys.removeForId(e) || [])).concat(this.privateKeys.removeForId(e) || [])).length ? t : null + }, f.prototype.getAllKeys = function () { + return this.publicKeys.keys.concat(this.privateKeys.keys) + }, c.prototype.getForAddress = function (e) { + for (var t = [], r = 0; r < this.keys.length; r++) d(e, this.keys[r]) && t.push(this.keys[r]); + return t + }, c.prototype.getForId = function (e, t) { + for (var r = 0; r < this.keys.length; r++) { + if (l(e, this.keys[r].primaryKey)) return this.keys[r]; + if (t && this.keys[r].subKeys.length) for (var n = 0; n < this.keys[r].subKeys.length; n++) if (l(e, this.keys[r].subKeys[n].subKey)) return this.keys[r] + } + return null + }, c.prototype.importKey = (n = (0, a.default)(i.default.mark(function e(t) { + var r, n, a, o, u, f; + return i.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + r = (0, s.readArmored)(t), n = this, a = 0; + case 3: + if (!(a < r.keys.length)) { + e.next = 16; + break + } + if (o = r.keys[a], u = o.primaryKey.getKeyId().toHex(), !(f = n.getForId(u))) { + e.next = 12; + break + } + return e.next = 10, f.update(o); + case 10: + e.next = 13; + break; + case 12: + n.push(o); + case 13: + a++, e.next = 3; + break; + case 16: + return e.abrupt("return", r.err ? r.err : null); + case 17: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }), c.prototype.push = function (e) { + return this.keys.push(e) + }, c.prototype.removeForId = function (e) { + for (var t = 0; t < this.keys.length; t++) if (l(e, this.keys[t].primaryKey)) return this.keys.splice(t, 1)[0]; + return null + }, r.default = f + }, { + "../key": 346, + "./localstore": 349, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 349: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = o(e("babel-runtime/core-js/json/stringify")), i = o(e("../config")), a = e("../key"), + s = o(e("../util")); + + function o(e) { + return e && e.__esModule ? e : {default: e} + } - for (blockstart = 0; blockstart < word_array.length; blockstart += 16) { + function u(t) { + t = t || "openpgp-", this.publicKeysItem = t + this.publicKeysItem, this.privateKeysItem = t + this.privateKeysItem, "undefined" != typeof window && window.localStorage ? this.storage = window.localStorage : this.storage = new (e("node-localstorage").LocalStorage)(i.default.node_store) + } - for (i = 0; i < 16; i++) W[i] = word_array[blockstart + i]; - for (i = 16; i <= 79; i++) W[i] = rotate_left(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); + function f(e, t) { + var r = JSON.parse(e.getItem(t)), n = []; + if (null !== r && 0 !== r.length) for (var i = void 0, o = 0; o < r.length; o++) (i = (0, a.readArmored)(r[o])).err ? s.default.print_debug("Error reading armored key from keyring index: " + o) : n.push(i.keys[0]); + return n + } - A = H0; - B = H1; - C = H2; - D = H3; - E = H4; + function c(e, t, r) { + var i = []; + if (r.length) { + for (var a = 0; a < r.length; a++) i.push(r[a].armor()); + e.setItem(t, (0, n.default)(i)) + } else e.removeItem(t) + } - for (i = 0; i <= 19; i++) { - temp = (rotate_left(A, 5) + ((B & C) | (~B & D)) + E + W[i] + 0x5A827999) & 0x0ffffffff; - E = D; - D = C; - C = rotate_left(B, 30); - B = A; - A = temp; - } + u.prototype.publicKeysItem = "public-keys", u.prototype.privateKeysItem = "private-keys", u.prototype.loadPublic = function () { + return f(this.storage, this.publicKeysItem) + }, u.prototype.loadPrivate = function () { + return f(this.storage, this.privateKeysItem) + }, u.prototype.storePublic = function (e) { + c(this.storage, this.publicKeysItem, e) + }, u.prototype.storePrivate = function (e) { + c(this.storage, this.privateKeysItem, e) + }, r.default = u + }, { + "../config": 309, + "../key": 346, + "../util": 382, + "babel-runtime/core-js/json/stringify": 22, + "node-localstorage": "node-localstorage" + }], + 350: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.createVerificationObjects = r.createSignaturePackets = r.encryptSessionKey = void 0; + var n, i, a, s = M(e("babel-runtime/core-js/array/from")), o = M(e("babel-runtime/core-js/promise")), + u = M(e("babel-runtime/regenerator")), f = M(e("babel-runtime/helpers/asyncToGenerator")), + c = r.encryptSessionKey = (n = (0, f.default)(u.default.mark(function e(t, r, n, i, a) { + var s, c, d, l, h, p, y = arguments.length > 5 && void 0 !== arguments[5] && arguments[5], + b = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : new Date; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (s = new x.default.List, !i) { + e.next = 6; + break + } + return e.next = 4, o.default.all(i.map(function () { + var e = (0, f.default)(u.default.mark(function e(n) { + var i, a; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, n.getEncryptionKeyPacket(void 0, b); + case 2: + if (i = e.sent) { + e.next = 5; + break + } + throw new Error("Could not find valid key packet for encryption in key " + n.primaryKey.getKeyId().toHex()); + case 5: + return (a = new x.default.PublicKeyEncryptedSessionKey).publicKeyId = y ? v.default.wildcard() : i.getKeyId(), a.publicKeyAlgorithm = i.algorithm, a.sessionKey = t, a.sessionKeyAlgorithm = r, e.next = 12, a.encrypt(i); + case 12: + return delete a.sessionKey, e.abrupt("return", a); + case 14: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 4: + c = e.sent, s.concat(c); + case 6: + if (!a) { + e.next = 14; + break + } + return d = function () { + var e = (0, f.default)(u.default.mark(function e(t, r) { + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.prev = 0, e.next = 3, t.decrypt(r); + case 3: + return e.abrupt("return", 1); + case 6: + return e.prev = 6, e.t0 = e.catch(0), e.abrupt("return", 0); + case 9: + case"end": + return e.stop() + } + }, e, this, [[0, 6]]) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }(), l = function (e, t) { + return e + t + }, h = function () { + var e = (0, f.default)(u.default.mark(function e(t, r, n, i) { + var s; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return (s = new x.default.SymEncryptedSessionKey).sessionKey = t, s.sessionKeyAlgorithm = r, n && (s.aeadAlgorithm = n), e.next = 6, s.encrypt(i); + case 6: + if (!_.default.password_collision_check) { + e.next = 12; + break + } + return e.next = 9, o.default.all(a.map(function (e) { + return d(s, e) + })); + case 9: + if (1 === e.sent.reduce(l)) { + e.next = 12; + break + } + return e.abrupt("return", h(t, r, i)); + case 12: + return delete s.sessionKey, e.abrupt("return", s); + case 14: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r, n, i) { + return e.apply(this, arguments) + } + }(), e.next = 12, o.default.all(a.map(function (e) { + return h(t, r, n, e) + })); + case 12: + p = e.sent, s.concat(p); + case 14: + return e.abrupt("return", new C(s)); + case 15: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, i, a) { + return n.apply(this, arguments) + }), d = r.createSignaturePackets = (i = (0, f.default)(u.default.mark(function e(t, r) { + var n, i, a, s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, + c = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : new Date; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = new x.default.List, i = null === t.text ? k.default.signature.binary : k.default.signature.text, e.next = 4, o.default.all(r.map(function () { + var e = (0, f.default)(u.default.mark(function e(r) { + var n, a; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!r.isPublic()) { + e.next = 2; + break + } + throw new Error("Need private key for signing"); + case 2: + return e.next = 4, r.getSigningKeyPacket(void 0, c); + case 4: + if (n = e.sent) { + e.next = 7; + break + } + throw new Error("Could not find valid key packet for signing in key " + r.primaryKey.getKeyId().toHex()); + case 7: + if (n.isDecrypted) { + e.next = 9; + break + } + throw new Error("Private key is not decrypted."); + case 9: + return (a = new x.default.Signature(c)).signatureType = i, a.publicKeyAlgorithm = n.algorithm, e.next = 14, (0, E.getPreferredHashAlgo)(r, c); + case 14: + return a.hashAlgorithm = e.sent, e.next = 17, a.sign(n, t); + case 17: + return e.abrupt("return", a); + case 18: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())).then(function (e) { + e.forEach(function (e) { + return n.push(e) + }) + }); + case 4: + return s && (a = s.packets.filterByTag(k.default.packet.signature), n.concat(a)), e.abrupt("return", n); + case 6: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return i.apply(this, arguments) + }), l = r.createVerificationObjects = (a = (0, f.default)(u.default.mark(function e(t, r, n) { + var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : new Date; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.abrupt("return", o.default.all(t.map(function () { + var e = (0, f.default)(u.default.mark(function e(t) { + var a, s, c; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return a = null, e.next = 3, o.default.all(n.map(function () { + var e = (0, f.default)(u.default.mark(function e(r) { + var n; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, r.getSigningKeyPacket(t.issuerKeyId, i); + case 2: + (n = e.sent) && (a = n); + case 4: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 3: + if (e.t0 = t.issuerKeyId, !a) { + e.next = 10; + break + } + return e.next = 7, t.verify(a, r[0]); + case 7: + e.t1 = e.sent, e.next = 11; + break; + case 10: + e.t1 = null; + case 11: + return e.t2 = e.t1, s = { + keyid: e.t0, + valid: e.t2 + }, (c = new x.default.List).push(t), s.signature = new S.Signature(c), e.abrupt("return", s); + case 17: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }()))); + case 1: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return a.apply(this, arguments) + }); + r.Message = C, r.readArmored = function (e) { + return j(g.default.decode(e).data) + }, r.read = j, r.fromText = function (e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date, + n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "utf8", + i = new x.default.Literal(r); + i.setText(e, n), void 0 !== t && i.setFilename(t); + var a = new x.default.List; + return a.push(i), new C(a) + }, r.fromBinary = function (e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date, + n = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "binary"; + if (!A.default.isUint8Array(e)) throw new Error("Data must be in the form of a Uint8Array"); + var i = new x.default.Literal(r); + i.setBytes(e, n), void 0 !== t && i.setFilename(t); + var a = new x.default.List; + return a.push(i), new C(a) + }; + var h, p, y, b, m, g = M(e("./encoding/armor")), v = M(e("./type/keyid")), _ = M(e("./config")), + w = M(e("./crypto")), k = M(e("./enums")), A = M(e("./util")), x = M(e("./packet")), + S = e("./signature"), E = e("./key"); + + function M(e) { + return e && e.__esModule ? e : {default: e} + } - for (i = 20; i <= 39; i++) { - temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff; - E = D; - D = C; - C = rotate_left(B, 30); - B = A; - A = temp; - } + function C(e) { + if (!(this instanceof C)) return new C(e); + this.packets = e || new x.default.List + } - for (i = 40; i <= 59; i++) { - temp = (rotate_left(A, 5) + ((B & C) | (B & D) | (C & D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff; - E = D; - D = C; - C = rotate_left(B, 30); - B = A; - A = temp; - } + function j(e) { + var t = new x.default.List; + return t.read(e), new C(t) + } - for (i = 60; i <= 79; i++) { - temp = (rotate_left(A, 5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff; - E = D; - D = C; - C = rotate_left(B, 30); - B = A; - A = temp; - } + C.prototype.getEncryptionKeyIds = function () { + var e = []; + return this.packets.filterByTag(k.default.packet.publicKeyEncryptedSessionKey).forEach(function (t) { + e.push(t.publicKeyId) + }), e + }, C.prototype.getSigningKeyIds = function () { + var e = [], t = this.unwrapCompressed(); + (t.packets.filterByTag(k.default.packet.onePassSignature).forEach(function (t) { + e.push(t.signingKeyId) + }), e.length) || t.packets.filterByTag(k.default.packet.signature).forEach(function (t) { + e.push(t.issuerKeyId) + }); + return e + }, C.prototype.decrypt = (h = (0, f.default)(u.default.mark(function e(t, r, n) { + var i, a, s, o, f, c; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (e.t0 = n, e.t0) { + e.next = 5; + break + } + return e.next = 4, this.decryptSessionKeys(t, r); + case 4: + e.t0 = e.sent; + case 5: + if (i = e.t0, 0 !== (a = this.packets.filterByTag(k.default.packet.symmetricallyEncrypted, k.default.packet.symEncryptedIntegrityProtected, k.default.packet.symEncryptedAEADProtected)).length) { + e.next = 9; + break + } + return e.abrupt("return", this); + case 9: + s = a[0], o = null, f = 0; + case 12: + if (!(f < i.length)) { + e.next = 27; + break + } + if (i[f] && A.default.isUint8Array(i[f].data) && A.default.isString(i[f].algorithm)) { + e.next = 15; + break + } + throw new Error("Invalid session key for decryption."); + case 15: + return e.prev = 15, e.next = 18, s.decrypt(i[f].algorithm, i[f].data); + case 18: + return e.abrupt("break", 27); + case 21: + e.prev = 21, e.t1 = e.catch(15), o = e.t1; + case 24: + f++, e.next = 12; + break; + case 27: + if (s.packets && s.packets.length) { + e.next = 29; + break + } + throw o || new Error("Decryption failed."); + case 29: + return c = new C(s.packets), s.packets = new x.default.List, e.abrupt("return", c); + case 32: + case"end": + return e.stop() + } + }, e, this, [[15, 21]]) + })), function (e, t, r) { + return h.apply(this, arguments) + }), C.prototype.decryptSessionKeys = (p = (0, f.default)(u.default.mark(function e(t, r) { + var n, i, a, s; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (n = [], !r) { + e.next = 9; + break + } + if (i = this.packets.filterByTag(k.default.packet.symEncryptedSessionKey)) { + e.next = 5; + break + } + throw new Error("No symmetrically encrypted session key packet found."); + case 5: + return e.next = 7, o.default.all(i.map(function () { + var e = (0, f.default)(u.default.mark(function e(t) { + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, o.default.all(r.map(function () { + var e = (0, f.default)(u.default.mark(function e(r) { + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.prev = 0, e.next = 3, t.decrypt(r); + case 3: + n.push(t), e.next = 9; + break; + case 6: + e.prev = 6, e.t0 = e.catch(0), A.default.print_debug_error(e.t0); + case 9: + case"end": + return e.stop() + } + }, e, this, [[0, 6]]) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 2: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 7: + e.next = 18; + break; + case 9: + if (!t) { + e.next = 17; + break + } + if (a = this.packets.filterByTag(k.default.packet.publicKeyEncryptedSessionKey)) { + e.next = 13; + break + } + throw new Error("No public key encrypted session key packet found."); + case 13: + return e.next = 15, o.default.all(a.map(function () { + var e = (0, f.default)(u.default.mark(function e(r) { + var i; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return i = t.reduce(function (e, t) { + return e.concat(t.getKeyPackets(r.publicKeyId)) + }, new x.default.List), e.next = 3, o.default.all(i.map(function () { + var e = (0, f.default)(u.default.mark(function e(t) { + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (t) { + e.next = 2; + break + } + return e.abrupt("return"); + case 2: + if (t.isDecrypted) { + e.next = 4; + break + } + throw new Error("Private key is not decrypted."); + case 4: + return e.prev = 4, e.next = 7, r.decrypt(t); + case 7: + n.push(r), e.next = 13; + break; + case 10: + e.prev = 10, e.t0 = e.catch(4), A.default.print_debug_error(e.t0); + case 13: + case"end": + return e.stop() + } + }, e, this, [[4, 10]]) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 3: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t) { + return e.apply(this, arguments) + } + }())); + case 15: + e.next = 18; + break; + case 17: + throw new Error("No key or password specified."); + case 18: + if (!n.length) { + e.next = 21; + break + } + return n.length > 1 && (s = {}, n = n.filter(function (e) { + var t = e.sessionKeyAlgorithm + A.default.Uint8Array_to_str(e.sessionKey); + return !s.hasOwnProperty(t) && (s[t] = !0, !0) + })), e.abrupt("return", n.map(function (e) { + return {data: e.sessionKey, algorithm: e.sessionKeyAlgorithm} + })); + case 21: + throw new Error("Session key decryption failed."); + case 22: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return p.apply(this, arguments) + }), C.prototype.getLiteralData = function () { + var e = this.packets.findPacket(k.default.packet.literal); + return e && e.getBytes() || null + }, C.prototype.getFilename = function () { + var e = this.packets.findPacket(k.default.packet.literal); + return e && e.getFilename() || null + }, C.prototype.getText = function () { + var e = this.packets.findPacket(k.default.packet.literal); + return e ? e.getText() : null + }, C.prototype.encrypt = (y = (0, f.default)(u.default.mark(function e(t, r, n) { + var i, a, s, o, f = arguments.length > 3 && void 0 !== arguments[3] && arguments[3], + d = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : new Date; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (i = void 0, a = void 0, s = void 0, !n) { + e.next = 11; + break + } + if (A.default.isUint8Array(n.data) && A.default.isString(n.algorithm)) { + e.next = 6; + break + } + throw new Error("Invalid session key for encryption."); + case 6: + i = n.algorithm, a = n.aeadAlgorithm, n = n.data, e.next = 38; + break; + case 11: + if (!t || !t.length) { + e.next = 32; + break + } + return e.t0 = k.default, e.t1 = k.default.symmetric, e.next = 16, (0, E.getPreferredAlgo)("symmetric", t, d); + case 16: + if (e.t2 = e.sent, i = e.t0.read.call(e.t0, e.t1, e.t2), e.t3 = _.default.aead_protect && 4 === _.default.aead_protect_version, !e.t3) { + e.next = 23; + break + } + return e.next = 22, (0, E.isAeadSupported)(t, d); + case 22: + e.t3 = e.sent; + case 23: + if (!e.t3) { + e.next = 30; + break + } + return e.t4 = k.default, e.t5 = k.default.aead, e.next = 28, (0, E.getPreferredAlgo)("aead", t, d); + case 28: + e.t6 = e.sent, a = e.t4.read.call(e.t4, e.t5, e.t6); + case 30: + e.next = 38; + break; + case 32: + if (!r || !r.length) { + e.next = 37; + break + } + i = k.default.read(k.default.symmetric, _.default.encryption_cipher), a = k.default.read(k.default.aead, _.default.aead_mode), e.next = 38; + break; + case 37: + throw new Error("No keys, passwords, or session key provided."); + case 38: + if (n) { + e.next = 42; + break + } + return e.next = 41, w.default.generateSessionKey(i); + case 41: + n = e.sent; + case 42: + return e.next = 44, c(n, i, a, t, r, f, d); + case 44: + return o = e.sent, _.default.aead_protect && (4 !== _.default.aead_protect_version || a) ? (s = new x.default.SymEncryptedAEADProtected).aeadAlgorithm = a : s = _.default.integrity_protect ? new x.default.SymEncryptedIntegrityProtected : new x.default.SymmetricallyEncrypted, s.packets = this.packets, e.next = 49, s.encrypt(i, n); + case 49: + return o.packets.push(s), s.packets = new x.default.List, e.abrupt("return", { + message: o, + sessionKey: {data: n, algorithm: i, aeadAlgorithm: a} + }); + case 52: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r) { + return y.apply(this, arguments) + }), C.prototype.sign = (b = (0, f.default)(u.default.mark(function e() { + var t, r, n, i, a, c, l, h = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + p = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, + y = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (t = new x.default.List, r = this.packets.findPacket(k.default.packet.literal)) { + e.next = 4; + break + } + throw new Error("No literal data packet to sign."); + case 4: + if (n = void 0, i = void 0, a = null === r.text ? k.default.signature.binary : k.default.signature.text, p) for (i = p.packets.filterByTag(k.default.packet.signature), n = i.length - 1; n >= 0; n--) c = i[n], (l = new x.default.OnePassSignature).type = a, l.hashAlgorithm = c.hashAlgorithm, l.publicKeyAlgorithm = c.publicKeyAlgorithm, l.signingKeyId = c.issuerKeyId, h.length || 0 !== n || (l.flags = 1), t.push(l); + return e.next = 10, o.default.all((0, s.default)(h).reverse().map(function () { + var e = (0, f.default)(u.default.mark(function e(t, r) { + var n, i; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!t.isPublic()) { + e.next = 2; + break + } + throw new Error("Need private key for signing"); + case 2: + return e.next = 4, t.getSigningKeyPacket(void 0, y); + case 4: + if (n = e.sent) { + e.next = 7; + break + } + throw new Error("Could not find valid key packet for signing in key " + t.primaryKey.getKeyId().toHex()); + case 7: + return (i = new x.default.OnePassSignature).type = a, e.next = 11, (0, E.getPreferredHashAlgo)(t, y); + case 11: + return i.hashAlgorithm = e.sent, i.publicKeyAlgorithm = n.algorithm, i.signingKeyId = n.getKeyId(), r === h.length - 1 && (i.flags = 1), e.abrupt("return", i); + case 16: + case"end": + return e.stop() + } + }, e, this) + })); + return function (t, r) { + return e.apply(this, arguments) + } + }())).then(function (e) { + e.forEach(function (e) { + return t.push(e) + }) + }); + case 10: + return t.push(r), e.t0 = t, e.next = 14, d(r, h, p, y); + case 14: + return e.t1 = e.sent, e.t0.concat.call(e.t0, e.t1), e.abrupt("return", new C(t)); + case 17: + case"end": + return e.stop() + } + }, e, this) + })), function () { + return b.apply(this, arguments) + }), C.prototype.compress = function (e) { + if (e === k.default.compression.uncompressed) return this; + var t = new x.default.Compressed; + t.packets = this.packets, t.algorithm = k.default.read(k.default.compression, e); + var r = new x.default.List; + return r.push(t), new C(r) + }, C.prototype.signDetached = (m = (0, f.default)(u.default.mark(function e() { + var t, r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, + i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date; + return u.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (t = this.packets.findPacket(k.default.packet.literal)) { + e.next = 3; + break + } + throw new Error("No literal data packet to sign."); + case 3: + return e.t0 = S.Signature, e.next = 6, d(t, r, n, i); + case 6: + return e.t1 = e.sent, e.abrupt("return", new e.t0(e.t1)); + case 8: + case"end": + return e.stop() + } + }, e, this) + })), function () { + return m.apply(this, arguments) + }), C.prototype.verify = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : new Date, + r = this.unwrapCompressed(), n = r.packets.filterByTag(k.default.packet.literal); + if (1 !== n.length) throw new Error("Can only verify message with one literal data packet."); + var i = r.packets.filterByTag(k.default.packet.signature); + return l(i, n, e, t) + }, C.prototype.verifyDetached = function (e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date, + n = this.unwrapCompressed().packets.filterByTag(k.default.packet.literal); + if (1 !== n.length) throw new Error("Can only verify message with one literal data packet."); + var i = e.packets; + return l(i, n, t, r) + }, C.prototype.unwrapCompressed = function () { + var e = this.packets.filterByTag(k.default.packet.compressed); + return e.length ? new C(e[0].packets) : this + }, C.prototype.appendSignature = function (e) { + this.packets.read(A.default.isUint8Array(e) ? e : g.default.decode(e).data) + }, C.prototype.armor = function () { + return g.default.encode(k.default.armor.message, this.packets.write()) + } + }, { + "./config": 309, + "./crypto": 324, + "./encoding/armor": 341, + "./enums": 343, + "./key": 346, + "./packet": 355, + "./signature": 375, + "./type/keyid": 378, + "./util": 382, + "babel-runtime/core-js/array/from": 19, + "babel-runtime/core-js/promise": 28, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 351: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = h(e("babel-runtime/regenerator")), i = h(e("babel-runtime/helpers/asyncToGenerator")), + a = h(e("babel-runtime/core-js/promise")); + r.initWorker = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.path, + r = void 0 === t ? "openpgp.worker.js" : t, n = e.n, i = void 0 === n ? 1 : n, a = e.workers, + s = void 0 === a ? [] : a; + if (s.length || "undefined" != typeof window && window.Worker) return p = new l.default({ + path: r, + n: i, + workers: s, + config: f.default + }), !0 + }, r.getWorker = function () { + return p + }, r.destroyWorker = function () { + p = void 0 + }, r.generateKey = function (e) { + var t = e.userIds, r = void 0 === t ? [] : t, n = e.passphrase, i = void 0 === n ? "" : n, + a = e.numBits, s = void 0 === a ? 2048 : a, o = e.keyExpirationTime, f = void 0 === o ? 0 : o, + c = e.curve, l = void 0 === c ? "" : c, h = e.date, y = void 0 === h ? new Date : h, b = e.subkeys, + g = void 0 === b ? [{}] : b, v = { + userIds: r = m(r), + passphrase: i, + numBits: s, + keyExpirationTime: f, + curve: l, + date: y, + subkeys: g + }; + if (d.default.getWebCryptoAll() && s < 2048) throw new Error("numBits should be 2048 or 4096, found: " + s); + if (!d.default.getWebCryptoAll() && p) return p.delegate("generateKey", v); + return (0, u.generate)(v).then(function (e) { + return {key: e, privateKeyArmored: e.armor(), publicKeyArmored: e.toPublic().armor()} + }).catch(w.bind(null, "Error generating keypair")) + }, r.reformatKey = function (e) { + var t = e.privateKey, r = e.userIds, n = void 0 === r ? [] : r, i = e.passphrase, + a = void 0 === i ? "" : i, s = e.keyExpirationTime, o = void 0 === s ? 0 : s, f = e.date; + n = m(n); + var c = {privateKey: t, userIds: n, passphrase: a, keyExpirationTime: o, date: f}; + if (p) return p.delegate("reformatKey", c); + return (0, u.reformat)(c).then(function (e) { + return {key: e, privateKeyArmored: e.armor(), publicKeyArmored: e.toPublic().armor()} + }).catch(w.bind(null, "Error reformatting keypair")) + }, r.decryptKey = function (e) { + var t = e.privateKey, r = e.passphrase; + if (p) return p.delegate("decryptKey", {privateKey: t, passphrase: r}); + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, t.decrypt(r); + case 2: + return e.abrupt("return", {key: t}); + case 3: + case"end": + return e.stop() + } + }, e, this) + }))).catch(w.bind(null, "Error decrypting private key")) + }, r.encryptKey = function (e) { + var t = e.privateKey, r = e.passphrase; + if (p) return p.delegate("encryptKey", {privateKey: t, passphrase: r}); + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, t.encrypt(r); + case 2: + return e.abrupt("return", {key: t}); + case 3: + case"end": + return e.stop() + } + }, e, this) + }))).catch(w.bind(null, "Error decrypting private key")) + }, r.encrypt = function (e) { + var t = e.data, r = e.dataType, s = e.publicKeys, o = e.privateKeys, u = e.passwords, c = e.sessionKey, + d = e.filename, l = e.compression, h = void 0 === l ? f.default.compression : l, b = e.armor, + m = void 0 === b || b, _ = e.detached, A = void 0 !== _ && _, x = e.signature, + S = void 0 === x ? null : x, E = e.returnSessionKey, M = void 0 !== E && E, C = e.wildcard, + j = void 0 !== C && C, P = e.date, B = void 0 === P ? new Date : P; + if (y(t), s = g(s), o = g(o), u = g(u), !k() && p) return p.delegate("encrypt", { + data: t, + dataType: r, + publicKeys: s, + privateKeys: o, + passwords: u, + sessionKey: c, + filename: d, + compression: h, + armor: m, + detached: A, + signature: S, + returnSessionKey: M, + wildcard: j, + date: B + }); + var U = {}; + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + var i, a; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (i = v(t, d, B, r), o || (o = []), !o.length && !S) { + e.next = 13; + break + } + if (!A) { + e.next = 10; + break + } + return e.next = 6, i.signDetached(o, S, B); + case 6: + a = e.sent, U.signature = m ? a.armor() : a, e.next = 13; + break; + case 10: + return e.next = 12, i.sign(o, S, B); + case 12: + i = e.sent; + case 13: + return i = i.compress(h), e.abrupt("return", i.encrypt(s, u, c, j, B)); + case 15: + case"end": + return e.stop() + } + }, e, this) + }))).then(function (e) { + return m ? U.data = e.message.armor() : U.message = e.message, M && (U.sessionKey = e.sessionKey), U + }).catch(w.bind(null, "Error encrypting message")) + }, r.decrypt = function (e) { + var t = e.message, r = e.privateKeys, a = e.passwords, s = e.sessionKeys, o = e.publicKeys, + u = e.format, f = void 0 === u ? "utf8" : u, c = e.signature, d = void 0 === c ? null : c, + l = e.date, h = void 0 === l ? new Date : l; + if (b(t), o = g(o), r = g(r), a = g(a), s = g(s), !k() && p) return p.delegate("decrypt", { + message: t, + privateKeys: r, + passwords: a, + sessionKeys: s, + publicKeys: o, + format: f, + signature: d, + date: h + }); + return t.decrypt(r, a, s).then((y = (0, i.default)(n.default.mark(function e(t) { + var r; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (r = _(t, f), o || (o = []), !d) { + e.next = 8; + break + } + return e.next = 5, t.verifyDetached(d, o, h); + case 5: + e.t0 = e.sent, e.next = 11; + break; + case 8: + return e.next = 10, t.verify(o, h); + case 10: + e.t0 = e.sent; + case 11: + return r.signatures = e.t0, e.abrupt("return", r); + case 13: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return y.apply(this, arguments) + })).catch(w.bind(null, "Error decrypting message")); + var y + }, r.sign = function (e) { + var t = e.data, r = e.dataType, u = e.privateKeys, f = e.armor, c = void 0 === f || f, l = e.detached, + h = void 0 !== l && l, b = e.date, m = void 0 === b ? new Date : b; + if (y(t), u = g(u), p) return p.delegate("sign", { + data: t, + dataType: r, + privateKeys: u, + armor: c, + detached: h, + date: m + }); + var v = {}; + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + var i, a; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (i = d.default.isString(t) ? new o.CleartextMessage(t) : s.fromBinary(t, r), !h) { + e.next = 8; + break + } + return e.next = 4, i.signDetached(u, void 0, m); + case 4: + a = e.sent, v.signature = c ? a.armor() : a, e.next = 12; + break; + case 8: + return e.next = 10, i.sign(u, void 0, m); + case 10: + i = e.sent, c ? v.data = i.armor() : v.message = i; + case 12: + return e.abrupt("return", v); + case 13: + case"end": + return e.stop() + } + }, e, this) + }))).catch(w.bind(null, "Error signing cleartext message")) + }, r.verify = function (e) { + var t = e.message, r = e.publicKeys, u = e.signature, f = void 0 === u ? null : u, c = e.date, + d = void 0 === c ? new Date : c; + if (function (e) { + if (!(e instanceof o.CleartextMessage || e instanceof s.Message)) throw new Error("Parameter [message] needs to be of type Message or CleartextMessage") + }(t), r = g(r), p) return p.delegate("verify", {message: t, publicKeys: r, signature: f, date: d}); + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + var i; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if ((i = {}).data = t instanceof o.CleartextMessage ? t.getText() : t.getLiteralData(), !f) { + e.next = 8; + break + } + return e.next = 5, t.verifyDetached(f, r, d); + case 5: + e.t0 = e.sent, e.next = 11; + break; + case 8: + return e.next = 10, t.verify(r, d); + case 10: + e.t0 = e.sent; + case 11: + return i.signatures = e.t0, e.abrupt("return", i); + case 13: + case"end": + return e.stop() + } + }, e, this) + }))).catch(w.bind(null, "Error verifying cleartext signed message")) + }, r.encryptSessionKey = function (e) { + var t = e.data, r = e.algorithm, o = e.aeadAlgorithm, u = e.publicKeys, f = e.passwords, c = e.wildcard, + l = void 0 !== c && c; + if (function (e, t) { + if (!d.default.isUint8Array(e)) throw new Error("Parameter [" + (t || "data") + "] must be of type Uint8Array") + }(t), function (e, t) { + if (!d.default.isString(e)) throw new Error("Parameter [" + (t || "data") + "] must be of type String") + }(r, "algorithm"), u = g(u), f = g(f), p) return p.delegate("encryptSessionKey", { + data: t, + algorithm: r, + aeadAlgorithm: o, + publicKeys: u, + passwords: f, + wildcard: l + }); + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, s.encryptSessionKey(t, r, o, u, f, l); + case 2: + return e.t0 = e.sent, e.abrupt("return", {message: e.t0}); + case 4: + case"end": + return e.stop() + } + }, e, this) + }))).catch(w.bind(null, "Error encrypting session key")) + }, r.decryptSessionKeys = function (e) { + var t = e.message, r = e.privateKeys, s = e.passwords; + if (b(t), r = g(r), s = g(s), p) return p.delegate("decryptSessionKeys", { + message: t, + privateKeys: r, + passwords: s + }); + return a.default.resolve().then((0, i.default)(n.default.mark(function e() { + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.abrupt("return", t.decryptSessionKeys(r, s)); + case 1: + case"end": + return e.stop() + } + }, e, this) + }))).catch(w.bind(null, "Error decrypting session keys")) + }; + var s = function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); + return t.default = e, t + }(e("./message")), o = e("./cleartext"), u = e("./key"), f = h(e("./config/config")), c = h(e("./enums")), + d = h(e("./util")), l = h(e("./worker/async_proxy")); + + function h(e) { + return e && e.__esModule ? e : {default: e} + } - H0 = (H0 + A) & 0x0ffffffff; - H1 = (H1 + B) & 0x0ffffffff; - H2 = (H2 + C) & 0x0ffffffff; - H3 = (H3 + D) & 0x0ffffffff; - H4 = (H4 + E) & 0x0ffffffff; + "undefined" != typeof window && e("./polyfills"); + var p = void 0; - } + function y(e, t) { + if (!d.default.isUint8Array(e) && !d.default.isString(e)) throw new Error("Parameter [" + (t || "data") + "] must be of type String or Uint8Array") + } - var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4); + function b(e) { + if (!(e instanceof s.Message)) throw new Error("Parameter [message] needs to be of type Message") + } - return temp.toLowerCase(); + function m(e) { + return e ? e = (e = g(e)).map(function (e) { + if (d.default.isString(e) && !d.default.isUserId(e)) throw new Error("Invalid user id format"); + if (d.default.isUserId(e)) return e; + if (e.name = e.name || "", e.email = e.email || "", !d.default.isString(e.name) || e.email && !d.default.isEmailAddress(e.email)) throw new Error("Invalid user id format"); + return e.name = e.name.trim(), e.name.length > 0 && (e.name += " "), e.name + "<" + e.email + ">" + }) : e + } -} + function g(e) { + return e && !d.default.isArray(e) && (e = [e]), e + } -var sha1 = {} -sha1.hex = function (s) { - return SHA1(s); -} + function v(e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Date, n = arguments[3], + i = void 0; + if (d.default.isUint8Array(e)) i = s.fromBinary(e, t, r, n); else { + if (!d.default.isString(e)) throw new Error("Data must be of type String or Uint8Array"); + i = s.fromText(e, t, r, n) + } + return i + } -/** - * - * MD5 (Message-Digest Algorithm) - * http://www.webtoolkit.info/ - * - **/ + function _(e, t) { + if ("binary" === t) return {data: e.getLiteralData(), filename: e.getFilename()}; + if ("utf8" === t) return {data: e.getText(), filename: e.getFilename()}; + throw new Error("Invalid format") + } -var MD5 = function (string) { + function w(e, t) { + d.default.print_debug_error(t); + try { + t.message = e + ": " + t.message + } catch (e) { + } + throw t + } - function RotateLeft(lValue, iShiftBits) { - return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); - } + function k() { + return f.default.aead_protect && ((4 !== f.default.aead_protect_version || f.default.aead_mode === c.default.aead.experimental_gcm) && d.default.getWebCrypto() || 4 === f.default.aead_protect_version && f.default.aead_mode === c.default.aead.eax && d.default.getWebCrypto()) + } + }, { + "./cleartext": 306, + "./config/config": 308, + "./enums": 343, + "./key": 346, + "./message": 350, + "./polyfills": 374, + "./util": 382, + "./worker/async_proxy": 383, + "babel-runtime/core-js/promise": 28, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 352: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.Trust = r.Signature = r.SecretSubkey = r.Userid = r.SecretKey = r.OnePassSignature = r.UserAttribute = r.PublicSubkey = r.Marker = r.SymmetricallyEncrypted = r.PublicKey = r.Literal = r.SymEncryptedSessionKey = r.PublicKeyEncryptedSessionKey = r.SymEncryptedAEADProtected = r.SymEncryptedIntegrityProtected = r.Compressed = void 0; + var n = e("./compressed.js"); + Object.defineProperty(r, "Compressed", { + enumerable: !0, get: function () { + return k(n).default + } + }); + var i = e("./sym_encrypted_integrity_protected.js"); + Object.defineProperty(r, "SymEncryptedIntegrityProtected", { + enumerable: !0, get: function () { + return k(i).default + } + }); + var a = e("./sym_encrypted_aead_protected.js"); + Object.defineProperty(r, "SymEncryptedAEADProtected", { + enumerable: !0, get: function () { + return k(a).default + } + }); + var s = e("./public_key_encrypted_session_key.js"); + Object.defineProperty(r, "PublicKeyEncryptedSessionKey", { + enumerable: !0, get: function () { + return k(s).default + } + }); + var o = e("./sym_encrypted_session_key.js"); + Object.defineProperty(r, "SymEncryptedSessionKey", { + enumerable: !0, get: function () { + return k(o).default + } + }); + var u = e("./literal.js"); + Object.defineProperty(r, "Literal", { + enumerable: !0, get: function () { + return k(u).default + } + }); + var f = e("./public_key.js"); + Object.defineProperty(r, "PublicKey", { + enumerable: !0, get: function () { + return k(f).default + } + }); + var c = e("./symmetrically_encrypted.js"); + Object.defineProperty(r, "SymmetricallyEncrypted", { + enumerable: !0, get: function () { + return k(c).default + } + }); + var d = e("./marker.js"); + Object.defineProperty(r, "Marker", { + enumerable: !0, get: function () { + return k(d).default + } + }); + var l = e("./public_subkey.js"); + Object.defineProperty(r, "PublicSubkey", { + enumerable: !0, get: function () { + return k(l).default + } + }); + var h = e("./user_attribute.js"); + Object.defineProperty(r, "UserAttribute", { + enumerable: !0, get: function () { + return k(h).default + } + }); + var p = e("./one_pass_signature.js"); + Object.defineProperty(r, "OnePassSignature", { + enumerable: !0, get: function () { + return k(p).default + } + }); + var y = e("./secret_key.js"); + Object.defineProperty(r, "SecretKey", { + enumerable: !0, get: function () { + return k(y).default + } + }); + var b = e("./userid.js"); + Object.defineProperty(r, "Userid", { + enumerable: !0, get: function () { + return k(b).default + } + }); + var m = e("./secret_subkey.js"); + Object.defineProperty(r, "SecretSubkey", { + enumerable: !0, get: function () { + return k(m).default + } + }); + var g = e("./signature.js"); + Object.defineProperty(r, "Signature", { + enumerable: !0, get: function () { + return k(g).default + } + }); + var v = e("./trust.js"); + Object.defineProperty(r, "Trust", { + enumerable: !0, get: function () { + return k(v).default + } + }), r.newPacketFromTag = A, r.fromStructuredClone = function (e) { + var t = A(_.default.read(_.default.packet, e.tag)); + for (var r in e) e.hasOwnProperty(r) && (t[r] = e[r]); + t.postCloneTypeFix && t.postCloneTypeFix(); + return t + }; + var _ = k(e("../enums.js")), w = function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); + return t.default = e, t + }(e("./all_packets.js")); + + function k(e) { + return e && e.__esModule ? e : {default: e} + } - function AddUnsigned(lX, lY) { - var lX4, lY4, lX8, lY8, lResult; - lX8 = (lX & 0x80000000); - lY8 = (lY & 0x80000000); - lX4 = (lX & 0x40000000); - lY4 = (lY & 0x40000000); - lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF); - if (lX4 & lY4) { - return (lResult ^ 0x80000000 ^ lX8 ^ lY8); - } - if (lX4 | lY4) { - if (lResult & 0x40000000) { - return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); - } else { - return (lResult ^ 0x40000000 ^ lX8 ^ lY8); - } - } else { - return (lResult ^ lX8 ^ lY8); - } - } + function A(e) { + return new (w[function (e) { + return e.substr(0, 1).toUpperCase() + e.substr(1) + }(e)]) + } + }, { + "../enums.js": 343, + "./all_packets.js": 352, + "./compressed.js": 354, + "./literal.js": 356, + "./marker.js": 357, + "./one_pass_signature.js": 358, + "./public_key.js": 361, + "./public_key_encrypted_session_key.js": 362, + "./public_subkey.js": 363, + "./secret_key.js": 364, + "./secret_subkey.js": 365, + "./signature.js": 366, + "./sym_encrypted_aead_protected.js": 367, + "./sym_encrypted_integrity_protected.js": 368, + "./sym_encrypted_session_key.js": 369, + "./symmetrically_encrypted.js": 370, + "./trust.js": 371, + "./user_attribute.js": 372, + "./userid.js": 373 + }], + 353: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.clonePackets = function (e) { + e.publicKeys && (e.publicKeys = e.publicKeys.map(function (e) { + return e.toPacketlist() + })); + e.privateKeys && (e.privateKeys = e.privateKeys.map(function (e) { + return e.toPacketlist() + })); + e.privateKey && (e.privateKey = e.privateKey.toPacketlist()); + e.key && (e.key = e.key.toPacketlist()); + e.message && (e.message instanceof i.Message ? e.message = e.message.packets : e.message instanceof a.CleartextMessage && (e.message = { + text: e.message.text, + signature: e.message.signature.packets + })); + e.signature && e.signature instanceof s.Signature && (e.signature = e.signature.packets); + e.signatures && (e.signatures = e.signatures.map(function (e) { + return (t = e).signature = t.signature.packets, t; + var t + })); + return e + }, r.parseClonedPackets = function (e) { + e.publicKeys && (e.publicKeys = e.publicKeys.map(d)); + e.privateKeys && (e.privateKeys = e.privateKeys.map(d)); + e.privateKey && (e.privateKey = d(e.privateKey)); + e.key && (e.key = d(e.key)); + e.message && e.message.signature ? e.message = (t = e.message, r = o.default.fromStructuredClone(t.signature), new a.CleartextMessage(t.text, new s.Signature(r))) : e.message && (e.message = function (e) { + var t = o.default.fromStructuredClone(e); + return new i.Message(t) + }(e.message)); + var t, r; + e.signatures && (e.signatures = e.signatures.map(l)); + e.signature && (e.signature = function (e) { + if (f.default.isString(e)) return e; + var t = o.default.fromStructuredClone(e); + return new s.Signature(t) + }(e.signature)); + return e + }; + var n = e("../key"), i = e("../message"), a = e("../cleartext"), s = e("../signature"), + o = c(e("./packetlist")), u = c(e("../type/keyid")), f = c(e("../util")); + + function c(e) { + return e && e.__esModule ? e : {default: e} + } - function F(x, y, z) { - return (x & y) | ((~x) & z); - } + function d(e) { + var t = o.default.fromStructuredClone(e); + return new n.Key(t) + } - function G(x, y, z) { - return (x & z) | (y & (~z)); - } + function l(e) { + return e.keyid = u.default.fromClone(e.keyid), e.signature = new s.Signature(e.signature), e + } + }, { + "../cleartext": 306, + "../key": 346, + "../message": 350, + "../signature": 375, + "../type/keyid": 378, + "../util": 382, + "./packetlist": 360 + }], + 354: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = u(e("pako")), i = u(e("../config")), a = u(e("../enums")), s = u(e("../util")), + o = u(e("../compression/bzip2.build.js")); + + function u(e) { + return e && e.__esModule ? e : {default: e} + } - function H(x, y, z) { - return (x ^ y ^ z); - } + function f() { + this.tag = a.default.packet.compressed, this.packets = null, this.algorithm = "zip", this.compressed = null + } - function I(x, y, z) { - return (y ^ (x | (~z))); - } + f.prototype.read = function (e) { + this.algorithm = a.default.read(a.default.compression, e[0]), this.compressed = e.subarray(1, e.length), this.decompress() + }, f.prototype.write = function () { + return null === this.compressed && this.compress(), s.default.concatUint8Array([new Uint8Array([a.default.write(a.default.compression, this.algorithm)]), this.compressed]) + }, f.prototype.decompress = function () { + if (!p[this.algorithm]) throw new Error("Compression algorithm unknown :" + this.algorithm); + this.packets.read(p[this.algorithm](this.compressed)) + }, f.prototype.compress = function () { + if (!h[this.algorithm]) throw new Error("Compression algorithm unknown :" + this.algorithm); + this.compressed = h[this.algorithm](this.packets.write()) + }, r.default = f; + var c = s.default.getNodeZlib(); + s.default.getNodeBuffer(); + + function d(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return function (r) { + return e(r, t) + } + } - function FF(a, b, c, d, x, s, ac) { - a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac)); - return AddUnsigned(RotateLeft(a, s), b); - }; - - function GG(a, b, c, d, x, s, ac) { - a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac)); - return AddUnsigned(RotateLeft(a, s), b); - }; - - function HH(a, b, c, d, x, s, ac) { - a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac)); - return AddUnsigned(RotateLeft(a, s), b); - }; - - function II(a, b, c, d, x, s, ac) { - a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac)); - return AddUnsigned(RotateLeft(a, s), b); - }; - - function ConvertToWordArray(string) { - var lWordCount; - var lMessageLength = string.length; - var lNumberOfWords_temp1 = lMessageLength + 8; - var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64; - var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16; - var lWordArray = Array(lNumberOfWords - 1); - var lBytePosition = 0; - var lByteCount = 0; - while (lByteCount < lMessageLength) { - lWordCount = (lByteCount - (lByteCount % 4)) / 4; - lBytePosition = (lByteCount % 4) * 8; - lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition)); - lByteCount++; - } - lWordCount = (lByteCount - (lByteCount % 4)) / 4; - lBytePosition = (lByteCount % 4) * 8; - lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition); - lWordArray[lNumberOfWords - 2] = lMessageLength << 3; - lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29; - return lWordArray; - }; - - function WordToHex(lValue) { - var WordToHexValue = "", WordToHexValue_temp = "", lByte, lCount; - for (lCount = 0; lCount <= 3; lCount++) { - lByte = (lValue >>> (lCount * 8)) & 255; - WordToHexValue_temp = "0" + lByte.toString(16); - WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2); - } - return WordToHexValue; - }; + function l(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return function (r) { + var n = new e(t); + return n.push(r, !0), n.result + } + } - function Utf8Encode(string) { - string = string.replace(/\r\n/g, "\n"); - var utftext = ""; + var h = void 0, p = void 0; + c ? (h = { + zip: d(c.deflateRawSync, {level: i.default.deflate_level}), + zlib: d(c.deflateSync, {level: i.default.deflate_level}), + bzip2: o.default.compressFile + }, p = { + zip: d(c.inflateRawSync), + zlib: d(c.inflateSync), + bzip2: o.default.decompressFile + }) : (h = { + zip: l(n.default.Deflate, {raw: !0, level: i.default.deflate_level}), + zlib: l(n.default.Deflate, {level: i.default.deflate_level}), + bzip2: o.default.compressFile + }, p = {zip: l(n.default.Inflate, {raw: !0}), zlib: l(n.default.Inflate), bzip2: o.default.decompressFile}) + }, {"../compression/bzip2.build.js": 307, "../config": 309, "../enums": 343, "../util": 382, pako: 285}], + 355: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = o(e("./all_packets")), a = o(e("./clone")), s = e("./packetlist"); + + function o(e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); + return t.default = e, t + } - for (var n = 0; n < string.length; n++) { + var u = {List: ((n = s) && n.__esModule ? n : {default: n}).default, clone: a}; + for (var f in i) u[f] = i[f]; + r.default = u + }, {"./all_packets": 352, "./clone": 353, "./packetlist": 360}], + 356: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("../enums")), i = a(e("../util")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } - var c = string.charCodeAt(n); + function s() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + this.tag = n.default.packet.literal, this.format = "utf8", this.date = i.default.normalizeDate(e), this.text = null, this.data = null, this.filename = "msg.txt" + } - if (c < 128) { - utftext += String.fromCharCode(c); + s.prototype.setText = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "utf8"; + this.format = t, this.text = e, this.data = null + }, s.prototype.getText = function () { + if (null !== this.text) return this.text; + var e = i.default.decode_utf8(i.default.Uint8Array_to_str(this.data)); + return this.text = i.default.nativeEOL(e), this.text + }, s.prototype.setBytes = function (e, t) { + this.format = t, this.data = e, this.text = null + }, s.prototype.getBytes = function () { + if (null !== this.data) return this.data; + var e = i.default.canonicalizeEOL(this.text); + return this.data = i.default.str_to_Uint8Array(i.default.encode_utf8(e)), this.data + }, s.prototype.setFilename = function (e) { + this.filename = e + }, s.prototype.getFilename = function () { + return this.filename + }, s.prototype.read = function (e) { + var t = n.default.read(n.default.literal, e[0]), r = e[1]; + this.filename = i.default.decode_utf8(i.default.Uint8Array_to_str(e.subarray(2, 2 + r))), this.date = i.default.readDate(e.subarray(2 + r, 2 + r + 4)); + var a = e.subarray(6 + r, e.length); + this.setBytes(a, t) + }, s.prototype.write = function () { + var e = i.default.str_to_Uint8Array(i.default.encode_utf8(this.filename)), + t = new Uint8Array([e.length]), + r = new Uint8Array([n.default.write(n.default.literal, this.format)]), + a = i.default.writeDate(this.date), s = this.getBytes(); + return i.default.concatUint8Array([r, t, e, a, s]) + }, r.default = s + }, {"../enums": 343, "../util": 382}], + 357: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("../enums"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s() { + this.tag = a.default.packet.marker } - else if ((c > 127) && (c < 2048)) { - utftext += String.fromCharCode((c >> 6) | 192); - utftext += String.fromCharCode((c & 63) | 128); + + s.prototype.read = function (e) { + return 80 === e[0] && 71 === e[1] && 80 === e[2] + }, r.default = s + }, {"../enums": 343}], + 358: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = s(e("../type/keyid")), i = s(e("../enums")), a = s(e("../util")); + + function s(e) { + return e && e.__esModule ? e : {default: e} } - else { - utftext += String.fromCharCode((c >> 12) | 224); - utftext += String.fromCharCode(((c >> 6) & 63) | 128); - utftext += String.fromCharCode((c & 63) | 128); + + function o() { + this.tag = i.default.packet.onePassSignature, this.version = null, this.type = null, this.hashAlgorithm = null, this.publicKeyAlgorithm = null, this.signingKeyId = null, this.flags = null } - } + o.prototype.read = function (e) { + var t = 0; + return this.version = e[t++], this.type = i.default.read(i.default.signature, e[t++]), this.hashAlgorithm = i.default.read(i.default.hash, e[t++]), this.publicKeyAlgorithm = i.default.read(i.default.publicKey, e[t++]), this.signingKeyId = new n.default, this.signingKeyId.read(e.subarray(t, t + 8)), t += 8, this.flags = e[t++], this + }, o.prototype.write = function () { + var e = new Uint8Array([3, i.default.write(i.default.signature, this.type), i.default.write(i.default.hash, this.hashAlgorithm), i.default.write(i.default.publicKey, this.publicKeyAlgorithm)]), + t = new Uint8Array([this.flags]); + return a.default.concatUint8Array([e, this.signingKeyId.write(), t]) + }, o.prototype.postCloneTypeFix = function () { + this.signingKeyId = n.default.fromClone(this.signingKeyId) + }, r.default = o + }, {"../enums": 343, "../type/keyid": 378, "../util": 382}], + 359: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("babel-runtime/helpers/slicedToArray")), i = a(e("../util")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } - return utftext; - }; - - var x = Array(); - var k, AA, BB, CC, DD, a, b, c, d; - var S11 = 7, S12 = 12, S13 = 17, S14 = 22; - var S21 = 5, S22 = 9, S23 = 14, S24 = 20; - var S31 = 4, S32 = 11, S33 = 16, S34 = 23; - var S41 = 6, S42 = 10, S43 = 15, S44 = 21; - - string = Utf8Encode(string); - - x = ConvertToWordArray(string); - - a = 0x67452301; - b = 0xEFCDAB89; - c = 0x98BADCFE; - d = 0x10325476; - - for (k = 0; k < x.length; k += 16) { - AA = a; - BB = b; - CC = c; - DD = d; - a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478); - d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756); - c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB); - b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE); - a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF); - d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A); - c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613); - b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501); - a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8); - d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF); - c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1); - b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE); - a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122); - d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193); - c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E); - b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821); - a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562); - d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340); - c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51); - b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA); - a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D); - d = GG(d, a, b, c, x[k + 10], S22, 0x2441453); - c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681); - b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8); - a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6); - d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6); - c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87); - b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED); - a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905); - d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8); - c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9); - b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A); - a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942); - d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681); - c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122); - b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C); - a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44); - d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9); - c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60); - b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70); - a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6); - d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA); - c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085); - b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05); - a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039); - d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5); - c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8); - b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665); - a = II(a, b, c, d, x[k + 0], S41, 0xF4292244); - d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97); - c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7); - b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039); - a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3); - d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92); - c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D); - b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1); - a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F); - d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0); - c = II(c, d, a, b, x[k + 6], S43, 0xA3014314); - b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1); - a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82); - d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235); - c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB); - b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391); - a = AddUnsigned(a, AA); - b = AddUnsigned(b, BB); - c = AddUnsigned(c, CC); - d = AddUnsigned(d, DD); - } + r.default = { + readSimpleLength: function (e) { + var t = 0, r = void 0, a = e[0]; + a < 192 ? (t = (0, n.default)(e, 1)[0], r = 1) : a < 255 ? (t = (e[0] - 192 << 8) + e[1] + 192, r = 2) : 255 === a && (t = i.default.readNumber(e.subarray(1, 5)), r = 5); + return {len: t, offset: r} + }, writeSimpleLength: function (e) { + return e < 192 ? new Uint8Array([e]) : e > 191 && e < 8384 ? new Uint8Array([192 + (e - 192 >> 8), e - 192 & 255]) : i.default.concatUint8Array([new Uint8Array([255]), i.default.writeNumber(e, 4)]) + }, writeHeader: function (e, t) { + return i.default.concatUint8Array([new Uint8Array([192 | e]), this.writeSimpleLength(t)]) + }, writeOldHeader: function (e, t) { + return t < 256 ? new Uint8Array([128 | e << 2, t]) : t < 65536 ? i.default.concatUint8Array([new Uint8Array([129 | e << 2]), i.default.writeNumber(t, 2)]) : i.default.concatUint8Array([new Uint8Array([130 | e << 2]), i.default.writeNumber(t, 4)]) + }, read: function (e, t, r) { + if (null === e || e.length <= t || e.subarray(t, e.length).length < 2 || 0 == (128 & e[t])) throw new Error("Error during parsing. This message / key probably does not conform to a valid OpenPGP format."); + var n = t, a = -1, s = -1, o = void 0; + s = 0, 0 != (64 & e[n]) && (s = 1); + var u = void 0; + s ? a = 63 & e[n] : (a = (63 & e[n]) >> 2, u = 3 & e[n]), n++; + var f = null, c = -1; + if (s) if (e[n] < 192) o = e[n++]; else if (e[n] >= 192 && e[n] < 224) o = (e[n++] - 192 << 8) + e[n++] + 192; else if (e[n] > 223 && e[n] < 255) { + o = 1 << (31 & e[n++]); + var d = n + o; + f = [e.subarray(n, n + o)]; + for (var l = void 0; ;) { + if (e[d] < 192) { + o += l = e[d++], f.push(e.subarray(d, d + l)), d += l; + break + } + if (e[d] >= 192 && e[d] < 224) { + o += l = (e[d++] - 192 << 8) + e[d++] + 192, f.push(e.subarray(d, d + l)), d += l; + break + } + if (!(e[d] > 223 && e[d] < 255)) { + d++, l = e[d++] << 24 | e[d++] << 16 | e[d++] << 8 | e[d++], f.push(e.subarray(d, d + l)), o += l, d += l; + break + } + o += l = 1 << (31 & e[d++]), f.push(e.subarray(d, d + l)), d += l + } + c = d - n + } else n++, o = e[n++] << 24 | e[n++] << 16 | e[n++] << 8 | e[n++]; else switch (u) { + case 0: + o = e[n++]; + break; + case 1: + o = e[n++] << 8 | e[n++]; + break; + case 2: + o = e[n++] << 24 | e[n++] << 16 | e[n++] << 8 | e[n++]; + break; + default: + o = r + } + return -1 === c && (c = o), null === f ? f = e.subarray(n, n + c) : f instanceof Array && (f = i.default.concatUint8Array(f)), { + tag: a, + packet: f, + offset: n + c + } + } + } + }, {"../util": 382, "babel-runtime/helpers/slicedToArray": 36}], + 360: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = d(e("babel-runtime/regenerator")), a = d(e("babel-runtime/helpers/asyncToGenerator")), + s = function (e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); + return t.default = e, t + }(e("./all_packets")), o = d(e("./packet")), u = d(e("../config")), f = d(e("../enums")), + c = d(e("../util")); + + function d(e) { + return e && e.__esModule ? e : {default: e} + } - var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d); + function l() { + this.length = 0 + } - return temp.toLowerCase(); -} + l.prototype.read = function (e) { + for (var t = 0; t < e.length;) { + var r = o.default.read(e, t, e.length - t); + t = r.offset; + var n = !1; + try { + var i = f.default.read(f.default.packet, r.tag), a = s.newPacketFromTag(i); + this.push(a), n = !0, a.read(r.packet) + } catch (e) { + if (!u.default.tolerant || r.tag === f.default.packet.symmetricallyEncrypted || r.tag === f.default.packet.literal || r.tag === f.default.packet.compressed) throw e; + c.default.print_debug_error(e), n && this.pop() + } + } + }, l.prototype.write = function () { + for (var e = [], t = 0; t < this.length; t++) { + var r = this[t].write(); + e.push(o.default.writeHeader(this[t].tag, r.length)), e.push(r) + } + return c.default.concatUint8Array(e) + }, l.prototype.push = function (e) { + e && (e.packets = e.packets || new l, this[this.length] = e, this.length++) + }, l.prototype.pop = function () { + if (0 !== this.length) { + var e = this[this.length - 1]; + return delete this[this.length - 1], this.length--, e + } + }, l.prototype.filter = function (e) { + for (var t = new l, r = 0; r < this.length; r++) e(this[r], r, this) && t.push(this[r]); + return t + }, l.prototype.filterByTag = function () { + for (var e = new l, t = function (e) { + return function (t) { + return e === t + } + }, r = arguments.length, n = Array(r), i = 0; i < r; i++) n[i] = arguments[i]; + for (var a = 0; a < this.length; a++) n.some(t(this[a].tag)) && e.push(this[a]); + return e + }, l.prototype.forEach = function (e) { + for (var t = 0; t < this.length; t++) e(this[t], t, this) + }, l.prototype.map = function (e) { + for (var t = [], r = 0; r < this.length; r++) t.push(e(this[r], r, this)); + return t + }, l.prototype.some = (n = (0, a.default)(i.default.mark(function e(t) { + var r; + return i.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + r = 0; + case 1: + if (!(r < this.length)) { + e.next = 9; + break + } + return e.next = 4, t(this[r], r, this); + case 4: + if (!e.sent) { + e.next = 6; + break + } + return e.abrupt("return", !0); + case 6: + r++, e.next = 1; + break; + case 9: + return e.abrupt("return", !1); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }), l.prototype.every = function (e) { + for (var t = 0; t < this.length; t++) if (!e(this[t], t, this)) return !1; + return !0 + }, l.prototype.findPacket = function (e) { + var t = this.filterByTag(e); + if (t.length) return t[0]; + for (var r = null, n = 0; n < this.length; n++) if (this[n].packets.length && (r = this[n].packets.findPacket(e))) return r; + return null + }, l.prototype.indexOfTag = function () { + for (var e = [], t = function (e) { + return function (t) { + return e === t + } + }, r = arguments.length, n = Array(r), i = 0; i < r; i++) n[i] = arguments[i]; + for (var a = 0; a < this.length; a++) n.some(t(this[a].tag)) && e.push(a); + return e + }, l.prototype.slice = function (e, t) { + t || (t = this.length); + for (var r = new l, n = e; n < t; n++) r.push(this[n]); + return r + }, l.prototype.concat = function (e) { + if (e) for (var t = 0; t < e.length; t++) this.push(e[t]); + return this + }, l.fromStructuredClone = function (e) { + for (var t = new l, r = 0; r < e.length; r++) t.push(s.fromStructuredClone(e[r])), 0 !== t[r].packets.length ? t[r].packets = this.fromStructuredClone(t[r].packets) : t[r].packets = new l; + return t + }, r.default = l + }, { + "../config": 309, + "../enums": 343, + "../util": 382, + "./all_packets": 352, + "./packet": 359, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 361: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = f(e("../type/keyid")), i = f(e("../type/mpi")), a = f(e("../config")), s = f(e("../crypto")), + o = f(e("../enums")), u = f(e("../util")); + + function f(e) { + return e && e.__esModule ? e : {default: e} + } -// Depends on jsbn.js and rng.js -// Version 1.1: support utf-8 encoding in pkcs1pad2 -// convert a (hex) string to a bignum object + function c() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + this.tag = o.default.packet.publicKey, this.version = a.default.aead_protect && 4 === a.default.aead_protect_version ? 5 : 4, this.created = u.default.normalizeDate(e), this.params = [], this.expirationTimeV3 = 0, this.fingerprint = null, this.keyid = null + } + c.prototype.read = function (e) { + var t = 0; + if (this.version = e[t++], 3 === this.version || 4 === this.version || 5 === this.version) { + this.created = u.default.readDate(e.subarray(t, t + 4)), t += 4, 3 === this.version && (this.expirationTimeV3 = u.default.readNumber(e.subarray(t, t + 2)), t += 2), this.algorithm = o.default.read(o.default.publicKey, e[t++]); + var r = o.default.write(o.default.publicKey, this.algorithm); + 5 === this.version && (t += 4); + var n = s.default.getPubKeyParamTypes(r); + this.params = s.default.constructParams(n); + for (var i = 0; i < n.length && t < e.length; i++) if ((t += this.params[i].read(e.subarray(t, e.length))) > e.length) throw new Error("Error reading MPI @:" + t); + return t + } + throw new Error("Version " + this.version + " of the key packet is unsupported.") + }, c.prototype.readPublicKey = c.prototype.read, c.prototype.write = function () { + var e = []; + e.push(new Uint8Array([this.version])), e.push(u.default.writeDate(this.created)), 3 === this.version && e.push(u.default.writeNumber(this.expirationTimeV3, 2)); + var t = o.default.write(o.default.publicKey, this.algorithm); + e.push(new Uint8Array([t])); + var r = s.default.getPubKeyParamTypes(t).length, + n = u.default.concatUint8Array(this.params.slice(0, r).map(function (e) { + return e.write() + })); + return 5 === this.version && e.push(u.default.writeNumber(n.length, 4)), e.push(n), u.default.concatUint8Array(e) + }, c.prototype.writePublicKey = c.prototype.write, c.prototype.writeOld = function () { + var e = this.writePublicKey(); + return u.default.concatUint8Array([new Uint8Array([153]), u.default.writeNumber(e.length, 2), e]) + }, c.prototype.getKeyId = function () { + if (this.keyid) return this.keyid; + if (this.keyid = new n.default, 5 === this.version) this.keyid.read(u.default.hex_to_Uint8Array(this.getFingerprint()).subarray(0, 8)); else if (4 === this.version) this.keyid.read(u.default.hex_to_Uint8Array(this.getFingerprint()).subarray(12, 20)); else if (3 === this.version) { + var e = this.params[0].write(); + this.keyid.read(e.subarray(e.length - 8, e.length)) + } + return this.keyid + }, c.prototype.getFingerprintBytes = function () { + if (this.fingerprint) return this.fingerprint; + var e = void 0; + if (5 === this.version) { + var t = this.writePublicKey(); + e = u.default.concatUint8Array([new Uint8Array([154]), u.default.writeNumber(t.length, 4), t]), this.fingerprint = s.default.hash.sha256(e) + } else if (4 === this.version) e = this.writeOld(), this.fingerprint = s.default.hash.sha1(e); else if (3 === this.version) { + var r = o.default.write(o.default.publicKey, this.algorithm), + n = s.default.getPubKeyParamTypes(r).length; + e = ""; + for (var i = 0; i < n; i++) e += this.params[i].toString(); + this.fingerprint = s.default.hash.md5(u.default.str_to_Uint8Array(e)) + } + return this.fingerprint + }, c.prototype.getFingerprint = function () { + return u.default.Uint8Array_to_hex(this.getFingerprintBytes()) + }, c.prototype.getAlgorithmInfo = function () { + var e = {}; + return e.algorithm = this.algorithm, this.params[0] instanceof i.default ? e.bits = 8 * this.params[0].byteLength() : e.curve = this.params[0].getName(), e + }, c.prototype.postCloneTypeFix = function () { + for (var e = o.default.write(o.default.publicKey, this.algorithm), t = s.default.getPubKeyParamTypes(e), r = 0; r < t.length; r++) { + var i = this.params[r]; + this.params[r] = t[r].fromClone(i) + } + this.keyid && (this.keyid = n.default.fromClone(this.keyid)) + }, r.default = c + }, { + "../config": 309, + "../crypto": 324, + "../enums": 343, + "../type/keyid": 378, + "../type/mpi": 379, + "../util": 382 + }], + 362: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = l(e("babel-runtime/regenerator")), s = l(e("babel-runtime/helpers/asyncToGenerator")), + o = (l(e("../type/ecdh_symkey")), l(e("../type/keyid"))), u = l(e("../type/mpi")), + f = l(e("../crypto")), c = l(e("../enums")), d = l(e("../util")); + + function l(e) { + return e && e.__esModule ? e : {default: e} + } -function parseBigInt(str, r) { - return new BigInteger(str, r); -} + function h() { + this.tag = c.default.packet.publicKeyEncryptedSessionKey, this.version = 3, this.publicKeyId = new o.default, this.sessionKey = null, this.encrypted = [] + } -function linebrk(s, n) { - var ret = ""; - var i = 0; - while (i + n < s.length) { - ret += s.substring(i, i + n) + "\n"; - i += n; - } - return ret + s.substring(i, s.length); -} + h.prototype.read = function (e) { + this.version = e[0], this.publicKeyId.read(e.subarray(1, e.length)), this.publicKeyAlgorithm = c.default.read(c.default.publicKey, e[9]); + var t = 10, r = c.default.write(c.default.publicKey, this.publicKeyAlgorithm), + n = f.default.getEncSessionKeyParamTypes(r); + this.encrypted = f.default.constructParams(n); + for (var i = 0; i < n.length; i++) t += this.encrypted[i].read(e.subarray(t, e.length)) + }, h.prototype.write = function () { + for (var e = [new Uint8Array([this.version]), this.publicKeyId.write(), new Uint8Array([c.default.write(c.default.publicKey, this.publicKeyAlgorithm)])], t = 0; t < this.encrypted.length; t++) e.push(this.encrypted[t].write()); + return d.default.concatUint8Array(e) + }, h.prototype.encrypt = (n = (0, s.default)(a.default.mark(function e(t) { + var r, n, i, s; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (r = String.fromCharCode(c.default.write(c.default.symmetric, this.sessionKeyAlgorithm)), r += d.default.Uint8Array_to_str(this.sessionKey), n = d.default.calc_checksum(this.sessionKey), r += d.default.Uint8Array_to_str(d.default.writeNumber(n, 2)), i = void 0, (s = c.default.write(c.default.publicKey, this.publicKeyAlgorithm)) !== c.default.publicKey.ecdh) { + e.next = 10; + break + } + i = new u.default(f.default.pkcs5.encode(r)), e.next = 15; + break; + case 10: + return e.t0 = u.default, e.next = 13, f.default.pkcs1.eme.encode(r, t.params[0].byteLength()); + case 13: + e.t1 = e.sent, i = new e.t0(e.t1); + case 15: + return e.next = 17, f.default.publicKeyEncrypt(s, t.params, i, t.getFingerprintBytes()); + case 17: + return this.encrypted = e.sent, e.abrupt("return", !0); + case 19: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }), h.prototype.decrypt = (i = (0, s.default)(a.default.mark(function e(t) { + var r, n, i, s; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = c.default.write(c.default.publicKey, this.publicKeyAlgorithm), e.next = 3, f.default.publicKeyDecrypt(r, t.params, this.encrypted, t.getFingerprintBytes()); + case 3: + if (n = e.sent, i = void 0, s = void 0, r === c.default.publicKey.ecdh ? (s = f.default.pkcs5.decode(n.toString()), i = d.default.readNumber(d.default.str_to_Uint8Array(s.substr(s.length - 2)))) : (s = f.default.pkcs1.eme.decode(n.toString()), i = d.default.readNumber(n.toUint8Array().slice(n.byteLength() - 2))), t = d.default.str_to_Uint8Array(s.substring(1, s.length - 2)), i === d.default.calc_checksum(t)) { + e.next = 12; + break + } + throw new Error("Checksum mismatch"); + case 12: + this.sessionKey = t, this.sessionKeyAlgorithm = c.default.read(c.default.symmetric, s.charCodeAt(0)); + case 14: + return e.abrupt("return", !0); + case 15: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return i.apply(this, arguments) + }), h.prototype.postCloneTypeFix = function () { + this.publicKeyId = o.default.fromClone(this.publicKeyId); + for (var e = c.default.write(c.default.publicKey, this.publicKeyAlgorithm), t = f.default.getEncSessionKeyParamTypes(e), r = 0; r < this.encrypted.length; r++) this.encrypted[r] = t[r].fromClone(this.encrypted[r]) + }, r.default = h + }, { + "../crypto": 324, + "../enums": 343, + "../type/ecdh_symkey": 376, + "../type/keyid": 378, + "../type/mpi": 379, + "../util": 382, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 363: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("./public_key")), i = a(e("../enums")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } -function byte2Hex(b) { - if (b < 0x10) return "0" + b.toString(16); - else return b.toString(16); -} + function s() { + n.default.call(this), this.tag = i.default.packet.publicSubkey + } -// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint + s.prototype = new n.default, s.prototype.constructor = s, r.default = s + }, {"../enums": 343, "./public_key": 361}], + 364: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = h(e("babel-runtime/regenerator")), s = h(e("babel-runtime/helpers/asyncToGenerator")), + o = h(e("./public_key")), u = h(e("../type/keyid.js")), f = h(e("../type/s2k")), c = h(e("../crypto")), + d = h(e("../enums")), l = h(e("../util")); + + function h(e) { + return e && e.__esModule ? e : {default: e} + } + function p() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + o.default.call(this, e), this.tag = d.default.packet.secretKey, this.encrypted = null, this.isDecrypted = !1 + } -function pkcs1pad2(s, n) { - if (n < s.length + 11) { // TODO: fix for utf-8 - //alert("Message too long for RSA (n=" + n + ", l=" + s.length + ")"); - //return null; - throw "Message too long for RSA (n=" + n + ", l=" + s.length + ")"; - } - var ba = new Array(); - var i = s.length - 1; - while (i >= 0 && n > 0) { - var c = s.charCodeAt(i--); - if (c < 128) { // encode using utf-8 - ba[--n] = c; - } - else if ((c > 127) && (c < 2048)) { - ba[--n] = (c & 63) | 128; - ba[--n] = (c >> 6) | 192; - } - else { - ba[--n] = (c & 63) | 128; - ba[--n] = ((c >> 6) & 63) | 128; - ba[--n] = (c >> 12) | 224; - } - } - ba[--n] = 0; - var rng = new SecureRandom(); - var x = new Array(); - while (n > 2) { // random non-zero pad - x[0] = 0; - while (x[0] == 0) rng.nextBytes(x); - ba[--n] = x[0]; - } - ba[--n] = 2; - ba[--n] = 0; - return new BigInteger(ba); -} + function y(e) { + return "sha1" === e ? c.default.hash.sha1 : function (e) { + return l.default.writeNumber(l.default.calc_checksum(e), 2) + } + } -// "empty" RSA key constructor + function b(e, t, r) { + if (e) { + var n = function (e) { + return "sha1" === e ? 20 : 2 + }(e), i = y(e), a = l.default.Uint8Array_to_str(t.subarray(t.length - n, t.length)); + if (t = t.subarray(0, t.length - n), l.default.Uint8Array_to_str(i(t)) !== a) throw new Error("Incorrect key passphrase") + } + for (var s = d.default.write(d.default.publicKey, r), o = c.default.getPrivKeyParamTypes(s), u = c.default.constructParams(o), f = 0, h = 0; h < o.length && f < t.length; h++) if ((f += u[h].read(t.subarray(f, t.length))) > t.length) throw new Error("Error reading param @:" + f); + return u + } + function m(e, t, r) { + for (var n = [], i = d.default.write(d.default.publicKey, t), a = c.default.getPubKeyParamTypes(i).length; a < r.length; a++) n.push(r[a].write()); + var s = l.default.concatUint8Array(n); + if (e) { + var o = y(e)(s); + return l.default.concatUint8Array([s, o]) + } + return s + } -function RSAKey() { - this.n = null; - this.e = 0; - this.d = null; - this.p = null; - this.q = null; - this.dmp1 = null; - this.dmq1 = null; - this.coeff = null; -} + function g(e, t, r) { + return e.produce_key(t, c.default.cipher[r].keySize) + } -// Set the public key fields N and e from hex strings + p.prototype = new o.default, p.prototype.constructor = p, p.prototype.read = function (e) { + var t = this.readPublicKey(e); + if ((e = e.subarray(t, e.length))[0]) this.encrypted = e; else { + var r = b("mod", e.subarray(1, e.length), this.algorithm); + this.params = this.params.concat(r), this.isDecrypted = !0 + } + }, p.prototype.write = function () { + var e = [this.writePublicKey()]; + return this.encrypted ? e.push(this.encrypted) : (e.push(new Uint8Array([0])), e.push(m("mod", this.algorithm, this.params))), l.default.concatUint8Array(e) + }, p.prototype.encrypt = (n = (0, s.default)(a.default.mark(function e(t) { + var r, n, i, s, o, u, h, p, y, b, v, _, w; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!this.isDecrypted || t) { + e.next = 5; + break + } + return this.encrypted = null, e.abrupt("return", !1); + case 5: + if (t) { + e.next = 7; + break + } + throw new Error("The key must be decrypted before removing passphrase protection."); + case 7: + return r = new f.default, e.next = 10, c.default.random.getRandomBytes(8); + case 10: + return r.salt = e.sent, n = "aes256", i = 5 === this.version ? null : "sha1", s = m(i, this.algorithm, this.params), o = g(r, t, n), u = c.default.cipher[n].blockSize, e.next = 18, c.default.random.getRandomBytes(u); + case 18: + if (h = e.sent, p = void 0, 5 !== this.version) { + e.next = 36; + break + } + return y = "eax", b = l.default.concatUint8Array([new Uint8Array([d.default.write(d.default.symmetric, n), d.default.write(d.default.aead, y)]), r.write(), h]), (p = [new Uint8Array([253, b.length])]).push(b), v = c.default[y], e.next = 28, v(n, o); + case 28: + return _ = e.sent, e.next = 31, _.encrypt(s, h.subarray(0, v.ivLength), new Uint8Array); + case 31: + w = e.sent, p.push(l.default.writeNumber(w.length, 4)), p.push(w), e.next = 40; + break; + case 36: + (p = [new Uint8Array([254, d.default.write(d.default.symmetric, n)])]).push(r.write()), p.push(h), p.push(c.default.cfb.normalEncrypt(n, o, s, h)); + case 40: + return this.encrypted = l.default.concatUint8Array(p), e.abrupt("return", !0); + case 42: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }), p.prototype.decrypt = (i = (0, s.default)(a.default.mark(function e(t) { + var r, n, i, s, o, u, l, h, p, y, m, v; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (!this.isDecrypted) { + e.next = 2; + break + } + throw new Error("Key packet is already decrypted."); + case 2: + if (r = 0, n = void 0, i = void 0, s = void 0, o = this.encrypted[r++], 5 === this.version && r++, 255 === o || 254 === o || 253 === o ? (n = this.encrypted[r++], n = d.default.read(d.default.symmetric, n), 253 === o && (i = this.encrypted[r++], i = d.default.read(d.default.aead, i)), u = new f.default, r += u.read(this.encrypted.subarray(r, this.encrypted.length)), s = g(u, t, n)) : (n = o, n = d.default.read(d.default.symmetric, n), s = c.default.hash.md5(t)), l = this.encrypted.subarray(r, r + c.default.cipher[n].blockSize), r += l.length, 5 === this.version && (r += 4), h = this.encrypted.subarray(r, this.encrypted.length), p = void 0, !i) { + e.next = 31; + break + } + return y = c.default[i], e.prev = 16, e.next = 19, y(n, s); + case 19: + return m = e.sent, e.next = 22, m.decrypt(h, l.subarray(0, y.ivLength), new Uint8Array); + case 22: + p = e.sent, e.next = 29; + break; + case 25: + if (e.prev = 25, e.t0 = e.catch(16), "Authentication tag mismatch" !== e.t0.message) { + e.next = 29; + break + } + throw new Error("Incorrect key passphrase: " + e.t0.message); + case 29: + e.next = 32; + break; + case 31: + p = c.default.cfb.normalDecrypt(n, s, h, l); + case 32: + return v = b(253 === o ? null : 254 === o ? "sha1" : "mod", p, this.algorithm), this.params = this.params.concat(v), this.isDecrypted = !0, this.encrypted = null, e.abrupt("return", !0); + case 38: + case"end": + return e.stop() + } + }, e, this, [[16, 25]]) + })), function (e) { + return i.apply(this, arguments) + }), p.prototype.generate = function (e, t) { + var r = this, n = d.default.write(d.default.publicKey, r.algorithm); + return c.default.generateParams(n, e, t).then(function (e) { + r.params = e, r.isDecrypted = !0 + }) + }, p.prototype.clearPrivateParams = function () { + if (!this.encrypted) throw new Error("If secret key is not encrypted, clearing private params is irreversible."); + var e = d.default.write(d.default.publicKey, this.algorithm); + this.params = this.params.slice(0, c.default.getPubKeyParamTypes(e).length), this.isDecrypted = !1 + }, p.prototype.postCloneTypeFix = function () { + for (var e = d.default.write(d.default.publicKey, this.algorithm), t = [].concat(c.default.getPubKeyParamTypes(e), c.default.getPrivKeyParamTypes(e)), r = 0; r < this.params.length; r++) { + var n = this.params[r]; + this.params[r] = t[r].fromClone(n) + } + this.keyid && (this.keyid = u.default.fromClone(this.keyid)) + }, r.default = p + }, { + "../crypto": 324, + "../enums": 343, + "../type/keyid.js": 378, + "../type/s2k": 381, + "../util": 382, + "./public_key": 361, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 365: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("./secret_key")), i = a(e("../enums")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } + function s() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + n.default.call(this, e), this.tag = i.default.packet.secretSubkey + } -function RSASetPublic(N, E) { - if (N != null && E != null && N.length > 0 && E.length > 0) { - this.n = parseBigInt(N, 16); - this.e = parseInt(E, 16); - } - else alert("Invalid RSA public key"); -} - -// Perform raw public operation on "x": return x^e (mod n) - - -function RSADoPublic(x) { - return x.modPowInt(this.e, this.n); -} - -// Return the PKCS#1 RSA encryption of "text" as an even-length hex string - - -function RSAEncrypt(text) { - var m = pkcs1pad2(text, (this.n.bitLength() + 7) >> 3); - if (m == null) return null; - var c = this.doPublic(m); - if (c == null) return null; - var h = c.toString(16); - if ((h.length & 1) == 0) return h; - else return "0" + h; -} - -// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string -//function RSAEncryptB64(text) { -// var h = this.encrypt(text); -// if(h) return hex2b64(h); else return null; -//} -// protected -RSAKey.prototype.doPublic = RSADoPublic; - -// public -RSAKey.prototype.setPublic = RSASetPublic; -RSAKey.prototype.encrypt = RSAEncrypt; - -// Version 1.1: support utf-8 decoding in pkcs1unpad2 -// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext - -function pkcs1unpad2(d, n) { - var b = d.toByteArray(); - var i = 0; - while (i < b.length && b[i] == 0) ++i; - if (b.length - i != n - 1 || b[i] != 2) return null; - ++i; - while (b[i] != 0) - if (++i >= b.length) return null; - var ret = ""; - while (++i < b.length) { - var c = b[i] & 255; - if (c < 128) { // utf-8 decode - ret += String.fromCharCode(c); - } - else if ((c > 191) && (c < 224)) { - ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63)); - ++i; - } - else { - ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63)); - i += 2; - } - } - return ret; -} - -// Set the private key fields N, e, and d from hex strings -function RSASetPrivate(N, E, D) { - if (N != null && E != null && N.length > 0 && E.length > 0) { - this.n = parseBigInt(N, 16); - this.e = parseInt(E, 16); - this.d = parseBigInt(D, 16); - } - else alert("Invalid RSA private key"); -} - -// Set the private key fields N, e, d and CRT params from hex strings -function RSASetPrivateEx(N, E, D, P, Q, DP, DQ, C) { - if (N != null && E != null && N.length > 0 && E.length > 0) { - this.n = parseBigInt(N, 16); - this.e = parseInt(E, 16); - this.d = parseBigInt(D, 16); - this.p = parseBigInt(P, 16); - this.q = parseBigInt(Q, 16); - this.dmp1 = parseBigInt(DP, 16); - this.dmq1 = parseBigInt(DQ, 16); - this.coeff = parseBigInt(C, 16); - } - else alert("Invalid RSA private key"); -} - -// Generate a new random private key B bits long, using public expt E -function RSAGenerate(B, E) { - var rng = new SeededRandom(); - var qs = B >> 1; - this.e = parseInt(E, 16); - var ee = new BigInteger(E, 16); - for (; ;) { - for (; ;) { - this.p = new BigInteger(B - qs, 1, rng); - if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) break; - } - for (; ;) { - this.q = new BigInteger(qs, 1, rng); - if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) break; - } - if (this.p.compareTo(this.q) <= 0) { - var t = this.p; - this.p = this.q; - this.q = t; - } - var p1 = this.p.subtract(BigInteger.ONE); - var q1 = this.q.subtract(BigInteger.ONE); - var phi = p1.multiply(q1); - if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) { - this.n = this.p.multiply(this.q); - this.d = ee.modInverse(phi); - this.dmp1 = this.d.mod(p1); - this.dmq1 = this.d.mod(q1); - this.coeff = this.q.modInverse(this.p); - break; - } - } -} - -// Perform raw private operation on "x": return x^d (mod n) -function RSADoPrivate(x) { - if (this.p == null || this.q == null) return x.modPow(this.d, this.n); - // TODO: re-calculate any missing CRT params - var xp = x.mod(this.p).modPow(this.dmp1, this.p); - var xq = x.mod(this.q).modPow(this.dmq1, this.q); - while (xp.compareTo(xq) < 0) - xp = xp.add(this.p); - return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq); -} - -// Return the PKCS#1 RSA decryption of "ctext". -// "ctext" is an even-length hex string and the output is a plain string. -function RSADecrypt(ctext) { - var c = parseBigInt(ctext, 16); - var m = this.doPrivate(c); - if (m == null) return null; - return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3); -} - -// protected -RSAKey.prototype.doPrivate = RSADoPrivate; - -// public -RSAKey.prototype.setPrivate = RSASetPrivate; -RSAKey.prototype.setPrivateEx = RSASetPrivateEx; -RSAKey.prototype.generate = RSAGenerate; -RSAKey.prototype.decrypt = RSADecrypt; - - -// -// rsa-sign.js - adding signing functions to RSAKey class. -// -// -// version: 1.0 (2010-Jun-03) -// -// Copyright (c) 2010 Kenji Urushima (kenji.urushima@gmail.com) -// -// This software is licensed under the terms of the MIT License. -// http://www.opensource.org/licenses/mit-license.php -// -// The above copyright and license notice shall be -// included in all copies or substantial portions of the Software. -// -// Depends on: -// function sha1.hex(s) of sha1.js -// jsbn.js -// jsbn2.js -// rsa.js -// rsa2.js -// -// keysize / pmstrlen -// 512 / 128 -// 1024 / 256 -// 2048 / 512 -// 4096 / 1024 -// As for _RSASGIN_DIHEAD values for each hash algorithm, see PKCS#1 v2.1 spec (p38). -var _RSASIGN_DIHEAD = []; -_RSASIGN_DIHEAD['sha1'] = "3021300906052b0e03021a05000414"; -_RSASIGN_DIHEAD['sha256'] = "3031300d060960864801650304020105000420"; -//_RSASIGN_DIHEAD['md2'] = "3020300c06082a864886f70d020205000410"; -//_RSASIGN_DIHEAD['md5'] = "3020300c06082a864886f70d020505000410"; -//_RSASIGN_DIHEAD['sha384'] = "3041300d060960864801650304020205000430"; -//_RSASIGN_DIHEAD['sha512'] = "3051300d060960864801650304020305000440"; -var _RSASIGN_HASHHEXFUNC = []; -_RSASIGN_HASHHEXFUNC['sha1'] = sha1.hex; -_RSASIGN_HASHHEXFUNC['sha256'] = sha256.hex; - -// ======================================================================== -// Signature Generation -// ======================================================================== - -function _rsasign_getHexPaddedDigestInfoForString(s, keySize, hashAlg) { - var pmStrLen = keySize / 4; - var hashFunc = _RSASIGN_HASHHEXFUNC[hashAlg]; - var sHashHex = hashFunc(s); - - var sHead = "0001"; - var sTail = "00" + _RSASIGN_DIHEAD[hashAlg] + sHashHex; - var sMid = ""; - var fLen = pmStrLen - sHead.length - sTail.length; - for (var i = 0; i < fLen; i += 2) { - sMid += "ff"; - } - sPaddedMessageHex = sHead + sMid + sTail; - return sPaddedMessageHex; -} - -function _rsasign_signString(s, hashAlg) { - var hPM = _rsasign_getHexPaddedDigestInfoForString(s, this.n.bitLength(), hashAlg); - var biPaddedMessage = parseBigInt(hPM, 16); - var biSign = this.doPrivate(biPaddedMessage); - var hexSign = biSign.toString(16); - return hexSign; -} - -function _rsasign_signStringWithSHA1(s) { - var hPM = _rsasign_getHexPaddedDigestInfoForString(s, this.n.bitLength(), 'sha1'); - var biPaddedMessage = parseBigInt(hPM, 16); - var biSign = this.doPrivate(biPaddedMessage); - var hexSign = biSign.toString(16); - return hexSign; -} - -function _rsasign_signStringWithSHA256(s) { - var hPM = _rsasign_getHexPaddedDigestInfoForString(s, this.n.bitLength(), 'sha256'); - var biPaddedMessage = parseBigInt(hPM, 16); - var biSign = this.doPrivate(biPaddedMessage); - var hexSign = biSign.toString(16); - return hexSign; -} - -// ======================================================================== -// Signature Verification -// ======================================================================== - -function _rsasign_getDecryptSignatureBI(biSig, hN, hE) { - var rsa = new RSAKey(); - rsa.setPublic(hN, hE); - var biDecryptedSig = rsa.doPublic(biSig); - return biDecryptedSig; -} - -function _rsasign_getHexDigestInfoFromSig(biSig, hN, hE) { - var biDecryptedSig = _rsasign_getDecryptSignatureBI(biSig, hN, hE); - var hDigestInfo = biDecryptedSig.toString(16).replace(/^1f+00/, ''); - return hDigestInfo; -} - -function _rsasign_getAlgNameAndHashFromHexDisgestInfo(hDigestInfo) { - for (var algName in _RSASIGN_DIHEAD) { - var head = _RSASIGN_DIHEAD[algName]; - var len = head.length; - if (hDigestInfo.substring(0, len) == head) { - var a = [algName, hDigestInfo.substring(len)]; - return a; - } - } - return []; -} - -function _rsasign_verifySignatureWithArgs(sMsg, biSig, hN, hE) { - var hDigestInfo = _rsasign_getHexDigestInfoFromSig(biSig, hN, hE); - var digestInfoAry = _rsasign_getAlgNameAndHashFromHexDisgestInfo(hDigestInfo); - if (digestInfoAry.length == 0) return false; - var algName = digestInfoAry[0]; - var diHashValue = digestInfoAry[1]; - var ff = _RSASIGN_HASHHEXFUNC[algName]; - var msgHashValue = ff(sMsg); - return (diHashValue == msgHashValue); -} - -function _rsasign_verifyHexSignatureForMessage(hSig, sMsg) { - var biSig = parseBigInt(hSig, 16); - var result = _rsasign_verifySignatureWithArgs(sMsg, biSig, this.n.toString(16), this.e.toString(16)); - return result; -} - -function _rsasign_verifyString(sMsg, hSig) { - hSig = hSig.replace(/[ \n]+/g, ""); - var biSig = parseBigInt(hSig, 16); - var biDecryptedSig = this.doPublic(biSig); - var hDigestInfo = biDecryptedSig.toString(16).replace(/^1f+00/, ''); - var digestInfoAry = _rsasign_getAlgNameAndHashFromHexDisgestInfo(hDigestInfo); - - if (digestInfoAry.length == 0) return false; - var algName = digestInfoAry[0]; - var diHashValue = digestInfoAry[1]; - var ff = _RSASIGN_HASHHEXFUNC[algName]; - var msgHashValue = ff(sMsg); - return (diHashValue == msgHashValue); -} - -RSAKey.prototype.signString = _rsasign_signString; -RSAKey.prototype.signStringWithSHA1 = _rsasign_signStringWithSHA1; -RSAKey.prototype.signStringWithSHA256 = _rsasign_signStringWithSHA256; - -RSAKey.prototype.verifyString = _rsasign_verifyString; -RSAKey.prototype.verifyHexSignatureForMessage = _rsasign_verifyHexSignatureForMessage; - -/* - * jsaes version 0.1 - Copyright 2006 B. Poettering - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307 USA - */ - -// later modifications by wwwtyro@github - -var aes = (function () { - - var my = {}; - - my.Sbox = new Array(99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22); - - my.ShiftRowTab = new Array(0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11); - - my.Init = function () { - my.Sbox_Inv = new Array(256); - for (var i = 0; i < 256; i++) - my.Sbox_Inv[my.Sbox[i]] = i; - - my.ShiftRowTab_Inv = new Array(16); - for (var i = 0; i < 16; i++) - my.ShiftRowTab_Inv[my.ShiftRowTab[i]] = i; - - my.xtime = new Array(256); - for (var i = 0; i < 128; i++) { - my.xtime[i] = i << 1; - my.xtime[128 + i] = (i << 1) ^ 0x1b; - } - } + s.prototype = new n.default, s.prototype.constructor = s, r.default = s + }, {"../enums": 343, "./secret_key": 364}], + 366: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = h(e("babel-runtime/regenerator")), s = h(e("babel-runtime/helpers/asyncToGenerator")), + o = h(e("./packet")), u = h(e("../type/keyid.js")), f = h(e("../type/mpi.js")), c = h(e("../crypto")), + d = h(e("../enums")), l = h(e("../util")); + + function h(e) { + return e && e.__esModule ? e : {default: e} + } - my.Done = function () { - delete my.Sbox_Inv; - delete my.ShiftRowTab_Inv; - delete my.xtime; - } + function p() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date; + this.tag = d.default.packet.signature, this.version = 4, this.signatureType = null, this.hashAlgorithm = null, this.publicKeyAlgorithm = null, this.signatureData = null, this.unhashedSubpackets = null, this.signedHashValue = null, this.created = l.default.normalizeDate(e), this.signatureExpirationTime = null, this.signatureNeverExpires = !0, this.exportable = null, this.trustLevel = null, this.trustAmount = null, this.regularExpression = null, this.revocable = null, this.keyExpirationTime = null, this.keyNeverExpires = null, this.preferredSymmetricAlgorithms = null, this.revocationKeyClass = null, this.revocationKeyAlgorithm = null, this.revocationKeyFingerprint = null, this.issuerKeyId = new u.default, this.notation = null, this.preferredHashAlgorithms = null, this.preferredCompressionAlgorithms = null, this.keyServerPreferences = null, this.preferredKeyServer = null, this.isPrimaryUserID = null, this.policyURI = null, this.keyFlags = null, this.signersUserId = null, this.reasonForRevocationFlag = null, this.reasonForRevocationString = null, this.features = null, this.signatureTargetPublicKeyAlgorithm = null, this.signatureTargetHashAlgorithm = null, this.signatureTargetHash = null, this.embeddedSignature = null, this.issuerKeyVersion = null, this.issuerFingerprint = null, this.preferredAeadAlgorithms = null, this.verified = null, this.revoked = null + } - my.ExpandKey = function (key) { - var kl = key.length, - ks, Rcon = 1; - switch (kl) { - case 16: - ks = 16 * (10 + 1); - break; - case 24: - ks = 16 * (12 + 1); - break; - case 32: - ks = 16 * (14 + 1); - break; - default: - alert("my.ExpandKey: Only key lengths of 16, 24 or 32 bytes allowed!"); - } - for (var i = kl; i < ks; i += 4) { - var temp = key.slice(i - 4, i); - if (i % kl == 0) { - temp = new Array(my.Sbox[temp[1]] ^ Rcon, my.Sbox[temp[2]], my.Sbox[temp[3]], my.Sbox[temp[0]]); - if ((Rcon <<= 1) >= 256) Rcon ^= 0x11b; - } - else if ((kl > 24) && (i % kl == 16)) temp = new Array(my.Sbox[temp[0]], my.Sbox[temp[1]], my.Sbox[temp[2]], my.Sbox[temp[3]]); - for (var j = 0; j < 4; j++) - key[i + j] = key[i + j - kl] ^ temp[j]; - } - } + function y(e, t) { + var r = []; + return r.push(o.default.writeSimpleLength(t.length + 1)), r.push(new Uint8Array([e])), r.push(t), l.default.concatUint8Array(r) + } - my.Encrypt = function (block, key) { - var l = key.length; - my.AddRoundKey(block, key.slice(0, 16)); - for (var i = 16; i < l - 16; i += 16) { - my.SubBytes(block, my.Sbox); - my.ShiftRows(block, my.ShiftRowTab); - my.MixColumns(block); - my.AddRoundKey(block, key.slice(i, i + 16)); - } - my.SubBytes(block, my.Sbox); - my.ShiftRows(block, my.ShiftRowTab); - my.AddRoundKey(block, key.slice(i, l)); - } + p.prototype.read = function (e) { + var t = 0; - my.Decrypt = function (block, key) { - var l = key.length; - my.AddRoundKey(block, key.slice(l - 16, l)); - my.ShiftRows(block, my.ShiftRowTab_Inv); - my.SubBytes(block, my.Sbox_Inv); - for (var i = l - 32; i >= 16; i -= 16) { - my.AddRoundKey(block, key.slice(i, i + 16)); - my.MixColumns_Inv(block); - my.ShiftRows(block, my.ShiftRowTab_Inv); - my.SubBytes(block, my.Sbox_Inv); - } - my.AddRoundKey(block, key.slice(0, 16)); - } + function r(e) { + for (var t = l.default.readNumber(e.subarray(0, 2)), r = 2; r < 2 + t;) { + var n = o.default.readSimpleLength(e.subarray(r, e.length)); + r += n.offset, this.read_sub_packet(e.subarray(r, r + n.len)), r += n.len + } + return r + } - my.SubBytes = function (state, sbox) { - for (var i = 0; i < 16; i++) - state[i] = sbox[state[i]]; - } + switch (this.version = e[t++], this.version) { + case 3: + 5 !== e[t++] && l.default.print_debug("packet/signature.js\ninvalid One-octet length of following hashed material.MUST be 5. @:" + (t - 1)); + var n = t; + this.signatureType = e[t++], this.created = l.default.readDate(e.subarray(t, t + 4)), t += 4, this.signatureData = e.subarray(n, t), this.issuerKeyId.read(e.subarray(t, t + 8)), t += 8, this.publicKeyAlgorithm = e[t++], this.hashAlgorithm = e[t++]; + break; + case 4: + this.signatureType = e[t++], this.publicKeyAlgorithm = e[t++], this.hashAlgorithm = e[t++], t += r.call(this, e.subarray(t, e.length), !0), this.signatureData = e.subarray(0, t); + var i = t; + t += r.call(this, e.subarray(t, e.length), !1), this.unhashedSubpackets = e.subarray(i, t); + break; + default: + throw new Error("Version " + this.version + " of the signature is unsupported.") + } + this.signedHashValue = e.subarray(t, t + 2), t += 2, this.signature = e.subarray(t, e.length) + }, p.prototype.write = function () { + var e = []; + switch (this.version) { + case 3: + e.push(new Uint8Array([3, 5])), e.push(new Uint8Array([this.signatureType])), e.push(l.default.writeDate(this.created)), e.push(this.issuerKeyId.write()), e.push(new Uint8Array([d.default.write(d.default.publicKey, this.publicKeyAlgorithm), d.default.write(d.default.hash, this.hashAlgorithm)])); + break; + case 4: + e.push(this.signatureData), e.push(this.unhashedSubpackets ? this.unhashedSubpackets : l.default.writeNumber(0, 2)) + } + return e.push(this.signedHashValue), e.push(this.signature), l.default.concatUint8Array(e) + }, p.prototype.sign = (n = (0, s.default)(a.default.mark(function e(t, r) { + var n, i, s, o, u, f, h; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + n = d.default.write(d.default.signature, this.signatureType), i = d.default.write(d.default.publicKey, this.publicKeyAlgorithm), s = d.default.write(d.default.hash, this.hashAlgorithm), o = [new Uint8Array([4, n, i, s])], 5 === t.version && (this.issuerKeyVersion = t.version, this.issuerFingerprint = t.getFingerprintBytes()), this.issuerKeyId = t.getKeyId(), o.push(this.write_all_sub_packets()), this.signatureData = l.default.concatUint8Array(o), u = this.calculateTrailer(), f = null, e.t0 = this.version, e.next = 3 === e.t0 ? 13 : 4 === e.t0 ? 15 : 17; + break; + case 13: + return f = l.default.concatUint8Array([this.toSign(n, r), new Uint8Array([n]), l.default.writeDate(this.created)]), e.abrupt("break", 18); + case 15: + return f = l.default.concatUint8Array([this.toSign(n, r), this.signatureData, u]), e.abrupt("break", 18); + case 17: + throw new Error("Version " + this.version + " of the signature is unsupported."); + case 18: + return h = c.default.hash.digest(s, f), this.signedHashValue = h.subarray(0, 2), e.next = 22, c.default.signature.sign(i, s, t.params, f); + case 22: + return this.signature = e.sent, e.abrupt("return", !0); + case 24: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return n.apply(this, arguments) + }), p.prototype.write_all_sub_packets = function () { + var e = d.default.signatureSubpacket, t = [], r = void 0; + if (null !== this.created && t.push(y(e.signature_creation_time, l.default.writeDate(this.created))), null !== this.signatureExpirationTime && t.push(y(e.signature_expiration_time, l.default.writeNumber(this.signatureExpirationTime, 4))), null !== this.exportable && t.push(y(e.exportable_certification, new Uint8Array([this.exportable ? 1 : 0]))), null !== this.trustLevel && (r = new Uint8Array([this.trustLevel, this.trustAmount]), t.push(y(e.trust_signature, r))), null !== this.regularExpression && t.push(y(e.regular_expression, this.regularExpression)), null !== this.revocable && t.push(y(e.revocable, new Uint8Array([this.revocable ? 1 : 0]))), null !== this.keyExpirationTime && t.push(y(e.key_expiration_time, l.default.writeNumber(this.keyExpirationTime, 4))), null !== this.preferredSymmetricAlgorithms && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.preferredSymmetricAlgorithms)), t.push(y(e.preferred_symmetric_algorithms, r))), null !== this.revocationKeyClass && (r = new Uint8Array([this.revocationKeyClass, this.revocationKeyAlgorithm]), r = l.default.concatUint8Array([r, this.revocationKeyFingerprint]), t.push(y(e.revocation_key, r))), this.issuerKeyId.isNull() || 5 === this.issuerKeyVersion || t.push(y(e.issuer, this.issuerKeyId.write())), null !== this.notation) for (var n in this.notation) if (this.notation.hasOwnProperty(n)) { + var i = this.notation[n]; + (r = [new Uint8Array([128, 0, 0, 0])]).push(l.default.writeNumber(n.length, 2)), r.push(l.default.writeNumber(i.length, 2)), r.push(l.default.str_to_Uint8Array(n + i)), r = l.default.concatUint8Array(r), t.push(y(e.notation_data, r)) + } + null !== this.preferredHashAlgorithms && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.preferredHashAlgorithms)), t.push(y(e.preferred_hash_algorithms, r))), null !== this.preferredCompressionAlgorithms && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.preferredCompressionAlgorithms)), t.push(y(e.preferred_compression_algorithms, r))), null !== this.keyServerPreferences && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.keyServerPreferences)), t.push(y(e.key_server_preferences, r))), null !== this.preferredKeyServer && t.push(y(e.preferred_key_server, l.default.str_to_Uint8Array(this.preferredKeyServer))), null !== this.isPrimaryUserID && t.push(y(e.primary_user_id, new Uint8Array([this.isPrimaryUserID ? 1 : 0]))), null !== this.policyURI && t.push(y(e.policy_uri, l.default.str_to_Uint8Array(this.policyURI))), null !== this.keyFlags && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.keyFlags)), t.push(y(e.key_flags, r))), null !== this.signersUserId && t.push(y(e.signers_user_id, l.default.str_to_Uint8Array(this.signersUserId))), null !== this.reasonForRevocationFlag && (r = l.default.str_to_Uint8Array(String.fromCharCode(this.reasonForRevocationFlag) + this.reasonForRevocationString), t.push(y(e.reason_for_revocation, r))), null !== this.features && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.features)), t.push(y(e.features, r))), null !== this.signatureTargetPublicKeyAlgorithm && ((r = [new Uint8Array([this.signatureTargetPublicKeyAlgorithm, this.signatureTargetHashAlgorithm])]).push(l.default.str_to_Uint8Array(this.signatureTargetHash)), r = l.default.concatUint8Array(r), t.push(y(e.signature_target, r))), null !== this.embeddedSignature && t.push(y(e.embedded_signature, this.embeddedSignature.write())), null !== this.issuerFingerprint && (r = [new Uint8Array([this.issuerKeyVersion]), this.issuerFingerprint], r = l.default.concatUint8Array(r), t.push(y(e.issuer_fingerprint, r))), null !== this.preferredAeadAlgorithms && (r = l.default.str_to_Uint8Array(l.default.Uint8Array_to_str(this.preferredAeadAlgorithms)), t.push(y(e.preferred_aead_algorithms, r))); + var a = l.default.concatUint8Array(t), s = l.default.writeNumber(a.length, 2); + return l.default.concatUint8Array([s, a]) + }, p.prototype.read_sub_packet = function (e) { + var t = 0; + + function r(e, t) { + this[e] = []; + for (var r = 0; r < t.length; r++) this[e].push(t[r]) + } - my.AddRoundKey = function (state, rkey) { - for (var i = 0; i < 16; i++) - state[i] ^= rkey[i]; - } + var n = 127 & e[t++], i = void 0; + switch (n) { + case 2: + this.created = l.default.readDate(e.subarray(t, e.length)); + break; + case 3: + i = l.default.readNumber(e.subarray(t, e.length)), this.signatureNeverExpires = 0 === i, this.signatureExpirationTime = i; + break; + case 4: + this.exportable = 1 === e[t++]; + break; + case 5: + this.trustLevel = e[t++], this.trustAmount = e[t++]; + break; + case 6: + this.regularExpression = e[t]; + break; + case 7: + this.revocable = 1 === e[t++]; + break; + case 9: + i = l.default.readNumber(e.subarray(t, e.length)), this.keyExpirationTime = i, this.keyNeverExpires = 0 === i; + break; + case 11: + r.call(this, "preferredSymmetricAlgorithms", e.subarray(t, e.length)); + break; + case 12: + this.revocationKeyClass = e[t++], this.revocationKeyAlgorithm = e[t++], this.revocationKeyFingerprint = e.subarray(t, t + 20); + break; + case 16: + this.issuerKeyId.read(e.subarray(t, e.length)); + break; + case 20: + if (128 === e[t]) { + t += 4; + var a = l.default.readNumber(e.subarray(t, t + 2)); + t += 2; + var s = l.default.readNumber(e.subarray(t, t + 2)); + t += 2; + var o = l.default.Uint8Array_to_str(e.subarray(t, t + a)), + u = l.default.Uint8Array_to_str(e.subarray(t + a, t + a + s)); + this.notation = this.notation || {}, this.notation[o] = u + } else l.default.print_debug("Unsupported notation flag " + e[t]); + break; + case 21: + r.call(this, "preferredHashAlgorithms", e.subarray(t, e.length)); + break; + case 22: + r.call(this, "preferredCompressionAlgorithms", e.subarray(t, e.length)); + break; + case 23: + r.call(this, "keyServerPreferences", e.subarray(t, e.length)); + break; + case 24: + this.preferredKeyServer = l.default.Uint8Array_to_str(e.subarray(t, e.length)); + break; + case 25: + this.isPrimaryUserID = 0 !== e[t++]; + break; + case 26: + this.policyURI = l.default.Uint8Array_to_str(e.subarray(t, e.length)); + break; + case 27: + r.call(this, "keyFlags", e.subarray(t, e.length)); + break; + case 28: + this.signersUserId += l.default.Uint8Array_to_str(e.subarray(t, e.length)); + break; + case 29: + this.reasonForRevocationFlag = e[t++], this.reasonForRevocationString = l.default.Uint8Array_to_str(e.subarray(t, e.length)); + break; + case 30: + r.call(this, "features", e.subarray(t, e.length)); + break; + case 31: + this.signatureTargetPublicKeyAlgorithm = e[t++], this.signatureTargetHashAlgorithm = e[t++]; + var f = c.default.getHashByteLength(this.signatureTargetHashAlgorithm); + this.signatureTargetHash = l.default.Uint8Array_to_str(e.subarray(t, t + f)); + break; + case 32: + this.embeddedSignature = new p, this.embeddedSignature.read(e.subarray(t, e.length)); + break; + case 33: + this.issuerKeyVersion = e[t++], this.issuerFingerprint = e.subarray(t, e.length), 5 === this.issuerKeyVersion ? this.issuerKeyId.read(this.issuerFingerprint) : this.issuerKeyId.read(this.issuerFingerprint.subarray(-8)); + break; + case 34: + r.call(this, "preferredAeadAlgorithms", e.subarray(t, e.length)); + break; + default: + l.default.print_debug("Unknown signature subpacket type " + n + " @:" + t) + } + }, p.prototype.toSign = function (e, t) { + var r = d.default.signature; + switch (e) { + case r.binary: + return t.getBytes(); + case r.text: + var n = t.getText(); + return n = l.default.canonicalizeEOL(n), l.default.str_to_Uint8Array(l.default.encode_utf8(n)); + case r.standalone: + return new Uint8Array(0); + case r.cert_generic: + case r.cert_persona: + case r.cert_casual: + case r.cert_positive: + case r.cert_revocation: + var i = void 0, a = void 0; + if (void 0 !== t.userid) a = 180, i = t.userid; else { + if (void 0 === t.userattribute) throw new Error("Either a userid or userattribute packet needs to be supplied for certification."); + a = 209, i = t.userattribute + } + var s = i.write(); + if (4 === this.version) return l.default.concatUint8Array([this.toSign(r.key, t), new Uint8Array([a]), l.default.writeNumber(s.length, 4), s]); + if (3 === this.version) return l.default.concatUint8Array([this.toSign(r.key, t), s]); + break; + case r.subkey_binding: + case r.subkey_revocation: + case r.key_binding: + return l.default.concatUint8Array([this.toSign(r.key, t), this.toSign(r.key, {key: t.bind})]); + case r.key: + if (void 0 === t.key) throw new Error("Key packet is required for this signature."); + return t.key.writeOld(); + case r.key_revocation: + return this.toSign(r.key, t); + case r.timestamp: + return new Uint8Array(0); + case r.third_party: + throw new Error("Not implemented"); + default: + throw new Error("Unknown signature type.") + } + }, p.prototype.calculateTrailer = function () { + if (3 === this.version) return new Uint8Array(0); + var e = new Uint8Array([4, 255]); + return l.default.concatUint8Array([e, l.default.writeNumber(this.signatureData.length, 4)]) + }, p.prototype.verify = (i = (0, s.default)(a.default.mark(function e(t, r) { + var n, i, s, o, u, h, p, y, b, m; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + for (n = d.default.write(d.default.signature, this.signatureType), i = d.default.write(d.default.publicKey, this.publicKeyAlgorithm), s = d.default.write(d.default.hash, this.hashAlgorithm), o = this.toSign(n, r), u = this.calculateTrailer(), h = 0, i > 0 && i < 4 ? h = 1 : i !== d.default.publicKey.dsa && i !== d.default.publicKey.ecdsa && i !== d.default.publicKey.eddsa || (h = 2), p = i === d.default.publicKey.eddsa ? "le" : "be", y = [], b = 0, m = 0; m < h; m++) y[m] = new f.default, b += y[m].read(this.signature.subarray(b, this.signature.length), p); + return e.next = 13, c.default.signature.verify(i, s, y, t.params, l.default.concatUint8Array([o, this.signatureData, u])); + case 13: + return this.verified = e.sent, e.abrupt("return", this.verified); + case 15: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return i.apply(this, arguments) + }), p.prototype.isExpired = function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : new Date, + t = l.default.normalizeDate(e); + if (null !== t) { + var r = this.getExpirationTime(); + return !(this.created <= t && t < r) + } + return !1 + }, p.prototype.getExpirationTime = function () { + return this.signatureNeverExpires ? 1 / 0 : new Date(this.created.getTime() + 1e3 * this.signatureExpirationTime) + }, p.prototype.postCloneTypeFix = function () { + this.issuerKeyId = u.default.fromClone(this.issuerKeyId) + }, r.default = p + }, { + "../crypto": 324, + "../enums": 343, + "../type/keyid.js": 378, + "../type/mpi.js": 379, + "../util": 382, + "./packet": 359, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 367: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = c(e("babel-runtime/core-js/promise")), i = c(e("babel-runtime/regenerator")), + a = c(e("babel-runtime/helpers/asyncToGenerator")), s = c(e("../config")), o = c(e("../crypto")), + u = c(e("../enums")), f = c(e("../util")); + + function c(e) { + return e && e.__esModule ? e : {default: e} + } - my.ShiftRows = function (state, shifttab) { - var h = new Array().concat(state); - for (var i = 0; i < 16; i++) - state[i] = h[shifttab[i]]; - } + var d, l, h, p = 1; - my.MixColumns = function (state) { - for (var i = 0; i < 16; i += 4) { - var s0 = state[i + 0], - s1 = state[i + 1]; - var s2 = state[i + 2], - s3 = state[i + 3]; - var h = s0 ^ s1 ^ s2 ^ s3; - state[i + 0] ^= h ^ my.xtime[s0 ^ s1]; - state[i + 1] ^= h ^ my.xtime[s1 ^ s2]; - state[i + 2] ^= h ^ my.xtime[s2 ^ s3]; - state[i + 3] ^= h ^ my.xtime[s3 ^ s0]; - } - } + function y() { + this.tag = u.default.packet.symEncryptedAEADProtected, this.version = p, this.cipherAlgo = null, this.aeadAlgorithm = "eax", this.aeadAlgo = null, this.chunkSizeByte = null, this.iv = null, this.encrypted = null, this.packets = null + } - my.MixColumns_Inv = function (state) { - for (var i = 0; i < 16; i += 4) { - var s0 = state[i + 0], - s1 = state[i + 1]; - var s2 = state[i + 2], - s3 = state[i + 3]; - var h = s0 ^ s1 ^ s2 ^ s3; - var xh = my.xtime[h]; - var h1 = my.xtime[my.xtime[xh ^ s0 ^ s2]] ^ h; - var h2 = my.xtime[my.xtime[xh ^ s1 ^ s3]] ^ h; - state[i + 0] ^= h1 ^ my.xtime[s0 ^ s1]; - state[i + 1] ^= h2 ^ my.xtime[s1 ^ s2]; - state[i + 2] ^= h1 ^ my.xtime[s2 ^ s3]; - state[i + 3] ^= h2 ^ my.xtime[s3 ^ s0]; - } - } + r.default = y, y.prototype.read = function (e) { + var t = 0; + if (e[t] !== p) throw new Error("Invalid packet version."); + t++, 4 === s.default.aead_protect_version ? (this.cipherAlgo = e[t++], this.aeadAlgo = e[t++], this.chunkSizeByte = e[t++]) : this.aeadAlgo = u.default.aead.experimental_gcm; + var r = o.default[u.default.read(u.default.aead, this.aeadAlgo)]; + this.iv = e.subarray(t, r.ivLength + t), t += r.ivLength, this.encrypted = e.subarray(t, e.length) + }, y.prototype.write = function () { + return 4 === s.default.aead_protect_version ? f.default.concatUint8Array([new Uint8Array([this.version, this.cipherAlgo, this.aeadAlgo, this.chunkSizeByte]), this.iv, this.encrypted]) : f.default.concatUint8Array([new Uint8Array([this.version]), this.iv, this.encrypted]) + }, y.prototype.decrypt = (d = (0, a.default)(i.default.mark(function e(t, r) { + var n, a, f; + return i.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (n = o.default[u.default.read(u.default.aead, this.aeadAlgo)], 4 !== s.default.aead_protect_version) { + e.next = 11; + break + } + return a = this.encrypted.subarray(0, -n.tagLength), f = this.encrypted.subarray(-n.tagLength), e.t0 = this.packets, e.next = 7, this.crypt("decrypt", r, a, f); + case 7: + e.t1 = e.sent, e.t0.read.call(e.t0, e.t1), e.next = 17; + break; + case 11: + return this.cipherAlgo = u.default.write(u.default.symmetric, t), e.t2 = this.packets, e.next = 15, this.crypt("decrypt", r, this.encrypted); + case 15: + e.t3 = e.sent, e.t2.read.call(e.t2, e.t3); + case 17: + return e.abrupt("return", !0); + case 18: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return d.apply(this, arguments) + }), y.prototype.encrypt = (l = (0, a.default)(i.default.mark(function e(t, r) { + var n, a; + return i.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return this.cipherAlgo = u.default.write(u.default.symmetric, t), this.aeadAlgo = 4 === s.default.aead_protect_version ? u.default.write(u.default.aead, this.aeadAlgorithm) : u.default.aead.experimental_gcm, n = o.default[u.default.read(u.default.aead, this.aeadAlgo)], e.next = 5, o.default.random.getRandomBytes(n.ivLength); + case 5: + return this.iv = e.sent, this.chunkSizeByte = s.default.aead_chunk_size_byte, a = this.packets.write(), e.next = 10, this.crypt("encrypt", r, a, a.subarray(0, 0)); + case 10: + this.encrypted = e.sent; + case 11: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return l.apply(this, arguments) + }), y.prototype.crypt = (h = (0, a.default)(i.default.mark(function e(t, r, a, c) { + var d, l, h, p, y, b, m, g, v, _, w, k; + return i.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return d = u.default.read(u.default.symmetric, this.cipherAlgo), l = o.default[u.default.read(u.default.aead, this.aeadAlgo)], e.next = 4, l(d, r); + case 4: + if (h = e.sent, 4 !== s.default.aead_protect_version) { + e.next = 25; + break + } + for (p = "decrypt" === t ? l.tagLength : 0, y = Math.pow(2, this.chunkSizeByte + 6) + p, b = new ArrayBuffer(21), m = new Uint8Array(b, 0, 13), g = new Uint8Array(b), v = new DataView(b), _ = new Uint8Array(b, 5, 8), m.set([192 | this.tag, this.version, this.cipherAlgo, this.aeadAlgo, this.chunkSizeByte], 0), v.setInt32(17, a.length - p * Math.ceil(a.length / y)), w = [], k = 0; 0 === k || a.length;) w.push(h[t](a.subarray(0, y), l.getNonce(this.iv, _), m)), a = a.subarray(y), v.setInt32(9, ++k); + return w.push(h[t](c, l.getNonce(this.iv, _), g)), e.t0 = f.default, e.next = 21, n.default.all(w); + case 21: + return e.t1 = e.sent, e.abrupt("return", e.t0.concatUint8Array.call(e.t0, e.t1)); + case 25: + return e.abrupt("return", h[t](a, this.iv)); + case 26: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t, r, n) { + return h.apply(this, arguments) + }) + }, { + "../config": 309, + "../crypto": 324, + "../enums": 343, + "../util": 382, + "babel-runtime/core-js/promise": 28, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 368: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = f(e("babel-runtime/regenerator")), i = f(e("babel-runtime/helpers/asyncToGenerator")), + a = e("asmcrypto.js/src/aes/cfb/exports"), s = f(e("../crypto")), o = f(e("../enums")), + u = f(e("../util")); + + function f(e) { + return e && e.__esModule ? e : {default: e} + } - return my; + var c, d, l = u.default.getNodeCrypto(), h = u.default.getNodeBuffer(), p = 1; -}()); + function y() { + this.tag = o.default.packet.symEncryptedIntegrityProtected, this.version = p, this.encrypted = null, this.modification = !1, this.packets = null + } + function b(e, t, r, n) { + return l ? function (e, t, r, n) { + n = new h(n); + var i = new h(new Uint8Array(s.default.cipher[e].blockSize)), + a = new l.createCipheriv("aes-" + e.substr(3, 3) + "-cfb", n, i).update(new h(u.default.concatUint8Array([t, r]))); + return new Uint8Array(a) + }(e, t, r, n) : a.AES_CFB.encrypt(u.default.concatUint8Array([t, r]), n) + } -var cryptico = (function () { + function m(e, t, r) { + var n = void 0; + return (n = l ? function (e, t, r) { + t = new h(t), r = new h(r); + var n = new h(new Uint8Array(s.default.cipher[e].blockSize)), + i = new l.createDecipheriv("aes-" + e.substr(3, 3) + "-cfb", r, n).update(t); + return new Uint8Array(i) + }(e, t, r) : a.AES_CFB.decrypt(t, r)).subarray(s.default.cipher[e].blockSize + 2, n.length) + } - var my = {}; + y.prototype.read = function (e) { + if (e[0] !== p) throw new Error("Invalid packet version."); + this.encrypted = e.subarray(1, e.length) + }, y.prototype.write = function () { + return u.default.concatUint8Array([new Uint8Array([p]), this.encrypted]) + }, y.prototype.encrypt = (c = (0, i.default)(n.default.mark(function e(t, r) { + var i, a, o, f, c, d, l; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return i = this.packets.write(), e.next = 3, s.default.getPrefixRandom(t); + case 3: + return a = e.sent, o = new Uint8Array([a[a.length - 2], a[a.length - 1]]), f = u.default.concatUint8Array([a, o]), c = new Uint8Array([211, 20]), d = u.default.concatUint8Array([i, c]), l = s.default.hash.sha1(u.default.concatUint8Array([f, d])), d = u.default.concatUint8Array([d, l]), "aes" === t.substr(0, 3) ? this.encrypted = b(t, f, d, r) : (this.encrypted = s.default.cfb.encrypt(a, t, d, r, !1), this.encrypted = this.encrypted.subarray(0, f.length + d.length)), e.abrupt("return", !0); + case 12: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return c.apply(this, arguments) + }), y.prototype.decrypt = (d = (0, i.default)(n.default.mark(function e(t, r) { + var i, a, o, f, c; + return n.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (i = void 0, i = "aes" === t.substr(0, 3) ? m(t, this.encrypted, r) : s.default.cfb.decrypt(t, r, this.encrypted, !1), a = s.default.cfb.mdc(t, r, this.encrypted), o = i.subarray(0, i.length - 20), f = u.default.concatUint8Array([a, o]), this.hash = u.default.Uint8Array_to_str(s.default.hash.sha1(f)), c = u.default.Uint8Array_to_str(i.subarray(i.length - 20, i.length)), this.hash === c) { + e.next = 11; + break + } + throw new Error("Modification detected."); + case 11: + this.packets.read(i.subarray(0, i.length - 22)); + case 12: + return e.abrupt("return", !0); + case 13: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return d.apply(this, arguments) + }), r.default = y + }, { + "../crypto": 324, + "../enums": 343, + "../util": 382, + "asmcrypto.js/src/aes/cfb/exports": 6, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 369: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = l(e("babel-runtime/regenerator")), s = l(e("babel-runtime/helpers/asyncToGenerator")), + o = l(e("../type/s2k")), u = l(e("../config")), f = l(e("../crypto")), c = l(e("../enums")), + d = l(e("../util")); + + function l(e) { + return e && e.__esModule ? e : {default: e} + } - aes.Init(); + function h() { + this.tag = c.default.packet.symEncryptedSessionKey, this.version = u.default.aead_protect && 4 === u.default.aead_protect_version ? 5 : 4, this.sessionKey = null, this.sessionKeyEncryptionAlgorithm = null, this.sessionKeyAlgorithm = "aes256", this.aeadAlgorithm = c.default.read(c.default.aead, u.default.aead_mode), this.encrypted = null, this.s2k = null, this.iv = null + } - var base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + h.prototype.read = function (e) { + var t = 0; + this.version = e[t++]; + var r = c.default.read(c.default.symmetric, e[t++]); + if (5 === this.version && (this.aeadAlgorithm = c.default.read(c.default.aead, e[t++])), this.s2k = new o.default, t += this.s2k.read(e.subarray(t, e.length)), 5 === this.version) { + var n = f.default[this.aeadAlgorithm]; + this.iv = e.subarray(t, t += n.ivLength) + } + 5 === this.version || t < e.length ? (this.encrypted = e.subarray(t, e.length), this.sessionKeyEncryptionAlgorithm = r) : this.sessionKeyAlgorithm = r + }, h.prototype.write = function () { + var e = null === this.encrypted ? this.sessionKeyAlgorithm : this.sessionKeyEncryptionAlgorithm, + t = void 0; + return 5 === this.version ? t = d.default.concatUint8Array([new Uint8Array([this.version, c.default.write(c.default.symmetric, e), c.default.write(c.default.aead, this.aeadAlgorithm)]), this.s2k.write(), this.iv, this.encrypted]) : (t = d.default.concatUint8Array([new Uint8Array([this.version, c.default.write(c.default.symmetric, e)]), this.s2k.write()]), null !== this.encrypted && (t = d.default.concatUint8Array([t, this.encrypted]))), t + }, h.prototype.decrypt = (n = (0, s.default)(a.default.mark(function e(t) { + var r, n, i, s, o, u, d; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (r = null !== this.sessionKeyEncryptionAlgorithm ? this.sessionKeyEncryptionAlgorithm : this.sessionKeyAlgorithm, n = f.default.cipher[r].keySize, i = this.s2k.produce_key(t, n), 5 !== this.version) { + e.next = 14; + break + } + return s = f.default[this.aeadAlgorithm], o = new Uint8Array([192 | this.tag, this.version, c.default.write(c.default.symmetric, this.sessionKeyEncryptionAlgorithm), c.default.write(c.default.aead, this.aeadAlgorithm)]), e.next = 8, s(r, i); + case 8: + return u = e.sent, e.next = 11, u.decrypt(this.encrypted, this.iv, o); + case 11: + this.sessionKey = e.sent, e.next = 15; + break; + case 14: + null !== this.encrypted ? (d = f.default.cfb.normalDecrypt(r, i, this.encrypted, null), this.sessionKeyAlgorithm = c.default.read(c.default.symmetric, d[0]), this.sessionKey = d.subarray(1, d.length)) : this.sessionKey = i; + case 15: + return e.abrupt("return", !0); + case 16: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return n.apply(this, arguments) + }), h.prototype.encrypt = (i = (0, s.default)(a.default.mark(function e(t) { + var r, n, i, s, u, l, h, p; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return r = null !== this.sessionKeyEncryptionAlgorithm ? this.sessionKeyEncryptionAlgorithm : this.sessionKeyAlgorithm, this.sessionKeyEncryptionAlgorithm = r, this.s2k = new o.default, e.next = 5, f.default.random.getRandomBytes(8); + case 5: + if (this.s2k.salt = e.sent, n = f.default.cipher[r].keySize, i = this.s2k.produce_key(t, n), null !== this.sessionKey) { + e.next = 12; + break + } + return e.next = 11, f.default.generateSessionKey(this.sessionKeyAlgorithm); + case 11: + this.sessionKey = e.sent; + case 12: + if (5 !== this.version) { + e.next = 26; + break + } + return s = f.default[this.aeadAlgorithm], e.next = 16, f.default.random.getRandomBytes(s.ivLength); + case 16: + return this.iv = e.sent, u = new Uint8Array([192 | this.tag, this.version, c.default.write(c.default.symmetric, this.sessionKeyEncryptionAlgorithm), c.default.write(c.default.aead, this.aeadAlgorithm)]), e.next = 20, s(r, i); + case 20: + return l = e.sent, e.next = 23, l.encrypt(this.sessionKey, this.iv, u); + case 23: + this.encrypted = e.sent, e.next = 29; + break; + case 26: + h = new Uint8Array([c.default.write(c.default.symmetric, this.sessionKeyAlgorithm)]), p = d.default.concatUint8Array([h, this.sessionKey]), this.encrypted = f.default.cfb.normalEncrypt(r, i, p, null); + case 29: + return e.abrupt("return", !0); + case 30: + case"end": + return e.stop() + } + }, e, this) + })), function (e) { + return i.apply(this, arguments) + }), h.prototype.postCloneTypeFix = function () { + this.s2k = o.default.fromClone(this.s2k) + }, r.default = h + }, { + "../config": 309, + "../crypto": 324, + "../enums": 343, + "../type/s2k": 381, + "../util": 382, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 370: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i, a = c(e("babel-runtime/regenerator")), s = c(e("babel-runtime/helpers/asyncToGenerator")), + o = c(e("../config")), u = c(e("../crypto")), f = c(e("../enums")); + + function c(e) { + return e && e.__esModule ? e : {default: e} + } - my.b256to64 = function (t) { - var a, c, n; - var r = '', l = 0, s = 0; - var tl = t.length; - for (n = 0; n < tl; n++) { - c = t.charCodeAt(n); - if (s == 0) { - r += base64Chars.charAt((c >> 2) & 63); - a = (c & 3) << 4; + function d() { + this.tag = f.default.packet.symmetricallyEncrypted, this.encrypted = null, this.packets = null, this.ignore_mdc_error = o.default.ignore_mdc_error } - else if (s == 1) { - r += base64Chars.charAt((a | (c >> 4) & 15)); - a = (c & 15) << 2; + + d.prototype.read = function (e) { + this.encrypted = e + }, d.prototype.write = function () { + return this.encrypted + }, d.prototype.decrypt = (n = (0, s.default)(a.default.mark(function e(t, r) { + var n; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + if (n = u.default.cfb.decrypt(t, r, this.encrypted, !0), this.ignore_mdc_error || "aes128" !== t && "aes192" !== t && "aes256" !== t) { + e.next = 3; + break + } + throw new Error("Decryption failed due to missing MDC in combination with modern cipher."); + case 3: + return this.packets.read(n), e.abrupt("return", !0); + case 5: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return n.apply(this, arguments) + }), d.prototype.encrypt = (i = (0, s.default)(a.default.mark(function e(t, r) { + var n; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return n = this.packets.write(), e.t0 = u.default.cfb, e.next = 4, u.default.getPrefixRandom(t); + case 4: + return e.t1 = e.sent, e.t2 = t, e.t3 = n, e.t4 = r, this.encrypted = e.t0.encrypt.call(e.t0, e.t1, e.t2, e.t3, e.t4, !0), e.abrupt("return", !0); + case 10: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return i.apply(this, arguments) + }), r.default = d + }, { + "../config": 309, + "../crypto": 324, + "../enums": 343, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }], + 371: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("../enums"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s() { + this.tag = a.default.packet.trust } - else if (s == 2) { - r += base64Chars.charAt(a | ((c >> 6) & 3)); - l += 1; - r += base64Chars.charAt(c & 63); + + s.prototype.read = function () { + }, r.default = s + }, {"../enums": 343}], + 372: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = s(e("./packet")), i = s(e("../enums")), a = s(e("../util")); + + function s(e) { + return e && e.__esModule ? e : {default: e} } - l += 1; - s += 1; - if (s == 3) s = 0; - } - if (s > 0) { - r += base64Chars.charAt(a); - l += 1; - r += '='; - l += 1; - } - if (s == 1) { - r += '='; - } - return r; - } - my.b64to256 = function (t) { - var c, n; - var r = '', s = 0, a = 0; - var tl = t.length; - for (n = 0; n < tl; n++) { - c = base64Chars.indexOf(t.charAt(n)); - if (c >= 0) { - if (s) r += String.fromCharCode(a | (c >> (6 - s)) & 255); - s = (s + 2) & 7; - a = (c << s) & 255; + function o() { + this.tag = i.default.packet.userAttribute, this.attributes = [] } - } - return r; - } - my.b16to64 = function (h) { - var i; - var c; - var ret = ""; - if (h.length % 2 == 1) { - h = "0" + h; - } - for (i = 0; i + 3 <= h.length; i += 3) { - c = parseInt(h.substring(i, i + 3), 16); - ret += base64Chars.charAt(c >> 6) + base64Chars.charAt(c & 63); - } - if (i + 1 == h.length) { - c = parseInt(h.substring(i, i + 1), 16); - ret += base64Chars.charAt(c << 2); - } - else if (i + 2 == h.length) { - c = parseInt(h.substring(i, i + 2), 16); - ret += base64Chars.charAt(c >> 2) + base64Chars.charAt((c & 3) << 4); - } - while ((ret.length & 3) > 0) ret += "="; - return ret; - } + o.prototype.read = function (e) { + for (var t = 0; t < e.length;) { + var r = n.default.readSimpleLength(e.subarray(t, e.length)); + t += r.offset, this.attributes.push(a.default.Uint8Array_to_str(e.subarray(t, t + r.len))), t += r.len + } + }, o.prototype.write = function () { + for (var e = [], t = 0; t < this.attributes.length; t++) e.push(n.default.writeSimpleLength(this.attributes[t].length)), e.push(a.default.str_to_Uint8Array(this.attributes[t])); + return a.default.concatUint8Array(e) + }, o.prototype.equals = function (e) { + return !!(e && e instanceof o) && this.attributes.every(function (t, r) { + return t === e.attributes[r] + }) + }, r.default = o + }, {"../enums": 343, "../util": 382, "./packet": 359}], + 373: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("../enums")), i = a(e("../util")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } - my.b64to16 = function (s) { - var ret = ""; - var i; - var k = 0; - var slop; - for (i = 0; i < s.length; ++i) { - if (s.charAt(i) == "=") break; - v = base64Chars.indexOf(s.charAt(i)); - if (v < 0) continue; - if (k == 0) { - ret += int2char(v >> 2); - slop = v & 3; - k = 1; - } - else if (k == 1) { - ret += int2char((slop << 2) | (v >> 4)); - slop = v & 0xf; - k = 2; - } - else if (k == 2) { - ret += int2char(slop); - ret += int2char(v >> 2); - slop = v & 3; - k = 3; - } - else { - ret += int2char((slop << 2) | (v >> 4)); - ret += int2char(v & 0xf); - k = 0; + function s() { + this.tag = n.default.packet.userid, this.userid = "" } - } - if (k == 1) ret += int2char(slop << 2); - return ret; - } - // Converts a string to a byte array. - my.string2bytes = function (string) { - var bytes = new Array(); - for (var i = 0; i < string.length; i++) { - bytes.push(string.charCodeAt(i)); - } - return bytes; - } + s.prototype.read = function (e) { + this.userid = i.default.decode_utf8(i.default.Uint8Array_to_str(e)) + }, s.prototype.write = function () { + return i.default.str_to_Uint8Array(i.default.encode_utf8(this.userid)) + }, r.default = s + }, {"../enums": 343, "../util": 382}], + 374: [function (e, t, r) { + "use strict"; + var n = s(e("babel-runtime/core-js/symbol")), i = s(e("babel-runtime/core-js/promise")), + a = s(e("babel-runtime/core-js/array/from")); + + function s(e) { + return e && e.__esModule ? e : {default: e} + } - // Converts a byte array to a string. - my.bytes2string = function (bytes) { - var string = ""; - for (var i = 0; i < bytes.length; i++) { - string += String.fromCharCode(bytes[i]); - } - return string; - } + void 0 === window.fetch && e("whatwg-fetch"), void 0 === Array.prototype.fill && e("core-js/fn/array/fill"), void 0 === Array.prototype.find && e("core-js/fn/array/find"), void 0 === a.default && e("core-js/fn/array/from"), void 0 === i.default && e("core-js/fn/promise"), void 0 === Uint8Array.from && e("core-js/fn/typed/uint8-array"), void 0 === String.prototype.repeat && e("core-js/fn/string/repeat"), void 0 === n.default && e("core-js/fn/symbol") + }, { + "babel-runtime/core-js/array/from": 19, + "babel-runtime/core-js/promise": 28, + "babel-runtime/core-js/symbol": 29, + "core-js/fn/array/fill": 44, + "core-js/fn/array/find": 45, + "core-js/fn/array/from": 46, + "core-js/fn/promise": 47, + "core-js/fn/string/repeat": 48, + "core-js/fn/symbol": 49, + "core-js/fn/typed/uint8-array": 50, + "whatwg-fetch": 305 + }], + 375: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}), r.Signature = o, r.readArmored = function (e) { + return u(n.default.decode(e).data) + }, r.read = u; + var n = s(e("./encoding/armor")), i = s(e("./packet")), a = s(e("./enums")); + + function s(e) { + return e && e.__esModule ? e : {default: e} + } - // Returns a XOR b, where a and b are 16-byte byte arrays. - my.blockXOR = function (a, b) { - var xor = new Array(16); - for (var i = 0; i < 16; i++) { - xor[i] = a[i] ^ b[i]; - } - return xor; - } + function o(e) { + if (!(this instanceof o)) return new o(e); + this.packets = e || new i.default.List + } - // Returns a 16-byte initialization vector. - my.blockIV = function () { - var r = new SecureRandom(); - var IV = new Array(16); - r.nextBytes(IV); - return IV; - } + function u(e) { + var t = new i.default.List; + return t.read(e), new o(t) + } - // Returns a copy of bytes with zeros appended to the end - // so that the (length of bytes) % 16 == 0. - my.pad16 = function (bytes) { - var newBytes = bytes.slice(0); - var padding = (16 - (bytes.length % 16)) % 16; - for (i = bytes.length; i < bytes.length + padding; i++) { - newBytes.push(0); - } - return newBytes; - } + o.prototype.armor = function () { + return n.default.encode(a.default.armor.signature, this.packets.write()) + } + }, {"./encoding/armor": 341, "./enums": 343, "./packet": 355}], + 376: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("../util"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s(e) { + e = void 0 === e ? new Uint8Array([]) : a.default.isString(e) ? a.default.str_to_Uint8Array(e) : new Uint8Array(e), this.data = e + } - // Removes trailing zeros from a byte array. - my.depad = function (bytes) { - var newBytes = bytes.slice(0); - while (newBytes[newBytes.length - 1] == 0) { - newBytes = newBytes.slice(0, newBytes.length - 1); - } - return newBytes; - } + s.prototype.read = function (e) { + if (e.length >= 1) { + var t = e[0]; + if (e.length >= 1 + t) return this.data = e.subarray(1, 1 + t), 1 + this.data.length + } + throw new Error("Invalid symmetric key") + }, s.prototype.write = function () { + return a.default.concatUint8Array([new Uint8Array([this.data.length]), this.data]) + }, s.fromClone = function (e) { + return new s(e.data) + }, r.default = s + }, {"../util": 382}], + 377: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("../enums.js"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s(e) { + e && 2 === e.length ? (this.hash = e[0], this.cipher = e[1]) : (this.hash = a.default.hash.sha1, this.cipher = a.default.symmetric.aes128) + } - // AES CBC Encryption. - my.encryptAESCBC = function (plaintext, key) { - var exkey = key.slice(0); - aes.ExpandKey(exkey); - var blocks = my.string2bytes(plaintext); - blocks = my.pad16(blocks); - var encryptedBlocks = my.blockIV(); - for (var i = 0; i < blocks.length / 16; i++) { - var tempBlock = blocks.slice(i * 16, i * 16 + 16); - var prevBlock = encryptedBlocks.slice((i) * 16, (i) * 16 + 16); - tempBlock = my.blockXOR(prevBlock, tempBlock); - aes.Encrypt(tempBlock, exkey); - encryptedBlocks = encryptedBlocks.concat(tempBlock); - } - var ciphertext = my.bytes2string(encryptedBlocks); - return my.b256to64(ciphertext) - } + s.prototype.read = function (e) { + if (e.length < 4 || 3 !== e[0] || 1 !== e[1]) throw new Error("Cannot read KDFParams"); + return this.hash = e[2], this.cipher = e[3], 4 + }, s.prototype.write = function () { + return new Uint8Array([3, 1, this.hash, this.cipher]) + }, s.fromClone = function (e) { + return new s([e.hash, e.cipher]) + }, r.default = s + }, {"../enums.js": 343}], + 378: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = e("../util.js"), a = (n = i) && n.__esModule ? n : {default: n}; + + function s() { + this.bytes = "" + } - // AES CBC Decryption. - my.decryptAESCBC = function (encryptedText, key) { - var exkey = key.slice(0); - aes.ExpandKey(exkey); - var encryptedText = my.b64to256(encryptedText); - var encryptedBlocks = my.string2bytes(encryptedText); - var decryptedBlocks = new Array(); - for (var i = 1; i < encryptedBlocks.length / 16; i++) { - var tempBlock = encryptedBlocks.slice(i * 16, i * 16 + 16); - var prevBlock = encryptedBlocks.slice((i - 1) * 16, (i - 1) * 16 + 16); - aes.Decrypt(tempBlock, exkey); - tempBlock = my.blockXOR(prevBlock, tempBlock); - decryptedBlocks = decryptedBlocks.concat(tempBlock); - } - decryptedBlocks = my.depad(decryptedBlocks); - return my.bytes2string(decryptedBlocks); - } + s.prototype.read = function (e) { + this.bytes = a.default.Uint8Array_to_str(e.subarray(0, 8)) + }, s.prototype.write = function () { + return a.default.str_to_Uint8Array(this.bytes) + }, s.prototype.toHex = function () { + return a.default.str_to_hex(this.bytes) + }, s.prototype.equals = function (e) { + return arguments.length > 1 && void 0 !== arguments[1] && arguments[1] && (e.isWildcard() || this.isWildcard()) || this.bytes === e.bytes + }, s.prototype.isNull = function () { + return "" === this.bytes + }, s.prototype.isWildcard = function () { + return /^0+$/.test(this.toHex()) + }, s.mapToHex = function (e) { + return e.toHex() + }, s.fromClone = function (e) { + var t = new s; + return t.bytes = e.bytes, t + }, s.fromId = function (e) { + var t = new s; + return t.read(a.default.hex_to_Uint8Array(e)), t + }, s.wildcard = function () { + var e = new s; + return e.read(new Uint8Array(8)), e + }, r.default = s + }, {"../util.js": 382}], + 379: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("bn.js")), i = a(e("../util")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } - // Wraps a string to 60 characters. - my.wrap60 = function (string) { - var outstr = ""; - for (var i = 0; i < string.length; i++) { - if (i % 60 == 0 && i != 0) outstr += "\n"; - outstr += string[i]; - } - return outstr; - } + function s(e) { + e instanceof s ? this.data = e.data : n.default.isBN(e) ? this.fromBN(e) : i.default.isUint8Array(e) ? this.fromUint8Array(e) : i.default.isString(e) ? this.fromString(e) : this.data = null + } - // Generate a random key for the AES-encrypted message. - my.generateAESKey = function () { - var key = new Array(32); - var r = new SecureRandom(); - r.nextBytes(key); - return key; - } + s.prototype.read = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "be"; + i.default.isString(e) && (e = i.default.str_to_Uint8Array(e)); + var r = (e[0] << 8 | e[1]) + 7 >>> 3, n = e.subarray(2, 2 + r); + return this.fromUint8Array(n, t), 2 + r + }, s.prototype.write = function (e, t) { + return i.default.Uint8Array_to_MPI(this.toUint8Array(e, t)) + }, s.prototype.bitLength = function () { + return 8 * (this.data.length - 1) + i.default.nbits(this.data[0]) + }, s.prototype.byteLength = function () { + return this.data.length + }, s.prototype.toUint8Array = function (e, t) { + e = e || "be", t = t || this.data.length; + var r = new Uint8Array(t), n = t - this.data.length; + if (n < 0) throw new Error("Payload is too large."); + return r.set(this.data, n), "le" === e && r.reverse(), r + }, s.prototype.fromUint8Array = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "be"; + this.data = new Uint8Array(e.length), this.data.set(e), "le" === t && this.data.reverse() + }, s.prototype.toString = function () { + return i.default.Uint8Array_to_str(this.toUint8Array()) + }, s.prototype.fromString = function (e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "be"; + this.fromUint8Array(i.default.str_to_Uint8Array(e), t) + }, s.prototype.toBN = function () { + return new n.default(this.toUint8Array()) + }, s.prototype.fromBN = function (e) { + this.data = e.toArrayLike(Uint8Array) + }, s.fromClone = function (e) { + return new s(e.data) + }, r.default = s + }, {"../util": 382, "bn.js": 40}], + 380: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = a(e("../util")), i = a(e("../enums")); + + function a(e) { + return e && e.__esModule ? e : {default: e} + } - // Generates an RSA key from a passphrase. - my.generateRSAKey = function (passphrase, bitlength) { - Math.seedrandom(sha256.hex(passphrase)); - var rsa = new RSAKey(); - rsa.generate(bitlength, "03"); - return rsa; - } + function s(e) { + if (e instanceof s) this.oid = e.oid; else if (n.default.isArray(e) || n.default.isUint8Array(e)) { + if (6 === (e = new Uint8Array(e))[0]) { + if (e[1] !== e.length - 2) throw new Error("Length mismatch in DER encoded oid"); + e = e.subarray(2) + } + this.oid = e + } else this.oid = "" + } - // Returns the ascii-armored version of the public key. - my.publicKeyString = function (rsakey) { - pubkey = my.b16to64(rsakey.n.toString(16)); - return pubkey; - } + s.prototype.read = function (e) { + if (e.length >= 1) { + var t = e[0]; + if (e.length >= 1 + t) return this.oid = e.subarray(1, 1 + t), 1 + this.oid.length + } + throw new Error("Invalid oid") + }, s.prototype.write = function () { + return n.default.concatUint8Array([new Uint8Array([this.oid.length]), this.oid]) + }, s.prototype.toHex = function () { + return n.default.Uint8Array_to_hex(this.oid) + }, s.prototype.getName = function () { + var e = this.toHex(); + if (i.default.curve[e]) return i.default.write(i.default.curve, e); + throw new Error("Unknown curve object identifier.") + }, s.fromClone = function (e) { + return new s(e.oid) + }, r.default = s + }, {"../enums": 343, "../util": 382}], + 381: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = o(e("../config")), i = o(e("../crypto")), a = o(e("../enums.js")), s = o(e("../util.js")); + + function o(e) { + return e && e.__esModule ? e : {default: e} + } - // Returns an MD5 sum of a publicKeyString for easier identification. - my.publicKeyID = function (publicKeyString) { - return MD5(publicKeyString); - } + function u() { + this.algorithm = "sha256", this.type = "iterated", this.c = n.default.s2k_iteration_count_byte, this.salt = null + } - my.publicKeyFromString = function (string) { - var N = my.b64to16(string.split("|")[0]); - var E = "03"; - var rsa = new RSAKey(); - rsa.setPublic(N, E); - return rsa - } + u.prototype.get_count = function () { + return 16 + (15 & this.c) << 6 + (this.c >> 4) + }, u.prototype.read = function (e) { + var t = 0; + switch (this.type = a.default.read(a.default.s2k, e[t++]), this.algorithm = a.default.read(a.default.hash, e[t++]), this.type) { + case"simple": + break; + case"salted": + this.salt = e.subarray(t, t + 8), t += 8; + break; + case"iterated": + this.salt = e.subarray(t, t + 8), t += 8, this.c = e[t++]; + break; + case"gnu": + if ("GNU" !== s.default.Uint8Array_to_str(e.subarray(t, 3))) throw new Error("Unknown s2k type."); + t += 3; + var r = 1e3 + e[t++]; + if (1001 !== r) throw new Error("Unknown s2k gnu protection mode."); + this.type = r; + break; + default: + throw new Error("Unknown s2k type.") + } + return t + }, u.prototype.write = function () { + var e = [new Uint8Array([a.default.write(a.default.s2k, this.type), a.default.write(a.default.hash, this.algorithm)])]; + switch (this.type) { + case"simple": + break; + case"salted": + e.push(this.salt); + break; + case"iterated": + e.push(this.salt), e.push(new Uint8Array([this.c])); + break; + case"gnu": + throw new Error("GNU s2k type not supported."); + default: + throw new Error("Unknown s2k type.") + } + return s.default.concatUint8Array(e) + }, u.prototype.produce_key = function (e, t) { + function r(t, r) { + var n = a.default.write(a.default.hash, r.algorithm); + switch (r.type) { + case"simple": + return i.default.hash.digest(n, s.default.concatUint8Array([t, e])); + case"salted": + return i.default.hash.digest(n, s.default.concatUint8Array([t, r.salt, e])); + case"iterated": + var o = r.get_count(), u = s.default.concatUint8Array([r.salt, e]), + f = new Array(Math.ceil(o / u.length)); + return (f = s.default.concatUint8Array(f.fill(u))).length > o && (f = f.subarray(0, o)), i.default.hash.digest(n, s.default.concatUint8Array([t, f])); + case"gnu": + throw new Error("GNU s2k type not supported."); + default: + throw new Error("Unknown s2k type.") + } + } - my.encrypt = function (plaintext, publickeystring, signingkey) { - var cipherblock = ""; - var aeskey = my.generateAESKey(); - try { - var publickey = my.publicKeyFromString(publickeystring); - cipherblock += my.b16to64(publickey.encrypt(my.bytes2string(aeskey))) + "?"; - } - catch (err) { - return {status: "Invalid public key"}; - } - if (signingkey) { - signString = cryptico.b16to64(signingkey.signString(plaintext, "sha256")); - plaintext += "::52cee64bb3a38f6403386519a39ac91c::"; - plaintext += cryptico.publicKeyString(signingkey); - plaintext += "::52cee64bb3a38f6403386519a39ac91c::"; - plaintext += signString; - } - cipherblock += my.encryptAESCBC(plaintext, aeskey); - return {status: "success", cipher: cipherblock}; - } + e = s.default.str_to_Uint8Array(s.default.encode_utf8(e)); + for (var n = [], o = 0, u = new Uint8Array(t), f = 0; f < t; f++) u[f] = 0; + for (var c = 0; o < t;) { + var d = r(u.subarray(0, c), this); + n.push(d), o += d.length, c++ + } + return s.default.concatUint8Array(n).subarray(0, t) + }, u.fromClone = function (e) { + var t = new u; + return t.algorithm = e.algorithm, t.type = e.type, t.c = e.c, t.salt = e.salt, t + }, r.default = u + }, {"../config": 309, "../crypto": 324, "../enums.js": 343, "../util.js": 382}], + 382: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n = s(e("./config")), i = s(e("./util")), a = s(e("./encoding/base64")); + + function s(e) { + return e && e.__esModule ? e : {default: e} + } - my.decrypt = function (ciphertext, key) { - var cipherblock = ciphertext.split("?"); - var aeskey = key.decrypt(my.b64to16(cipherblock[0])); - if (aeskey == null) { - return {status: "failure"}; - } - aeskey = my.string2bytes(aeskey); - var plaintext = my.decryptAESCBC(cipherblock[1], aeskey).split("::52cee64bb3a38f6403386519a39ac91c::"); - if (plaintext.length == 3) { - var publickey = my.publicKeyFromString(plaintext[1]); - var signature = my.b64to16(plaintext[2]); - if (publickey.verifyString(plaintext[0], signature)) { - return { - status: "success", - plaintext: plaintext[0], - signature: "verified", - publicKeyString: my.publicKeyString(publickey) - }; + r.default = { + isString: function (e) { + return "string" == typeof e || String.prototype.isPrototypeOf(e) + }, isArray: function (e) { + return Array.prototype.isPrototypeOf(e) + }, isUint8Array: function (e) { + return Uint8Array.prototype.isPrototypeOf(e) + }, getTransferables: function (e) { + if (n.default.zero_copy && Object.prototype.isPrototypeOf(e)) { + var t = []; + return i.default.collectBuffers(e, t), t.length ? t : void 0 + } + }, collectBuffers: function (e, t) { + if (e) if (i.default.isUint8Array(e) && -1 === t.indexOf(e.buffer)) t.push(e.buffer); else if (Object.prototype.isPrototypeOf(e)) for (var r in e) i.default.collectBuffers(e[r], t) + }, readNumber: function (e) { + for (var t = 0, r = 0; r < e.length; r++) t += Math.pow(256, r) * e[e.length - 1 - r]; + return t + }, writeNumber: function (e, t) { + for (var r = new Uint8Array(t), n = 0; n < t; n++) r[n] = e >> 8 * (t - n - 1) & 255; + return r + }, readDate: function (e) { + var t = i.default.readNumber(e); + return new Date(1e3 * t) + }, writeDate: function (e) { + var t = Math.floor(e.getTime() / 1e3); + return i.default.writeNumber(t, 4) + }, normalizeDate: function () { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Date.now(); + return null === e ? e : new Date(1e3 * Math.floor(+e / 1e3)) + }, str_to_hex: function (e) { + if (null === e) return ""; + for (var t = [], r = e.length, n = 0, i = void 0; n < r;) { + for (i = e.charCodeAt(n++).toString(16); i.length < 2;) i = "0" + i; + t.push("" + i) + } + return t.join("") + }, hex_to_str: function (e) { + for (var t = "", r = 0; r < e.length; r += 2) t += String.fromCharCode(parseInt(e.substr(r, 2), 16)); + return t + }, Uint8Array_to_MPI: function (e) { + var t = 8 * (e.length - 1) + i.default.nbits(e[0]), + r = Uint8Array.from([(65280 & t) >> 8, 255 & t]); + return i.default.concatUint8Array([r, e]) + }, b64_to_Uint8Array: function (e) { + return a.default.decode(e.replace(/\-/g, "+").replace(/_/g, "/")) + }, Uint8Array_to_b64: function (e, t) { + return a.default.encode(e, t).replace("\n", "") + }, hex_to_Uint8Array: function (e) { + for (var t = new Uint8Array(e.length >> 1), r = 0; r < e.length >> 1; r++) t[r] = parseInt(e.substr(r << 1, 2), 16); + return t + }, Uint8Array_to_hex: function (e) { + for (var t = [], r = e.length, n = 0, i = void 0; n < r;) { + for (i = e[n++].toString(16); i.length < 2;) i = "0" + i; + t.push("" + i) + } + return t.join("") + }, str_to_Uint8Array: function (e) { + if (!i.default.isString(e)) throw new Error("str_to_Uint8Array: Data must be in the form of a string"); + for (var t = new Uint8Array(e.length), r = 0; r < e.length; r++) t[r] = e.charCodeAt(r); + return t + }, Uint8Array_to_str: function (e) { + for (var t = [], r = (e = new Uint8Array(e)).length, n = 0; n < r; n += 16384) t.push(String.fromCharCode.apply(String, e.subarray(n, n + 16384 < r ? n + 16384 : r))); + return t.join("") + }, encode_utf8: function (e) { + return unescape(encodeURIComponent(e)) + }, decode_utf8: function (e) { + if ("string" != typeof e) throw new Error('Parameter "utf8" is not of type string'); + try { + return decodeURIComponent(escape(e)) + } catch (t) { + return e + } + }, concatUint8Array: function (e) { + for (var t = 0, r = 0; r < e.length; r++) { + if (!i.default.isUint8Array(e[r])) throw new Error("concatUint8Array: Data must be in the form of a Uint8Array"); + t += e[r].length + } + var n = new Uint8Array(t), a = 0; + return e.forEach(function (e) { + n.set(e, a), a += e.length + }), n + }, copyUint8Array: function (e) { + if (!i.default.isUint8Array(e)) throw new Error("Data must be in the form of a Uint8Array"); + var t = new Uint8Array(e.length); + return t.set(e), t + }, equalsUint8Array: function (e, t) { + if (!i.default.isUint8Array(e) || !i.default.isUint8Array(t)) throw new Error("Data must be in the form of a Uint8Array"); + if (e.length !== t.length) return !1; + for (var r = 0; r < e.length; r++) if (e[r] !== t[r]) return !1; + return !0 + }, calc_checksum: function (e) { + for (var t = { + s: 0, add: function (e) { + this.s = (this.s + e) % 65536 + } + }, r = 0; r < e.length; r++) t.add(e[r]); + return t.s + }, print_debug: function (e) { + n.default.debug && console.log(e) + }, print_debug_hexarray_dump: function (e, t) { + n.default.debug && (e += ": " + i.default.Uint8Array_to_hex(t), console.log(e)) + }, print_debug_hexstr_dump: function (e, t) { + n.default.debug && (e += i.default.str_to_hex(t), console.log(e)) + }, print_debug_error: function (e) { + n.default.debug && console.error(e) + }, getLeftNBits: function (e, t) { + var r = t % 8; + if (0 === r) return e.subarray(0, t / 8); + var n = (t - r) / 8 + 1, a = e.subarray(0, n); + return i.default.shiftRight(a, 8 - r) + }, nbits: function (e) { + var t = 1, r = e >>> 16; + return 0 !== r && (e = r, t += 16), 0 !== (r = e >> 8) && (e = r, t += 8), 0 !== (r = e >> 4) && (e = r, t += 4), 0 !== (r = e >> 2) && (e = r, t += 2), 0 !== (r = e >> 1) && (e = r, t += 1), t + }, double: function (e) { + for (var t = new Uint8Array(e.length), r = e.length - 1, n = 0; n < r; n++) t[n] = e[n] << 1 ^ e[n + 1] >> 7; + return t[r] = e[r] << 1 ^ 135 * (e[0] >> 7), t + }, shiftRight: function (e, t) { + if (t) for (var r = e.length - 1; r >= 0; r--) e[r] >>= t, r > 0 && (e[r] |= e[r - 1] << 8 - t); + return e + }, getWebCrypto: function () { + if (n.default.use_native) return "undefined" != typeof window && window.crypto && window.crypto.subtle + }, getWebCryptoAll: function () { + if (n.default.use_native && "undefined" != typeof window) { + if (window.crypto) return window.crypto.subtle || window.crypto.webkitSubtle; + if (window.msCrypto) return window.msCrypto.subtle + } + }, detectNode: function () { + return "undefined" == typeof window + }, getNodeCrypto: function () { + if (i.default.detectNode() && n.default.use_native) return e("crypto") + }, getNodeBuffer: function () { + if (i.default.detectNode()) return e("buffer").Buffer + }, getNodeZlib: function () { + if (i.default.detectNode() && n.default.use_native) return e("zlib") + }, isEmailAddress: function (e) { + if (!i.default.isString(e)) return !1; + return /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}|xn--[a-zA-Z\-0-9]+)))$/.test(e) + }, isUserId: function (e) { + return !!i.default.isString(e) && (/$/.test(e)) + }, canonicalizeEOL: function (e) { + return e.replace(/\r\n/g, "\n").replace(/\r/g, "\n").replace(/\n/g, "\r\n") + }, nativeEOL: function (e) { + return e.replace(/\r\n/g, "\n") + }, removeTrailingSpaces: function (e) { + return e.replace(/[ \t]+$/gm, "") + } } - else { - return { - status: "success", - plaintext: plaintext[0], - signature: "forged", - publicKeyString: my.publicKeyString(publickey) - }; + }, {"./config": 309, "./encoding/base64": 342, "./util": 382, crypto: "crypto", zlib: "zlib"}], + 383: [function (e, t, r) { + "use strict"; + Object.defineProperty(r, "__esModule", {value: !0}); + var n, i = c(e("babel-runtime/core-js/promise")), a = c(e("babel-runtime/regenerator")), + s = c(e("babel-runtime/helpers/asyncToGenerator")), o = c(e("../util.js")), u = c(e("../crypto")), + f = c(e("../packet")); + + function c(e) { + return e && e.__esModule ? e : {default: e} } - } - else { - return {status: "success", plaintext: plaintext[0], signature: "unsigned"}; - } - } - return my; + function d() { + var e = this, t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, r = t.path, + n = void 0 === r ? "openpgp.worker.min.js" : r, i = t.n, a = void 0 === i ? 1 : i, s = t.workers, + o = void 0 === s ? [] : s, u = t.config; + if (o.length) this.workers = o; else for (this.workers = []; this.workers.length < a;) this.workers.push(new Worker(n)); + var f = 0; + this.workers.forEach(function (t) { + t.requests = 0, t.onmessage = function (e) { + return function (t) { + var r = t.data; + switch (r.event) { + case"method-return": + if (r.err) { + var n = new Error(r.err); + n.workerStack = r.stack, this.tasks[r.id].reject(n) + } else this.tasks[r.id].resolve(r.data); + delete this.tasks[r.id], this.workers[e].requests--; + break; + case"request-seed": + this.seedRandom(e, r.amount); + break; + default: + throw new Error("Unknown Worker Event.") + } + } + }(f++).bind(e), t.onerror = function (e) { + throw new Error("Unhandled error in openpgp worker: " + e.message + " (" + e.filename + ":" + e.lineno + ")") + }, u && t.postMessage({event: "configure", config: u}) + }), this.tasks = {}, this.currentID = 0 + } -}()); \ No newline at end of file + d.prototype.getID = function () { + return this.currentID++ + }, d.prototype.seedRandom = (n = (0, s.default)(a.default.mark(function e(t, r) { + var n; + return a.default.wrap(function (e) { + for (; ;) switch (e.prev = e.next) { + case 0: + return e.next = 2, u.default.random.getRandomBytes(r); + case 2: + n = e.sent, this.workers[t].postMessage({ + event: "seed-random", + buf: n + }, o.default.getTransferables(n)); + case 4: + case"end": + return e.stop() + } + }, e, this) + })), function (e, t) { + return n.apply(this, arguments) + }), d.prototype.terminate = function () { + this.workers.forEach(function (e) { + e.terminate() + }) + }, d.prototype.delegate = function (e, t) { + for (var r = this, n = this.getID(), a = this.workers.map(function (e) { + return e.requests + }), s = Math.min(a), u = 0; u < this.workers.length && this.workers[u].requests !== s; u++) ; + return new i.default(function (i, a) { + r.workers[u].postMessage({ + id: n, + event: e, + options: f.default.clone.clonePackets(t) + }, o.default.getTransferables(t)), r.workers[u].requests++, r.tasks[n] = { + resolve: function (t) { + return i(f.default.clone.parseClonedPackets(t, e)) + }, reject: a + } + }) + }, r.default = d + }, { + "../crypto": 324, + "../packet": 355, + "../util.js": 382, + "babel-runtime/core-js/promise": 28, + "babel-runtime/helpers/asyncToGenerator": 31, + "babel-runtime/regenerator": 38 + }] + }, {}, [345])(345) +}); \ No newline at end of file diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/main.js b/main/app/sprinkles/core/assets/SiteAssets/js/main.js index b847258..8125811 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/main.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/main.js @@ -7,6 +7,36 @@ var SearchResults = $(".SearchResults"); var alerts = $("#alerts-page"); var ExploreData = $("#ExploreData"); + +/* +ENCRYPTION + */ + +// encrypt +var openpgp = window.openpgp; +openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'}); +var options, encrypted; +options = { + data: "LOL", + passwords: ['password'], + armor: false +}; +openpgp.encrypt(options).then(function (ciphertext) { + encrypted = ciphertext.message.packets.write(); +}); + +// decrypt +function decrypt() { + options = { + message: openpgp.message.read(encrypted), + passwords: ['passwort'] + //format: 'binary' + }; + openpgp.decrypt(options).then(function (plaintext) { + console.log(plaintext.data) + }) +} + /********** OLD BROWSER *********/ diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/openpgp.worker.js b/main/app/sprinkles/core/assets/SiteAssets/js/openpgp.worker.js new file mode 100644 index 0000000..1d0040f --- /dev/null +++ b/main/app/sprinkles/core/assets/SiteAssets/js/openpgp.worker.js @@ -0,0 +1,70 @@ + +/*! OpenPGP.js v3.0.9 - 2018-04-30 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */ +!function e(n, r, t) { + function o(a, f) { + if (!r[a]) { + if (!n[a]) { + var u = "function" == typeof require && require; + if (!f && u) return u(a, !0); + if (i) return i(a, !0); + var c = new Error("Cannot find module '" + a + "'"); + throw c.code = "MODULE_NOT_FOUND", c + } + var s = r[a] = {exports: {}}; + n[a][0].call(s.exports, function (e) { + var r = n[a][1][e]; + return o(r || e) + }, s, s.exports, e, n, r, t) + } + return r[a].exports + } + + for (var i = "function" == typeof require && require, a = 0; a < t.length; a++) o(t[a]); + return o +}({ + 1: [function (e, n, r) { + self.window = self, importScripts("encryption.js"); + var t = window.openpgp, o = [], i = 6e4; + + function a(e) { + self.postMessage(e, t.util.getTransferables(e.data)) + } + + t.crypto.random.randomBuffer.init(i, function () { + return o.length || self.postMessage({event: "request-seed", amount: i}), new Promise(function (e, n) { + o.push(e) + }) + }), self.onmessage = function (e) { + var n = e.data || {}; + switch (n.event) { + case"configure": + !function (e) { + for (var n in e) t.config[n] = e[n] + }(n.config); + break; + case"seed-random": + !function (e) { + e instanceof Uint8Array || (e = new Uint8Array(e)); + t.crypto.random.randomBuffer.set(e) + }(n.buf); + var r = o; + o = []; + for (var i = 0; i < r.length; i++) r[i](); + break; + default: + !function (e, n, r) { + if ("function" != typeof t[n]) return void a({ + id: e, + event: "method-return", + err: "Unknown Worker Event" + }); + r = t.packet.clone.parseClonedPackets(r, n), t[n](r).then(function (n) { + a({id: e, event: "method-return", data: t.packet.clone.clonePackets(n)}) + }).catch(function (n) { + a({id: e, event: "method-return", err: n.message, stack: n.stack}) + }) + }(n.id, n.event, n.options || {}) + } + } + }, {}] +}, {}, [1]); \ No newline at end of file -- cgit v1.2.3