@kernelift/ai-chat 2.2.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +3 -0
- package/dist/ai-chat.css +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +879 -855
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -33,7 +33,10 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
33
33
|
markdownClass: { default: "" },
|
|
34
34
|
loading: { type: Boolean, default: !1 },
|
|
35
35
|
onCopy: {},
|
|
36
|
-
i18n: { default: () => ({}) }
|
|
36
|
+
i18n: { default: () => ({}) },
|
|
37
|
+
plugins: { default: () => [] },
|
|
38
|
+
options: { default: () => ({}) },
|
|
39
|
+
afterRender: {}
|
|
37
40
|
}, {
|
|
38
41
|
collapse: { type: Boolean, default: !1 },
|
|
39
42
|
collapseModifiers: {}
|
|
@@ -68,14 +71,17 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
68
71
|
"on-copy": t.onCopy,
|
|
69
72
|
"copy-text": t.i18n?.chat?.button?.copyCode ?? "复制代码",
|
|
70
73
|
"collapse-text": t.i18n?.chat?.button?.collapse ?? "收起代码",
|
|
71
|
-
"expand-text": t.i18n?.chat?.button?.expand ?? "展开代码"
|
|
72
|
-
|
|
74
|
+
"expand-text": t.i18n?.chat?.button?.expand ?? "展开代码",
|
|
75
|
+
plugins: t.plugins,
|
|
76
|
+
options: t.options,
|
|
77
|
+
"after-render": t.afterRender
|
|
78
|
+
}, null, 8, ["model-value", "on-copy", "class", "copy-text", "collapse-text", "expand-text", "plugins", "options", "after-render"])
|
|
73
79
|
], 512), [
|
|
74
80
|
[lt, !e.value]
|
|
75
81
|
])
|
|
76
82
|
]));
|
|
77
83
|
}
|
|
78
|
-
}), Wn = /* @__PURE__ */ kt(Yn, [["__scopeId", "data-v-
|
|
84
|
+
}), Wn = /* @__PURE__ */ kt(Yn, [["__scopeId", "data-v-8bb934f8"]]), Xn = { class: "kernelift-chat-bubble" }, Zn = { class: "chat-bubble__main" }, _n = {
|
|
79
85
|
key: 0,
|
|
80
86
|
class: "kernelift-chat-bubble__thinking"
|
|
81
87
|
}, $n = {
|
|
@@ -92,7 +98,10 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
92
98
|
onCopy: { type: Function },
|
|
93
99
|
i18n: {},
|
|
94
100
|
isMobile: { type: Boolean },
|
|
95
|
-
extEvents: {}
|
|
101
|
+
extEvents: {},
|
|
102
|
+
plugins: {},
|
|
103
|
+
options: {},
|
|
104
|
+
afterRender: { type: Function }
|
|
96
105
|
}, {
|
|
97
106
|
modelValue: {
|
|
98
107
|
required: !0
|
|
@@ -155,7 +164,7 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
155
164
|
a.isMobile && c.preventDefault();
|
|
156
165
|
}, s = (c) => {
|
|
157
166
|
I("bubble-event", c, f.value), S.value = !1;
|
|
158
|
-
},
|
|
167
|
+
}, h = () => {
|
|
159
168
|
S.value = !1;
|
|
160
169
|
}, m = (c) => {
|
|
161
170
|
if (a.isMobile && l) {
|
|
@@ -180,13 +189,16 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
180
189
|
data: f.value.thoughtProcess,
|
|
181
190
|
"markdown-class": t.markdownClass,
|
|
182
191
|
"on-copy": t.onCopy,
|
|
183
|
-
i18n: t.i18n
|
|
192
|
+
i18n: t.i18n,
|
|
193
|
+
plugins: t.plugins,
|
|
194
|
+
options: t.options,
|
|
195
|
+
"after-render": t.afterRender
|
|
184
196
|
}, {
|
|
185
197
|
header: Ye(() => [
|
|
186
198
|
fe(c.$slots, "thinking-header", {}, void 0, !0)
|
|
187
199
|
]),
|
|
188
200
|
_: 3
|
|
189
|
-
}, 8, ["collapse", "loading", "data", "markdown-class", "on-copy", "i18n"])
|
|
201
|
+
}, 8, ["collapse", "loading", "data", "markdown-class", "on-copy", "i18n", "plugins", "options", "after-render"])
|
|
190
202
|
])) : We("", !0),
|
|
191
203
|
(f.value.role === "assistant" || f.value.role === "system") && !f.value.isThinking ? (pe(), ye("div", {
|
|
192
204
|
key: 1,
|
|
@@ -207,8 +219,11 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
207
219
|
class: et(t.markdownClass || ""),
|
|
208
220
|
"copy-text": t.i18n?.chat?.button?.copyCode ?? "复制代码",
|
|
209
221
|
"collapse-text": t.i18n?.chat?.button?.collapse ?? "收起代码",
|
|
210
|
-
"expand-text": t.i18n?.chat?.button?.expand ?? "展开代码"
|
|
211
|
-
|
|
222
|
+
"expand-text": t.i18n?.chat?.button?.expand ?? "展开代码",
|
|
223
|
+
plugins: t.plugins,
|
|
224
|
+
options: t.options,
|
|
225
|
+
"after-render": t.afterRender
|
|
226
|
+
}, null, 8, ["model-value", "on-copy", "class", "copy-text", "collapse-text", "expand-text", "plugins", "options", "after-render"])
|
|
212
227
|
], !0),
|
|
213
228
|
fe(c.$slots, "content-footer", {}, void 0, !0)
|
|
214
229
|
], 34)) : f.value.role === "user" ? (pe(), ye("div", $n, [
|
|
@@ -239,7 +254,7 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
239
254
|
S.value && t.isMobile ? (pe(), ye("div", {
|
|
240
255
|
key: 0,
|
|
241
256
|
class: "kernelift-chat-bubble__context-overlay",
|
|
242
|
-
onClick:
|
|
257
|
+
onClick: h
|
|
243
258
|
}, [
|
|
244
259
|
se("div", {
|
|
245
260
|
class: "kernelift-chat-bubble__context-menu",
|
|
@@ -267,7 +282,7 @@ const Wa = /* @__PURE__ */ kt(On, [["render", Mn]]), Fn = { class: "kernelift-th
|
|
|
267
282
|
])
|
|
268
283
|
]));
|
|
269
284
|
}
|
|
270
|
-
}), Xr = /* @__PURE__ */ kt(ni, [["__scopeId", "data-v-0086536e"]]), Fr = "data:image/png;base64,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";
|
|
285
|
+
}), Xr = /* @__PURE__ */ kt(ni, [["__scopeId", "data-v-68312f1c"]]), Fr = "data:image/png;base64,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";
|
|
271
286
|
function ii(t, e) {
|
|
272
287
|
return Rn() ? (Ln(t, e), !0) : !1;
|
|
273
288
|
}
|
|
@@ -317,17 +332,17 @@ function pi(t = Xa, e = {}) {
|
|
|
317
332
|
function rr(t) {
|
|
318
333
|
return Array.isArray(t) ? t : [t];
|
|
319
334
|
}
|
|
320
|
-
function
|
|
335
|
+
function di(t) {
|
|
321
336
|
return Un();
|
|
322
337
|
}
|
|
323
|
-
function
|
|
338
|
+
function hi(t, e, a = {}) {
|
|
324
339
|
const { eventFilter: f = Xa, ...I } = a;
|
|
325
340
|
return Bt(t, fi(f, e), I);
|
|
326
341
|
}
|
|
327
342
|
function gi(t, e, a = {}) {
|
|
328
343
|
const { eventFilter: f, initialState: I = "active", ...S } = a, { eventFilter: p, pause: r, resume: g, isActive: l } = pi(f, { initialState: I });
|
|
329
344
|
return {
|
|
330
|
-
stop:
|
|
345
|
+
stop: hi(t, e, {
|
|
331
346
|
...S,
|
|
332
347
|
eventFilter: p
|
|
333
348
|
}),
|
|
@@ -338,7 +353,7 @@ function gi(t, e, a = {}) {
|
|
|
338
353
|
}
|
|
339
354
|
const yi = gi;
|
|
340
355
|
function vi(t, e = !0, a) {
|
|
341
|
-
|
|
356
|
+
di() ? Gr(t, a) : e ? t() : jr(t);
|
|
342
357
|
}
|
|
343
358
|
const mi = /[YMDHhms]o|\[([^\]]+)\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;
|
|
344
359
|
function Ci(t, e, a, f) {
|
|
@@ -398,8 +413,8 @@ function Ei(t, e, a = {}) {
|
|
|
398
413
|
zzzz: () => u(t.toLocaleDateString($e(a.locales), { timeZoneName: "longOffset" }))
|
|
399
414
|
};
|
|
400
415
|
return e.replace(mi, (C, v) => {
|
|
401
|
-
var s,
|
|
402
|
-
return (s = v ?? ((
|
|
416
|
+
var s, h;
|
|
417
|
+
return (s = v ?? ((h = y[C]) === null || h === void 0 ? void 0 : h.call(y))) !== null && s !== void 0 ? s : C;
|
|
403
418
|
});
|
|
404
419
|
}
|
|
405
420
|
function Si(t, e, a) {
|
|
@@ -492,7 +507,7 @@ function Kt(t, e, a, f = {}) {
|
|
|
492
507
|
u(F);
|
|
493
508
|
}
|
|
494
509
|
if (!a) return C;
|
|
495
|
-
const s = $e(e),
|
|
510
|
+
const s = $e(e), h = Ti(s), m = (I = f.serializer) !== null && I !== void 0 ? I : ki[h], { pause: B, resume: R } = yi(C, (F) => V(F), {
|
|
496
511
|
flush: S,
|
|
497
512
|
deep: p,
|
|
498
513
|
eventFilter: E
|
|
@@ -537,7 +552,7 @@ function Kt(t, e, a, f = {}) {
|
|
|
537
552
|
return g && s != null && a.setItem(v.value, m.write(s)), s;
|
|
538
553
|
if (!F && l) {
|
|
539
554
|
const z = m.read(G);
|
|
540
|
-
return typeof l == "function" ? l(z, s) :
|
|
555
|
+
return typeof l == "function" ? l(z, s) : h === "object" && !Array.isArray(z) ? {
|
|
541
556
|
...s,
|
|
542
557
|
...z
|
|
543
558
|
} : z;
|
|
@@ -885,7 +900,7 @@ function os(t) {
|
|
|
885
900
|
}), a;
|
|
886
901
|
}
|
|
887
902
|
var $r, ea;
|
|
888
|
-
function
|
|
903
|
+
function he() {
|
|
889
904
|
return ea || (ea = 1, $r = {
|
|
890
905
|
// default options
|
|
891
906
|
options: {
|
|
@@ -973,7 +988,7 @@ var ra;
|
|
|
973
988
|
function ve() {
|
|
974
989
|
if (ra) return nr.exports;
|
|
975
990
|
ra = 1;
|
|
976
|
-
var t =
|
|
991
|
+
var t = he(), e = ls(), a = nr.exports = t.util = t.util || {};
|
|
977
992
|
(function() {
|
|
978
993
|
if (typeof process < "u" && process.nextTick && !process.browser) {
|
|
979
994
|
a.nextTick = process.nextTick, typeof setImmediate == "function" ? a.setImmediate = setImmediate : a.setImmediate = a.nextTick;
|
|
@@ -993,28 +1008,28 @@ function ve() {
|
|
|
993
1008
|
let i = function(n) {
|
|
994
1009
|
if (n.source === window && n.data === s) {
|
|
995
1010
|
n.stopPropagation();
|
|
996
|
-
var k =
|
|
997
|
-
|
|
1011
|
+
var k = h.slice();
|
|
1012
|
+
h.length = 0, k.forEach(function(V) {
|
|
998
1013
|
V();
|
|
999
1014
|
});
|
|
1000
1015
|
}
|
|
1001
1016
|
};
|
|
1002
|
-
var s = "forge.setImmediate",
|
|
1017
|
+
var s = "forge.setImmediate", h = [];
|
|
1003
1018
|
a.setImmediate = function(n) {
|
|
1004
|
-
|
|
1019
|
+
h.push(n), h.length === 1 && window.postMessage(s, "*");
|
|
1005
1020
|
}, window.addEventListener("message", i, !0);
|
|
1006
1021
|
}
|
|
1007
1022
|
if (typeof MutationObserver < "u") {
|
|
1008
|
-
var m = Date.now(), B = !0, R = document.createElement("div"),
|
|
1023
|
+
var m = Date.now(), B = !0, R = document.createElement("div"), h = [];
|
|
1009
1024
|
new MutationObserver(function() {
|
|
1010
|
-
var n =
|
|
1011
|
-
|
|
1025
|
+
var n = h.slice();
|
|
1026
|
+
h.length = 0, n.forEach(function(k) {
|
|
1012
1027
|
k();
|
|
1013
1028
|
});
|
|
1014
1029
|
}).observe(R, { attributes: !0 });
|
|
1015
1030
|
var c = a.setImmediate;
|
|
1016
1031
|
a.setImmediate = function(n) {
|
|
1017
|
-
Date.now() - m > 15 ? (m = Date.now(), c(n)) : (
|
|
1032
|
+
Date.now() - m > 15 ? (m = Date.now(), c(n)) : (h.push(n), h.length === 1 && R.setAttribute("a", B = !B));
|
|
1018
1033
|
};
|
|
1019
1034
|
}
|
|
1020
1035
|
a.nextTick = a.setImmediate;
|
|
@@ -1039,12 +1054,12 @@ function ve() {
|
|
|
1039
1054
|
if (typeof Buffer < "u" && s instanceof Buffer)
|
|
1040
1055
|
this.data = s.toString("binary");
|
|
1041
1056
|
else {
|
|
1042
|
-
var
|
|
1057
|
+
var h = new Uint8Array(s);
|
|
1043
1058
|
try {
|
|
1044
|
-
this.data = String.fromCharCode.apply(null,
|
|
1059
|
+
this.data = String.fromCharCode.apply(null, h);
|
|
1045
1060
|
} catch {
|
|
1046
|
-
for (var m = 0; m <
|
|
1047
|
-
this.putByte(
|
|
1061
|
+
for (var m = 0; m < h.length; ++m)
|
|
1062
|
+
this.putByte(h[m]);
|
|
1048
1063
|
}
|
|
1049
1064
|
}
|
|
1050
1065
|
else (s instanceof I || typeof s == "object" && typeof s.data == "string" && typeof s.read == "number") && (this.data = s.data, this.read = s.read);
|
|
@@ -1060,11 +1075,11 @@ function ve() {
|
|
|
1060
1075
|
return this.length() <= 0;
|
|
1061
1076
|
}, a.ByteStringBuffer.prototype.putByte = function(s) {
|
|
1062
1077
|
return this.putBytes(String.fromCharCode(s));
|
|
1063
|
-
}, a.ByteStringBuffer.prototype.fillWithByte = function(s,
|
|
1078
|
+
}, a.ByteStringBuffer.prototype.fillWithByte = function(s, h) {
|
|
1064
1079
|
s = String.fromCharCode(s);
|
|
1065
|
-
for (var m = this.data;
|
|
1066
|
-
|
|
1067
|
-
return this.data = m, this._optimizeConstructedString(
|
|
1080
|
+
for (var m = this.data; h > 0; )
|
|
1081
|
+
h & 1 && (m += s), h >>>= 1, h > 0 && (s += s);
|
|
1082
|
+
return this.data = m, this._optimizeConstructedString(h), this;
|
|
1068
1083
|
}, a.ByteStringBuffer.prototype.putBytes = function(s) {
|
|
1069
1084
|
return this.data += s, this._optimizeConstructedString(s.length), this;
|
|
1070
1085
|
}, a.ByteStringBuffer.prototype.putString = function(s) {
|
|
@@ -1093,15 +1108,15 @@ function ve() {
|
|
|
1093
1108
|
return this.putBytes(
|
|
1094
1109
|
String.fromCharCode(s & 255) + String.fromCharCode(s >> 8 & 255) + String.fromCharCode(s >> 16 & 255) + String.fromCharCode(s >> 24 & 255)
|
|
1095
1110
|
);
|
|
1096
|
-
}, a.ByteStringBuffer.prototype.putInt = function(s,
|
|
1097
|
-
f(
|
|
1111
|
+
}, a.ByteStringBuffer.prototype.putInt = function(s, h) {
|
|
1112
|
+
f(h);
|
|
1098
1113
|
var m = "";
|
|
1099
1114
|
do
|
|
1100
|
-
|
|
1101
|
-
while (
|
|
1115
|
+
h -= 8, m += String.fromCharCode(s >> h & 255);
|
|
1116
|
+
while (h > 0);
|
|
1102
1117
|
return this.putBytes(m);
|
|
1103
|
-
}, a.ByteStringBuffer.prototype.putSignedInt = function(s,
|
|
1104
|
-
return s < 0 && (s += 2 <<
|
|
1118
|
+
}, a.ByteStringBuffer.prototype.putSignedInt = function(s, h) {
|
|
1119
|
+
return s < 0 && (s += 2 << h - 1), this.putInt(s, h);
|
|
1105
1120
|
}, a.ByteStringBuffer.prototype.putBuffer = function(s) {
|
|
1106
1121
|
return this.putBytes(s.getBytes());
|
|
1107
1122
|
}, a.ByteStringBuffer.prototype.getByte = function() {
|
|
@@ -1126,23 +1141,23 @@ function ve() {
|
|
|
1126
1141
|
return this.read += 4, s;
|
|
1127
1142
|
}, a.ByteStringBuffer.prototype.getInt = function(s) {
|
|
1128
1143
|
f(s);
|
|
1129
|
-
var
|
|
1144
|
+
var h = 0;
|
|
1130
1145
|
do
|
|
1131
|
-
|
|
1146
|
+
h = (h << 8) + this.data.charCodeAt(this.read++), s -= 8;
|
|
1132
1147
|
while (s > 0);
|
|
1133
|
-
return
|
|
1148
|
+
return h;
|
|
1134
1149
|
}, a.ByteStringBuffer.prototype.getSignedInt = function(s) {
|
|
1135
|
-
var
|
|
1136
|
-
return
|
|
1150
|
+
var h = this.getInt(s), m = 2 << s - 2;
|
|
1151
|
+
return h >= m && (h -= m << 1), h;
|
|
1137
1152
|
}, a.ByteStringBuffer.prototype.getBytes = function(s) {
|
|
1138
|
-
var
|
|
1139
|
-
return s ? (s = Math.min(this.length(), s),
|
|
1153
|
+
var h;
|
|
1154
|
+
return s ? (s = Math.min(this.length(), s), h = this.data.slice(this.read, this.read + s), this.read += s) : s === 0 ? h = "" : (h = this.read === 0 ? this.data : this.data.slice(this.read), this.clear()), h;
|
|
1140
1155
|
}, a.ByteStringBuffer.prototype.bytes = function(s) {
|
|
1141
1156
|
return typeof s > "u" ? this.data.slice(this.read) : this.data.slice(this.read, this.read + s);
|
|
1142
1157
|
}, a.ByteStringBuffer.prototype.at = function(s) {
|
|
1143
1158
|
return this.data.charCodeAt(this.read + s);
|
|
1144
|
-
}, a.ByteStringBuffer.prototype.setAt = function(s,
|
|
1145
|
-
return this.data = this.data.substr(0, this.read + s) + String.fromCharCode(
|
|
1159
|
+
}, a.ByteStringBuffer.prototype.setAt = function(s, h) {
|
|
1160
|
+
return this.data = this.data.substr(0, this.read + s) + String.fromCharCode(h) + this.data.substr(this.read + s + 1), this;
|
|
1146
1161
|
}, a.ByteStringBuffer.prototype.last = function() {
|
|
1147
1162
|
return this.data.charCodeAt(this.data.length - 1);
|
|
1148
1163
|
}, a.ByteStringBuffer.prototype.copy = function() {
|
|
@@ -1153,48 +1168,48 @@ function ve() {
|
|
|
1153
1168
|
}, a.ByteStringBuffer.prototype.clear = function() {
|
|
1154
1169
|
return this.data = "", this.read = 0, this;
|
|
1155
1170
|
}, a.ByteStringBuffer.prototype.truncate = function(s) {
|
|
1156
|
-
var
|
|
1157
|
-
return this.data = this.data.substr(this.read,
|
|
1171
|
+
var h = Math.max(0, this.length() - s);
|
|
1172
|
+
return this.data = this.data.substr(this.read, h), this.read = 0, this;
|
|
1158
1173
|
}, a.ByteStringBuffer.prototype.toHex = function() {
|
|
1159
|
-
for (var s = "",
|
|
1160
|
-
var m = this.data.charCodeAt(
|
|
1174
|
+
for (var s = "", h = this.read; h < this.data.length; ++h) {
|
|
1175
|
+
var m = this.data.charCodeAt(h);
|
|
1161
1176
|
m < 16 && (s += "0"), s += m.toString(16);
|
|
1162
1177
|
}
|
|
1163
1178
|
return s;
|
|
1164
1179
|
}, a.ByteStringBuffer.prototype.toString = function() {
|
|
1165
1180
|
return a.decodeUtf8(this.bytes());
|
|
1166
1181
|
};
|
|
1167
|
-
function p(s,
|
|
1168
|
-
|
|
1182
|
+
function p(s, h) {
|
|
1183
|
+
h = h || {}, this.read = h.readOffset || 0, this.growSize = h.growSize || 1024;
|
|
1169
1184
|
var m = a.isArrayBuffer(s), B = a.isArrayBufferView(s);
|
|
1170
1185
|
if (m || B) {
|
|
1171
|
-
m ? this.data = new DataView(s) : this.data = new DataView(s.buffer, s.byteOffset, s.byteLength), this.write = "writeOffset" in
|
|
1186
|
+
m ? this.data = new DataView(s) : this.data = new DataView(s.buffer, s.byteOffset, s.byteLength), this.write = "writeOffset" in h ? h.writeOffset : this.data.byteLength;
|
|
1172
1187
|
return;
|
|
1173
1188
|
}
|
|
1174
|
-
this.data = new DataView(new ArrayBuffer(0)), this.write = 0, s != null && this.putBytes(s), "writeOffset" in
|
|
1189
|
+
this.data = new DataView(new ArrayBuffer(0)), this.write = 0, s != null && this.putBytes(s), "writeOffset" in h && (this.write = h.writeOffset);
|
|
1175
1190
|
}
|
|
1176
1191
|
a.DataBuffer = p, a.DataBuffer.prototype.length = function() {
|
|
1177
1192
|
return this.write - this.read;
|
|
1178
1193
|
}, a.DataBuffer.prototype.isEmpty = function() {
|
|
1179
1194
|
return this.length() <= 0;
|
|
1180
|
-
}, a.DataBuffer.prototype.accommodate = function(s,
|
|
1195
|
+
}, a.DataBuffer.prototype.accommodate = function(s, h) {
|
|
1181
1196
|
if (this.length() >= s)
|
|
1182
1197
|
return this;
|
|
1183
|
-
|
|
1198
|
+
h = Math.max(h || this.growSize, s);
|
|
1184
1199
|
var m = new Uint8Array(
|
|
1185
1200
|
this.data.buffer,
|
|
1186
1201
|
this.data.byteOffset,
|
|
1187
1202
|
this.data.byteLength
|
|
1188
|
-
), B = new Uint8Array(this.length() +
|
|
1203
|
+
), B = new Uint8Array(this.length() + h);
|
|
1189
1204
|
return B.set(m), this.data = new DataView(B.buffer), this;
|
|
1190
1205
|
}, a.DataBuffer.prototype.putByte = function(s) {
|
|
1191
1206
|
return this.accommodate(1), this.data.setUint8(this.write++, s), this;
|
|
1192
|
-
}, a.DataBuffer.prototype.fillWithByte = function(s,
|
|
1193
|
-
this.accommodate(
|
|
1194
|
-
for (var m = 0; m <
|
|
1207
|
+
}, a.DataBuffer.prototype.fillWithByte = function(s, h) {
|
|
1208
|
+
this.accommodate(h);
|
|
1209
|
+
for (var m = 0; m < h; ++m)
|
|
1195
1210
|
this.data.setUint8(s);
|
|
1196
1211
|
return this;
|
|
1197
|
-
}, a.DataBuffer.prototype.putBytes = function(s,
|
|
1212
|
+
}, a.DataBuffer.prototype.putBytes = function(s, h) {
|
|
1198
1213
|
if (a.isArrayBufferView(s)) {
|
|
1199
1214
|
var m = new Uint8Array(s.buffer, s.byteOffset, s.byteLength), B = m.byteLength - m.byteOffset;
|
|
1200
1215
|
this.accommodate(B);
|
|
@@ -1213,17 +1228,17 @@ function ve() {
|
|
|
1213
1228
|
var R = new Uint8Array(s.data.byteLength, this.write);
|
|
1214
1229
|
return R.set(m), this.write += m.byteLength, this;
|
|
1215
1230
|
}
|
|
1216
|
-
if (s instanceof a.ByteStringBuffer && (s = s.data,
|
|
1231
|
+
if (s instanceof a.ByteStringBuffer && (s = s.data, h = "binary"), h = h || "binary", typeof s == "string") {
|
|
1217
1232
|
var c;
|
|
1218
|
-
if (
|
|
1233
|
+
if (h === "hex")
|
|
1219
1234
|
return this.accommodate(Math.ceil(s.length / 2)), c = new Uint8Array(this.data.buffer, this.write), this.write += a.binary.hex.decode(s, c, this.write), this;
|
|
1220
|
-
if (
|
|
1235
|
+
if (h === "base64")
|
|
1221
1236
|
return this.accommodate(Math.ceil(s.length / 4) * 3), c = new Uint8Array(this.data.buffer, this.write), this.write += a.binary.base64.decode(s, c, this.write), this;
|
|
1222
|
-
if (
|
|
1237
|
+
if (h === "utf8" && (s = a.encodeUtf8(s), h = "binary"), h === "binary" || h === "raw")
|
|
1223
1238
|
return this.accommodate(s.length), c = new Uint8Array(this.data.buffer, this.write), this.write += a.binary.raw.decode(c), this;
|
|
1224
|
-
if (
|
|
1239
|
+
if (h === "utf16")
|
|
1225
1240
|
return this.accommodate(s.length * 2), c = new Uint16Array(this.data.buffer, this.write), this.write += a.text.utf16.encode(c), this;
|
|
1226
|
-
throw new Error("Invalid encoding: " +
|
|
1241
|
+
throw new Error("Invalid encoding: " + h);
|
|
1227
1242
|
}
|
|
1228
1243
|
throw Error("Invalid parameter: " + s);
|
|
1229
1244
|
}, a.DataBuffer.prototype.putBuffer = function(s) {
|
|
@@ -1242,14 +1257,14 @@ function ve() {
|
|
|
1242
1257
|
return this.accommodate(3), this.data.setInt8(this.write, s >> 16 & 255), this.data.setInt16(this.write, s >> 8 & 65535, !0), this.write += 3, this;
|
|
1243
1258
|
}, a.DataBuffer.prototype.putInt32Le = function(s) {
|
|
1244
1259
|
return this.accommodate(4), this.data.setInt32(this.write, s, !0), this.write += 4, this;
|
|
1245
|
-
}, a.DataBuffer.prototype.putInt = function(s,
|
|
1246
|
-
f(
|
|
1260
|
+
}, a.DataBuffer.prototype.putInt = function(s, h) {
|
|
1261
|
+
f(h), this.accommodate(h / 8);
|
|
1247
1262
|
do
|
|
1248
|
-
|
|
1249
|
-
while (
|
|
1263
|
+
h -= 8, this.data.setInt8(this.write++, s >> h & 255);
|
|
1264
|
+
while (h > 0);
|
|
1250
1265
|
return this;
|
|
1251
|
-
}, a.DataBuffer.prototype.putSignedInt = function(s,
|
|
1252
|
-
return f(
|
|
1266
|
+
}, a.DataBuffer.prototype.putSignedInt = function(s, h) {
|
|
1267
|
+
return f(h), this.accommodate(h / 8), s < 0 && (s += 2 << h - 1), this.putInt(s, h);
|
|
1253
1268
|
}, a.DataBuffer.prototype.getByte = function() {
|
|
1254
1269
|
return this.data.getInt8(this.read++);
|
|
1255
1270
|
}, a.DataBuffer.prototype.getInt16 = function() {
|
|
@@ -1272,31 +1287,31 @@ function ve() {
|
|
|
1272
1287
|
return this.read += 4, s;
|
|
1273
1288
|
}, a.DataBuffer.prototype.getInt = function(s) {
|
|
1274
1289
|
f(s);
|
|
1275
|
-
var
|
|
1290
|
+
var h = 0;
|
|
1276
1291
|
do
|
|
1277
|
-
|
|
1292
|
+
h = (h << 8) + this.data.getInt8(this.read++), s -= 8;
|
|
1278
1293
|
while (s > 0);
|
|
1279
|
-
return
|
|
1294
|
+
return h;
|
|
1280
1295
|
}, a.DataBuffer.prototype.getSignedInt = function(s) {
|
|
1281
|
-
var
|
|
1282
|
-
return
|
|
1296
|
+
var h = this.getInt(s), m = 2 << s - 2;
|
|
1297
|
+
return h >= m && (h -= m << 1), h;
|
|
1283
1298
|
}, a.DataBuffer.prototype.getBytes = function(s) {
|
|
1284
|
-
var
|
|
1285
|
-
return s ? (s = Math.min(this.length(), s),
|
|
1299
|
+
var h;
|
|
1300
|
+
return s ? (s = Math.min(this.length(), s), h = this.data.slice(this.read, this.read + s), this.read += s) : s === 0 ? h = "" : (h = this.read === 0 ? this.data : this.data.slice(this.read), this.clear()), h;
|
|
1286
1301
|
}, a.DataBuffer.prototype.bytes = function(s) {
|
|
1287
1302
|
return typeof s > "u" ? this.data.slice(this.read) : this.data.slice(this.read, this.read + s);
|
|
1288
1303
|
}, a.DataBuffer.prototype.at = function(s) {
|
|
1289
1304
|
return this.data.getUint8(this.read + s);
|
|
1290
|
-
}, a.DataBuffer.prototype.setAt = function(s,
|
|
1291
|
-
return this.data.setUint8(s,
|
|
1305
|
+
}, a.DataBuffer.prototype.setAt = function(s, h) {
|
|
1306
|
+
return this.data.setUint8(s, h), this;
|
|
1292
1307
|
}, a.DataBuffer.prototype.last = function() {
|
|
1293
1308
|
return this.data.getUint8(this.write - 1);
|
|
1294
1309
|
}, a.DataBuffer.prototype.copy = function() {
|
|
1295
1310
|
return new a.DataBuffer(this);
|
|
1296
1311
|
}, a.DataBuffer.prototype.compact = function() {
|
|
1297
1312
|
if (this.read > 0) {
|
|
1298
|
-
var s = new Uint8Array(this.data.buffer, this.read),
|
|
1299
|
-
|
|
1313
|
+
var s = new Uint8Array(this.data.buffer, this.read), h = new Uint8Array(s.byteLength);
|
|
1314
|
+
h.set(s), this.data = new DataView(h), this.write -= this.read, this.read = 0;
|
|
1300
1315
|
}
|
|
1301
1316
|
return this;
|
|
1302
1317
|
}, a.DataBuffer.prototype.clear = function() {
|
|
@@ -1304,39 +1319,39 @@ function ve() {
|
|
|
1304
1319
|
}, a.DataBuffer.prototype.truncate = function(s) {
|
|
1305
1320
|
return this.write = Math.max(0, this.length() - s), this.read = Math.min(this.read, this.write), this;
|
|
1306
1321
|
}, a.DataBuffer.prototype.toHex = function() {
|
|
1307
|
-
for (var s = "",
|
|
1308
|
-
var m = this.data.getUint8(
|
|
1322
|
+
for (var s = "", h = this.read; h < this.data.byteLength; ++h) {
|
|
1323
|
+
var m = this.data.getUint8(h);
|
|
1309
1324
|
m < 16 && (s += "0"), s += m.toString(16);
|
|
1310
1325
|
}
|
|
1311
1326
|
return s;
|
|
1312
1327
|
}, a.DataBuffer.prototype.toString = function(s) {
|
|
1313
|
-
var
|
|
1328
|
+
var h = new Uint8Array(this.data, this.read, this.length());
|
|
1314
1329
|
if (s = s || "utf8", s === "binary" || s === "raw")
|
|
1315
|
-
return a.binary.raw.encode(
|
|
1330
|
+
return a.binary.raw.encode(h);
|
|
1316
1331
|
if (s === "hex")
|
|
1317
|
-
return a.binary.hex.encode(
|
|
1332
|
+
return a.binary.hex.encode(h);
|
|
1318
1333
|
if (s === "base64")
|
|
1319
|
-
return a.binary.base64.encode(
|
|
1334
|
+
return a.binary.base64.encode(h);
|
|
1320
1335
|
if (s === "utf8")
|
|
1321
|
-
return a.text.utf8.decode(
|
|
1336
|
+
return a.text.utf8.decode(h);
|
|
1322
1337
|
if (s === "utf16")
|
|
1323
|
-
return a.text.utf16.decode(
|
|
1338
|
+
return a.text.utf16.decode(h);
|
|
1324
1339
|
throw new Error("Invalid encoding: " + s);
|
|
1325
|
-
}, a.createBuffer = function(s,
|
|
1326
|
-
return
|
|
1327
|
-
}, a.fillString = function(s,
|
|
1328
|
-
for (var m = "";
|
|
1329
|
-
|
|
1340
|
+
}, a.createBuffer = function(s, h) {
|
|
1341
|
+
return h = h || "raw", s !== void 0 && h === "utf8" && (s = a.encodeUtf8(s)), new a.ByteBuffer(s);
|
|
1342
|
+
}, a.fillString = function(s, h) {
|
|
1343
|
+
for (var m = ""; h > 0; )
|
|
1344
|
+
h & 1 && (m += s), h >>>= 1, h > 0 && (s += s);
|
|
1330
1345
|
return m;
|
|
1331
|
-
}, a.xorBytes = function(s,
|
|
1346
|
+
}, a.xorBytes = function(s, h, m) {
|
|
1332
1347
|
for (var B = "", R = "", c = "", i = 0, n = 0; m > 0; --m, ++i)
|
|
1333
|
-
R = s.charCodeAt(i) ^
|
|
1348
|
+
R = s.charCodeAt(i) ^ h.charCodeAt(i), n >= 10 && (B += c, c = "", n = 0), c += String.fromCharCode(R), ++n;
|
|
1334
1349
|
return B += c, B;
|
|
1335
1350
|
}, a.hexToBytes = function(s) {
|
|
1336
|
-
var
|
|
1337
|
-
for (s.length & !0 && (m = 1,
|
|
1338
|
-
|
|
1339
|
-
return
|
|
1351
|
+
var h = "", m = 0;
|
|
1352
|
+
for (s.length & !0 && (m = 1, h += String.fromCharCode(parseInt(s[0], 16))); m < s.length; m += 2)
|
|
1353
|
+
h += String.fromCharCode(parseInt(s.substr(m, 2), 16));
|
|
1354
|
+
return h;
|
|
1340
1355
|
}, a.bytesToHex = function(s) {
|
|
1341
1356
|
return a.createBuffer(s).toHex();
|
|
1342
1357
|
}, a.int32ToBytes = function(s) {
|
|
@@ -1436,16 +1451,16 @@ function ve() {
|
|
|
1436
1451
|
50,
|
|
1437
1452
|
51
|
|
1438
1453
|
], l = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
1439
|
-
a.encode64 = function(s,
|
|
1454
|
+
a.encode64 = function(s, h) {
|
|
1440
1455
|
for (var m = "", B = "", R, c, i, n = 0; n < s.length; )
|
|
1441
|
-
R = s.charCodeAt(n++), c = s.charCodeAt(n++), i = s.charCodeAt(n++), m += r.charAt(R >> 2), m += r.charAt((R & 3) << 4 | c >> 4), isNaN(c) ? m += "==" : (m += r.charAt((c & 15) << 2 | i >> 6), m += isNaN(i) ? "=" : r.charAt(i & 63)),
|
|
1442
|
-
`, m = m.substr(
|
|
1456
|
+
R = s.charCodeAt(n++), c = s.charCodeAt(n++), i = s.charCodeAt(n++), m += r.charAt(R >> 2), m += r.charAt((R & 3) << 4 | c >> 4), isNaN(c) ? m += "==" : (m += r.charAt((c & 15) << 2 | i >> 6), m += isNaN(i) ? "=" : r.charAt(i & 63)), h && m.length > h && (B += m.substr(0, h) + `\r
|
|
1457
|
+
`, m = m.substr(h));
|
|
1443
1458
|
return B += m, B;
|
|
1444
1459
|
}, a.decode64 = function(s) {
|
|
1445
1460
|
s = s.replace(/[^A-Za-z0-9\+\/\=]/g, "");
|
|
1446
|
-
for (var
|
|
1447
|
-
m = g[s.charCodeAt(i++) - 43], B = g[s.charCodeAt(i++) - 43], R = g[s.charCodeAt(i++) - 43], c = g[s.charCodeAt(i++) - 43],
|
|
1448
|
-
return
|
|
1461
|
+
for (var h = "", m, B, R, c, i = 0; i < s.length; )
|
|
1462
|
+
m = g[s.charCodeAt(i++) - 43], B = g[s.charCodeAt(i++) - 43], R = g[s.charCodeAt(i++) - 43], c = g[s.charCodeAt(i++) - 43], h += String.fromCharCode(m << 2 | B >> 4), R !== 64 && (h += String.fromCharCode((B & 15) << 4 | R >> 2), c !== 64 && (h += String.fromCharCode((R & 3) << 6 | c)));
|
|
1463
|
+
return h;
|
|
1449
1464
|
}, a.encodeUtf8 = function(s) {
|
|
1450
1465
|
return unescape(encodeURIComponent(s));
|
|
1451
1466
|
}, a.decodeUtf8 = function(s) {
|
|
@@ -1461,78 +1476,78 @@ function ve() {
|
|
|
1461
1476
|
}
|
|
1462
1477
|
}, a.binary.raw.encode = function(s) {
|
|
1463
1478
|
return String.fromCharCode.apply(null, s);
|
|
1464
|
-
}, a.binary.raw.decode = function(s,
|
|
1465
|
-
var B =
|
|
1479
|
+
}, a.binary.raw.decode = function(s, h, m) {
|
|
1480
|
+
var B = h;
|
|
1466
1481
|
B || (B = new Uint8Array(s.length)), m = m || 0;
|
|
1467
1482
|
for (var R = m, c = 0; c < s.length; ++c)
|
|
1468
1483
|
B[R++] = s.charCodeAt(c);
|
|
1469
|
-
return
|
|
1470
|
-
}, a.binary.hex.encode = a.bytesToHex, a.binary.hex.decode = function(s,
|
|
1471
|
-
var B =
|
|
1484
|
+
return h ? R - m : B;
|
|
1485
|
+
}, a.binary.hex.encode = a.bytesToHex, a.binary.hex.decode = function(s, h, m) {
|
|
1486
|
+
var B = h;
|
|
1472
1487
|
B || (B = new Uint8Array(Math.ceil(s.length / 2))), m = m || 0;
|
|
1473
1488
|
var R = 0, c = m;
|
|
1474
1489
|
for (s.length & 1 && (R = 1, B[c++] = parseInt(s[0], 16)); R < s.length; R += 2)
|
|
1475
1490
|
B[c++] = parseInt(s.substr(R, 2), 16);
|
|
1476
|
-
return
|
|
1477
|
-
}, a.binary.base64.encode = function(s,
|
|
1491
|
+
return h ? c - m : B;
|
|
1492
|
+
}, a.binary.base64.encode = function(s, h) {
|
|
1478
1493
|
for (var m = "", B = "", R, c, i, n = 0; n < s.byteLength; )
|
|
1479
|
-
R = s[n++], c = s[n++], i = s[n++], m += r.charAt(R >> 2), m += r.charAt((R & 3) << 4 | c >> 4), isNaN(c) ? m += "==" : (m += r.charAt((c & 15) << 2 | i >> 6), m += isNaN(i) ? "=" : r.charAt(i & 63)),
|
|
1480
|
-
`, m = m.substr(
|
|
1494
|
+
R = s[n++], c = s[n++], i = s[n++], m += r.charAt(R >> 2), m += r.charAt((R & 3) << 4 | c >> 4), isNaN(c) ? m += "==" : (m += r.charAt((c & 15) << 2 | i >> 6), m += isNaN(i) ? "=" : r.charAt(i & 63)), h && m.length > h && (B += m.substr(0, h) + `\r
|
|
1495
|
+
`, m = m.substr(h));
|
|
1481
1496
|
return B += m, B;
|
|
1482
|
-
}, a.binary.base64.decode = function(s,
|
|
1483
|
-
var B =
|
|
1497
|
+
}, a.binary.base64.decode = function(s, h, m) {
|
|
1498
|
+
var B = h;
|
|
1484
1499
|
B || (B = new Uint8Array(Math.ceil(s.length / 4) * 3)), s = s.replace(/[^A-Za-z0-9\+\/\=]/g, ""), m = m || 0;
|
|
1485
1500
|
for (var R, c, i, n, k = 0, V = m; k < s.length; )
|
|
1486
1501
|
R = g[s.charCodeAt(k++) - 43], c = g[s.charCodeAt(k++) - 43], i = g[s.charCodeAt(k++) - 43], n = g[s.charCodeAt(k++) - 43], B[V++] = R << 2 | c >> 4, i !== 64 && (B[V++] = (c & 15) << 4 | i >> 2, n !== 64 && (B[V++] = (i & 3) << 6 | n));
|
|
1487
|
-
return
|
|
1488
|
-
}, a.binary.base58.encode = function(s,
|
|
1489
|
-
return a.binary.baseN.encode(s, l,
|
|
1490
|
-
}, a.binary.base58.decode = function(s,
|
|
1491
|
-
return a.binary.baseN.decode(s, l,
|
|
1502
|
+
return h ? V - m : B.subarray(0, V);
|
|
1503
|
+
}, a.binary.base58.encode = function(s, h) {
|
|
1504
|
+
return a.binary.baseN.encode(s, l, h);
|
|
1505
|
+
}, a.binary.base58.decode = function(s, h) {
|
|
1506
|
+
return a.binary.baseN.decode(s, l, h);
|
|
1492
1507
|
}, a.text = {
|
|
1493
1508
|
utf8: {},
|
|
1494
1509
|
utf16: {}
|
|
1495
|
-
}, a.text.utf8.encode = function(s,
|
|
1510
|
+
}, a.text.utf8.encode = function(s, h, m) {
|
|
1496
1511
|
s = a.encodeUtf8(s);
|
|
1497
|
-
var B =
|
|
1512
|
+
var B = h;
|
|
1498
1513
|
B || (B = new Uint8Array(s.length)), m = m || 0;
|
|
1499
1514
|
for (var R = m, c = 0; c < s.length; ++c)
|
|
1500
1515
|
B[R++] = s.charCodeAt(c);
|
|
1501
|
-
return
|
|
1516
|
+
return h ? R - m : B;
|
|
1502
1517
|
}, a.text.utf8.decode = function(s) {
|
|
1503
1518
|
return a.decodeUtf8(String.fromCharCode.apply(null, s));
|
|
1504
|
-
}, a.text.utf16.encode = function(s,
|
|
1505
|
-
var B =
|
|
1519
|
+
}, a.text.utf16.encode = function(s, h, m) {
|
|
1520
|
+
var B = h;
|
|
1506
1521
|
B || (B = new Uint8Array(s.length * 2));
|
|
1507
1522
|
var R = new Uint16Array(B.buffer);
|
|
1508
1523
|
m = m || 0;
|
|
1509
1524
|
for (var c = m, i = m, n = 0; n < s.length; ++n)
|
|
1510
1525
|
R[i++] = s.charCodeAt(n), c += 2;
|
|
1511
|
-
return
|
|
1526
|
+
return h ? c - m : B;
|
|
1512
1527
|
}, a.text.utf16.decode = function(s) {
|
|
1513
1528
|
return String.fromCharCode.apply(null, new Uint16Array(s.buffer));
|
|
1514
|
-
}, a.deflate = function(s,
|
|
1515
|
-
if (
|
|
1516
|
-
var B = 2, R =
|
|
1517
|
-
R & 32 && (B = 6),
|
|
1518
|
-
}
|
|
1519
|
-
return
|
|
1520
|
-
}, a.inflate = function(s,
|
|
1521
|
-
var B = s.inflate(a.encode64(
|
|
1529
|
+
}, a.deflate = function(s, h, m) {
|
|
1530
|
+
if (h = a.decode64(s.deflate(a.encode64(h)).rval), m) {
|
|
1531
|
+
var B = 2, R = h.charCodeAt(1);
|
|
1532
|
+
R & 32 && (B = 6), h = h.substring(B, h.length - 4);
|
|
1533
|
+
}
|
|
1534
|
+
return h;
|
|
1535
|
+
}, a.inflate = function(s, h, m) {
|
|
1536
|
+
var B = s.inflate(a.encode64(h)).rval;
|
|
1522
1537
|
return B === null ? null : a.decode64(B);
|
|
1523
1538
|
};
|
|
1524
|
-
var b = function(s,
|
|
1539
|
+
var b = function(s, h, m) {
|
|
1525
1540
|
if (!s)
|
|
1526
1541
|
throw new Error("WebStorage not available.");
|
|
1527
1542
|
var B;
|
|
1528
|
-
if (m === null ? B = s.removeItem(
|
|
1543
|
+
if (m === null ? B = s.removeItem(h) : (m = a.encode64(JSON.stringify(m)), B = s.setItem(h, m)), typeof B < "u" && B.rval !== !0) {
|
|
1529
1544
|
var R = new Error(B.error.message);
|
|
1530
1545
|
throw R.id = B.error.id, R.name = B.error.name, R;
|
|
1531
1546
|
}
|
|
1532
|
-
}, U = function(s,
|
|
1547
|
+
}, U = function(s, h) {
|
|
1533
1548
|
if (!s)
|
|
1534
1549
|
throw new Error("WebStorage not available.");
|
|
1535
|
-
var m = s.getItem(
|
|
1550
|
+
var m = s.getItem(h);
|
|
1536
1551
|
if (s.init)
|
|
1537
1552
|
if (m.rval === null) {
|
|
1538
1553
|
if (m.error) {
|
|
@@ -1543,14 +1558,14 @@ function ve() {
|
|
|
1543
1558
|
} else
|
|
1544
1559
|
m = m.rval;
|
|
1545
1560
|
return m !== null && (m = JSON.parse(a.decode64(m))), m;
|
|
1546
|
-
}, E = function(s,
|
|
1547
|
-
var R = U(s,
|
|
1548
|
-
R === null && (R = {}), R[m] = B, b(s,
|
|
1549
|
-
}, u = function(s,
|
|
1550
|
-
var B = U(s,
|
|
1561
|
+
}, E = function(s, h, m, B) {
|
|
1562
|
+
var R = U(s, h);
|
|
1563
|
+
R === null && (R = {}), R[m] = B, b(s, h, R);
|
|
1564
|
+
}, u = function(s, h, m) {
|
|
1565
|
+
var B = U(s, h);
|
|
1551
1566
|
return B !== null && (B = m in B ? B[m] : null), B;
|
|
1552
|
-
}, y = function(s,
|
|
1553
|
-
var B = U(s,
|
|
1567
|
+
}, y = function(s, h, m) {
|
|
1568
|
+
var B = U(s, h);
|
|
1554
1569
|
if (B !== null && m in B) {
|
|
1555
1570
|
delete B[m];
|
|
1556
1571
|
var R = !0;
|
|
@@ -1558,11 +1573,11 @@ function ve() {
|
|
|
1558
1573
|
R = !1;
|
|
1559
1574
|
break;
|
|
1560
1575
|
}
|
|
1561
|
-
R && (B = null), b(s,
|
|
1576
|
+
R && (B = null), b(s, h, B);
|
|
1562
1577
|
}
|
|
1563
|
-
}, C = function(s,
|
|
1564
|
-
b(s,
|
|
1565
|
-
}, v = function(s,
|
|
1578
|
+
}, C = function(s, h) {
|
|
1579
|
+
b(s, h, null);
|
|
1580
|
+
}, v = function(s, h, m) {
|
|
1566
1581
|
var B = null;
|
|
1567
1582
|
typeof m > "u" && (m = ["web", "flash"]);
|
|
1568
1583
|
var R, c = !1, i = null;
|
|
@@ -1570,11 +1585,11 @@ function ve() {
|
|
|
1570
1585
|
R = m[n];
|
|
1571
1586
|
try {
|
|
1572
1587
|
if (R === "flash" || R === "both") {
|
|
1573
|
-
if (
|
|
1588
|
+
if (h[0] === null)
|
|
1574
1589
|
throw new Error("Flash local storage not available.");
|
|
1575
|
-
B = s.apply(this,
|
|
1590
|
+
B = s.apply(this, h), c = R === "flash";
|
|
1576
1591
|
}
|
|
1577
|
-
(R === "web" || R === "both") && (
|
|
1592
|
+
(R === "web" || R === "both") && (h[0] = localStorage, B = s.apply(this, h), c = !0);
|
|
1578
1593
|
} catch (k) {
|
|
1579
1594
|
i = k;
|
|
1580
1595
|
}
|
|
@@ -1585,22 +1600,22 @@ function ve() {
|
|
|
1585
1600
|
throw i;
|
|
1586
1601
|
return B;
|
|
1587
1602
|
};
|
|
1588
|
-
return a.setItem = function(s,
|
|
1603
|
+
return a.setItem = function(s, h, m, B, R) {
|
|
1589
1604
|
v(E, arguments, R);
|
|
1590
|
-
}, a.getItem = function(s,
|
|
1605
|
+
}, a.getItem = function(s, h, m, B) {
|
|
1591
1606
|
return v(u, arguments, B);
|
|
1592
|
-
}, a.removeItem = function(s,
|
|
1607
|
+
}, a.removeItem = function(s, h, m, B) {
|
|
1593
1608
|
v(y, arguments, B);
|
|
1594
|
-
}, a.clearItems = function(s,
|
|
1609
|
+
}, a.clearItems = function(s, h, m) {
|
|
1595
1610
|
v(C, arguments, m);
|
|
1596
1611
|
}, a.isEmpty = function(s) {
|
|
1597
|
-
for (var
|
|
1598
|
-
if (s.hasOwnProperty(
|
|
1612
|
+
for (var h in s)
|
|
1613
|
+
if (s.hasOwnProperty(h))
|
|
1599
1614
|
return !1;
|
|
1600
1615
|
return !0;
|
|
1601
1616
|
}, a.format = function(s) {
|
|
1602
|
-
for (var
|
|
1603
|
-
B = s.substring(i,
|
|
1617
|
+
for (var h = /%./g, m, B, R = 0, c = [], i = 0; m = h.exec(s); ) {
|
|
1618
|
+
B = s.substring(i, h.lastIndex - 2), B.length > 0 && c.push(B), i = h.lastIndex;
|
|
1604
1619
|
var n = m[0][1];
|
|
1605
1620
|
switch (n) {
|
|
1606
1621
|
case "s":
|
|
@@ -1618,8 +1633,8 @@ function ve() {
|
|
|
1618
1633
|
}
|
|
1619
1634
|
}
|
|
1620
1635
|
return c.push(s.substring(i)), c.join("");
|
|
1621
|
-
}, a.formatNumber = function(s,
|
|
1622
|
-
var R = s, c = isNaN(
|
|
1636
|
+
}, a.formatNumber = function(s, h, m, B) {
|
|
1637
|
+
var R = s, c = isNaN(h = Math.abs(h)) ? 2 : h, i = m === void 0 ? "," : m, n = B === void 0 ? "." : B, k = R < 0 ? "-" : "", V = parseInt(R = Math.abs(+R || 0).toFixed(c), 10) + "", O = V.length > 3 ? V.length % 3 : 0;
|
|
1623
1638
|
return k + (O ? V.substr(0, O) + n : "") + V.substr(O).replace(/(\d{3})(?=\d)/g, "$1" + n) + (c ? i + Math.abs(R - V).toFixed(c).slice(2) : "");
|
|
1624
1639
|
}, a.formatSize = function(s) {
|
|
1625
1640
|
return s >= 1073741824 ? s = a.formatNumber(s / 1073741824, 2, ".", "") + " GiB" : s >= 1048576 ? s = a.formatNumber(s / 1048576, 2, ".", "") + " MiB" : s >= 1024 ? s = a.formatNumber(s / 1024, 0) + " KiB" : s = a.formatNumber(s, 0) + " bytes", s;
|
|
@@ -1628,19 +1643,19 @@ function ve() {
|
|
|
1628
1643
|
}, a.bytesFromIPv4 = function(s) {
|
|
1629
1644
|
if (s = s.split("."), s.length !== 4)
|
|
1630
1645
|
return null;
|
|
1631
|
-
for (var
|
|
1646
|
+
for (var h = a.createBuffer(), m = 0; m < s.length; ++m) {
|
|
1632
1647
|
var B = parseInt(s[m], 10);
|
|
1633
1648
|
if (isNaN(B))
|
|
1634
1649
|
return null;
|
|
1635
|
-
|
|
1650
|
+
h.putByte(B);
|
|
1636
1651
|
}
|
|
1637
|
-
return
|
|
1652
|
+
return h.getBytes();
|
|
1638
1653
|
}, a.bytesFromIPv6 = function(s) {
|
|
1639
|
-
var
|
|
1654
|
+
var h = 0;
|
|
1640
1655
|
s = s.split(":").filter(function(i) {
|
|
1641
|
-
return i.length === 0 && ++
|
|
1656
|
+
return i.length === 0 && ++h, !0;
|
|
1642
1657
|
});
|
|
1643
|
-
for (var m = (8 - s.length +
|
|
1658
|
+
for (var m = (8 - s.length + h) * 2, B = a.createBuffer(), R = 0; R < 8; ++R) {
|
|
1644
1659
|
if (!s[R] || s[R].length === 0) {
|
|
1645
1660
|
B.fillWithByte(0, m), m = 0;
|
|
1646
1661
|
continue;
|
|
@@ -1654,35 +1669,35 @@ function ve() {
|
|
|
1654
1669
|
}, a.bytesToIPv4 = function(s) {
|
|
1655
1670
|
if (s.length !== 4)
|
|
1656
1671
|
return null;
|
|
1657
|
-
for (var
|
|
1658
|
-
|
|
1659
|
-
return
|
|
1672
|
+
for (var h = [], m = 0; m < s.length; ++m)
|
|
1673
|
+
h.push(s.charCodeAt(m));
|
|
1674
|
+
return h.join(".");
|
|
1660
1675
|
}, a.bytesToIPv6 = function(s) {
|
|
1661
1676
|
if (s.length !== 16)
|
|
1662
1677
|
return null;
|
|
1663
|
-
for (var
|
|
1678
|
+
for (var h = [], m = [], B = 0, R = 0; R < s.length; R += 2) {
|
|
1664
1679
|
for (var c = a.bytesToHex(s[R] + s[R + 1]); c[0] === "0" && c !== "0"; )
|
|
1665
1680
|
c = c.substr(1);
|
|
1666
1681
|
if (c === "0") {
|
|
1667
|
-
var i = m[m.length - 1], n =
|
|
1682
|
+
var i = m[m.length - 1], n = h.length;
|
|
1668
1683
|
!i || n !== i.end + 1 ? m.push({ start: n, end: n }) : (i.end = n, i.end - i.start > m[B].end - m[B].start && (B = m.length - 1));
|
|
1669
1684
|
}
|
|
1670
|
-
|
|
1685
|
+
h.push(c);
|
|
1671
1686
|
}
|
|
1672
1687
|
if (m.length > 0) {
|
|
1673
1688
|
var k = m[B];
|
|
1674
|
-
k.end - k.start > 0 && (
|
|
1689
|
+
k.end - k.start > 0 && (h.splice(k.start, k.end - k.start + 1, ""), k.start === 0 && h.unshift(""), k.end === 7 && h.push(""));
|
|
1675
1690
|
}
|
|
1676
|
-
return
|
|
1677
|
-
}, a.estimateCores = function(s,
|
|
1678
|
-
if (typeof s == "function" && (
|
|
1679
|
-
return
|
|
1691
|
+
return h.join(":");
|
|
1692
|
+
}, a.estimateCores = function(s, h) {
|
|
1693
|
+
if (typeof s == "function" && (h = s, s = {}), s = s || {}, "cores" in a && !s.update)
|
|
1694
|
+
return h(null, a.cores);
|
|
1680
1695
|
if (typeof navigator < "u" && "hardwareConcurrency" in navigator && navigator.hardwareConcurrency > 0)
|
|
1681
|
-
return a.cores = navigator.hardwareConcurrency,
|
|
1696
|
+
return a.cores = navigator.hardwareConcurrency, h(null, a.cores);
|
|
1682
1697
|
if (typeof Worker > "u")
|
|
1683
|
-
return a.cores = 1,
|
|
1698
|
+
return a.cores = 1, h(null, a.cores);
|
|
1684
1699
|
if (typeof Blob > "u")
|
|
1685
|
-
return a.cores = 2,
|
|
1700
|
+
return a.cores = 2, h(null, a.cores);
|
|
1686
1701
|
var m = URL.createObjectURL(new Blob([
|
|
1687
1702
|
"(",
|
|
1688
1703
|
(function() {
|
|
@@ -1699,7 +1714,7 @@ function ve() {
|
|
|
1699
1714
|
var V = Math.floor(i.reduce(function(O, D) {
|
|
1700
1715
|
return O + D;
|
|
1701
1716
|
}, 0) / i.length);
|
|
1702
|
-
return a.cores = Math.max(1, V), URL.revokeObjectURL(m),
|
|
1717
|
+
return a.cores = Math.max(1, V), URL.revokeObjectURL(m), h(null, a.cores);
|
|
1703
1718
|
}
|
|
1704
1719
|
R(k, function(O, D) {
|
|
1705
1720
|
i.push(c(k, D)), B(i, n - 1, k);
|
|
@@ -1736,7 +1751,7 @@ var sr, aa;
|
|
|
1736
1751
|
function zr() {
|
|
1737
1752
|
if (aa) return sr;
|
|
1738
1753
|
aa = 1;
|
|
1739
|
-
var t =
|
|
1754
|
+
var t = he();
|
|
1740
1755
|
ve(), sr = t.cipher = t.cipher || {}, t.cipher.algorithms = t.cipher.algorithms || {}, t.cipher.createCipher = function(a, f) {
|
|
1741
1756
|
var I = a;
|
|
1742
1757
|
if (typeof I == "string" && (I = t.cipher.getAlgorithm(I), I && (I = I())), !I)
|
|
@@ -1787,7 +1802,7 @@ var or = { exports: {} }, na;
|
|
|
1787
1802
|
function Za() {
|
|
1788
1803
|
if (na) return or.exports;
|
|
1789
1804
|
na = 1;
|
|
1790
|
-
var t =
|
|
1805
|
+
var t = he();
|
|
1791
1806
|
ve(), t.cipher = t.cipher || {};
|
|
1792
1807
|
var e = or.exports = t.cipher.modes = t.cipher.modes || {};
|
|
1793
1808
|
e.ecb = function(S) {
|
|
@@ -2131,7 +2146,7 @@ var lr, ia;
|
|
|
2131
2146
|
function Nt() {
|
|
2132
2147
|
if (ia) return lr;
|
|
2133
2148
|
ia = 1;
|
|
2134
|
-
var t =
|
|
2149
|
+
var t = he();
|
|
2135
2150
|
zr(), Za(), ve(), lr = t.aes = t.aes || {}, t.aes.startEncrypting = function(u, y, C, v) {
|
|
2136
2151
|
var s = E({
|
|
2137
2152
|
key: u,
|
|
@@ -2197,7 +2212,7 @@ function Nt() {
|
|
|
2197
2212
|
}
|
|
2198
2213
|
if (!t.util.isArray(y) || !(y.length === 4 || y.length === 6 || y.length === 8))
|
|
2199
2214
|
throw new Error("Invalid key parameter.");
|
|
2200
|
-
var
|
|
2215
|
+
var h = this.mode.name, m = ["CFB", "OFB", "CTR", "GCM"].indexOf(h) !== -1;
|
|
2201
2216
|
this._w = b(y, u.decrypt && !m), this._init = !0;
|
|
2202
2217
|
}
|
|
2203
2218
|
}, t.aes._expandKey = function(u, y) {
|
|
@@ -2217,13 +2232,13 @@ function Nt() {
|
|
|
2217
2232
|
I = new Array(256), S = new Array(256), r = new Array(4), g = new Array(4);
|
|
2218
2233
|
for (var y = 0; y < 4; ++y)
|
|
2219
2234
|
r[y] = new Array(256), g[y] = new Array(256);
|
|
2220
|
-
for (var C = 0, v = 0, s,
|
|
2221
|
-
B = v ^ v << 1 ^ v << 2 ^ v << 3 ^ v << 4, B = B >> 8 ^ B & 255 ^ 99, I[C] = B, S[B] = C, R = u[B], s = u[C],
|
|
2235
|
+
for (var C = 0, v = 0, s, h, m, B, R, c, i, y = 0; y < 256; ++y) {
|
|
2236
|
+
B = v ^ v << 1 ^ v << 2 ^ v << 3 ^ v << 4, B = B >> 8 ^ B & 255 ^ 99, I[C] = B, S[B] = C, R = u[B], s = u[C], h = u[s], m = u[h], c = R << 24 ^ // 2
|
|
2222
2237
|
B << 16 ^ // 1
|
|
2223
2238
|
B << 8 ^ // 1
|
|
2224
|
-
(B ^ R), i = (s ^
|
|
2239
|
+
(B ^ R), i = (s ^ h ^ m) << 24 ^ // E (14)
|
|
2225
2240
|
(C ^ m) << 16 ^ // 9
|
|
2226
|
-
(C ^
|
|
2241
|
+
(C ^ h ^ m) << 8 ^ // D (13)
|
|
2227
2242
|
(C ^ s ^ m);
|
|
2228
2243
|
for (var n = 0; n < 4; ++n)
|
|
2229
2244
|
r[n][C] = c, g[n][B] = i, c = c << 24 | c >>> 8, i = i << 24 | i >>> 8;
|
|
@@ -2231,8 +2246,8 @@ function Nt() {
|
|
|
2231
2246
|
}
|
|
2232
2247
|
}
|
|
2233
2248
|
function b(u, y) {
|
|
2234
|
-
for (var C = u.slice(0), v, s = 1,
|
|
2235
|
-
v = C[R - 1], R %
|
|
2249
|
+
for (var C = u.slice(0), v, s = 1, h = C.length, m = h + 6 + 1, B = f * m, R = h; R < B; ++R)
|
|
2250
|
+
v = C[R - 1], R % h === 0 ? (v = I[v >>> 16 & 255] << 24 ^ I[v >>> 8 & 255] << 16 ^ I[v & 255] << 8 ^ I[v >>> 24] ^ p[s] << 24, s++) : h > 6 && R % h === 4 && (v = I[v >>> 24] << 24 ^ I[v >>> 16 & 255] << 16 ^ I[v >>> 8 & 255] << 8 ^ I[v & 255]), C[R] = C[R - h] ^ v;
|
|
2236
2251
|
if (y) {
|
|
2237
2252
|
var c, i = g[0], n = g[1], k = g[2], V = g[3], O = C.slice(0);
|
|
2238
2253
|
B = C.length;
|
|
@@ -2247,12 +2262,12 @@ function Nt() {
|
|
|
2247
2262
|
return C;
|
|
2248
2263
|
}
|
|
2249
2264
|
function U(u, y, C, v) {
|
|
2250
|
-
var s = u.length / 4 - 1,
|
|
2251
|
-
v ? (
|
|
2265
|
+
var s = u.length / 4 - 1, h, m, B, R, c;
|
|
2266
|
+
v ? (h = g[0], m = g[1], B = g[2], R = g[3], c = S) : (h = r[0], m = r[1], B = r[2], R = r[3], c = I);
|
|
2252
2267
|
var i, n, k, V, O, D, x;
|
|
2253
2268
|
i = y[0] ^ u[0], n = y[v ? 3 : 1] ^ u[1], k = y[2] ^ u[2], V = y[v ? 1 : 3] ^ u[3];
|
|
2254
2269
|
for (var F = 3, G = 1; G < s; ++G)
|
|
2255
|
-
O =
|
|
2270
|
+
O = h[i >>> 24] ^ m[n >>> 16 & 255] ^ B[k >>> 8 & 255] ^ R[V & 255] ^ u[++F], D = h[n >>> 24] ^ m[k >>> 16 & 255] ^ B[V >>> 8 & 255] ^ R[i & 255] ^ u[++F], x = h[k >>> 24] ^ m[V >>> 16 & 255] ^ B[i >>> 8 & 255] ^ R[n & 255] ^ u[++F], V = h[V >>> 24] ^ m[i >>> 16 & 255] ^ B[n >>> 8 & 255] ^ R[k & 255] ^ u[++F], i = O, n = D, k = x;
|
|
2256
2271
|
C[0] = c[i >>> 24] << 24 ^ c[n >>> 16 & 255] << 16 ^ c[k >>> 8 & 255] << 8 ^ c[V & 255] ^ u[++F], C[v ? 3 : 1] = c[n >>> 24] << 24 ^ c[k >>> 16 & 255] << 16 ^ c[V >>> 8 & 255] << 8 ^ c[i & 255] ^ u[++F], C[2] = c[k >>> 24] << 24 ^ c[V >>> 16 & 255] << 16 ^ c[i >>> 8 & 255] << 8 ^ c[n & 255] ^ u[++F], C[v ? 1 : 3] = c[V >>> 24] << 24 ^ c[i >>> 16 & 255] << 16 ^ c[n >>> 8 & 255] << 8 ^ c[k & 255] ^ u[++F];
|
|
2257
2272
|
}
|
|
2258
2273
|
function E(u) {
|
|
@@ -2260,9 +2275,9 @@ function Nt() {
|
|
|
2260
2275
|
var y = (u.mode || "CBC").toUpperCase(), C = "AES-" + y, v;
|
|
2261
2276
|
u.decrypt ? v = t.cipher.createDecipher(C, u.key) : v = t.cipher.createCipher(C, u.key);
|
|
2262
2277
|
var s = v.start;
|
|
2263
|
-
return v.start = function(
|
|
2278
|
+
return v.start = function(h, m) {
|
|
2264
2279
|
var B = null;
|
|
2265
|
-
m instanceof t.util.ByteBuffer && (B = m, m = {}), m = m || {}, m.output = B, m.iv =
|
|
2280
|
+
m instanceof t.util.ByteBuffer && (B = m, m = {}), m = m || {}, m.output = B, m.iv = h, s.call(v, m);
|
|
2266
2281
|
}, v;
|
|
2267
2282
|
}
|
|
2268
2283
|
return lr;
|
|
@@ -2271,7 +2286,7 @@ var ur = { exports: {} }, cr = { exports: {} }, fr = { exports: {} }, sa;
|
|
|
2271
2286
|
function wt() {
|
|
2272
2287
|
if (sa) return fr.exports;
|
|
2273
2288
|
sa = 1;
|
|
2274
|
-
var t =
|
|
2289
|
+
var t = he();
|
|
2275
2290
|
t.pki = t.pki || {};
|
|
2276
2291
|
var e = fr.exports = t.pki.oids = t.oids = t.oids || {};
|
|
2277
2292
|
function a(I, S) {
|
|
@@ -2286,7 +2301,7 @@ var oa;
|
|
|
2286
2301
|
function yt() {
|
|
2287
2302
|
if (oa) return cr.exports;
|
|
2288
2303
|
oa = 1;
|
|
2289
|
-
var t =
|
|
2304
|
+
var t = he();
|
|
2290
2305
|
ve(), wt();
|
|
2291
2306
|
var e = cr.exports = t.asn1 = t.asn1 || {};
|
|
2292
2307
|
e.Class = {
|
|
@@ -2420,8 +2435,8 @@ function yt() {
|
|
|
2420
2435
|
}
|
|
2421
2436
|
y = r;
|
|
2422
2437
|
}
|
|
2423
|
-
var v, s,
|
|
2424
|
-
if (
|
|
2438
|
+
var v, s, h = (U & 32) === 32;
|
|
2439
|
+
if (h)
|
|
2425
2440
|
if (v = [], y === void 0)
|
|
2426
2441
|
for (; ; ) {
|
|
2427
2442
|
if (a(p, r, 2), p.bytes(2) === "\0\0") {
|
|
@@ -2467,7 +2482,7 @@ function yt() {
|
|
|
2467
2482
|
var V = s === void 0 ? null : {
|
|
2468
2483
|
bitStringContents: s
|
|
2469
2484
|
};
|
|
2470
|
-
return e.create(E, u,
|
|
2485
|
+
return e.create(E, u, h, v, V);
|
|
2471
2486
|
}
|
|
2472
2487
|
e.toDer = function(p) {
|
|
2473
2488
|
var r = t.util.createBuffer(), g = p.tagClass | p.type, l = t.util.createBuffer(), b = !1;
|
|
@@ -2525,17 +2540,17 @@ function yt() {
|
|
|
2525
2540
|
y !== "+" && y !== "-" && (u = parseInt(p.substr(10, 2), 10), C += 2);
|
|
2526
2541
|
}
|
|
2527
2542
|
if (r.setUTCFullYear(g, l, b), r.setUTCHours(U, E, u, 0), C && (y = p.charAt(C), y === "+" || y === "-")) {
|
|
2528
|
-
var v = parseInt(p.substr(C + 1, 2), 10), s = parseInt(p.substr(C + 4, 2), 10),
|
|
2529
|
-
|
|
2543
|
+
var v = parseInt(p.substr(C + 1, 2), 10), s = parseInt(p.substr(C + 4, 2), 10), h = v * 60 + s;
|
|
2544
|
+
h *= 6e4, y === "+" ? r.setTime(+r - h) : r.setTime(+r + h);
|
|
2530
2545
|
}
|
|
2531
2546
|
return r;
|
|
2532
2547
|
}, e.generalizedTimeToDate = function(p) {
|
|
2533
2548
|
var r = /* @__PURE__ */ new Date(), g = parseInt(p.substr(0, 4), 10), l = parseInt(p.substr(4, 2), 10) - 1, b = parseInt(p.substr(6, 2), 10), U = parseInt(p.substr(8, 2), 10), E = parseInt(p.substr(10, 2), 10), u = parseInt(p.substr(12, 2), 10), y = 0, C = 0, v = !1;
|
|
2534
2549
|
p.charAt(p.length - 1) === "Z" && (v = !0);
|
|
2535
|
-
var s = p.length - 5,
|
|
2536
|
-
if (
|
|
2550
|
+
var s = p.length - 5, h = p.charAt(s);
|
|
2551
|
+
if (h === "+" || h === "-") {
|
|
2537
2552
|
var m = parseInt(p.substr(s + 1, 2), 10), B = parseInt(p.substr(s + 4, 2), 10);
|
|
2538
|
-
C = m * 60 + B, C *= 6e4,
|
|
2553
|
+
C = m * 60 + B, C *= 6e4, h === "+" && (C *= -1), v = !0;
|
|
2539
2554
|
}
|
|
2540
2555
|
return p.charAt(14) === "." && (y = parseFloat(p.substr(14), 10) * 1e3), v ? (r.setUTCFullYear(g, l, b), r.setUTCHours(U, E, u, y), r.setTime(+r + C)) : (r.setFullYear(g, l, b), r.setHours(U, E, u, y)), r;
|
|
2541
2556
|
}, e.dateToUtcTime = function(p) {
|
|
@@ -2729,18 +2744,18 @@ function yt() {
|
|
|
2729
2744
|
return l;
|
|
2730
2745
|
}, cr.exports;
|
|
2731
2746
|
}
|
|
2732
|
-
var pr = { exports: {} },
|
|
2747
|
+
var pr = { exports: {} }, dr, la;
|
|
2733
2748
|
function Et() {
|
|
2734
|
-
if (la) return
|
|
2749
|
+
if (la) return dr;
|
|
2735
2750
|
la = 1;
|
|
2736
|
-
var t =
|
|
2737
|
-
return
|
|
2751
|
+
var t = he();
|
|
2752
|
+
return dr = t.md = t.md || {}, t.md.algorithms = t.md.algorithms || {}, dr;
|
|
2738
2753
|
}
|
|
2739
2754
|
var ua;
|
|
2740
2755
|
function Gt() {
|
|
2741
2756
|
if (ua) return pr.exports;
|
|
2742
2757
|
ua = 1;
|
|
2743
|
-
var t =
|
|
2758
|
+
var t = he();
|
|
2744
2759
|
Et(), ve();
|
|
2745
2760
|
var e = pr.exports = t.hmac = t.hmac || {};
|
|
2746
2761
|
return e.create = function() {
|
|
@@ -2785,13 +2800,13 @@ function Gt() {
|
|
|
2785
2800
|
}, p.digest = p.getMac, p;
|
|
2786
2801
|
}, pr.exports;
|
|
2787
2802
|
}
|
|
2788
|
-
var
|
|
2803
|
+
var hr = { exports: {} }, ca;
|
|
2789
2804
|
function qr() {
|
|
2790
|
-
if (ca) return
|
|
2805
|
+
if (ca) return hr.exports;
|
|
2791
2806
|
ca = 1;
|
|
2792
|
-
var t =
|
|
2807
|
+
var t = he();
|
|
2793
2808
|
Et(), ve();
|
|
2794
|
-
var e =
|
|
2809
|
+
var e = hr.exports = t.md5 = t.md5 || {};
|
|
2795
2810
|
t.md.md5 = t.md.algorithms.md5 = e, e.create = function() {
|
|
2796
2811
|
p || r();
|
|
2797
2812
|
var l = null, b = t.util.createBuffer(), U = new Array(16), E = {
|
|
@@ -2827,8 +2842,8 @@ function qr() {
|
|
|
2827
2842
|
u.putBytes(b.bytes());
|
|
2828
2843
|
var y = E.fullMessageLength[E.fullMessageLength.length - 1] + E.messageLengthSize, C = y & E.blockLength - 1;
|
|
2829
2844
|
u.putBytes(a.substr(0, E.blockLength - C));
|
|
2830
|
-
for (var v, s = 0,
|
|
2831
|
-
v = E.fullMessageLength[
|
|
2845
|
+
for (var v, s = 0, h = E.fullMessageLength.length - 1; h >= 0; --h)
|
|
2846
|
+
v = E.fullMessageLength[h] * 8 + s, s = v / 4294967296 >>> 0, u.putInt32Le(v >>> 0);
|
|
2832
2847
|
var m = {
|
|
2833
2848
|
h0: l.h0,
|
|
2834
2849
|
h1: l.h1,
|
|
@@ -2978,25 +2993,25 @@ function qr() {
|
|
|
2978
2993
|
p = !0;
|
|
2979
2994
|
}
|
|
2980
2995
|
function g(l, b, U) {
|
|
2981
|
-
for (var E, u, y, C, v, s,
|
|
2996
|
+
for (var E, u, y, C, v, s, h, m, B = U.length(); B >= 64; ) {
|
|
2982
2997
|
for (u = l.h0, y = l.h1, C = l.h2, v = l.h3, m = 0; m < 16; ++m)
|
|
2983
|
-
b[m] = U.getInt32Le(), s = v ^ y & (C ^ v), E = u + s + S[m] + b[m],
|
|
2998
|
+
b[m] = U.getInt32Le(), s = v ^ y & (C ^ v), E = u + s + S[m] + b[m], h = I[m], u = v, v = C, C = y, y += E << h | E >>> 32 - h;
|
|
2984
2999
|
for (; m < 32; ++m)
|
|
2985
|
-
s = C ^ v & (y ^ C), E = u + s + S[m] + b[f[m]],
|
|
3000
|
+
s = C ^ v & (y ^ C), E = u + s + S[m] + b[f[m]], h = I[m], u = v, v = C, C = y, y += E << h | E >>> 32 - h;
|
|
2986
3001
|
for (; m < 48; ++m)
|
|
2987
|
-
s = y ^ C ^ v, E = u + s + S[m] + b[f[m]],
|
|
3002
|
+
s = y ^ C ^ v, E = u + s + S[m] + b[f[m]], h = I[m], u = v, v = C, C = y, y += E << h | E >>> 32 - h;
|
|
2988
3003
|
for (; m < 64; ++m)
|
|
2989
|
-
s = C ^ (y | ~v), E = u + s + S[m] + b[f[m]],
|
|
3004
|
+
s = C ^ (y | ~v), E = u + s + S[m] + b[f[m]], h = I[m], u = v, v = C, C = y, y += E << h | E >>> 32 - h;
|
|
2990
3005
|
l.h0 = l.h0 + u | 0, l.h1 = l.h1 + y | 0, l.h2 = l.h2 + C | 0, l.h3 = l.h3 + v | 0, B -= 64;
|
|
2991
3006
|
}
|
|
2992
3007
|
}
|
|
2993
|
-
return
|
|
3008
|
+
return hr.exports;
|
|
2994
3009
|
}
|
|
2995
3010
|
var gr = { exports: {} }, fa;
|
|
2996
3011
|
function Vt() {
|
|
2997
3012
|
if (fa) return gr.exports;
|
|
2998
3013
|
fa = 1;
|
|
2999
|
-
var t =
|
|
3014
|
+
var t = he();
|
|
3000
3015
|
ve();
|
|
3001
3016
|
var e = gr.exports = t.pem = t.pem || {};
|
|
3002
3017
|
e.encode = function(I, S) {
|
|
@@ -3034,15 +3049,15 @@ function Vt() {
|
|
|
3034
3049
|
y += v, u = C;
|
|
3035
3050
|
}
|
|
3036
3051
|
if (l = y.match(r), l) {
|
|
3037
|
-
for (var s = { name: l[1], values: [] },
|
|
3038
|
-
s.values.push(f(
|
|
3052
|
+
for (var s = { name: l[1], values: [] }, h = l[2].split(","), m = 0; m < h.length; ++m)
|
|
3053
|
+
s.values.push(f(h[m]));
|
|
3039
3054
|
if (U.procType)
|
|
3040
3055
|
if (!U.contentDomain && s.name === "Content-Domain")
|
|
3041
|
-
U.contentDomain =
|
|
3056
|
+
U.contentDomain = h[0] || "";
|
|
3042
3057
|
else if (!U.dekInfo && s.name === "DEK-Info") {
|
|
3043
3058
|
if (s.values.length === 0)
|
|
3044
3059
|
throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');
|
|
3045
|
-
U.dekInfo = { algorithm:
|
|
3060
|
+
U.dekInfo = { algorithm: h[0], parameters: h[1] || null };
|
|
3046
3061
|
} else
|
|
3047
3062
|
U.headers.push(s);
|
|
3048
3063
|
else {
|
|
@@ -3050,7 +3065,7 @@ function Vt() {
|
|
|
3050
3065
|
throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');
|
|
3051
3066
|
if (s.values.length !== 2)
|
|
3052
3067
|
throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');
|
|
3053
|
-
U.procType = { version:
|
|
3068
|
+
U.procType = { version: h[0], type: h[1] };
|
|
3054
3069
|
}
|
|
3055
3070
|
}
|
|
3056
3071
|
++u;
|
|
@@ -3088,7 +3103,7 @@ var yr = { exports: {} }, vr, pa;
|
|
|
3088
3103
|
function _t() {
|
|
3089
3104
|
if (pa) return vr;
|
|
3090
3105
|
pa = 1;
|
|
3091
|
-
var t =
|
|
3106
|
+
var t = he();
|
|
3092
3107
|
zr(), Za(), ve(), vr = t.des = t.des || {}, t.des.startEncrypting = function(u, y, C, v) {
|
|
3093
3108
|
var s = E({
|
|
3094
3109
|
key: u,
|
|
@@ -3148,24 +3163,24 @@ function _t() {
|
|
|
3148
3163
|
}
|
|
3149
3164
|
var a = [16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 1024, 16843776, 16843780, 1024, 16778244, 16842756, 16777216, 4, 1028, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 1028, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 1024, 16842756, 65536, 66560, 16777220, 1024, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 1028, 66564, 16843776, 1028, 16778240, 16778240, 0, 65540, 66560, 0, 16842756], f = [-2146402272, -2147450880, 32768, 1081376, 1048576, 32, -2146435040, -2147450848, -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 1048576, 32, -2146435040, 1081344, 1048608, -2147450848, 0, -2147483648, 32768, 1081376, -2146435072, 1048608, -2147483616, 0, 1081344, 32800, -2146402304, -2146435072, 32800, 0, 1081376, -2146435040, 1048576, -2147450848, -2146435072, -2146402304, 32768, -2146435072, -2147450880, 32, -2146402272, 1081376, 32, 32768, -2147483648, 32800, -2146402304, 1048576, -2147483616, 1048608, -2147450848, -2147483616, 1048608, 1081344, 0, -2147450880, 32800, -2147483648, -2146435040, -2146402272, 1081344], I = [520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 512, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 512, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 512, 131080, 134349320, 134218240, 134217736, 512, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584], S = [8396801, 8321, 8321, 128, 8396928, 8388737, 8388609, 8193, 0, 8396800, 8396800, 8396929, 129, 0, 8388736, 8388609, 1, 8192, 8388608, 8396801, 128, 8388608, 8193, 8320, 8388737, 1, 8320, 8388736, 8192, 8396928, 8396929, 129, 8388736, 8388609, 8396800, 8396929, 129, 0, 0, 8396800, 8320, 8388736, 8388737, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 8192, 8388609, 8193, 8396928, 8388737, 8193, 8320, 8388608, 8396801, 128, 8388608, 8192, 8396928], p = [256, 34078976, 34078720, 1107296512, 524288, 256, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 256, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 256, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080], r = [536870928, 541065216, 16384, 541081616, 541065216, 16, 541081616, 4194304, 536887296, 4210704, 4194304, 536870928, 4194320, 536887296, 536870912, 16400, 0, 4194320, 536887312, 16384, 4210688, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 4210688, 541081600, 536870912, 536887296, 16, 541065232, 4210688, 541081616, 4194304, 16400, 536870928, 4194304, 536887296, 536870912, 16400, 536870928, 541081616, 4210688, 541065216, 4210704, 541081600, 0, 541065232, 16, 16384, 541065216, 4210704, 16384, 4194320, 536887312, 0, 541081600, 536870912, 4194320, 536887312], g = [2097152, 69206018, 67110914, 0, 2048, 67110914, 2099202, 69208064, 69208066, 2097152, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 2097154, 67110912, 67108866, 69206016, 69208064, 2097154, 69206016, 2048, 2050, 69208066, 2099200, 2, 67108864, 2099200, 67108864, 2099200, 2097152, 67110914, 67110914, 69206018, 69206018, 2, 2097154, 67108864, 67110912, 2097152, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 2099200, 0, 2, 69208066, 0, 2099202, 69206016, 2048, 67108866, 67110912, 2048, 2097154], l = [268439616, 4096, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 4096, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 4096, 64, 268697664, 4096, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696];
|
|
3150
3165
|
function b(u) {
|
|
3151
|
-
for (var y = [0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964], C = [0, 1, 1048576, 1048577, 67108864, 67108865, 68157440, 68157441, 256, 257, 1048832, 1048833, 67109120, 67109121, 68157696, 68157697], v = [0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272, 0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272], s = [0, 2097152, 134217728, 136314880, 8192, 2105344, 134225920, 136323072, 131072, 2228224, 134348800, 136445952, 139264, 2236416, 134356992, 136454144],
|
|
3166
|
+
for (var y = [0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964], C = [0, 1, 1048576, 1048577, 67108864, 67108865, 68157440, 68157441, 256, 257, 1048832, 1048833, 67109120, 67109121, 68157696, 68157697], v = [0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272, 0, 8, 2048, 2056, 16777216, 16777224, 16779264, 16779272], s = [0, 2097152, 134217728, 136314880, 8192, 2105344, 134225920, 136323072, 131072, 2228224, 134348800, 136445952, 139264, 2236416, 134356992, 136454144], h = [0, 262144, 16, 262160, 0, 262144, 16, 262160, 4096, 266240, 4112, 266256, 4096, 266240, 4112, 266256], m = [0, 1024, 32, 1056, 0, 1024, 32, 1056, 33554432, 33555456, 33554464, 33555488, 33554432, 33555456, 33554464, 33555488], B = [0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746, 0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746], R = [0, 65536, 2048, 67584, 536870912, 536936448, 536872960, 536938496, 131072, 196608, 133120, 198656, 537001984, 537067520, 537004032, 537069568], c = [0, 262144, 0, 262144, 2, 262146, 2, 262146, 33554432, 33816576, 33554432, 33816576, 33554434, 33816578, 33554434, 33816578], i = [0, 268435456, 8, 268435464, 0, 268435456, 8, 268435464, 1024, 268436480, 1032, 268436488, 1024, 268436480, 1032, 268436488], n = [0, 32, 0, 32, 1048576, 1048608, 1048576, 1048608, 8192, 8224, 8192, 8224, 1056768, 1056800, 1056768, 1056800], k = [0, 16777216, 512, 16777728, 2097152, 18874368, 2097664, 18874880, 67108864, 83886080, 67109376, 83886592, 69206016, 85983232, 69206528, 85983744], V = [0, 4096, 134217728, 134221824, 524288, 528384, 134742016, 134746112, 16, 4112, 134217744, 134221840, 524304, 528400, 134742032, 134746128], O = [0, 4, 256, 260, 0, 4, 256, 260, 1, 5, 257, 261, 1, 5, 257, 261], D = u.length() > 8 ? 3 : 1, x = [], F = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0], G = 0, z, Y = 0; Y < D; Y++) {
|
|
3152
3167
|
var $ = u.getInt32(), te = u.getInt32();
|
|
3153
3168
|
z = ($ >>> 4 ^ te) & 252645135, te ^= z, $ ^= z << 4, z = (te >>> -16 ^ $) & 65535, $ ^= z, te ^= z << -16, z = ($ >>> 2 ^ te) & 858993459, te ^= z, $ ^= z << 2, z = (te >>> -16 ^ $) & 65535, $ ^= z, te ^= z << -16, z = ($ >>> 1 ^ te) & 1431655765, te ^= z, $ ^= z << 1, z = (te >>> 8 ^ $) & 16711935, $ ^= z, te ^= z << 8, z = ($ >>> 1 ^ te) & 1431655765, te ^= z, $ ^= z << 1, z = $ << 8 | te >>> 20 & 240, $ = te << 24 | te << 8 & 16711680 | te >>> 8 & 65280 | te >>> 24 & 240, te = z;
|
|
3154
3169
|
for (var W = 0; W < F.length; ++W) {
|
|
3155
3170
|
F[W] ? ($ = $ << 2 | $ >>> 26, te = te << 2 | te >>> 26) : ($ = $ << 1 | $ >>> 27, te = te << 1 | te >>> 27), $ &= -15, te &= -15;
|
|
3156
|
-
var le = y[$ >>> 28] | C[$ >>> 24 & 15] | v[$ >>> 20 & 15] | s[$ >>> 16 & 15] |
|
|
3171
|
+
var le = y[$ >>> 28] | C[$ >>> 24 & 15] | v[$ >>> 20 & 15] | s[$ >>> 16 & 15] | h[$ >>> 12 & 15] | m[$ >>> 8 & 15] | B[$ >>> 4 & 15], ge = R[te >>> 28] | c[te >>> 24 & 15] | i[te >>> 20 & 15] | n[te >>> 16 & 15] | k[te >>> 12 & 15] | V[te >>> 8 & 15] | O[te >>> 4 & 15];
|
|
3157
3172
|
z = (ge >>> 16 ^ le) & 65535, x[G++] = le ^ z, x[G++] = ge ^ z << 16;
|
|
3158
3173
|
}
|
|
3159
3174
|
}
|
|
3160
3175
|
return x;
|
|
3161
3176
|
}
|
|
3162
3177
|
function U(u, y, C, v) {
|
|
3163
|
-
var s = u.length === 32 ? 3 : 9,
|
|
3164
|
-
s === 3 ?
|
|
3178
|
+
var s = u.length === 32 ? 3 : 9, h;
|
|
3179
|
+
s === 3 ? h = v ? [30, -2, -2] : [0, 32, 2] : h = v ? [94, 62, -2, 32, 64, 2, 30, -2, -2] : [0, 32, 2, 62, 30, -2, 64, 96, 2];
|
|
3165
3180
|
var m, B = y[0], R = y[1];
|
|
3166
3181
|
m = (B >>> 4 ^ R) & 252645135, R ^= m, B ^= m << 4, m = (B >>> 16 ^ R) & 65535, R ^= m, B ^= m << 16, m = (R >>> 2 ^ B) & 858993459, B ^= m, R ^= m << 2, m = (R >>> 8 ^ B) & 16711935, B ^= m, R ^= m << 8, m = (B >>> 1 ^ R) & 1431655765, R ^= m, B ^= m << 1, B = B << 1 | B >>> 31, R = R << 1 | R >>> 31;
|
|
3167
3182
|
for (var c = 0; c < s; c += 3) {
|
|
3168
|
-
for (var i =
|
|
3183
|
+
for (var i = h[c + 1], n = h[c + 2], k = h[c]; k != i; k += n) {
|
|
3169
3184
|
var V = R ^ u[k], O = (R >>> 4 | R << 28) ^ u[k + 1];
|
|
3170
3185
|
m = B, B = R, R = m ^ (f[V >>> 24 & 63] | S[V >>> 16 & 63] | r[V >>> 8 & 63] | l[V & 63] | a[O >>> 24 & 63] | I[O >>> 16 & 63] | p[O >>> 8 & 63] | g[O & 63]);
|
|
3171
3186
|
}
|
|
@@ -3178,9 +3193,9 @@ function _t() {
|
|
|
3178
3193
|
var y = (u.mode || "CBC").toUpperCase(), C = "DES-" + y, v;
|
|
3179
3194
|
u.decrypt ? v = t.cipher.createDecipher(C, u.key) : v = t.cipher.createCipher(C, u.key);
|
|
3180
3195
|
var s = v.start;
|
|
3181
|
-
return v.start = function(
|
|
3196
|
+
return v.start = function(h, m) {
|
|
3182
3197
|
var B = null;
|
|
3183
|
-
m instanceof t.util.ByteBuffer && (B = m, m = {}), m = m || {}, m.output = B, m.iv =
|
|
3198
|
+
m instanceof t.util.ByteBuffer && (B = m, m = {}), m = m || {}, m.output = B, m.iv = h, s.call(v, m);
|
|
3184
3199
|
}, v;
|
|
3185
3200
|
}
|
|
3186
3201
|
return vr;
|
|
@@ -3189,11 +3204,11 @@ const us = {}, cs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineP
|
|
|
3189
3204
|
__proto__: null,
|
|
3190
3205
|
default: us
|
|
3191
3206
|
}, Symbol.toStringTag, { value: "Module" })), Qr = /* @__PURE__ */ os(cs);
|
|
3192
|
-
var mr,
|
|
3207
|
+
var mr, da;
|
|
3193
3208
|
function Jr() {
|
|
3194
|
-
if (
|
|
3195
|
-
|
|
3196
|
-
var t =
|
|
3209
|
+
if (da) return mr;
|
|
3210
|
+
da = 1;
|
|
3211
|
+
var t = he();
|
|
3197
3212
|
Gt(), Et(), ve();
|
|
3198
3213
|
var e = t.pkcs5 = t.pkcs5 || {}, a;
|
|
3199
3214
|
return t.util.isNodejs && !t.options.usePureJavaScript && (a = Qr), mr = t.pbkdf2 = e.pbkdf2 = function(f, I, S, p, r, g) {
|
|
@@ -3223,33 +3238,33 @@ function Jr() {
|
|
|
3223
3238
|
u.start(r, f);
|
|
3224
3239
|
var y = "", C, v, s;
|
|
3225
3240
|
if (!g) {
|
|
3226
|
-
for (var
|
|
3227
|
-
u.start(null, null), u.update(I), u.update(t.util.int32ToBytes(
|
|
3241
|
+
for (var h = 1; h <= U; ++h) {
|
|
3242
|
+
u.start(null, null), u.update(I), u.update(t.util.int32ToBytes(h)), C = s = u.digest().getBytes();
|
|
3228
3243
|
for (var m = 2; m <= S; ++m)
|
|
3229
3244
|
u.start(null, null), u.update(s), v = u.digest().getBytes(), C = t.util.xorBytes(C, v, l), s = v;
|
|
3230
|
-
y +=
|
|
3245
|
+
y += h < U ? C : C.substr(0, E);
|
|
3231
3246
|
}
|
|
3232
3247
|
return y;
|
|
3233
3248
|
}
|
|
3234
|
-
var
|
|
3249
|
+
var h = 1, m;
|
|
3235
3250
|
function B() {
|
|
3236
|
-
if (
|
|
3251
|
+
if (h > U)
|
|
3237
3252
|
return g(null, y);
|
|
3238
|
-
u.start(null, null), u.update(I), u.update(t.util.int32ToBytes(
|
|
3253
|
+
u.start(null, null), u.update(I), u.update(t.util.int32ToBytes(h)), C = s = u.digest().getBytes(), m = 2, R();
|
|
3239
3254
|
}
|
|
3240
3255
|
function R() {
|
|
3241
3256
|
if (m <= S)
|
|
3242
3257
|
return u.start(null, null), u.update(s), v = u.digest().getBytes(), C = t.util.xorBytes(C, v, l), s = v, ++m, t.util.setImmediate(R);
|
|
3243
|
-
y +=
|
|
3258
|
+
y += h < U ? C : C.substr(0, E), ++h, B();
|
|
3244
3259
|
}
|
|
3245
3260
|
B();
|
|
3246
3261
|
}, mr;
|
|
3247
3262
|
}
|
|
3248
|
-
var Yt = { exports: {} }, Cr = { exports: {} },
|
|
3263
|
+
var Yt = { exports: {} }, Cr = { exports: {} }, ha;
|
|
3249
3264
|
function _a() {
|
|
3250
|
-
if (
|
|
3251
|
-
|
|
3252
|
-
var t =
|
|
3265
|
+
if (ha) return Cr.exports;
|
|
3266
|
+
ha = 1;
|
|
3267
|
+
var t = he();
|
|
3253
3268
|
Et(), ve();
|
|
3254
3269
|
var e = Cr.exports = t.sha256 = t.sha256 || {};
|
|
3255
3270
|
t.md.sha256 = t.md.algorithms.sha256 = e, e.create = function() {
|
|
@@ -3294,7 +3309,7 @@ function _a() {
|
|
|
3294
3309
|
for (var y, C, v = b.fullMessageLength[0] * 8, s = 0; s < b.fullMessageLength.length - 1; ++s)
|
|
3295
3310
|
y = b.fullMessageLength[s + 1] * 8, C = y / 4294967296 >>> 0, v += C, U.putInt32(v >>> 0), v = y >>> 0;
|
|
3296
3311
|
U.putInt32(v);
|
|
3297
|
-
var
|
|
3312
|
+
var h = {
|
|
3298
3313
|
h0: r.h0,
|
|
3299
3314
|
h1: r.h1,
|
|
3300
3315
|
h2: r.h2,
|
|
@@ -3304,9 +3319,9 @@ function _a() {
|
|
|
3304
3319
|
h6: r.h6,
|
|
3305
3320
|
h7: r.h7
|
|
3306
3321
|
};
|
|
3307
|
-
p(
|
|
3322
|
+
p(h, l, U);
|
|
3308
3323
|
var m = t.util.createBuffer();
|
|
3309
|
-
return m.putInt32(
|
|
3324
|
+
return m.putInt32(h.h0), m.putInt32(h.h1), m.putInt32(h.h2), m.putInt32(h.h3), m.putInt32(h.h4), m.putInt32(h.h5), m.putInt32(h.h6), m.putInt32(h.h7), m;
|
|
3310
3325
|
}, b;
|
|
3311
3326
|
};
|
|
3312
3327
|
var a = null, f = !1, I = null;
|
|
@@ -3379,14 +3394,14 @@ function _a() {
|
|
|
3379
3394
|
], f = !0;
|
|
3380
3395
|
}
|
|
3381
3396
|
function p(r, g, l) {
|
|
3382
|
-
for (var b, U, E, u, y, C, v, s,
|
|
3397
|
+
for (var b, U, E, u, y, C, v, s, h, m, B, R, c, i, n, k = l.length(); k >= 64; ) {
|
|
3383
3398
|
for (v = 0; v < 16; ++v)
|
|
3384
3399
|
g[v] = l.getInt32();
|
|
3385
3400
|
for (; v < 64; ++v)
|
|
3386
3401
|
b = g[v - 2], b = (b >>> 17 | b << 15) ^ (b >>> 19 | b << 13) ^ b >>> 10, U = g[v - 15], U = (U >>> 7 | U << 25) ^ (U >>> 18 | U << 14) ^ U >>> 3, g[v] = b + g[v - 7] + U + g[v - 16] | 0;
|
|
3387
|
-
for (s = r.h0,
|
|
3388
|
-
u = (R >>> 6 | R << 26) ^ (R >>> 11 | R << 21) ^ (R >>> 25 | R << 7), y = i ^ R & (c ^ i), E = (s >>> 2 | s << 30) ^ (s >>> 13 | s << 19) ^ (s >>> 22 | s << 10), C = s &
|
|
3389
|
-
r.h0 = r.h0 + s | 0, r.h1 = r.h1 +
|
|
3402
|
+
for (s = r.h0, h = r.h1, m = r.h2, B = r.h3, R = r.h4, c = r.h5, i = r.h6, n = r.h7, v = 0; v < 64; ++v)
|
|
3403
|
+
u = (R >>> 6 | R << 26) ^ (R >>> 11 | R << 21) ^ (R >>> 25 | R << 7), y = i ^ R & (c ^ i), E = (s >>> 2 | s << 30) ^ (s >>> 13 | s << 19) ^ (s >>> 22 | s << 10), C = s & h | m & (s ^ h), b = n + u + y + I[v] + g[v], U = E + C, n = i, i = c, c = R, R = B + b >>> 0, B = m, m = h, h = s, s = b + U >>> 0;
|
|
3404
|
+
r.h0 = r.h0 + s | 0, r.h1 = r.h1 + h | 0, r.h2 = r.h2 + m | 0, r.h3 = r.h3 + B | 0, r.h4 = r.h4 + R | 0, r.h5 = r.h5 + c | 0, r.h6 = r.h6 + i | 0, r.h7 = r.h7 + n | 0, k -= 64;
|
|
3390
3405
|
}
|
|
3391
3406
|
}
|
|
3392
3407
|
return Cr.exports;
|
|
@@ -3395,7 +3410,7 @@ var Er = { exports: {} }, ga;
|
|
|
3395
3410
|
function $a() {
|
|
3396
3411
|
if (ga) return Er.exports;
|
|
3397
3412
|
ga = 1;
|
|
3398
|
-
var t =
|
|
3413
|
+
var t = he();
|
|
3399
3414
|
ve();
|
|
3400
3415
|
var e = null;
|
|
3401
3416
|
t.util.isNodejs && !t.options.usePureJavaScript && !process.versions["node-webkit"] && (e = Qr);
|
|
@@ -3417,27 +3432,27 @@ function $a() {
|
|
|
3417
3432
|
I.pools = p, I.pool = 0, I.generate = function(E, u) {
|
|
3418
3433
|
if (!u)
|
|
3419
3434
|
return I.generateSync(E);
|
|
3420
|
-
var y = I.plugin.cipher, C = I.plugin.increment, v = I.plugin.formatKey, s = I.plugin.formatSeed,
|
|
3435
|
+
var y = I.plugin.cipher, C = I.plugin.increment, v = I.plugin.formatKey, s = I.plugin.formatSeed, h = t.util.createBuffer();
|
|
3421
3436
|
I.key = null, m();
|
|
3422
3437
|
function m(B) {
|
|
3423
3438
|
if (B)
|
|
3424
3439
|
return u(B);
|
|
3425
|
-
if (
|
|
3426
|
-
return u(null,
|
|
3440
|
+
if (h.length() >= E)
|
|
3441
|
+
return u(null, h.getBytes(E));
|
|
3427
3442
|
if (I.generated > 1048575 && (I.key = null), I.key === null)
|
|
3428
3443
|
return t.util.nextTick(function() {
|
|
3429
3444
|
g(m);
|
|
3430
3445
|
});
|
|
3431
3446
|
var R = y(I.key, I.seed);
|
|
3432
|
-
I.generated += R.length,
|
|
3447
|
+
I.generated += R.length, h.putBytes(R), I.key = v(y(I.key, C(I.seed))), I.seed = s(y(I.key, I.seed)), t.util.setImmediate(m);
|
|
3433
3448
|
}
|
|
3434
3449
|
}, I.generateSync = function(E) {
|
|
3435
3450
|
var u = I.plugin.cipher, y = I.plugin.increment, C = I.plugin.formatKey, v = I.plugin.formatSeed;
|
|
3436
3451
|
I.key = null;
|
|
3437
3452
|
for (var s = t.util.createBuffer(); s.length() < E; ) {
|
|
3438
3453
|
I.generated > 1048575 && (I.key = null), I.key === null && l();
|
|
3439
|
-
var
|
|
3440
|
-
I.generated +=
|
|
3454
|
+
var h = u(I.key, I.seed);
|
|
3455
|
+
I.generated += h.length, s.putBytes(h), I.key = C(u(I.key, y(I.seed))), I.seed = v(u(I.key, I.seed));
|
|
3441
3456
|
}
|
|
3442
3457
|
return s.getBytes(E);
|
|
3443
3458
|
};
|
|
@@ -3475,11 +3490,11 @@ function $a() {
|
|
|
3475
3490
|
var v = t.util.createBuffer();
|
|
3476
3491
|
if (u)
|
|
3477
3492
|
for (; v.length() < E; ) {
|
|
3478
|
-
var s = Math.max(1, Math.min(E - v.length(), 65536) / 4),
|
|
3493
|
+
var s = Math.max(1, Math.min(E - v.length(), 65536) / 4), h = new Uint32Array(Math.floor(s));
|
|
3479
3494
|
try {
|
|
3480
|
-
u(
|
|
3481
|
-
for (var m = 0; m <
|
|
3482
|
-
v.putInt32(
|
|
3495
|
+
u(h);
|
|
3496
|
+
for (var m = 0; m < h.length; ++m)
|
|
3497
|
+
v.putInt32(h[m]);
|
|
3483
3498
|
} catch (n) {
|
|
3484
3499
|
if (!(typeof QuotaExceededError < "u" && n instanceof QuotaExceededError))
|
|
3485
3500
|
throw n;
|
|
@@ -3518,8 +3533,8 @@ function $a() {
|
|
|
3518
3533
|
if (E === self)
|
|
3519
3534
|
I.seedFile = function(y, C) {
|
|
3520
3535
|
function v(s) {
|
|
3521
|
-
var
|
|
3522
|
-
|
|
3536
|
+
var h = s.data;
|
|
3537
|
+
h.forge && h.forge.prng && (self.removeEventListener("message", v), C(h.forge.prng.err, h.forge.prng.bytes));
|
|
3523
3538
|
}
|
|
3524
3539
|
self.addEventListener("message", v), self.postMessage({ forge: { prng: { needed: y } } });
|
|
3525
3540
|
};
|
|
@@ -3536,10 +3551,10 @@ function $a() {
|
|
|
3536
3551
|
}, Er.exports;
|
|
3537
3552
|
}
|
|
3538
3553
|
var ya;
|
|
3539
|
-
function
|
|
3554
|
+
function dt() {
|
|
3540
3555
|
if (ya) return Yt.exports;
|
|
3541
3556
|
ya = 1;
|
|
3542
|
-
var t =
|
|
3557
|
+
var t = he();
|
|
3543
3558
|
return Nt(), _a(), $a(), ve(), (function() {
|
|
3544
3559
|
if (t.random && t.random.getBytes) {
|
|
3545
3560
|
Yt.exports = t.random;
|
|
@@ -3598,7 +3613,7 @@ var Sr, va;
|
|
|
3598
3613
|
function en() {
|
|
3599
3614
|
if (va) return Sr;
|
|
3600
3615
|
va = 1;
|
|
3601
|
-
var t =
|
|
3616
|
+
var t = he();
|
|
3602
3617
|
ve();
|
|
3603
3618
|
var e = [
|
|
3604
3619
|
217,
|
|
@@ -3888,7 +3903,7 @@ function en() {
|
|
|
3888
3903
|
for (C = 3; C >= 0; C--)
|
|
3889
3904
|
B[C] -= s[B[(C + 3) % 4] & 63];
|
|
3890
3905
|
});
|
|
3891
|
-
var
|
|
3906
|
+
var h = function(B) {
|
|
3892
3907
|
var R = [];
|
|
3893
3908
|
for (C = 0; C < 4; C++) {
|
|
3894
3909
|
var c = b.getInt16Le();
|
|
@@ -3922,7 +3937,7 @@ function en() {
|
|
|
3922
3937
|
*/
|
|
3923
3938
|
update: function(B) {
|
|
3924
3939
|
for (l || b.putBuffer(B); b.length() >= 8; )
|
|
3925
|
-
|
|
3940
|
+
h([
|
|
3926
3941
|
[5, u],
|
|
3927
3942
|
[1, y],
|
|
3928
3943
|
[6, u],
|
|
@@ -3974,7 +3989,7 @@ var br, ma;
|
|
|
3974
3989
|
function $t() {
|
|
3975
3990
|
if (ma) return br;
|
|
3976
3991
|
ma = 1;
|
|
3977
|
-
var t =
|
|
3992
|
+
var t = he();
|
|
3978
3993
|
br = t.jsbn = t.jsbn || {};
|
|
3979
3994
|
var e;
|
|
3980
3995
|
function a(A, N, P) {
|
|
@@ -4053,7 +4068,7 @@ function $t() {
|
|
|
4053
4068
|
}
|
|
4054
4069
|
P == 8 && (A[0] & 128) != 0 && (this.s = -1, X > 0 && (this.data[this.t - 1] |= (1 << this.DB - X) - 1 << X)), this.clamp(), H && a.ZERO.subTo(this, this);
|
|
4055
4070
|
}
|
|
4056
|
-
function
|
|
4071
|
+
function h() {
|
|
4057
4072
|
for (var A = this.s & this.DM; this.t > 0 && this.data[this.t - 1] == A; ) --this.t;
|
|
4058
4073
|
}
|
|
4059
4074
|
function m(A) {
|
|
@@ -4216,7 +4231,7 @@ function $t() {
|
|
|
4216
4231
|
var N = f();
|
|
4217
4232
|
return A.copyTo(N), this.reduce(N), N;
|
|
4218
4233
|
}
|
|
4219
|
-
function
|
|
4234
|
+
function de(A) {
|
|
4220
4235
|
for (; A.t <= this.mt2; )
|
|
4221
4236
|
A.data[A.t++] = 0;
|
|
4222
4237
|
for (var N = 0; N < this.m.t; ++N) {
|
|
@@ -4226,13 +4241,13 @@ function $t() {
|
|
|
4226
4241
|
}
|
|
4227
4242
|
A.clamp(), A.drShiftTo(this.m.t, A), A.compareTo(this.m) >= 0 && A.subTo(this.m, A);
|
|
4228
4243
|
}
|
|
4229
|
-
function
|
|
4244
|
+
function d(A, N) {
|
|
4230
4245
|
A.squareTo(N), this.reduce(N);
|
|
4231
4246
|
}
|
|
4232
4247
|
function L(A, N, P) {
|
|
4233
4248
|
A.multiplyTo(N, P), this.reduce(P);
|
|
4234
4249
|
}
|
|
4235
|
-
ce.prototype.convert = ee, ce.prototype.revert = Qe, ce.prototype.reduce =
|
|
4250
|
+
ce.prototype.convert = ee, ce.prototype.revert = Qe, ce.prototype.reduce = de, ce.prototype.mulTo = L, ce.prototype.sqrTo = d;
|
|
4236
4251
|
function w() {
|
|
4237
4252
|
return (this.t > 0 ? this.data[0] & 1 : this.s) == 0;
|
|
4238
4253
|
}
|
|
@@ -4251,7 +4266,7 @@ function $t() {
|
|
|
4251
4266
|
var P;
|
|
4252
4267
|
return A < 256 || N.isEven() ? P = new $(N) : P = new ce(N), this.exp(A, P);
|
|
4253
4268
|
}
|
|
4254
|
-
a.prototype.copyTo = y, a.prototype.fromInt = C, a.prototype.fromString = s, a.prototype.clamp =
|
|
4269
|
+
a.prototype.copyTo = y, a.prototype.fromInt = C, a.prototype.fromString = s, a.prototype.clamp = h, a.prototype.dlShiftTo = k, a.prototype.drShiftTo = V, a.prototype.lShiftTo = O, a.prototype.rShiftTo = D, a.prototype.subTo = x, a.prototype.multiplyTo = F, a.prototype.squareTo = G, a.prototype.divRemTo = z, a.prototype.invDigit = _, a.prototype.isEven = w, a.prototype.exp = o, a.prototype.toString = m, a.prototype.negate = B, a.prototype.abs = R, a.prototype.compareTo = c, a.prototype.bitLength = n, a.prototype.mod = Y, a.prototype.modPowInt = T, a.ZERO = v(0), a.ONE = v(1);
|
|
4255
4270
|
function M() {
|
|
4256
4271
|
var A = f();
|
|
4257
4272
|
return this.copyTo(A), A;
|
|
@@ -4374,7 +4389,7 @@ function $t() {
|
|
|
4374
4389
|
var N = f();
|
|
4375
4390
|
return A < 0 ? this.rShiftTo(-A, N) : this.lShiftTo(A, N), N;
|
|
4376
4391
|
}
|
|
4377
|
-
function
|
|
4392
|
+
function ht(A) {
|
|
4378
4393
|
var N = f();
|
|
4379
4394
|
return A < 0 ? this.lShiftTo(-A, N) : this.rShiftTo(A, N), N;
|
|
4380
4395
|
}
|
|
@@ -4477,7 +4492,7 @@ function $t() {
|
|
|
4477
4492
|
function pn(A) {
|
|
4478
4493
|
return this.exp(A, new Ae());
|
|
4479
4494
|
}
|
|
4480
|
-
function
|
|
4495
|
+
function dn(A, N, P) {
|
|
4481
4496
|
var j = Math.min(this.t + A.t, N);
|
|
4482
4497
|
for (P.s = 0, P.t = j; j > 0; ) P.data[--j] = 0;
|
|
4483
4498
|
var H;
|
|
@@ -4485,7 +4500,7 @@ function $t() {
|
|
|
4485
4500
|
for (H = Math.min(A.t, N); j < H; ++j) this.am(0, A.data[j], P, j, 0, N - j);
|
|
4486
4501
|
P.clamp();
|
|
4487
4502
|
}
|
|
4488
|
-
function
|
|
4503
|
+
function hn(A, N, P) {
|
|
4489
4504
|
--N;
|
|
4490
4505
|
var j = P.t = this.t + A.t - N;
|
|
4491
4506
|
for (P.s = 0; --j >= 0; ) P.data[j] = 0;
|
|
@@ -4618,13 +4633,13 @@ function $t() {
|
|
|
4618
4633
|
}
|
|
4619
4634
|
};
|
|
4620
4635
|
}
|
|
4621
|
-
return a.prototype.chunkSize = oe, a.prototype.toRadix = q, a.prototype.fromRadix = Z, a.prototype.fromNumber = re, a.prototype.bitwiseTo = Ie, a.prototype.changeBit = zt, a.prototype.addTo = De, a.prototype.dMultiply = Fe, a.prototype.dAddOffset = Ge, a.prototype.multiplyLowerTo =
|
|
4636
|
+
return a.prototype.chunkSize = oe, a.prototype.toRadix = q, a.prototype.fromRadix = Z, a.prototype.fromNumber = re, a.prototype.bitwiseTo = Ie, a.prototype.changeBit = zt, a.prototype.addTo = De, a.prototype.dMultiply = Fe, a.prototype.dAddOffset = Ge, a.prototype.multiplyLowerTo = dn, a.prototype.multiplyUpperTo = hn, a.prototype.modInt = bn, a.prototype.millerRabin = Tn, a.prototype.clone = M, a.prototype.intValue = K, a.prototype.byteValue = J, a.prototype.shortValue = ne, a.prototype.signum = Q, a.prototype.toByteArray = ue, a.prototype.equals = Ee, a.prototype.min = Te, a.prototype.max = Be, a.prototype.and = be, a.prototype.or = Je, a.prototype.xor = Ze, a.prototype.andNot = rt, a.prototype.not = it, a.prototype.shiftLeft = ut, a.prototype.shiftRight = ht, a.prototype.getLowestSetBit = St, a.prototype.bitCount = Rt, a.prototype.testBit = Pt, a.prototype.setBit = Re, a.prototype.clearBit = Le, a.prototype.flipBit = Ue, a.prototype.add = Ve, a.prototype.subtract = Pe, a.prototype.multiply = Ke, a.prototype.divide = Oe, a.prototype.remainder = xe, a.prototype.divideAndRemainder = Me, a.prototype.modPow = En, a.prototype.modInverse = In, a.prototype.pow = pn, a.prototype.gcd = Sn, a.prototype.isProbablePrime = Bn, br;
|
|
4622
4637
|
}
|
|
4623
4638
|
var Ir = { exports: {} }, Ar = { exports: {} }, Ca;
|
|
4624
4639
|
function jt() {
|
|
4625
4640
|
if (Ca) return Ar.exports;
|
|
4626
4641
|
Ca = 1;
|
|
4627
|
-
var t =
|
|
4642
|
+
var t = he();
|
|
4628
4643
|
Et(), ve();
|
|
4629
4644
|
var e = Ar.exports = t.sha1 = t.sha1 || {};
|
|
4630
4645
|
t.md.sha1 = t.md.algorithms.sha1 = e, e.create = function() {
|
|
@@ -4674,8 +4689,8 @@ function jt() {
|
|
|
4674
4689
|
h4: p.h4
|
|
4675
4690
|
};
|
|
4676
4691
|
S(s, g, b);
|
|
4677
|
-
var
|
|
4678
|
-
return
|
|
4692
|
+
var h = t.util.createBuffer();
|
|
4693
|
+
return h.putInt32(s.h0), h.putInt32(s.h1), h.putInt32(s.h2), h.putInt32(s.h3), h.putInt32(s.h4), h;
|
|
4679
4694
|
}, l;
|
|
4680
4695
|
};
|
|
4681
4696
|
var a = null, f = !1;
|
|
@@ -4705,8 +4720,8 @@ var Ea;
|
|
|
4705
4720
|
function tn() {
|
|
4706
4721
|
if (Ea) return Ir.exports;
|
|
4707
4722
|
Ea = 1;
|
|
4708
|
-
var t =
|
|
4709
|
-
ve(),
|
|
4723
|
+
var t = he();
|
|
4724
|
+
ve(), dt(), jt();
|
|
4710
4725
|
var e = Ir.exports = t.pkcs1 = t.pkcs1 || {};
|
|
4711
4726
|
e.encode_rsa_oaep = function(f, I, S) {
|
|
4712
4727
|
var p, r, g, l;
|
|
@@ -4726,7 +4741,7 @@ function tn() {
|
|
|
4726
4741
|
var E = new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");
|
|
4727
4742
|
throw E.seedLength = r.length, E.digestLength = g.digestLength, E;
|
|
4728
4743
|
}
|
|
4729
|
-
var
|
|
4744
|
+
var h = a(r, b - g.digestLength - 1, l), m = t.util.xorBytes(s, h, s.length), B = a(m, g.digestLength, l), R = t.util.xorBytes(r, B, r.length);
|
|
4730
4745
|
return "\0" + R + m;
|
|
4731
4746
|
}, e.decode_rsa_oaep = function(f, I, S) {
|
|
4732
4747
|
var p, r, g;
|
|
@@ -4739,15 +4754,15 @@ function tn() {
|
|
|
4739
4754
|
if (r === void 0 ? r = t.md.sha1.create() : r.start(), g || (g = r), l < 2 * r.digestLength + 2)
|
|
4740
4755
|
throw new Error("RSAES-OAEP key is too short for the hash function.");
|
|
4741
4756
|
p || (p = ""), r.update(p, "raw");
|
|
4742
|
-
for (var U = r.digest().getBytes(), E = I.charAt(0), u = I.substring(1, r.digestLength + 1), y = I.substring(1 + r.digestLength), C = a(y, r.digestLength, g), v = t.util.xorBytes(u, C, u.length), s = a(v, l - r.digestLength - 1, g),
|
|
4757
|
+
for (var U = r.digest().getBytes(), E = I.charAt(0), u = I.substring(1, r.digestLength + 1), y = I.substring(1 + r.digestLength), C = a(y, r.digestLength, g), v = t.util.xorBytes(u, C, u.length), s = a(v, l - r.digestLength - 1, g), h = t.util.xorBytes(y, s, y.length), m = h.substring(0, r.digestLength), b = E !== "\0", B = 0; B < r.digestLength; ++B)
|
|
4743
4758
|
b |= U.charAt(B) !== m.charAt(B);
|
|
4744
|
-
for (var R = 1, c = r.digestLength, i = r.digestLength; i <
|
|
4745
|
-
var n =
|
|
4759
|
+
for (var R = 1, c = r.digestLength, i = r.digestLength; i < h.length; i++) {
|
|
4760
|
+
var n = h.charCodeAt(i), k = n & 1 ^ 1, V = R ? 65534 : 0;
|
|
4746
4761
|
b |= n & V, R = R & k, c += R;
|
|
4747
4762
|
}
|
|
4748
|
-
if (b ||
|
|
4763
|
+
if (b || h.charCodeAt(c) !== 1)
|
|
4749
4764
|
throw new Error("Invalid RSAES-OAEP padding.");
|
|
4750
|
-
return
|
|
4765
|
+
return h.substring(c + 1);
|
|
4751
4766
|
};
|
|
4752
4767
|
function a(f, I, S) {
|
|
4753
4768
|
S || (S = t.md.sha1.create());
|
|
@@ -4768,8 +4783,8 @@ var Wt = { exports: {} }, Sa;
|
|
|
4768
4783
|
function rn() {
|
|
4769
4784
|
if (Sa) return Wt.exports;
|
|
4770
4785
|
Sa = 1;
|
|
4771
|
-
var t =
|
|
4772
|
-
return ve(), $t(),
|
|
4786
|
+
var t = he();
|
|
4787
|
+
return ve(), $t(), dt(), (function() {
|
|
4773
4788
|
if (t.prime) {
|
|
4774
4789
|
Wt.exports = t.prime;
|
|
4775
4790
|
return;
|
|
@@ -4785,9 +4800,9 @@ function rn() {
|
|
|
4785
4800
|
typeof C == "string" && (C = { name: C }), C.options = C.options || {};
|
|
4786
4801
|
var v = u.prng || t.random, s = {
|
|
4787
4802
|
// x is an array to fill with bytes
|
|
4788
|
-
nextBytes: function(
|
|
4789
|
-
for (var m = v.getBytesSync(
|
|
4790
|
-
|
|
4803
|
+
nextBytes: function(h) {
|
|
4804
|
+
for (var m = v.getBytesSync(h.length), B = 0; B < h.length; ++B)
|
|
4805
|
+
h[B] = m.charCodeAt(B);
|
|
4791
4806
|
}
|
|
4792
4807
|
};
|
|
4793
4808
|
if (C.name === "PRIMEINC")
|
|
@@ -4798,26 +4813,26 @@ function rn() {
|
|
|
4798
4813
|
return "workers" in y ? l(E, u, y, C) : r(E, u, y, C);
|
|
4799
4814
|
}
|
|
4800
4815
|
function r(E, u, y, C) {
|
|
4801
|
-
var v = b(E, u), s = 0,
|
|
4802
|
-
"millerRabinTests" in y && (
|
|
4816
|
+
var v = b(E, u), s = 0, h = U(v.bitLength());
|
|
4817
|
+
"millerRabinTests" in y && (h = y.millerRabinTests);
|
|
4803
4818
|
var m = 10;
|
|
4804
|
-
"maxBlockTime" in y && (m = y.maxBlockTime), g(v, E, u, s,
|
|
4819
|
+
"maxBlockTime" in y && (m = y.maxBlockTime), g(v, E, u, s, h, m, C);
|
|
4805
4820
|
}
|
|
4806
|
-
function g(E, u, y, C, v, s,
|
|
4821
|
+
function g(E, u, y, C, v, s, h) {
|
|
4807
4822
|
var m = +/* @__PURE__ */ new Date();
|
|
4808
4823
|
do {
|
|
4809
4824
|
if (E.bitLength() > u && (E = b(u, y)), E.isProbablePrime(v))
|
|
4810
|
-
return
|
|
4825
|
+
return h(null, E);
|
|
4811
4826
|
E.dAddOffset(f[C++ % 8], 0);
|
|
4812
4827
|
} while (s < 0 || +/* @__PURE__ */ new Date() - m < s);
|
|
4813
4828
|
t.util.setImmediate(function() {
|
|
4814
|
-
g(E, u, y, C, v, s,
|
|
4829
|
+
g(E, u, y, C, v, s, h);
|
|
4815
4830
|
});
|
|
4816
4831
|
}
|
|
4817
4832
|
function l(E, u, y, C) {
|
|
4818
4833
|
if (typeof Worker > "u")
|
|
4819
4834
|
return r(E, u, y, C);
|
|
4820
|
-
var v = b(E, u), s = y.workers,
|
|
4835
|
+
var v = b(E, u), s = y.workers, h = y.workLoad || 100, m = h * 30 / 8, B = y.workerScript || "forge/prime.worker.js";
|
|
4821
4836
|
if (s === -1)
|
|
4822
4837
|
return t.util.estimateCores(function(c, i) {
|
|
4823
4838
|
c && (i = 2), s = i - 1, R();
|
|
@@ -4842,7 +4857,7 @@ function rn() {
|
|
|
4842
4857
|
var x = v.toString(16);
|
|
4843
4858
|
V.target.postMessage({
|
|
4844
4859
|
hex: x,
|
|
4845
|
-
workLoad:
|
|
4860
|
+
workLoad: h
|
|
4846
4861
|
}), v.dAddOffset(m, 0);
|
|
4847
4862
|
}
|
|
4848
4863
|
}
|
|
@@ -4861,8 +4876,8 @@ var Br, ba;
|
|
|
4861
4876
|
function er() {
|
|
4862
4877
|
if (ba) return Br;
|
|
4863
4878
|
ba = 1;
|
|
4864
|
-
var t =
|
|
4865
|
-
if (yt(), $t(), wt(), tn(), rn(),
|
|
4879
|
+
var t = he();
|
|
4880
|
+
if (yt(), $t(), wt(), tn(), rn(), dt(), ve(), typeof e > "u")
|
|
4866
4881
|
var e = t.jsbn.BigInteger;
|
|
4867
4882
|
var a = t.util.isNodejs ? Qr : null, f = t.asn1, I = t.util;
|
|
4868
4883
|
t.pki = t.pki || {}, Br = t.pki.rsa = t.rsa = t.rsa || {};
|
|
@@ -5175,7 +5190,7 @@ function er() {
|
|
|
5175
5190
|
O,
|
|
5176
5191
|
i.num
|
|
5177
5192
|
), i.num.dAddOffset(31 - i.num.mod(k).byteValue(), 0), V = 0, ++i.pqState) : i.pqState === 1 ? i.num.bitLength() > G ? i.pqState = 0 : i.num.isProbablePrime(
|
|
5178
|
-
|
|
5193
|
+
h(i.num.bitLength())
|
|
5179
5194
|
) ? ++i.pqState : i.num.dAddOffset(p[V++ % 8], 0) : i.pqState === 2 ? i.pqState = i.num.subtract(e.ONE).gcd(i.e).compareTo(e.ONE) === 0 ? 3 : 0 : i.pqState === 3 && (i.pqState = 0, i.p === null ? i.p = i.num : i.q = i.num, i.p !== null && i.q !== null && ++i.state, i.num = null);
|
|
5180
5195
|
} else if (i.state === 1)
|
|
5181
5196
|
i.p.compareTo(i.q) < 0 && (i.num = i.p, i.p = i.q, i.q = i.num), ++i.state;
|
|
@@ -5690,7 +5705,7 @@ function er() {
|
|
|
5690
5705
|
(k.charCodeAt(0) === 0 && (k.charCodeAt(1) & 128) === 0 || // leading 0xFF for negative integer
|
|
5691
5706
|
k.charCodeAt(0) === 255 && (k.charCodeAt(1) & 128) === 128) ? k.substr(1) : k;
|
|
5692
5707
|
}
|
|
5693
|
-
function
|
|
5708
|
+
function h(i) {
|
|
5694
5709
|
return i <= 100 ? 27 : i <= 150 ? 18 : i <= 200 ? 15 : i <= 250 ? 12 : i <= 300 ? 9 : i <= 350 ? 8 : i <= 400 ? 7 : i <= 500 ? 6 : i <= 600 ? 5 : i <= 800 ? 4 : i <= 1250 ? 3 : 2;
|
|
5695
5710
|
}
|
|
5696
5711
|
function m(i) {
|
|
@@ -5713,8 +5728,8 @@ var Tr, Ia;
|
|
|
5713
5728
|
function an() {
|
|
5714
5729
|
if (Ia) return Tr;
|
|
5715
5730
|
Ia = 1;
|
|
5716
|
-
var t =
|
|
5717
|
-
if (Nt(), yt(), _t(), Et(), wt(), Jr(), Vt(),
|
|
5731
|
+
var t = he();
|
|
5732
|
+
if (Nt(), yt(), _t(), Et(), wt(), Jr(), Vt(), dt(), en(), er(), ve(), typeof e > "u")
|
|
5718
5733
|
var e = t.jsbn.BigInteger;
|
|
5719
5734
|
var a = t.asn1, f = t.pki = t.pki || {};
|
|
5720
5735
|
Tr = f.pbe = t.pbe = t.pbe || {};
|
|
@@ -5845,29 +5860,29 @@ function an() {
|
|
|
5845
5860
|
};
|
|
5846
5861
|
f.encryptPrivateKeyInfo = function(E, u, y) {
|
|
5847
5862
|
y = y || {}, y.saltSize = y.saltSize || 8, y.count = y.count || 2048, y.algorithm = y.algorithm || "aes128", y.prfAlgorithm = y.prfAlgorithm || "sha1";
|
|
5848
|
-
var C = t.random.getBytesSync(y.saltSize), v = y.count, s = a.integerToDer(v),
|
|
5863
|
+
var C = t.random.getBytesSync(y.saltSize), v = y.count, s = a.integerToDer(v), h, m, B;
|
|
5849
5864
|
if (y.algorithm.indexOf("aes") === 0 || y.algorithm === "des") {
|
|
5850
5865
|
var R, c, i;
|
|
5851
5866
|
switch (y.algorithm) {
|
|
5852
5867
|
case "aes128":
|
|
5853
|
-
|
|
5868
|
+
h = 16, R = 16, c = I["aes128-CBC"], i = t.aes.createEncryptionCipher;
|
|
5854
5869
|
break;
|
|
5855
5870
|
case "aes192":
|
|
5856
|
-
|
|
5871
|
+
h = 24, R = 16, c = I["aes192-CBC"], i = t.aes.createEncryptionCipher;
|
|
5857
5872
|
break;
|
|
5858
5873
|
case "aes256":
|
|
5859
|
-
|
|
5874
|
+
h = 32, R = 16, c = I["aes256-CBC"], i = t.aes.createEncryptionCipher;
|
|
5860
5875
|
break;
|
|
5861
5876
|
case "des":
|
|
5862
|
-
|
|
5877
|
+
h = 8, R = 8, c = I.desCBC, i = t.des.createEncryptionCipher;
|
|
5863
5878
|
break;
|
|
5864
5879
|
default:
|
|
5865
5880
|
var n = new Error("Cannot encrypt private key. Unknown encryption algorithm.");
|
|
5866
5881
|
throw n.algorithm = y.algorithm, n;
|
|
5867
5882
|
}
|
|
5868
|
-
var k = "hmacWith" + y.prfAlgorithm.toUpperCase(), V = b(k), O = t.pkcs5.pbkdf2(u, C, v,
|
|
5883
|
+
var k = "hmacWith" + y.prfAlgorithm.toUpperCase(), V = b(k), O = t.pkcs5.pbkdf2(u, C, v, h, V), D = t.random.getBytesSync(R), x = i(O);
|
|
5869
5884
|
x.start(D), x.update(a.toDer(E)), x.finish(), B = x.output.getBytes();
|
|
5870
|
-
var F = U(C, s,
|
|
5885
|
+
var F = U(C, s, h, k);
|
|
5871
5886
|
m = a.create(
|
|
5872
5887
|
a.Class.UNIVERSAL,
|
|
5873
5888
|
a.Type.SEQUENCE,
|
|
@@ -5911,8 +5926,8 @@ function an() {
|
|
|
5911
5926
|
]
|
|
5912
5927
|
);
|
|
5913
5928
|
} else if (y.algorithm === "3des") {
|
|
5914
|
-
|
|
5915
|
-
var G = new t.util.ByteBuffer(C), O = f.pbe.generatePkcs12Key(u, G, 1, v,
|
|
5929
|
+
h = 24;
|
|
5930
|
+
var G = new t.util.ByteBuffer(C), O = f.pbe.generatePkcs12Key(u, G, 1, v, h), D = f.pbe.generatePkcs12Key(u, G, 2, v, h), x = t.des.createEncryptionCipher(O);
|
|
5916
5931
|
x.start(D), x.update(a.toDer(E)), x.finish(), B = x.output.getBytes(), m = a.create(
|
|
5917
5932
|
a.Class.UNIVERSAL,
|
|
5918
5933
|
a.Type.SEQUENCE,
|
|
@@ -5960,7 +5975,7 @@ function an() {
|
|
|
5960
5975
|
var s = new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");
|
|
5961
5976
|
throw s.errors = v, s;
|
|
5962
5977
|
}
|
|
5963
|
-
var
|
|
5978
|
+
var h = a.derToOid(C.encryptionOid), m = f.pbe.getCipher(h, C.encryptionParams, u), B = t.util.createBuffer(C.encryptedData);
|
|
5964
5979
|
return m.update(B), m.finish() && (y = a.fromDer(m.output)), y;
|
|
5965
5980
|
}, f.encryptedPrivateKeyToPem = function(E, u) {
|
|
5966
5981
|
var y = {
|
|
@@ -5982,28 +5997,28 @@ function an() {
|
|
|
5982
5997
|
var C = f.wrapRsaPrivateKey(f.privateKeyToAsn1(E));
|
|
5983
5998
|
return C = f.encryptPrivateKeyInfo(C, u, y), f.encryptedPrivateKeyToPem(C);
|
|
5984
5999
|
}
|
|
5985
|
-
var v, s,
|
|
6000
|
+
var v, s, h, m;
|
|
5986
6001
|
switch (y.algorithm) {
|
|
5987
6002
|
case "aes128":
|
|
5988
|
-
v = "AES-128-CBC",
|
|
6003
|
+
v = "AES-128-CBC", h = 16, s = t.random.getBytesSync(16), m = t.aes.createEncryptionCipher;
|
|
5989
6004
|
break;
|
|
5990
6005
|
case "aes192":
|
|
5991
|
-
v = "AES-192-CBC",
|
|
6006
|
+
v = "AES-192-CBC", h = 24, s = t.random.getBytesSync(16), m = t.aes.createEncryptionCipher;
|
|
5992
6007
|
break;
|
|
5993
6008
|
case "aes256":
|
|
5994
|
-
v = "AES-256-CBC",
|
|
6009
|
+
v = "AES-256-CBC", h = 32, s = t.random.getBytesSync(16), m = t.aes.createEncryptionCipher;
|
|
5995
6010
|
break;
|
|
5996
6011
|
case "3des":
|
|
5997
|
-
v = "DES-EDE3-CBC",
|
|
6012
|
+
v = "DES-EDE3-CBC", h = 24, s = t.random.getBytesSync(8), m = t.des.createEncryptionCipher;
|
|
5998
6013
|
break;
|
|
5999
6014
|
case "des":
|
|
6000
|
-
v = "DES-CBC",
|
|
6015
|
+
v = "DES-CBC", h = 8, s = t.random.getBytesSync(8), m = t.des.createEncryptionCipher;
|
|
6001
6016
|
break;
|
|
6002
6017
|
default:
|
|
6003
6018
|
var B = new Error('Could not encrypt RSA private key; unsupported encryption algorithm "' + y.algorithm + '".');
|
|
6004
6019
|
throw B.algorithm = y.algorithm, B;
|
|
6005
6020
|
}
|
|
6006
|
-
var R = t.pbe.opensslDeriveBytes(u, s.substr(0, 8),
|
|
6021
|
+
var R = t.pbe.opensslDeriveBytes(u, s.substr(0, 8), h), c = m(R);
|
|
6007
6022
|
c.start(s), c.update(a.toDer(f.privateKeyToAsn1(E))), c.finish();
|
|
6008
6023
|
var i = {
|
|
6009
6024
|
type: "RSA PRIVATE KEY",
|
|
@@ -6025,35 +6040,35 @@ function an() {
|
|
|
6025
6040
|
throw v.headerType = v, v;
|
|
6026
6041
|
}
|
|
6027
6042
|
if (C.procType && C.procType.type === "ENCRYPTED") {
|
|
6028
|
-
var s,
|
|
6043
|
+
var s, h;
|
|
6029
6044
|
switch (C.dekInfo.algorithm) {
|
|
6030
6045
|
case "DES-CBC":
|
|
6031
|
-
s = 8,
|
|
6046
|
+
s = 8, h = t.des.createDecryptionCipher;
|
|
6032
6047
|
break;
|
|
6033
6048
|
case "DES-EDE3-CBC":
|
|
6034
|
-
s = 24,
|
|
6049
|
+
s = 24, h = t.des.createDecryptionCipher;
|
|
6035
6050
|
break;
|
|
6036
6051
|
case "AES-128-CBC":
|
|
6037
|
-
s = 16,
|
|
6052
|
+
s = 16, h = t.aes.createDecryptionCipher;
|
|
6038
6053
|
break;
|
|
6039
6054
|
case "AES-192-CBC":
|
|
6040
|
-
s = 24,
|
|
6055
|
+
s = 24, h = t.aes.createDecryptionCipher;
|
|
6041
6056
|
break;
|
|
6042
6057
|
case "AES-256-CBC":
|
|
6043
|
-
s = 32,
|
|
6058
|
+
s = 32, h = t.aes.createDecryptionCipher;
|
|
6044
6059
|
break;
|
|
6045
6060
|
case "RC2-40-CBC":
|
|
6046
|
-
s = 5,
|
|
6061
|
+
s = 5, h = function(i) {
|
|
6047
6062
|
return t.rc2.createDecryptionCipher(i, 40);
|
|
6048
6063
|
};
|
|
6049
6064
|
break;
|
|
6050
6065
|
case "RC2-64-CBC":
|
|
6051
|
-
s = 8,
|
|
6066
|
+
s = 8, h = function(i) {
|
|
6052
6067
|
return t.rc2.createDecryptionCipher(i, 64);
|
|
6053
6068
|
};
|
|
6054
6069
|
break;
|
|
6055
6070
|
case "RC2-128-CBC":
|
|
6056
|
-
s = 16,
|
|
6071
|
+
s = 16, h = function(i) {
|
|
6057
6072
|
return t.rc2.createDecryptionCipher(i, 128);
|
|
6058
6073
|
};
|
|
6059
6074
|
break;
|
|
@@ -6061,7 +6076,7 @@ function an() {
|
|
|
6061
6076
|
var v = new Error('Could not decrypt private key; unsupported encryption algorithm "' + C.dekInfo.algorithm + '".');
|
|
6062
6077
|
throw v.algorithm = C.dekInfo.algorithm, v;
|
|
6063
6078
|
}
|
|
6064
|
-
var m = t.util.hexToBytes(C.dekInfo.parameters), B = t.pbe.opensslDeriveBytes(u, m.substr(0, 8), s), R =
|
|
6079
|
+
var m = t.util.hexToBytes(C.dekInfo.parameters), B = t.pbe.opensslDeriveBytes(u, m.substr(0, 8), s), R = h(B);
|
|
6065
6080
|
if (R.start(m), R.update(t.util.createBuffer(C.body)), R.finish())
|
|
6066
6081
|
y = R.output.getBytes();
|
|
6067
6082
|
else
|
|
@@ -6070,7 +6085,7 @@ function an() {
|
|
|
6070
6085
|
y = C.body;
|
|
6071
6086
|
return C.type === "ENCRYPTED PRIVATE KEY" ? y = f.decryptPrivateKeyInfo(a.fromDer(y), u) : y = a.fromDer(y), y !== null && (y = f.privateKeyFromAsn1(y)), y;
|
|
6072
6087
|
}, f.pbe.generatePkcs12Key = function(E, u, y, C, v, s) {
|
|
6073
|
-
var
|
|
6088
|
+
var h, m;
|
|
6074
6089
|
if (typeof s > "u" || s === null) {
|
|
6075
6090
|
if (!("sha1" in t.md))
|
|
6076
6091
|
throw new Error('"sha1" hash algorithm unavailable.');
|
|
@@ -6101,7 +6116,7 @@ function an() {
|
|
|
6101
6116
|
for (m = 0; m < R; m++)
|
|
6102
6117
|
W.putByte($.at(m % B));
|
|
6103
6118
|
var le = Math.ceil(k / R) + Math.ceil(n / R), ge = new t.util.ByteBuffer();
|
|
6104
|
-
for (
|
|
6119
|
+
for (h = 0; h < le; h++) {
|
|
6105
6120
|
var me = new t.util.ByteBuffer(G.getBytes(R)), _ = 511;
|
|
6106
6121
|
for (m = W.length() - 1; m >= 0; m--)
|
|
6107
6122
|
_ = _ >> 8, _ += W.at(m) + me.at(m), me.setAt(m, _ & 255);
|
|
@@ -6145,7 +6160,7 @@ function an() {
|
|
|
6145
6160
|
"desCBC"
|
|
6146
6161
|
], s;
|
|
6147
6162
|
}
|
|
6148
|
-
var
|
|
6163
|
+
var h = C.kdfSalt, m = t.util.createBuffer(C.kdfIterationCount);
|
|
6149
6164
|
m = m.getInt(m.length() << 3);
|
|
6150
6165
|
var B, R;
|
|
6151
6166
|
switch (f.oids[E]) {
|
|
@@ -6165,7 +6180,7 @@ function an() {
|
|
|
6165
6180
|
B = 8, R = t.des.createDecryptionCipher;
|
|
6166
6181
|
break;
|
|
6167
6182
|
}
|
|
6168
|
-
var c = l(C.prfOid), i = t.pkcs5.pbkdf2(y,
|
|
6183
|
+
var c = l(C.prfOid), i = t.pkcs5.pbkdf2(y, h, m, B, c), n = C.encIv, k = R(i);
|
|
6169
6184
|
return k.start(n), k;
|
|
6170
6185
|
}, f.pbe.getCipherForPKCS12PBE = function(E, u, y) {
|
|
6171
6186
|
var C = {}, v = [];
|
|
@@ -6173,7 +6188,7 @@ function an() {
|
|
|
6173
6188
|
var s = new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");
|
|
6174
6189
|
throw s.errors = v, s;
|
|
6175
6190
|
}
|
|
6176
|
-
var
|
|
6191
|
+
var h = t.util.createBuffer(C.salt), m = t.util.createBuffer(C.iterations);
|
|
6177
6192
|
m = m.getInt(m.length() << 3);
|
|
6178
6193
|
var B, R, c;
|
|
6179
6194
|
switch (E) {
|
|
@@ -6190,9 +6205,9 @@ function an() {
|
|
|
6190
6205
|
var s = new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");
|
|
6191
6206
|
throw s.oid = E, s;
|
|
6192
6207
|
}
|
|
6193
|
-
var i = l(C.prfOid), n = f.pbe.generatePkcs12Key(y,
|
|
6208
|
+
var i = l(C.prfOid), n = f.pbe.generatePkcs12Key(y, h, 1, m, B, i);
|
|
6194
6209
|
i.start();
|
|
6195
|
-
var k = f.pbe.generatePkcs12Key(y,
|
|
6210
|
+
var k = f.pbe.generatePkcs12Key(y, h, 2, m, R, i);
|
|
6196
6211
|
return c(n, k);
|
|
6197
6212
|
}, f.pbe.opensslDeriveBytes = function(E, u, y, C) {
|
|
6198
6213
|
if (typeof C > "u" || C === null) {
|
|
@@ -6201,8 +6216,8 @@ function an() {
|
|
|
6201
6216
|
C = t.md.md5.create();
|
|
6202
6217
|
}
|
|
6203
6218
|
u === null && (u = "");
|
|
6204
|
-
for (var v = [g(C, E + u)], s = 16,
|
|
6205
|
-
v.push(g(C, v[
|
|
6219
|
+
for (var v = [g(C, E + u)], s = 16, h = 1; s < y; ++h, s += 16)
|
|
6220
|
+
v.push(g(C, v[h - 1] + E + u));
|
|
6206
6221
|
return v.join("").substr(0, y);
|
|
6207
6222
|
};
|
|
6208
6223
|
function g(E, u) {
|
|
@@ -6294,7 +6309,7 @@ var kr = { exports: {} }, Nr = { exports: {} }, Aa;
|
|
|
6294
6309
|
function nn() {
|
|
6295
6310
|
if (Aa) return Nr.exports;
|
|
6296
6311
|
Aa = 1;
|
|
6297
|
-
var t =
|
|
6312
|
+
var t = he();
|
|
6298
6313
|
yt(), ve();
|
|
6299
6314
|
var e = t.asn1, a = Nr.exports = t.pkcs7asn1 = t.pkcs7asn1 || {};
|
|
6300
6315
|
t.pkcs7 = t.pkcs7 || {}, t.pkcs7.asn1 = a;
|
|
@@ -6589,7 +6604,7 @@ var wr = { exports: {} }, Rr = { exports: {} }, Ba;
|
|
|
6589
6604
|
function sn() {
|
|
6590
6605
|
if (Ba) return Rr.exports;
|
|
6591
6606
|
Ba = 1;
|
|
6592
|
-
var t =
|
|
6607
|
+
var t = he();
|
|
6593
6608
|
ve(), t.mgf = t.mgf || {};
|
|
6594
6609
|
var e = Rr.exports = t.mgf.mgf1 = t.mgf1 = t.mgf1 || {};
|
|
6595
6610
|
return e.create = function(a) {
|
|
@@ -6616,15 +6631,15 @@ var Lr, Ta;
|
|
|
6616
6631
|
function fs() {
|
|
6617
6632
|
if (Ta) return Lr;
|
|
6618
6633
|
Ta = 1;
|
|
6619
|
-
var t =
|
|
6634
|
+
var t = he();
|
|
6620
6635
|
return sn(), Lr = t.mgf = t.mgf || {}, t.mgf.mgf1 = t.mgf1, Lr;
|
|
6621
6636
|
}
|
|
6622
6637
|
var Ur = { exports: {} }, ka;
|
|
6623
6638
|
function Hr() {
|
|
6624
6639
|
if (ka) return Ur.exports;
|
|
6625
6640
|
ka = 1;
|
|
6626
|
-
var t =
|
|
6627
|
-
|
|
6641
|
+
var t = he();
|
|
6642
|
+
dt(), ve();
|
|
6628
6643
|
var e = Ur.exports = t.pss = t.pss || {};
|
|
6629
6644
|
return e.create = function(a) {
|
|
6630
6645
|
arguments.length === 3 && (a = {
|
|
@@ -6652,23 +6667,23 @@ function Hr() {
|
|
|
6652
6667
|
p === null ? v = g.getBytesSync(r) : v = p.bytes();
|
|
6653
6668
|
var s = new t.util.ByteBuffer();
|
|
6654
6669
|
s.fillWithByte(0, 8), s.putBytes(C), s.putBytes(v), f.start(), f.update(s.getBytes());
|
|
6655
|
-
var
|
|
6670
|
+
var h = f.digest().getBytes(), m = new t.util.ByteBuffer();
|
|
6656
6671
|
m.fillWithByte(0, y - r - S - 2), m.putByte(1), m.putBytes(v);
|
|
6657
|
-
var B = m.getBytes(), R = y - S - 1, c = I.generate(
|
|
6672
|
+
var B = m.getBytes(), R = y - S - 1, c = I.generate(h, R), i = "";
|
|
6658
6673
|
for (E = 0; E < R; E++)
|
|
6659
6674
|
i += String.fromCharCode(B.charCodeAt(E) ^ c.charCodeAt(E));
|
|
6660
6675
|
var n = 65280 >> 8 * y - u & 255;
|
|
6661
|
-
return i = String.fromCharCode(i.charCodeAt(0) & ~n) + i.substr(1), i +
|
|
6676
|
+
return i = String.fromCharCode(i.charCodeAt(0) & ~n) + i.substr(1), i + h + "¼";
|
|
6662
6677
|
}, l.verify = function(b, U, E) {
|
|
6663
6678
|
var u, y = E - 1, C = Math.ceil(y / 8);
|
|
6664
6679
|
if (U = U.substr(-C), C < S + r + 2)
|
|
6665
6680
|
throw new Error("Inconsistent parameters to PSS signature verification.");
|
|
6666
6681
|
if (U.charCodeAt(C - 1) !== 188)
|
|
6667
6682
|
throw new Error("Encoded message does not end in 0xBC.");
|
|
6668
|
-
var v = C - S - 1, s = U.substr(0, v),
|
|
6683
|
+
var v = C - S - 1, s = U.substr(0, v), h = U.substr(v, S), m = 65280 >> 8 * C - y & 255;
|
|
6669
6684
|
if ((s.charCodeAt(0) & m) !== 0)
|
|
6670
6685
|
throw new Error("Bits beyond keysize not zero as expected.");
|
|
6671
|
-
var B = I.generate(
|
|
6686
|
+
var B = I.generate(h, v), R = "";
|
|
6672
6687
|
for (u = 0; u < v; u++)
|
|
6673
6688
|
R += String.fromCharCode(s.charCodeAt(u) ^ B.charCodeAt(u));
|
|
6674
6689
|
R = String.fromCharCode(R.charCodeAt(0) & ~m) + R.substr(1);
|
|
@@ -6681,7 +6696,7 @@ function Hr() {
|
|
|
6681
6696
|
var i = R.substr(-r), n = new t.util.ByteBuffer();
|
|
6682
6697
|
n.fillWithByte(0, 8), n.putBytes(b), n.putBytes(i), f.start(), f.update(n.getBytes());
|
|
6683
6698
|
var k = f.digest().getBytes();
|
|
6684
|
-
return
|
|
6699
|
+
return h === k;
|
|
6685
6700
|
}, l;
|
|
6686
6701
|
}, Ur.exports;
|
|
6687
6702
|
}
|
|
@@ -6689,7 +6704,7 @@ var Na;
|
|
|
6689
6704
|
function Yr() {
|
|
6690
6705
|
if (Na) return wr.exports;
|
|
6691
6706
|
Na = 1;
|
|
6692
|
-
var t =
|
|
6707
|
+
var t = he();
|
|
6693
6708
|
Nt(), yt(), _t(), Et(), fs(), wt(), Vt(), Hr(), er(), ve();
|
|
6694
6709
|
var e = t.asn1, a = wr.exports = t.pki = t.pki || {}, f = a.oids, I = {};
|
|
6695
6710
|
I.CN = f.commonName, I.commonName = "CN", I.C = f.countryName, I.countryName = "C", I.L = f.localityName, I.localityName = "L", I.ST = f.stateOrProvinceName, I.stateOrProvinceName = "ST", I.O = f.organizationName, I.organizationName = "O", I.OU = f.organizationalUnitName, I.organizationalUnitName = "OU", I.E = f.emailAddress, I.emailAddress = "E";
|
|
@@ -7760,7 +7775,7 @@ function Yr() {
|
|
|
7760
7775
|
return e.create(e.Class.UNIVERSAL, e.Type.NULL, !1, "");
|
|
7761
7776
|
}
|
|
7762
7777
|
}
|
|
7763
|
-
function
|
|
7778
|
+
function h(c) {
|
|
7764
7779
|
var i = e.create(e.Class.CONTEXT_SPECIFIC, 0, !0, []);
|
|
7765
7780
|
if (c.attributes.length === 0)
|
|
7766
7781
|
return i;
|
|
@@ -7886,7 +7901,7 @@ function Yr() {
|
|
|
7886
7901
|
// SubjectPublicKeyInfo
|
|
7887
7902
|
a.publicKeyToAsn1(c.publicKey),
|
|
7888
7903
|
// attributes
|
|
7889
|
-
|
|
7904
|
+
h(c)
|
|
7890
7905
|
]);
|
|
7891
7906
|
return i;
|
|
7892
7907
|
}, a.distinguishedNameToAsn1 = function(c) {
|
|
@@ -8124,8 +8139,8 @@ var wa;
|
|
|
8124
8139
|
function on() {
|
|
8125
8140
|
if (wa) return kr.exports;
|
|
8126
8141
|
wa = 1;
|
|
8127
|
-
var t =
|
|
8128
|
-
yt(), Gt(), wt(), nn(), an(),
|
|
8142
|
+
var t = he();
|
|
8143
|
+
yt(), Gt(), wt(), nn(), an(), dt(), er(), jt(), ve(), Yr();
|
|
8129
8144
|
var e = t.asn1, a = t.pki, f = kr.exports = t.pkcs12 = t.pkcs12 || {}, I = {
|
|
8130
8145
|
name: "ContentInfo",
|
|
8131
8146
|
tagClass: e.Class.UNIVERSAL,
|
|
@@ -8279,11 +8294,11 @@ function on() {
|
|
|
8279
8294
|
}]
|
|
8280
8295
|
}]
|
|
8281
8296
|
};
|
|
8282
|
-
function l(C, v, s,
|
|
8297
|
+
function l(C, v, s, h) {
|
|
8283
8298
|
for (var m = [], B = 0; B < C.length; B++)
|
|
8284
8299
|
for (var R = 0; R < C[B].safeBags.length; R++) {
|
|
8285
8300
|
var c = C[B].safeBags[R];
|
|
8286
|
-
if (!(
|
|
8301
|
+
if (!(h !== void 0 && c.type !== h)) {
|
|
8287
8302
|
if (v === null) {
|
|
8288
8303
|
m.push(c);
|
|
8289
8304
|
continue;
|
|
@@ -8295,13 +8310,13 @@ function on() {
|
|
|
8295
8310
|
}
|
|
8296
8311
|
f.pkcs12FromAsn1 = function(C, v, s) {
|
|
8297
8312
|
typeof v == "string" ? (s = v, v = !0) : v === void 0 && (v = !0);
|
|
8298
|
-
var
|
|
8299
|
-
if (!e.validate(C, S,
|
|
8313
|
+
var h = {}, m = [];
|
|
8314
|
+
if (!e.validate(C, S, h, m)) {
|
|
8300
8315
|
var B = new Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX.");
|
|
8301
8316
|
throw B.errors = B, B;
|
|
8302
8317
|
}
|
|
8303
8318
|
var R = {
|
|
8304
|
-
version:
|
|
8319
|
+
version: h.version.charCodeAt(0),
|
|
8305
8320
|
safeContents: [],
|
|
8306
8321
|
/**
|
|
8307
8322
|
* Gets bags with matching attributes.
|
|
@@ -8372,19 +8387,19 @@ function on() {
|
|
|
8372
8387
|
);
|
|
8373
8388
|
}
|
|
8374
8389
|
};
|
|
8375
|
-
if (
|
|
8390
|
+
if (h.version.charCodeAt(0) !== 3) {
|
|
8376
8391
|
var B = new Error("PKCS#12 PFX of version other than 3 not supported.");
|
|
8377
|
-
throw B.version =
|
|
8392
|
+
throw B.version = h.version.charCodeAt(0), B;
|
|
8378
8393
|
}
|
|
8379
|
-
if (e.derToOid(
|
|
8394
|
+
if (e.derToOid(h.contentType) !== a.oids.data) {
|
|
8380
8395
|
var B = new Error("Only PKCS#12 PFX in password integrity mode supported.");
|
|
8381
|
-
throw B.oid = e.derToOid(
|
|
8396
|
+
throw B.oid = e.derToOid(h.contentType), B;
|
|
8382
8397
|
}
|
|
8383
|
-
var c =
|
|
8398
|
+
var c = h.content.value[0];
|
|
8384
8399
|
if (c.tagClass !== e.Class.UNIVERSAL || c.type !== e.Type.OCTETSTRING)
|
|
8385
8400
|
throw new Error("PKCS#12 authSafe content data is not an OCTET STRING.");
|
|
8386
|
-
if (c = b(c),
|
|
8387
|
-
var i = null, n = 0, k = e.derToOid(
|
|
8401
|
+
if (c = b(c), h.mac) {
|
|
8402
|
+
var i = null, n = 0, k = e.derToOid(h.macAlgorithm);
|
|
8388
8403
|
switch (k) {
|
|
8389
8404
|
case a.oids.sha1:
|
|
8390
8405
|
i = t.md.sha1.create(), n = 20;
|
|
@@ -8404,7 +8419,7 @@ function on() {
|
|
|
8404
8419
|
}
|
|
8405
8420
|
if (i === null)
|
|
8406
8421
|
throw new Error("PKCS#12 uses unsupported MAC algorithm: " + k);
|
|
8407
|
-
var V = new t.util.ByteBuffer(
|
|
8422
|
+
var V = new t.util.ByteBuffer(h.macSalt), O = "macIterations" in h ? parseInt(t.util.bytesToHex(h.macIterations), 16) : 1, D = f.generateKey(
|
|
8408
8423
|
s,
|
|
8409
8424
|
V,
|
|
8410
8425
|
3,
|
|
@@ -8414,7 +8429,7 @@ function on() {
|
|
|
8414
8429
|
), x = t.hmac.create();
|
|
8415
8430
|
x.start(i, D), x.update(c.value);
|
|
8416
8431
|
var F = x.getMac();
|
|
8417
|
-
if (F.getBytes() !==
|
|
8432
|
+
if (F.getBytes() !== h.macDigest)
|
|
8418
8433
|
throw new Error("PKCS#12 MAC could not be verified. Invalid password?");
|
|
8419
8434
|
}
|
|
8420
8435
|
return U(R, c.value, v, s), R;
|
|
@@ -8427,7 +8442,7 @@ function on() {
|
|
|
8427
8442
|
}
|
|
8428
8443
|
return C;
|
|
8429
8444
|
}
|
|
8430
|
-
function U(C, v, s,
|
|
8445
|
+
function U(C, v, s, h) {
|
|
8431
8446
|
if (v = e.fromDer(v, s), v.tagClass !== e.Class.UNIVERSAL || v.type !== e.Type.SEQUENCE || v.constructed !== !0)
|
|
8432
8447
|
throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo");
|
|
8433
8448
|
for (var m = 0; m < v.value.length; m++) {
|
|
@@ -8446,25 +8461,25 @@ function on() {
|
|
|
8446
8461
|
k = b(V).value;
|
|
8447
8462
|
break;
|
|
8448
8463
|
case a.oids.encryptedData:
|
|
8449
|
-
k = E(V,
|
|
8464
|
+
k = E(V, h), n.encrypted = !0;
|
|
8450
8465
|
break;
|
|
8451
8466
|
default:
|
|
8452
8467
|
var i = new Error("Unsupported PKCS#12 contentType.");
|
|
8453
8468
|
throw i.contentType = e.derToOid(R.contentType), i;
|
|
8454
8469
|
}
|
|
8455
|
-
n.safeBags = u(k, s,
|
|
8470
|
+
n.safeBags = u(k, s, h), C.safeContents.push(n);
|
|
8456
8471
|
}
|
|
8457
8472
|
}
|
|
8458
8473
|
function E(C, v) {
|
|
8459
|
-
var s = {},
|
|
8474
|
+
var s = {}, h = [];
|
|
8460
8475
|
if (!e.validate(
|
|
8461
8476
|
C,
|
|
8462
8477
|
t.pkcs7.asn1.encryptedDataValidator,
|
|
8463
8478
|
s,
|
|
8464
|
-
|
|
8479
|
+
h
|
|
8465
8480
|
)) {
|
|
8466
8481
|
var m = new Error("Cannot read EncryptedContentInfo.");
|
|
8467
|
-
throw m.errors =
|
|
8482
|
+
throw m.errors = h, m;
|
|
8468
8483
|
}
|
|
8469
8484
|
var B = e.derToOid(s.contentType);
|
|
8470
8485
|
if (B !== a.oids.data) {
|
|
@@ -8486,7 +8501,7 @@ function on() {
|
|
|
8486
8501
|
throw new Error(
|
|
8487
8502
|
"PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag."
|
|
8488
8503
|
);
|
|
8489
|
-
for (var
|
|
8504
|
+
for (var h = [], m = 0; m < C.value.length; m++) {
|
|
8490
8505
|
var B = C.value[m], R = {}, c = [];
|
|
8491
8506
|
if (!e.validate(B, p, R, c)) {
|
|
8492
8507
|
var i = new Error("Cannot read SafeBag.");
|
|
@@ -8496,7 +8511,7 @@ function on() {
|
|
|
8496
8511
|
type: e.derToOid(R.bagId),
|
|
8497
8512
|
attributes: y(R.bagAttributes)
|
|
8498
8513
|
};
|
|
8499
|
-
|
|
8514
|
+
h.push(n);
|
|
8500
8515
|
var k, V, O = R.bagValue.value[0];
|
|
8501
8516
|
switch (n.type) {
|
|
8502
8517
|
case a.oids.pkcs8ShroudedKeyBag:
|
|
@@ -8539,32 +8554,32 @@ function on() {
|
|
|
8539
8554
|
}
|
|
8540
8555
|
V();
|
|
8541
8556
|
}
|
|
8542
|
-
return
|
|
8557
|
+
return h;
|
|
8543
8558
|
}
|
|
8544
8559
|
function y(C) {
|
|
8545
8560
|
var v = {};
|
|
8546
8561
|
if (C !== void 0)
|
|
8547
8562
|
for (var s = 0; s < C.length; ++s) {
|
|
8548
|
-
var
|
|
8549
|
-
if (!e.validate(C[s], r,
|
|
8563
|
+
var h = {}, m = [];
|
|
8564
|
+
if (!e.validate(C[s], r, h, m)) {
|
|
8550
8565
|
var B = new Error("Cannot read PKCS#12 BagAttribute.");
|
|
8551
8566
|
throw B.errors = m, B;
|
|
8552
8567
|
}
|
|
8553
|
-
var R = e.derToOid(
|
|
8568
|
+
var R = e.derToOid(h.oid);
|
|
8554
8569
|
if (a.oids[R] !== void 0) {
|
|
8555
8570
|
v[a.oids[R]] = [];
|
|
8556
|
-
for (var c = 0; c <
|
|
8557
|
-
v[a.oids[R]].push(
|
|
8571
|
+
for (var c = 0; c < h.values.length; ++c)
|
|
8572
|
+
v[a.oids[R]].push(h.values[c].value);
|
|
8558
8573
|
}
|
|
8559
8574
|
}
|
|
8560
8575
|
return v;
|
|
8561
8576
|
}
|
|
8562
|
-
return f.toPkcs12Asn1 = function(C, v, s,
|
|
8563
|
-
|
|
8564
|
-
var m =
|
|
8577
|
+
return f.toPkcs12Asn1 = function(C, v, s, h) {
|
|
8578
|
+
h = h || {}, h.saltSize = h.saltSize || 8, h.count = h.count || 2048, h.algorithm = h.algorithm || h.encAlgorithm || "aes128", "useMac" in h || (h.useMac = !0), "localKeyId" in h || (h.localKeyId = null), "generateLocalKeyId" in h || (h.generateLocalKeyId = !0);
|
|
8579
|
+
var m = h.localKeyId, B;
|
|
8565
8580
|
if (m !== null)
|
|
8566
8581
|
m = t.util.hexToBytes(m);
|
|
8567
|
-
else if (
|
|
8582
|
+
else if (h.generateLocalKeyId)
|
|
8568
8583
|
if (v) {
|
|
8569
8584
|
var R = t.util.isArray(v) ? v[0] : v;
|
|
8570
8585
|
typeof R == "string" && (R = a.certificateFromPem(R));
|
|
@@ -8593,7 +8608,7 @@ function on() {
|
|
|
8593
8608
|
)
|
|
8594
8609
|
])
|
|
8595
8610
|
])
|
|
8596
|
-
), "friendlyName" in
|
|
8611
|
+
), "friendlyName" in h && i.push(
|
|
8597
8612
|
// friendlyName
|
|
8598
8613
|
e.create(e.Class.UNIVERSAL, e.Type.SEQUENCE, !0, [
|
|
8599
8614
|
// attrId
|
|
@@ -8609,7 +8624,7 @@ function on() {
|
|
|
8609
8624
|
e.Class.UNIVERSAL,
|
|
8610
8625
|
e.Type.BMPSTRING,
|
|
8611
8626
|
!1,
|
|
8612
|
-
|
|
8627
|
+
h.friendlyName
|
|
8613
8628
|
)
|
|
8614
8629
|
])
|
|
8615
8630
|
])
|
|
@@ -8712,7 +8727,7 @@ function on() {
|
|
|
8712
8727
|
// bagValue
|
|
8713
8728
|
e.create(e.Class.CONTEXT_SPECIFIC, 0, !0, [
|
|
8714
8729
|
// EncryptedPrivateKeyInfo
|
|
8715
|
-
a.encryptPrivateKeyInfo($, s,
|
|
8730
|
+
a.encryptPrivateKeyInfo($, s, h)
|
|
8716
8731
|
]),
|
|
8717
8732
|
// bagAttributes (OPTIONAL)
|
|
8718
8733
|
B
|
|
@@ -8747,10 +8762,10 @@ function on() {
|
|
|
8747
8762
|
!0,
|
|
8748
8763
|
n
|
|
8749
8764
|
), ge;
|
|
8750
|
-
if (
|
|
8765
|
+
if (h.useMac) {
|
|
8751
8766
|
var c = t.md.sha1.create(), me = new t.util.ByteBuffer(
|
|
8752
|
-
t.random.getBytes(
|
|
8753
|
-
), _ =
|
|
8767
|
+
t.random.getBytes(h.saltSize)
|
|
8768
|
+
), _ = h.count, C = f.generateKey(s, me, 3, _, 20), ce = t.hmac.create();
|
|
8754
8769
|
ce.start(c, C), ce.update(e.toDer(le).getBytes());
|
|
8755
8770
|
var ee = ce.getMac();
|
|
8756
8771
|
ge = e.create(e.Class.UNIVERSAL, e.Type.SEQUENCE, !0, [
|
|
@@ -8828,7 +8843,7 @@ var Ra;
|
|
|
8828
8843
|
function ln() {
|
|
8829
8844
|
if (Ra) return yr.exports;
|
|
8830
8845
|
Ra = 1;
|
|
8831
|
-
var t =
|
|
8846
|
+
var t = he();
|
|
8832
8847
|
yt(), wt(), an(), Vt(), Jr(), on(), Hr(), er(), ve(), Yr();
|
|
8833
8848
|
var e = t.asn1, a = yr.exports = t.pki = t.pki || {};
|
|
8834
8849
|
return a.pemToDer = function(f) {
|
|
@@ -8864,10 +8879,10 @@ var Dr, La;
|
|
|
8864
8879
|
function un() {
|
|
8865
8880
|
if (La) return Dr;
|
|
8866
8881
|
La = 1;
|
|
8867
|
-
var t =
|
|
8868
|
-
yt(), Gt(), qr(), Vt(), ln(),
|
|
8869
|
-
var e = function(
|
|
8870
|
-
var T = t.util.createBuffer(), M =
|
|
8882
|
+
var t = he();
|
|
8883
|
+
yt(), Gt(), qr(), Vt(), ln(), dt(), jt(), ve();
|
|
8884
|
+
var e = function(d, L, w, o) {
|
|
8885
|
+
var T = t.util.createBuffer(), M = d.length >> 1, K = M + (d.length & 1), J = d.substr(0, K), ne = d.substr(M, K), oe = t.util.createBuffer(), Q = t.hmac.create();
|
|
8871
8886
|
w = L + w;
|
|
8872
8887
|
var q = Math.ceil(o / 16), Z = Math.ceil(o / 20);
|
|
8873
8888
|
Q.start("MD5", J);
|
|
@@ -8885,46 +8900,46 @@ function un() {
|
|
|
8885
8900
|
Ee.getBytes(),
|
|
8886
8901
|
o
|
|
8887
8902
|
)), T;
|
|
8888
|
-
}, a = function(
|
|
8903
|
+
}, a = function(d, L, w) {
|
|
8889
8904
|
var o = t.hmac.create();
|
|
8890
|
-
o.start("SHA1",
|
|
8905
|
+
o.start("SHA1", d);
|
|
8891
8906
|
var T = t.util.createBuffer();
|
|
8892
8907
|
return T.putInt32(L[0]), T.putInt32(L[1]), T.putByte(w.type), T.putByte(w.version.major), T.putByte(w.version.minor), T.putInt16(w.length), T.putBytes(w.fragment.bytes()), o.update(T.getBytes()), o.digest().getBytes();
|
|
8893
|
-
}, f = function(
|
|
8908
|
+
}, f = function(d, L, w) {
|
|
8894
8909
|
var o = !1;
|
|
8895
8910
|
try {
|
|
8896
|
-
var T =
|
|
8911
|
+
var T = d.deflate(L.fragment.getBytes());
|
|
8897
8912
|
L.fragment = t.util.createBuffer(T), L.length = T.length, o = !0;
|
|
8898
8913
|
} catch {
|
|
8899
8914
|
}
|
|
8900
8915
|
return o;
|
|
8901
|
-
}, I = function(
|
|
8916
|
+
}, I = function(d, L, w) {
|
|
8902
8917
|
var o = !1;
|
|
8903
8918
|
try {
|
|
8904
|
-
var T =
|
|
8919
|
+
var T = d.inflate(L.fragment.getBytes());
|
|
8905
8920
|
L.fragment = t.util.createBuffer(T), L.length = T.length, o = !0;
|
|
8906
8921
|
} catch {
|
|
8907
8922
|
}
|
|
8908
8923
|
return o;
|
|
8909
|
-
}, S = function(
|
|
8924
|
+
}, S = function(d, L) {
|
|
8910
8925
|
var w = 0;
|
|
8911
8926
|
switch (L) {
|
|
8912
8927
|
case 1:
|
|
8913
|
-
w =
|
|
8928
|
+
w = d.getByte();
|
|
8914
8929
|
break;
|
|
8915
8930
|
case 2:
|
|
8916
|
-
w =
|
|
8931
|
+
w = d.getInt16();
|
|
8917
8932
|
break;
|
|
8918
8933
|
case 3:
|
|
8919
|
-
w =
|
|
8934
|
+
w = d.getInt24();
|
|
8920
8935
|
break;
|
|
8921
8936
|
case 4:
|
|
8922
|
-
w =
|
|
8937
|
+
w = d.getInt32();
|
|
8923
8938
|
break;
|
|
8924
8939
|
}
|
|
8925
|
-
return t.util.createBuffer(
|
|
8926
|
-
}, p = function(
|
|
8927
|
-
|
|
8940
|
+
return t.util.createBuffer(d.getBytes(w));
|
|
8941
|
+
}, p = function(d, L, w) {
|
|
8942
|
+
d.putInt(w.length(), L << 3), d.putBuffer(w);
|
|
8928
8943
|
}, r = {};
|
|
8929
8944
|
r.Versions = {
|
|
8930
8945
|
TLS_1_0: { major: 3, minor: 1 },
|
|
@@ -9004,19 +9019,19 @@ function un() {
|
|
|
9004
9019
|
}, r.HeartbeatMessageType = {
|
|
9005
9020
|
heartbeat_request: 1,
|
|
9006
9021
|
heartbeat_response: 2
|
|
9007
|
-
}, r.CipherSuites = {}, r.getCipherSuite = function(
|
|
9022
|
+
}, r.CipherSuites = {}, r.getCipherSuite = function(d) {
|
|
9008
9023
|
var L = null;
|
|
9009
9024
|
for (var w in r.CipherSuites) {
|
|
9010
9025
|
var o = r.CipherSuites[w];
|
|
9011
|
-
if (o.id[0] ===
|
|
9026
|
+
if (o.id[0] === d.charCodeAt(0) && o.id[1] === d.charCodeAt(1)) {
|
|
9012
9027
|
L = o;
|
|
9013
9028
|
break;
|
|
9014
9029
|
}
|
|
9015
9030
|
}
|
|
9016
9031
|
return L;
|
|
9017
|
-
}, r.handleUnexpected = function(
|
|
9018
|
-
var w = !
|
|
9019
|
-
w ||
|
|
9032
|
+
}, r.handleUnexpected = function(d, L) {
|
|
9033
|
+
var w = !d.open && d.entity === r.ConnectionEnd.client;
|
|
9034
|
+
w || d.error(d, {
|
|
9020
9035
|
message: "Unexpected message. Received TLS record out of order.",
|
|
9021
9036
|
send: !0,
|
|
9022
9037
|
alert: {
|
|
@@ -9024,15 +9039,15 @@ function un() {
|
|
|
9024
9039
|
description: r.Alert.Description.unexpected_message
|
|
9025
9040
|
}
|
|
9026
9041
|
});
|
|
9027
|
-
}, r.handleHelloRequest = function(
|
|
9028
|
-
!
|
|
9042
|
+
}, r.handleHelloRequest = function(d, L, w) {
|
|
9043
|
+
!d.handshaking && d.handshakes > 0 && (r.queue(d, r.createAlert(d, {
|
|
9029
9044
|
level: r.Alert.Level.warning,
|
|
9030
9045
|
description: r.Alert.Description.no_renegotiation
|
|
9031
|
-
})), r.flush(
|
|
9032
|
-
}, r.parseHelloMessage = function(
|
|
9033
|
-
var o = null, T =
|
|
9046
|
+
})), r.flush(d)), d.process();
|
|
9047
|
+
}, r.parseHelloMessage = function(d, L, w) {
|
|
9048
|
+
var o = null, T = d.entity === r.ConnectionEnd.client;
|
|
9034
9049
|
if (w < 38)
|
|
9035
|
-
|
|
9050
|
+
d.error(d, {
|
|
9036
9051
|
message: T ? "Invalid ServerHello message. Message too short." : "Invalid ClientHello message. Message too short.",
|
|
9037
9052
|
send: !0,
|
|
9038
9053
|
alert: {
|
|
@@ -9064,14 +9079,14 @@ function un() {
|
|
|
9064
9079
|
var q = Q.getByte();
|
|
9065
9080
|
if (q !== 0)
|
|
9066
9081
|
break;
|
|
9067
|
-
|
|
9082
|
+
d.session.extensions.server_name.serverNameList.push(
|
|
9068
9083
|
S(Q, 2).getBytes()
|
|
9069
9084
|
);
|
|
9070
9085
|
}
|
|
9071
9086
|
}
|
|
9072
9087
|
}
|
|
9073
|
-
if (
|
|
9074
|
-
return
|
|
9088
|
+
if (d.session.version && (o.version.major !== d.session.version.major || o.version.minor !== d.session.version.minor))
|
|
9089
|
+
return d.error(d, {
|
|
9075
9090
|
message: "TLS version change is disallowed during renegotiation.",
|
|
9076
9091
|
send: !0,
|
|
9077
9092
|
alert: {
|
|
@@ -9080,12 +9095,12 @@ function un() {
|
|
|
9080
9095
|
}
|
|
9081
9096
|
});
|
|
9082
9097
|
if (T)
|
|
9083
|
-
|
|
9098
|
+
d.session.cipherSuite = r.getCipherSuite(o.cipher_suite);
|
|
9084
9099
|
else
|
|
9085
|
-
for (var Z = t.util.createBuffer(o.cipher_suites.bytes()); Z.length() > 0 && (
|
|
9100
|
+
for (var Z = t.util.createBuffer(o.cipher_suites.bytes()); Z.length() > 0 && (d.session.cipherSuite = r.getCipherSuite(Z.getBytes(2)), d.session.cipherSuite === null); )
|
|
9086
9101
|
;
|
|
9087
|
-
if (
|
|
9088
|
-
return
|
|
9102
|
+
if (d.session.cipherSuite === null)
|
|
9103
|
+
return d.error(d, {
|
|
9089
9104
|
message: "No cipher suites in common.",
|
|
9090
9105
|
send: !0,
|
|
9091
9106
|
alert: {
|
|
@@ -9094,13 +9109,13 @@ function un() {
|
|
|
9094
9109
|
},
|
|
9095
9110
|
cipherSuite: t.util.bytesToHex(o.cipher_suite)
|
|
9096
9111
|
});
|
|
9097
|
-
T ?
|
|
9112
|
+
T ? d.session.compressionMethod = o.compression_method : d.session.compressionMethod = r.CompressionMethod.none;
|
|
9098
9113
|
}
|
|
9099
9114
|
return o;
|
|
9100
|
-
}, r.createSecurityParameters = function(
|
|
9101
|
-
var w =
|
|
9102
|
-
|
|
9103
|
-
entity:
|
|
9115
|
+
}, r.createSecurityParameters = function(d, L) {
|
|
9116
|
+
var w = d.entity === r.ConnectionEnd.client, o = L.random.bytes(), T = w ? d.session.sp.client_random : o, M = w ? o : r.createRandom().getBytes();
|
|
9117
|
+
d.session.sp = {
|
|
9118
|
+
entity: d.entity,
|
|
9104
9119
|
prf_algorithm: r.PRFAlgorithm.tls_prf_sha256,
|
|
9105
9120
|
bulk_cipher_algorithm: null,
|
|
9106
9121
|
cipher_type: null,
|
|
@@ -9111,19 +9126,19 @@ function un() {
|
|
|
9111
9126
|
mac_algorithm: null,
|
|
9112
9127
|
mac_length: null,
|
|
9113
9128
|
mac_key_length: null,
|
|
9114
|
-
compression_algorithm:
|
|
9129
|
+
compression_algorithm: d.session.compressionMethod,
|
|
9115
9130
|
pre_master_secret: null,
|
|
9116
9131
|
master_secret: null,
|
|
9117
9132
|
client_random: T,
|
|
9118
9133
|
server_random: M
|
|
9119
9134
|
};
|
|
9120
|
-
}, r.handleServerHello = function(
|
|
9121
|
-
var o = r.parseHelloMessage(
|
|
9122
|
-
if (!
|
|
9123
|
-
if (o.version.minor <=
|
|
9124
|
-
|
|
9135
|
+
}, r.handleServerHello = function(d, L, w) {
|
|
9136
|
+
var o = r.parseHelloMessage(d, L, w);
|
|
9137
|
+
if (!d.fail) {
|
|
9138
|
+
if (o.version.minor <= d.version.minor)
|
|
9139
|
+
d.version.minor = o.version.minor;
|
|
9125
9140
|
else
|
|
9126
|
-
return
|
|
9141
|
+
return d.error(d, {
|
|
9127
9142
|
message: "Incompatible TLS version.",
|
|
9128
9143
|
send: !0,
|
|
9129
9144
|
alert: {
|
|
@@ -9131,47 +9146,47 @@ function un() {
|
|
|
9131
9146
|
description: r.Alert.Description.protocol_version
|
|
9132
9147
|
}
|
|
9133
9148
|
});
|
|
9134
|
-
|
|
9149
|
+
d.session.version = d.version;
|
|
9135
9150
|
var T = o.session_id.bytes();
|
|
9136
|
-
T.length > 0 && T ===
|
|
9151
|
+
T.length > 0 && T === d.session.id ? (d.expect = u, d.session.resuming = !0, d.session.sp.server_random = o.random.bytes()) : (d.expect = l, d.session.resuming = !1, r.createSecurityParameters(d, o)), d.session.id = T, d.process();
|
|
9137
9152
|
}
|
|
9138
|
-
}, r.handleClientHello = function(
|
|
9139
|
-
var o = r.parseHelloMessage(
|
|
9140
|
-
if (!
|
|
9153
|
+
}, r.handleClientHello = function(d, L, w) {
|
|
9154
|
+
var o = r.parseHelloMessage(d, L, w);
|
|
9155
|
+
if (!d.fail) {
|
|
9141
9156
|
var T = o.session_id.bytes(), M = null;
|
|
9142
|
-
if (
|
|
9143
|
-
|
|
9157
|
+
if (d.sessionCache && (M = d.sessionCache.getSession(T), M === null ? T = "" : (M.version.major !== o.version.major || M.version.minor > o.version.minor) && (M = null, T = "")), T.length === 0 && (T = t.random.getBytes(32)), d.session.id = T, d.session.clientHelloVersion = o.version, d.session.sp = {}, M)
|
|
9158
|
+
d.version = d.session.version = M.version, d.session.sp = M.sp;
|
|
9144
9159
|
else {
|
|
9145
9160
|
for (var K, J = 1; J < r.SupportedVersions.length && (K = r.SupportedVersions[J], !(K.minor <= o.version.minor)); ++J)
|
|
9146
9161
|
;
|
|
9147
|
-
|
|
9162
|
+
d.version = { major: K.major, minor: K.minor }, d.session.version = d.version;
|
|
9148
9163
|
}
|
|
9149
|
-
M !== null ? (
|
|
9164
|
+
M !== null ? (d.expect = R, d.session.resuming = !0, d.session.sp.client_random = o.random.bytes()) : (d.expect = d.verifyClient !== !1 ? h : m, d.session.resuming = !1, r.createSecurityParameters(d, o)), d.open = !0, r.queue(d, r.createRecord(d, {
|
|
9150
9165
|
type: r.ContentType.handshake,
|
|
9151
|
-
data: r.createServerHello(
|
|
9152
|
-
})),
|
|
9166
|
+
data: r.createServerHello(d)
|
|
9167
|
+
})), d.session.resuming ? (r.queue(d, r.createRecord(d, {
|
|
9153
9168
|
type: r.ContentType.change_cipher_spec,
|
|
9154
9169
|
data: r.createChangeCipherSpec()
|
|
9155
|
-
})),
|
|
9170
|
+
})), d.state.pending = r.createConnectionState(d), d.state.current.write = d.state.pending.write, r.queue(d, r.createRecord(d, {
|
|
9156
9171
|
type: r.ContentType.handshake,
|
|
9157
|
-
data: r.createFinished(
|
|
9158
|
-
}))) : (r.queue(
|
|
9172
|
+
data: r.createFinished(d)
|
|
9173
|
+
}))) : (r.queue(d, r.createRecord(d, {
|
|
9159
9174
|
type: r.ContentType.handshake,
|
|
9160
|
-
data: r.createCertificate(
|
|
9161
|
-
})),
|
|
9175
|
+
data: r.createCertificate(d)
|
|
9176
|
+
})), d.fail || (r.queue(d, r.createRecord(d, {
|
|
9162
9177
|
type: r.ContentType.handshake,
|
|
9163
|
-
data: r.createServerKeyExchange(
|
|
9164
|
-
})),
|
|
9178
|
+
data: r.createServerKeyExchange(d)
|
|
9179
|
+
})), d.verifyClient !== !1 && r.queue(d, r.createRecord(d, {
|
|
9165
9180
|
type: r.ContentType.handshake,
|
|
9166
|
-
data: r.createCertificateRequest(
|
|
9167
|
-
})), r.queue(
|
|
9181
|
+
data: r.createCertificateRequest(d)
|
|
9182
|
+
})), r.queue(d, r.createRecord(d, {
|
|
9168
9183
|
type: r.ContentType.handshake,
|
|
9169
|
-
data: r.createServerHelloDone(
|
|
9170
|
-
})))), r.flush(
|
|
9184
|
+
data: r.createServerHelloDone(d)
|
|
9185
|
+
})))), r.flush(d), d.process();
|
|
9171
9186
|
}
|
|
9172
|
-
}, r.handleCertificate = function(
|
|
9187
|
+
}, r.handleCertificate = function(d, L, w) {
|
|
9173
9188
|
if (w < 3)
|
|
9174
|
-
return
|
|
9189
|
+
return d.error(d, {
|
|
9175
9190
|
message: "Invalid Certificate message. Message too short.",
|
|
9176
9191
|
send: !0,
|
|
9177
9192
|
alert: {
|
|
@@ -9186,7 +9201,7 @@ function un() {
|
|
|
9186
9201
|
for (; T.certificate_list.length() > 0; )
|
|
9187
9202
|
M = S(T.certificate_list, 3), K = t.asn1.fromDer(M), M = t.pki.certificateFromAsn1(K, !0), J.push(M);
|
|
9188
9203
|
} catch (oe) {
|
|
9189
|
-
return
|
|
9204
|
+
return d.error(d, {
|
|
9190
9205
|
message: "Could not parse certificate list.",
|
|
9191
9206
|
cause: oe,
|
|
9192
9207
|
send: !0,
|
|
@@ -9196,18 +9211,18 @@ function un() {
|
|
|
9196
9211
|
}
|
|
9197
9212
|
});
|
|
9198
9213
|
}
|
|
9199
|
-
var ne =
|
|
9200
|
-
(ne ||
|
|
9214
|
+
var ne = d.entity === r.ConnectionEnd.client;
|
|
9215
|
+
(ne || d.verifyClient === !0) && J.length === 0 ? d.error(d, {
|
|
9201
9216
|
message: ne ? "No server certificate provided." : "No client certificate provided.",
|
|
9202
9217
|
send: !0,
|
|
9203
9218
|
alert: {
|
|
9204
9219
|
level: r.Alert.Level.fatal,
|
|
9205
9220
|
description: r.Alert.Description.illegal_parameter
|
|
9206
9221
|
}
|
|
9207
|
-
}) : J.length === 0 ?
|
|
9208
|
-
}, r.handleServerKeyExchange = function(
|
|
9222
|
+
}) : J.length === 0 ? d.expect = ne ? b : m : (ne ? d.session.serverCertificate = J[0] : d.session.clientCertificate = J[0], r.verifyCertificateChain(d, J) && (d.expect = ne ? b : m)), d.process();
|
|
9223
|
+
}, r.handleServerKeyExchange = function(d, L, w) {
|
|
9209
9224
|
if (w > 0)
|
|
9210
|
-
return
|
|
9225
|
+
return d.error(d, {
|
|
9211
9226
|
message: "Invalid key parameters. Only RSA is supported.",
|
|
9212
9227
|
send: !0,
|
|
9213
9228
|
alert: {
|
|
@@ -9215,10 +9230,10 @@ function un() {
|
|
|
9215
9230
|
description: r.Alert.Description.unsupported_certificate
|
|
9216
9231
|
}
|
|
9217
9232
|
});
|
|
9218
|
-
|
|
9219
|
-
}, r.handleClientKeyExchange = function(
|
|
9233
|
+
d.expect = U, d.process();
|
|
9234
|
+
}, r.handleClientKeyExchange = function(d, L, w) {
|
|
9220
9235
|
if (w < 48)
|
|
9221
|
-
return
|
|
9236
|
+
return d.error(d, {
|
|
9222
9237
|
message: "Invalid key parameters. Only RSA is supported.",
|
|
9223
9238
|
send: !0,
|
|
9224
9239
|
alert: {
|
|
@@ -9229,11 +9244,11 @@ function un() {
|
|
|
9229
9244
|
var o = L.fragment, T = {
|
|
9230
9245
|
enc_pre_master_secret: S(o, 2).getBytes()
|
|
9231
9246
|
}, M = null;
|
|
9232
|
-
if (
|
|
9247
|
+
if (d.getPrivateKey)
|
|
9233
9248
|
try {
|
|
9234
|
-
M =
|
|
9249
|
+
M = d.getPrivateKey(d, d.session.serverCertificate), M = t.pki.privateKeyFromPem(M);
|
|
9235
9250
|
} catch (ne) {
|
|
9236
|
-
|
|
9251
|
+
d.error(d, {
|
|
9237
9252
|
message: "Could not get private key.",
|
|
9238
9253
|
cause: ne,
|
|
9239
9254
|
send: !0,
|
|
@@ -9244,7 +9259,7 @@ function un() {
|
|
|
9244
9259
|
});
|
|
9245
9260
|
}
|
|
9246
9261
|
if (M === null)
|
|
9247
|
-
return
|
|
9262
|
+
return d.error(d, {
|
|
9248
9263
|
message: "No private key set.",
|
|
9249
9264
|
send: !0,
|
|
9250
9265
|
alert: {
|
|
@@ -9253,18 +9268,18 @@ function un() {
|
|
|
9253
9268
|
}
|
|
9254
9269
|
});
|
|
9255
9270
|
try {
|
|
9256
|
-
var K =
|
|
9271
|
+
var K = d.session.sp;
|
|
9257
9272
|
K.pre_master_secret = M.decrypt(T.enc_pre_master_secret);
|
|
9258
|
-
var J =
|
|
9273
|
+
var J = d.session.clientHelloVersion;
|
|
9259
9274
|
if (J.major !== K.pre_master_secret.charCodeAt(0) || J.minor !== K.pre_master_secret.charCodeAt(1))
|
|
9260
9275
|
throw new Error("TLS version rollback attack detected.");
|
|
9261
9276
|
} catch {
|
|
9262
9277
|
K.pre_master_secret = t.random.getBytes(48);
|
|
9263
9278
|
}
|
|
9264
|
-
|
|
9265
|
-
}, r.handleCertificateRequest = function(
|
|
9279
|
+
d.expect = R, d.session.clientCertificate !== null && (d.expect = B), d.process();
|
|
9280
|
+
}, r.handleCertificateRequest = function(d, L, w) {
|
|
9266
9281
|
if (w < 3)
|
|
9267
|
-
return
|
|
9282
|
+
return d.error(d, {
|
|
9268
9283
|
message: "Invalid CertificateRequest. Message too short.",
|
|
9269
9284
|
send: !0,
|
|
9270
9285
|
alert: {
|
|
@@ -9276,10 +9291,10 @@ function un() {
|
|
|
9276
9291
|
certificate_types: S(o, 1),
|
|
9277
9292
|
certificate_authorities: S(o, 2)
|
|
9278
9293
|
};
|
|
9279
|
-
|
|
9280
|
-
}, r.handleCertificateVerify = function(
|
|
9294
|
+
d.session.certificateRequest = T, d.expect = E, d.process();
|
|
9295
|
+
}, r.handleCertificateVerify = function(d, L, w) {
|
|
9281
9296
|
if (w < 2)
|
|
9282
|
-
return
|
|
9297
|
+
return d.error(d, {
|
|
9283
9298
|
message: "Invalid CertificateVerify. Message too short.",
|
|
9284
9299
|
send: !0,
|
|
9285
9300
|
alert: {
|
|
@@ -9294,14 +9309,14 @@ function un() {
|
|
|
9294
9309
|
var M = {
|
|
9295
9310
|
signature: S(o, 2).getBytes()
|
|
9296
9311
|
}, K = t.util.createBuffer();
|
|
9297
|
-
K.putBuffer(
|
|
9312
|
+
K.putBuffer(d.session.md5.digest()), K.putBuffer(d.session.sha1.digest()), K = K.getBytes();
|
|
9298
9313
|
try {
|
|
9299
|
-
var J =
|
|
9314
|
+
var J = d.session.clientCertificate;
|
|
9300
9315
|
if (!J.publicKey.verify(K, M.signature, "NONE"))
|
|
9301
9316
|
throw new Error("CertificateVerify signature does not match.");
|
|
9302
|
-
|
|
9317
|
+
d.session.md5.update(T), d.session.sha1.update(T);
|
|
9303
9318
|
} catch {
|
|
9304
|
-
return
|
|
9319
|
+
return d.error(d, {
|
|
9305
9320
|
message: "Bad signature in CertificateVerify.",
|
|
9306
9321
|
send: !0,
|
|
9307
9322
|
alert: {
|
|
@@ -9310,10 +9325,10 @@ function un() {
|
|
|
9310
9325
|
}
|
|
9311
9326
|
});
|
|
9312
9327
|
}
|
|
9313
|
-
|
|
9314
|
-
}, r.handleServerHelloDone = function(
|
|
9328
|
+
d.expect = R, d.process();
|
|
9329
|
+
}, r.handleServerHelloDone = function(d, L, w) {
|
|
9315
9330
|
if (w > 0)
|
|
9316
|
-
return
|
|
9331
|
+
return d.error(d, {
|
|
9317
9332
|
message: "Invalid ServerHelloDone message. Invalid length.",
|
|
9318
9333
|
send: !0,
|
|
9319
9334
|
alert: {
|
|
@@ -9321,7 +9336,7 @@ function un() {
|
|
|
9321
9336
|
description: r.Alert.Description.record_overflow
|
|
9322
9337
|
}
|
|
9323
9338
|
});
|
|
9324
|
-
if (
|
|
9339
|
+
if (d.serverCertificate === null) {
|
|
9325
9340
|
var o = {
|
|
9326
9341
|
message: "No server certificate provided. Not enough security.",
|
|
9327
9342
|
send: !0,
|
|
@@ -9329,17 +9344,17 @@ function un() {
|
|
|
9329
9344
|
level: r.Alert.Level.fatal,
|
|
9330
9345
|
description: r.Alert.Description.insufficient_security
|
|
9331
9346
|
}
|
|
9332
|
-
}, T = 0, M =
|
|
9347
|
+
}, T = 0, M = d.verify(d, o.alert.description, T, []);
|
|
9333
9348
|
if (M !== !0)
|
|
9334
|
-
return (M || M === 0) && (typeof M == "object" && !t.util.isArray(M) ? (M.message && (o.message = M.message), M.alert && (o.alert.description = M.alert)) : typeof M == "number" && (o.alert.description = M)),
|
|
9349
|
+
return (M || M === 0) && (typeof M == "object" && !t.util.isArray(M) ? (M.message && (o.message = M.message), M.alert && (o.alert.description = M.alert)) : typeof M == "number" && (o.alert.description = M)), d.error(d, o);
|
|
9335
9350
|
}
|
|
9336
|
-
|
|
9351
|
+
d.session.certificateRequest !== null && (L = r.createRecord(d, {
|
|
9337
9352
|
type: r.ContentType.handshake,
|
|
9338
|
-
data: r.createCertificate(
|
|
9339
|
-
}), r.queue(
|
|
9353
|
+
data: r.createCertificate(d)
|
|
9354
|
+
}), r.queue(d, L)), L = r.createRecord(d, {
|
|
9340
9355
|
type: r.ContentType.handshake,
|
|
9341
|
-
data: r.createClientKeyExchange(
|
|
9342
|
-
}), r.queue(
|
|
9356
|
+
data: r.createClientKeyExchange(d)
|
|
9357
|
+
}), r.queue(d, L), d.expect = v;
|
|
9343
9358
|
var K = function(J, ne) {
|
|
9344
9359
|
J.session.certificateRequest !== null && J.session.clientCertificate !== null && r.queue(J, r.createRecord(J, {
|
|
9345
9360
|
type: r.ContentType.handshake,
|
|
@@ -9352,12 +9367,12 @@ function un() {
|
|
|
9352
9367
|
data: r.createFinished(J)
|
|
9353
9368
|
})), J.expect = u, r.flush(J), J.process();
|
|
9354
9369
|
};
|
|
9355
|
-
if (
|
|
9356
|
-
return K(
|
|
9357
|
-
r.getClientSignature(
|
|
9358
|
-
}, r.handleChangeCipherSpec = function(
|
|
9370
|
+
if (d.session.certificateRequest === null || d.session.clientCertificate === null)
|
|
9371
|
+
return K(d, null);
|
|
9372
|
+
r.getClientSignature(d, K);
|
|
9373
|
+
}, r.handleChangeCipherSpec = function(d, L) {
|
|
9359
9374
|
if (L.fragment.getByte() !== 1)
|
|
9360
|
-
return
|
|
9375
|
+
return d.error(d, {
|
|
9361
9376
|
message: "Invalid ChangeCipherSpec message received.",
|
|
9362
9377
|
send: !0,
|
|
9363
9378
|
alert: {
|
|
@@ -9365,18 +9380,18 @@ function un() {
|
|
|
9365
9380
|
description: r.Alert.Description.illegal_parameter
|
|
9366
9381
|
}
|
|
9367
9382
|
});
|
|
9368
|
-
var w =
|
|
9369
|
-
(
|
|
9370
|
-
}, r.handleFinished = function(
|
|
9383
|
+
var w = d.entity === r.ConnectionEnd.client;
|
|
9384
|
+
(d.session.resuming && w || !d.session.resuming && !w) && (d.state.pending = r.createConnectionState(d)), d.state.current.read = d.state.pending.read, (!d.session.resuming && w || d.session.resuming && !w) && (d.state.pending = null), d.expect = w ? y : c, d.process();
|
|
9385
|
+
}, r.handleFinished = function(d, L, w) {
|
|
9371
9386
|
var o = L.fragment;
|
|
9372
9387
|
o.read -= 4;
|
|
9373
9388
|
var T = o.bytes();
|
|
9374
9389
|
o.read += 4;
|
|
9375
9390
|
var M = L.fragment.getBytes();
|
|
9376
|
-
o = t.util.createBuffer(), o.putBuffer(
|
|
9377
|
-
var K =
|
|
9391
|
+
o = t.util.createBuffer(), o.putBuffer(d.session.md5.digest()), o.putBuffer(d.session.sha1.digest());
|
|
9392
|
+
var K = d.entity === r.ConnectionEnd.client, J = K ? "server finished" : "client finished", ne = d.session.sp, oe = 12, Q = e;
|
|
9378
9393
|
if (o = Q(ne.master_secret, J, o.getBytes(), oe), o.getBytes() !== M)
|
|
9379
|
-
return
|
|
9394
|
+
return d.error(d, {
|
|
9380
9395
|
message: "Invalid verify_data in Finished message.",
|
|
9381
9396
|
send: !0,
|
|
9382
9397
|
alert: {
|
|
@@ -9384,14 +9399,14 @@ function un() {
|
|
|
9384
9399
|
description: r.Alert.Description.decrypt_error
|
|
9385
9400
|
}
|
|
9386
9401
|
});
|
|
9387
|
-
|
|
9402
|
+
d.session.md5.update(T), d.session.sha1.update(T), (d.session.resuming && K || !d.session.resuming && !K) && (r.queue(d, r.createRecord(d, {
|
|
9388
9403
|
type: r.ContentType.change_cipher_spec,
|
|
9389
9404
|
data: r.createChangeCipherSpec()
|
|
9390
|
-
})),
|
|
9405
|
+
})), d.state.current.write = d.state.pending.write, d.state.pending = null, r.queue(d, r.createRecord(d, {
|
|
9391
9406
|
type: r.ContentType.handshake,
|
|
9392
|
-
data: r.createFinished(
|
|
9393
|
-
}))),
|
|
9394
|
-
}, r.handleAlert = function(
|
|
9407
|
+
data: r.createFinished(d)
|
|
9408
|
+
}))), d.expect = K ? C : i, d.handshaking = !1, ++d.handshakes, d.peerCertificate = K ? d.session.serverCertificate : d.session.clientCertificate, r.flush(d), d.isConnected = !0, d.connected(d), d.process();
|
|
9409
|
+
}, r.handleAlert = function(d, L) {
|
|
9395
9410
|
var w = L.fragment, o = {
|
|
9396
9411
|
level: w.getByte(),
|
|
9397
9412
|
description: w.getByte()
|
|
@@ -9471,21 +9486,21 @@ function un() {
|
|
|
9471
9486
|
break;
|
|
9472
9487
|
}
|
|
9473
9488
|
if (o.description === r.Alert.Description.close_notify)
|
|
9474
|
-
return
|
|
9475
|
-
|
|
9489
|
+
return d.close();
|
|
9490
|
+
d.error(d, {
|
|
9476
9491
|
message: T,
|
|
9477
9492
|
send: !1,
|
|
9478
9493
|
// origin is the opposite end
|
|
9479
|
-
origin:
|
|
9494
|
+
origin: d.entity === r.ConnectionEnd.client ? "server" : "client",
|
|
9480
9495
|
alert: o
|
|
9481
|
-
}),
|
|
9482
|
-
}, r.handleHandshake = function(
|
|
9496
|
+
}), d.process();
|
|
9497
|
+
}, r.handleHandshake = function(d, L) {
|
|
9483
9498
|
var w = L.fragment, o = w.getByte(), T = w.getInt24();
|
|
9484
9499
|
if (T > w.length())
|
|
9485
|
-
return
|
|
9486
|
-
|
|
9500
|
+
return d.fragmented = L, L.fragment = t.util.createBuffer(), w.read -= 4, d.process();
|
|
9501
|
+
d.fragmented = null, w.read -= 4;
|
|
9487
9502
|
var M = w.bytes(T + 4);
|
|
9488
|
-
w.read += 4, o in ge[
|
|
9503
|
+
w.read += 4, o in ge[d.entity][d.expect] ? (d.entity === r.ConnectionEnd.server && !d.open && !d.fail && (d.handshaking = !0, d.session = {
|
|
9489
9504
|
version: null,
|
|
9490
9505
|
extensions: {
|
|
9491
9506
|
server_name: {
|
|
@@ -9498,29 +9513,29 @@ function un() {
|
|
|
9498
9513
|
clientCertificate: null,
|
|
9499
9514
|
md5: t.md.md5.create(),
|
|
9500
9515
|
sha1: t.md.sha1.create()
|
|
9501
|
-
}), o !== r.HandshakeType.hello_request && o !== r.HandshakeType.certificate_verify && o !== r.HandshakeType.finished && (
|
|
9502
|
-
}, r.handleApplicationData = function(
|
|
9503
|
-
|
|
9504
|
-
}, r.handleHeartbeat = function(
|
|
9516
|
+
}), o !== r.HandshakeType.hello_request && o !== r.HandshakeType.certificate_verify && o !== r.HandshakeType.finished && (d.session.md5.update(M), d.session.sha1.update(M)), ge[d.entity][d.expect][o](d, L, T)) : r.handleUnexpected(d, L);
|
|
9517
|
+
}, r.handleApplicationData = function(d, L) {
|
|
9518
|
+
d.data.putBuffer(L.fragment), d.dataReady(d), d.process();
|
|
9519
|
+
}, r.handleHeartbeat = function(d, L) {
|
|
9505
9520
|
var w = L.fragment, o = w.getByte(), T = w.getInt16(), M = w.getBytes(T);
|
|
9506
9521
|
if (o === r.HeartbeatMessageType.heartbeat_request) {
|
|
9507
|
-
if (
|
|
9508
|
-
return
|
|
9509
|
-
r.queue(
|
|
9522
|
+
if (d.handshaking || T > M.length)
|
|
9523
|
+
return d.process();
|
|
9524
|
+
r.queue(d, r.createRecord(d, {
|
|
9510
9525
|
type: r.ContentType.heartbeat,
|
|
9511
9526
|
data: r.createHeartbeat(
|
|
9512
9527
|
r.HeartbeatMessageType.heartbeat_response,
|
|
9513
9528
|
M
|
|
9514
9529
|
)
|
|
9515
|
-
})), r.flush(
|
|
9530
|
+
})), r.flush(d);
|
|
9516
9531
|
} else if (o === r.HeartbeatMessageType.heartbeat_response) {
|
|
9517
|
-
if (M !==
|
|
9518
|
-
return
|
|
9519
|
-
|
|
9532
|
+
if (M !== d.expectedHeartbeatPayload)
|
|
9533
|
+
return d.process();
|
|
9534
|
+
d.heartbeatReceived && d.heartbeatReceived(d, t.util.createBuffer(M));
|
|
9520
9535
|
}
|
|
9521
|
-
|
|
9536
|
+
d.process();
|
|
9522
9537
|
};
|
|
9523
|
-
var g = 0, l = 1, b = 2, U = 3, E = 4, u = 5, y = 6, C = 7, v = 8, s = 0,
|
|
9538
|
+
var g = 0, l = 1, b = 2, U = 3, E = 4, u = 5, y = 6, C = 7, v = 8, s = 0, h = 1, m = 2, B = 3, R = 4, c = 5, i = 6, n = r.handleUnexpected, k = r.handleChangeCipherSpec, V = r.handleAlert, O = r.handleHandshake, D = r.handleApplicationData, x = r.handleHeartbeat, F = [];
|
|
9524
9539
|
F[r.ConnectionEnd.client] = [
|
|
9525
9540
|
// CC,AL,HS,AD,HB
|
|
9526
9541
|
/*SHE*/
|
|
@@ -9601,15 +9616,15 @@ function un() {
|
|
|
9601
9616
|
[n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n],
|
|
9602
9617
|
/*CER*/
|
|
9603
9618
|
[n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n]
|
|
9604
|
-
], r.generateKeys = function(
|
|
9619
|
+
], r.generateKeys = function(d, L) {
|
|
9605
9620
|
var w = e, o = L.client_random + L.server_random;
|
|
9606
|
-
|
|
9621
|
+
d.session.resuming || (L.master_secret = w(
|
|
9607
9622
|
L.pre_master_secret,
|
|
9608
9623
|
"master secret",
|
|
9609
9624
|
o,
|
|
9610
9625
|
48
|
|
9611
9626
|
).bytes(), L.pre_master_secret = null), o = L.server_random + L.client_random;
|
|
9612
|
-
var T = 2 * L.mac_key_length + 2 * L.enc_key_length, M =
|
|
9627
|
+
var T = 2 * L.mac_key_length + 2 * L.enc_key_length, M = d.version.major === r.Versions.TLS_1_0.major && d.version.minor === r.Versions.TLS_1_0.minor;
|
|
9613
9628
|
M && (T += 2 * L.fixed_iv_length);
|
|
9614
9629
|
var K = w(L.master_secret, "key expansion", o, T), J = {
|
|
9615
9630
|
client_write_MAC_key: K.getBytes(L.mac_key_length),
|
|
@@ -9618,8 +9633,8 @@ function un() {
|
|
|
9618
9633
|
server_write_key: K.getBytes(L.enc_key_length)
|
|
9619
9634
|
};
|
|
9620
9635
|
return M && (J.client_write_IV = K.getBytes(L.fixed_iv_length), J.server_write_IV = K.getBytes(L.fixed_iv_length)), J;
|
|
9621
|
-
}, r.createConnectionState = function(
|
|
9622
|
-
var L =
|
|
9636
|
+
}, r.createConnectionState = function(d) {
|
|
9637
|
+
var L = d.entity === r.ConnectionEnd.client, w = function() {
|
|
9623
9638
|
var M = {
|
|
9624
9639
|
// two 32-bit numbers, first is most significant
|
|
9625
9640
|
sequenceNumber: [0, 0],
|
|
@@ -9678,9 +9693,9 @@ function un() {
|
|
|
9678
9693
|
description: r.Alert.Description.internal_error
|
|
9679
9694
|
}
|
|
9680
9695
|
}), !M.fail;
|
|
9681
|
-
},
|
|
9682
|
-
var T =
|
|
9683
|
-
switch (
|
|
9696
|
+
}, d.session) {
|
|
9697
|
+
var T = d.session.sp;
|
|
9698
|
+
switch (d.session.cipherSuite.initSecurityParameters(T), T.keys = r.generateKeys(d, T), o.read.macKey = L ? T.keys.server_write_MAC_key : T.keys.client_write_MAC_key, o.write.macKey = L ? T.keys.client_write_MAC_key : T.keys.server_write_MAC_key, d.session.cipherSuite.initConnectionState(o, d, T), T.compression_algorithm) {
|
|
9684
9699
|
case r.CompressionMethod.none:
|
|
9685
9700
|
break;
|
|
9686
9701
|
case r.CompressionMethod.deflate:
|
|
@@ -9692,68 +9707,68 @@ function un() {
|
|
|
9692
9707
|
}
|
|
9693
9708
|
return o;
|
|
9694
9709
|
}, r.createRandom = function() {
|
|
9695
|
-
var
|
|
9710
|
+
var d = /* @__PURE__ */ new Date(), L = +d + d.getTimezoneOffset() * 6e4, w = t.util.createBuffer();
|
|
9696
9711
|
return w.putInt32(L), w.putBytes(t.random.getBytes(28)), w;
|
|
9697
|
-
}, r.createRecord = function(
|
|
9712
|
+
}, r.createRecord = function(d, L) {
|
|
9698
9713
|
if (!L.data)
|
|
9699
9714
|
return null;
|
|
9700
9715
|
var w = {
|
|
9701
9716
|
type: L.type,
|
|
9702
9717
|
version: {
|
|
9703
|
-
major:
|
|
9704
|
-
minor:
|
|
9718
|
+
major: d.version.major,
|
|
9719
|
+
minor: d.version.minor
|
|
9705
9720
|
},
|
|
9706
9721
|
length: L.data.length(),
|
|
9707
9722
|
fragment: L.data
|
|
9708
9723
|
};
|
|
9709
9724
|
return w;
|
|
9710
|
-
}, r.createAlert = function(
|
|
9725
|
+
}, r.createAlert = function(d, L) {
|
|
9711
9726
|
var w = t.util.createBuffer();
|
|
9712
|
-
return w.putByte(L.level), w.putByte(L.description), r.createRecord(
|
|
9727
|
+
return w.putByte(L.level), w.putByte(L.description), r.createRecord(d, {
|
|
9713
9728
|
type: r.ContentType.alert,
|
|
9714
9729
|
data: w
|
|
9715
9730
|
});
|
|
9716
|
-
}, r.createClientHello = function(
|
|
9717
|
-
|
|
9718
|
-
major:
|
|
9719
|
-
minor:
|
|
9731
|
+
}, r.createClientHello = function(d) {
|
|
9732
|
+
d.session.clientHelloVersion = {
|
|
9733
|
+
major: d.version.major,
|
|
9734
|
+
minor: d.version.minor
|
|
9720
9735
|
};
|
|
9721
|
-
for (var L = t.util.createBuffer(), w = 0; w <
|
|
9722
|
-
var o =
|
|
9736
|
+
for (var L = t.util.createBuffer(), w = 0; w < d.cipherSuites.length; ++w) {
|
|
9737
|
+
var o = d.cipherSuites[w];
|
|
9723
9738
|
L.putByte(o.id[0]), L.putByte(o.id[1]);
|
|
9724
9739
|
}
|
|
9725
9740
|
var T = L.length(), M = t.util.createBuffer();
|
|
9726
9741
|
M.putByte(r.CompressionMethod.none);
|
|
9727
9742
|
var K = M.length(), J = t.util.createBuffer();
|
|
9728
|
-
if (
|
|
9743
|
+
if (d.virtualHost) {
|
|
9729
9744
|
var ne = t.util.createBuffer();
|
|
9730
9745
|
ne.putByte(0), ne.putByte(0);
|
|
9731
9746
|
var oe = t.util.createBuffer();
|
|
9732
|
-
oe.putByte(0), p(oe, 2, t.util.createBuffer(
|
|
9747
|
+
oe.putByte(0), p(oe, 2, t.util.createBuffer(d.virtualHost));
|
|
9733
9748
|
var Q = t.util.createBuffer();
|
|
9734
9749
|
p(Q, 2, oe), p(ne, 2, Q), J.putBuffer(ne);
|
|
9735
9750
|
}
|
|
9736
9751
|
var q = J.length();
|
|
9737
9752
|
q > 0 && (q += 2);
|
|
9738
|
-
var Z =
|
|
9753
|
+
var Z = d.session.id, re = Z.length + 1 + // session ID vector
|
|
9739
9754
|
2 + // version (major + minor)
|
|
9740
9755
|
4 + 28 + // random time and random bytes
|
|
9741
9756
|
2 + T + // cipher suites vector
|
|
9742
9757
|
1 + K + // compression methods vector
|
|
9743
9758
|
q, ue = t.util.createBuffer();
|
|
9744
|
-
return ue.putByte(r.HandshakeType.client_hello), ue.putInt24(re), ue.putByte(
|
|
9745
|
-
}, r.createServerHello = function(
|
|
9746
|
-
var L =
|
|
9759
|
+
return ue.putByte(r.HandshakeType.client_hello), ue.putInt24(re), ue.putByte(d.version.major), ue.putByte(d.version.minor), ue.putBytes(d.session.sp.client_random), p(ue, 1, t.util.createBuffer(Z)), p(ue, 2, L), p(ue, 1, M), q > 0 && p(ue, 2, J), ue;
|
|
9760
|
+
}, r.createServerHello = function(d) {
|
|
9761
|
+
var L = d.session.id, w = L.length + 1 + // session ID vector
|
|
9747
9762
|
2 + // version (major + minor)
|
|
9748
9763
|
4 + 28 + // random time and random bytes
|
|
9749
9764
|
2 + // chosen cipher suite
|
|
9750
9765
|
1, o = t.util.createBuffer();
|
|
9751
|
-
return o.putByte(r.HandshakeType.server_hello), o.putInt24(w), o.putByte(
|
|
9752
|
-
}, r.createCertificate = function(
|
|
9753
|
-
var L =
|
|
9754
|
-
if (
|
|
9766
|
+
return o.putByte(r.HandshakeType.server_hello), o.putInt24(w), o.putByte(d.version.major), o.putByte(d.version.minor), o.putBytes(d.session.sp.server_random), p(o, 1, t.util.createBuffer(L)), o.putByte(d.session.cipherSuite.id[0]), o.putByte(d.session.cipherSuite.id[1]), o.putByte(d.session.compressionMethod), o;
|
|
9767
|
+
}, r.createCertificate = function(d) {
|
|
9768
|
+
var L = d.entity === r.ConnectionEnd.client, w = null;
|
|
9769
|
+
if (d.getCertificate) {
|
|
9755
9770
|
var o;
|
|
9756
|
-
L ? o =
|
|
9771
|
+
L ? o = d.session.certificateRequest : o = d.session.extensions.server_name.serverNameList, w = d.getCertificate(d, o);
|
|
9757
9772
|
}
|
|
9758
9773
|
var T = t.util.createBuffer();
|
|
9759
9774
|
if (w !== null)
|
|
@@ -9772,9 +9787,9 @@ function un() {
|
|
|
9772
9787
|
var Q = t.util.createBuffer();
|
|
9773
9788
|
p(Q, 3, oe), T.putBuffer(Q);
|
|
9774
9789
|
}
|
|
9775
|
-
w = t.pki.certificateFromAsn1(M), L ?
|
|
9790
|
+
w = t.pki.certificateFromAsn1(M), L ? d.session.clientCertificate = w : d.session.serverCertificate = w;
|
|
9776
9791
|
} catch (re) {
|
|
9777
|
-
return
|
|
9792
|
+
return d.error(d, {
|
|
9778
9793
|
message: "Could not send certificate list.",
|
|
9779
9794
|
cause: re,
|
|
9780
9795
|
send: !0,
|
|
@@ -9786,21 +9801,21 @@ function un() {
|
|
|
9786
9801
|
}
|
|
9787
9802
|
var q = 3 + T.length(), Z = t.util.createBuffer();
|
|
9788
9803
|
return Z.putByte(r.HandshakeType.certificate), Z.putInt24(q), p(Z, 3, T), Z;
|
|
9789
|
-
}, r.createClientKeyExchange = function(
|
|
9804
|
+
}, r.createClientKeyExchange = function(d) {
|
|
9790
9805
|
var L = t.util.createBuffer();
|
|
9791
|
-
L.putByte(
|
|
9792
|
-
var w =
|
|
9806
|
+
L.putByte(d.session.clientHelloVersion.major), L.putByte(d.session.clientHelloVersion.minor), L.putBytes(t.random.getBytes(46));
|
|
9807
|
+
var w = d.session.sp;
|
|
9793
9808
|
w.pre_master_secret = L.getBytes();
|
|
9794
|
-
var o =
|
|
9809
|
+
var o = d.session.serverCertificate.publicKey;
|
|
9795
9810
|
L = o.encrypt(w.pre_master_secret);
|
|
9796
9811
|
var T = L.length + 2, M = t.util.createBuffer();
|
|
9797
9812
|
return M.putByte(r.HandshakeType.client_key_exchange), M.putInt24(T), M.putInt16(L.length), M.putBytes(L), M;
|
|
9798
|
-
}, r.createServerKeyExchange = function(
|
|
9813
|
+
}, r.createServerKeyExchange = function(d) {
|
|
9799
9814
|
var L = t.util.createBuffer();
|
|
9800
9815
|
return L;
|
|
9801
|
-
}, r.getClientSignature = function(
|
|
9816
|
+
}, r.getClientSignature = function(d, L) {
|
|
9802
9817
|
var w = t.util.createBuffer();
|
|
9803
|
-
w.putBuffer(
|
|
9818
|
+
w.putBuffer(d.session.md5.digest()), w.putBuffer(d.session.sha1.digest()), w = w.getBytes(), d.getSignature = d.getSignature || function(o, T, M) {
|
|
9804
9819
|
var K = null;
|
|
9805
9820
|
if (o.getPrivateKey)
|
|
9806
9821
|
try {
|
|
@@ -9824,44 +9839,44 @@ function un() {
|
|
|
9824
9839
|
description: r.Alert.Description.internal_error
|
|
9825
9840
|
}
|
|
9826
9841
|
}) : T = K.sign(T, null), M(o, T);
|
|
9827
|
-
},
|
|
9828
|
-
}, r.createCertificateVerify = function(
|
|
9842
|
+
}, d.getSignature(d, w, L);
|
|
9843
|
+
}, r.createCertificateVerify = function(d, L) {
|
|
9829
9844
|
var w = L.length + 2, o = t.util.createBuffer();
|
|
9830
9845
|
return o.putByte(r.HandshakeType.certificate_verify), o.putInt24(w), o.putInt16(L.length), o.putBytes(L), o;
|
|
9831
|
-
}, r.createCertificateRequest = function(
|
|
9846
|
+
}, r.createCertificateRequest = function(d) {
|
|
9832
9847
|
var L = t.util.createBuffer();
|
|
9833
9848
|
L.putByte(1);
|
|
9834
9849
|
var w = t.util.createBuffer();
|
|
9835
|
-
for (var o in
|
|
9836
|
-
var T =
|
|
9850
|
+
for (var o in d.caStore.certs) {
|
|
9851
|
+
var T = d.caStore.certs[o], M = t.pki.distinguishedNameToAsn1(T.subject), K = t.asn1.toDer(M);
|
|
9837
9852
|
w.putInt16(K.length()), w.putBuffer(K);
|
|
9838
9853
|
}
|
|
9839
9854
|
var J = 1 + L.length() + 2 + w.length(), ne = t.util.createBuffer();
|
|
9840
9855
|
return ne.putByte(r.HandshakeType.certificate_request), ne.putInt24(J), p(ne, 1, L), p(ne, 2, w), ne;
|
|
9841
|
-
}, r.createServerHelloDone = function(
|
|
9856
|
+
}, r.createServerHelloDone = function(d) {
|
|
9842
9857
|
var L = t.util.createBuffer();
|
|
9843
9858
|
return L.putByte(r.HandshakeType.server_hello_done), L.putInt24(0), L;
|
|
9844
9859
|
}, r.createChangeCipherSpec = function() {
|
|
9845
|
-
var
|
|
9846
|
-
return
|
|
9847
|
-
}, r.createFinished = function(
|
|
9860
|
+
var d = t.util.createBuffer();
|
|
9861
|
+
return d.putByte(1), d;
|
|
9862
|
+
}, r.createFinished = function(d) {
|
|
9848
9863
|
var L = t.util.createBuffer();
|
|
9849
|
-
L.putBuffer(
|
|
9850
|
-
var w =
|
|
9864
|
+
L.putBuffer(d.session.md5.digest()), L.putBuffer(d.session.sha1.digest());
|
|
9865
|
+
var w = d.entity === r.ConnectionEnd.client, o = d.session.sp, T = 12, M = e, K = w ? "client finished" : "server finished";
|
|
9851
9866
|
L = M(o.master_secret, K, L.getBytes(), T);
|
|
9852
9867
|
var J = t.util.createBuffer();
|
|
9853
9868
|
return J.putByte(r.HandshakeType.finished), J.putInt24(L.length()), J.putBuffer(L), J;
|
|
9854
|
-
}, r.createHeartbeat = function(
|
|
9869
|
+
}, r.createHeartbeat = function(d, L, w) {
|
|
9855
9870
|
typeof w > "u" && (w = L.length);
|
|
9856
9871
|
var o = t.util.createBuffer();
|
|
9857
|
-
o.putByte(
|
|
9872
|
+
o.putByte(d), o.putInt16(w), o.putBytes(L);
|
|
9858
9873
|
var T = o.length(), M = Math.max(16, T - w - 3);
|
|
9859
9874
|
return o.putBytes(t.random.getBytes(M)), o;
|
|
9860
|
-
}, r.queue = function(
|
|
9875
|
+
}, r.queue = function(d, L) {
|
|
9861
9876
|
if (L && !(L.fragment.length() === 0 && (L.type === r.ContentType.handshake || L.type === r.ContentType.alert || L.type === r.ContentType.change_cipher_spec))) {
|
|
9862
9877
|
if (L.type === r.ContentType.handshake) {
|
|
9863
9878
|
var w = L.fragment.bytes();
|
|
9864
|
-
|
|
9879
|
+
d.session.md5.update(w), d.session.sha1.update(w), w = null;
|
|
9865
9880
|
}
|
|
9866
9881
|
var o;
|
|
9867
9882
|
if (L.fragment.length() <= r.MaxFragment)
|
|
@@ -9869,29 +9884,29 @@ function un() {
|
|
|
9869
9884
|
else {
|
|
9870
9885
|
o = [];
|
|
9871
9886
|
for (var T = L.fragment.bytes(); T.length > r.MaxFragment; )
|
|
9872
|
-
o.push(r.createRecord(
|
|
9887
|
+
o.push(r.createRecord(d, {
|
|
9873
9888
|
type: L.type,
|
|
9874
9889
|
data: t.util.createBuffer(T.slice(0, r.MaxFragment))
|
|
9875
9890
|
})), T = T.slice(r.MaxFragment);
|
|
9876
|
-
T.length > 0 && o.push(r.createRecord(
|
|
9891
|
+
T.length > 0 && o.push(r.createRecord(d, {
|
|
9877
9892
|
type: L.type,
|
|
9878
9893
|
data: t.util.createBuffer(T)
|
|
9879
9894
|
}));
|
|
9880
9895
|
}
|
|
9881
|
-
for (var M = 0; M < o.length && !
|
|
9882
|
-
var K = o[M], J =
|
|
9883
|
-
J.update(
|
|
9896
|
+
for (var M = 0; M < o.length && !d.fail; ++M) {
|
|
9897
|
+
var K = o[M], J = d.state.current.write;
|
|
9898
|
+
J.update(d, K) && d.records.push(K);
|
|
9884
9899
|
}
|
|
9885
9900
|
}
|
|
9886
|
-
}, r.flush = function(
|
|
9887
|
-
for (var L = 0; L <
|
|
9888
|
-
var w =
|
|
9889
|
-
|
|
9901
|
+
}, r.flush = function(d) {
|
|
9902
|
+
for (var L = 0; L < d.records.length; ++L) {
|
|
9903
|
+
var w = d.records[L];
|
|
9904
|
+
d.tlsData.putByte(w.type), d.tlsData.putByte(w.version.major), d.tlsData.putByte(w.version.minor), d.tlsData.putInt16(w.fragment.length()), d.tlsData.putBuffer(d.records[L].fragment);
|
|
9890
9905
|
}
|
|
9891
|
-
return
|
|
9906
|
+
return d.records = [], d.tlsDataReady(d);
|
|
9892
9907
|
};
|
|
9893
|
-
var ee = function(
|
|
9894
|
-
switch (
|
|
9908
|
+
var ee = function(d) {
|
|
9909
|
+
switch (d) {
|
|
9895
9910
|
case !0:
|
|
9896
9911
|
return !0;
|
|
9897
9912
|
case t.pki.certificateError.bad_certificate:
|
|
@@ -9909,8 +9924,8 @@ function un() {
|
|
|
9909
9924
|
default:
|
|
9910
9925
|
return r.Alert.Description.bad_certificate;
|
|
9911
9926
|
}
|
|
9912
|
-
}, Qe = function(
|
|
9913
|
-
switch (
|
|
9927
|
+
}, Qe = function(d) {
|
|
9928
|
+
switch (d) {
|
|
9914
9929
|
case !0:
|
|
9915
9930
|
return !0;
|
|
9916
9931
|
case r.Alert.Description.bad_certificate:
|
|
@@ -9929,13 +9944,13 @@ function un() {
|
|
|
9929
9944
|
return t.pki.certificateError.bad_certificate;
|
|
9930
9945
|
}
|
|
9931
9946
|
};
|
|
9932
|
-
r.verifyCertificateChain = function(
|
|
9947
|
+
r.verifyCertificateChain = function(d, L) {
|
|
9933
9948
|
try {
|
|
9934
9949
|
var w = {};
|
|
9935
|
-
for (var o in
|
|
9936
|
-
w[o] =
|
|
9950
|
+
for (var o in d.verifyOptions)
|
|
9951
|
+
w[o] = d.verifyOptions[o];
|
|
9937
9952
|
w.verify = function(M, K, J) {
|
|
9938
|
-
var ne = ee(M), oe =
|
|
9953
|
+
var ne = ee(M), oe = d.verify(d, M, K, J);
|
|
9939
9954
|
if (oe !== !0) {
|
|
9940
9955
|
if (typeof oe == "object" && !t.util.isArray(oe)) {
|
|
9941
9956
|
var Q = new Error("The application rejected the certificate.");
|
|
@@ -9947,7 +9962,7 @@ function un() {
|
|
|
9947
9962
|
oe !== M && (oe = Qe(oe));
|
|
9948
9963
|
}
|
|
9949
9964
|
return oe;
|
|
9950
|
-
}, t.pki.verifyCertificateChain(
|
|
9965
|
+
}, t.pki.verifyCertificateChain(d.caStore, L, w);
|
|
9951
9966
|
} catch (M) {
|
|
9952
9967
|
var T = M;
|
|
9953
9968
|
(typeof T != "object" || t.util.isArray(T)) && (T = {
|
|
@@ -9959,17 +9974,17 @@ function un() {
|
|
|
9959
9974
|
}), "send" in T || (T.send = !0), "alert" in T || (T.alert = {
|
|
9960
9975
|
level: r.Alert.Level.fatal,
|
|
9961
9976
|
description: ee(T.error)
|
|
9962
|
-
}),
|
|
9977
|
+
}), d.error(d, T);
|
|
9963
9978
|
}
|
|
9964
|
-
return !
|
|
9965
|
-
}, r.createSessionCache = function(
|
|
9979
|
+
return !d.fail;
|
|
9980
|
+
}, r.createSessionCache = function(d, L) {
|
|
9966
9981
|
var w = null;
|
|
9967
|
-
if (
|
|
9968
|
-
w =
|
|
9982
|
+
if (d && d.getSession && d.setSession && d.order)
|
|
9983
|
+
w = d;
|
|
9969
9984
|
else {
|
|
9970
|
-
w = {}, w.cache =
|
|
9971
|
-
for (var o in
|
|
9972
|
-
w.order.length <= L ? w.order.push(o) : delete
|
|
9985
|
+
w = {}, w.cache = d || {}, w.capacity = Math.max(L || 100, 1), w.order = [];
|
|
9986
|
+
for (var o in d)
|
|
9987
|
+
w.order.length <= L ? w.order.push(o) : delete d[o];
|
|
9973
9988
|
w.getSession = function(T) {
|
|
9974
9989
|
var M = null, K = null;
|
|
9975
9990
|
if (T ? K = t.util.bytesToHex(T) : w.order.length > 0 && (K = w.order[0]), K !== null && K in w.cache) {
|
|
@@ -9991,46 +10006,46 @@ function un() {
|
|
|
9991
10006
|
};
|
|
9992
10007
|
}
|
|
9993
10008
|
return w;
|
|
9994
|
-
}, r.createConnection = function(
|
|
10009
|
+
}, r.createConnection = function(d) {
|
|
9995
10010
|
var L = null;
|
|
9996
|
-
|
|
9997
|
-
var w =
|
|
10011
|
+
d.caStore ? t.util.isArray(d.caStore) ? L = t.pki.createCaStore(d.caStore) : L = d.caStore : L = t.pki.createCaStore();
|
|
10012
|
+
var w = d.cipherSuites || null;
|
|
9998
10013
|
if (w === null) {
|
|
9999
10014
|
w = [];
|
|
10000
10015
|
for (var o in r.CipherSuites)
|
|
10001
10016
|
w.push(r.CipherSuites[o]);
|
|
10002
10017
|
}
|
|
10003
|
-
var T =
|
|
10018
|
+
var T = d.server ? r.ConnectionEnd.server : r.ConnectionEnd.client, M = d.sessionCache ? r.createSessionCache(d.sessionCache) : null, K = {
|
|
10004
10019
|
version: { major: r.Version.major, minor: r.Version.minor },
|
|
10005
10020
|
entity: T,
|
|
10006
|
-
sessionId:
|
|
10021
|
+
sessionId: d.sessionId,
|
|
10007
10022
|
caStore: L,
|
|
10008
10023
|
sessionCache: M,
|
|
10009
10024
|
cipherSuites: w,
|
|
10010
|
-
connected:
|
|
10011
|
-
virtualHost:
|
|
10012
|
-
verifyClient:
|
|
10013
|
-
verify:
|
|
10025
|
+
connected: d.connected,
|
|
10026
|
+
virtualHost: d.virtualHost || null,
|
|
10027
|
+
verifyClient: d.verifyClient || !1,
|
|
10028
|
+
verify: d.verify || function(Q, q, Z, re) {
|
|
10014
10029
|
return q;
|
|
10015
10030
|
},
|
|
10016
|
-
verifyOptions:
|
|
10017
|
-
getCertificate:
|
|
10018
|
-
getPrivateKey:
|
|
10019
|
-
getSignature:
|
|
10031
|
+
verifyOptions: d.verifyOptions || {},
|
|
10032
|
+
getCertificate: d.getCertificate || null,
|
|
10033
|
+
getPrivateKey: d.getPrivateKey || null,
|
|
10034
|
+
getSignature: d.getSignature || null,
|
|
10020
10035
|
input: t.util.createBuffer(),
|
|
10021
10036
|
tlsData: t.util.createBuffer(),
|
|
10022
10037
|
data: t.util.createBuffer(),
|
|
10023
|
-
tlsDataReady:
|
|
10024
|
-
dataReady:
|
|
10025
|
-
heartbeatReceived:
|
|
10026
|
-
closed:
|
|
10038
|
+
tlsDataReady: d.tlsDataReady,
|
|
10039
|
+
dataReady: d.dataReady,
|
|
10040
|
+
heartbeatReceived: d.heartbeatReceived,
|
|
10041
|
+
closed: d.closed,
|
|
10027
10042
|
error: function(Q, q) {
|
|
10028
10043
|
q.origin = q.origin || (Q.entity === r.ConnectionEnd.client ? "client" : "server"), q.send && (r.queue(Q, r.createAlert(Q, q.alert)), r.flush(Q));
|
|
10029
10044
|
var Z = q.fatal !== !1;
|
|
10030
|
-
Z && (Q.fail = !0),
|
|
10045
|
+
Z && (Q.fail = !0), d.error(Q, q), Z && Q.close(!1);
|
|
10031
10046
|
},
|
|
10032
|
-
deflate:
|
|
10033
|
-
inflate:
|
|
10047
|
+
deflate: d.deflate || null,
|
|
10048
|
+
inflate: d.inflate || null
|
|
10034
10049
|
};
|
|
10035
10050
|
K.reset = function(Q) {
|
|
10036
10051
|
K.version = { major: r.Version.major, minor: r.Version.minor }, K.record = null, K.session = null, K.peerCertificate = null, K.state = {
|
|
@@ -10147,15 +10162,15 @@ function un() {
|
|
|
10147
10162
|
})), r.flush(K)), K.closed(K)), K.reset(Q);
|
|
10148
10163
|
}, K;
|
|
10149
10164
|
}, Dr = t.tls = t.tls || {};
|
|
10150
|
-
for (var
|
|
10151
|
-
typeof r[
|
|
10165
|
+
for (var de in r)
|
|
10166
|
+
typeof r[de] != "function" && (t.tls[de] = r[de]);
|
|
10152
10167
|
return t.tls.prf_tls1 = e, t.tls.hmac_sha1 = a, t.tls.createSessionCache = r.createSessionCache, t.tls.createConnection = r.createConnection, Dr;
|
|
10153
10168
|
}
|
|
10154
10169
|
var Ua;
|
|
10155
10170
|
function ps() {
|
|
10156
10171
|
if (Ua) return ur.exports;
|
|
10157
10172
|
Ua = 1;
|
|
10158
|
-
var t =
|
|
10173
|
+
var t = he();
|
|
10159
10174
|
Nt(), un();
|
|
10160
10175
|
var e = ur.exports = t.tls;
|
|
10161
10176
|
e.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA = {
|
|
@@ -10229,7 +10244,7 @@ var Vr = { exports: {} }, Da;
|
|
|
10229
10244
|
function cn() {
|
|
10230
10245
|
if (Da) return Vr.exports;
|
|
10231
10246
|
Da = 1;
|
|
10232
|
-
var t =
|
|
10247
|
+
var t = he();
|
|
10233
10248
|
Et(), ve();
|
|
10234
10249
|
var e = Vr.exports = t.sha512 = t.sha512 || {};
|
|
10235
10250
|
t.md.sha512 = t.md.algorithms.sha512 = e;
|
|
@@ -10275,14 +10290,14 @@ function cn() {
|
|
|
10275
10290
|
};
|
|
10276
10291
|
return v.start = function() {
|
|
10277
10292
|
v.messageLength = 0, v.fullMessageLength = v.messageLength128 = [];
|
|
10278
|
-
for (var s = v.messageLengthSize / 4,
|
|
10293
|
+
for (var s = v.messageLengthSize / 4, h = 0; h < s; ++h)
|
|
10279
10294
|
v.fullMessageLength.push(0);
|
|
10280
10295
|
E = t.util.createBuffer(), U = new Array(b.length);
|
|
10281
|
-
for (var
|
|
10282
|
-
U[
|
|
10296
|
+
for (var h = 0; h < b.length; ++h)
|
|
10297
|
+
U[h] = b[h].slice(0);
|
|
10283
10298
|
return v;
|
|
10284
|
-
}, v.start(), v.update = function(s,
|
|
10285
|
-
|
|
10299
|
+
}, v.start(), v.update = function(s, h) {
|
|
10300
|
+
h === "utf8" && (s = t.util.encodeUtf8(s));
|
|
10286
10301
|
var m = s.length;
|
|
10287
10302
|
v.messageLength += m, m = [m / 4294967296 >>> 0, m >>> 0];
|
|
10288
10303
|
for (var B = v.fullMessageLength.length - 1; B >= 0; --B)
|
|
@@ -10291,7 +10306,7 @@ function cn() {
|
|
|
10291
10306
|
}, v.digest = function() {
|
|
10292
10307
|
var s = t.util.createBuffer();
|
|
10293
10308
|
s.putBytes(E.bytes());
|
|
10294
|
-
var
|
|
10309
|
+
var h = v.fullMessageLength[v.fullMessageLength.length - 1] + v.messageLengthSize, m = h & v.blockLength - 1;
|
|
10295
10310
|
s.putBytes(f.substr(0, v.blockLength - m));
|
|
10296
10311
|
for (var B, R, c = v.fullMessageLength[0] * 8, i = 0; i < v.fullMessageLength.length - 1; ++i)
|
|
10297
10312
|
B = v.fullMessageLength[i + 1] * 8, R = B / 4294967296 >>> 0, c += R, s.putInt32(c >>> 0), c = B >>> 0;
|
|
@@ -10428,7 +10443,7 @@ function cn() {
|
|
|
10428
10443
|
], I = !0;
|
|
10429
10444
|
}
|
|
10430
10445
|
function g(l, b, U) {
|
|
10431
|
-
for (var E, u, y, C, v, s,
|
|
10446
|
+
for (var E, u, y, C, v, s, h, m, B, R, c, i, n, k, V, O, D, x, F, G, z, Y, $, te, W, le, ge, me, _, ce, ee, Qe, de, d, L, w = U.length(); w >= 128; ) {
|
|
10432
10447
|
for (_ = 0; _ < 16; ++_)
|
|
10433
10448
|
b[_][0] = U.getInt32() >>> 0, b[_][1] = U.getInt32() >>> 0;
|
|
10434
10449
|
for (; _ < 80; ++_)
|
|
@@ -10436,13 +10451,13 @@ function cn() {
|
|
|
10436
10451
|
(ee >>> 29 | ce << 3) ^ // ROTR 61/(swap + ROTR 29)
|
|
10437
10452
|
ce >>> 6) >>> 0, u = ((ce << 13 | ee >>> 19) ^ // ROTR 19
|
|
10438
10453
|
(ee << 3 | ce >>> 29) ^ // ROTR 61/(swap + ROTR 29)
|
|
10439
|
-
(ce << 26 | ee >>> 6)) >>> 0,
|
|
10454
|
+
(ce << 26 | ee >>> 6)) >>> 0, d = b[_ - 15], ce = d[0], ee = d[1], y = ((ce >>> 1 | ee << 31) ^ // ROTR 1
|
|
10440
10455
|
(ce >>> 8 | ee << 24) ^ // ROTR 8
|
|
10441
10456
|
ce >>> 7) >>> 0, C = ((ce << 31 | ee >>> 1) ^ // ROTR 1
|
|
10442
10457
|
(ce << 24 | ee >>> 8) ^ // ROTR 8
|
|
10443
|
-
(ce << 25 | ee >>> 7)) >>> 0,
|
|
10458
|
+
(ce << 25 | ee >>> 7)) >>> 0, de = b[_ - 7], L = b[_ - 16], ee = u + de[1] + C + L[1], b[_][0] = E + de[0] + y + L[0] + (ee / 4294967296 >>> 0) >>> 0, b[_][1] = ee >>> 0;
|
|
10444
10459
|
for (n = l[0][0], k = l[0][1], V = l[1][0], O = l[1][1], D = l[2][0], x = l[2][1], F = l[3][0], G = l[3][1], z = l[4][0], Y = l[4][1], $ = l[5][0], te = l[5][1], W = l[6][0], le = l[6][1], ge = l[7][0], me = l[7][1], _ = 0; _ < 80; ++_)
|
|
10445
|
-
|
|
10460
|
+
h = ((z >>> 14 | Y << 18) ^ // ROTR 14
|
|
10446
10461
|
(z >>> 18 | Y << 14) ^ // ROTR 18
|
|
10447
10462
|
(Y >>> 9 | z << 23)) >>> 0, m = ((z << 18 | Y >>> 14) ^ // ROTR 14
|
|
10448
10463
|
(z << 14 | Y >>> 18) ^ // ROTR 18
|
|
@@ -10450,17 +10465,17 @@ function cn() {
|
|
|
10450
10465
|
(k >>> 2 | n << 30) ^ // ROTR 34/(swap + ROTR 2)
|
|
10451
10466
|
(k >>> 7 | n << 25)) >>> 0, s = ((n << 4 | k >>> 28) ^ // ROTR 28
|
|
10452
10467
|
(k << 30 | n >>> 2) ^ // ROTR 34/(swap + ROTR 2)
|
|
10453
|
-
(k << 25 | n >>> 7)) >>> 0, c = (n & V | D & (n ^ V)) >>> 0, i = (k & O | x & (k ^ O)) >>> 0, ee = me + m + R + S[_][1] + b[_][1], E = ge +
|
|
10468
|
+
(k << 25 | n >>> 7)) >>> 0, c = (n & V | D & (n ^ V)) >>> 0, i = (k & O | x & (k ^ O)) >>> 0, ee = me + m + R + S[_][1] + b[_][1], E = ge + h + B + S[_][0] + b[_][0] + (ee / 4294967296 >>> 0) >>> 0, u = ee >>> 0, ee = s + i, y = v + c + (ee / 4294967296 >>> 0) >>> 0, C = ee >>> 0, ge = W, me = le, W = $, le = te, $ = z, te = Y, ee = G + u, z = F + E + (ee / 4294967296 >>> 0) >>> 0, Y = ee >>> 0, F = D, G = x, D = V, x = O, V = n, O = k, ee = u + C, n = E + y + (ee / 4294967296 >>> 0) >>> 0, k = ee >>> 0;
|
|
10454
10469
|
ee = l[0][1] + k, l[0][0] = l[0][0] + n + (ee / 4294967296 >>> 0) >>> 0, l[0][1] = ee >>> 0, ee = l[1][1] + O, l[1][0] = l[1][0] + V + (ee / 4294967296 >>> 0) >>> 0, l[1][1] = ee >>> 0, ee = l[2][1] + x, l[2][0] = l[2][0] + D + (ee / 4294967296 >>> 0) >>> 0, l[2][1] = ee >>> 0, ee = l[3][1] + G, l[3][0] = l[3][0] + F + (ee / 4294967296 >>> 0) >>> 0, l[3][1] = ee >>> 0, ee = l[4][1] + Y, l[4][0] = l[4][0] + z + (ee / 4294967296 >>> 0) >>> 0, l[4][1] = ee >>> 0, ee = l[5][1] + te, l[5][0] = l[5][0] + $ + (ee / 4294967296 >>> 0) >>> 0, l[5][1] = ee >>> 0, ee = l[6][1] + le, l[6][0] = l[6][0] + W + (ee / 4294967296 >>> 0) >>> 0, l[6][1] = ee >>> 0, ee = l[7][1] + me, l[7][0] = l[7][0] + ge + (ee / 4294967296 >>> 0) >>> 0, l[7][1] = ee >>> 0, w -= 128;
|
|
10455
10470
|
}
|
|
10456
10471
|
}
|
|
10457
10472
|
return Vr.exports;
|
|
10458
10473
|
}
|
|
10459
10474
|
var Xt = {}, Va;
|
|
10460
|
-
function
|
|
10475
|
+
function ds() {
|
|
10461
10476
|
if (Va) return Xt;
|
|
10462
10477
|
Va = 1;
|
|
10463
|
-
var t =
|
|
10478
|
+
var t = he();
|
|
10464
10479
|
yt();
|
|
10465
10480
|
var e = t.asn1;
|
|
10466
10481
|
return Xt.privateKeyValidator = {
|
|
@@ -10547,20 +10562,20 @@ function hs() {
|
|
|
10547
10562
|
}, Xt;
|
|
10548
10563
|
}
|
|
10549
10564
|
var Pr, Pa;
|
|
10550
|
-
function
|
|
10565
|
+
function hs() {
|
|
10551
10566
|
if (Pa) return Pr;
|
|
10552
10567
|
Pa = 1;
|
|
10553
|
-
var t =
|
|
10554
|
-
$t(),
|
|
10555
|
-
var e =
|
|
10568
|
+
var t = he();
|
|
10569
|
+
$t(), dt(), cn(), ve();
|
|
10570
|
+
var e = ds(), a = e.publicKeyValidator, f = e.privateKeyValidator;
|
|
10556
10571
|
if (typeof I > "u")
|
|
10557
10572
|
var I = t.jsbn.BigInteger;
|
|
10558
10573
|
var S = t.util.ByteBuffer, p = typeof Buffer > "u" ? Uint8Array : Buffer;
|
|
10559
10574
|
t.pki = t.pki || {}, Pr = t.pki.ed25519 = t.ed25519 = t.ed25519 || {};
|
|
10560
10575
|
var r = t.ed25519;
|
|
10561
|
-
r.constants = {}, r.constants.PUBLIC_KEY_BYTE_LENGTH = 32, r.constants.PRIVATE_KEY_BYTE_LENGTH = 64, r.constants.SEED_BYTE_LENGTH = 32, r.constants.SIGN_BYTE_LENGTH = 64, r.constants.HASH_BYTE_LENGTH = 64, r.generateKeyPair = function(
|
|
10562
|
-
|
|
10563
|
-
var L =
|
|
10576
|
+
r.constants = {}, r.constants.PUBLIC_KEY_BYTE_LENGTH = 32, r.constants.PRIVATE_KEY_BYTE_LENGTH = 64, r.constants.SEED_BYTE_LENGTH = 32, r.constants.SIGN_BYTE_LENGTH = 64, r.constants.HASH_BYTE_LENGTH = 64, r.generateKeyPair = function(d) {
|
|
10577
|
+
d = d || {};
|
|
10578
|
+
var L = d.seed;
|
|
10564
10579
|
if (L === void 0)
|
|
10565
10580
|
L = t.random.getBytesSync(r.constants.SEED_BYTE_LENGTH);
|
|
10566
10581
|
else if (typeof L == "string") {
|
|
@@ -10575,9 +10590,9 @@ function ds() {
|
|
|
10575
10590
|
L = g({ message: L, encoding: "binary" });
|
|
10576
10591
|
for (var w = new p(r.constants.PUBLIC_KEY_BYTE_LENGTH), o = new p(r.constants.PRIVATE_KEY_BYTE_LENGTH), T = 0; T < 32; ++T)
|
|
10577
10592
|
o[T] = L[T];
|
|
10578
|
-
return
|
|
10579
|
-
}, r.privateKeyFromAsn1 = function(
|
|
10580
|
-
var L = {}, w = [], o = t.asn1.validate(
|
|
10593
|
+
return h(w, o), { publicKey: w, privateKey: o };
|
|
10594
|
+
}, r.privateKeyFromAsn1 = function(d) {
|
|
10595
|
+
var L = {}, w = [], o = t.asn1.validate(d, f, L, w);
|
|
10581
10596
|
if (!o) {
|
|
10582
10597
|
var T = new Error("Invalid Key.");
|
|
10583
10598
|
throw T.errors = w, T;
|
|
@@ -10590,8 +10605,8 @@ function ds() {
|
|
|
10590
10605
|
encoding: "binary"
|
|
10591
10606
|
});
|
|
10592
10607
|
return { privateKeyBytes: ne };
|
|
10593
|
-
}, r.publicKeyFromAsn1 = function(
|
|
10594
|
-
var L = {}, w = [], o = t.asn1.validate(
|
|
10608
|
+
}, r.publicKeyFromAsn1 = function(d) {
|
|
10609
|
+
var L = {}, w = [], o = t.asn1.validate(d, a, L, w);
|
|
10595
10610
|
if (!o) {
|
|
10596
10611
|
var T = new Error("Invalid Key.");
|
|
10597
10612
|
throw T.errors = w, T;
|
|
@@ -10606,10 +10621,10 @@ function ds() {
|
|
|
10606
10621
|
message: J,
|
|
10607
10622
|
encoding: "binary"
|
|
10608
10623
|
});
|
|
10609
|
-
}, r.publicKeyFromPrivateKey = function(
|
|
10610
|
-
|
|
10624
|
+
}, r.publicKeyFromPrivateKey = function(d) {
|
|
10625
|
+
d = d || {};
|
|
10611
10626
|
var L = g({
|
|
10612
|
-
message:
|
|
10627
|
+
message: d.privateKey,
|
|
10613
10628
|
encoding: "binary"
|
|
10614
10629
|
});
|
|
10615
10630
|
if (L.length !== r.constants.PRIVATE_KEY_BYTE_LENGTH)
|
|
@@ -10619,10 +10634,10 @@ function ds() {
|
|
|
10619
10634
|
for (var w = new p(r.constants.PUBLIC_KEY_BYTE_LENGTH), o = 0; o < w.length; ++o)
|
|
10620
10635
|
w[o] = L[32 + o];
|
|
10621
10636
|
return w;
|
|
10622
|
-
}, r.sign = function(
|
|
10623
|
-
|
|
10624
|
-
var L = g(
|
|
10625
|
-
message:
|
|
10637
|
+
}, r.sign = function(d) {
|
|
10638
|
+
d = d || {};
|
|
10639
|
+
var L = g(d), w = g({
|
|
10640
|
+
message: d.privateKey,
|
|
10626
10641
|
encoding: "binary"
|
|
10627
10642
|
});
|
|
10628
10643
|
if (w.length === r.constants.SEED_BYTE_LENGTH) {
|
|
@@ -10639,15 +10654,15 @@ function ds() {
|
|
|
10639
10654
|
for (var M = new p(r.constants.SIGN_BYTE_LENGTH), K = 0; K < M.length; ++K)
|
|
10640
10655
|
M[K] = T[K];
|
|
10641
10656
|
return M;
|
|
10642
|
-
}, r.verify = function(
|
|
10643
|
-
|
|
10644
|
-
var L = g(
|
|
10645
|
-
if (
|
|
10657
|
+
}, r.verify = function(d) {
|
|
10658
|
+
d = d || {};
|
|
10659
|
+
var L = g(d);
|
|
10660
|
+
if (d.signature === void 0)
|
|
10646
10661
|
throw new TypeError(
|
|
10647
10662
|
'"options.signature" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a binary string.'
|
|
10648
10663
|
);
|
|
10649
10664
|
var w = g({
|
|
10650
|
-
message:
|
|
10665
|
+
message: d.signature,
|
|
10651
10666
|
encoding: "binary"
|
|
10652
10667
|
});
|
|
10653
10668
|
if (w.length !== r.constants.SIGN_BYTE_LENGTH)
|
|
@@ -10655,7 +10670,7 @@ function ds() {
|
|
|
10655
10670
|
'"options.signature" must have a byte length of ' + r.constants.SIGN_BYTE_LENGTH
|
|
10656
10671
|
);
|
|
10657
10672
|
var o = g({
|
|
10658
|
-
message:
|
|
10673
|
+
message: d.publicKey,
|
|
10659
10674
|
encoding: "binary"
|
|
10660
10675
|
});
|
|
10661
10676
|
if (o.length !== r.constants.PUBLIC_KEY_BYTE_LENGTH)
|
|
@@ -10669,14 +10684,14 @@ function ds() {
|
|
|
10669
10684
|
T[K + r.constants.SIGN_BYTE_LENGTH] = L[K];
|
|
10670
10685
|
return B(M, T, T.length, o) >= 0;
|
|
10671
10686
|
};
|
|
10672
|
-
function g(
|
|
10673
|
-
var L =
|
|
10687
|
+
function g(d) {
|
|
10688
|
+
var L = d.message;
|
|
10674
10689
|
if (L instanceof Uint8Array || L instanceof p)
|
|
10675
10690
|
return L;
|
|
10676
|
-
var w =
|
|
10691
|
+
var w = d.encoding;
|
|
10677
10692
|
if (L === void 0)
|
|
10678
|
-
if (
|
|
10679
|
-
L =
|
|
10693
|
+
if (d.md)
|
|
10694
|
+
L = d.md.digest().getBytes(), w = "binary";
|
|
10680
10695
|
else
|
|
10681
10696
|
throw new TypeError('"options.message" or "options.md" not specified.');
|
|
10682
10697
|
if (typeof L == "string" && !w)
|
|
@@ -10812,8 +10827,8 @@ function ds() {
|
|
|
10812
10827
|
9344,
|
|
10813
10828
|
11139
|
|
10814
10829
|
]);
|
|
10815
|
-
function s(
|
|
10816
|
-
var w = t.md.sha512.create(), o = new S(
|
|
10830
|
+
function s(d, L) {
|
|
10831
|
+
var w = t.md.sha512.create(), o = new S(d);
|
|
10817
10832
|
w.update(o.getBytes(L), "binary");
|
|
10818
10833
|
var T = w.digest().getBytes();
|
|
10819
10834
|
if (typeof Buffer < "u")
|
|
@@ -10822,24 +10837,24 @@ function ds() {
|
|
|
10822
10837
|
M[K] = T.charCodeAt(K);
|
|
10823
10838
|
return M;
|
|
10824
10839
|
}
|
|
10825
|
-
function d
|
|
10840
|
+
function h(d, L) {
|
|
10826
10841
|
var w = [_(), _(), _(), _()], o, T = s(L, 32);
|
|
10827
|
-
for (T[0] &= 248, T[31] &= 127, T[31] |= 64, te(w, T), k(
|
|
10828
|
-
L[o + 32] =
|
|
10842
|
+
for (T[0] &= 248, T[31] &= 127, T[31] |= 64, te(w, T), k(d, w), o = 0; o < 32; ++o)
|
|
10843
|
+
L[o + 32] = d[o];
|
|
10829
10844
|
return 0;
|
|
10830
10845
|
}
|
|
10831
|
-
function m(
|
|
10846
|
+
function m(d, L, w, o) {
|
|
10832
10847
|
var T, M, K = new Float64Array(64), J = [_(), _(), _(), _()], ne = s(o, 32);
|
|
10833
10848
|
ne[0] &= 248, ne[31] &= 127, ne[31] |= 64;
|
|
10834
10849
|
var oe = w + 64;
|
|
10835
10850
|
for (T = 0; T < w; ++T)
|
|
10836
|
-
|
|
10851
|
+
d[64 + T] = L[T];
|
|
10837
10852
|
for (T = 0; T < 32; ++T)
|
|
10838
|
-
|
|
10839
|
-
var Q = s(
|
|
10840
|
-
for (c(Q), te(J, Q), k(
|
|
10841
|
-
|
|
10842
|
-
var q = s(
|
|
10853
|
+
d[32 + T] = ne[32 + T];
|
|
10854
|
+
var Q = s(d.subarray(32), w + 32);
|
|
10855
|
+
for (c(Q), te(J, Q), k(d, J), T = 32; T < 64; ++T)
|
|
10856
|
+
d[T] = o[T];
|
|
10857
|
+
var q = s(d, w + 64);
|
|
10843
10858
|
for (c(q), T = 32; T < 64; ++T)
|
|
10844
10859
|
K[T] = 0;
|
|
10845
10860
|
for (T = 0; T < 32; ++T)
|
|
@@ -10847,27 +10862,27 @@ function ds() {
|
|
|
10847
10862
|
for (T = 0; T < 32; ++T)
|
|
10848
10863
|
for (M = 0; M < 32; M++)
|
|
10849
10864
|
K[T + M] += q[T] * ne[M];
|
|
10850
|
-
return R(
|
|
10865
|
+
return R(d.subarray(32), K), oe;
|
|
10851
10866
|
}
|
|
10852
|
-
function B(
|
|
10867
|
+
function B(d, L, w, o) {
|
|
10853
10868
|
var T, M, K = new p(32), J = [_(), _(), _(), _()], ne = [_(), _(), _(), _()];
|
|
10854
10869
|
if (M = -1, w < 64 || O(ne, o))
|
|
10855
10870
|
return -1;
|
|
10856
10871
|
for (T = 0; T < w; ++T)
|
|
10857
|
-
|
|
10872
|
+
d[T] = L[T];
|
|
10858
10873
|
for (T = 0; T < 32; ++T)
|
|
10859
|
-
|
|
10860
|
-
var oe = s(
|
|
10874
|
+
d[T + 32] = o[T];
|
|
10875
|
+
var oe = s(d, w);
|
|
10861
10876
|
if (c(oe), $(J, ne, oe), te(ne, L.subarray(32)), i(J, ne), k(K, J), w -= 64, G(L, 0, K, 0)) {
|
|
10862
10877
|
for (T = 0; T < w; ++T)
|
|
10863
|
-
|
|
10878
|
+
d[T] = 0;
|
|
10864
10879
|
return -1;
|
|
10865
10880
|
}
|
|
10866
10881
|
for (T = 0; T < w; ++T)
|
|
10867
|
-
|
|
10882
|
+
d[T] = L[T + 64];
|
|
10868
10883
|
return M = w, M;
|
|
10869
10884
|
}
|
|
10870
|
-
function R(
|
|
10885
|
+
function R(d, L) {
|
|
10871
10886
|
var w, o, T, M;
|
|
10872
10887
|
for (o = 63; o >= 32; --o) {
|
|
10873
10888
|
for (w = 0, T = o - 32, M = o - 12; T < M; ++T)
|
|
@@ -10879,26 +10894,26 @@ function ds() {
|
|
|
10879
10894
|
for (T = 0; T < 32; ++T)
|
|
10880
10895
|
L[T] -= w * C[T];
|
|
10881
10896
|
for (o = 0; o < 32; ++o)
|
|
10882
|
-
L[o + 1] += L[o] >> 8,
|
|
10897
|
+
L[o + 1] += L[o] >> 8, d[o] = L[o] & 255;
|
|
10883
10898
|
}
|
|
10884
|
-
function c(
|
|
10899
|
+
function c(d) {
|
|
10885
10900
|
for (var L = new Float64Array(64), w = 0; w < 64; ++w)
|
|
10886
|
-
L[w] =
|
|
10887
|
-
R(
|
|
10901
|
+
L[w] = d[w], d[w] = 0;
|
|
10902
|
+
R(d, L);
|
|
10888
10903
|
}
|
|
10889
|
-
function i(
|
|
10904
|
+
function i(d, L) {
|
|
10890
10905
|
var w = _(), o = _(), T = _(), M = _(), K = _(), J = _(), ne = _(), oe = _(), Q = _();
|
|
10891
|
-
ee(w,
|
|
10906
|
+
ee(w, d[1], d[0]), ee(Q, L[1], L[0]), de(w, w, Q), ce(o, d[0], d[1]), ce(Q, L[0], L[1]), de(o, o, Q), de(T, d[3], L[3]), de(T, T, E), de(M, d[2], L[2]), ce(M, M, M), ee(K, o, w), ee(J, M, T), ce(ne, M, T), ce(oe, o, w), de(d[0], K, J), de(d[1], oe, ne), de(d[2], ne, J), de(d[3], K, oe);
|
|
10892
10907
|
}
|
|
10893
|
-
function n(
|
|
10908
|
+
function n(d, L, w) {
|
|
10894
10909
|
for (var o = 0; o < 4; ++o)
|
|
10895
|
-
me(
|
|
10910
|
+
me(d[o], L[o], w);
|
|
10896
10911
|
}
|
|
10897
|
-
function k(
|
|
10912
|
+
function k(d, L) {
|
|
10898
10913
|
var w = _(), o = _(), T = _();
|
|
10899
|
-
le(T, L[2]),
|
|
10914
|
+
le(T, L[2]), de(w, L[0], T), de(o, L[1], T), V(d, o), d[31] ^= Y(w) << 7;
|
|
10900
10915
|
}
|
|
10901
|
-
function V(
|
|
10916
|
+
function V(d, L) {
|
|
10902
10917
|
var w, o, T, M = _(), K = _();
|
|
10903
10918
|
for (w = 0; w < 16; ++w)
|
|
10904
10919
|
K[w] = L[w];
|
|
@@ -10908,98 +10923,98 @@ function ds() {
|
|
|
10908
10923
|
M[15] = K[15] - 32767 - (M[14] >> 16 & 1), T = M[15] >> 16 & 1, M[14] &= 65535, me(K, M, 1 - T);
|
|
10909
10924
|
}
|
|
10910
10925
|
for (w = 0; w < 16; w++)
|
|
10911
|
-
|
|
10926
|
+
d[2 * w] = K[w] & 255, d[2 * w + 1] = K[w] >> 8;
|
|
10912
10927
|
}
|
|
10913
|
-
function O(
|
|
10928
|
+
function O(d, L) {
|
|
10914
10929
|
var w = _(), o = _(), T = _(), M = _(), K = _(), J = _(), ne = _();
|
|
10915
|
-
return W(
|
|
10930
|
+
return W(d[2], b), D(d[1], L), Qe(T, d[1]), de(M, T, U), ee(T, T, d[2]), ce(M, d[2], M), Qe(K, M), Qe(J, K), de(ne, J, K), de(w, ne, T), de(w, w, M), x(w, w), de(w, w, T), de(w, w, M), de(w, w, M), de(d[0], w, M), Qe(o, d[0]), de(o, o, M), F(o, T) && de(d[0], d[0], v), Qe(o, d[0]), de(o, o, M), F(o, T) ? -1 : (Y(d[0]) === L[31] >> 7 && ee(d[0], l, d[0]), de(d[3], d[0], d[1]), 0);
|
|
10916
10931
|
}
|
|
10917
|
-
function D(
|
|
10932
|
+
function D(d, L) {
|
|
10918
10933
|
var w;
|
|
10919
10934
|
for (w = 0; w < 16; ++w)
|
|
10920
|
-
|
|
10921
|
-
|
|
10935
|
+
d[w] = L[2 * w] + (L[2 * w + 1] << 8);
|
|
10936
|
+
d[15] &= 32767;
|
|
10922
10937
|
}
|
|
10923
|
-
function x(
|
|
10938
|
+
function x(d, L) {
|
|
10924
10939
|
var w = _(), o;
|
|
10925
10940
|
for (o = 0; o < 16; ++o)
|
|
10926
10941
|
w[o] = L[o];
|
|
10927
10942
|
for (o = 250; o >= 0; --o)
|
|
10928
|
-
Qe(w, w), o !== 1 &&
|
|
10943
|
+
Qe(w, w), o !== 1 && de(w, w, L);
|
|
10929
10944
|
for (o = 0; o < 16; ++o)
|
|
10930
|
-
|
|
10945
|
+
d[o] = w[o];
|
|
10931
10946
|
}
|
|
10932
|
-
function F(
|
|
10947
|
+
function F(d, L) {
|
|
10933
10948
|
var w = new p(32), o = new p(32);
|
|
10934
|
-
return V(w,
|
|
10949
|
+
return V(w, d), V(o, L), G(w, 0, o, 0);
|
|
10935
10950
|
}
|
|
10936
|
-
function G(
|
|
10937
|
-
return z(
|
|
10951
|
+
function G(d, L, w, o) {
|
|
10952
|
+
return z(d, L, w, o, 32);
|
|
10938
10953
|
}
|
|
10939
|
-
function z(
|
|
10954
|
+
function z(d, L, w, o, T) {
|
|
10940
10955
|
var M, K = 0;
|
|
10941
10956
|
for (M = 0; M < T; ++M)
|
|
10942
|
-
K |=
|
|
10957
|
+
K |= d[L + M] ^ w[o + M];
|
|
10943
10958
|
return (1 & K - 1 >>> 8) - 1;
|
|
10944
10959
|
}
|
|
10945
|
-
function Y(
|
|
10960
|
+
function Y(d) {
|
|
10946
10961
|
var L = new p(32);
|
|
10947
|
-
return V(L,
|
|
10962
|
+
return V(L, d), L[0] & 1;
|
|
10948
10963
|
}
|
|
10949
|
-
function $(
|
|
10964
|
+
function $(d, L, w) {
|
|
10950
10965
|
var o, T;
|
|
10951
|
-
for (W(
|
|
10952
|
-
o = w[T / 8 | 0] >> (T & 7) & 1, n(
|
|
10966
|
+
for (W(d[0], l), W(d[1], b), W(d[2], b), W(d[3], l), T = 255; T >= 0; --T)
|
|
10967
|
+
o = w[T / 8 | 0] >> (T & 7) & 1, n(d, L, o), i(L, d), i(d, d), n(d, L, o);
|
|
10953
10968
|
}
|
|
10954
|
-
function te(
|
|
10969
|
+
function te(d, L) {
|
|
10955
10970
|
var w = [_(), _(), _(), _()];
|
|
10956
|
-
W(w[0], u), W(w[1], y), W(w[2], b),
|
|
10971
|
+
W(w[0], u), W(w[1], y), W(w[2], b), de(w[3], u, y), $(d, w, L);
|
|
10957
10972
|
}
|
|
10958
|
-
function W(
|
|
10973
|
+
function W(d, L) {
|
|
10959
10974
|
var w;
|
|
10960
10975
|
for (w = 0; w < 16; w++)
|
|
10961
|
-
|
|
10976
|
+
d[w] = L[w] | 0;
|
|
10962
10977
|
}
|
|
10963
|
-
function le(
|
|
10978
|
+
function le(d, L) {
|
|
10964
10979
|
var w = _(), o;
|
|
10965
10980
|
for (o = 0; o < 16; ++o)
|
|
10966
10981
|
w[o] = L[o];
|
|
10967
10982
|
for (o = 253; o >= 0; --o)
|
|
10968
|
-
Qe(w, w), o !== 2 && o !== 4 &&
|
|
10983
|
+
Qe(w, w), o !== 2 && o !== 4 && de(w, w, L);
|
|
10969
10984
|
for (o = 0; o < 16; ++o)
|
|
10970
|
-
|
|
10985
|
+
d[o] = w[o];
|
|
10971
10986
|
}
|
|
10972
|
-
function ge(
|
|
10987
|
+
function ge(d) {
|
|
10973
10988
|
var L, w, o = 1;
|
|
10974
10989
|
for (L = 0; L < 16; ++L)
|
|
10975
|
-
w =
|
|
10976
|
-
|
|
10990
|
+
w = d[L] + o + 65535, o = Math.floor(w / 65536), d[L] = w - o * 65536;
|
|
10991
|
+
d[0] += o - 1 + 37 * (o - 1);
|
|
10977
10992
|
}
|
|
10978
|
-
function me(
|
|
10993
|
+
function me(d, L, w) {
|
|
10979
10994
|
for (var o, T = ~(w - 1), M = 0; M < 16; ++M)
|
|
10980
|
-
o = T & (
|
|
10995
|
+
o = T & (d[M] ^ L[M]), d[M] ^= o, L[M] ^= o;
|
|
10981
10996
|
}
|
|
10982
|
-
function _(
|
|
10997
|
+
function _(d) {
|
|
10983
10998
|
var L, w = new Float64Array(16);
|
|
10984
|
-
if (
|
|
10985
|
-
for (L = 0; L <
|
|
10986
|
-
w[L] =
|
|
10999
|
+
if (d)
|
|
11000
|
+
for (L = 0; L < d.length; ++L)
|
|
11001
|
+
w[L] = d[L];
|
|
10987
11002
|
return w;
|
|
10988
11003
|
}
|
|
10989
|
-
function ce(
|
|
11004
|
+
function ce(d, L, w) {
|
|
10990
11005
|
for (var o = 0; o < 16; ++o)
|
|
10991
|
-
|
|
11006
|
+
d[o] = L[o] + w[o];
|
|
10992
11007
|
}
|
|
10993
|
-
function ee(
|
|
11008
|
+
function ee(d, L, w) {
|
|
10994
11009
|
for (var o = 0; o < 16; ++o)
|
|
10995
|
-
|
|
11010
|
+
d[o] = L[o] - w[o];
|
|
10996
11011
|
}
|
|
10997
|
-
function Qe(
|
|
10998
|
-
|
|
11012
|
+
function Qe(d, L) {
|
|
11013
|
+
de(d, L, L);
|
|
10999
11014
|
}
|
|
11000
|
-
function
|
|
11001
|
-
var o, T, M = 0, K = 0, J = 0, ne = 0, oe = 0, Q = 0, q = 0, Z = 0, re = 0, ue = 0, Ee = 0, Te = 0, Be = 0, Ie = 0, Se = 0, be = 0, ke = 0, Je = 0, He = 0, Ze = 0, _e = 0, rt = 0, it = 0, ut = 0,
|
|
11002
|
-
o = L[0], M += o * Re, K += o * Le, J += o * Ue, ne += o * De, oe += o * Ve, Q += o * Pe, q += o * Ke, Z += o * Oe, re += o * xe, ue += o * Me, Ee += o * Fe, Te += o * Ge, Be += o * Ae, Ie += o * we, Se += o * je, be += o * ze, o = L[1], K += o * Re, J += o * Le, ne += o * Ue, oe += o * De, Q += o * Ve, q += o * Pe, Z += o * Ke, re += o * Oe, ue += o * xe, Ee += o * Me, Te += o * Fe, Be += o * Ge, Ie += o * Ae, Se += o * we, be += o * je, ke += o * ze, o = L[2], J += o * Re, ne += o * Le, oe += o * Ue, Q += o * De, q += o * Ve, Z += o * Pe, re += o * Ke, ue += o * Oe, Ee += o * xe, Te += o * Me, Be += o * Fe, Ie += o * Ge, Se += o * Ae, be += o * we, ke += o * je, Je += o * ze, o = L[3], ne += o * Re, oe += o * Le, Q += o * Ue, q += o * De, Z += o * Ve, re += o * Pe, ue += o * Ke, Ee += o * Oe, Te += o * xe, Be += o * Me, Ie += o * Fe, Se += o * Ge, be += o * Ae, ke += o * we, Je += o * je, He += o * ze, o = L[4], oe += o * Re, Q += o * Le, q += o * Ue, Z += o * De, re += o * Ve, ue += o * Pe, Ee += o * Ke, Te += o * Oe, Be += o * xe, Ie += o * Me, Se += o * Fe, be += o * Ge, ke += o * Ae, Je += o * we, He += o * je, Ze += o * ze, o = L[5], Q += o * Re, q += o * Le, Z += o * Ue, re += o * De, ue += o * Ve, Ee += o * Pe, Te += o * Ke, Be += o * Oe, Ie += o * xe, Se += o * Me, be += o * Fe, ke += o * Ge, Je += o * Ae, He += o * we, Ze += o * je, _e += o * ze, o = L[6], q += o * Re, Z += o * Le, re += o * Ue, ue += o * De, Ee += o * Ve, Te += o * Pe, Be += o * Ke, Ie += o * Oe, Se += o * xe, be += o * Me, ke += o * Fe, Je += o * Ge, He += o * Ae, Ze += o * we, _e += o * je, rt += o * ze, o = L[7], Z += o * Re, re += o * Le, ue += o * Ue, Ee += o * De, Te += o * Ve, Be += o * Pe, Ie += o * Ke, Se += o * Oe, be += o * xe, ke += o * Me, Je += o * Fe, He += o * Ge, Ze += o * Ae, _e += o * we, rt += o * je, it += o * ze, o = L[8], re += o * Re, ue += o * Le, Ee += o * Ue, Te += o * De, Be += o * Ve, Ie += o * Pe, Se += o * Ke, be += o * Oe, ke += o * xe, Je += o * Me, He += o * Fe, Ze += o * Ge, _e += o * Ae, rt += o * we, it += o * je, ut += o * ze, o = L[9], ue += o * Re, Ee += o * Le, Te += o * Ue, Be += o * De, Ie += o * Ve, Se += o * Pe, be += o * Ke, ke += o * Oe, Je += o * xe, He += o * Me, Ze += o * Fe, _e += o * Ge, rt += o * Ae, it += o * we, ut += o * je,
|
|
11015
|
+
function de(d, L, w) {
|
|
11016
|
+
var o, T, M = 0, K = 0, J = 0, ne = 0, oe = 0, Q = 0, q = 0, Z = 0, re = 0, ue = 0, Ee = 0, Te = 0, Be = 0, Ie = 0, Se = 0, be = 0, ke = 0, Je = 0, He = 0, Ze = 0, _e = 0, rt = 0, it = 0, ut = 0, ht = 0, vt = 0, St = 0, It = 0, Rt = 0, Pt = 0, zt = 0, Re = w[0], Le = w[1], Ue = w[2], De = w[3], Ve = w[4], Pe = w[5], Ke = w[6], Oe = w[7], xe = w[8], Me = w[9], Fe = w[10], Ge = w[11], Ae = w[12], we = w[13], je = w[14], ze = w[15];
|
|
11017
|
+
o = L[0], M += o * Re, K += o * Le, J += o * Ue, ne += o * De, oe += o * Ve, Q += o * Pe, q += o * Ke, Z += o * Oe, re += o * xe, ue += o * Me, Ee += o * Fe, Te += o * Ge, Be += o * Ae, Ie += o * we, Se += o * je, be += o * ze, o = L[1], K += o * Re, J += o * Le, ne += o * Ue, oe += o * De, Q += o * Ve, q += o * Pe, Z += o * Ke, re += o * Oe, ue += o * xe, Ee += o * Me, Te += o * Fe, Be += o * Ge, Ie += o * Ae, Se += o * we, be += o * je, ke += o * ze, o = L[2], J += o * Re, ne += o * Le, oe += o * Ue, Q += o * De, q += o * Ve, Z += o * Pe, re += o * Ke, ue += o * Oe, Ee += o * xe, Te += o * Me, Be += o * Fe, Ie += o * Ge, Se += o * Ae, be += o * we, ke += o * je, Je += o * ze, o = L[3], ne += o * Re, oe += o * Le, Q += o * Ue, q += o * De, Z += o * Ve, re += o * Pe, ue += o * Ke, Ee += o * Oe, Te += o * xe, Be += o * Me, Ie += o * Fe, Se += o * Ge, be += o * Ae, ke += o * we, Je += o * je, He += o * ze, o = L[4], oe += o * Re, Q += o * Le, q += o * Ue, Z += o * De, re += o * Ve, ue += o * Pe, Ee += o * Ke, Te += o * Oe, Be += o * xe, Ie += o * Me, Se += o * Fe, be += o * Ge, ke += o * Ae, Je += o * we, He += o * je, Ze += o * ze, o = L[5], Q += o * Re, q += o * Le, Z += o * Ue, re += o * De, ue += o * Ve, Ee += o * Pe, Te += o * Ke, Be += o * Oe, Ie += o * xe, Se += o * Me, be += o * Fe, ke += o * Ge, Je += o * Ae, He += o * we, Ze += o * je, _e += o * ze, o = L[6], q += o * Re, Z += o * Le, re += o * Ue, ue += o * De, Ee += o * Ve, Te += o * Pe, Be += o * Ke, Ie += o * Oe, Se += o * xe, be += o * Me, ke += o * Fe, Je += o * Ge, He += o * Ae, Ze += o * we, _e += o * je, rt += o * ze, o = L[7], Z += o * Re, re += o * Le, ue += o * Ue, Ee += o * De, Te += o * Ve, Be += o * Pe, Ie += o * Ke, Se += o * Oe, be += o * xe, ke += o * Me, Je += o * Fe, He += o * Ge, Ze += o * Ae, _e += o * we, rt += o * je, it += o * ze, o = L[8], re += o * Re, ue += o * Le, Ee += o * Ue, Te += o * De, Be += o * Ve, Ie += o * Pe, Se += o * Ke, be += o * Oe, ke += o * xe, Je += o * Me, He += o * Fe, Ze += o * Ge, _e += o * Ae, rt += o * we, it += o * je, ut += o * ze, o = L[9], ue += o * Re, Ee += o * Le, Te += o * Ue, Be += o * De, Ie += o * Ve, Se += o * Pe, be += o * Ke, ke += o * Oe, Je += o * xe, He += o * Me, Ze += o * Fe, _e += o * Ge, rt += o * Ae, it += o * we, ut += o * je, ht += o * ze, o = L[10], Ee += o * Re, Te += o * Le, Be += o * Ue, Ie += o * De, Se += o * Ve, be += o * Pe, ke += o * Ke, Je += o * Oe, He += o * xe, Ze += o * Me, _e += o * Fe, rt += o * Ge, it += o * Ae, ut += o * we, ht += o * je, vt += o * ze, o = L[11], Te += o * Re, Be += o * Le, Ie += o * Ue, Se += o * De, be += o * Ve, ke += o * Pe, Je += o * Ke, He += o * Oe, Ze += o * xe, _e += o * Me, rt += o * Fe, it += o * Ge, ut += o * Ae, ht += o * we, vt += o * je, St += o * ze, o = L[12], Be += o * Re, Ie += o * Le, Se += o * Ue, be += o * De, ke += o * Ve, Je += o * Pe, He += o * Ke, Ze += o * Oe, _e += o * xe, rt += o * Me, it += o * Fe, ut += o * Ge, ht += o * Ae, vt += o * we, St += o * je, It += o * ze, o = L[13], Ie += o * Re, Se += o * Le, be += o * Ue, ke += o * De, Je += o * Ve, He += o * Pe, Ze += o * Ke, _e += o * Oe, rt += o * xe, it += o * Me, ut += o * Fe, ht += o * Ge, vt += o * Ae, St += o * we, It += o * je, Rt += o * ze, o = L[14], Se += o * Re, be += o * Le, ke += o * Ue, Je += o * De, He += o * Ve, Ze += o * Pe, _e += o * Ke, rt += o * Oe, it += o * xe, ut += o * Me, ht += o * Fe, vt += o * Ge, St += o * Ae, It += o * we, Rt += o * je, Pt += o * ze, o = L[15], be += o * Re, ke += o * Le, Je += o * Ue, He += o * De, Ze += o * Ve, _e += o * Pe, rt += o * Ke, it += o * Oe, ut += o * xe, ht += o * Me, vt += o * Fe, St += o * Ge, It += o * Ae, Rt += o * we, Pt += o * je, zt += o * ze, M += 38 * ke, K += 38 * Je, J += 38 * He, ne += 38 * Ze, oe += 38 * _e, Q += 38 * rt, q += 38 * it, Z += 38 * ut, re += 38 * ht, ue += 38 * vt, Ee += 38 * St, Te += 38 * It, Be += 38 * Rt, Ie += 38 * Pt, Se += 38 * zt, T = 1, o = M + T + 65535, T = Math.floor(o / 65536), M = o - T * 65536, o = K + T + 65535, T = Math.floor(o / 65536), K = o - T * 65536, o = J + T + 65535, T = Math.floor(o / 65536), J = o - T * 65536, o = ne + T + 65535, T = Math.floor(o / 65536), ne = o - T * 65536, o = oe + T + 65535, T = Math.floor(o / 65536), oe = o - T * 65536, o = Q + T + 65535, T = Math.floor(o / 65536), Q = o - T * 65536, o = q + T + 65535, T = Math.floor(o / 65536), q = o - T * 65536, o = Z + T + 65535, T = Math.floor(o / 65536), Z = o - T * 65536, o = re + T + 65535, T = Math.floor(o / 65536), re = o - T * 65536, o = ue + T + 65535, T = Math.floor(o / 65536), ue = o - T * 65536, o = Ee + T + 65535, T = Math.floor(o / 65536), Ee = o - T * 65536, o = Te + T + 65535, T = Math.floor(o / 65536), Te = o - T * 65536, o = Be + T + 65535, T = Math.floor(o / 65536), Be = o - T * 65536, o = Ie + T + 65535, T = Math.floor(o / 65536), Ie = o - T * 65536, o = Se + T + 65535, T = Math.floor(o / 65536), Se = o - T * 65536, o = be + T + 65535, T = Math.floor(o / 65536), be = o - T * 65536, M += T - 1 + 37 * (T - 1), T = 1, o = M + T + 65535, T = Math.floor(o / 65536), M = o - T * 65536, o = K + T + 65535, T = Math.floor(o / 65536), K = o - T * 65536, o = J + T + 65535, T = Math.floor(o / 65536), J = o - T * 65536, o = ne + T + 65535, T = Math.floor(o / 65536), ne = o - T * 65536, o = oe + T + 65535, T = Math.floor(o / 65536), oe = o - T * 65536, o = Q + T + 65535, T = Math.floor(o / 65536), Q = o - T * 65536, o = q + T + 65535, T = Math.floor(o / 65536), q = o - T * 65536, o = Z + T + 65535, T = Math.floor(o / 65536), Z = o - T * 65536, o = re + T + 65535, T = Math.floor(o / 65536), re = o - T * 65536, o = ue + T + 65535, T = Math.floor(o / 65536), ue = o - T * 65536, o = Ee + T + 65535, T = Math.floor(o / 65536), Ee = o - T * 65536, o = Te + T + 65535, T = Math.floor(o / 65536), Te = o - T * 65536, o = Be + T + 65535, T = Math.floor(o / 65536), Be = o - T * 65536, o = Ie + T + 65535, T = Math.floor(o / 65536), Ie = o - T * 65536, o = Se + T + 65535, T = Math.floor(o / 65536), Se = o - T * 65536, o = be + T + 65535, T = Math.floor(o / 65536), be = o - T * 65536, M += T - 1 + 37 * (T - 1), d[0] = M, d[1] = K, d[2] = J, d[3] = ne, d[4] = oe, d[5] = Q, d[6] = q, d[7] = Z, d[8] = re, d[9] = ue, d[10] = Ee, d[11] = Te, d[12] = Be, d[13] = Ie, d[14] = Se, d[15] = be;
|
|
11003
11018
|
}
|
|
11004
11019
|
return Pr;
|
|
11005
11020
|
}
|
|
@@ -11007,8 +11022,8 @@ var Kr, Ka;
|
|
|
11007
11022
|
function gs() {
|
|
11008
11023
|
if (Ka) return Kr;
|
|
11009
11024
|
Ka = 1;
|
|
11010
|
-
var t =
|
|
11011
|
-
ve(),
|
|
11025
|
+
var t = he();
|
|
11026
|
+
ve(), dt(), $t(), Kr = t.kem = t.kem || {};
|
|
11012
11027
|
var e = t.jsbn.BigInteger;
|
|
11013
11028
|
t.kem.rsa = {}, t.kem.rsa.create = function(f, I) {
|
|
11014
11029
|
I = I || {};
|
|
@@ -11051,7 +11066,7 @@ var Or, Oa;
|
|
|
11051
11066
|
function ys() {
|
|
11052
11067
|
if (Oa) return Or;
|
|
11053
11068
|
Oa = 1;
|
|
11054
|
-
var t =
|
|
11069
|
+
var t = he();
|
|
11055
11070
|
ve(), Or = t.log = t.log || {}, t.log.levels = [
|
|
11056
11071
|
"none",
|
|
11057
11072
|
"error",
|
|
@@ -11175,8 +11190,8 @@ var xr = { exports: {} }, Fa;
|
|
|
11175
11190
|
function ms() {
|
|
11176
11191
|
if (Fa) return xr.exports;
|
|
11177
11192
|
Fa = 1;
|
|
11178
|
-
var t =
|
|
11179
|
-
Nt(), yt(), _t(), wt(), Vt(), nn(),
|
|
11193
|
+
var t = he();
|
|
11194
|
+
Nt(), yt(), _t(), wt(), Vt(), nn(), dt(), ve(), Yr();
|
|
11180
11195
|
var e = t.asn1, a = xr.exports = t.pkcs7 = t.pkcs7 || {};
|
|
11181
11196
|
a.messageFromPem = function(u) {
|
|
11182
11197
|
var y = t.pem.decode(u)[0];
|
|
@@ -11200,21 +11215,21 @@ function ms() {
|
|
|
11200
11215
|
var v = new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo.");
|
|
11201
11216
|
throw v.errors = C, v;
|
|
11202
11217
|
}
|
|
11203
|
-
var s = e.derToOid(y.contentType),
|
|
11218
|
+
var s = e.derToOid(y.contentType), h;
|
|
11204
11219
|
switch (s) {
|
|
11205
11220
|
case t.pki.oids.envelopedData:
|
|
11206
|
-
|
|
11221
|
+
h = a.createEnvelopedData();
|
|
11207
11222
|
break;
|
|
11208
11223
|
case t.pki.oids.encryptedData:
|
|
11209
|
-
|
|
11224
|
+
h = a.createEncryptedData();
|
|
11210
11225
|
break;
|
|
11211
11226
|
case t.pki.oids.signedData:
|
|
11212
|
-
|
|
11227
|
+
h = a.createSignedData();
|
|
11213
11228
|
break;
|
|
11214
11229
|
default:
|
|
11215
11230
|
throw new Error("Cannot read PKCS#7 message. ContentType with OID " + s + " is not (yet) supported.");
|
|
11216
11231
|
}
|
|
11217
|
-
return
|
|
11232
|
+
return h.fromAsn1(y.content.value[0]), h;
|
|
11218
11233
|
}, a.createSignedData = function() {
|
|
11219
11234
|
var u = null;
|
|
11220
11235
|
return u = {
|
|
@@ -11230,14 +11245,14 @@ function ms() {
|
|
|
11230
11245
|
signerInfos: [],
|
|
11231
11246
|
fromAsn1: function(v) {
|
|
11232
11247
|
if (U(u, v, a.asn1.signedDataValidator), u.certificates = [], u.crls = [], u.digestAlgorithmIdentifiers = [], u.contentInfo = null, u.signerInfos = [], u.rawCapture.certificates)
|
|
11233
|
-
for (var s = u.rawCapture.certificates.value,
|
|
11234
|
-
u.certificates.push(t.pki.certificateFromAsn1(s[
|
|
11248
|
+
for (var s = u.rawCapture.certificates.value, h = 0; h < s.length; ++h)
|
|
11249
|
+
u.certificates.push(t.pki.certificateFromAsn1(s[h]));
|
|
11235
11250
|
},
|
|
11236
11251
|
toAsn1: function() {
|
|
11237
11252
|
u.contentInfo || u.sign();
|
|
11238
11253
|
for (var v = [], s = 0; s < u.certificates.length; ++s)
|
|
11239
11254
|
v.push(t.pki.certificateToAsn1(u.certificates[s]));
|
|
11240
|
-
var
|
|
11255
|
+
var h = [], m = e.create(e.Class.CONTEXT_SPECIFIC, 0, !0, [
|
|
11241
11256
|
e.create(e.Class.UNIVERSAL, e.Type.SEQUENCE, !0, [
|
|
11242
11257
|
// Version
|
|
11243
11258
|
e.create(
|
|
@@ -11259,8 +11274,8 @@ function ms() {
|
|
|
11259
11274
|
]);
|
|
11260
11275
|
return v.length > 0 && m.value[0].value.push(
|
|
11261
11276
|
e.create(e.Class.CONTEXT_SPECIFIC, 0, !0, v)
|
|
11262
|
-
),
|
|
11263
|
-
e.create(e.Class.CONTEXT_SPECIFIC, 1, !0,
|
|
11277
|
+
), h.length > 0 && m.value[0].value.push(
|
|
11278
|
+
e.create(e.Class.CONTEXT_SPECIFIC, 1, !0, h)
|
|
11264
11279
|
), m.value[0].value.push(
|
|
11265
11280
|
e.create(
|
|
11266
11281
|
e.Class.UNIVERSAL,
|
|
@@ -11326,10 +11341,10 @@ function ms() {
|
|
|
11326
11341
|
* to also sign along with the content.
|
|
11327
11342
|
*/
|
|
11328
11343
|
addSigner: function(v) {
|
|
11329
|
-
var s = v.issuer,
|
|
11344
|
+
var s = v.issuer, h = v.serialNumber;
|
|
11330
11345
|
if (v.certificate) {
|
|
11331
11346
|
var m = v.certificate;
|
|
11332
|
-
typeof m == "string" && (m = t.pki.certificateFromPem(m)), s = m.issuer.attributes,
|
|
11347
|
+
typeof m == "string" && (m = t.pki.certificateFromPem(m)), s = m.issuer.attributes, h = m.serialNumber;
|
|
11333
11348
|
}
|
|
11334
11349
|
var B = v.key;
|
|
11335
11350
|
if (!B)
|
|
@@ -11372,7 +11387,7 @@ function ms() {
|
|
|
11372
11387
|
key: B,
|
|
11373
11388
|
version: 1,
|
|
11374
11389
|
issuer: s,
|
|
11375
|
-
serialNumber:
|
|
11390
|
+
serialNumber: h,
|
|
11376
11391
|
digestAlgorithm: R,
|
|
11377
11392
|
signatureAlgorithm: t.pki.oids.rsaEncryption,
|
|
11378
11393
|
signature: null,
|
|
@@ -11414,8 +11429,8 @@ function ms() {
|
|
|
11414
11429
|
);
|
|
11415
11430
|
}
|
|
11416
11431
|
if (u.signers.length !== 0) {
|
|
11417
|
-
var
|
|
11418
|
-
C(
|
|
11432
|
+
var h = y();
|
|
11433
|
+
C(h);
|
|
11419
11434
|
}
|
|
11420
11435
|
},
|
|
11421
11436
|
verify: function() {
|
|
@@ -11440,8 +11455,8 @@ function ms() {
|
|
|
11440
11455
|
}, u;
|
|
11441
11456
|
function y() {
|
|
11442
11457
|
for (var v = {}, s = 0; s < u.signers.length; ++s) {
|
|
11443
|
-
var
|
|
11444
|
-
m in v || (v[m] = t.md[t.pki.oids[m]].create()),
|
|
11458
|
+
var h = u.signers[s], m = h.digestAlgorithm;
|
|
11459
|
+
m in v || (v[m] = t.md[t.pki.oids[m]].create()), h.authenticatedAttributes.length === 0 ? h.md = v[m] : h.md = t.md[t.pki.oids[m]].create();
|
|
11445
11460
|
}
|
|
11446
11461
|
u.digestAlgorithmIdentifiers = [];
|
|
11447
11462
|
for (var m in v)
|
|
@@ -11467,14 +11482,14 @@ function ms() {
|
|
|
11467
11482
|
throw new Error(
|
|
11468
11483
|
"Could not sign PKCS#7 message; there is no content to sign."
|
|
11469
11484
|
);
|
|
11470
|
-
var
|
|
11485
|
+
var h = e.derToOid(u.contentInfo.value[0].value), m = e.toDer(s);
|
|
11471
11486
|
m.getByte(), e.getBerValueLength(m), m = m.getBytes();
|
|
11472
11487
|
for (var B in v)
|
|
11473
11488
|
v[B].start().update(m);
|
|
11474
11489
|
for (var R = /* @__PURE__ */ new Date(), c = 0; c < u.signers.length; ++c) {
|
|
11475
11490
|
var i = u.signers[c];
|
|
11476
11491
|
if (i.authenticatedAttributes.length === 0) {
|
|
11477
|
-
if (
|
|
11492
|
+
if (h !== t.pki.oids.data)
|
|
11478
11493
|
throw new Error(
|
|
11479
11494
|
"Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data."
|
|
11480
11495
|
);
|
|
@@ -11589,10 +11604,10 @@ function ms() {
|
|
|
11589
11604
|
*/
|
|
11590
11605
|
findRecipient: function(y) {
|
|
11591
11606
|
for (var C = y.issuer.attributes, v = 0; v < u.recipients.length; ++v) {
|
|
11592
|
-
var s = u.recipients[v],
|
|
11593
|
-
if (s.serialNumber === y.serialNumber &&
|
|
11607
|
+
var s = u.recipients[v], h = s.issuer;
|
|
11608
|
+
if (s.serialNumber === y.serialNumber && h.length === C.length) {
|
|
11594
11609
|
for (var m = !0, B = 0; B < C.length; ++B)
|
|
11595
|
-
if (
|
|
11610
|
+
if (h[B].type !== C[B].type || h[B].value !== C[B].value) {
|
|
11596
11611
|
m = !1;
|
|
11597
11612
|
break;
|
|
11598
11613
|
}
|
|
@@ -11656,19 +11671,19 @@ function ms() {
|
|
|
11656
11671
|
encrypt: function(y, C) {
|
|
11657
11672
|
if (u.encryptedContent.content === void 0) {
|
|
11658
11673
|
C = C || u.encryptedContent.algorithm, y = y || u.encryptedContent.key;
|
|
11659
|
-
var v, s,
|
|
11674
|
+
var v, s, h;
|
|
11660
11675
|
switch (C) {
|
|
11661
11676
|
case t.pki.oids["aes128-CBC"]:
|
|
11662
|
-
v = 16, s = 16,
|
|
11677
|
+
v = 16, s = 16, h = t.aes.createEncryptionCipher;
|
|
11663
11678
|
break;
|
|
11664
11679
|
case t.pki.oids["aes192-CBC"]:
|
|
11665
|
-
v = 24, s = 16,
|
|
11680
|
+
v = 24, s = 16, h = t.aes.createEncryptionCipher;
|
|
11666
11681
|
break;
|
|
11667
11682
|
case t.pki.oids["aes256-CBC"]:
|
|
11668
|
-
v = 32, s = 16,
|
|
11683
|
+
v = 32, s = 16, h = t.aes.createEncryptionCipher;
|
|
11669
11684
|
break;
|
|
11670
11685
|
case t.pki.oids["des-EDE3-CBC"]:
|
|
11671
|
-
v = 24, s = 8,
|
|
11686
|
+
v = 24, s = 8, h = t.des.createEncryptionCipher;
|
|
11672
11687
|
break;
|
|
11673
11688
|
default:
|
|
11674
11689
|
throw new Error("Unsupported symmetric cipher, OID " + C);
|
|
@@ -11680,7 +11695,7 @@ function ms() {
|
|
|
11680
11695
|
u.encryptedContent.algorithm = C, u.encryptedContent.key = y, u.encryptedContent.parameter = t.util.createBuffer(
|
|
11681
11696
|
t.random.getBytes(s)
|
|
11682
11697
|
);
|
|
11683
|
-
var m =
|
|
11698
|
+
var m = h(y);
|
|
11684
11699
|
if (m.start(u.encryptedContent.parameter.copy()), m.update(u.content), !m.finish())
|
|
11685
11700
|
throw new Error("Symmetric encryption failed.");
|
|
11686
11701
|
u.encryptedContent.content = m.output;
|
|
@@ -11852,8 +11867,8 @@ function ms() {
|
|
|
11852
11867
|
else if (u.type === t.pki.oids.signingTime) {
|
|
11853
11868
|
var C = /* @__PURE__ */ new Date("1950-01-01T00:00:00Z"), v = /* @__PURE__ */ new Date("2050-01-01T00:00:00Z"), s = u.value;
|
|
11854
11869
|
if (typeof s == "string") {
|
|
11855
|
-
var
|
|
11856
|
-
isNaN(
|
|
11870
|
+
var h = Date.parse(s);
|
|
11871
|
+
isNaN(h) ? s.length === 13 ? s = e.utcTimeToDate(s) : s = e.generalizedTimeToDate(s) : s = new Date(h);
|
|
11857
11872
|
}
|
|
11858
11873
|
s >= C && s < v ? y = e.create(
|
|
11859
11874
|
e.Class.UNIVERSAL,
|
|
@@ -11921,8 +11936,8 @@ function ms() {
|
|
|
11921
11936
|
function U(u, y, C) {
|
|
11922
11937
|
var v = {}, s = [];
|
|
11923
11938
|
if (!e.validate(y, C, v, s)) {
|
|
11924
|
-
var
|
|
11925
|
-
throw
|
|
11939
|
+
var h = new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message.");
|
|
11940
|
+
throw h.errors = h, h;
|
|
11926
11941
|
}
|
|
11927
11942
|
var m = e.derToOid(v.contentType);
|
|
11928
11943
|
if (m !== t.pki.oids.data)
|
|
@@ -11986,7 +12001,7 @@ var Mr = { exports: {} }, Ga;
|
|
|
11986
12001
|
function Cs() {
|
|
11987
12002
|
if (Ga) return Mr.exports;
|
|
11988
12003
|
Ga = 1;
|
|
11989
|
-
var t =
|
|
12004
|
+
var t = he();
|
|
11990
12005
|
Nt(), Gt(), qr(), jt(), ve();
|
|
11991
12006
|
var e = Mr.exports = t.ssh = t.ssh || {};
|
|
11992
12007
|
e.privateKeyToPutty = function(S, p, r) {
|
|
@@ -12011,9 +12026,9 @@ function Cs() {
|
|
|
12011
12026
|
v -= v % 16;
|
|
12012
12027
|
var s = I(y.bytes());
|
|
12013
12028
|
s.truncate(s.length() - v + y.length()), y.putBuffer(s);
|
|
12014
|
-
var
|
|
12015
|
-
|
|
12016
|
-
var m = t.aes.createEncryptionCipher(
|
|
12029
|
+
var h = t.util.createBuffer();
|
|
12030
|
+
h.putBuffer(I("\0\0\0\0", p)), h.putBuffer(I("\0\0\0", p));
|
|
12031
|
+
var m = t.aes.createEncryptionCipher(h.truncate(8), "CBC");
|
|
12017
12032
|
m.start(t.util.createBuffer().fillWithByte(0, 16)), m.update(y.copy()), m.finish();
|
|
12018
12033
|
var B = m.output;
|
|
12019
12034
|
B.truncate(16), C = t.util.encode64(B.bytes(), 64);
|
|
@@ -12072,7 +12087,7 @@ Private-MAC: ` + i.digest().toHex() + `\r
|
|
|
12072
12087
|
}
|
|
12073
12088
|
var ja, za;
|
|
12074
12089
|
function Es() {
|
|
12075
|
-
return za || (za = 1, ja =
|
|
12090
|
+
return za || (za = 1, ja = he(), Nt(), ps(), yt(), zr(), _t(), hs(), Gt(), gs(), ys(), vs(), sn(), Jr(), Vt(), tn(), on(), ms(), ln(), rn(), $a(), Hr(), dt(), en(), Cs(), un(), ve()), ja;
|
|
12076
12091
|
}
|
|
12077
12092
|
Es();
|
|
12078
12093
|
const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "复制代码", expand: "展开", collapse: "折叠", copy: "复制", reload: "重新生成", like: "点赞", dislike: "点踩" }, newChat: "创建新对话", placeholder: "请输入消息,按 Enter 发送", loading: "正在生成中,请稍候...", thinking: "正在思考中...", thinked: "已深度思考", note: "内容由AI生成,无法确保准确性和完整性,仅供参考", empty: "参考npm使用文档,开始你的对话吧。npm地址:https://www.npmjs.com/package/@kernelift/ai-chat", welcome: "欢迎使用AI聊天组件,该工具是由Kernelift开发的开源项目,旨在为用户提供便捷的AI对话体验。" }, fn = {
|
|
@@ -12120,7 +12135,10 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12120
12135
|
onCopy: {},
|
|
12121
12136
|
i18n: { default: () => fn },
|
|
12122
12137
|
autoScroll: { type: Boolean, default: !0 },
|
|
12123
|
-
autoScrollPauseTime: { default: 3e3 }
|
|
12138
|
+
autoScrollPauseTime: { default: 3e3 },
|
|
12139
|
+
markdownPlugins: {},
|
|
12140
|
+
markdownOptions: {},
|
|
12141
|
+
onMarkdownAfterRender: {}
|
|
12124
12142
|
}, {
|
|
12125
12143
|
messages: {
|
|
12126
12144
|
required: !0,
|
|
@@ -12137,16 +12155,16 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12137
12155
|
emits: /* @__PURE__ */ Ct(["send", "cancel", "clear", "change-record", "change-collapse", "change-theme", "change-aside-width", "click-logo", "bubble-event", "close-workspace", "scroll-bottom"], ["update:messages", "update:modelValue", "update:loading", "update:record-id"]),
|
|
12138
12156
|
setup(t, { expose: e, emit: a }) {
|
|
12139
12157
|
Ha((q) => ({
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12148
|
-
|
|
12149
|
-
|
|
12158
|
+
a7180b54: q.primaryColor,
|
|
12159
|
+
cd4ab700: r.value,
|
|
12160
|
+
v5e833b12: S.value[0],
|
|
12161
|
+
v5e833ad4: S.value[1],
|
|
12162
|
+
v5e833a96: S.value[2],
|
|
12163
|
+
v5e833a58: S.value[3],
|
|
12164
|
+
v5e833a1a: S.value[4],
|
|
12165
|
+
v59471d48: J.value,
|
|
12166
|
+
v34cb4bf6: ne.value,
|
|
12167
|
+
d9c9e7b0: K.value
|
|
12150
12168
|
}));
|
|
12151
12169
|
const f = t, I = parseFloat(getComputedStyle(document.documentElement).fontSize), S = Ne(() => is(f.primaryColor, 5, 0.8, 4));
|
|
12152
12170
|
function p(q) {
|
|
@@ -12157,7 +12175,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12157
12175
|
const r = Ne(() => p(f.primaryColor)), g = Ne(() => f.records || []), l = gt(t, "messages"), b = gt(t, "modelValue"), U = gt(t, "loading"), E = tt(null), u = gt(t, "record-id"), y = Kt(f.uuid + "__kl-ai-chat_enable-chat", f.enableNet), C = Kt(f.uuid + "__kl-ai-chat_enable-think", f.enableThink), v = a, s = (q) => {
|
|
12158
12176
|
const Z = !E.value;
|
|
12159
12177
|
U.value = !0, v("send", q, C.value, y.value, Z);
|
|
12160
|
-
},
|
|
12178
|
+
}, h = () => {
|
|
12161
12179
|
U.value = !1, v("cancel");
|
|
12162
12180
|
};
|
|
12163
12181
|
function m(q) {
|
|
@@ -12248,10 +12266,10 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12248
12266
|
function Qe() {
|
|
12249
12267
|
v("close-workspace");
|
|
12250
12268
|
}
|
|
12251
|
-
function
|
|
12269
|
+
function de(q) {
|
|
12252
12270
|
b.value = q;
|
|
12253
12271
|
}
|
|
12254
|
-
function
|
|
12272
|
+
function d() {
|
|
12255
12273
|
E.value = null, u.value = void 0, l.value = [], W.value && _(!1), v("clear");
|
|
12256
12274
|
}
|
|
12257
12275
|
function L() {
|
|
@@ -12309,7 +12327,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12309
12327
|
actions: t.recordActions,
|
|
12310
12328
|
i18n: t.i18n,
|
|
12311
12329
|
"has-theme-mode": t.hasThemeMode,
|
|
12312
|
-
onClear:
|
|
12330
|
+
onClear: d,
|
|
12313
12331
|
onChange: m,
|
|
12314
12332
|
onClickLogo: Z[1] || (Z[1] = (re) => v("click-logo")),
|
|
12315
12333
|
onScrollBottom: Z[2] || (Z[2] = (re) => v("scroll-bottom")),
|
|
@@ -12418,6 +12436,9 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12418
12436
|
"on-copy": t.onCopy,
|
|
12419
12437
|
i18n: t.i18n,
|
|
12420
12438
|
"is-mobile": W.value,
|
|
12439
|
+
plugins: t.markdownPlugins,
|
|
12440
|
+
options: t.markdownOptions,
|
|
12441
|
+
"after-render": t.onMarkdownAfterRender,
|
|
12421
12442
|
onBubbleEvent: ee
|
|
12422
12443
|
}, {
|
|
12423
12444
|
header: Ye(() => [
|
|
@@ -12457,7 +12478,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12457
12478
|
}, void 0, !0)
|
|
12458
12479
|
]),
|
|
12459
12480
|
_: 2
|
|
12460
|
-
}, 1032, ["modelValue", "onUpdate:modelValue", "markdown-class", "is-last", "on-copy", "i18n", "is-mobile"]))), 128)),
|
|
12481
|
+
}, 1032, ["modelValue", "onUpdate:modelValue", "markdown-class", "is-last", "on-copy", "i18n", "is-mobile", "plugins", "options", "after-render"]))), 128)),
|
|
12461
12482
|
t.isGenerateLoading ? (pe(), Zt(Xr, {
|
|
12462
12483
|
key: 0,
|
|
12463
12484
|
"model-value": {
|
|
@@ -12469,7 +12490,10 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12469
12490
|
i18n: t.i18n,
|
|
12470
12491
|
"theme-mode": t.themeMode,
|
|
12471
12492
|
"markdown-class": Q.value,
|
|
12472
|
-
"is-mobile": W.value
|
|
12493
|
+
"is-mobile": W.value,
|
|
12494
|
+
plugins: t.markdownPlugins,
|
|
12495
|
+
options: t.markdownOptions,
|
|
12496
|
+
"after-render": t.onMarkdownAfterRender
|
|
12473
12497
|
}, {
|
|
12474
12498
|
content: Ye(() => [
|
|
12475
12499
|
fe(q.$slots, "bubble-loading-content", { mobile: W.value }, () => [
|
|
@@ -12482,7 +12506,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12482
12506
|
], !0)
|
|
12483
12507
|
]),
|
|
12484
12508
|
_: 3
|
|
12485
|
-
}, 8, ["model-value", "i18n", "theme-mode", "markdown-class", "is-mobile"])) : We("", !0)
|
|
12509
|
+
}, 8, ["model-value", "i18n", "theme-mode", "markdown-class", "is-mobile", "plugins", "options", "after-render"])) : We("", !0)
|
|
12486
12510
|
])
|
|
12487
12511
|
], 544)) : (pe(), ye("div", Ls, [
|
|
12488
12512
|
fe(q.$slots, "empty", { mobile: W.value }, () => [
|
|
@@ -12502,7 +12526,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12502
12526
|
(pe(!0), ye(Mt, null, Ft(B.value, (re) => (pe(), ye("div", {
|
|
12503
12527
|
key: re,
|
|
12504
12528
|
class: "kernelift-chat-container__next-tip",
|
|
12505
|
-
onClick: () =>
|
|
12529
|
+
onClick: () => de(re)
|
|
12506
12530
|
}, Xe(re), 9, Ps))), 128))
|
|
12507
12531
|
])) : We("", !0)
|
|
12508
12532
|
])
|
|
@@ -12531,7 +12555,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12531
12555
|
loading: U.value,
|
|
12532
12556
|
i18n: t.i18n,
|
|
12533
12557
|
onSend: s,
|
|
12534
|
-
onCancel:
|
|
12558
|
+
onCancel: h
|
|
12535
12559
|
}, {
|
|
12536
12560
|
tools: Ye(({ value: re, loading: ue }) => [
|
|
12537
12561
|
fe(q.$slots, "sender-footer-tools", {
|
|
@@ -12602,7 +12626,7 @@ const Ss = { button: { think: "深度思考", net: "联网搜索", copyCode: "
|
|
|
12602
12626
|
])
|
|
12603
12627
|
], 2));
|
|
12604
12628
|
}
|
|
12605
|
-
}), Qs = /* @__PURE__ */ kt(Fs, [["__scopeId", "data-v-
|
|
12629
|
+
}), Qs = /* @__PURE__ */ kt(Fs, [["__scopeId", "data-v-a2625f78"]]);
|
|
12606
12630
|
class Js {
|
|
12607
12631
|
controller;
|
|
12608
12632
|
buffer;
|