6128 lines
268 KiB
6128 lines
268 KiB
/*! For license information please see jsencrypt.min.js.LICENSE.txt */
|
|
function JSEncrypts (t,e){
|
|
return (() => {
|
|
'use strict';
|
|
var t = [
|
|
,
|
|
(t, e, i) => {
|
|
function r(t) {
|
|
return '0123456789abcdefghijklmnopqrstuvwxyz'.charAt(t);
|
|
}
|
|
function n(t, e) {
|
|
return t & e;
|
|
}
|
|
function s(t, e) {
|
|
return t | e;
|
|
}
|
|
function o(t, e) {
|
|
return t ^ e;
|
|
}
|
|
function h(t, e) {
|
|
return t & ~e;
|
|
}
|
|
function a(t) {
|
|
if (0 == t) return -1;
|
|
var e = 0;
|
|
return (
|
|
0 == (65535 & t) && ((t >>= 16), (e += 16)),
|
|
0 == (255 & t) && ((t >>= 8), (e += 8)),
|
|
0 == (15 & t) && ((t >>= 4), (e += 4)),
|
|
0 == (3 & t) && ((t >>= 2), (e += 2)),
|
|
0 == (1 & t) && ++e,
|
|
e
|
|
);
|
|
}
|
|
function u(t) {
|
|
for (var e = 0; 0 != t; ) (t &= t - 1), ++e;
|
|
return e;
|
|
}
|
|
i.d(e, {default: () => nt});
|
|
var c,
|
|
f =
|
|
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
function l(t) {
|
|
var e,
|
|
i,
|
|
r = '';
|
|
for (e = 0; e + 3 <= t.length; e += 3)
|
|
(i = parseInt(t.substring(e, e + 3), 16)),
|
|
(r += f.charAt(i >> 6) + f.charAt(63 & i));
|
|
for (
|
|
e + 1 == t.length
|
|
? ((i = parseInt(t.substring(e, e + 1), 16)),
|
|
(r += f.charAt(i << 2)))
|
|
: e + 2 == t.length &&
|
|
((i = parseInt(t.substring(e, e + 2), 16)),
|
|
(r += f.charAt(i >> 2) + f.charAt((3 & i) << 4)));
|
|
(3 & r.length) > 0;
|
|
|
|
)
|
|
r += '=';
|
|
return r;
|
|
}
|
|
function p(t) {
|
|
var e,
|
|
i = '',
|
|
n = 0,
|
|
s = 0;
|
|
for (e = 0; e < t.length && '=' != t.charAt(e); ++e) {
|
|
var o = f.indexOf(t.charAt(e));
|
|
o < 0 ||
|
|
(0 == n
|
|
? ((i += r(o >> 2)), (s = 3 & o), (n = 1))
|
|
: 1 == n
|
|
? ((i += r((s << 2) | (o >> 4))), (s = 15 & o), (n = 2))
|
|
: 2 == n
|
|
? ((i += r(s)), (i += r(o >> 2)), (s = 3 & o), (n = 3))
|
|
: ((i += r((s << 2) | (o >> 4))), (i += r(15 & o)), (n = 0)));
|
|
}
|
|
return 1 == n && (i += r(s << 2)), i;
|
|
}
|
|
var g,
|
|
d = {
|
|
decode: function (t) {
|
|
var e;
|
|
if (void 0 === g) {
|
|
var i = '= \f\n\r\t \u2028\u2029';
|
|
for (g = Object.create(null), e = 0; e < 64; ++e)
|
|
g[
|
|
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(
|
|
e,
|
|
)
|
|
] = e;
|
|
for (g['-'] = 62, g._ = 63, e = 0; e < i.length; ++e)
|
|
g[i.charAt(e)] = -1;
|
|
}
|
|
var r = [],
|
|
n = 0,
|
|
s = 0;
|
|
for (e = 0; e < t.length; ++e) {
|
|
var o = t.charAt(e);
|
|
if ('=' == o) break;
|
|
if (-1 != (o = g[o])) {
|
|
if (void 0 === o)
|
|
throw new Error('Illegal character at offset ' + e);
|
|
(n |= o),
|
|
++s >= 4
|
|
? ((r[r.length] = n >> 16),
|
|
(r[r.length] = (n >> 8) & 255),
|
|
(r[r.length] = 255 & n),
|
|
(n = 0),
|
|
(s = 0))
|
|
: (n <<= 6);
|
|
}
|
|
}
|
|
switch (s) {
|
|
case 1:
|
|
throw new Error(
|
|
'Base64 encoding incomplete: at least 2 bits missing',
|
|
);
|
|
case 2:
|
|
r[r.length] = n >> 10;
|
|
break;
|
|
case 3:
|
|
(r[r.length] = n >> 16), (r[r.length] = (n >> 8) & 255);
|
|
}
|
|
return r;
|
|
},
|
|
re: /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,
|
|
unarmor: function (t) {
|
|
var e = d.re.exec(t);
|
|
if (e)
|
|
if (e[1]) t = e[1];
|
|
else {
|
|
if (!e[2]) throw new Error('RegExp out of sync');
|
|
t = e[2];
|
|
}
|
|
return d.decode(t);
|
|
},
|
|
},
|
|
v = 1e13,
|
|
m = (function () {
|
|
function t(t) {
|
|
this.buf = [+t || 0];
|
|
}
|
|
return (
|
|
(t.prototype.mulAdd = function (t, e) {
|
|
var i,
|
|
r,
|
|
n = this.buf,
|
|
s = n.length;
|
|
for (i = 0; i < s; ++i)
|
|
(r = n[i] * t + e) < v
|
|
? (e = 0)
|
|
: (r -= (e = 0 | (r / v)) * v),
|
|
(n[i] = r);
|
|
e > 0 && (n[i] = e);
|
|
}),
|
|
(t.prototype.sub = function (t) {
|
|
var e,
|
|
i,
|
|
r = this.buf,
|
|
n = r.length;
|
|
for (e = 0; e < n; ++e)
|
|
(i = r[e] - t) < 0 ? ((i += v), (t = 1)) : (t = 0),
|
|
(r[e] = i);
|
|
for (; 0 === r[r.length - 1]; ) r.pop();
|
|
}),
|
|
(t.prototype.toString = function (t) {
|
|
if (10 != (t || 10))
|
|
throw new Error('only base 10 is supported');
|
|
for (
|
|
var e = this.buf,
|
|
i = e[e.length - 1].toString(),
|
|
r = e.length - 2;
|
|
r >= 0;
|
|
--r
|
|
)
|
|
i += (v + e[r]).toString().substring(1);
|
|
return i;
|
|
}),
|
|
(t.prototype.valueOf = function () {
|
|
for (var t = this.buf, e = 0, i = t.length - 1; i >= 0; --i)
|
|
e = e * v + t[i];
|
|
return e;
|
|
}),
|
|
(t.prototype.simplify = function () {
|
|
var t = this.buf;
|
|
return 1 == t.length ? t[0] : this;
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
y =
|
|
/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,
|
|
b =
|
|
/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
|
|
function T(t, e) {
|
|
return t.length > e && (t = t.substring(0, e) + '…'), t;
|
|
}
|
|
var S,
|
|
E = (function () {
|
|
function t(e, i) {
|
|
(this.hexDigits = '0123456789ABCDEF'),
|
|
e instanceof t
|
|
? ((this.enc = e.enc), (this.pos = e.pos))
|
|
: ((this.enc = e), (this.pos = i));
|
|
}
|
|
return (
|
|
(t.prototype.get = function (t) {
|
|
if ((void 0 === t && (t = this.pos++), t >= this.enc.length))
|
|
throw new Error(
|
|
'Requesting byte offset ' +
|
|
t +
|
|
' on a stream of length ' +
|
|
this.enc.length,
|
|
);
|
|
return 'string' == typeof this.enc
|
|
? this.enc.charCodeAt(t)
|
|
: this.enc[t];
|
|
}),
|
|
(t.prototype.hexByte = function (t) {
|
|
return (
|
|
this.hexDigits.charAt((t >> 4) & 15) +
|
|
this.hexDigits.charAt(15 & t)
|
|
);
|
|
}),
|
|
(t.prototype.hexDump = function (t, e, i) {
|
|
for (var r = '', n = t; n < e; ++n)
|
|
if (((r += this.hexByte(this.get(n))), !0 !== i))
|
|
switch (15 & n) {
|
|
case 7:
|
|
r += ' ';
|
|
break;
|
|
case 15:
|
|
r += '\n';
|
|
break;
|
|
default:
|
|
r += ' ';
|
|
}
|
|
return r;
|
|
}),
|
|
(t.prototype.isASCII = function (t, e) {
|
|
for (var i = t; i < e; ++i) {
|
|
var r = this.get(i);
|
|
if (r < 32 || r > 176) return !1;
|
|
}
|
|
return !0;
|
|
}),
|
|
(t.prototype.parseStringISO = function (t, e) {
|
|
for (var i = '', r = t; r < e; ++r)
|
|
i += String.fromCharCode(this.get(r));
|
|
return i;
|
|
}),
|
|
(t.prototype.parseStringUTF = function (t, e) {
|
|
for (var i = '', r = t; r < e; ) {
|
|
var n = this.get(r++);
|
|
i +=
|
|
n < 128
|
|
? String.fromCharCode(n)
|
|
: n > 191 && n < 224
|
|
? String.fromCharCode(
|
|
((31 & n) << 6) | (63 & this.get(r++)),
|
|
)
|
|
: String.fromCharCode(
|
|
((15 & n) << 12) |
|
|
((63 & this.get(r++)) << 6) |
|
|
(63 & this.get(r++)),
|
|
);
|
|
}
|
|
return i;
|
|
}),
|
|
(t.prototype.parseStringBMP = function (t, e) {
|
|
for (var i, r, n = '', s = t; s < e; )
|
|
(i = this.get(s++)),
|
|
(r = this.get(s++)),
|
|
(n += String.fromCharCode((i << 8) | r));
|
|
return n;
|
|
}),
|
|
(t.prototype.parseTime = function (t, e, i) {
|
|
var r = this.parseStringISO(t, e),
|
|
n = (i ? y : b).exec(r);
|
|
return n
|
|
? (i && ((n[1] = +n[1]), (n[1] += +n[1] < 70 ? 2e3 : 1900)),
|
|
(r = n[1] + '-' + n[2] + '-' + n[3] + ' ' + n[4]),
|
|
n[5] &&
|
|
((r += ':' + n[5]),
|
|
n[6] && ((r += ':' + n[6]), n[7] && (r += '.' + n[7]))),
|
|
n[8] &&
|
|
((r += ' UTC'),
|
|
'Z' != n[8] &&
|
|
((r += n[8]), n[9] && (r += ':' + n[9]))),
|
|
r)
|
|
: 'Unrecognized time: ' + r;
|
|
}),
|
|
(t.prototype.parseInteger = function (t, e) {
|
|
for (
|
|
var i,
|
|
r = this.get(t),
|
|
n = r > 127,
|
|
s = n ? 255 : 0,
|
|
o = '';
|
|
r == s && ++t < e;
|
|
|
|
)
|
|
r = this.get(t);
|
|
if (0 == (i = e - t)) return n ? -1 : 0;
|
|
if (i > 4) {
|
|
for (o = r, i <<= 3; 0 == (128 & (+o ^ s)); )
|
|
(o = +o << 1), --i;
|
|
o = '(' + i + ' bit)\n';
|
|
}
|
|
n && (r -= 256);
|
|
for (var h = new m(r), a = t + 1; a < e; ++a)
|
|
h.mulAdd(256, this.get(a));
|
|
return o + h.toString();
|
|
}),
|
|
(t.prototype.parseBitString = function (t, e, i) {
|
|
for (
|
|
var r = this.get(t),
|
|
n = '(' + (((e - t - 1) << 3) - r) + ' bit)\n',
|
|
s = '',
|
|
o = t + 1;
|
|
o < e;
|
|
++o
|
|
) {
|
|
for (
|
|
var h = this.get(o), a = o == e - 1 ? r : 0, u = 7;
|
|
u >= a;
|
|
--u
|
|
)
|
|
s += (h >> u) & 1 ? '1' : '0';
|
|
if (s.length > i) return n + T(s, i);
|
|
}
|
|
return n + s;
|
|
}),
|
|
(t.prototype.parseOctetString = function (t, e, i) {
|
|
if (this.isASCII(t, e))
|
|
return T(this.parseStringISO(t, e), i);
|
|
var r = e - t,
|
|
n = '(' + r + ' byte)\n';
|
|
r > (i /= 2) && (e = t + i);
|
|
for (var s = t; s < e; ++s) n += this.hexByte(this.get(s));
|
|
return r > i && (n += '…'), n;
|
|
}),
|
|
(t.prototype.parseOID = function (t, e, i) {
|
|
for (var r = '', n = new m(), s = 0, o = t; o < e; ++o) {
|
|
var h = this.get(o);
|
|
if ((n.mulAdd(128, 127 & h), (s += 7), !(128 & h))) {
|
|
if ('' === r)
|
|
if ((n = n.simplify()) instanceof m)
|
|
n.sub(80), (r = '2.' + n.toString());
|
|
else {
|
|
var a = n < 80 ? (n < 40 ? 0 : 1) : 2;
|
|
r = a + '.' + (n - 40 * a);
|
|
}
|
|
else r += '.' + n.toString();
|
|
if (r.length > i) return T(r, i);
|
|
(n = new m()), (s = 0);
|
|
}
|
|
}
|
|
return s > 0 && (r += '.incomplete'), r;
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
w = (function () {
|
|
function t(t, e, i, r, n) {
|
|
if (!(r instanceof D)) throw new Error('Invalid tag value.');
|
|
(this.stream = t),
|
|
(this.header = e),
|
|
(this.length = i),
|
|
(this.tag = r),
|
|
(this.sub = n);
|
|
}
|
|
return (
|
|
(t.prototype.typeName = function () {
|
|
switch (this.tag.tagClass) {
|
|
case 0:
|
|
switch (this.tag.tagNumber) {
|
|
case 0:
|
|
return 'EOC';
|
|
case 1:
|
|
return 'BOOLEAN';
|
|
case 2:
|
|
return 'INTEGER';
|
|
case 3:
|
|
return 'BIT_STRING';
|
|
case 4:
|
|
return 'OCTET_STRING';
|
|
case 5:
|
|
return 'NULL';
|
|
case 6:
|
|
return 'OBJECT_IDENTIFIER';
|
|
case 7:
|
|
return 'ObjectDescriptor';
|
|
case 8:
|
|
return 'EXTERNAL';
|
|
case 9:
|
|
return 'REAL';
|
|
case 10:
|
|
return 'ENUMERATED';
|
|
case 11:
|
|
return 'EMBEDDED_PDV';
|
|
case 12:
|
|
return 'UTF8String';
|
|
case 16:
|
|
return 'SEQUENCE';
|
|
case 17:
|
|
return 'SET';
|
|
case 18:
|
|
return 'NumericString';
|
|
case 19:
|
|
return 'PrintableString';
|
|
case 20:
|
|
return 'TeletexString';
|
|
case 21:
|
|
return 'VideotexString';
|
|
case 22:
|
|
return 'IA5String';
|
|
case 23:
|
|
return 'UTCTime';
|
|
case 24:
|
|
return 'GeneralizedTime';
|
|
case 25:
|
|
return 'GraphicString';
|
|
case 26:
|
|
return 'VisibleString';
|
|
case 27:
|
|
return 'GeneralString';
|
|
case 28:
|
|
return 'UniversalString';
|
|
case 30:
|
|
return 'BMPString';
|
|
}
|
|
return 'Universal_' + this.tag.tagNumber.toString();
|
|
case 1:
|
|
return 'Application_' + this.tag.tagNumber.toString();
|
|
case 2:
|
|
return '[' + this.tag.tagNumber.toString() + ']';
|
|
case 3:
|
|
return 'Private_' + this.tag.tagNumber.toString();
|
|
}
|
|
}),
|
|
(t.prototype.content = function (t) {
|
|
if (void 0 === this.tag) return null;
|
|
void 0 === t && (t = 1 / 0);
|
|
var e = this.posContent(),
|
|
i = Math.abs(this.length);
|
|
if (!this.tag.isUniversal())
|
|
return null !== this.sub
|
|
? '(' + this.sub.length + ' elem)'
|
|
: this.stream.parseOctetString(e, e + i, t);
|
|
switch (this.tag.tagNumber) {
|
|
case 1:
|
|
return 0 === this.stream.get(e) ? 'false' : 'true';
|
|
case 2:
|
|
return this.stream.parseInteger(e, e + i);
|
|
case 3:
|
|
return this.sub
|
|
? '(' + this.sub.length + ' elem)'
|
|
: this.stream.parseBitString(e, e + i, t);
|
|
case 4:
|
|
return this.sub
|
|
? '(' + this.sub.length + ' elem)'
|
|
: this.stream.parseOctetString(e, e + i, t);
|
|
case 6:
|
|
return this.stream.parseOID(e, e + i, t);
|
|
case 16:
|
|
case 17:
|
|
return null !== this.sub
|
|
? '(' + this.sub.length + ' elem)'
|
|
: '(no elem)';
|
|
case 12:
|
|
return T(this.stream.parseStringUTF(e, e + i), t);
|
|
case 18:
|
|
case 19:
|
|
case 20:
|
|
case 21:
|
|
case 22:
|
|
case 26:
|
|
return T(this.stream.parseStringISO(e, e + i), t);
|
|
case 30:
|
|
return T(this.stream.parseStringBMP(e, e + i), t);
|
|
case 23:
|
|
case 24:
|
|
return this.stream.parseTime(
|
|
e,
|
|
e + i,
|
|
23 == this.tag.tagNumber,
|
|
);
|
|
}
|
|
return null;
|
|
}),
|
|
(t.prototype.toString = function () {
|
|
return (
|
|
this.typeName() +
|
|
'@' +
|
|
this.stream.pos +
|
|
'[header:' +
|
|
this.header +
|
|
',length:' +
|
|
this.length +
|
|
',sub:' +
|
|
(null === this.sub ? 'null' : this.sub.length) +
|
|
']'
|
|
);
|
|
}),
|
|
(t.prototype.toPrettyString = function (t) {
|
|
void 0 === t && (t = '');
|
|
var e = t + this.typeName() + ' @' + this.stream.pos;
|
|
if (
|
|
(this.length >= 0 && (e += '+'),
|
|
(e += this.length),
|
|
this.tag.tagConstructed
|
|
? (e += ' (constructed)')
|
|
: !this.tag.isUniversal() ||
|
|
(3 != this.tag.tagNumber && 4 != this.tag.tagNumber) ||
|
|
null === this.sub ||
|
|
(e += ' (encapsulates)'),
|
|
(e += '\n'),
|
|
null !== this.sub)
|
|
) {
|
|
t += ' ';
|
|
for (var i = 0, r = this.sub.length; i < r; ++i)
|
|
e += this.sub[i].toPrettyString(t);
|
|
}
|
|
return e;
|
|
}),
|
|
(t.prototype.posStart = function () {
|
|
return this.stream.pos;
|
|
}),
|
|
(t.prototype.posContent = function () {
|
|
return this.stream.pos + this.header;
|
|
}),
|
|
(t.prototype.posEnd = function () {
|
|
return this.stream.pos + this.header + Math.abs(this.length);
|
|
}),
|
|
(t.prototype.toHexString = function () {
|
|
return this.stream.hexDump(
|
|
this.posStart(),
|
|
this.posEnd(),
|
|
!0,
|
|
);
|
|
}),
|
|
(t.decodeLength = function (t) {
|
|
var e = t.get(),
|
|
i = 127 & e;
|
|
if (i == e) return i;
|
|
if (i > 6)
|
|
throw new Error(
|
|
'Length over 48 bits not supported at position ' +
|
|
(t.pos - 1),
|
|
);
|
|
if (0 === i) return null;
|
|
e = 0;
|
|
for (var r = 0; r < i; ++r) e = 256 * e + t.get();
|
|
return e;
|
|
}),
|
|
(t.prototype.getHexStringValue = function () {
|
|
var t = this.toHexString(),
|
|
e = 2 * this.header,
|
|
i = 2 * this.length;
|
|
return t.substr(e, i);
|
|
}),
|
|
(t.decode = function (e) {
|
|
var i;
|
|
i = e instanceof E ? e : new E(e, 0);
|
|
var r = new E(i),
|
|
n = new D(i),
|
|
s = t.decodeLength(i),
|
|
o = i.pos,
|
|
h = o - r.pos,
|
|
a = null,
|
|
u = function () {
|
|
var e = [];
|
|
if (null !== s) {
|
|
for (var r = o + s; i.pos < r; )
|
|
e[e.length] = t.decode(i);
|
|
if (i.pos != r)
|
|
throw new Error(
|
|
'Content size is not correct for container starting at offset ' +
|
|
o,
|
|
);
|
|
} else
|
|
try {
|
|
for (;;) {
|
|
var n = t.decode(i);
|
|
if (n.tag.isEOC()) break;
|
|
e[e.length] = n;
|
|
}
|
|
s = o - i.pos;
|
|
} catch (t) {
|
|
throw new Error(
|
|
'Exception while decoding undefined length content: ' +
|
|
t,
|
|
);
|
|
}
|
|
return e;
|
|
};
|
|
if (n.tagConstructed) a = u();
|
|
else if (
|
|
n.isUniversal() &&
|
|
(3 == n.tagNumber || 4 == n.tagNumber)
|
|
)
|
|
try {
|
|
if (3 == n.tagNumber && 0 != i.get())
|
|
throw new Error(
|
|
'BIT STRINGs with unused bits cannot encapsulate.',
|
|
);
|
|
a = u();
|
|
for (var c = 0; c < a.length; ++c)
|
|
if (a[c].tag.isEOC())
|
|
throw new Error(
|
|
'EOC is not supposed to be actual content.',
|
|
);
|
|
} catch (t) {
|
|
a = null;
|
|
}
|
|
if (null === a) {
|
|
if (null === s)
|
|
throw new Error(
|
|
"We can't skip over an invalid tag with undefined length at offset " +
|
|
o,
|
|
);
|
|
i.pos = o + Math.abs(s);
|
|
}
|
|
return new t(r, h, s, n, a);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
D = (function () {
|
|
function t(t) {
|
|
var e = t.get();
|
|
if (
|
|
((this.tagClass = e >> 6),
|
|
(this.tagConstructed = 0 != (32 & e)),
|
|
(this.tagNumber = 31 & e),
|
|
31 == this.tagNumber)
|
|
) {
|
|
var i = new m();
|
|
do {
|
|
(e = t.get()), i.mulAdd(128, 127 & e);
|
|
} while (128 & e);
|
|
this.tagNumber = i.simplify();
|
|
}
|
|
}
|
|
return (
|
|
(t.prototype.isUniversal = function () {
|
|
return 0 === this.tagClass;
|
|
}),
|
|
(t.prototype.isEOC = function () {
|
|
return 0 === this.tagClass && 0 === this.tagNumber;
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
x = [
|
|
2, 3, 5, 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,
|
|
],
|
|
R = (1 << 26) / x[x.length - 1],
|
|
B = (function () {
|
|
function t(t, e, i) {
|
|
null != t &&
|
|
('number' == typeof t
|
|
? this.fromNumber(t, e, i)
|
|
: null == e && 'string' != typeof t
|
|
? this.fromString(t, 256)
|
|
: this.fromString(t, e));
|
|
}
|
|
return (
|
|
(t.prototype.toString = function (t) {
|
|
if (this.s < 0) return '-' + this.negate().toString(t);
|
|
var e;
|
|
if (16 == t) e = 4;
|
|
else if (8 == t) e = 3;
|
|
else if (2 == t) e = 1;
|
|
else if (32 == t) e = 5;
|
|
else {
|
|
if (4 != t) return this.toRadix(t);
|
|
e = 2;
|
|
}
|
|
var i,
|
|
n = (1 << e) - 1,
|
|
s = !1,
|
|
o = '',
|
|
h = this.t,
|
|
a = this.DB - ((h * this.DB) % e);
|
|
if (h-- > 0)
|
|
for (
|
|
a < this.DB &&
|
|
(i = this[h] >> a) > 0 &&
|
|
((s = !0), (o = r(i)));
|
|
h >= 0;
|
|
|
|
)
|
|
a < e
|
|
? ((i = (this[h] & ((1 << a) - 1)) << (e - a)),
|
|
(i |= this[--h] >> (a += this.DB - e)))
|
|
: ((i = (this[h] >> (a -= e)) & n),
|
|
a <= 0 && ((a += this.DB), --h)),
|
|
i > 0 && (s = !0),
|
|
s && (o += r(i));
|
|
return s ? o : '0';
|
|
}),
|
|
(t.prototype.negate = function () {
|
|
var e = N();
|
|
return t.ZERO.subTo(this, e), e;
|
|
}),
|
|
(t.prototype.abs = function () {
|
|
return this.s < 0 ? this.negate() : this;
|
|
}),
|
|
(t.prototype.compareTo = function (t) {
|
|
var e = this.s - t.s;
|
|
if (0 != e) return e;
|
|
var i = this.t;
|
|
if (0 != (e = i - t.t)) return this.s < 0 ? -e : e;
|
|
for (; --i >= 0; ) if (0 != (e = this[i] - t[i])) return e;
|
|
return 0;
|
|
}),
|
|
(t.prototype.bitLength = function () {
|
|
return this.t <= 0
|
|
? 0
|
|
: this.DB * (this.t - 1) +
|
|
F(this[this.t - 1] ^ (this.s & this.DM));
|
|
}),
|
|
(t.prototype.mod = function (e) {
|
|
var i = N();
|
|
return (
|
|
this.abs().divRemTo(e, null, i),
|
|
this.s < 0 && i.compareTo(t.ZERO) > 0 && e.subTo(i, i),
|
|
i
|
|
);
|
|
}),
|
|
(t.prototype.modPowInt = function (t, e) {
|
|
var i;
|
|
return (
|
|
(i = t < 256 || e.isEven() ? new A(e) : new V(e)),
|
|
this.exp(t, i)
|
|
);
|
|
}),
|
|
(t.prototype.clone = function () {
|
|
var t = N();
|
|
return this.copyTo(t), t;
|
|
}),
|
|
(t.prototype.intValue = function () {
|
|
if (this.s < 0) {
|
|
if (1 == this.t) return this[0] - this.DV;
|
|
if (0 == this.t) return -1;
|
|
} else {
|
|
if (1 == this.t) return this[0];
|
|
if (0 == this.t) return 0;
|
|
}
|
|
return (
|
|
((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) |
|
|
this[0]
|
|
);
|
|
}),
|
|
(t.prototype.byteValue = function () {
|
|
return 0 == this.t ? this.s : (this[0] << 24) >> 24;
|
|
}),
|
|
(t.prototype.shortValue = function () {
|
|
return 0 == this.t ? this.s : (this[0] << 16) >> 16;
|
|
}),
|
|
(t.prototype.signum = function () {
|
|
return this.s < 0
|
|
? -1
|
|
: this.t <= 0 || (1 == this.t && this[0] <= 0)
|
|
? 0
|
|
: 1;
|
|
}),
|
|
(t.prototype.toByteArray = function () {
|
|
var t = this.t,
|
|
e = [];
|
|
e[0] = this.s;
|
|
var i,
|
|
r = this.DB - ((t * this.DB) % 8),
|
|
n = 0;
|
|
if (t-- > 0)
|
|
for (
|
|
r < this.DB &&
|
|
(i = this[t] >> r) != (this.s & this.DM) >> r &&
|
|
(e[n++] = i | (this.s << (this.DB - r)));
|
|
t >= 0;
|
|
|
|
)
|
|
r < 8
|
|
? ((i = (this[t] & ((1 << r) - 1)) << (8 - r)),
|
|
(i |= this[--t] >> (r += this.DB - 8)))
|
|
: ((i = (this[t] >> (r -= 8)) & 255),
|
|
r <= 0 && ((r += this.DB), --t)),
|
|
0 != (128 & i) && (i |= -256),
|
|
0 == n && (128 & this.s) != (128 & i) && ++n,
|
|
(n > 0 || i != this.s) && (e[n++] = i);
|
|
return e;
|
|
}),
|
|
(t.prototype.equals = function (t) {
|
|
return 0 == this.compareTo(t);
|
|
}),
|
|
(t.prototype.min = function (t) {
|
|
return this.compareTo(t) < 0 ? this : t;
|
|
}),
|
|
(t.prototype.max = function (t) {
|
|
return this.compareTo(t) > 0 ? this : t;
|
|
}),
|
|
(t.prototype.and = function (t) {
|
|
var e = N();
|
|
return this.bitwiseTo(t, n, e), e;
|
|
}),
|
|
(t.prototype.or = function (t) {
|
|
var e = N();
|
|
return this.bitwiseTo(t, s, e), e;
|
|
}),
|
|
(t.prototype.xor = function (t) {
|
|
var e = N();
|
|
return this.bitwiseTo(t, o, e), e;
|
|
}),
|
|
(t.prototype.andNot = function (t) {
|
|
var e = N();
|
|
return this.bitwiseTo(t, h, e), e;
|
|
}),
|
|
(t.prototype.not = function () {
|
|
for (var t = N(), e = 0; e < this.t; ++e)
|
|
t[e] = this.DM & ~this[e];
|
|
return (t.t = this.t), (t.s = ~this.s), t;
|
|
}),
|
|
(t.prototype.shiftLeft = function (t) {
|
|
var e = N();
|
|
return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e;
|
|
}),
|
|
(t.prototype.shiftRight = function (t) {
|
|
var e = N();
|
|
return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e;
|
|
}),
|
|
(t.prototype.getLowestSetBit = function () {
|
|
for (var t = 0; t < this.t; ++t)
|
|
if (0 != this[t]) return t * this.DB + a(this[t]);
|
|
return this.s < 0 ? this.t * this.DB : -1;
|
|
}),
|
|
(t.prototype.bitCount = function () {
|
|
for (var t = 0, e = this.s & this.DM, i = 0; i < this.t; ++i)
|
|
t += u(this[i] ^ e);
|
|
return t;
|
|
}),
|
|
(t.prototype.testBit = function (t) {
|
|
var e = Math.floor(t / this.DB);
|
|
return e >= this.t
|
|
? 0 != this.s
|
|
: 0 != (this[e] & (1 << t % this.DB));
|
|
}),
|
|
(t.prototype.setBit = function (t) {
|
|
return this.changeBit(t, s);
|
|
}),
|
|
(t.prototype.clearBit = function (t) {
|
|
return this.changeBit(t, h);
|
|
}),
|
|
(t.prototype.flipBit = function (t) {
|
|
return this.changeBit(t, o);
|
|
}),
|
|
(t.prototype.add = function (t) {
|
|
var e = N();
|
|
return this.addTo(t, e), e;
|
|
}),
|
|
(t.prototype.subtract = function (t) {
|
|
var e = N();
|
|
return this.subTo(t, e), e;
|
|
}),
|
|
(t.prototype.multiply = function (t) {
|
|
var e = N();
|
|
return this.multiplyTo(t, e), e;
|
|
}),
|
|
(t.prototype.divide = function (t) {
|
|
var e = N();
|
|
return this.divRemTo(t, e, null), e;
|
|
}),
|
|
(t.prototype.remainder = function (t) {
|
|
var e = N();
|
|
return this.divRemTo(t, null, e), e;
|
|
}),
|
|
(t.prototype.divideAndRemainder = function (t) {
|
|
var e = N(),
|
|
i = N();
|
|
return this.divRemTo(t, e, i), [e, i];
|
|
}),
|
|
(t.prototype.modPow = function (t, e) {
|
|
var i,
|
|
r,
|
|
n = t.bitLength(),
|
|
s = C(1);
|
|
if (n <= 0) return s;
|
|
(i = n < 18 ? 1 : n < 48 ? 3 : n < 144 ? 4 : n < 768 ? 5 : 6),
|
|
(r = n < 8 ? new A(e) : e.isEven() ? new I(e) : new V(e));
|
|
var o = [],
|
|
h = 3,
|
|
a = i - 1,
|
|
u = (1 << i) - 1;
|
|
if (((o[1] = r.convert(this)), i > 1)) {
|
|
var c = N();
|
|
for (r.sqrTo(o[1], c); h <= u; )
|
|
(o[h] = N()), r.mulTo(c, o[h - 2], o[h]), (h += 2);
|
|
}
|
|
var f,
|
|
l,
|
|
p = t.t - 1,
|
|
g = !0,
|
|
d = N();
|
|
for (n = F(t[p]) - 1; p >= 0; ) {
|
|
for (
|
|
n >= a
|
|
? (f = (t[p] >> (n - a)) & u)
|
|
: ((f = (t[p] & ((1 << (n + 1)) - 1)) << (a - n)),
|
|
p > 0 && (f |= t[p - 1] >> (this.DB + n - a))),
|
|
h = i;
|
|
0 == (1 & f);
|
|
|
|
)
|
|
(f >>= 1), --h;
|
|
if (((n -= h) < 0 && ((n += this.DB), --p), g))
|
|
o[f].copyTo(s), (g = !1);
|
|
else {
|
|
for (; h > 1; ) r.sqrTo(s, d), r.sqrTo(d, s), (h -= 2);
|
|
h > 0 ? r.sqrTo(s, d) : ((l = s), (s = d), (d = l)),
|
|
r.mulTo(d, o[f], s);
|
|
}
|
|
for (; p >= 0 && 0 == (t[p] & (1 << n)); )
|
|
r.sqrTo(s, d),
|
|
(l = s),
|
|
(s = d),
|
|
(d = l),
|
|
--n < 0 && ((n = this.DB - 1), --p);
|
|
}
|
|
return r.revert(s);
|
|
}),
|
|
(t.prototype.modInverse = function (e) {
|
|
var i = e.isEven();
|
|
if ((this.isEven() && i) || 0 == e.signum()) return t.ZERO;
|
|
for (
|
|
var r = e.clone(),
|
|
n = this.clone(),
|
|
s = C(1),
|
|
o = C(0),
|
|
h = C(0),
|
|
a = C(1);
|
|
0 != r.signum();
|
|
|
|
) {
|
|
for (; r.isEven(); )
|
|
r.rShiftTo(1, r),
|
|
i
|
|
? ((s.isEven() && o.isEven()) ||
|
|
(s.addTo(this, s), o.subTo(e, o)),
|
|
s.rShiftTo(1, s))
|
|
: o.isEven() || o.subTo(e, o),
|
|
o.rShiftTo(1, o);
|
|
for (; n.isEven(); )
|
|
n.rShiftTo(1, n),
|
|
i
|
|
? ((h.isEven() && a.isEven()) ||
|
|
(h.addTo(this, h), a.subTo(e, a)),
|
|
h.rShiftTo(1, h))
|
|
: a.isEven() || a.subTo(e, a),
|
|
a.rShiftTo(1, a);
|
|
r.compareTo(n) >= 0
|
|
? (r.subTo(n, r), i && s.subTo(h, s), o.subTo(a, o))
|
|
: (n.subTo(r, n), i && h.subTo(s, h), a.subTo(o, a));
|
|
}
|
|
return 0 != n.compareTo(t.ONE)
|
|
? t.ZERO
|
|
: a.compareTo(e) >= 0
|
|
? a.subtract(e)
|
|
: a.signum() < 0
|
|
? (a.addTo(e, a), a.signum() < 0 ? a.add(e) : a)
|
|
: a;
|
|
}),
|
|
(t.prototype.pow = function (t) {
|
|
return this.exp(t, new O());
|
|
}),
|
|
(t.prototype.gcd = function (t) {
|
|
var e = this.s < 0 ? this.negate() : this.clone(),
|
|
i = t.s < 0 ? t.negate() : t.clone();
|
|
if (e.compareTo(i) < 0) {
|
|
var r = e;
|
|
(e = i), (i = r);
|
|
}
|
|
var n = e.getLowestSetBit(),
|
|
s = i.getLowestSetBit();
|
|
if (s < 0) return e;
|
|
for (
|
|
n < s && (s = n),
|
|
s > 0 && (e.rShiftTo(s, e), i.rShiftTo(s, i));
|
|
e.signum() > 0;
|
|
|
|
)
|
|
(n = e.getLowestSetBit()) > 0 && e.rShiftTo(n, e),
|
|
(n = i.getLowestSetBit()) > 0 && i.rShiftTo(n, i),
|
|
e.compareTo(i) >= 0
|
|
? (e.subTo(i, e), e.rShiftTo(1, e))
|
|
: (i.subTo(e, i), i.rShiftTo(1, i));
|
|
return s > 0 && i.lShiftTo(s, i), i;
|
|
}),
|
|
(t.prototype.isProbablePrime = function (t) {
|
|
var e,
|
|
i = this.abs();
|
|
if (1 == i.t && i[0] <= x[x.length - 1]) {
|
|
for (e = 0; e < x.length; ++e) if (i[0] == x[e]) return !0;
|
|
return !1;
|
|
}
|
|
if (i.isEven()) return !1;
|
|
for (e = 1; e < x.length; ) {
|
|
for (var r = x[e], n = e + 1; n < x.length && r < R; )
|
|
r *= x[n++];
|
|
for (r = i.modInt(r); e < n; )
|
|
if (r % x[e++] == 0) return !1;
|
|
}
|
|
return i.millerRabin(t);
|
|
}),
|
|
(t.prototype.copyTo = function (t) {
|
|
for (var e = this.t - 1; e >= 0; --e) t[e] = this[e];
|
|
(t.t = this.t), (t.s = this.s);
|
|
}),
|
|
(t.prototype.fromInt = function (t) {
|
|
(this.t = 1),
|
|
(this.s = t < 0 ? -1 : 0),
|
|
t > 0
|
|
? (this[0] = t)
|
|
: t < -1
|
|
? (this[0] = t + this.DV)
|
|
: (this.t = 0);
|
|
}),
|
|
(t.prototype.fromString = function (e, i) {
|
|
var r;
|
|
if (16 == i) r = 4;
|
|
else if (8 == i) r = 3;
|
|
else if (256 == i) r = 8;
|
|
else if (2 == i) r = 1;
|
|
else if (32 == i) r = 5;
|
|
else {
|
|
if (4 != i) return void this.fromRadix(e, i);
|
|
r = 2;
|
|
}
|
|
(this.t = 0), (this.s = 0);
|
|
for (var n = e.length, s = !1, o = 0; --n >= 0; ) {
|
|
var h = 8 == r ? 255 & +e[n] : H(e, n);
|
|
h < 0
|
|
? '-' == e.charAt(n) && (s = !0)
|
|
: ((s = !1),
|
|
0 == o
|
|
? (this[this.t++] = h)
|
|
: o + r > this.DB
|
|
? ((this[this.t - 1] |=
|
|
(h & ((1 << (this.DB - o)) - 1)) << o),
|
|
(this[this.t++] = h >> (this.DB - o)))
|
|
: (this[this.t - 1] |= h << o),
|
|
(o += r) >= this.DB && (o -= this.DB));
|
|
}
|
|
8 == r &&
|
|
0 != (128 & +e[0]) &&
|
|
((this.s = -1),
|
|
o > 0 &&
|
|
(this[this.t - 1] |= ((1 << (this.DB - o)) - 1) << o)),
|
|
this.clamp(),
|
|
s && t.ZERO.subTo(this, this);
|
|
}),
|
|
(t.prototype.clamp = function () {
|
|
for (
|
|
var t = this.s & this.DM;
|
|
this.t > 0 && this[this.t - 1] == t;
|
|
|
|
)
|
|
--this.t;
|
|
}),
|
|
(t.prototype.dlShiftTo = function (t, e) {
|
|
var i;
|
|
for (i = this.t - 1; i >= 0; --i) e[i + t] = this[i];
|
|
for (i = t - 1; i >= 0; --i) e[i] = 0;
|
|
(e.t = this.t + t), (e.s = this.s);
|
|
}),
|
|
(t.prototype.drShiftTo = function (t, e) {
|
|
for (var i = t; i < this.t; ++i) e[i - t] = this[i];
|
|
(e.t = Math.max(this.t - t, 0)), (e.s = this.s);
|
|
}),
|
|
(t.prototype.lShiftTo = function (t, e) {
|
|
for (
|
|
var i = t % this.DB,
|
|
r = this.DB - i,
|
|
n = (1 << r) - 1,
|
|
s = Math.floor(t / this.DB),
|
|
o = (this.s << i) & this.DM,
|
|
h = this.t - 1;
|
|
h >= 0;
|
|
--h
|
|
)
|
|
(e[h + s + 1] = (this[h] >> r) | o),
|
|
(o = (this[h] & n) << i);
|
|
for (h = s - 1; h >= 0; --h) e[h] = 0;
|
|
(e[s] = o), (e.t = this.t + s + 1), (e.s = this.s), e.clamp();
|
|
}),
|
|
(t.prototype.rShiftTo = function (t, e) {
|
|
e.s = this.s;
|
|
var i = Math.floor(t / this.DB);
|
|
if (i >= this.t) e.t = 0;
|
|
else {
|
|
var r = t % this.DB,
|
|
n = this.DB - r,
|
|
s = (1 << r) - 1;
|
|
e[0] = this[i] >> r;
|
|
for (var o = i + 1; o < this.t; ++o)
|
|
(e[o - i - 1] |= (this[o] & s) << n),
|
|
(e[o - i] = this[o] >> r);
|
|
r > 0 && (e[this.t - i - 1] |= (this.s & s) << n),
|
|
(e.t = this.t - i),
|
|
e.clamp();
|
|
}
|
|
}),
|
|
(t.prototype.subTo = function (t, e) {
|
|
for (var i = 0, r = 0, n = Math.min(t.t, this.t); i < n; )
|
|
(r += this[i] - t[i]),
|
|
(e[i++] = r & this.DM),
|
|
(r >>= this.DB);
|
|
if (t.t < this.t) {
|
|
for (r -= t.s; i < this.t; )
|
|
(r += this[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
r += this.s;
|
|
} else {
|
|
for (r += this.s; i < t.t; )
|
|
(r -= t[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
r -= t.s;
|
|
}
|
|
(e.s = r < 0 ? -1 : 0),
|
|
r < -1 ? (e[i++] = this.DV + r) : r > 0 && (e[i++] = r),
|
|
(e.t = i),
|
|
e.clamp();
|
|
}),
|
|
(t.prototype.multiplyTo = function (e, i) {
|
|
var r = this.abs(),
|
|
n = e.abs(),
|
|
s = r.t;
|
|
for (i.t = s + n.t; --s >= 0; ) i[s] = 0;
|
|
for (s = 0; s < n.t; ++s)
|
|
i[s + r.t] = r.am(0, n[s], i, s, 0, r.t);
|
|
(i.s = 0), i.clamp(), this.s != e.s && t.ZERO.subTo(i, i);
|
|
}),
|
|
(t.prototype.squareTo = function (t) {
|
|
for (var e = this.abs(), i = (t.t = 2 * e.t); --i >= 0; )
|
|
t[i] = 0;
|
|
for (i = 0; i < e.t - 1; ++i) {
|
|
var r = e.am(i, e[i], t, 2 * i, 0, 1);
|
|
(t[i + e.t] += e.am(
|
|
i + 1,
|
|
2 * e[i],
|
|
t,
|
|
2 * i + 1,
|
|
r,
|
|
e.t - i - 1,
|
|
)) >= e.DV && ((t[i + e.t] -= e.DV), (t[i + e.t + 1] = 1));
|
|
}
|
|
t.t > 0 && (t[t.t - 1] += e.am(i, e[i], t, 2 * i, 0, 1)),
|
|
(t.s = 0),
|
|
t.clamp();
|
|
}),
|
|
(t.prototype.divRemTo = function (e, i, r) {
|
|
var n = e.abs();
|
|
if (!(n.t <= 0)) {
|
|
var s = this.abs();
|
|
if (s.t < n.t)
|
|
return (
|
|
null != i && i.fromInt(0),
|
|
void (null != r && this.copyTo(r))
|
|
);
|
|
null == r && (r = N());
|
|
var o = N(),
|
|
h = this.s,
|
|
a = e.s,
|
|
u = this.DB - F(n[n.t - 1]);
|
|
u > 0
|
|
? (n.lShiftTo(u, o), s.lShiftTo(u, r))
|
|
: (n.copyTo(o), s.copyTo(r));
|
|
var c = o.t,
|
|
f = o[c - 1];
|
|
if (0 != f) {
|
|
var l =
|
|
f * (1 << this.F1) +
|
|
(c > 1 ? o[c - 2] >> this.F2 : 0),
|
|
p = this.FV / l,
|
|
g = (1 << this.F1) / l,
|
|
d = 1 << this.F2,
|
|
v = r.t,
|
|
m = v - c,
|
|
y = null == i ? N() : i;
|
|
for (
|
|
o.dlShiftTo(m, y),
|
|
r.compareTo(y) >= 0 &&
|
|
((r[r.t++] = 1), r.subTo(y, r)),
|
|
t.ONE.dlShiftTo(c, y),
|
|
y.subTo(o, o);
|
|
o.t < c;
|
|
|
|
)
|
|
o[o.t++] = 0;
|
|
for (; --m >= 0; ) {
|
|
var b =
|
|
r[--v] == f
|
|
? this.DM
|
|
: Math.floor(r[v] * p + (r[v - 1] + d) * g);
|
|
if ((r[v] += o.am(0, b, r, m, 0, c)) < b)
|
|
for (o.dlShiftTo(m, y), r.subTo(y, r); r[v] < --b; )
|
|
r.subTo(y, r);
|
|
}
|
|
null != i &&
|
|
(r.drShiftTo(c, i), h != a && t.ZERO.subTo(i, i)),
|
|
(r.t = c),
|
|
r.clamp(),
|
|
u > 0 && r.rShiftTo(u, r),
|
|
h < 0 && t.ZERO.subTo(r, r);
|
|
}
|
|
}
|
|
}),
|
|
(t.prototype.invDigit = function () {
|
|
if (this.t < 1) return 0;
|
|
var t = this[0];
|
|
if (0 == (1 & t)) return 0;
|
|
var e = 3 & t;
|
|
return (e =
|
|
((e =
|
|
((e =
|
|
((e = (e * (2 - (15 & t) * e)) & 15) *
|
|
(2 - (255 & t) * e)) &
|
|
255) *
|
|
(2 - (((65535 & t) * e) & 65535))) &
|
|
65535) *
|
|
(2 - ((t * e) % this.DV))) %
|
|
this.DV) > 0
|
|
? this.DV - e
|
|
: -e;
|
|
}),
|
|
(t.prototype.isEven = function () {
|
|
return 0 == (this.t > 0 ? 1 & this[0] : this.s);
|
|
}),
|
|
(t.prototype.exp = function (e, i) {
|
|
if (e > 4294967295 || e < 1) return t.ONE;
|
|
var r = N(),
|
|
n = N(),
|
|
s = i.convert(this),
|
|
o = F(e) - 1;
|
|
for (s.copyTo(r); --o >= 0; )
|
|
if ((i.sqrTo(r, n), (e & (1 << o)) > 0)) i.mulTo(n, s, r);
|
|
else {
|
|
var h = r;
|
|
(r = n), (n = h);
|
|
}
|
|
return i.revert(r);
|
|
}),
|
|
(t.prototype.chunkSize = function (t) {
|
|
return Math.floor((Math.LN2 * this.DB) / Math.log(t));
|
|
}),
|
|
(t.prototype.toRadix = function (t) {
|
|
if (
|
|
(null == t && (t = 10),
|
|
0 == this.signum() || t < 2 || t > 36)
|
|
)
|
|
return '0';
|
|
var e = this.chunkSize(t),
|
|
i = Math.pow(t, e),
|
|
r = C(i),
|
|
n = N(),
|
|
s = N(),
|
|
o = '';
|
|
for (this.divRemTo(r, n, s); n.signum() > 0; )
|
|
(o = (i + s.intValue()).toString(t).substr(1) + o),
|
|
n.divRemTo(r, n, s);
|
|
return s.intValue().toString(t) + o;
|
|
}),
|
|
(t.prototype.fromRadix = function (e, i) {
|
|
this.fromInt(0), null == i && (i = 10);
|
|
for (
|
|
var r = this.chunkSize(i),
|
|
n = Math.pow(i, r),
|
|
s = !1,
|
|
o = 0,
|
|
h = 0,
|
|
a = 0;
|
|
a < e.length;
|
|
++a
|
|
) {
|
|
var u = H(e, a);
|
|
u < 0
|
|
? '-' == e.charAt(a) && 0 == this.signum() && (s = !0)
|
|
: ((h = i * h + u),
|
|
++o >= r &&
|
|
(this.dMultiply(n),
|
|
this.dAddOffset(h, 0),
|
|
(o = 0),
|
|
(h = 0)));
|
|
}
|
|
o > 0 &&
|
|
(this.dMultiply(Math.pow(i, o)), this.dAddOffset(h, 0)),
|
|
s && t.ZERO.subTo(this, this);
|
|
}),
|
|
(t.prototype.fromNumber = function (e, i, r) {
|
|
if ('number' == typeof i)
|
|
if (e < 2) this.fromInt(1);
|
|
else
|
|
for (
|
|
this.fromNumber(e, r),
|
|
this.testBit(e - 1) ||
|
|
this.bitwiseTo(t.ONE.shiftLeft(e - 1), s, this),
|
|
this.isEven() && this.dAddOffset(1, 0);
|
|
!this.isProbablePrime(i);
|
|
|
|
)
|
|
this.dAddOffset(2, 0),
|
|
this.bitLength() > e &&
|
|
this.subTo(t.ONE.shiftLeft(e - 1), this);
|
|
else {
|
|
var n = [],
|
|
o = 7 & e;
|
|
(n.length = 1 + (e >> 3)),
|
|
i.nextBytes(n),
|
|
o > 0 ? (n[0] &= (1 << o) - 1) : (n[0] = 0),
|
|
this.fromString(n, 256);
|
|
}
|
|
}),
|
|
(t.prototype.bitwiseTo = function (t, e, i) {
|
|
var r,
|
|
n,
|
|
s = Math.min(t.t, this.t);
|
|
for (r = 0; r < s; ++r) i[r] = e(this[r], t[r]);
|
|
if (t.t < this.t) {
|
|
for (n = t.s & this.DM, r = s; r < this.t; ++r)
|
|
i[r] = e(this[r], n);
|
|
i.t = this.t;
|
|
} else {
|
|
for (n = this.s & this.DM, r = s; r < t.t; ++r)
|
|
i[r] = e(n, t[r]);
|
|
i.t = t.t;
|
|
}
|
|
(i.s = e(this.s, t.s)), i.clamp();
|
|
}),
|
|
(t.prototype.changeBit = function (e, i) {
|
|
var r = t.ONE.shiftLeft(e);
|
|
return this.bitwiseTo(r, i, r), r;
|
|
}),
|
|
(t.prototype.addTo = function (t, e) {
|
|
for (var i = 0, r = 0, n = Math.min(t.t, this.t); i < n; )
|
|
(r += this[i] + t[i]),
|
|
(e[i++] = r & this.DM),
|
|
(r >>= this.DB);
|
|
if (t.t < this.t) {
|
|
for (r += t.s; i < this.t; )
|
|
(r += this[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
r += this.s;
|
|
} else {
|
|
for (r += this.s; i < t.t; )
|
|
(r += t[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
r += t.s;
|
|
}
|
|
(e.s = r < 0 ? -1 : 0),
|
|
r > 0 ? (e[i++] = r) : r < -1 && (e[i++] = this.DV + r),
|
|
(e.t = i),
|
|
e.clamp();
|
|
}),
|
|
(t.prototype.dMultiply = function (t) {
|
|
(this[this.t] = this.am(0, t - 1, this, 0, 0, this.t)),
|
|
++this.t,
|
|
this.clamp();
|
|
}),
|
|
(t.prototype.dAddOffset = function (t, e) {
|
|
if (0 != t) {
|
|
for (; this.t <= e; ) this[this.t++] = 0;
|
|
for (this[e] += t; this[e] >= this.DV; )
|
|
(this[e] -= this.DV),
|
|
++e >= this.t && (this[this.t++] = 0),
|
|
++this[e];
|
|
}
|
|
}),
|
|
(t.prototype.multiplyLowerTo = function (t, e, i) {
|
|
var r = Math.min(this.t + t.t, e);
|
|
for (i.s = 0, i.t = r; r > 0; ) i[--r] = 0;
|
|
for (var n = i.t - this.t; r < n; ++r)
|
|
i[r + this.t] = this.am(0, t[r], i, r, 0, this.t);
|
|
for (n = Math.min(t.t, e); r < n; ++r)
|
|
this.am(0, t[r], i, r, 0, e - r);
|
|
i.clamp();
|
|
}),
|
|
(t.prototype.multiplyUpperTo = function (t, e, i) {
|
|
--e;
|
|
var r = (i.t = this.t + t.t - e);
|
|
for (i.s = 0; --r >= 0; ) i[r] = 0;
|
|
for (r = Math.max(e - this.t, 0); r < t.t; ++r)
|
|
i[this.t + r - e] = this.am(
|
|
e - r,
|
|
t[r],
|
|
i,
|
|
0,
|
|
0,
|
|
this.t + r - e,
|
|
);
|
|
i.clamp(), i.drShiftTo(1, i);
|
|
}),
|
|
(t.prototype.modInt = function (t) {
|
|
if (t <= 0) return 0;
|
|
var e = this.DV % t,
|
|
i = this.s < 0 ? t - 1 : 0;
|
|
if (this.t > 0)
|
|
if (0 == e) i = this[0] % t;
|
|
else
|
|
for (var r = this.t - 1; r >= 0; --r)
|
|
i = (e * i + this[r]) % t;
|
|
return i;
|
|
}),
|
|
(t.prototype.millerRabin = function (e) {
|
|
var i = this.subtract(t.ONE),
|
|
r = i.getLowestSetBit();
|
|
if (r <= 0) return !1;
|
|
var n = i.shiftRight(r);
|
|
(e = (e + 1) >> 1) > x.length && (e = x.length);
|
|
for (var s = N(), o = 0; o < e; ++o) {
|
|
s.fromInt(x[Math.floor(Math.random() * x.length)]);
|
|
var h = s.modPow(n, this);
|
|
if (0 != h.compareTo(t.ONE) && 0 != h.compareTo(i)) {
|
|
for (var a = 1; a++ < r && 0 != h.compareTo(i); )
|
|
if (0 == (h = h.modPowInt(2, this)).compareTo(t.ONE))
|
|
return !1;
|
|
if (0 != h.compareTo(i)) return !1;
|
|
}
|
|
}
|
|
return !0;
|
|
}),
|
|
(t.prototype.square = function () {
|
|
var t = N();
|
|
return this.squareTo(t), t;
|
|
}),
|
|
(t.prototype.gcda = function (t, e) {
|
|
var i = this.s < 0 ? this.negate() : this.clone(),
|
|
r = t.s < 0 ? t.negate() : t.clone();
|
|
if (i.compareTo(r) < 0) {
|
|
var n = i;
|
|
(i = r), (r = n);
|
|
}
|
|
var s = i.getLowestSetBit(),
|
|
o = r.getLowestSetBit();
|
|
if (o < 0) e(i);
|
|
else {
|
|
s < o && (o = s),
|
|
o > 0 && (i.rShiftTo(o, i), r.rShiftTo(o, r));
|
|
var h = function () {
|
|
(s = i.getLowestSetBit()) > 0 && i.rShiftTo(s, i),
|
|
(s = r.getLowestSetBit()) > 0 && r.rShiftTo(s, r),
|
|
i.compareTo(r) >= 0
|
|
? (i.subTo(r, i), i.rShiftTo(1, i))
|
|
: (r.subTo(i, r), r.rShiftTo(1, r)),
|
|
i.signum() > 0
|
|
? setTimeout(h, 0)
|
|
: (o > 0 && r.lShiftTo(o, r),
|
|
setTimeout(function () {
|
|
e(r);
|
|
}, 0));
|
|
};
|
|
setTimeout(h, 10);
|
|
}
|
|
}),
|
|
(t.prototype.fromNumberAsync = function (e, i, r, n) {
|
|
if ('number' == typeof i)
|
|
if (e < 2) this.fromInt(1);
|
|
else {
|
|
this.fromNumber(e, r),
|
|
this.testBit(e - 1) ||
|
|
this.bitwiseTo(t.ONE.shiftLeft(e - 1), s, this),
|
|
this.isEven() && this.dAddOffset(1, 0);
|
|
var o = this,
|
|
h = function () {
|
|
o.dAddOffset(2, 0),
|
|
o.bitLength() > e &&
|
|
o.subTo(t.ONE.shiftLeft(e - 1), o),
|
|
o.isProbablePrime(i)
|
|
? setTimeout(function () {
|
|
n();
|
|
}, 0)
|
|
: setTimeout(h, 0);
|
|
};
|
|
setTimeout(h, 0);
|
|
}
|
|
else {
|
|
var a = [],
|
|
u = 7 & e;
|
|
(a.length = 1 + (e >> 3)),
|
|
i.nextBytes(a),
|
|
u > 0 ? (a[0] &= (1 << u) - 1) : (a[0] = 0),
|
|
this.fromString(a, 256);
|
|
}
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
O = (function () {
|
|
function t() {}
|
|
return (
|
|
(t.prototype.convert = function (t) {
|
|
return t;
|
|
}),
|
|
(t.prototype.revert = function (t) {
|
|
return t;
|
|
}),
|
|
(t.prototype.mulTo = function (t, e, i) {
|
|
t.multiplyTo(e, i);
|
|
}),
|
|
(t.prototype.sqrTo = function (t, e) {
|
|
t.squareTo(e);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
A = (function () {
|
|
function t(t) {
|
|
this.m = t;
|
|
}
|
|
return (
|
|
(t.prototype.convert = function (t) {
|
|
return t.s < 0 || t.compareTo(this.m) >= 0
|
|
? t.mod(this.m)
|
|
: t;
|
|
}),
|
|
(t.prototype.revert = function (t) {
|
|
return t;
|
|
}),
|
|
(t.prototype.reduce = function (t) {
|
|
t.divRemTo(this.m, null, t);
|
|
}),
|
|
(t.prototype.mulTo = function (t, e, i) {
|
|
t.multiplyTo(e, i), this.reduce(i);
|
|
}),
|
|
(t.prototype.sqrTo = function (t, e) {
|
|
t.squareTo(e), this.reduce(e);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
V = (function () {
|
|
function t(t) {
|
|
(this.m = t),
|
|
(this.mp = t.invDigit()),
|
|
(this.mpl = 32767 & this.mp),
|
|
(this.mph = this.mp >> 15),
|
|
(this.um = (1 << (t.DB - 15)) - 1),
|
|
(this.mt2 = 2 * t.t);
|
|
}
|
|
return (
|
|
(t.prototype.convert = function (t) {
|
|
var e = N();
|
|
return (
|
|
t.abs().dlShiftTo(this.m.t, e),
|
|
e.divRemTo(this.m, null, e),
|
|
t.s < 0 && e.compareTo(B.ZERO) > 0 && this.m.subTo(e, e),
|
|
e
|
|
);
|
|
}),
|
|
(t.prototype.revert = function (t) {
|
|
var e = N();
|
|
return t.copyTo(e), this.reduce(e), e;
|
|
}),
|
|
(t.prototype.reduce = function (t) {
|
|
for (; t.t <= this.mt2; ) t[t.t++] = 0;
|
|
for (var e = 0; e < this.m.t; ++e) {
|
|
var i = 32767 & t[e],
|
|
r =
|
|
(i * this.mpl +
|
|
(((i * this.mph + (t[e] >> 15) * this.mpl) &
|
|
this.um) <<
|
|
15)) &
|
|
t.DM;
|
|
for (
|
|
t[(i = e + this.m.t)] += this.m.am(
|
|
0,
|
|
r,
|
|
t,
|
|
e,
|
|
0,
|
|
this.m.t,
|
|
);
|
|
t[i] >= t.DV;
|
|
|
|
)
|
|
(t[i] -= t.DV), t[++i]++;
|
|
}
|
|
t.clamp(),
|
|
t.drShiftTo(this.m.t, t),
|
|
t.compareTo(this.m) >= 0 && t.subTo(this.m, t);
|
|
}),
|
|
(t.prototype.mulTo = function (t, e, i) {
|
|
t.multiplyTo(e, i), this.reduce(i);
|
|
}),
|
|
(t.prototype.sqrTo = function (t, e) {
|
|
t.squareTo(e), this.reduce(e);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
I = (function () {
|
|
function t(t) {
|
|
(this.m = t),
|
|
(this.r2 = N()),
|
|
(this.q3 = N()),
|
|
B.ONE.dlShiftTo(2 * t.t, this.r2),
|
|
(this.mu = this.r2.divide(t));
|
|
}
|
|
return (
|
|
(t.prototype.convert = function (t) {
|
|
if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m);
|
|
if (t.compareTo(this.m) < 0) return t;
|
|
var e = N();
|
|
return t.copyTo(e), this.reduce(e), e;
|
|
}),
|
|
(t.prototype.revert = function (t) {
|
|
return t;
|
|
}),
|
|
(t.prototype.reduce = function (t) {
|
|
for (
|
|
t.drShiftTo(this.m.t - 1, this.r2),
|
|
t.t > this.m.t + 1 && ((t.t = this.m.t + 1), t.clamp()),
|
|
this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3),
|
|
this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);
|
|
t.compareTo(this.r2) < 0;
|
|
|
|
)
|
|
t.dAddOffset(1, this.m.t + 1);
|
|
for (t.subTo(this.r2, t); t.compareTo(this.m) >= 0; )
|
|
t.subTo(this.m, t);
|
|
}),
|
|
(t.prototype.mulTo = function (t, e, i) {
|
|
t.multiplyTo(e, i), this.reduce(i);
|
|
}),
|
|
(t.prototype.sqrTo = function (t, e) {
|
|
t.squareTo(e), this.reduce(e);
|
|
}),
|
|
t
|
|
);
|
|
})();
|
|
function N() {
|
|
return new B(null);
|
|
}
|
|
function P(t, e) {
|
|
return new B(t, e);
|
|
}
|
|
var M = 'undefined' != typeof navigator;
|
|
M && 'Microsoft Internet Explorer' == navigator.appName
|
|
? ((B.prototype.am = function (t, e, i, r, n, s) {
|
|
for (var o = 32767 & e, h = e >> 15; --s >= 0; ) {
|
|
var a = 32767 & this[t],
|
|
u = this[t++] >> 15,
|
|
c = h * a + u * o;
|
|
(n =
|
|
((a =
|
|
o * a + ((32767 & c) << 15) + i[r] + (1073741823 & n)) >>>
|
|
30) +
|
|
(c >>> 15) +
|
|
h * u +
|
|
(n >>> 30)),
|
|
(i[r++] = 1073741823 & a);
|
|
}
|
|
return n;
|
|
}),
|
|
(S = 30))
|
|
: M && 'Netscape' != navigator.appName
|
|
? ((B.prototype.am = function (t, e, i, r, n, s) {
|
|
for (; --s >= 0; ) {
|
|
var o = e * this[t++] + i[r] + n;
|
|
(n = Math.floor(o / 67108864)), (i[r++] = 67108863 & o);
|
|
}
|
|
return n;
|
|
}),
|
|
(S = 26))
|
|
: ((B.prototype.am = function (t, e, i, r, n, s) {
|
|
for (var o = 16383 & e, h = e >> 14; --s >= 0; ) {
|
|
var a = 16383 & this[t],
|
|
u = this[t++] >> 14,
|
|
c = h * a + u * o;
|
|
(n =
|
|
((a = o * a + ((16383 & c) << 14) + i[r] + n) >> 28) +
|
|
(c >> 14) +
|
|
h * u),
|
|
(i[r++] = 268435455 & a);
|
|
}
|
|
return n;
|
|
}),
|
|
(S = 28)),
|
|
(B.prototype.DB = S),
|
|
(B.prototype.DM = (1 << S) - 1),
|
|
(B.prototype.DV = 1 << S),
|
|
(B.prototype.FV = Math.pow(2, 52)),
|
|
(B.prototype.F1 = 52 - S),
|
|
(B.prototype.F2 = 2 * S - 52);
|
|
var j,
|
|
q,
|
|
L = [];
|
|
for (j = '0'.charCodeAt(0), q = 0; q <= 9; ++q) L[j++] = q;
|
|
for (j = 'a'.charCodeAt(0), q = 10; q < 36; ++q) L[j++] = q;
|
|
for (j = 'A'.charCodeAt(0), q = 10; q < 36; ++q) L[j++] = q;
|
|
function H(t, e) {
|
|
var i = L[t.charCodeAt(e)];
|
|
return null == i ? -1 : i;
|
|
}
|
|
function C(t) {
|
|
var e = N();
|
|
return e.fromInt(t), e;
|
|
}
|
|
function F(t) {
|
|
var e,
|
|
i = 1;
|
|
return (
|
|
0 != (e = t >>> 16) && ((t = e), (i += 16)),
|
|
0 != (e = t >> 8) && ((t = e), (i += 8)),
|
|
0 != (e = t >> 4) && ((t = e), (i += 4)),
|
|
0 != (e = t >> 2) && ((t = e), (i += 2)),
|
|
0 != (e = t >> 1) && ((t = e), (i += 1)),
|
|
i
|
|
);
|
|
}
|
|
(B.ZERO = C(0)), (B.ONE = C(1));
|
|
var U,
|
|
K,
|
|
k = (function () {
|
|
function t() {
|
|
(this.i = 0), (this.j = 0), (this.S = []);
|
|
}
|
|
return (
|
|
(t.prototype.init = function (t) {
|
|
var e, i, r;
|
|
for (e = 0; e < 256; ++e) this.S[e] = e;
|
|
for (i = 0, e = 0; e < 256; ++e)
|
|
(i = (i + this.S[e] + t[e % t.length]) & 255),
|
|
(r = this.S[e]),
|
|
(this.S[e] = this.S[i]),
|
|
(this.S[i] = r);
|
|
(this.i = 0), (this.j = 0);
|
|
}),
|
|
(t.prototype.next = function () {
|
|
var t;
|
|
return (
|
|
(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),
|
|
this.S[(t + this.S[this.i]) & 255]
|
|
);
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
_ = null;
|
|
if (null == _) {
|
|
(_ = []), (K = 0);
|
|
var z = void 0;
|
|
if (window.crypto && window.crypto.getRandomValues) {
|
|
var Z = new Uint32Array(256);
|
|
for (window.crypto.getRandomValues(Z), z = 0; z < Z.length; ++z)
|
|
_[K++] = 255 & Z[z];
|
|
}
|
|
var G = 0,
|
|
$ = function (t) {
|
|
if ((G = G || 0) >= 256 || K >= 256)
|
|
window.removeEventListener
|
|
? window.removeEventListener('mousemove', $, !1)
|
|
: window.detachEvent &&
|
|
window.detachEvent('onmousemove', $);
|
|
else
|
|
try {
|
|
var e = t.x + t.y;
|
|
(_[K++] = 255 & e), (G += 1);
|
|
} catch (t) {}
|
|
};
|
|
window.addEventListener
|
|
? window.addEventListener('mousemove', $, !1)
|
|
: window.attachEvent && window.attachEvent('onmousemove', $);
|
|
}
|
|
function Y() {
|
|
if (null == U) {
|
|
for (U = new k(); K < 256; ) {
|
|
var t = Math.floor(65536 * Math.random());
|
|
_[K++] = 255 & t;
|
|
}
|
|
for (U.init(_), K = 0; K < _.length; ++K) _[K] = 0;
|
|
K = 0;
|
|
}
|
|
return U.next();
|
|
}
|
|
var J = (function () {
|
|
function t() {}
|
|
return (
|
|
(t.prototype.nextBytes = function (t) {
|
|
for (var e = 0; e < t.length; ++e) t[e] = Y();
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
X = (function () {
|
|
function t() {
|
|
(this.n = null),
|
|
(this.e = 0),
|
|
(this.d = null),
|
|
(this.p = null),
|
|
(this.q = null),
|
|
(this.dmp1 = null),
|
|
(this.dmq1 = null),
|
|
(this.coeff = null);
|
|
}
|
|
return (
|
|
(t.prototype.doPublic = function (t) {
|
|
return t.modPowInt(this.e, this.n);
|
|
}),
|
|
(t.prototype.doPrivate = function (t) {
|
|
if (null == this.p || null == this.q)
|
|
return t.modPow(this.d, this.n);
|
|
for (
|
|
var e = t.mod(this.p).modPow(this.dmp1, this.p),
|
|
i = t.mod(this.q).modPow(this.dmq1, this.q);
|
|
e.compareTo(i) < 0;
|
|
|
|
)
|
|
e = e.add(this.p);
|
|
return e
|
|
.subtract(i)
|
|
.multiply(this.coeff)
|
|
.mod(this.p)
|
|
.multiply(this.q)
|
|
.add(i);
|
|
}),
|
|
(t.prototype.setPublic = function (t, e) {
|
|
null != t && null != e && t.length > 0 && e.length > 0
|
|
? ((this.n = P(t, 16)), (this.e = parseInt(e, 16)))
|
|
: console.error('Invalid RSA public key');
|
|
}),
|
|
(t.prototype.encrypt = function (t) {
|
|
var e = (this.n.bitLength() + 7) >> 3,
|
|
i = (function (t, e) {
|
|
if (e < t.length + 11)
|
|
return console.error('Message too long for RSA'), null;
|
|
for (var i = [], r = t.length - 1; r >= 0 && e > 0; ) {
|
|
var n = t.charCodeAt(r--);
|
|
n < 128
|
|
? (i[--e] = n)
|
|
: n > 127 && n < 2048
|
|
? ((i[--e] = (63 & n) | 128),
|
|
(i[--e] = (n >> 6) | 192))
|
|
: ((i[--e] = (63 & n) | 128),
|
|
(i[--e] = ((n >> 6) & 63) | 128),
|
|
(i[--e] = (n >> 12) | 224));
|
|
}
|
|
i[--e] = 0;
|
|
for (var s = new J(), o = []; e > 2; ) {
|
|
for (o[0] = 0; 0 == o[0]; ) s.nextBytes(o);
|
|
i[--e] = o[0];
|
|
}
|
|
return (i[--e] = 2), (i[--e] = 0), new B(i);
|
|
})(t, e);
|
|
if (null == i) return null;
|
|
var r = this.doPublic(i);
|
|
if (null == r) return null;
|
|
for (
|
|
var n = r.toString(16), s = n.length, o = 0;
|
|
o < 2 * e - s;
|
|
o++
|
|
)
|
|
n = '0' + n;
|
|
return n;
|
|
}),
|
|
(t.prototype.setPrivate = function (t, e, i) {
|
|
null != t && null != e && t.length > 0 && e.length > 0
|
|
? ((this.n = P(t, 16)),
|
|
(this.e = parseInt(e, 16)),
|
|
(this.d = P(i, 16)))
|
|
: console.error('Invalid RSA private key');
|
|
}),
|
|
(t.prototype.setPrivateEx = function (t, e, i, r, n, s, o, h) {
|
|
null != t && null != e && t.length > 0 && e.length > 0
|
|
? ((this.n = P(t, 16)),
|
|
(this.e = parseInt(e, 16)),
|
|
(this.d = P(i, 16)),
|
|
(this.p = P(r, 16)),
|
|
(this.q = P(n, 16)),
|
|
(this.dmp1 = P(s, 16)),
|
|
(this.dmq1 = P(o, 16)),
|
|
(this.coeff = P(h, 16)))
|
|
: console.error('Invalid RSA private key');
|
|
}),
|
|
(t.prototype.generate = function (t, e) {
|
|
var i = new J(),
|
|
r = t >> 1;
|
|
this.e = parseInt(e, 16);
|
|
for (var n = new B(e, 16); ; ) {
|
|
for (
|
|
;
|
|
(this.p = new B(t - r, 1, i)),
|
|
0 != this.p.subtract(B.ONE).gcd(n).compareTo(B.ONE) ||
|
|
!this.p.isProbablePrime(10);
|
|
|
|
);
|
|
for (
|
|
;
|
|
(this.q = new B(r, 1, i)),
|
|
0 != this.q.subtract(B.ONE).gcd(n).compareTo(B.ONE) ||
|
|
!this.q.isProbablePrime(10);
|
|
|
|
);
|
|
if (this.p.compareTo(this.q) <= 0) {
|
|
var s = this.p;
|
|
(this.p = this.q), (this.q = s);
|
|
}
|
|
var o = this.p.subtract(B.ONE),
|
|
h = this.q.subtract(B.ONE),
|
|
a = o.multiply(h);
|
|
if (0 == a.gcd(n).compareTo(B.ONE)) {
|
|
(this.n = this.p.multiply(this.q)),
|
|
(this.d = n.modInverse(a)),
|
|
(this.dmp1 = this.d.mod(o)),
|
|
(this.dmq1 = this.d.mod(h)),
|
|
(this.coeff = this.q.modInverse(this.p));
|
|
break;
|
|
}
|
|
}
|
|
}),
|
|
(t.prototype.decrypt = function (t) {
|
|
var e = P(t, 16),
|
|
i = this.doPrivate(e);
|
|
return null == i
|
|
? null
|
|
: (function (t, e) {
|
|
for (
|
|
var i = t.toByteArray(), r = 0;
|
|
r < i.length && 0 == i[r];
|
|
|
|
)
|
|
++r;
|
|
if (i.length - r != e - 1 || 2 != i[r]) return null;
|
|
for (++r; 0 != i[r]; ) if (++r >= i.length) return null;
|
|
for (var n = ''; ++r < i.length; ) {
|
|
var s = 255 & i[r];
|
|
s < 128
|
|
? (n += String.fromCharCode(s))
|
|
: s > 191 && s < 224
|
|
? ((n += String.fromCharCode(
|
|
((31 & s) << 6) | (63 & i[r + 1]),
|
|
)),
|
|
++r)
|
|
: ((n += String.fromCharCode(
|
|
((15 & s) << 12) |
|
|
((63 & i[r + 1]) << 6) |
|
|
(63 & i[r + 2]),
|
|
)),
|
|
(r += 2));
|
|
}
|
|
return n;
|
|
})(i, (this.n.bitLength() + 7) >> 3);
|
|
}),
|
|
(t.prototype.generateAsync = function (t, e, i) {
|
|
var r = new J(),
|
|
n = t >> 1;
|
|
this.e = parseInt(e, 16);
|
|
var s = new B(e, 16),
|
|
o = this,
|
|
h = function () {
|
|
var e = function () {
|
|
if (o.p.compareTo(o.q) <= 0) {
|
|
var t = o.p;
|
|
(o.p = o.q), (o.q = t);
|
|
}
|
|
var e = o.p.subtract(B.ONE),
|
|
r = o.q.subtract(B.ONE),
|
|
n = e.multiply(r);
|
|
0 == n.gcd(s).compareTo(B.ONE)
|
|
? ((o.n = o.p.multiply(o.q)),
|
|
(o.d = s.modInverse(n)),
|
|
(o.dmp1 = o.d.mod(e)),
|
|
(o.dmq1 = o.d.mod(r)),
|
|
(o.coeff = o.q.modInverse(o.p)),
|
|
setTimeout(function () {
|
|
i();
|
|
}, 0))
|
|
: setTimeout(h, 0);
|
|
},
|
|
a = function () {
|
|
(o.q = N()),
|
|
o.q.fromNumberAsync(n, 1, r, function () {
|
|
o.q.subtract(B.ONE).gcda(s, function (t) {
|
|
0 == t.compareTo(B.ONE) &&
|
|
o.q.isProbablePrime(10)
|
|
? setTimeout(e, 0)
|
|
: setTimeout(a, 0);
|
|
});
|
|
});
|
|
},
|
|
u = function () {
|
|
(o.p = N()),
|
|
o.p.fromNumberAsync(t - n, 1, r, function () {
|
|
o.p.subtract(B.ONE).gcda(s, function (t) {
|
|
0 == t.compareTo(B.ONE) &&
|
|
o.p.isProbablePrime(10)
|
|
? setTimeout(a, 0)
|
|
: setTimeout(u, 0);
|
|
});
|
|
});
|
|
};
|
|
setTimeout(u, 0);
|
|
};
|
|
setTimeout(h, 0);
|
|
}),
|
|
(t.prototype.sign = function (t, e, i) {
|
|
var r = (function (t, e) {
|
|
if (e < t.length + 22)
|
|
return console.error('Message too long for RSA'), null;
|
|
for (var i = e - t.length - 6, r = '', n = 0; n < i; n += 2)
|
|
r += 'ff';
|
|
return P('0001' + r + '00' + t, 16);
|
|
})((Q[i] || '') + e(t).toString(), this.n.bitLength() / 4);
|
|
if (null == r) return null;
|
|
var n = this.doPrivate(r);
|
|
if (null == n) return null;
|
|
var s = n.toString(16);
|
|
return 0 == (1 & s.length) ? s : '0' + s;
|
|
}),
|
|
(t.prototype.verify = function (t, e, i) {
|
|
var r = P(e, 16),
|
|
n = this.doPublic(r);
|
|
return null == n
|
|
? null
|
|
: (function (t) {
|
|
for (var e in Q)
|
|
if (Q.hasOwnProperty(e)) {
|
|
var i = Q[e],
|
|
r = i.length;
|
|
if (t.substr(0, r) == i) return t.substr(r);
|
|
}
|
|
return t;
|
|
})(n.toString(16).replace(/^1f+00/, '')) ==
|
|
i(t).toString();
|
|
}),
|
|
t
|
|
);
|
|
})(),
|
|
Q = {
|
|
md2: '3020300c06082a864886f70d020205000410',
|
|
md5: '3020300c06082a864886f70d020505000410',
|
|
sha1: '3021300906052b0e03021a05000414',
|
|
sha224: '302d300d06096086480165030402040500041c',
|
|
sha256: '3031300d060960864801650304020105000420',
|
|
sha384: '3041300d060960864801650304020205000430',
|
|
sha512: '3051300d060960864801650304020305000440',
|
|
ripemd160: '3021300906052b2403020105000414',
|
|
},
|
|
W = {};
|
|
W.lang = {
|
|
extend: function (t, e, i) {
|
|
if (!e || !t)
|
|
throw new Error(
|
|
'YAHOO.lang.extend failed, please check that all dependencies are included.',
|
|
);
|
|
var r = function () {};
|
|
if (
|
|
((r.prototype = e.prototype),
|
|
(t.prototype = new r()),
|
|
(t.prototype.constructor = t),
|
|
(t.superclass = e.prototype),
|
|
e.prototype.constructor == Object.prototype.constructor &&
|
|
(e.prototype.constructor = e),
|
|
i)
|
|
) {
|
|
var n;
|
|
for (n in i) t.prototype[n] = i[n];
|
|
var s = function () {},
|
|
o = ['toString', 'valueOf'];
|
|
try {
|
|
/MSIE/.test(navigator.userAgent) &&
|
|
(s = function (t, e) {
|
|
for (n = 0; n < o.length; n += 1) {
|
|
var i = o[n],
|
|
r = e[i];
|
|
'function' == typeof r &&
|
|
r != Object.prototype[i] &&
|
|
(t[i] = r);
|
|
}
|
|
});
|
|
} catch (t) {}
|
|
s(t.prototype, i);
|
|
}
|
|
},
|
|
};
|
|
var tt = {};
|
|
(void 0 !== tt.asn1 && tt.asn1) || (tt.asn1 = {}),
|
|
(tt.asn1.ASN1Util = new (function () {
|
|
(this.integerToByteHex = function (t) {
|
|
var e = t.toString(16);
|
|
return e.length % 2 == 1 && (e = '0' + e), e;
|
|
}),
|
|
(this.bigIntToMinTwosComplementsHex = function (t) {
|
|
var e = t.toString(16);
|
|
if ('-' != e.substr(0, 1))
|
|
e.length % 2 == 1
|
|
? (e = '0' + e)
|
|
: e.match(/^[0-7]/) || (e = '00' + e);
|
|
else {
|
|
var i = e.substr(1).length;
|
|
i % 2 == 1 ? (i += 1) : e.match(/^[0-7]/) || (i += 2);
|
|
for (var r = '', n = 0; n < i; n++) r += 'f';
|
|
e = new B(r, 16)
|
|
.xor(t)
|
|
.add(B.ONE)
|
|
.toString(16)
|
|
.replace(/^-/, '');
|
|
}
|
|
return e;
|
|
}),
|
|
(this.getPEMStringFromHex = function (t, e) {
|
|
return hextopem(t, e);
|
|
}),
|
|
(this.newObject = function (t) {
|
|
var e = tt.asn1,
|
|
i = e.DERBoolean,
|
|
r = e.DERInteger,
|
|
n = e.DERBitString,
|
|
s = e.DEROctetString,
|
|
o = e.DERNull,
|
|
h = e.DERObjectIdentifier,
|
|
a = e.DEREnumerated,
|
|
u = e.DERUTF8String,
|
|
c = e.DERNumericString,
|
|
f = e.DERPrintableString,
|
|
l = e.DERTeletexString,
|
|
p = e.DERIA5String,
|
|
g = e.DERUTCTime,
|
|
d = e.DERGeneralizedTime,
|
|
v = e.DERSequence,
|
|
m = e.DERSet,
|
|
y = e.DERTaggedObject,
|
|
b = e.ASN1Util.newObject,
|
|
T = Object.keys(t);
|
|
if (1 != T.length) throw 'key of param shall be only one.';
|
|
var S = T[0];
|
|
if (
|
|
-1 ==
|
|
':bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:'.indexOf(
|
|
':' + S + ':',
|
|
)
|
|
)
|
|
throw 'undefined key: ' + S;
|
|
if ('bool' == S) return new i(t[S]);
|
|
if ('int' == S) return new r(t[S]);
|
|
if ('bitstr' == S) return new n(t[S]);
|
|
if ('octstr' == S) return new s(t[S]);
|
|
if ('null' == S) return new o(t[S]);
|
|
if ('oid' == S) return new h(t[S]);
|
|
if ('enum' == S) return new a(t[S]);
|
|
if ('utf8str' == S) return new u(t[S]);
|
|
if ('numstr' == S) return new c(t[S]);
|
|
if ('prnstr' == S) return new f(t[S]);
|
|
if ('telstr' == S) return new l(t[S]);
|
|
if ('ia5str' == S) return new p(t[S]);
|
|
if ('utctime' == S) return new g(t[S]);
|
|
if ('gentime' == S) return new d(t[S]);
|
|
if ('seq' == S) {
|
|
for (var E = t[S], w = [], D = 0; D < E.length; D++) {
|
|
var x = b(E[D]);
|
|
w.push(x);
|
|
}
|
|
return new v({array: w});
|
|
}
|
|
if ('set' == S) {
|
|
for (E = t[S], w = [], D = 0; D < E.length; D++)
|
|
(x = b(E[D])), w.push(x);
|
|
return new m({array: w});
|
|
}
|
|
if ('tag' == S) {
|
|
var R = t[S];
|
|
if (
|
|
'[object Array]' === Object.prototype.toString.call(R) &&
|
|
3 == R.length
|
|
) {
|
|
var B = b(R[2]);
|
|
return new y({tag: R[0], explicit: R[1], obj: B});
|
|
}
|
|
var O = {};
|
|
if (
|
|
(void 0 !== R.explicit && (O.explicit = R.explicit),
|
|
void 0 !== R.tag && (O.tag = R.tag),
|
|
void 0 === R.obj)
|
|
)
|
|
throw "obj shall be specified for 'tag'.";
|
|
return (O.obj = b(R.obj)), new y(O);
|
|
}
|
|
}),
|
|
(this.jsonToASN1HEX = function (t) {
|
|
return this.newObject(t).getEncodedHex();
|
|
});
|
|
})()),
|
|
(tt.asn1.ASN1Util.oidHexToInt = function (t) {
|
|
for (
|
|
var e = '',
|
|
i = parseInt(t.substr(0, 2), 16),
|
|
r = ((e = Math.floor(i / 40) + '.' + (i % 40)), ''),
|
|
n = 2;
|
|
n < t.length;
|
|
n += 2
|
|
) {
|
|
var s = (
|
|
'00000000' + parseInt(t.substr(n, 2), 16).toString(2)
|
|
).slice(-8);
|
|
(r += s.substr(1, 7)),
|
|
'0' == s.substr(0, 1) &&
|
|
((e = e + '.' + new B(r, 2).toString(10)), (r = ''));
|
|
}
|
|
return e;
|
|
}),
|
|
(tt.asn1.ASN1Util.oidIntToHex = function (t) {
|
|
var e = function (t) {
|
|
var e = t.toString(16);
|
|
return 1 == e.length && (e = '0' + e), e;
|
|
},
|
|
i = function (t) {
|
|
var i = '',
|
|
r = new B(t, 10).toString(2),
|
|
n = 7 - (r.length % 7);
|
|
7 == n && (n = 0);
|
|
for (var s = '', o = 0; o < n; o++) s += '0';
|
|
for (r = s + r, o = 0; o < r.length - 1; o += 7) {
|
|
var h = r.substr(o, 7);
|
|
o != r.length - 7 && (h = '1' + h),
|
|
(i += e(parseInt(h, 2)));
|
|
}
|
|
return i;
|
|
};
|
|
if (!t.match(/^[0-9.]+$/)) throw 'malformed oid string: ' + t;
|
|
var r = '',
|
|
n = t.split('.'),
|
|
s = 40 * parseInt(n[0]) + parseInt(n[1]);
|
|
(r += e(s)), n.splice(0, 2);
|
|
for (var o = 0; o < n.length; o++) r += i(n[o]);
|
|
return r;
|
|
}),
|
|
(tt.asn1.ASN1Object = function () {
|
|
(this.getLengthHexFromValue = function () {
|
|
if (void 0 === this.hV || null == this.hV)
|
|
throw 'this.hV is null or undefined.';
|
|
if (this.hV.length % 2 == 1)
|
|
throw (
|
|
'value hex must be even length: n=' +
|
|
''.length +
|
|
',v=' +
|
|
this.hV
|
|
);
|
|
var t = this.hV.length / 2,
|
|
e = t.toString(16);
|
|
if ((e.length % 2 == 1 && (e = '0' + e), t < 128)) return e;
|
|
var i = e.length / 2;
|
|
if (i > 15)
|
|
throw (
|
|
'ASN.1 length too long to represent by 8x: n = ' +
|
|
t.toString(16)
|
|
);
|
|
return (128 + i).toString(16) + e;
|
|
}),
|
|
(this.getEncodedHex = function () {
|
|
return (
|
|
(null == this.hTLV || this.isModified) &&
|
|
((this.hV = this.getFreshValueHex()),
|
|
(this.hL = this.getLengthHexFromValue()),
|
|
(this.hTLV = this.hT + this.hL + this.hV),
|
|
(this.isModified = !1)),
|
|
this.hTLV
|
|
);
|
|
}),
|
|
(this.getValueHex = function () {
|
|
return this.getEncodedHex(), this.hV;
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return '';
|
|
});
|
|
}),
|
|
(tt.asn1.DERAbstractString = function (t) {
|
|
tt.asn1.DERAbstractString.superclass.constructor.call(this),
|
|
(this.getString = function () {
|
|
return this.s;
|
|
}),
|
|
(this.setString = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.s = t),
|
|
(this.hV = stohex(this.s));
|
|
}),
|
|
(this.setStringHex = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.s = null),
|
|
(this.hV = t);
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
}),
|
|
void 0 !== t &&
|
|
('string' == typeof t
|
|
? this.setString(t)
|
|
: void 0 !== t.str
|
|
? this.setString(t.str)
|
|
: void 0 !== t.hex && this.setStringHex(t.hex));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERAbstractString, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERAbstractTime = function (t) {
|
|
tt.asn1.DERAbstractTime.superclass.constructor.call(this),
|
|
(this.localDateToUTC = function (t) {
|
|
return (
|
|
(utc = t.getTime() + 6e4 * t.getTimezoneOffset()),
|
|
new Date(utc)
|
|
);
|
|
}),
|
|
(this.formatDate = function (t, e, i) {
|
|
var r = this.zeroPadding,
|
|
n = this.localDateToUTC(t),
|
|
s = String(n.getFullYear());
|
|
'utc' == e && (s = s.substr(2, 2));
|
|
var o =
|
|
s +
|
|
r(String(n.getMonth() + 1), 2) +
|
|
r(String(n.getDate()), 2) +
|
|
r(String(n.getHours()), 2) +
|
|
r(String(n.getMinutes()), 2) +
|
|
r(String(n.getSeconds()), 2);
|
|
if (!0 === i) {
|
|
var h = n.getMilliseconds();
|
|
if (0 != h) {
|
|
var a = r(String(h), 3);
|
|
o = o + '.' + (a = a.replace(/[0]+$/, ''));
|
|
}
|
|
}
|
|
return o + 'Z';
|
|
}),
|
|
(this.zeroPadding = function (t, e) {
|
|
return t.length >= e
|
|
? t
|
|
: new Array(e - t.length + 1).join('0') + t;
|
|
}),
|
|
(this.getString = function () {
|
|
return this.s;
|
|
}),
|
|
(this.setString = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.s = t),
|
|
(this.hV = stohex(t));
|
|
}),
|
|
(this.setByDateValue = function (t, e, i, r, n, s) {
|
|
var o = new Date(Date.UTC(t, e - 1, i, r, n, s, 0));
|
|
this.setByDate(o);
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
});
|
|
}),
|
|
W.lang.extend(tt.asn1.DERAbstractTime, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERAbstractStructured = function (t) {
|
|
tt.asn1.DERAbstractString.superclass.constructor.call(this),
|
|
(this.setByASN1ObjectArray = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.asn1Array = t);
|
|
}),
|
|
(this.appendASN1Object = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
this.asn1Array.push(t);
|
|
}),
|
|
(this.asn1Array = new Array()),
|
|
void 0 !== t &&
|
|
void 0 !== t.array &&
|
|
(this.asn1Array = t.array);
|
|
}),
|
|
W.lang.extend(tt.asn1.DERAbstractStructured, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERBoolean = function () {
|
|
tt.asn1.DERBoolean.superclass.constructor.call(this),
|
|
(this.hT = '01'),
|
|
(this.hTLV = '0101ff');
|
|
}),
|
|
W.lang.extend(tt.asn1.DERBoolean, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERInteger = function (t) {
|
|
tt.asn1.DERInteger.superclass.constructor.call(this),
|
|
(this.hT = '02'),
|
|
(this.setByBigInteger = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.hV =
|
|
tt.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t));
|
|
}),
|
|
(this.setByInteger = function (t) {
|
|
var e = new B(String(t), 10);
|
|
this.setByBigInteger(e);
|
|
}),
|
|
(this.setValueHex = function (t) {
|
|
this.hV = t;
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
}),
|
|
void 0 !== t &&
|
|
(void 0 !== t.bigint
|
|
? this.setByBigInteger(t.bigint)
|
|
: void 0 !== t.int
|
|
? this.setByInteger(t.int)
|
|
: 'number' == typeof t
|
|
? this.setByInteger(t)
|
|
: void 0 !== t.hex && this.setValueHex(t.hex));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERInteger, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERBitString = function (t) {
|
|
if (void 0 !== t && void 0 !== t.obj) {
|
|
var e = tt.asn1.ASN1Util.newObject(t.obj);
|
|
t.hex = '00' + e.getEncodedHex();
|
|
}
|
|
tt.asn1.DERBitString.superclass.constructor.call(this),
|
|
(this.hT = '03'),
|
|
(this.setHexValueIncludingUnusedBits = function (t) {
|
|
(this.hTLV = null), (this.isModified = !0), (this.hV = t);
|
|
}),
|
|
(this.setUnusedBitsAndHexValue = function (t, e) {
|
|
if (t < 0 || 7 < t)
|
|
throw 'unused bits shall be from 0 to 7: u = ' + t;
|
|
var i = '0' + t;
|
|
(this.hTLV = null), (this.isModified = !0), (this.hV = i + e);
|
|
}),
|
|
(this.setByBinaryString = function (t) {
|
|
var e = 8 - ((t = t.replace(/0+$/, '')).length % 8);
|
|
8 == e && (e = 0);
|
|
for (var i = 0; i <= e; i++) t += '0';
|
|
var r = '';
|
|
for (i = 0; i < t.length - 1; i += 8) {
|
|
var n = t.substr(i, 8),
|
|
s = parseInt(n, 2).toString(16);
|
|
1 == s.length && (s = '0' + s), (r += s);
|
|
}
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.hV = '0' + e + r);
|
|
}),
|
|
(this.setByBooleanArray = function (t) {
|
|
for (var e = '', i = 0; i < t.length; i++)
|
|
1 == t[i] ? (e += '1') : (e += '0');
|
|
this.setByBinaryString(e);
|
|
}),
|
|
(this.newFalseArray = function (t) {
|
|
for (var e = new Array(t), i = 0; i < t; i++) e[i] = !1;
|
|
return e;
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
}),
|
|
void 0 !== t &&
|
|
('string' == typeof t && t.toLowerCase().match(/^[0-9a-f]+$/)
|
|
? this.setHexValueIncludingUnusedBits(t)
|
|
: void 0 !== t.hex
|
|
? this.setHexValueIncludingUnusedBits(t.hex)
|
|
: void 0 !== t.bin
|
|
? this.setByBinaryString(t.bin)
|
|
: void 0 !== t.array && this.setByBooleanArray(t.array));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERBitString, tt.asn1.ASN1Object),
|
|
(tt.asn1.DEROctetString = function (t) {
|
|
if (void 0 !== t && void 0 !== t.obj) {
|
|
var e = tt.asn1.ASN1Util.newObject(t.obj);
|
|
t.hex = e.getEncodedHex();
|
|
}
|
|
tt.asn1.DEROctetString.superclass.constructor.call(this, t),
|
|
(this.hT = '04');
|
|
}),
|
|
W.lang.extend(tt.asn1.DEROctetString, tt.asn1.DERAbstractString),
|
|
(tt.asn1.DERNull = function () {
|
|
tt.asn1.DERNull.superclass.constructor.call(this),
|
|
(this.hT = '05'),
|
|
(this.hTLV = '0500');
|
|
}),
|
|
W.lang.extend(tt.asn1.DERNull, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERObjectIdentifier = function (t) {
|
|
var e = function (t) {
|
|
var e = t.toString(16);
|
|
return 1 == e.length && (e = '0' + e), e;
|
|
},
|
|
i = function (t) {
|
|
var i = '',
|
|
r = new B(t, 10).toString(2),
|
|
n = 7 - (r.length % 7);
|
|
7 == n && (n = 0);
|
|
for (var s = '', o = 0; o < n; o++) s += '0';
|
|
for (r = s + r, o = 0; o < r.length - 1; o += 7) {
|
|
var h = r.substr(o, 7);
|
|
o != r.length - 7 && (h = '1' + h),
|
|
(i += e(parseInt(h, 2)));
|
|
}
|
|
return i;
|
|
};
|
|
tt.asn1.DERObjectIdentifier.superclass.constructor.call(this),
|
|
(this.hT = '06'),
|
|
(this.setValueHex = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.s = null),
|
|
(this.hV = t);
|
|
}),
|
|
(this.setValueOidString = function (t) {
|
|
if (!t.match(/^[0-9.]+$/)) throw 'malformed oid string: ' + t;
|
|
var r = '',
|
|
n = t.split('.'),
|
|
s = 40 * parseInt(n[0]) + parseInt(n[1]);
|
|
(r += e(s)), n.splice(0, 2);
|
|
for (var o = 0; o < n.length; o++) r += i(n[o]);
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.s = null),
|
|
(this.hV = r);
|
|
}),
|
|
(this.setValueName = function (t) {
|
|
var e = tt.asn1.x509.OID.name2oid(t);
|
|
if ('' === e)
|
|
throw 'DERObjectIdentifier oidName undefined: ' + t;
|
|
this.setValueOidString(e);
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
}),
|
|
void 0 !== t &&
|
|
('string' == typeof t
|
|
? t.match(/^[0-2].[0-9.]+$/)
|
|
? this.setValueOidString(t)
|
|
: this.setValueName(t)
|
|
: void 0 !== t.oid
|
|
? this.setValueOidString(t.oid)
|
|
: void 0 !== t.hex
|
|
? this.setValueHex(t.hex)
|
|
: void 0 !== t.name && this.setValueName(t.name));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERObjectIdentifier, tt.asn1.ASN1Object),
|
|
(tt.asn1.DEREnumerated = function (t) {
|
|
tt.asn1.DEREnumerated.superclass.constructor.call(this),
|
|
(this.hT = '0a'),
|
|
(this.setByBigInteger = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.hV =
|
|
tt.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t));
|
|
}),
|
|
(this.setByInteger = function (t) {
|
|
var e = new B(String(t), 10);
|
|
this.setByBigInteger(e);
|
|
}),
|
|
(this.setValueHex = function (t) {
|
|
this.hV = t;
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
}),
|
|
void 0 !== t &&
|
|
(void 0 !== t.int
|
|
? this.setByInteger(t.int)
|
|
: 'number' == typeof t
|
|
? this.setByInteger(t)
|
|
: void 0 !== t.hex && this.setValueHex(t.hex));
|
|
}),
|
|
W.lang.extend(tt.asn1.DEREnumerated, tt.asn1.ASN1Object),
|
|
(tt.asn1.DERUTF8String = function (t) {
|
|
tt.asn1.DERUTF8String.superclass.constructor.call(this, t),
|
|
(this.hT = '0c');
|
|
}),
|
|
W.lang.extend(tt.asn1.DERUTF8String, tt.asn1.DERAbstractString),
|
|
(tt.asn1.DERNumericString = function (t) {
|
|
tt.asn1.DERNumericString.superclass.constructor.call(this, t),
|
|
(this.hT = '12');
|
|
}),
|
|
W.lang.extend(tt.asn1.DERNumericString, tt.asn1.DERAbstractString),
|
|
(tt.asn1.DERPrintableString = function (t) {
|
|
tt.asn1.DERPrintableString.superclass.constructor.call(this, t),
|
|
(this.hT = '13');
|
|
}),
|
|
W.lang.extend(
|
|
tt.asn1.DERPrintableString,
|
|
tt.asn1.DERAbstractString,
|
|
),
|
|
(tt.asn1.DERTeletexString = function (t) {
|
|
tt.asn1.DERTeletexString.superclass.constructor.call(this, t),
|
|
(this.hT = '14');
|
|
}),
|
|
W.lang.extend(tt.asn1.DERTeletexString, tt.asn1.DERAbstractString),
|
|
(tt.asn1.DERIA5String = function (t) {
|
|
tt.asn1.DERIA5String.superclass.constructor.call(this, t),
|
|
(this.hT = '16');
|
|
}),
|
|
W.lang.extend(tt.asn1.DERIA5String, tt.asn1.DERAbstractString),
|
|
(tt.asn1.DERUTCTime = function (t) {
|
|
tt.asn1.DERUTCTime.superclass.constructor.call(this, t),
|
|
(this.hT = '17'),
|
|
(this.setByDate = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.date = t),
|
|
(this.s = this.formatDate(this.date, 'utc')),
|
|
(this.hV = stohex(this.s));
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return (
|
|
void 0 === this.date &&
|
|
void 0 === this.s &&
|
|
((this.date = new Date()),
|
|
(this.s = this.formatDate(this.date, 'utc')),
|
|
(this.hV = stohex(this.s))),
|
|
this.hV
|
|
);
|
|
}),
|
|
void 0 !== t &&
|
|
(void 0 !== t.str
|
|
? this.setString(t.str)
|
|
: 'string' == typeof t && t.match(/^[0-9]{12}Z$/)
|
|
? this.setString(t)
|
|
: void 0 !== t.hex
|
|
? this.setStringHex(t.hex)
|
|
: void 0 !== t.date && this.setByDate(t.date));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERUTCTime, tt.asn1.DERAbstractTime),
|
|
(tt.asn1.DERGeneralizedTime = function (t) {
|
|
tt.asn1.DERGeneralizedTime.superclass.constructor.call(this, t),
|
|
(this.hT = '18'),
|
|
(this.withMillis = !1),
|
|
(this.setByDate = function (t) {
|
|
(this.hTLV = null),
|
|
(this.isModified = !0),
|
|
(this.date = t),
|
|
(this.s = this.formatDate(
|
|
this.date,
|
|
'gen',
|
|
this.withMillis,
|
|
)),
|
|
(this.hV = stohex(this.s));
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return (
|
|
void 0 === this.date &&
|
|
void 0 === this.s &&
|
|
((this.date = new Date()),
|
|
(this.s = this.formatDate(
|
|
this.date,
|
|
'gen',
|
|
this.withMillis,
|
|
)),
|
|
(this.hV = stohex(this.s))),
|
|
this.hV
|
|
);
|
|
}),
|
|
void 0 !== t &&
|
|
(void 0 !== t.str
|
|
? this.setString(t.str)
|
|
: 'string' == typeof t && t.match(/^[0-9]{14}Z$/)
|
|
? this.setString(t)
|
|
: void 0 !== t.hex
|
|
? this.setStringHex(t.hex)
|
|
: void 0 !== t.date && this.setByDate(t.date),
|
|
!0 === t.millis && (this.withMillis = !0));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERGeneralizedTime, tt.asn1.DERAbstractTime),
|
|
(tt.asn1.DERSequence = function (t) {
|
|
tt.asn1.DERSequence.superclass.constructor.call(this, t),
|
|
(this.hT = '30'),
|
|
(this.getFreshValueHex = function () {
|
|
for (var t = '', e = 0; e < this.asn1Array.length; e++)
|
|
t += this.asn1Array[e].getEncodedHex();
|
|
return (this.hV = t), this.hV;
|
|
});
|
|
}),
|
|
W.lang.extend(tt.asn1.DERSequence, tt.asn1.DERAbstractStructured),
|
|
(tt.asn1.DERSet = function (t) {
|
|
tt.asn1.DERSet.superclass.constructor.call(this, t),
|
|
(this.hT = '31'),
|
|
(this.sortFlag = !0),
|
|
(this.getFreshValueHex = function () {
|
|
for (
|
|
var t = new Array(), e = 0;
|
|
e < this.asn1Array.length;
|
|
e++
|
|
) {
|
|
var i = this.asn1Array[e];
|
|
t.push(i.getEncodedHex());
|
|
}
|
|
return (
|
|
1 == this.sortFlag && t.sort(),
|
|
(this.hV = t.join('')),
|
|
this.hV
|
|
);
|
|
}),
|
|
void 0 !== t &&
|
|
void 0 !== t.sortflag &&
|
|
0 == t.sortflag &&
|
|
(this.sortFlag = !1);
|
|
}),
|
|
W.lang.extend(tt.asn1.DERSet, tt.asn1.DERAbstractStructured),
|
|
(tt.asn1.DERTaggedObject = function (t) {
|
|
tt.asn1.DERTaggedObject.superclass.constructor.call(this),
|
|
(this.hT = 'a0'),
|
|
(this.hV = ''),
|
|
(this.isExplicit = !0),
|
|
(this.asn1Object = null),
|
|
(this.setASN1Object = function (t, e, i) {
|
|
(this.hT = e),
|
|
(this.isExplicit = t),
|
|
(this.asn1Object = i),
|
|
this.isExplicit
|
|
? ((this.hV = this.asn1Object.getEncodedHex()),
|
|
(this.hTLV = null),
|
|
(this.isModified = !0))
|
|
: ((this.hV = null),
|
|
(this.hTLV = i.getEncodedHex()),
|
|
(this.hTLV = this.hTLV.replace(/^../, e)),
|
|
(this.isModified = !1));
|
|
}),
|
|
(this.getFreshValueHex = function () {
|
|
return this.hV;
|
|
}),
|
|
void 0 !== t &&
|
|
(void 0 !== t.tag && (this.hT = t.tag),
|
|
void 0 !== t.explicit && (this.isExplicit = t.explicit),
|
|
void 0 !== t.obj &&
|
|
((this.asn1Object = t.obj),
|
|
this.setASN1Object(
|
|
this.isExplicit,
|
|
this.hT,
|
|
this.asn1Object,
|
|
)));
|
|
}),
|
|
W.lang.extend(tt.asn1.DERTaggedObject, tt.asn1.ASN1Object);
|
|
var et,
|
|
it =
|
|
((et = function (t, e) {
|
|
return (et =
|
|
Object.setPrototypeOf ||
|
|
({__proto__: []} instanceof Array &&
|
|
function (t, e) {
|
|
t.__proto__ = e;
|
|
}) ||
|
|
function (t, e) {
|
|
for (var i in e)
|
|
Object.prototype.hasOwnProperty.call(e, i) &&
|
|
(t[i] = e[i]);
|
|
})(t, e);
|
|
}),
|
|
function (t, e) {
|
|
if ('function' != typeof e && null !== e)
|
|
throw new TypeError(
|
|
'Class extends value ' +
|
|
String(e) +
|
|
' is not a constructor or null',
|
|
);
|
|
function i() {
|
|
this.constructor = t;
|
|
}
|
|
et(t, e),
|
|
(t.prototype =
|
|
null === e
|
|
? Object.create(e)
|
|
: ((i.prototype = e.prototype), new i()));
|
|
}),
|
|
rt = (function (t) {
|
|
function e(i) {
|
|
var r = t.call(this) || this;
|
|
return (
|
|
i &&
|
|
('string' == typeof i
|
|
? r.parseKey(i)
|
|
: (e.hasPrivateKeyProperty(i) ||
|
|
e.hasPublicKeyProperty(i)) &&
|
|
r.parsePropertiesFrom(i)),
|
|
r
|
|
);
|
|
}
|
|
return (
|
|
it(e, t),
|
|
(e.prototype.parseKey = function (t) {
|
|
try {
|
|
var e = 0,
|
|
i = 0,
|
|
r = /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t)
|
|
? (function (t) {
|
|
var e;
|
|
if (void 0 === c) {
|
|
var i = '0123456789ABCDEF',
|
|
r = ' \f\n\r\t \u2028\u2029';
|
|
for (c = {}, e = 0; e < 16; ++e)
|
|
c[i.charAt(e)] = e;
|
|
for (i = i.toLowerCase(), e = 10; e < 16; ++e)
|
|
c[i.charAt(e)] = e;
|
|
for (e = 0; e < r.length; ++e)
|
|
c[r.charAt(e)] = -1;
|
|
}
|
|
var n = [],
|
|
s = 0,
|
|
o = 0;
|
|
for (e = 0; e < t.length; ++e) {
|
|
var h = t.charAt(e);
|
|
if ('=' == h) break;
|
|
if (-1 != (h = c[h])) {
|
|
if (void 0 === h)
|
|
throw new Error(
|
|
'Illegal character at offset ' + e,
|
|
);
|
|
(s |= h),
|
|
++o >= 2
|
|
? ((n[n.length] = s), (s = 0), (o = 0))
|
|
: (s <<= 4);
|
|
}
|
|
}
|
|
if (o)
|
|
throw new Error(
|
|
'Hex encoding incomplete: 4 bits missing',
|
|
);
|
|
return n;
|
|
})(t)
|
|
: d.unarmor(t),
|
|
n = w.decode(r);
|
|
if (
|
|
(3 === n.sub.length && (n = n.sub[2].sub[0]),
|
|
9 === n.sub.length)
|
|
) {
|
|
(e = n.sub[1].getHexStringValue()),
|
|
(this.n = P(e, 16)),
|
|
(i = n.sub[2].getHexStringValue()),
|
|
(this.e = parseInt(i, 16));
|
|
var s = n.sub[3].getHexStringValue();
|
|
this.d = P(s, 16);
|
|
var o = n.sub[4].getHexStringValue();
|
|
this.p = P(o, 16);
|
|
var h = n.sub[5].getHexStringValue();
|
|
this.q = P(h, 16);
|
|
var a = n.sub[6].getHexStringValue();
|
|
this.dmp1 = P(a, 16);
|
|
var u = n.sub[7].getHexStringValue();
|
|
this.dmq1 = P(u, 16);
|
|
var f = n.sub[8].getHexStringValue();
|
|
this.coeff = P(f, 16);
|
|
} else {
|
|
if (2 !== n.sub.length) return !1;
|
|
var l = n.sub[1].sub[0];
|
|
(e = l.sub[0].getHexStringValue()),
|
|
(this.n = P(e, 16)),
|
|
(i = l.sub[1].getHexStringValue()),
|
|
(this.e = parseInt(i, 16));
|
|
}
|
|
return !0;
|
|
} catch (t) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(e.prototype.getPrivateBaseKey = function () {
|
|
var t = {
|
|
array: [
|
|
new tt.asn1.DERInteger({int: 0}),
|
|
new tt.asn1.DERInteger({bigint: this.n}),
|
|
new tt.asn1.DERInteger({int: this.e}),
|
|
new tt.asn1.DERInteger({bigint: this.d}),
|
|
new tt.asn1.DERInteger({bigint: this.p}),
|
|
new tt.asn1.DERInteger({bigint: this.q}),
|
|
new tt.asn1.DERInteger({bigint: this.dmp1}),
|
|
new tt.asn1.DERInteger({bigint: this.dmq1}),
|
|
new tt.asn1.DERInteger({bigint: this.coeff}),
|
|
],
|
|
};
|
|
return new tt.asn1.DERSequence(t).getEncodedHex();
|
|
}),
|
|
(e.prototype.getPrivateBaseKeyB64 = function () {
|
|
return l(this.getPrivateBaseKey());
|
|
}),
|
|
(e.prototype.getPublicBaseKey = function () {
|
|
var t = new tt.asn1.DERSequence({
|
|
array: [
|
|
new tt.asn1.DERObjectIdentifier({
|
|
oid: '1.2.840.113549.1.1.1',
|
|
}),
|
|
new tt.asn1.DERNull(),
|
|
],
|
|
}),
|
|
e = new tt.asn1.DERSequence({
|
|
array: [
|
|
new tt.asn1.DERInteger({bigint: this.n}),
|
|
new tt.asn1.DERInteger({int: this.e}),
|
|
],
|
|
}),
|
|
i = new tt.asn1.DERBitString({
|
|
hex: '00' + e.getEncodedHex(),
|
|
});
|
|
return new tt.asn1.DERSequence({
|
|
array: [t, i],
|
|
}).getEncodedHex();
|
|
}),
|
|
(e.prototype.getPublicBaseKeyB64 = function () {
|
|
return l(this.getPublicBaseKey());
|
|
}),
|
|
(e.wordwrap = function (t, e) {
|
|
if (!t) return t;
|
|
var i =
|
|
'(.{1,' + (e = e || 64) + '})( +|$\n?)|(.{1,' + e + '})';
|
|
return t.match(RegExp(i, 'g')).join('\n');
|
|
}),
|
|
(e.prototype.getPrivateKey = function () {
|
|
var t = '-----BEGIN RSA PRIVATE KEY-----\n';
|
|
return (
|
|
(t += e.wordwrap(this.getPrivateBaseKeyB64()) + '\n') +
|
|
'-----END RSA PRIVATE KEY-----'
|
|
);
|
|
}),
|
|
(e.prototype.getPublicKey = function () {
|
|
var t = '-----BEGIN PUBLIC KEY-----\n';
|
|
return (
|
|
(t += e.wordwrap(this.getPublicBaseKeyB64()) + '\n') +
|
|
'-----END PUBLIC KEY-----'
|
|
);
|
|
}),
|
|
(e.hasPublicKeyProperty = function (t) {
|
|
return (
|
|
(t = t || {}).hasOwnProperty('n') && t.hasOwnProperty('e')
|
|
);
|
|
}),
|
|
(e.hasPrivateKeyProperty = function (t) {
|
|
return (
|
|
(t = t || {}).hasOwnProperty('n') &&
|
|
t.hasOwnProperty('e') &&
|
|
t.hasOwnProperty('d') &&
|
|
t.hasOwnProperty('p') &&
|
|
t.hasOwnProperty('q') &&
|
|
t.hasOwnProperty('dmp1') &&
|
|
t.hasOwnProperty('dmq1') &&
|
|
t.hasOwnProperty('coeff')
|
|
);
|
|
}),
|
|
(e.prototype.parsePropertiesFrom = function (t) {
|
|
(this.n = t.n),
|
|
(this.e = t.e),
|
|
t.hasOwnProperty('d') &&
|
|
((this.d = t.d),
|
|
(this.p = t.p),
|
|
(this.q = t.q),
|
|
(this.dmp1 = t.dmp1),
|
|
(this.dmq1 = t.dmq1),
|
|
(this.coeff = t.coeff));
|
|
}),
|
|
e
|
|
);
|
|
})(X);
|
|
const nt = (function () {
|
|
function t(t) {
|
|
(t = t || {}),
|
|
(this.default_key_size = t.default_key_size
|
|
? parseInt(t.default_key_size, 10)
|
|
: 1024),
|
|
(this.default_public_exponent =
|
|
t.default_public_exponent || '010001'),
|
|
(this.log = t.log || !1),
|
|
(this.key = null);
|
|
}
|
|
return (
|
|
(t.prototype.setKey = function (t) {
|
|
this.log &&
|
|
this.key &&
|
|
console.warn('A key was already set, overriding existing.'),
|
|
(this.key = new rt(t));
|
|
}),
|
|
(t.prototype.setPrivateKey = function (t) {
|
|
this.setKey(t);
|
|
}),
|
|
(t.prototype.setPublicKey = function (t) {
|
|
this.setKey(t);
|
|
}),
|
|
(t.prototype.decrypt = function (t) {
|
|
try {
|
|
return this.getKey().decrypt(p(t));
|
|
} catch (t) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(t.prototype.encrypt = function (t) {
|
|
try {
|
|
return l(this.getKey().encrypt(t));
|
|
} catch (t) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(t.prototype.sign = function (t, e, i) {
|
|
try {
|
|
return l(this.getKey().sign(t, e, i));
|
|
} catch (t) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(t.prototype.verify = function (t, e, i) {
|
|
try {
|
|
return this.getKey().verify(t, p(e), i);
|
|
} catch (t) {
|
|
return !1;
|
|
}
|
|
}),
|
|
(t.prototype.getKey = function (t) {
|
|
if (!this.key) {
|
|
if (
|
|
((this.key = new rt()),
|
|
t && '[object Function]' === {}.toString.call(t))
|
|
)
|
|
return void this.key.generateAsync(
|
|
this.default_key_size,
|
|
this.default_public_exponent,
|
|
t,
|
|
);
|
|
this.key.generate(
|
|
this.default_key_size,
|
|
this.default_public_exponent,
|
|
);
|
|
}
|
|
return this.key;
|
|
}),
|
|
(t.prototype.getPrivateKey = function () {
|
|
return this.getKey().getPrivateKey();
|
|
}),
|
|
(t.prototype.getPrivateKeyB64 = function () {
|
|
return this.getKey().getPrivateBaseKeyB64();
|
|
}),
|
|
(t.prototype.getPublicKey = function () {
|
|
return this.getKey().getPublicKey();
|
|
}),
|
|
(t.prototype.getPublicKeyB64 = function () {
|
|
return this.getKey().getPublicBaseKeyB64();
|
|
}),
|
|
(t.version = '3.2.0'),
|
|
t
|
|
);
|
|
})();
|
|
},
|
|
],
|
|
e = {
|
|
d: (t, i) => {
|
|
for (var r in i)
|
|
e.o(i, r) &&
|
|
!e.o(t, r) &&
|
|
Object.defineProperty(t, r, {enumerable: !0, get: i[r]});
|
|
},
|
|
o: (t, e) => Object.prototype.hasOwnProperty.call(t, e),
|
|
},
|
|
i = {};
|
|
return t[1](0, i, e), i.default;
|
|
})();
|
|
}
|
|
|
|
const JSEncrypt = JSEncrypts()
|
|
|
|
export default JSEncrypt
|
|
|
|
// !(function (t, e) {
|
|
// 'object' == typeof exports && 'object' == typeof module
|
|
// ? (module.exports = e())
|
|
// : 'function' == typeof define && define.amd
|
|
// ? define([], e)
|
|
// : 'object' == typeof exports
|
|
// ? (exports.JSEncrypt = e())
|
|
// : (t.JSEncrypt = e());
|
|
// })(window, function () {
|
|
// return (() => {
|
|
// 'use strict';
|
|
// var t = [
|
|
// ,
|
|
// (t, e, i) => {
|
|
// function r(t) {
|
|
// return '0123456789abcdefghijklmnopqrstuvwxyz'.charAt(t);
|
|
// }
|
|
// function n(t, e) {
|
|
// return t & e;
|
|
// }
|
|
// function s(t, e) {
|
|
// return t | e;
|
|
// }
|
|
// function o(t, e) {
|
|
// return t ^ e;
|
|
// }
|
|
// function h(t, e) {
|
|
// return t & ~e;
|
|
// }
|
|
// function a(t) {
|
|
// if (0 == t) return -1;
|
|
// var e = 0;
|
|
// return (
|
|
// 0 == (65535 & t) && ((t >>= 16), (e += 16)),
|
|
// 0 == (255 & t) && ((t >>= 8), (e += 8)),
|
|
// 0 == (15 & t) && ((t >>= 4), (e += 4)),
|
|
// 0 == (3 & t) && ((t >>= 2), (e += 2)),
|
|
// 0 == (1 & t) && ++e,
|
|
// e
|
|
// );
|
|
// }
|
|
// function u(t) {
|
|
// for (var e = 0; 0 != t; ) (t &= t - 1), ++e;
|
|
// return e;
|
|
// }
|
|
// i.d(e, {default: () => nt});
|
|
// var c,
|
|
// f =
|
|
// 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
// function l(t) {
|
|
// var e,
|
|
// i,
|
|
// r = '';
|
|
// for (e = 0; e + 3 <= t.length; e += 3)
|
|
// (i = parseInt(t.substring(e, e + 3), 16)),
|
|
// (r += f.charAt(i >> 6) + f.charAt(63 & i));
|
|
// for (
|
|
// e + 1 == t.length
|
|
// ? ((i = parseInt(t.substring(e, e + 1), 16)),
|
|
// (r += f.charAt(i << 2)))
|
|
// : e + 2 == t.length &&
|
|
// ((i = parseInt(t.substring(e, e + 2), 16)),
|
|
// (r += f.charAt(i >> 2) + f.charAt((3 & i) << 4)));
|
|
// (3 & r.length) > 0;
|
|
|
|
// )
|
|
// r += '=';
|
|
// return r;
|
|
// }
|
|
// function p(t) {
|
|
// var e,
|
|
// i = '',
|
|
// n = 0,
|
|
// s = 0;
|
|
// for (e = 0; e < t.length && '=' != t.charAt(e); ++e) {
|
|
// var o = f.indexOf(t.charAt(e));
|
|
// o < 0 ||
|
|
// (0 == n
|
|
// ? ((i += r(o >> 2)), (s = 3 & o), (n = 1))
|
|
// : 1 == n
|
|
// ? ((i += r((s << 2) | (o >> 4))), (s = 15 & o), (n = 2))
|
|
// : 2 == n
|
|
// ? ((i += r(s)), (i += r(o >> 2)), (s = 3 & o), (n = 3))
|
|
// : ((i += r((s << 2) | (o >> 4))), (i += r(15 & o)), (n = 0)));
|
|
// }
|
|
// return 1 == n && (i += r(s << 2)), i;
|
|
// }
|
|
// var g,
|
|
// d = {
|
|
// decode: function (t) {
|
|
// var e;
|
|
// if (void 0 === g) {
|
|
// var i = '= \f\n\r\t \u2028\u2029';
|
|
// for (g = Object.create(null), e = 0; e < 64; ++e)
|
|
// g[
|
|
// 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charAt(
|
|
// e,
|
|
// )
|
|
// ] = e;
|
|
// for (g['-'] = 62, g._ = 63, e = 0; e < i.length; ++e)
|
|
// g[i.charAt(e)] = -1;
|
|
// }
|
|
// var r = [],
|
|
// n = 0,
|
|
// s = 0;
|
|
// for (e = 0; e < t.length; ++e) {
|
|
// var o = t.charAt(e);
|
|
// if ('=' == o) break;
|
|
// if (-1 != (o = g[o])) {
|
|
// if (void 0 === o)
|
|
// throw new Error('Illegal character at offset ' + e);
|
|
// (n |= o),
|
|
// ++s >= 4
|
|
// ? ((r[r.length] = n >> 16),
|
|
// (r[r.length] = (n >> 8) & 255),
|
|
// (r[r.length] = 255 & n),
|
|
// (n = 0),
|
|
// (s = 0))
|
|
// : (n <<= 6);
|
|
// }
|
|
// }
|
|
// switch (s) {
|
|
// case 1:
|
|
// throw new Error(
|
|
// 'Base64 encoding incomplete: at least 2 bits missing',
|
|
// );
|
|
// case 2:
|
|
// r[r.length] = n >> 10;
|
|
// break;
|
|
// case 3:
|
|
// (r[r.length] = n >> 16), (r[r.length] = (n >> 8) & 255);
|
|
// }
|
|
// return r;
|
|
// },
|
|
// re: /-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,
|
|
// unarmor: function (t) {
|
|
// var e = d.re.exec(t);
|
|
// if (e)
|
|
// if (e[1]) t = e[1];
|
|
// else {
|
|
// if (!e[2]) throw new Error('RegExp out of sync');
|
|
// t = e[2];
|
|
// }
|
|
// return d.decode(t);
|
|
// },
|
|
// },
|
|
// v = 1e13,
|
|
// m = (function () {
|
|
// function t(t) {
|
|
// this.buf = [+t || 0];
|
|
// }
|
|
// return (
|
|
// (t.prototype.mulAdd = function (t, e) {
|
|
// var i,
|
|
// r,
|
|
// n = this.buf,
|
|
// s = n.length;
|
|
// for (i = 0; i < s; ++i)
|
|
// (r = n[i] * t + e) < v
|
|
// ? (e = 0)
|
|
// : (r -= (e = 0 | (r / v)) * v),
|
|
// (n[i] = r);
|
|
// e > 0 && (n[i] = e);
|
|
// }),
|
|
// (t.prototype.sub = function (t) {
|
|
// var e,
|
|
// i,
|
|
// r = this.buf,
|
|
// n = r.length;
|
|
// for (e = 0; e < n; ++e)
|
|
// (i = r[e] - t) < 0 ? ((i += v), (t = 1)) : (t = 0),
|
|
// (r[e] = i);
|
|
// for (; 0 === r[r.length - 1]; ) r.pop();
|
|
// }),
|
|
// (t.prototype.toString = function (t) {
|
|
// if (10 != (t || 10))
|
|
// throw new Error('only base 10 is supported');
|
|
// for (
|
|
// var e = this.buf,
|
|
// i = e[e.length - 1].toString(),
|
|
// r = e.length - 2;
|
|
// r >= 0;
|
|
// --r
|
|
// )
|
|
// i += (v + e[r]).toString().substring(1);
|
|
// return i;
|
|
// }),
|
|
// (t.prototype.valueOf = function () {
|
|
// for (var t = this.buf, e = 0, i = t.length - 1; i >= 0; --i)
|
|
// e = e * v + t[i];
|
|
// return e;
|
|
// }),
|
|
// (t.prototype.simplify = function () {
|
|
// var t = this.buf;
|
|
// return 1 == t.length ? t[0] : this;
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// y =
|
|
// /^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,
|
|
// b =
|
|
// /^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
|
|
// function T(t, e) {
|
|
// return t.length > e && (t = t.substring(0, e) + '…'), t;
|
|
// }
|
|
// var S,
|
|
// E = (function () {
|
|
// function t(e, i) {
|
|
// (this.hexDigits = '0123456789ABCDEF'),
|
|
// e instanceof t
|
|
// ? ((this.enc = e.enc), (this.pos = e.pos))
|
|
// : ((this.enc = e), (this.pos = i));
|
|
// }
|
|
// return (
|
|
// (t.prototype.get = function (t) {
|
|
// if ((void 0 === t && (t = this.pos++), t >= this.enc.length))
|
|
// throw new Error(
|
|
// 'Requesting byte offset ' +
|
|
// t +
|
|
// ' on a stream of length ' +
|
|
// this.enc.length,
|
|
// );
|
|
// return 'string' == typeof this.enc
|
|
// ? this.enc.charCodeAt(t)
|
|
// : this.enc[t];
|
|
// }),
|
|
// (t.prototype.hexByte = function (t) {
|
|
// return (
|
|
// this.hexDigits.charAt((t >> 4) & 15) +
|
|
// this.hexDigits.charAt(15 & t)
|
|
// );
|
|
// }),
|
|
// (t.prototype.hexDump = function (t, e, i) {
|
|
// for (var r = '', n = t; n < e; ++n)
|
|
// if (((r += this.hexByte(this.get(n))), !0 !== i))
|
|
// switch (15 & n) {
|
|
// case 7:
|
|
// r += ' ';
|
|
// break;
|
|
// case 15:
|
|
// r += '\n';
|
|
// break;
|
|
// default:
|
|
// r += ' ';
|
|
// }
|
|
// return r;
|
|
// }),
|
|
// (t.prototype.isASCII = function (t, e) {
|
|
// for (var i = t; i < e; ++i) {
|
|
// var r = this.get(i);
|
|
// if (r < 32 || r > 176) return !1;
|
|
// }
|
|
// return !0;
|
|
// }),
|
|
// (t.prototype.parseStringISO = function (t, e) {
|
|
// for (var i = '', r = t; r < e; ++r)
|
|
// i += String.fromCharCode(this.get(r));
|
|
// return i;
|
|
// }),
|
|
// (t.prototype.parseStringUTF = function (t, e) {
|
|
// for (var i = '', r = t; r < e; ) {
|
|
// var n = this.get(r++);
|
|
// i +=
|
|
// n < 128
|
|
// ? String.fromCharCode(n)
|
|
// : n > 191 && n < 224
|
|
// ? String.fromCharCode(
|
|
// ((31 & n) << 6) | (63 & this.get(r++)),
|
|
// )
|
|
// : String.fromCharCode(
|
|
// ((15 & n) << 12) |
|
|
// ((63 & this.get(r++)) << 6) |
|
|
// (63 & this.get(r++)),
|
|
// );
|
|
// }
|
|
// return i;
|
|
// }),
|
|
// (t.prototype.parseStringBMP = function (t, e) {
|
|
// for (var i, r, n = '', s = t; s < e; )
|
|
// (i = this.get(s++)),
|
|
// (r = this.get(s++)),
|
|
// (n += String.fromCharCode((i << 8) | r));
|
|
// return n;
|
|
// }),
|
|
// (t.prototype.parseTime = function (t, e, i) {
|
|
// var r = this.parseStringISO(t, e),
|
|
// n = (i ? y : b).exec(r);
|
|
// return n
|
|
// ? (i && ((n[1] = +n[1]), (n[1] += +n[1] < 70 ? 2e3 : 1900)),
|
|
// (r = n[1] + '-' + n[2] + '-' + n[3] + ' ' + n[4]),
|
|
// n[5] &&
|
|
// ((r += ':' + n[5]),
|
|
// n[6] && ((r += ':' + n[6]), n[7] && (r += '.' + n[7]))),
|
|
// n[8] &&
|
|
// ((r += ' UTC'),
|
|
// 'Z' != n[8] &&
|
|
// ((r += n[8]), n[9] && (r += ':' + n[9]))),
|
|
// r)
|
|
// : 'Unrecognized time: ' + r;
|
|
// }),
|
|
// (t.prototype.parseInteger = function (t, e) {
|
|
// for (
|
|
// var i,
|
|
// r = this.get(t),
|
|
// n = r > 127,
|
|
// s = n ? 255 : 0,
|
|
// o = '';
|
|
// r == s && ++t < e;
|
|
|
|
// )
|
|
// r = this.get(t);
|
|
// if (0 == (i = e - t)) return n ? -1 : 0;
|
|
// if (i > 4) {
|
|
// for (o = r, i <<= 3; 0 == (128 & (+o ^ s)); )
|
|
// (o = +o << 1), --i;
|
|
// o = '(' + i + ' bit)\n';
|
|
// }
|
|
// n && (r -= 256);
|
|
// for (var h = new m(r), a = t + 1; a < e; ++a)
|
|
// h.mulAdd(256, this.get(a));
|
|
// return o + h.toString();
|
|
// }),
|
|
// (t.prototype.parseBitString = function (t, e, i) {
|
|
// for (
|
|
// var r = this.get(t),
|
|
// n = '(' + (((e - t - 1) << 3) - r) + ' bit)\n',
|
|
// s = '',
|
|
// o = t + 1;
|
|
// o < e;
|
|
// ++o
|
|
// ) {
|
|
// for (
|
|
// var h = this.get(o), a = o == e - 1 ? r : 0, u = 7;
|
|
// u >= a;
|
|
// --u
|
|
// )
|
|
// s += (h >> u) & 1 ? '1' : '0';
|
|
// if (s.length > i) return n + T(s, i);
|
|
// }
|
|
// return n + s;
|
|
// }),
|
|
// (t.prototype.parseOctetString = function (t, e, i) {
|
|
// if (this.isASCII(t, e))
|
|
// return T(this.parseStringISO(t, e), i);
|
|
// var r = e - t,
|
|
// n = '(' + r + ' byte)\n';
|
|
// r > (i /= 2) && (e = t + i);
|
|
// for (var s = t; s < e; ++s) n += this.hexByte(this.get(s));
|
|
// return r > i && (n += '…'), n;
|
|
// }),
|
|
// (t.prototype.parseOID = function (t, e, i) {
|
|
// for (var r = '', n = new m(), s = 0, o = t; o < e; ++o) {
|
|
// var h = this.get(o);
|
|
// if ((n.mulAdd(128, 127 & h), (s += 7), !(128 & h))) {
|
|
// if ('' === r)
|
|
// if ((n = n.simplify()) instanceof m)
|
|
// n.sub(80), (r = '2.' + n.toString());
|
|
// else {
|
|
// var a = n < 80 ? (n < 40 ? 0 : 1) : 2;
|
|
// r = a + '.' + (n - 40 * a);
|
|
// }
|
|
// else r += '.' + n.toString();
|
|
// if (r.length > i) return T(r, i);
|
|
// (n = new m()), (s = 0);
|
|
// }
|
|
// }
|
|
// return s > 0 && (r += '.incomplete'), r;
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// w = (function () {
|
|
// function t(t, e, i, r, n) {
|
|
// if (!(r instanceof D)) throw new Error('Invalid tag value.');
|
|
// (this.stream = t),
|
|
// (this.header = e),
|
|
// (this.length = i),
|
|
// (this.tag = r),
|
|
// (this.sub = n);
|
|
// }
|
|
// return (
|
|
// (t.prototype.typeName = function () {
|
|
// switch (this.tag.tagClass) {
|
|
// case 0:
|
|
// switch (this.tag.tagNumber) {
|
|
// case 0:
|
|
// return 'EOC';
|
|
// case 1:
|
|
// return 'BOOLEAN';
|
|
// case 2:
|
|
// return 'INTEGER';
|
|
// case 3:
|
|
// return 'BIT_STRING';
|
|
// case 4:
|
|
// return 'OCTET_STRING';
|
|
// case 5:
|
|
// return 'NULL';
|
|
// case 6:
|
|
// return 'OBJECT_IDENTIFIER';
|
|
// case 7:
|
|
// return 'ObjectDescriptor';
|
|
// case 8:
|
|
// return 'EXTERNAL';
|
|
// case 9:
|
|
// return 'REAL';
|
|
// case 10:
|
|
// return 'ENUMERATED';
|
|
// case 11:
|
|
// return 'EMBEDDED_PDV';
|
|
// case 12:
|
|
// return 'UTF8String';
|
|
// case 16:
|
|
// return 'SEQUENCE';
|
|
// case 17:
|
|
// return 'SET';
|
|
// case 18:
|
|
// return 'NumericString';
|
|
// case 19:
|
|
// return 'PrintableString';
|
|
// case 20:
|
|
// return 'TeletexString';
|
|
// case 21:
|
|
// return 'VideotexString';
|
|
// case 22:
|
|
// return 'IA5String';
|
|
// case 23:
|
|
// return 'UTCTime';
|
|
// case 24:
|
|
// return 'GeneralizedTime';
|
|
// case 25:
|
|
// return 'GraphicString';
|
|
// case 26:
|
|
// return 'VisibleString';
|
|
// case 27:
|
|
// return 'GeneralString';
|
|
// case 28:
|
|
// return 'UniversalString';
|
|
// case 30:
|
|
// return 'BMPString';
|
|
// }
|
|
// return 'Universal_' + this.tag.tagNumber.toString();
|
|
// case 1:
|
|
// return 'Application_' + this.tag.tagNumber.toString();
|
|
// case 2:
|
|
// return '[' + this.tag.tagNumber.toString() + ']';
|
|
// case 3:
|
|
// return 'Private_' + this.tag.tagNumber.toString();
|
|
// }
|
|
// }),
|
|
// (t.prototype.content = function (t) {
|
|
// if (void 0 === this.tag) return null;
|
|
// void 0 === t && (t = 1 / 0);
|
|
// var e = this.posContent(),
|
|
// i = Math.abs(this.length);
|
|
// if (!this.tag.isUniversal())
|
|
// return null !== this.sub
|
|
// ? '(' + this.sub.length + ' elem)'
|
|
// : this.stream.parseOctetString(e, e + i, t);
|
|
// switch (this.tag.tagNumber) {
|
|
// case 1:
|
|
// return 0 === this.stream.get(e) ? 'false' : 'true';
|
|
// case 2:
|
|
// return this.stream.parseInteger(e, e + i);
|
|
// case 3:
|
|
// return this.sub
|
|
// ? '(' + this.sub.length + ' elem)'
|
|
// : this.stream.parseBitString(e, e + i, t);
|
|
// case 4:
|
|
// return this.sub
|
|
// ? '(' + this.sub.length + ' elem)'
|
|
// : this.stream.parseOctetString(e, e + i, t);
|
|
// case 6:
|
|
// return this.stream.parseOID(e, e + i, t);
|
|
// case 16:
|
|
// case 17:
|
|
// return null !== this.sub
|
|
// ? '(' + this.sub.length + ' elem)'
|
|
// : '(no elem)';
|
|
// case 12:
|
|
// return T(this.stream.parseStringUTF(e, e + i), t);
|
|
// case 18:
|
|
// case 19:
|
|
// case 20:
|
|
// case 21:
|
|
// case 22:
|
|
// case 26:
|
|
// return T(this.stream.parseStringISO(e, e + i), t);
|
|
// case 30:
|
|
// return T(this.stream.parseStringBMP(e, e + i), t);
|
|
// case 23:
|
|
// case 24:
|
|
// return this.stream.parseTime(
|
|
// e,
|
|
// e + i,
|
|
// 23 == this.tag.tagNumber,
|
|
// );
|
|
// }
|
|
// return null;
|
|
// }),
|
|
// (t.prototype.toString = function () {
|
|
// return (
|
|
// this.typeName() +
|
|
// '@' +
|
|
// this.stream.pos +
|
|
// '[header:' +
|
|
// this.header +
|
|
// ',length:' +
|
|
// this.length +
|
|
// ',sub:' +
|
|
// (null === this.sub ? 'null' : this.sub.length) +
|
|
// ']'
|
|
// );
|
|
// }),
|
|
// (t.prototype.toPrettyString = function (t) {
|
|
// void 0 === t && (t = '');
|
|
// var e = t + this.typeName() + ' @' + this.stream.pos;
|
|
// if (
|
|
// (this.length >= 0 && (e += '+'),
|
|
// (e += this.length),
|
|
// this.tag.tagConstructed
|
|
// ? (e += ' (constructed)')
|
|
// : !this.tag.isUniversal() ||
|
|
// (3 != this.tag.tagNumber && 4 != this.tag.tagNumber) ||
|
|
// null === this.sub ||
|
|
// (e += ' (encapsulates)'),
|
|
// (e += '\n'),
|
|
// null !== this.sub)
|
|
// ) {
|
|
// t += ' ';
|
|
// for (var i = 0, r = this.sub.length; i < r; ++i)
|
|
// e += this.sub[i].toPrettyString(t);
|
|
// }
|
|
// return e;
|
|
// }),
|
|
// (t.prototype.posStart = function () {
|
|
// return this.stream.pos;
|
|
// }),
|
|
// (t.prototype.posContent = function () {
|
|
// return this.stream.pos + this.header;
|
|
// }),
|
|
// (t.prototype.posEnd = function () {
|
|
// return this.stream.pos + this.header + Math.abs(this.length);
|
|
// }),
|
|
// (t.prototype.toHexString = function () {
|
|
// return this.stream.hexDump(
|
|
// this.posStart(),
|
|
// this.posEnd(),
|
|
// !0,
|
|
// );
|
|
// }),
|
|
// (t.decodeLength = function (t) {
|
|
// var e = t.get(),
|
|
// i = 127 & e;
|
|
// if (i == e) return i;
|
|
// if (i > 6)
|
|
// throw new Error(
|
|
// 'Length over 48 bits not supported at position ' +
|
|
// (t.pos - 1),
|
|
// );
|
|
// if (0 === i) return null;
|
|
// e = 0;
|
|
// for (var r = 0; r < i; ++r) e = 256 * e + t.get();
|
|
// return e;
|
|
// }),
|
|
// (t.prototype.getHexStringValue = function () {
|
|
// var t = this.toHexString(),
|
|
// e = 2 * this.header,
|
|
// i = 2 * this.length;
|
|
// return t.substr(e, i);
|
|
// }),
|
|
// (t.decode = function (e) {
|
|
// var i;
|
|
// i = e instanceof E ? e : new E(e, 0);
|
|
// var r = new E(i),
|
|
// n = new D(i),
|
|
// s = t.decodeLength(i),
|
|
// o = i.pos,
|
|
// h = o - r.pos,
|
|
// a = null,
|
|
// u = function () {
|
|
// var e = [];
|
|
// if (null !== s) {
|
|
// for (var r = o + s; i.pos < r; )
|
|
// e[e.length] = t.decode(i);
|
|
// if (i.pos != r)
|
|
// throw new Error(
|
|
// 'Content size is not correct for container starting at offset ' +
|
|
// o,
|
|
// );
|
|
// } else
|
|
// try {
|
|
// for (;;) {
|
|
// var n = t.decode(i);
|
|
// if (n.tag.isEOC()) break;
|
|
// e[e.length] = n;
|
|
// }
|
|
// s = o - i.pos;
|
|
// } catch (t) {
|
|
// throw new Error(
|
|
// 'Exception while decoding undefined length content: ' +
|
|
// t,
|
|
// );
|
|
// }
|
|
// return e;
|
|
// };
|
|
// if (n.tagConstructed) a = u();
|
|
// else if (
|
|
// n.isUniversal() &&
|
|
// (3 == n.tagNumber || 4 == n.tagNumber)
|
|
// )
|
|
// try {
|
|
// if (3 == n.tagNumber && 0 != i.get())
|
|
// throw new Error(
|
|
// 'BIT STRINGs with unused bits cannot encapsulate.',
|
|
// );
|
|
// a = u();
|
|
// for (var c = 0; c < a.length; ++c)
|
|
// if (a[c].tag.isEOC())
|
|
// throw new Error(
|
|
// 'EOC is not supposed to be actual content.',
|
|
// );
|
|
// } catch (t) {
|
|
// a = null;
|
|
// }
|
|
// if (null === a) {
|
|
// if (null === s)
|
|
// throw new Error(
|
|
// "We can't skip over an invalid tag with undefined length at offset " +
|
|
// o,
|
|
// );
|
|
// i.pos = o + Math.abs(s);
|
|
// }
|
|
// return new t(r, h, s, n, a);
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// D = (function () {
|
|
// function t(t) {
|
|
// var e = t.get();
|
|
// if (
|
|
// ((this.tagClass = e >> 6),
|
|
// (this.tagConstructed = 0 != (32 & e)),
|
|
// (this.tagNumber = 31 & e),
|
|
// 31 == this.tagNumber)
|
|
// ) {
|
|
// var i = new m();
|
|
// do {
|
|
// (e = t.get()), i.mulAdd(128, 127 & e);
|
|
// } while (128 & e);
|
|
// this.tagNumber = i.simplify();
|
|
// }
|
|
// }
|
|
// return (
|
|
// (t.prototype.isUniversal = function () {
|
|
// return 0 === this.tagClass;
|
|
// }),
|
|
// (t.prototype.isEOC = function () {
|
|
// return 0 === this.tagClass && 0 === this.tagNumber;
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// x = [
|
|
// 2, 3, 5, 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,
|
|
// ],
|
|
// R = (1 << 26) / x[x.length - 1],
|
|
// B = (function () {
|
|
// function t(t, e, i) {
|
|
// null != t &&
|
|
// ('number' == typeof t
|
|
// ? this.fromNumber(t, e, i)
|
|
// : null == e && 'string' != typeof t
|
|
// ? this.fromString(t, 256)
|
|
// : this.fromString(t, e));
|
|
// }
|
|
// return (
|
|
// (t.prototype.toString = function (t) {
|
|
// if (this.s < 0) return '-' + this.negate().toString(t);
|
|
// var e;
|
|
// if (16 == t) e = 4;
|
|
// else if (8 == t) e = 3;
|
|
// else if (2 == t) e = 1;
|
|
// else if (32 == t) e = 5;
|
|
// else {
|
|
// if (4 != t) return this.toRadix(t);
|
|
// e = 2;
|
|
// }
|
|
// var i,
|
|
// n = (1 << e) - 1,
|
|
// s = !1,
|
|
// o = '',
|
|
// h = this.t,
|
|
// a = this.DB - ((h * this.DB) % e);
|
|
// if (h-- > 0)
|
|
// for (
|
|
// a < this.DB &&
|
|
// (i = this[h] >> a) > 0 &&
|
|
// ((s = !0), (o = r(i)));
|
|
// h >= 0;
|
|
|
|
// )
|
|
// a < e
|
|
// ? ((i = (this[h] & ((1 << a) - 1)) << (e - a)),
|
|
// (i |= this[--h] >> (a += this.DB - e)))
|
|
// : ((i = (this[h] >> (a -= e)) & n),
|
|
// a <= 0 && ((a += this.DB), --h)),
|
|
// i > 0 && (s = !0),
|
|
// s && (o += r(i));
|
|
// return s ? o : '0';
|
|
// }),
|
|
// (t.prototype.negate = function () {
|
|
// var e = N();
|
|
// return t.ZERO.subTo(this, e), e;
|
|
// }),
|
|
// (t.prototype.abs = function () {
|
|
// return this.s < 0 ? this.negate() : this;
|
|
// }),
|
|
// (t.prototype.compareTo = function (t) {
|
|
// var e = this.s - t.s;
|
|
// if (0 != e) return e;
|
|
// var i = this.t;
|
|
// if (0 != (e = i - t.t)) return this.s < 0 ? -e : e;
|
|
// for (; --i >= 0; ) if (0 != (e = this[i] - t[i])) return e;
|
|
// return 0;
|
|
// }),
|
|
// (t.prototype.bitLength = function () {
|
|
// return this.t <= 0
|
|
// ? 0
|
|
// : this.DB * (this.t - 1) +
|
|
// F(this[this.t - 1] ^ (this.s & this.DM));
|
|
// }),
|
|
// (t.prototype.mod = function (e) {
|
|
// var i = N();
|
|
// return (
|
|
// this.abs().divRemTo(e, null, i),
|
|
// this.s < 0 && i.compareTo(t.ZERO) > 0 && e.subTo(i, i),
|
|
// i
|
|
// );
|
|
// }),
|
|
// (t.prototype.modPowInt = function (t, e) {
|
|
// var i;
|
|
// return (
|
|
// (i = t < 256 || e.isEven() ? new A(e) : new V(e)),
|
|
// this.exp(t, i)
|
|
// );
|
|
// }),
|
|
// (t.prototype.clone = function () {
|
|
// var t = N();
|
|
// return this.copyTo(t), t;
|
|
// }),
|
|
// (t.prototype.intValue = function () {
|
|
// if (this.s < 0) {
|
|
// if (1 == this.t) return this[0] - this.DV;
|
|
// if (0 == this.t) return -1;
|
|
// } else {
|
|
// if (1 == this.t) return this[0];
|
|
// if (0 == this.t) return 0;
|
|
// }
|
|
// return (
|
|
// ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) |
|
|
// this[0]
|
|
// );
|
|
// }),
|
|
// (t.prototype.byteValue = function () {
|
|
// return 0 == this.t ? this.s : (this[0] << 24) >> 24;
|
|
// }),
|
|
// (t.prototype.shortValue = function () {
|
|
// return 0 == this.t ? this.s : (this[0] << 16) >> 16;
|
|
// }),
|
|
// (t.prototype.signum = function () {
|
|
// return this.s < 0
|
|
// ? -1
|
|
// : this.t <= 0 || (1 == this.t && this[0] <= 0)
|
|
// ? 0
|
|
// : 1;
|
|
// }),
|
|
// (t.prototype.toByteArray = function () {
|
|
// var t = this.t,
|
|
// e = [];
|
|
// e[0] = this.s;
|
|
// var i,
|
|
// r = this.DB - ((t * this.DB) % 8),
|
|
// n = 0;
|
|
// if (t-- > 0)
|
|
// for (
|
|
// r < this.DB &&
|
|
// (i = this[t] >> r) != (this.s & this.DM) >> r &&
|
|
// (e[n++] = i | (this.s << (this.DB - r)));
|
|
// t >= 0;
|
|
|
|
// )
|
|
// r < 8
|
|
// ? ((i = (this[t] & ((1 << r) - 1)) << (8 - r)),
|
|
// (i |= this[--t] >> (r += this.DB - 8)))
|
|
// : ((i = (this[t] >> (r -= 8)) & 255),
|
|
// r <= 0 && ((r += this.DB), --t)),
|
|
// 0 != (128 & i) && (i |= -256),
|
|
// 0 == n && (128 & this.s) != (128 & i) && ++n,
|
|
// (n > 0 || i != this.s) && (e[n++] = i);
|
|
// return e;
|
|
// }),
|
|
// (t.prototype.equals = function (t) {
|
|
// return 0 == this.compareTo(t);
|
|
// }),
|
|
// (t.prototype.min = function (t) {
|
|
// return this.compareTo(t) < 0 ? this : t;
|
|
// }),
|
|
// (t.prototype.max = function (t) {
|
|
// return this.compareTo(t) > 0 ? this : t;
|
|
// }),
|
|
// (t.prototype.and = function (t) {
|
|
// var e = N();
|
|
// return this.bitwiseTo(t, n, e), e;
|
|
// }),
|
|
// (t.prototype.or = function (t) {
|
|
// var e = N();
|
|
// return this.bitwiseTo(t, s, e), e;
|
|
// }),
|
|
// (t.prototype.xor = function (t) {
|
|
// var e = N();
|
|
// return this.bitwiseTo(t, o, e), e;
|
|
// }),
|
|
// (t.prototype.andNot = function (t) {
|
|
// var e = N();
|
|
// return this.bitwiseTo(t, h, e), e;
|
|
// }),
|
|
// (t.prototype.not = function () {
|
|
// for (var t = N(), e = 0; e < this.t; ++e)
|
|
// t[e] = this.DM & ~this[e];
|
|
// return (t.t = this.t), (t.s = ~this.s), t;
|
|
// }),
|
|
// (t.prototype.shiftLeft = function (t) {
|
|
// var e = N();
|
|
// return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e;
|
|
// }),
|
|
// (t.prototype.shiftRight = function (t) {
|
|
// var e = N();
|
|
// return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e;
|
|
// }),
|
|
// (t.prototype.getLowestSetBit = function () {
|
|
// for (var t = 0; t < this.t; ++t)
|
|
// if (0 != this[t]) return t * this.DB + a(this[t]);
|
|
// return this.s < 0 ? this.t * this.DB : -1;
|
|
// }),
|
|
// (t.prototype.bitCount = function () {
|
|
// for (var t = 0, e = this.s & this.DM, i = 0; i < this.t; ++i)
|
|
// t += u(this[i] ^ e);
|
|
// return t;
|
|
// }),
|
|
// (t.prototype.testBit = function (t) {
|
|
// var e = Math.floor(t / this.DB);
|
|
// return e >= this.t
|
|
// ? 0 != this.s
|
|
// : 0 != (this[e] & (1 << t % this.DB));
|
|
// }),
|
|
// (t.prototype.setBit = function (t) {
|
|
// return this.changeBit(t, s);
|
|
// }),
|
|
// (t.prototype.clearBit = function (t) {
|
|
// return this.changeBit(t, h);
|
|
// }),
|
|
// (t.prototype.flipBit = function (t) {
|
|
// return this.changeBit(t, o);
|
|
// }),
|
|
// (t.prototype.add = function (t) {
|
|
// var e = N();
|
|
// return this.addTo(t, e), e;
|
|
// }),
|
|
// (t.prototype.subtract = function (t) {
|
|
// var e = N();
|
|
// return this.subTo(t, e), e;
|
|
// }),
|
|
// (t.prototype.multiply = function (t) {
|
|
// var e = N();
|
|
// return this.multiplyTo(t, e), e;
|
|
// }),
|
|
// (t.prototype.divide = function (t) {
|
|
// var e = N();
|
|
// return this.divRemTo(t, e, null), e;
|
|
// }),
|
|
// (t.prototype.remainder = function (t) {
|
|
// var e = N();
|
|
// return this.divRemTo(t, null, e), e;
|
|
// }),
|
|
// (t.prototype.divideAndRemainder = function (t) {
|
|
// var e = N(),
|
|
// i = N();
|
|
// return this.divRemTo(t, e, i), [e, i];
|
|
// }),
|
|
// (t.prototype.modPow = function (t, e) {
|
|
// var i,
|
|
// r,
|
|
// n = t.bitLength(),
|
|
// s = C(1);
|
|
// if (n <= 0) return s;
|
|
// (i = n < 18 ? 1 : n < 48 ? 3 : n < 144 ? 4 : n < 768 ? 5 : 6),
|
|
// (r = n < 8 ? new A(e) : e.isEven() ? new I(e) : new V(e));
|
|
// var o = [],
|
|
// h = 3,
|
|
// a = i - 1,
|
|
// u = (1 << i) - 1;
|
|
// if (((o[1] = r.convert(this)), i > 1)) {
|
|
// var c = N();
|
|
// for (r.sqrTo(o[1], c); h <= u; )
|
|
// (o[h] = N()), r.mulTo(c, o[h - 2], o[h]), (h += 2);
|
|
// }
|
|
// var f,
|
|
// l,
|
|
// p = t.t - 1,
|
|
// g = !0,
|
|
// d = N();
|
|
// for (n = F(t[p]) - 1; p >= 0; ) {
|
|
// for (
|
|
// n >= a
|
|
// ? (f = (t[p] >> (n - a)) & u)
|
|
// : ((f = (t[p] & ((1 << (n + 1)) - 1)) << (a - n)),
|
|
// p > 0 && (f |= t[p - 1] >> (this.DB + n - a))),
|
|
// h = i;
|
|
// 0 == (1 & f);
|
|
|
|
// )
|
|
// (f >>= 1), --h;
|
|
// if (((n -= h) < 0 && ((n += this.DB), --p), g))
|
|
// o[f].copyTo(s), (g = !1);
|
|
// else {
|
|
// for (; h > 1; ) r.sqrTo(s, d), r.sqrTo(d, s), (h -= 2);
|
|
// h > 0 ? r.sqrTo(s, d) : ((l = s), (s = d), (d = l)),
|
|
// r.mulTo(d, o[f], s);
|
|
// }
|
|
// for (; p >= 0 && 0 == (t[p] & (1 << n)); )
|
|
// r.sqrTo(s, d),
|
|
// (l = s),
|
|
// (s = d),
|
|
// (d = l),
|
|
// --n < 0 && ((n = this.DB - 1), --p);
|
|
// }
|
|
// return r.revert(s);
|
|
// }),
|
|
// (t.prototype.modInverse = function (e) {
|
|
// var i = e.isEven();
|
|
// if ((this.isEven() && i) || 0 == e.signum()) return t.ZERO;
|
|
// for (
|
|
// var r = e.clone(),
|
|
// n = this.clone(),
|
|
// s = C(1),
|
|
// o = C(0),
|
|
// h = C(0),
|
|
// a = C(1);
|
|
// 0 != r.signum();
|
|
|
|
// ) {
|
|
// for (; r.isEven(); )
|
|
// r.rShiftTo(1, r),
|
|
// i
|
|
// ? ((s.isEven() && o.isEven()) ||
|
|
// (s.addTo(this, s), o.subTo(e, o)),
|
|
// s.rShiftTo(1, s))
|
|
// : o.isEven() || o.subTo(e, o),
|
|
// o.rShiftTo(1, o);
|
|
// for (; n.isEven(); )
|
|
// n.rShiftTo(1, n),
|
|
// i
|
|
// ? ((h.isEven() && a.isEven()) ||
|
|
// (h.addTo(this, h), a.subTo(e, a)),
|
|
// h.rShiftTo(1, h))
|
|
// : a.isEven() || a.subTo(e, a),
|
|
// a.rShiftTo(1, a);
|
|
// r.compareTo(n) >= 0
|
|
// ? (r.subTo(n, r), i && s.subTo(h, s), o.subTo(a, o))
|
|
// : (n.subTo(r, n), i && h.subTo(s, h), a.subTo(o, a));
|
|
// }
|
|
// return 0 != n.compareTo(t.ONE)
|
|
// ? t.ZERO
|
|
// : a.compareTo(e) >= 0
|
|
// ? a.subtract(e)
|
|
// : a.signum() < 0
|
|
// ? (a.addTo(e, a), a.signum() < 0 ? a.add(e) : a)
|
|
// : a;
|
|
// }),
|
|
// (t.prototype.pow = function (t) {
|
|
// return this.exp(t, new O());
|
|
// }),
|
|
// (t.prototype.gcd = function (t) {
|
|
// var e = this.s < 0 ? this.negate() : this.clone(),
|
|
// i = t.s < 0 ? t.negate() : t.clone();
|
|
// if (e.compareTo(i) < 0) {
|
|
// var r = e;
|
|
// (e = i), (i = r);
|
|
// }
|
|
// var n = e.getLowestSetBit(),
|
|
// s = i.getLowestSetBit();
|
|
// if (s < 0) return e;
|
|
// for (
|
|
// n < s && (s = n),
|
|
// s > 0 && (e.rShiftTo(s, e), i.rShiftTo(s, i));
|
|
// e.signum() > 0;
|
|
|
|
// )
|
|
// (n = e.getLowestSetBit()) > 0 && e.rShiftTo(n, e),
|
|
// (n = i.getLowestSetBit()) > 0 && i.rShiftTo(n, i),
|
|
// e.compareTo(i) >= 0
|
|
// ? (e.subTo(i, e), e.rShiftTo(1, e))
|
|
// : (i.subTo(e, i), i.rShiftTo(1, i));
|
|
// return s > 0 && i.lShiftTo(s, i), i;
|
|
// }),
|
|
// (t.prototype.isProbablePrime = function (t) {
|
|
// var e,
|
|
// i = this.abs();
|
|
// if (1 == i.t && i[0] <= x[x.length - 1]) {
|
|
// for (e = 0; e < x.length; ++e) if (i[0] == x[e]) return !0;
|
|
// return !1;
|
|
// }
|
|
// if (i.isEven()) return !1;
|
|
// for (e = 1; e < x.length; ) {
|
|
// for (var r = x[e], n = e + 1; n < x.length && r < R; )
|
|
// r *= x[n++];
|
|
// for (r = i.modInt(r); e < n; )
|
|
// if (r % x[e++] == 0) return !1;
|
|
// }
|
|
// return i.millerRabin(t);
|
|
// }),
|
|
// (t.prototype.copyTo = function (t) {
|
|
// for (var e = this.t - 1; e >= 0; --e) t[e] = this[e];
|
|
// (t.t = this.t), (t.s = this.s);
|
|
// }),
|
|
// (t.prototype.fromInt = function (t) {
|
|
// (this.t = 1),
|
|
// (this.s = t < 0 ? -1 : 0),
|
|
// t > 0
|
|
// ? (this[0] = t)
|
|
// : t < -1
|
|
// ? (this[0] = t + this.DV)
|
|
// : (this.t = 0);
|
|
// }),
|
|
// (t.prototype.fromString = function (e, i) {
|
|
// var r;
|
|
// if (16 == i) r = 4;
|
|
// else if (8 == i) r = 3;
|
|
// else if (256 == i) r = 8;
|
|
// else if (2 == i) r = 1;
|
|
// else if (32 == i) r = 5;
|
|
// else {
|
|
// if (4 != i) return void this.fromRadix(e, i);
|
|
// r = 2;
|
|
// }
|
|
// (this.t = 0), (this.s = 0);
|
|
// for (var n = e.length, s = !1, o = 0; --n >= 0; ) {
|
|
// var h = 8 == r ? 255 & +e[n] : H(e, n);
|
|
// h < 0
|
|
// ? '-' == e.charAt(n) && (s = !0)
|
|
// : ((s = !1),
|
|
// 0 == o
|
|
// ? (this[this.t++] = h)
|
|
// : o + r > this.DB
|
|
// ? ((this[this.t - 1] |=
|
|
// (h & ((1 << (this.DB - o)) - 1)) << o),
|
|
// (this[this.t++] = h >> (this.DB - o)))
|
|
// : (this[this.t - 1] |= h << o),
|
|
// (o += r) >= this.DB && (o -= this.DB));
|
|
// }
|
|
// 8 == r &&
|
|
// 0 != (128 & +e[0]) &&
|
|
// ((this.s = -1),
|
|
// o > 0 &&
|
|
// (this[this.t - 1] |= ((1 << (this.DB - o)) - 1) << o)),
|
|
// this.clamp(),
|
|
// s && t.ZERO.subTo(this, this);
|
|
// }),
|
|
// (t.prototype.clamp = function () {
|
|
// for (
|
|
// var t = this.s & this.DM;
|
|
// this.t > 0 && this[this.t - 1] == t;
|
|
|
|
// )
|
|
// --this.t;
|
|
// }),
|
|
// (t.prototype.dlShiftTo = function (t, e) {
|
|
// var i;
|
|
// for (i = this.t - 1; i >= 0; --i) e[i + t] = this[i];
|
|
// for (i = t - 1; i >= 0; --i) e[i] = 0;
|
|
// (e.t = this.t + t), (e.s = this.s);
|
|
// }),
|
|
// (t.prototype.drShiftTo = function (t, e) {
|
|
// for (var i = t; i < this.t; ++i) e[i - t] = this[i];
|
|
// (e.t = Math.max(this.t - t, 0)), (e.s = this.s);
|
|
// }),
|
|
// (t.prototype.lShiftTo = function (t, e) {
|
|
// for (
|
|
// var i = t % this.DB,
|
|
// r = this.DB - i,
|
|
// n = (1 << r) - 1,
|
|
// s = Math.floor(t / this.DB),
|
|
// o = (this.s << i) & this.DM,
|
|
// h = this.t - 1;
|
|
// h >= 0;
|
|
// --h
|
|
// )
|
|
// (e[h + s + 1] = (this[h] >> r) | o),
|
|
// (o = (this[h] & n) << i);
|
|
// for (h = s - 1; h >= 0; --h) e[h] = 0;
|
|
// (e[s] = o), (e.t = this.t + s + 1), (e.s = this.s), e.clamp();
|
|
// }),
|
|
// (t.prototype.rShiftTo = function (t, e) {
|
|
// e.s = this.s;
|
|
// var i = Math.floor(t / this.DB);
|
|
// if (i >= this.t) e.t = 0;
|
|
// else {
|
|
// var r = t % this.DB,
|
|
// n = this.DB - r,
|
|
// s = (1 << r) - 1;
|
|
// e[0] = this[i] >> r;
|
|
// for (var o = i + 1; o < this.t; ++o)
|
|
// (e[o - i - 1] |= (this[o] & s) << n),
|
|
// (e[o - i] = this[o] >> r);
|
|
// r > 0 && (e[this.t - i - 1] |= (this.s & s) << n),
|
|
// (e.t = this.t - i),
|
|
// e.clamp();
|
|
// }
|
|
// }),
|
|
// (t.prototype.subTo = function (t, e) {
|
|
// for (var i = 0, r = 0, n = Math.min(t.t, this.t); i < n; )
|
|
// (r += this[i] - t[i]),
|
|
// (e[i++] = r & this.DM),
|
|
// (r >>= this.DB);
|
|
// if (t.t < this.t) {
|
|
// for (r -= t.s; i < this.t; )
|
|
// (r += this[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
// r += this.s;
|
|
// } else {
|
|
// for (r += this.s; i < t.t; )
|
|
// (r -= t[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
// r -= t.s;
|
|
// }
|
|
// (e.s = r < 0 ? -1 : 0),
|
|
// r < -1 ? (e[i++] = this.DV + r) : r > 0 && (e[i++] = r),
|
|
// (e.t = i),
|
|
// e.clamp();
|
|
// }),
|
|
// (t.prototype.multiplyTo = function (e, i) {
|
|
// var r = this.abs(),
|
|
// n = e.abs(),
|
|
// s = r.t;
|
|
// for (i.t = s + n.t; --s >= 0; ) i[s] = 0;
|
|
// for (s = 0; s < n.t; ++s)
|
|
// i[s + r.t] = r.am(0, n[s], i, s, 0, r.t);
|
|
// (i.s = 0), i.clamp(), this.s != e.s && t.ZERO.subTo(i, i);
|
|
// }),
|
|
// (t.prototype.squareTo = function (t) {
|
|
// for (var e = this.abs(), i = (t.t = 2 * e.t); --i >= 0; )
|
|
// t[i] = 0;
|
|
// for (i = 0; i < e.t - 1; ++i) {
|
|
// var r = e.am(i, e[i], t, 2 * i, 0, 1);
|
|
// (t[i + e.t] += e.am(
|
|
// i + 1,
|
|
// 2 * e[i],
|
|
// t,
|
|
// 2 * i + 1,
|
|
// r,
|
|
// e.t - i - 1,
|
|
// )) >= e.DV && ((t[i + e.t] -= e.DV), (t[i + e.t + 1] = 1));
|
|
// }
|
|
// t.t > 0 && (t[t.t - 1] += e.am(i, e[i], t, 2 * i, 0, 1)),
|
|
// (t.s = 0),
|
|
// t.clamp();
|
|
// }),
|
|
// (t.prototype.divRemTo = function (e, i, r) {
|
|
// var n = e.abs();
|
|
// if (!(n.t <= 0)) {
|
|
// var s = this.abs();
|
|
// if (s.t < n.t)
|
|
// return (
|
|
// null != i && i.fromInt(0),
|
|
// void (null != r && this.copyTo(r))
|
|
// );
|
|
// null == r && (r = N());
|
|
// var o = N(),
|
|
// h = this.s,
|
|
// a = e.s,
|
|
// u = this.DB - F(n[n.t - 1]);
|
|
// u > 0
|
|
// ? (n.lShiftTo(u, o), s.lShiftTo(u, r))
|
|
// : (n.copyTo(o), s.copyTo(r));
|
|
// var c = o.t,
|
|
// f = o[c - 1];
|
|
// if (0 != f) {
|
|
// var l =
|
|
// f * (1 << this.F1) +
|
|
// (c > 1 ? o[c - 2] >> this.F2 : 0),
|
|
// p = this.FV / l,
|
|
// g = (1 << this.F1) / l,
|
|
// d = 1 << this.F2,
|
|
// v = r.t,
|
|
// m = v - c,
|
|
// y = null == i ? N() : i;
|
|
// for (
|
|
// o.dlShiftTo(m, y),
|
|
// r.compareTo(y) >= 0 &&
|
|
// ((r[r.t++] = 1), r.subTo(y, r)),
|
|
// t.ONE.dlShiftTo(c, y),
|
|
// y.subTo(o, o);
|
|
// o.t < c;
|
|
|
|
// )
|
|
// o[o.t++] = 0;
|
|
// for (; --m >= 0; ) {
|
|
// var b =
|
|
// r[--v] == f
|
|
// ? this.DM
|
|
// : Math.floor(r[v] * p + (r[v - 1] + d) * g);
|
|
// if ((r[v] += o.am(0, b, r, m, 0, c)) < b)
|
|
// for (o.dlShiftTo(m, y), r.subTo(y, r); r[v] < --b; )
|
|
// r.subTo(y, r);
|
|
// }
|
|
// null != i &&
|
|
// (r.drShiftTo(c, i), h != a && t.ZERO.subTo(i, i)),
|
|
// (r.t = c),
|
|
// r.clamp(),
|
|
// u > 0 && r.rShiftTo(u, r),
|
|
// h < 0 && t.ZERO.subTo(r, r);
|
|
// }
|
|
// }
|
|
// }),
|
|
// (t.prototype.invDigit = function () {
|
|
// if (this.t < 1) return 0;
|
|
// var t = this[0];
|
|
// if (0 == (1 & t)) return 0;
|
|
// var e = 3 & t;
|
|
// return (e =
|
|
// ((e =
|
|
// ((e =
|
|
// ((e = (e * (2 - (15 & t) * e)) & 15) *
|
|
// (2 - (255 & t) * e)) &
|
|
// 255) *
|
|
// (2 - (((65535 & t) * e) & 65535))) &
|
|
// 65535) *
|
|
// (2 - ((t * e) % this.DV))) %
|
|
// this.DV) > 0
|
|
// ? this.DV - e
|
|
// : -e;
|
|
// }),
|
|
// (t.prototype.isEven = function () {
|
|
// return 0 == (this.t > 0 ? 1 & this[0] : this.s);
|
|
// }),
|
|
// (t.prototype.exp = function (e, i) {
|
|
// if (e > 4294967295 || e < 1) return t.ONE;
|
|
// var r = N(),
|
|
// n = N(),
|
|
// s = i.convert(this),
|
|
// o = F(e) - 1;
|
|
// for (s.copyTo(r); --o >= 0; )
|
|
// if ((i.sqrTo(r, n), (e & (1 << o)) > 0)) i.mulTo(n, s, r);
|
|
// else {
|
|
// var h = r;
|
|
// (r = n), (n = h);
|
|
// }
|
|
// return i.revert(r);
|
|
// }),
|
|
// (t.prototype.chunkSize = function (t) {
|
|
// return Math.floor((Math.LN2 * this.DB) / Math.log(t));
|
|
// }),
|
|
// (t.prototype.toRadix = function (t) {
|
|
// if (
|
|
// (null == t && (t = 10),
|
|
// 0 == this.signum() || t < 2 || t > 36)
|
|
// )
|
|
// return '0';
|
|
// var e = this.chunkSize(t),
|
|
// i = Math.pow(t, e),
|
|
// r = C(i),
|
|
// n = N(),
|
|
// s = N(),
|
|
// o = '';
|
|
// for (this.divRemTo(r, n, s); n.signum() > 0; )
|
|
// (o = (i + s.intValue()).toString(t).substr(1) + o),
|
|
// n.divRemTo(r, n, s);
|
|
// return s.intValue().toString(t) + o;
|
|
// }),
|
|
// (t.prototype.fromRadix = function (e, i) {
|
|
// this.fromInt(0), null == i && (i = 10);
|
|
// for (
|
|
// var r = this.chunkSize(i),
|
|
// n = Math.pow(i, r),
|
|
// s = !1,
|
|
// o = 0,
|
|
// h = 0,
|
|
// a = 0;
|
|
// a < e.length;
|
|
// ++a
|
|
// ) {
|
|
// var u = H(e, a);
|
|
// u < 0
|
|
// ? '-' == e.charAt(a) && 0 == this.signum() && (s = !0)
|
|
// : ((h = i * h + u),
|
|
// ++o >= r &&
|
|
// (this.dMultiply(n),
|
|
// this.dAddOffset(h, 0),
|
|
// (o = 0),
|
|
// (h = 0)));
|
|
// }
|
|
// o > 0 &&
|
|
// (this.dMultiply(Math.pow(i, o)), this.dAddOffset(h, 0)),
|
|
// s && t.ZERO.subTo(this, this);
|
|
// }),
|
|
// (t.prototype.fromNumber = function (e, i, r) {
|
|
// if ('number' == typeof i)
|
|
// if (e < 2) this.fromInt(1);
|
|
// else
|
|
// for (
|
|
// this.fromNumber(e, r),
|
|
// this.testBit(e - 1) ||
|
|
// this.bitwiseTo(t.ONE.shiftLeft(e - 1), s, this),
|
|
// this.isEven() && this.dAddOffset(1, 0);
|
|
// !this.isProbablePrime(i);
|
|
|
|
// )
|
|
// this.dAddOffset(2, 0),
|
|
// this.bitLength() > e &&
|
|
// this.subTo(t.ONE.shiftLeft(e - 1), this);
|
|
// else {
|
|
// var n = [],
|
|
// o = 7 & e;
|
|
// (n.length = 1 + (e >> 3)),
|
|
// i.nextBytes(n),
|
|
// o > 0 ? (n[0] &= (1 << o) - 1) : (n[0] = 0),
|
|
// this.fromString(n, 256);
|
|
// }
|
|
// }),
|
|
// (t.prototype.bitwiseTo = function (t, e, i) {
|
|
// var r,
|
|
// n,
|
|
// s = Math.min(t.t, this.t);
|
|
// for (r = 0; r < s; ++r) i[r] = e(this[r], t[r]);
|
|
// if (t.t < this.t) {
|
|
// for (n = t.s & this.DM, r = s; r < this.t; ++r)
|
|
// i[r] = e(this[r], n);
|
|
// i.t = this.t;
|
|
// } else {
|
|
// for (n = this.s & this.DM, r = s; r < t.t; ++r)
|
|
// i[r] = e(n, t[r]);
|
|
// i.t = t.t;
|
|
// }
|
|
// (i.s = e(this.s, t.s)), i.clamp();
|
|
// }),
|
|
// (t.prototype.changeBit = function (e, i) {
|
|
// var r = t.ONE.shiftLeft(e);
|
|
// return this.bitwiseTo(r, i, r), r;
|
|
// }),
|
|
// (t.prototype.addTo = function (t, e) {
|
|
// for (var i = 0, r = 0, n = Math.min(t.t, this.t); i < n; )
|
|
// (r += this[i] + t[i]),
|
|
// (e[i++] = r & this.DM),
|
|
// (r >>= this.DB);
|
|
// if (t.t < this.t) {
|
|
// for (r += t.s; i < this.t; )
|
|
// (r += this[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
// r += this.s;
|
|
// } else {
|
|
// for (r += this.s; i < t.t; )
|
|
// (r += t[i]), (e[i++] = r & this.DM), (r >>= this.DB);
|
|
// r += t.s;
|
|
// }
|
|
// (e.s = r < 0 ? -1 : 0),
|
|
// r > 0 ? (e[i++] = r) : r < -1 && (e[i++] = this.DV + r),
|
|
// (e.t = i),
|
|
// e.clamp();
|
|
// }),
|
|
// (t.prototype.dMultiply = function (t) {
|
|
// (this[this.t] = this.am(0, t - 1, this, 0, 0, this.t)),
|
|
// ++this.t,
|
|
// this.clamp();
|
|
// }),
|
|
// (t.prototype.dAddOffset = function (t, e) {
|
|
// if (0 != t) {
|
|
// for (; this.t <= e; ) this[this.t++] = 0;
|
|
// for (this[e] += t; this[e] >= this.DV; )
|
|
// (this[e] -= this.DV),
|
|
// ++e >= this.t && (this[this.t++] = 0),
|
|
// ++this[e];
|
|
// }
|
|
// }),
|
|
// (t.prototype.multiplyLowerTo = function (t, e, i) {
|
|
// var r = Math.min(this.t + t.t, e);
|
|
// for (i.s = 0, i.t = r; r > 0; ) i[--r] = 0;
|
|
// for (var n = i.t - this.t; r < n; ++r)
|
|
// i[r + this.t] = this.am(0, t[r], i, r, 0, this.t);
|
|
// for (n = Math.min(t.t, e); r < n; ++r)
|
|
// this.am(0, t[r], i, r, 0, e - r);
|
|
// i.clamp();
|
|
// }),
|
|
// (t.prototype.multiplyUpperTo = function (t, e, i) {
|
|
// --e;
|
|
// var r = (i.t = this.t + t.t - e);
|
|
// for (i.s = 0; --r >= 0; ) i[r] = 0;
|
|
// for (r = Math.max(e - this.t, 0); r < t.t; ++r)
|
|
// i[this.t + r - e] = this.am(
|
|
// e - r,
|
|
// t[r],
|
|
// i,
|
|
// 0,
|
|
// 0,
|
|
// this.t + r - e,
|
|
// );
|
|
// i.clamp(), i.drShiftTo(1, i);
|
|
// }),
|
|
// (t.prototype.modInt = function (t) {
|
|
// if (t <= 0) return 0;
|
|
// var e = this.DV % t,
|
|
// i = this.s < 0 ? t - 1 : 0;
|
|
// if (this.t > 0)
|
|
// if (0 == e) i = this[0] % t;
|
|
// else
|
|
// for (var r = this.t - 1; r >= 0; --r)
|
|
// i = (e * i + this[r]) % t;
|
|
// return i;
|
|
// }),
|
|
// (t.prototype.millerRabin = function (e) {
|
|
// var i = this.subtract(t.ONE),
|
|
// r = i.getLowestSetBit();
|
|
// if (r <= 0) return !1;
|
|
// var n = i.shiftRight(r);
|
|
// (e = (e + 1) >> 1) > x.length && (e = x.length);
|
|
// for (var s = N(), o = 0; o < e; ++o) {
|
|
// s.fromInt(x[Math.floor(Math.random() * x.length)]);
|
|
// var h = s.modPow(n, this);
|
|
// if (0 != h.compareTo(t.ONE) && 0 != h.compareTo(i)) {
|
|
// for (var a = 1; a++ < r && 0 != h.compareTo(i); )
|
|
// if (0 == (h = h.modPowInt(2, this)).compareTo(t.ONE))
|
|
// return !1;
|
|
// if (0 != h.compareTo(i)) return !1;
|
|
// }
|
|
// }
|
|
// return !0;
|
|
// }),
|
|
// (t.prototype.square = function () {
|
|
// var t = N();
|
|
// return this.squareTo(t), t;
|
|
// }),
|
|
// (t.prototype.gcda = function (t, e) {
|
|
// var i = this.s < 0 ? this.negate() : this.clone(),
|
|
// r = t.s < 0 ? t.negate() : t.clone();
|
|
// if (i.compareTo(r) < 0) {
|
|
// var n = i;
|
|
// (i = r), (r = n);
|
|
// }
|
|
// var s = i.getLowestSetBit(),
|
|
// o = r.getLowestSetBit();
|
|
// if (o < 0) e(i);
|
|
// else {
|
|
// s < o && (o = s),
|
|
// o > 0 && (i.rShiftTo(o, i), r.rShiftTo(o, r));
|
|
// var h = function () {
|
|
// (s = i.getLowestSetBit()) > 0 && i.rShiftTo(s, i),
|
|
// (s = r.getLowestSetBit()) > 0 && r.rShiftTo(s, r),
|
|
// i.compareTo(r) >= 0
|
|
// ? (i.subTo(r, i), i.rShiftTo(1, i))
|
|
// : (r.subTo(i, r), r.rShiftTo(1, r)),
|
|
// i.signum() > 0
|
|
// ? setTimeout(h, 0)
|
|
// : (o > 0 && r.lShiftTo(o, r),
|
|
// setTimeout(function () {
|
|
// e(r);
|
|
// }, 0));
|
|
// };
|
|
// setTimeout(h, 10);
|
|
// }
|
|
// }),
|
|
// (t.prototype.fromNumberAsync = function (e, i, r, n) {
|
|
// if ('number' == typeof i)
|
|
// if (e < 2) this.fromInt(1);
|
|
// else {
|
|
// this.fromNumber(e, r),
|
|
// this.testBit(e - 1) ||
|
|
// this.bitwiseTo(t.ONE.shiftLeft(e - 1), s, this),
|
|
// this.isEven() && this.dAddOffset(1, 0);
|
|
// var o = this,
|
|
// h = function () {
|
|
// o.dAddOffset(2, 0),
|
|
// o.bitLength() > e &&
|
|
// o.subTo(t.ONE.shiftLeft(e - 1), o),
|
|
// o.isProbablePrime(i)
|
|
// ? setTimeout(function () {
|
|
// n();
|
|
// }, 0)
|
|
// : setTimeout(h, 0);
|
|
// };
|
|
// setTimeout(h, 0);
|
|
// }
|
|
// else {
|
|
// var a = [],
|
|
// u = 7 & e;
|
|
// (a.length = 1 + (e >> 3)),
|
|
// i.nextBytes(a),
|
|
// u > 0 ? (a[0] &= (1 << u) - 1) : (a[0] = 0),
|
|
// this.fromString(a, 256);
|
|
// }
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// O = (function () {
|
|
// function t() {}
|
|
// return (
|
|
// (t.prototype.convert = function (t) {
|
|
// return t;
|
|
// }),
|
|
// (t.prototype.revert = function (t) {
|
|
// return t;
|
|
// }),
|
|
// (t.prototype.mulTo = function (t, e, i) {
|
|
// t.multiplyTo(e, i);
|
|
// }),
|
|
// (t.prototype.sqrTo = function (t, e) {
|
|
// t.squareTo(e);
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// A = (function () {
|
|
// function t(t) {
|
|
// this.m = t;
|
|
// }
|
|
// return (
|
|
// (t.prototype.convert = function (t) {
|
|
// return t.s < 0 || t.compareTo(this.m) >= 0
|
|
// ? t.mod(this.m)
|
|
// : t;
|
|
// }),
|
|
// (t.prototype.revert = function (t) {
|
|
// return t;
|
|
// }),
|
|
// (t.prototype.reduce = function (t) {
|
|
// t.divRemTo(this.m, null, t);
|
|
// }),
|
|
// (t.prototype.mulTo = function (t, e, i) {
|
|
// t.multiplyTo(e, i), this.reduce(i);
|
|
// }),
|
|
// (t.prototype.sqrTo = function (t, e) {
|
|
// t.squareTo(e), this.reduce(e);
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// V = (function () {
|
|
// function t(t) {
|
|
// (this.m = t),
|
|
// (this.mp = t.invDigit()),
|
|
// (this.mpl = 32767 & this.mp),
|
|
// (this.mph = this.mp >> 15),
|
|
// (this.um = (1 << (t.DB - 15)) - 1),
|
|
// (this.mt2 = 2 * t.t);
|
|
// }
|
|
// return (
|
|
// (t.prototype.convert = function (t) {
|
|
// var e = N();
|
|
// return (
|
|
// t.abs().dlShiftTo(this.m.t, e),
|
|
// e.divRemTo(this.m, null, e),
|
|
// t.s < 0 && e.compareTo(B.ZERO) > 0 && this.m.subTo(e, e),
|
|
// e
|
|
// );
|
|
// }),
|
|
// (t.prototype.revert = function (t) {
|
|
// var e = N();
|
|
// return t.copyTo(e), this.reduce(e), e;
|
|
// }),
|
|
// (t.prototype.reduce = function (t) {
|
|
// for (; t.t <= this.mt2; ) t[t.t++] = 0;
|
|
// for (var e = 0; e < this.m.t; ++e) {
|
|
// var i = 32767 & t[e],
|
|
// r =
|
|
// (i * this.mpl +
|
|
// (((i * this.mph + (t[e] >> 15) * this.mpl) &
|
|
// this.um) <<
|
|
// 15)) &
|
|
// t.DM;
|
|
// for (
|
|
// t[(i = e + this.m.t)] += this.m.am(
|
|
// 0,
|
|
// r,
|
|
// t,
|
|
// e,
|
|
// 0,
|
|
// this.m.t,
|
|
// );
|
|
// t[i] >= t.DV;
|
|
|
|
// )
|
|
// (t[i] -= t.DV), t[++i]++;
|
|
// }
|
|
// t.clamp(),
|
|
// t.drShiftTo(this.m.t, t),
|
|
// t.compareTo(this.m) >= 0 && t.subTo(this.m, t);
|
|
// }),
|
|
// (t.prototype.mulTo = function (t, e, i) {
|
|
// t.multiplyTo(e, i), this.reduce(i);
|
|
// }),
|
|
// (t.prototype.sqrTo = function (t, e) {
|
|
// t.squareTo(e), this.reduce(e);
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// I = (function () {
|
|
// function t(t) {
|
|
// (this.m = t),
|
|
// (this.r2 = N()),
|
|
// (this.q3 = N()),
|
|
// B.ONE.dlShiftTo(2 * t.t, this.r2),
|
|
// (this.mu = this.r2.divide(t));
|
|
// }
|
|
// return (
|
|
// (t.prototype.convert = function (t) {
|
|
// if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m);
|
|
// if (t.compareTo(this.m) < 0) return t;
|
|
// var e = N();
|
|
// return t.copyTo(e), this.reduce(e), e;
|
|
// }),
|
|
// (t.prototype.revert = function (t) {
|
|
// return t;
|
|
// }),
|
|
// (t.prototype.reduce = function (t) {
|
|
// for (
|
|
// t.drShiftTo(this.m.t - 1, this.r2),
|
|
// t.t > this.m.t + 1 && ((t.t = this.m.t + 1), t.clamp()),
|
|
// this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3),
|
|
// this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);
|
|
// t.compareTo(this.r2) < 0;
|
|
|
|
// )
|
|
// t.dAddOffset(1, this.m.t + 1);
|
|
// for (t.subTo(this.r2, t); t.compareTo(this.m) >= 0; )
|
|
// t.subTo(this.m, t);
|
|
// }),
|
|
// (t.prototype.mulTo = function (t, e, i) {
|
|
// t.multiplyTo(e, i), this.reduce(i);
|
|
// }),
|
|
// (t.prototype.sqrTo = function (t, e) {
|
|
// t.squareTo(e), this.reduce(e);
|
|
// }),
|
|
// t
|
|
// );
|
|
// })();
|
|
// function N() {
|
|
// return new B(null);
|
|
// }
|
|
// function P(t, e) {
|
|
// return new B(t, e);
|
|
// }
|
|
// var M = 'undefined' != typeof navigator;
|
|
// M && 'Microsoft Internet Explorer' == navigator.appName
|
|
// ? ((B.prototype.am = function (t, e, i, r, n, s) {
|
|
// for (var o = 32767 & e, h = e >> 15; --s >= 0; ) {
|
|
// var a = 32767 & this[t],
|
|
// u = this[t++] >> 15,
|
|
// c = h * a + u * o;
|
|
// (n =
|
|
// ((a =
|
|
// o * a + ((32767 & c) << 15) + i[r] + (1073741823 & n)) >>>
|
|
// 30) +
|
|
// (c >>> 15) +
|
|
// h * u +
|
|
// (n >>> 30)),
|
|
// (i[r++] = 1073741823 & a);
|
|
// }
|
|
// return n;
|
|
// }),
|
|
// (S = 30))
|
|
// : M && 'Netscape' != navigator.appName
|
|
// ? ((B.prototype.am = function (t, e, i, r, n, s) {
|
|
// for (; --s >= 0; ) {
|
|
// var o = e * this[t++] + i[r] + n;
|
|
// (n = Math.floor(o / 67108864)), (i[r++] = 67108863 & o);
|
|
// }
|
|
// return n;
|
|
// }),
|
|
// (S = 26))
|
|
// : ((B.prototype.am = function (t, e, i, r, n, s) {
|
|
// for (var o = 16383 & e, h = e >> 14; --s >= 0; ) {
|
|
// var a = 16383 & this[t],
|
|
// u = this[t++] >> 14,
|
|
// c = h * a + u * o;
|
|
// (n =
|
|
// ((a = o * a + ((16383 & c) << 14) + i[r] + n) >> 28) +
|
|
// (c >> 14) +
|
|
// h * u),
|
|
// (i[r++] = 268435455 & a);
|
|
// }
|
|
// return n;
|
|
// }),
|
|
// (S = 28)),
|
|
// (B.prototype.DB = S),
|
|
// (B.prototype.DM = (1 << S) - 1),
|
|
// (B.prototype.DV = 1 << S),
|
|
// (B.prototype.FV = Math.pow(2, 52)),
|
|
// (B.prototype.F1 = 52 - S),
|
|
// (B.prototype.F2 = 2 * S - 52);
|
|
// var j,
|
|
// q,
|
|
// L = [];
|
|
// for (j = '0'.charCodeAt(0), q = 0; q <= 9; ++q) L[j++] = q;
|
|
// for (j = 'a'.charCodeAt(0), q = 10; q < 36; ++q) L[j++] = q;
|
|
// for (j = 'A'.charCodeAt(0), q = 10; q < 36; ++q) L[j++] = q;
|
|
// function H(t, e) {
|
|
// var i = L[t.charCodeAt(e)];
|
|
// return null == i ? -1 : i;
|
|
// }
|
|
// function C(t) {
|
|
// var e = N();
|
|
// return e.fromInt(t), e;
|
|
// }
|
|
// function F(t) {
|
|
// var e,
|
|
// i = 1;
|
|
// return (
|
|
// 0 != (e = t >>> 16) && ((t = e), (i += 16)),
|
|
// 0 != (e = t >> 8) && ((t = e), (i += 8)),
|
|
// 0 != (e = t >> 4) && ((t = e), (i += 4)),
|
|
// 0 != (e = t >> 2) && ((t = e), (i += 2)),
|
|
// 0 != (e = t >> 1) && ((t = e), (i += 1)),
|
|
// i
|
|
// );
|
|
// }
|
|
// (B.ZERO = C(0)), (B.ONE = C(1));
|
|
// var U,
|
|
// K,
|
|
// k = (function () {
|
|
// function t() {
|
|
// (this.i = 0), (this.j = 0), (this.S = []);
|
|
// }
|
|
// return (
|
|
// (t.prototype.init = function (t) {
|
|
// var e, i, r;
|
|
// for (e = 0; e < 256; ++e) this.S[e] = e;
|
|
// for (i = 0, e = 0; e < 256; ++e)
|
|
// (i = (i + this.S[e] + t[e % t.length]) & 255),
|
|
// (r = this.S[e]),
|
|
// (this.S[e] = this.S[i]),
|
|
// (this.S[i] = r);
|
|
// (this.i = 0), (this.j = 0);
|
|
// }),
|
|
// (t.prototype.next = function () {
|
|
// var t;
|
|
// return (
|
|
// (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),
|
|
// this.S[(t + this.S[this.i]) & 255]
|
|
// );
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// _ = null;
|
|
// if (null == _) {
|
|
// (_ = []), (K = 0);
|
|
// var z = void 0;
|
|
// if (window.crypto && window.crypto.getRandomValues) {
|
|
// var Z = new Uint32Array(256);
|
|
// for (window.crypto.getRandomValues(Z), z = 0; z < Z.length; ++z)
|
|
// _[K++] = 255 & Z[z];
|
|
// }
|
|
// var G = 0,
|
|
// $ = function (t) {
|
|
// if ((G = G || 0) >= 256 || K >= 256)
|
|
// window.removeEventListener
|
|
// ? window.removeEventListener('mousemove', $, !1)
|
|
// : window.detachEvent &&
|
|
// window.detachEvent('onmousemove', $);
|
|
// else
|
|
// try {
|
|
// var e = t.x + t.y;
|
|
// (_[K++] = 255 & e), (G += 1);
|
|
// } catch (t) {}
|
|
// };
|
|
// window.addEventListener
|
|
// ? window.addEventListener('mousemove', $, !1)
|
|
// : window.attachEvent && window.attachEvent('onmousemove', $);
|
|
// }
|
|
// function Y() {
|
|
// if (null == U) {
|
|
// for (U = new k(); K < 256; ) {
|
|
// var t = Math.floor(65536 * Math.random());
|
|
// _[K++] = 255 & t;
|
|
// }
|
|
// for (U.init(_), K = 0; K < _.length; ++K) _[K] = 0;
|
|
// K = 0;
|
|
// }
|
|
// return U.next();
|
|
// }
|
|
// var J = (function () {
|
|
// function t() {}
|
|
// return (
|
|
// (t.prototype.nextBytes = function (t) {
|
|
// for (var e = 0; e < t.length; ++e) t[e] = Y();
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// X = (function () {
|
|
// function t() {
|
|
// (this.n = null),
|
|
// (this.e = 0),
|
|
// (this.d = null),
|
|
// (this.p = null),
|
|
// (this.q = null),
|
|
// (this.dmp1 = null),
|
|
// (this.dmq1 = null),
|
|
// (this.coeff = null);
|
|
// }
|
|
// return (
|
|
// (t.prototype.doPublic = function (t) {
|
|
// return t.modPowInt(this.e, this.n);
|
|
// }),
|
|
// (t.prototype.doPrivate = function (t) {
|
|
// if (null == this.p || null == this.q)
|
|
// return t.modPow(this.d, this.n);
|
|
// for (
|
|
// var e = t.mod(this.p).modPow(this.dmp1, this.p),
|
|
// i = t.mod(this.q).modPow(this.dmq1, this.q);
|
|
// e.compareTo(i) < 0;
|
|
|
|
// )
|
|
// e = e.add(this.p);
|
|
// return e
|
|
// .subtract(i)
|
|
// .multiply(this.coeff)
|
|
// .mod(this.p)
|
|
// .multiply(this.q)
|
|
// .add(i);
|
|
// }),
|
|
// (t.prototype.setPublic = function (t, e) {
|
|
// null != t && null != e && t.length > 0 && e.length > 0
|
|
// ? ((this.n = P(t, 16)), (this.e = parseInt(e, 16)))
|
|
// : console.error('Invalid RSA public key');
|
|
// }),
|
|
// (t.prototype.encrypt = function (t) {
|
|
// var e = (this.n.bitLength() + 7) >> 3,
|
|
// i = (function (t, e) {
|
|
// if (e < t.length + 11)
|
|
// return console.error('Message too long for RSA'), null;
|
|
// for (var i = [], r = t.length - 1; r >= 0 && e > 0; ) {
|
|
// var n = t.charCodeAt(r--);
|
|
// n < 128
|
|
// ? (i[--e] = n)
|
|
// : n > 127 && n < 2048
|
|
// ? ((i[--e] = (63 & n) | 128),
|
|
// (i[--e] = (n >> 6) | 192))
|
|
// : ((i[--e] = (63 & n) | 128),
|
|
// (i[--e] = ((n >> 6) & 63) | 128),
|
|
// (i[--e] = (n >> 12) | 224));
|
|
// }
|
|
// i[--e] = 0;
|
|
// for (var s = new J(), o = []; e > 2; ) {
|
|
// for (o[0] = 0; 0 == o[0]; ) s.nextBytes(o);
|
|
// i[--e] = o[0];
|
|
// }
|
|
// return (i[--e] = 2), (i[--e] = 0), new B(i);
|
|
// })(t, e);
|
|
// if (null == i) return null;
|
|
// var r = this.doPublic(i);
|
|
// if (null == r) return null;
|
|
// for (
|
|
// var n = r.toString(16), s = n.length, o = 0;
|
|
// o < 2 * e - s;
|
|
// o++
|
|
// )
|
|
// n = '0' + n;
|
|
// return n;
|
|
// }),
|
|
// (t.prototype.setPrivate = function (t, e, i) {
|
|
// null != t && null != e && t.length > 0 && e.length > 0
|
|
// ? ((this.n = P(t, 16)),
|
|
// (this.e = parseInt(e, 16)),
|
|
// (this.d = P(i, 16)))
|
|
// : console.error('Invalid RSA private key');
|
|
// }),
|
|
// (t.prototype.setPrivateEx = function (t, e, i, r, n, s, o, h) {
|
|
// null != t && null != e && t.length > 0 && e.length > 0
|
|
// ? ((this.n = P(t, 16)),
|
|
// (this.e = parseInt(e, 16)),
|
|
// (this.d = P(i, 16)),
|
|
// (this.p = P(r, 16)),
|
|
// (this.q = P(n, 16)),
|
|
// (this.dmp1 = P(s, 16)),
|
|
// (this.dmq1 = P(o, 16)),
|
|
// (this.coeff = P(h, 16)))
|
|
// : console.error('Invalid RSA private key');
|
|
// }),
|
|
// (t.prototype.generate = function (t, e) {
|
|
// var i = new J(),
|
|
// r = t >> 1;
|
|
// this.e = parseInt(e, 16);
|
|
// for (var n = new B(e, 16); ; ) {
|
|
// for (
|
|
// ;
|
|
// (this.p = new B(t - r, 1, i)),
|
|
// 0 != this.p.subtract(B.ONE).gcd(n).compareTo(B.ONE) ||
|
|
// !this.p.isProbablePrime(10);
|
|
|
|
// );
|
|
// for (
|
|
// ;
|
|
// (this.q = new B(r, 1, i)),
|
|
// 0 != this.q.subtract(B.ONE).gcd(n).compareTo(B.ONE) ||
|
|
// !this.q.isProbablePrime(10);
|
|
|
|
// );
|
|
// if (this.p.compareTo(this.q) <= 0) {
|
|
// var s = this.p;
|
|
// (this.p = this.q), (this.q = s);
|
|
// }
|
|
// var o = this.p.subtract(B.ONE),
|
|
// h = this.q.subtract(B.ONE),
|
|
// a = o.multiply(h);
|
|
// if (0 == a.gcd(n).compareTo(B.ONE)) {
|
|
// (this.n = this.p.multiply(this.q)),
|
|
// (this.d = n.modInverse(a)),
|
|
// (this.dmp1 = this.d.mod(o)),
|
|
// (this.dmq1 = this.d.mod(h)),
|
|
// (this.coeff = this.q.modInverse(this.p));
|
|
// break;
|
|
// }
|
|
// }
|
|
// }),
|
|
// (t.prototype.decrypt = function (t) {
|
|
// var e = P(t, 16),
|
|
// i = this.doPrivate(e);
|
|
// return null == i
|
|
// ? null
|
|
// : (function (t, e) {
|
|
// for (
|
|
// var i = t.toByteArray(), r = 0;
|
|
// r < i.length && 0 == i[r];
|
|
|
|
// )
|
|
// ++r;
|
|
// if (i.length - r != e - 1 || 2 != i[r]) return null;
|
|
// for (++r; 0 != i[r]; ) if (++r >= i.length) return null;
|
|
// for (var n = ''; ++r < i.length; ) {
|
|
// var s = 255 & i[r];
|
|
// s < 128
|
|
// ? (n += String.fromCharCode(s))
|
|
// : s > 191 && s < 224
|
|
// ? ((n += String.fromCharCode(
|
|
// ((31 & s) << 6) | (63 & i[r + 1]),
|
|
// )),
|
|
// ++r)
|
|
// : ((n += String.fromCharCode(
|
|
// ((15 & s) << 12) |
|
|
// ((63 & i[r + 1]) << 6) |
|
|
// (63 & i[r + 2]),
|
|
// )),
|
|
// (r += 2));
|
|
// }
|
|
// return n;
|
|
// })(i, (this.n.bitLength() + 7) >> 3);
|
|
// }),
|
|
// (t.prototype.generateAsync = function (t, e, i) {
|
|
// var r = new J(),
|
|
// n = t >> 1;
|
|
// this.e = parseInt(e, 16);
|
|
// var s = new B(e, 16),
|
|
// o = this,
|
|
// h = function () {
|
|
// var e = function () {
|
|
// if (o.p.compareTo(o.q) <= 0) {
|
|
// var t = o.p;
|
|
// (o.p = o.q), (o.q = t);
|
|
// }
|
|
// var e = o.p.subtract(B.ONE),
|
|
// r = o.q.subtract(B.ONE),
|
|
// n = e.multiply(r);
|
|
// 0 == n.gcd(s).compareTo(B.ONE)
|
|
// ? ((o.n = o.p.multiply(o.q)),
|
|
// (o.d = s.modInverse(n)),
|
|
// (o.dmp1 = o.d.mod(e)),
|
|
// (o.dmq1 = o.d.mod(r)),
|
|
// (o.coeff = o.q.modInverse(o.p)),
|
|
// setTimeout(function () {
|
|
// i();
|
|
// }, 0))
|
|
// : setTimeout(h, 0);
|
|
// },
|
|
// a = function () {
|
|
// (o.q = N()),
|
|
// o.q.fromNumberAsync(n, 1, r, function () {
|
|
// o.q.subtract(B.ONE).gcda(s, function (t) {
|
|
// 0 == t.compareTo(B.ONE) &&
|
|
// o.q.isProbablePrime(10)
|
|
// ? setTimeout(e, 0)
|
|
// : setTimeout(a, 0);
|
|
// });
|
|
// });
|
|
// },
|
|
// u = function () {
|
|
// (o.p = N()),
|
|
// o.p.fromNumberAsync(t - n, 1, r, function () {
|
|
// o.p.subtract(B.ONE).gcda(s, function (t) {
|
|
// 0 == t.compareTo(B.ONE) &&
|
|
// o.p.isProbablePrime(10)
|
|
// ? setTimeout(a, 0)
|
|
// : setTimeout(u, 0);
|
|
// });
|
|
// });
|
|
// };
|
|
// setTimeout(u, 0);
|
|
// };
|
|
// setTimeout(h, 0);
|
|
// }),
|
|
// (t.prototype.sign = function (t, e, i) {
|
|
// var r = (function (t, e) {
|
|
// if (e < t.length + 22)
|
|
// return console.error('Message too long for RSA'), null;
|
|
// for (var i = e - t.length - 6, r = '', n = 0; n < i; n += 2)
|
|
// r += 'ff';
|
|
// return P('0001' + r + '00' + t, 16);
|
|
// })((Q[i] || '') + e(t).toString(), this.n.bitLength() / 4);
|
|
// if (null == r) return null;
|
|
// var n = this.doPrivate(r);
|
|
// if (null == n) return null;
|
|
// var s = n.toString(16);
|
|
// return 0 == (1 & s.length) ? s : '0' + s;
|
|
// }),
|
|
// (t.prototype.verify = function (t, e, i) {
|
|
// var r = P(e, 16),
|
|
// n = this.doPublic(r);
|
|
// return null == n
|
|
// ? null
|
|
// : (function (t) {
|
|
// for (var e in Q)
|
|
// if (Q.hasOwnProperty(e)) {
|
|
// var i = Q[e],
|
|
// r = i.length;
|
|
// if (t.substr(0, r) == i) return t.substr(r);
|
|
// }
|
|
// return t;
|
|
// })(n.toString(16).replace(/^1f+00/, '')) ==
|
|
// i(t).toString();
|
|
// }),
|
|
// t
|
|
// );
|
|
// })(),
|
|
// Q = {
|
|
// md2: '3020300c06082a864886f70d020205000410',
|
|
// md5: '3020300c06082a864886f70d020505000410',
|
|
// sha1: '3021300906052b0e03021a05000414',
|
|
// sha224: '302d300d06096086480165030402040500041c',
|
|
// sha256: '3031300d060960864801650304020105000420',
|
|
// sha384: '3041300d060960864801650304020205000430',
|
|
// sha512: '3051300d060960864801650304020305000440',
|
|
// ripemd160: '3021300906052b2403020105000414',
|
|
// },
|
|
// W = {};
|
|
// W.lang = {
|
|
// extend: function (t, e, i) {
|
|
// if (!e || !t)
|
|
// throw new Error(
|
|
// 'YAHOO.lang.extend failed, please check that all dependencies are included.',
|
|
// );
|
|
// var r = function () {};
|
|
// if (
|
|
// ((r.prototype = e.prototype),
|
|
// (t.prototype = new r()),
|
|
// (t.prototype.constructor = t),
|
|
// (t.superclass = e.prototype),
|
|
// e.prototype.constructor == Object.prototype.constructor &&
|
|
// (e.prototype.constructor = e),
|
|
// i)
|
|
// ) {
|
|
// var n;
|
|
// for (n in i) t.prototype[n] = i[n];
|
|
// var s = function () {},
|
|
// o = ['toString', 'valueOf'];
|
|
// try {
|
|
// /MSIE/.test(navigator.userAgent) &&
|
|
// (s = function (t, e) {
|
|
// for (n = 0; n < o.length; n += 1) {
|
|
// var i = o[n],
|
|
// r = e[i];
|
|
// 'function' == typeof r &&
|
|
// r != Object.prototype[i] &&
|
|
// (t[i] = r);
|
|
// }
|
|
// });
|
|
// } catch (t) {}
|
|
// s(t.prototype, i);
|
|
// }
|
|
// },
|
|
// };
|
|
// var tt = {};
|
|
// (void 0 !== tt.asn1 && tt.asn1) || (tt.asn1 = {}),
|
|
// (tt.asn1.ASN1Util = new (function () {
|
|
// (this.integerToByteHex = function (t) {
|
|
// var e = t.toString(16);
|
|
// return e.length % 2 == 1 && (e = '0' + e), e;
|
|
// }),
|
|
// (this.bigIntToMinTwosComplementsHex = function (t) {
|
|
// var e = t.toString(16);
|
|
// if ('-' != e.substr(0, 1))
|
|
// e.length % 2 == 1
|
|
// ? (e = '0' + e)
|
|
// : e.match(/^[0-7]/) || (e = '00' + e);
|
|
// else {
|
|
// var i = e.substr(1).length;
|
|
// i % 2 == 1 ? (i += 1) : e.match(/^[0-7]/) || (i += 2);
|
|
// for (var r = '', n = 0; n < i; n++) r += 'f';
|
|
// e = new B(r, 16)
|
|
// .xor(t)
|
|
// .add(B.ONE)
|
|
// .toString(16)
|
|
// .replace(/^-/, '');
|
|
// }
|
|
// return e;
|
|
// }),
|
|
// (this.getPEMStringFromHex = function (t, e) {
|
|
// return hextopem(t, e);
|
|
// }),
|
|
// (this.newObject = function (t) {
|
|
// var e = tt.asn1,
|
|
// i = e.DERBoolean,
|
|
// r = e.DERInteger,
|
|
// n = e.DERBitString,
|
|
// s = e.DEROctetString,
|
|
// o = e.DERNull,
|
|
// h = e.DERObjectIdentifier,
|
|
// a = e.DEREnumerated,
|
|
// u = e.DERUTF8String,
|
|
// c = e.DERNumericString,
|
|
// f = e.DERPrintableString,
|
|
// l = e.DERTeletexString,
|
|
// p = e.DERIA5String,
|
|
// g = e.DERUTCTime,
|
|
// d = e.DERGeneralizedTime,
|
|
// v = e.DERSequence,
|
|
// m = e.DERSet,
|
|
// y = e.DERTaggedObject,
|
|
// b = e.ASN1Util.newObject,
|
|
// T = Object.keys(t);
|
|
// if (1 != T.length) throw 'key of param shall be only one.';
|
|
// var S = T[0];
|
|
// if (
|
|
// -1 ==
|
|
// ':bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:'.indexOf(
|
|
// ':' + S + ':',
|
|
// )
|
|
// )
|
|
// throw 'undefined key: ' + S;
|
|
// if ('bool' == S) return new i(t[S]);
|
|
// if ('int' == S) return new r(t[S]);
|
|
// if ('bitstr' == S) return new n(t[S]);
|
|
// if ('octstr' == S) return new s(t[S]);
|
|
// if ('null' == S) return new o(t[S]);
|
|
// if ('oid' == S) return new h(t[S]);
|
|
// if ('enum' == S) return new a(t[S]);
|
|
// if ('utf8str' == S) return new u(t[S]);
|
|
// if ('numstr' == S) return new c(t[S]);
|
|
// if ('prnstr' == S) return new f(t[S]);
|
|
// if ('telstr' == S) return new l(t[S]);
|
|
// if ('ia5str' == S) return new p(t[S]);
|
|
// if ('utctime' == S) return new g(t[S]);
|
|
// if ('gentime' == S) return new d(t[S]);
|
|
// if ('seq' == S) {
|
|
// for (var E = t[S], w = [], D = 0; D < E.length; D++) {
|
|
// var x = b(E[D]);
|
|
// w.push(x);
|
|
// }
|
|
// return new v({array: w});
|
|
// }
|
|
// if ('set' == S) {
|
|
// for (E = t[S], w = [], D = 0; D < E.length; D++)
|
|
// (x = b(E[D])), w.push(x);
|
|
// return new m({array: w});
|
|
// }
|
|
// if ('tag' == S) {
|
|
// var R = t[S];
|
|
// if (
|
|
// '[object Array]' === Object.prototype.toString.call(R) &&
|
|
// 3 == R.length
|
|
// ) {
|
|
// var B = b(R[2]);
|
|
// return new y({tag: R[0], explicit: R[1], obj: B});
|
|
// }
|
|
// var O = {};
|
|
// if (
|
|
// (void 0 !== R.explicit && (O.explicit = R.explicit),
|
|
// void 0 !== R.tag && (O.tag = R.tag),
|
|
// void 0 === R.obj)
|
|
// )
|
|
// throw "obj shall be specified for 'tag'.";
|
|
// return (O.obj = b(R.obj)), new y(O);
|
|
// }
|
|
// }),
|
|
// (this.jsonToASN1HEX = function (t) {
|
|
// return this.newObject(t).getEncodedHex();
|
|
// });
|
|
// })()),
|
|
// (tt.asn1.ASN1Util.oidHexToInt = function (t) {
|
|
// for (
|
|
// var e = '',
|
|
// i = parseInt(t.substr(0, 2), 16),
|
|
// r = ((e = Math.floor(i / 40) + '.' + (i % 40)), ''),
|
|
// n = 2;
|
|
// n < t.length;
|
|
// n += 2
|
|
// ) {
|
|
// var s = (
|
|
// '00000000' + parseInt(t.substr(n, 2), 16).toString(2)
|
|
// ).slice(-8);
|
|
// (r += s.substr(1, 7)),
|
|
// '0' == s.substr(0, 1) &&
|
|
// ((e = e + '.' + new B(r, 2).toString(10)), (r = ''));
|
|
// }
|
|
// return e;
|
|
// }),
|
|
// (tt.asn1.ASN1Util.oidIntToHex = function (t) {
|
|
// var e = function (t) {
|
|
// var e = t.toString(16);
|
|
// return 1 == e.length && (e = '0' + e), e;
|
|
// },
|
|
// i = function (t) {
|
|
// var i = '',
|
|
// r = new B(t, 10).toString(2),
|
|
// n = 7 - (r.length % 7);
|
|
// 7 == n && (n = 0);
|
|
// for (var s = '', o = 0; o < n; o++) s += '0';
|
|
// for (r = s + r, o = 0; o < r.length - 1; o += 7) {
|
|
// var h = r.substr(o, 7);
|
|
// o != r.length - 7 && (h = '1' + h),
|
|
// (i += e(parseInt(h, 2)));
|
|
// }
|
|
// return i;
|
|
// };
|
|
// if (!t.match(/^[0-9.]+$/)) throw 'malformed oid string: ' + t;
|
|
// var r = '',
|
|
// n = t.split('.'),
|
|
// s = 40 * parseInt(n[0]) + parseInt(n[1]);
|
|
// (r += e(s)), n.splice(0, 2);
|
|
// for (var o = 0; o < n.length; o++) r += i(n[o]);
|
|
// return r;
|
|
// }),
|
|
// (tt.asn1.ASN1Object = function () {
|
|
// (this.getLengthHexFromValue = function () {
|
|
// if (void 0 === this.hV || null == this.hV)
|
|
// throw 'this.hV is null or undefined.';
|
|
// if (this.hV.length % 2 == 1)
|
|
// throw (
|
|
// 'value hex must be even length: n=' +
|
|
// ''.length +
|
|
// ',v=' +
|
|
// this.hV
|
|
// );
|
|
// var t = this.hV.length / 2,
|
|
// e = t.toString(16);
|
|
// if ((e.length % 2 == 1 && (e = '0' + e), t < 128)) return e;
|
|
// var i = e.length / 2;
|
|
// if (i > 15)
|
|
// throw (
|
|
// 'ASN.1 length too long to represent by 8x: n = ' +
|
|
// t.toString(16)
|
|
// );
|
|
// return (128 + i).toString(16) + e;
|
|
// }),
|
|
// (this.getEncodedHex = function () {
|
|
// return (
|
|
// (null == this.hTLV || this.isModified) &&
|
|
// ((this.hV = this.getFreshValueHex()),
|
|
// (this.hL = this.getLengthHexFromValue()),
|
|
// (this.hTLV = this.hT + this.hL + this.hV),
|
|
// (this.isModified = !1)),
|
|
// this.hTLV
|
|
// );
|
|
// }),
|
|
// (this.getValueHex = function () {
|
|
// return this.getEncodedHex(), this.hV;
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return '';
|
|
// });
|
|
// }),
|
|
// (tt.asn1.DERAbstractString = function (t) {
|
|
// tt.asn1.DERAbstractString.superclass.constructor.call(this),
|
|
// (this.getString = function () {
|
|
// return this.s;
|
|
// }),
|
|
// (this.setString = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.s = t),
|
|
// (this.hV = stohex(this.s));
|
|
// }),
|
|
// (this.setStringHex = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.s = null),
|
|
// (this.hV = t);
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// }),
|
|
// void 0 !== t &&
|
|
// ('string' == typeof t
|
|
// ? this.setString(t)
|
|
// : void 0 !== t.str
|
|
// ? this.setString(t.str)
|
|
// : void 0 !== t.hex && this.setStringHex(t.hex));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERAbstractString, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERAbstractTime = function (t) {
|
|
// tt.asn1.DERAbstractTime.superclass.constructor.call(this),
|
|
// (this.localDateToUTC = function (t) {
|
|
// return (
|
|
// (utc = t.getTime() + 6e4 * t.getTimezoneOffset()),
|
|
// new Date(utc)
|
|
// );
|
|
// }),
|
|
// (this.formatDate = function (t, e, i) {
|
|
// var r = this.zeroPadding,
|
|
// n = this.localDateToUTC(t),
|
|
// s = String(n.getFullYear());
|
|
// 'utc' == e && (s = s.substr(2, 2));
|
|
// var o =
|
|
// s +
|
|
// r(String(n.getMonth() + 1), 2) +
|
|
// r(String(n.getDate()), 2) +
|
|
// r(String(n.getHours()), 2) +
|
|
// r(String(n.getMinutes()), 2) +
|
|
// r(String(n.getSeconds()), 2);
|
|
// if (!0 === i) {
|
|
// var h = n.getMilliseconds();
|
|
// if (0 != h) {
|
|
// var a = r(String(h), 3);
|
|
// o = o + '.' + (a = a.replace(/[0]+$/, ''));
|
|
// }
|
|
// }
|
|
// return o + 'Z';
|
|
// }),
|
|
// (this.zeroPadding = function (t, e) {
|
|
// return t.length >= e
|
|
// ? t
|
|
// : new Array(e - t.length + 1).join('0') + t;
|
|
// }),
|
|
// (this.getString = function () {
|
|
// return this.s;
|
|
// }),
|
|
// (this.setString = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.s = t),
|
|
// (this.hV = stohex(t));
|
|
// }),
|
|
// (this.setByDateValue = function (t, e, i, r, n, s) {
|
|
// var o = new Date(Date.UTC(t, e - 1, i, r, n, s, 0));
|
|
// this.setByDate(o);
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// });
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERAbstractTime, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERAbstractStructured = function (t) {
|
|
// tt.asn1.DERAbstractString.superclass.constructor.call(this),
|
|
// (this.setByASN1ObjectArray = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.asn1Array = t);
|
|
// }),
|
|
// (this.appendASN1Object = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// this.asn1Array.push(t);
|
|
// }),
|
|
// (this.asn1Array = new Array()),
|
|
// void 0 !== t &&
|
|
// void 0 !== t.array &&
|
|
// (this.asn1Array = t.array);
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERAbstractStructured, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERBoolean = function () {
|
|
// tt.asn1.DERBoolean.superclass.constructor.call(this),
|
|
// (this.hT = '01'),
|
|
// (this.hTLV = '0101ff');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERBoolean, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERInteger = function (t) {
|
|
// tt.asn1.DERInteger.superclass.constructor.call(this),
|
|
// (this.hT = '02'),
|
|
// (this.setByBigInteger = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.hV =
|
|
// tt.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t));
|
|
// }),
|
|
// (this.setByInteger = function (t) {
|
|
// var e = new B(String(t), 10);
|
|
// this.setByBigInteger(e);
|
|
// }),
|
|
// (this.setValueHex = function (t) {
|
|
// this.hV = t;
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// }),
|
|
// void 0 !== t &&
|
|
// (void 0 !== t.bigint
|
|
// ? this.setByBigInteger(t.bigint)
|
|
// : void 0 !== t.int
|
|
// ? this.setByInteger(t.int)
|
|
// : 'number' == typeof t
|
|
// ? this.setByInteger(t)
|
|
// : void 0 !== t.hex && this.setValueHex(t.hex));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERInteger, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERBitString = function (t) {
|
|
// if (void 0 !== t && void 0 !== t.obj) {
|
|
// var e = tt.asn1.ASN1Util.newObject(t.obj);
|
|
// t.hex = '00' + e.getEncodedHex();
|
|
// }
|
|
// tt.asn1.DERBitString.superclass.constructor.call(this),
|
|
// (this.hT = '03'),
|
|
// (this.setHexValueIncludingUnusedBits = function (t) {
|
|
// (this.hTLV = null), (this.isModified = !0), (this.hV = t);
|
|
// }),
|
|
// (this.setUnusedBitsAndHexValue = function (t, e) {
|
|
// if (t < 0 || 7 < t)
|
|
// throw 'unused bits shall be from 0 to 7: u = ' + t;
|
|
// var i = '0' + t;
|
|
// (this.hTLV = null), (this.isModified = !0), (this.hV = i + e);
|
|
// }),
|
|
// (this.setByBinaryString = function (t) {
|
|
// var e = 8 - ((t = t.replace(/0+$/, '')).length % 8);
|
|
// 8 == e && (e = 0);
|
|
// for (var i = 0; i <= e; i++) t += '0';
|
|
// var r = '';
|
|
// for (i = 0; i < t.length - 1; i += 8) {
|
|
// var n = t.substr(i, 8),
|
|
// s = parseInt(n, 2).toString(16);
|
|
// 1 == s.length && (s = '0' + s), (r += s);
|
|
// }
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.hV = '0' + e + r);
|
|
// }),
|
|
// (this.setByBooleanArray = function (t) {
|
|
// for (var e = '', i = 0; i < t.length; i++)
|
|
// 1 == t[i] ? (e += '1') : (e += '0');
|
|
// this.setByBinaryString(e);
|
|
// }),
|
|
// (this.newFalseArray = function (t) {
|
|
// for (var e = new Array(t), i = 0; i < t; i++) e[i] = !1;
|
|
// return e;
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// }),
|
|
// void 0 !== t &&
|
|
// ('string' == typeof t && t.toLowerCase().match(/^[0-9a-f]+$/)
|
|
// ? this.setHexValueIncludingUnusedBits(t)
|
|
// : void 0 !== t.hex
|
|
// ? this.setHexValueIncludingUnusedBits(t.hex)
|
|
// : void 0 !== t.bin
|
|
// ? this.setByBinaryString(t.bin)
|
|
// : void 0 !== t.array && this.setByBooleanArray(t.array));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERBitString, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DEROctetString = function (t) {
|
|
// if (void 0 !== t && void 0 !== t.obj) {
|
|
// var e = tt.asn1.ASN1Util.newObject(t.obj);
|
|
// t.hex = e.getEncodedHex();
|
|
// }
|
|
// tt.asn1.DEROctetString.superclass.constructor.call(this, t),
|
|
// (this.hT = '04');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DEROctetString, tt.asn1.DERAbstractString),
|
|
// (tt.asn1.DERNull = function () {
|
|
// tt.asn1.DERNull.superclass.constructor.call(this),
|
|
// (this.hT = '05'),
|
|
// (this.hTLV = '0500');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERNull, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERObjectIdentifier = function (t) {
|
|
// var e = function (t) {
|
|
// var e = t.toString(16);
|
|
// return 1 == e.length && (e = '0' + e), e;
|
|
// },
|
|
// i = function (t) {
|
|
// var i = '',
|
|
// r = new B(t, 10).toString(2),
|
|
// n = 7 - (r.length % 7);
|
|
// 7 == n && (n = 0);
|
|
// for (var s = '', o = 0; o < n; o++) s += '0';
|
|
// for (r = s + r, o = 0; o < r.length - 1; o += 7) {
|
|
// var h = r.substr(o, 7);
|
|
// o != r.length - 7 && (h = '1' + h),
|
|
// (i += e(parseInt(h, 2)));
|
|
// }
|
|
// return i;
|
|
// };
|
|
// tt.asn1.DERObjectIdentifier.superclass.constructor.call(this),
|
|
// (this.hT = '06'),
|
|
// (this.setValueHex = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.s = null),
|
|
// (this.hV = t);
|
|
// }),
|
|
// (this.setValueOidString = function (t) {
|
|
// if (!t.match(/^[0-9.]+$/)) throw 'malformed oid string: ' + t;
|
|
// var r = '',
|
|
// n = t.split('.'),
|
|
// s = 40 * parseInt(n[0]) + parseInt(n[1]);
|
|
// (r += e(s)), n.splice(0, 2);
|
|
// for (var o = 0; o < n.length; o++) r += i(n[o]);
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.s = null),
|
|
// (this.hV = r);
|
|
// }),
|
|
// (this.setValueName = function (t) {
|
|
// var e = tt.asn1.x509.OID.name2oid(t);
|
|
// if ('' === e)
|
|
// throw 'DERObjectIdentifier oidName undefined: ' + t;
|
|
// this.setValueOidString(e);
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// }),
|
|
// void 0 !== t &&
|
|
// ('string' == typeof t
|
|
// ? t.match(/^[0-2].[0-9.]+$/)
|
|
// ? this.setValueOidString(t)
|
|
// : this.setValueName(t)
|
|
// : void 0 !== t.oid
|
|
// ? this.setValueOidString(t.oid)
|
|
// : void 0 !== t.hex
|
|
// ? this.setValueHex(t.hex)
|
|
// : void 0 !== t.name && this.setValueName(t.name));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERObjectIdentifier, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DEREnumerated = function (t) {
|
|
// tt.asn1.DEREnumerated.superclass.constructor.call(this),
|
|
// (this.hT = '0a'),
|
|
// (this.setByBigInteger = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.hV =
|
|
// tt.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t));
|
|
// }),
|
|
// (this.setByInteger = function (t) {
|
|
// var e = new B(String(t), 10);
|
|
// this.setByBigInteger(e);
|
|
// }),
|
|
// (this.setValueHex = function (t) {
|
|
// this.hV = t;
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// }),
|
|
// void 0 !== t &&
|
|
// (void 0 !== t.int
|
|
// ? this.setByInteger(t.int)
|
|
// : 'number' == typeof t
|
|
// ? this.setByInteger(t)
|
|
// : void 0 !== t.hex && this.setValueHex(t.hex));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DEREnumerated, tt.asn1.ASN1Object),
|
|
// (tt.asn1.DERUTF8String = function (t) {
|
|
// tt.asn1.DERUTF8String.superclass.constructor.call(this, t),
|
|
// (this.hT = '0c');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERUTF8String, tt.asn1.DERAbstractString),
|
|
// (tt.asn1.DERNumericString = function (t) {
|
|
// tt.asn1.DERNumericString.superclass.constructor.call(this, t),
|
|
// (this.hT = '12');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERNumericString, tt.asn1.DERAbstractString),
|
|
// (tt.asn1.DERPrintableString = function (t) {
|
|
// tt.asn1.DERPrintableString.superclass.constructor.call(this, t),
|
|
// (this.hT = '13');
|
|
// }),
|
|
// W.lang.extend(
|
|
// tt.asn1.DERPrintableString,
|
|
// tt.asn1.DERAbstractString,
|
|
// ),
|
|
// (tt.asn1.DERTeletexString = function (t) {
|
|
// tt.asn1.DERTeletexString.superclass.constructor.call(this, t),
|
|
// (this.hT = '14');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERTeletexString, tt.asn1.DERAbstractString),
|
|
// (tt.asn1.DERIA5String = function (t) {
|
|
// tt.asn1.DERIA5String.superclass.constructor.call(this, t),
|
|
// (this.hT = '16');
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERIA5String, tt.asn1.DERAbstractString),
|
|
// (tt.asn1.DERUTCTime = function (t) {
|
|
// tt.asn1.DERUTCTime.superclass.constructor.call(this, t),
|
|
// (this.hT = '17'),
|
|
// (this.setByDate = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.date = t),
|
|
// (this.s = this.formatDate(this.date, 'utc')),
|
|
// (this.hV = stohex(this.s));
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return (
|
|
// void 0 === this.date &&
|
|
// void 0 === this.s &&
|
|
// ((this.date = new Date()),
|
|
// (this.s = this.formatDate(this.date, 'utc')),
|
|
// (this.hV = stohex(this.s))),
|
|
// this.hV
|
|
// );
|
|
// }),
|
|
// void 0 !== t &&
|
|
// (void 0 !== t.str
|
|
// ? this.setString(t.str)
|
|
// : 'string' == typeof t && t.match(/^[0-9]{12}Z$/)
|
|
// ? this.setString(t)
|
|
// : void 0 !== t.hex
|
|
// ? this.setStringHex(t.hex)
|
|
// : void 0 !== t.date && this.setByDate(t.date));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERUTCTime, tt.asn1.DERAbstractTime),
|
|
// (tt.asn1.DERGeneralizedTime = function (t) {
|
|
// tt.asn1.DERGeneralizedTime.superclass.constructor.call(this, t),
|
|
// (this.hT = '18'),
|
|
// (this.withMillis = !1),
|
|
// (this.setByDate = function (t) {
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0),
|
|
// (this.date = t),
|
|
// (this.s = this.formatDate(
|
|
// this.date,
|
|
// 'gen',
|
|
// this.withMillis,
|
|
// )),
|
|
// (this.hV = stohex(this.s));
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return (
|
|
// void 0 === this.date &&
|
|
// void 0 === this.s &&
|
|
// ((this.date = new Date()),
|
|
// (this.s = this.formatDate(
|
|
// this.date,
|
|
// 'gen',
|
|
// this.withMillis,
|
|
// )),
|
|
// (this.hV = stohex(this.s))),
|
|
// this.hV
|
|
// );
|
|
// }),
|
|
// void 0 !== t &&
|
|
// (void 0 !== t.str
|
|
// ? this.setString(t.str)
|
|
// : 'string' == typeof t && t.match(/^[0-9]{14}Z$/)
|
|
// ? this.setString(t)
|
|
// : void 0 !== t.hex
|
|
// ? this.setStringHex(t.hex)
|
|
// : void 0 !== t.date && this.setByDate(t.date),
|
|
// !0 === t.millis && (this.withMillis = !0));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERGeneralizedTime, tt.asn1.DERAbstractTime),
|
|
// (tt.asn1.DERSequence = function (t) {
|
|
// tt.asn1.DERSequence.superclass.constructor.call(this, t),
|
|
// (this.hT = '30'),
|
|
// (this.getFreshValueHex = function () {
|
|
// for (var t = '', e = 0; e < this.asn1Array.length; e++)
|
|
// t += this.asn1Array[e].getEncodedHex();
|
|
// return (this.hV = t), this.hV;
|
|
// });
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERSequence, tt.asn1.DERAbstractStructured),
|
|
// (tt.asn1.DERSet = function (t) {
|
|
// tt.asn1.DERSet.superclass.constructor.call(this, t),
|
|
// (this.hT = '31'),
|
|
// (this.sortFlag = !0),
|
|
// (this.getFreshValueHex = function () {
|
|
// for (
|
|
// var t = new Array(), e = 0;
|
|
// e < this.asn1Array.length;
|
|
// e++
|
|
// ) {
|
|
// var i = this.asn1Array[e];
|
|
// t.push(i.getEncodedHex());
|
|
// }
|
|
// return (
|
|
// 1 == this.sortFlag && t.sort(),
|
|
// (this.hV = t.join('')),
|
|
// this.hV
|
|
// );
|
|
// }),
|
|
// void 0 !== t &&
|
|
// void 0 !== t.sortflag &&
|
|
// 0 == t.sortflag &&
|
|
// (this.sortFlag = !1);
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERSet, tt.asn1.DERAbstractStructured),
|
|
// (tt.asn1.DERTaggedObject = function (t) {
|
|
// tt.asn1.DERTaggedObject.superclass.constructor.call(this),
|
|
// (this.hT = 'a0'),
|
|
// (this.hV = ''),
|
|
// (this.isExplicit = !0),
|
|
// (this.asn1Object = null),
|
|
// (this.setASN1Object = function (t, e, i) {
|
|
// (this.hT = e),
|
|
// (this.isExplicit = t),
|
|
// (this.asn1Object = i),
|
|
// this.isExplicit
|
|
// ? ((this.hV = this.asn1Object.getEncodedHex()),
|
|
// (this.hTLV = null),
|
|
// (this.isModified = !0))
|
|
// : ((this.hV = null),
|
|
// (this.hTLV = i.getEncodedHex()),
|
|
// (this.hTLV = this.hTLV.replace(/^../, e)),
|
|
// (this.isModified = !1));
|
|
// }),
|
|
// (this.getFreshValueHex = function () {
|
|
// return this.hV;
|
|
// }),
|
|
// void 0 !== t &&
|
|
// (void 0 !== t.tag && (this.hT = t.tag),
|
|
// void 0 !== t.explicit && (this.isExplicit = t.explicit),
|
|
// void 0 !== t.obj &&
|
|
// ((this.asn1Object = t.obj),
|
|
// this.setASN1Object(
|
|
// this.isExplicit,
|
|
// this.hT,
|
|
// this.asn1Object,
|
|
// )));
|
|
// }),
|
|
// W.lang.extend(tt.asn1.DERTaggedObject, tt.asn1.ASN1Object);
|
|
// var et,
|
|
// it =
|
|
// ((et = function (t, e) {
|
|
// return (et =
|
|
// Object.setPrototypeOf ||
|
|
// ({__proto__: []} instanceof Array &&
|
|
// function (t, e) {
|
|
// t.__proto__ = e;
|
|
// }) ||
|
|
// function (t, e) {
|
|
// for (var i in e)
|
|
// Object.prototype.hasOwnProperty.call(e, i) &&
|
|
// (t[i] = e[i]);
|
|
// })(t, e);
|
|
// }),
|
|
// function (t, e) {
|
|
// if ('function' != typeof e && null !== e)
|
|
// throw new TypeError(
|
|
// 'Class extends value ' +
|
|
// String(e) +
|
|
// ' is not a constructor or null',
|
|
// );
|
|
// function i() {
|
|
// this.constructor = t;
|
|
// }
|
|
// et(t, e),
|
|
// (t.prototype =
|
|
// null === e
|
|
// ? Object.create(e)
|
|
// : ((i.prototype = e.prototype), new i()));
|
|
// }),
|
|
// rt = (function (t) {
|
|
// function e(i) {
|
|
// var r = t.call(this) || this;
|
|
// return (
|
|
// i &&
|
|
// ('string' == typeof i
|
|
// ? r.parseKey(i)
|
|
// : (e.hasPrivateKeyProperty(i) ||
|
|
// e.hasPublicKeyProperty(i)) &&
|
|
// r.parsePropertiesFrom(i)),
|
|
// r
|
|
// );
|
|
// }
|
|
// return (
|
|
// it(e, t),
|
|
// (e.prototype.parseKey = function (t) {
|
|
// try {
|
|
// var e = 0,
|
|
// i = 0,
|
|
// r = /^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/.test(t)
|
|
// ? (function (t) {
|
|
// var e;
|
|
// if (void 0 === c) {
|
|
// var i = '0123456789ABCDEF',
|
|
// r = ' \f\n\r\t \u2028\u2029';
|
|
// for (c = {}, e = 0; e < 16; ++e)
|
|
// c[i.charAt(e)] = e;
|
|
// for (i = i.toLowerCase(), e = 10; e < 16; ++e)
|
|
// c[i.charAt(e)] = e;
|
|
// for (e = 0; e < r.length; ++e)
|
|
// c[r.charAt(e)] = -1;
|
|
// }
|
|
// var n = [],
|
|
// s = 0,
|
|
// o = 0;
|
|
// for (e = 0; e < t.length; ++e) {
|
|
// var h = t.charAt(e);
|
|
// if ('=' == h) break;
|
|
// if (-1 != (h = c[h])) {
|
|
// if (void 0 === h)
|
|
// throw new Error(
|
|
// 'Illegal character at offset ' + e,
|
|
// );
|
|
// (s |= h),
|
|
// ++o >= 2
|
|
// ? ((n[n.length] = s), (s = 0), (o = 0))
|
|
// : (s <<= 4);
|
|
// }
|
|
// }
|
|
// if (o)
|
|
// throw new Error(
|
|
// 'Hex encoding incomplete: 4 bits missing',
|
|
// );
|
|
// return n;
|
|
// })(t)
|
|
// : d.unarmor(t),
|
|
// n = w.decode(r);
|
|
// if (
|
|
// (3 === n.sub.length && (n = n.sub[2].sub[0]),
|
|
// 9 === n.sub.length)
|
|
// ) {
|
|
// (e = n.sub[1].getHexStringValue()),
|
|
// (this.n = P(e, 16)),
|
|
// (i = n.sub[2].getHexStringValue()),
|
|
// (this.e = parseInt(i, 16));
|
|
// var s = n.sub[3].getHexStringValue();
|
|
// this.d = P(s, 16);
|
|
// var o = n.sub[4].getHexStringValue();
|
|
// this.p = P(o, 16);
|
|
// var h = n.sub[5].getHexStringValue();
|
|
// this.q = P(h, 16);
|
|
// var a = n.sub[6].getHexStringValue();
|
|
// this.dmp1 = P(a, 16);
|
|
// var u = n.sub[7].getHexStringValue();
|
|
// this.dmq1 = P(u, 16);
|
|
// var f = n.sub[8].getHexStringValue();
|
|
// this.coeff = P(f, 16);
|
|
// } else {
|
|
// if (2 !== n.sub.length) return !1;
|
|
// var l = n.sub[1].sub[0];
|
|
// (e = l.sub[0].getHexStringValue()),
|
|
// (this.n = P(e, 16)),
|
|
// (i = l.sub[1].getHexStringValue()),
|
|
// (this.e = parseInt(i, 16));
|
|
// }
|
|
// return !0;
|
|
// } catch (t) {
|
|
// return !1;
|
|
// }
|
|
// }),
|
|
// (e.prototype.getPrivateBaseKey = function () {
|
|
// var t = {
|
|
// array: [
|
|
// new tt.asn1.DERInteger({int: 0}),
|
|
// new tt.asn1.DERInteger({bigint: this.n}),
|
|
// new tt.asn1.DERInteger({int: this.e}),
|
|
// new tt.asn1.DERInteger({bigint: this.d}),
|
|
// new tt.asn1.DERInteger({bigint: this.p}),
|
|
// new tt.asn1.DERInteger({bigint: this.q}),
|
|
// new tt.asn1.DERInteger({bigint: this.dmp1}),
|
|
// new tt.asn1.DERInteger({bigint: this.dmq1}),
|
|
// new tt.asn1.DERInteger({bigint: this.coeff}),
|
|
// ],
|
|
// };
|
|
// return new tt.asn1.DERSequence(t).getEncodedHex();
|
|
// }),
|
|
// (e.prototype.getPrivateBaseKeyB64 = function () {
|
|
// return l(this.getPrivateBaseKey());
|
|
// }),
|
|
// (e.prototype.getPublicBaseKey = function () {
|
|
// var t = new tt.asn1.DERSequence({
|
|
// array: [
|
|
// new tt.asn1.DERObjectIdentifier({
|
|
// oid: '1.2.840.113549.1.1.1',
|
|
// }),
|
|
// new tt.asn1.DERNull(),
|
|
// ],
|
|
// }),
|
|
// e = new tt.asn1.DERSequence({
|
|
// array: [
|
|
// new tt.asn1.DERInteger({bigint: this.n}),
|
|
// new tt.asn1.DERInteger({int: this.e}),
|
|
// ],
|
|
// }),
|
|
// i = new tt.asn1.DERBitString({
|
|
// hex: '00' + e.getEncodedHex(),
|
|
// });
|
|
// return new tt.asn1.DERSequence({
|
|
// array: [t, i],
|
|
// }).getEncodedHex();
|
|
// }),
|
|
// (e.prototype.getPublicBaseKeyB64 = function () {
|
|
// return l(this.getPublicBaseKey());
|
|
// }),
|
|
// (e.wordwrap = function (t, e) {
|
|
// if (!t) return t;
|
|
// var i =
|
|
// '(.{1,' + (e = e || 64) + '})( +|$\n?)|(.{1,' + e + '})';
|
|
// return t.match(RegExp(i, 'g')).join('\n');
|
|
// }),
|
|
// (e.prototype.getPrivateKey = function () {
|
|
// var t = '-----BEGIN RSA PRIVATE KEY-----\n';
|
|
// return (
|
|
// (t += e.wordwrap(this.getPrivateBaseKeyB64()) + '\n') +
|
|
// '-----END RSA PRIVATE KEY-----'
|
|
// );
|
|
// }),
|
|
// (e.prototype.getPublicKey = function () {
|
|
// var t = '-----BEGIN PUBLIC KEY-----\n';
|
|
// return (
|
|
// (t += e.wordwrap(this.getPublicBaseKeyB64()) + '\n') +
|
|
// '-----END PUBLIC KEY-----'
|
|
// );
|
|
// }),
|
|
// (e.hasPublicKeyProperty = function (t) {
|
|
// return (
|
|
// (t = t || {}).hasOwnProperty('n') && t.hasOwnProperty('e')
|
|
// );
|
|
// }),
|
|
// (e.hasPrivateKeyProperty = function (t) {
|
|
// return (
|
|
// (t = t || {}).hasOwnProperty('n') &&
|
|
// t.hasOwnProperty('e') &&
|
|
// t.hasOwnProperty('d') &&
|
|
// t.hasOwnProperty('p') &&
|
|
// t.hasOwnProperty('q') &&
|
|
// t.hasOwnProperty('dmp1') &&
|
|
// t.hasOwnProperty('dmq1') &&
|
|
// t.hasOwnProperty('coeff')
|
|
// );
|
|
// }),
|
|
// (e.prototype.parsePropertiesFrom = function (t) {
|
|
// (this.n = t.n),
|
|
// (this.e = t.e),
|
|
// t.hasOwnProperty('d') &&
|
|
// ((this.d = t.d),
|
|
// (this.p = t.p),
|
|
// (this.q = t.q),
|
|
// (this.dmp1 = t.dmp1),
|
|
// (this.dmq1 = t.dmq1),
|
|
// (this.coeff = t.coeff));
|
|
// }),
|
|
// e
|
|
// );
|
|
// })(X);
|
|
// const nt = (function () {
|
|
// function t(t) {
|
|
// (t = t || {}),
|
|
// (this.default_key_size = t.default_key_size
|
|
// ? parseInt(t.default_key_size, 10)
|
|
// : 1024),
|
|
// (this.default_public_exponent =
|
|
// t.default_public_exponent || '010001'),
|
|
// (this.log = t.log || !1),
|
|
// (this.key = null);
|
|
// }
|
|
// return (
|
|
// (t.prototype.setKey = function (t) {
|
|
// this.log &&
|
|
// this.key &&
|
|
// console.warn('A key was already set, overriding existing.'),
|
|
// (this.key = new rt(t));
|
|
// }),
|
|
// (t.prototype.setPrivateKey = function (t) {
|
|
// this.setKey(t);
|
|
// }),
|
|
// (t.prototype.setPublicKey = function (t) {
|
|
// this.setKey(t);
|
|
// }),
|
|
// (t.prototype.decrypt = function (t) {
|
|
// try {
|
|
// return this.getKey().decrypt(p(t));
|
|
// } catch (t) {
|
|
// return !1;
|
|
// }
|
|
// }),
|
|
// (t.prototype.encrypt = function (t) {
|
|
// try {
|
|
// return l(this.getKey().encrypt(t));
|
|
// } catch (t) {
|
|
// return !1;
|
|
// }
|
|
// }),
|
|
// (t.prototype.sign = function (t, e, i) {
|
|
// try {
|
|
// return l(this.getKey().sign(t, e, i));
|
|
// } catch (t) {
|
|
// return !1;
|
|
// }
|
|
// }),
|
|
// (t.prototype.verify = function (t, e, i) {
|
|
// try {
|
|
// return this.getKey().verify(t, p(e), i);
|
|
// } catch (t) {
|
|
// return !1;
|
|
// }
|
|
// }),
|
|
// (t.prototype.getKey = function (t) {
|
|
// if (!this.key) {
|
|
// if (
|
|
// ((this.key = new rt()),
|
|
// t && '[object Function]' === {}.toString.call(t))
|
|
// )
|
|
// return void this.key.generateAsync(
|
|
// this.default_key_size,
|
|
// this.default_public_exponent,
|
|
// t,
|
|
// );
|
|
// this.key.generate(
|
|
// this.default_key_size,
|
|
// this.default_public_exponent,
|
|
// );
|
|
// }
|
|
// return this.key;
|
|
// }),
|
|
// (t.prototype.getPrivateKey = function () {
|
|
// return this.getKey().getPrivateKey();
|
|
// }),
|
|
// (t.prototype.getPrivateKeyB64 = function () {
|
|
// return this.getKey().getPrivateBaseKeyB64();
|
|
// }),
|
|
// (t.prototype.getPublicKey = function () {
|
|
// return this.getKey().getPublicKey();
|
|
// }),
|
|
// (t.prototype.getPublicKeyB64 = function () {
|
|
// return this.getKey().getPublicBaseKeyB64();
|
|
// }),
|
|
// (t.version = '3.2.0'),
|
|
// t
|
|
// );
|
|
// })();
|
|
// },
|
|
// ],
|
|
// e = {
|
|
// d: (t, i) => {
|
|
// for (var r in i)
|
|
// e.o(i, r) &&
|
|
// !e.o(t, r) &&
|
|
// Object.defineProperty(t, r, {enumerable: !0, get: i[r]});
|
|
// },
|
|
// o: (t, e) => Object.prototype.hasOwnProperty.call(t, e),
|
|
// },
|
|
// i = {};
|
|
// return t[1](0, i, e), i.default;
|
|
// })();
|
|
// });
|