n20-common-lib 1.3.71 → 1.3.73

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.
@@ -0,0 +1,1606 @@
1
+ function Certificate(r) {
2
+ var t = {}
3
+ if (
4
+ ((t.certInfo = null),
5
+ (t._parseCert = function (r) {
6
+ var t = TCACore.getInstance(),
7
+ e = { certStoreNameArr: ['MY', 'Address'], b64Cert: r }
8
+ e = tcu.json2Str(e)
9
+ var n
10
+ try {
11
+ n = t.call('Certificate/parseCert', e)
12
+ } catch (r) {
13
+ return TCACErr.throwErr(r, ERRMAP.CERTIFICATE_PARSE_ERROR), null
14
+ }
15
+ return n.certInfo
16
+ }),
17
+ (this._keyStoreName = ''),
18
+ (this._keyStoreType = ''),
19
+ (this._keyStoreContainer = ''),
20
+ (this._keySpec = 0),
21
+ (this._certStoreName = ''),
22
+ tcu.isStr(r))
23
+ )
24
+ (t.certInfo = t._parseCert(r)), (t.certInfo.b64 = r)
25
+ else {
26
+ if (!tcu.isObj(r)) return void TCACErr.throwErr(ERRMAP.CERTIFICATE_INIT_WRONGTYPE)
27
+ t.certInfo = r
28
+ }
29
+ ;(this._keyStoreName = t.certInfo.keyStoreName),
30
+ (this._keyStoreType = t.certInfo.keyStoreType),
31
+ (this._keyStoreContainer = t.certInfo.certContainerName),
32
+ (this._keySpec = t.certInfo.certKeySpec),
33
+ (this._certStoreName = t.certInfo.certStoreName),
34
+ (this.serialNumber = function () {
35
+ return t.certInfo.SN
36
+ }),
37
+ (this.subject = function () {
38
+ return t.certInfo.subject.winDn
39
+ }),
40
+ (this.issuer = function () {
41
+ return t.certInfo.issuer.winDn
42
+ }),
43
+ (this.notBefore = function () {
44
+ return t.certInfo.notBefore
45
+ }),
46
+ (this.notAfter = function () {
47
+ return t.certInfo.notAfter
48
+ }),
49
+ (this.crlUrl = function () {
50
+ return t.certInfo.crlUrl
51
+ }),
52
+ (this.signAlg = function () {
53
+ return tcu.convSignAlg2Str(t.certInfo.signAlg)
54
+ }),
55
+ (this.publicKeyAlg = function () {
56
+ return tcu.convPubKeyAlg2Str(t.certInfo.pubKeyAlg)
57
+ }),
58
+ (this.publicKeySize = function () {
59
+ return tcu.convPubKeyAlg2Size(t.certInfo.pubKeyAlg)
60
+ }),
61
+ (this.keyUsage = function () {
62
+ return tcu.convKeyUsageNum2Arr(t.certInfo.keyUsage)
63
+ }),
64
+ (this.extededKeyUsage = function () {
65
+ return tcu.convExtKeyUsageOID2Name(t.certInfo.extKeyUsage)
66
+ }),
67
+ (this.toBase64 = function () {
68
+ return t.certInfo.b64
69
+ }),
70
+ (this.signMessage = function (r, e, n, i) {
71
+ if (((e = void 0 === e || e), void 0 === n)) n = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SM3
72
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), n)) return null
73
+ if (!tcu.isStr(r)) return TCACErr.throwErr(ERRMAP.SIGN_INPUT_ERROR), null
74
+ if (i == TCA.IO.B64 && (r === '' || r.length % 4 !== 0)) return TCACErr.throwErr(ERRMAP.SIGN_INPUT_ERROR), null
75
+ i = void 0 === i ? TCA.IO.U8 : i
76
+ var c = TCACore.getInstance(),
77
+ a = TCA.IO.MSG | i,
78
+ s = r,
79
+ o = TCA.IO.MSG | TCA.IO.B64,
80
+ A = 'noSet',
81
+ u = tcu.tcaAlg2SDKAlg(n),
82
+ C = c.getCfg('signPkcs7WithAttr'),
83
+ l = ['MY', 'Address'],
84
+ T = [t.certInfo.certID],
85
+ E = tcu.sign(l, T, u, !1, !0, C, e, !0, a, s, o, A)
86
+ return E != null ? E.result : null
87
+ }),
88
+ (this.signMessageRaw = function (r, e, n) {
89
+ if (void 0 === e) e = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SM3
90
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), e)) return null
91
+ if (!tcu.isStr(r)) return TCACErr.throwErr(ERRMAP.SIGN_INPUT_ERROR), null
92
+ if (n == TCA.IO.B64 && (r === '' || r.length % 4 !== 0)) return TCACErr.throwErr(ERRMAP.SIGN_INPUT_ERROR), null
93
+ n = void 0 === n ? TCA.IO.U8 : n
94
+ var i = TCA.IO.MSG | n,
95
+ c = r,
96
+ a = TCA.IO.MSG | TCA.IO.B64,
97
+ s = 'noSet',
98
+ o = tcu.tcaAlg2SDKAlg(e),
99
+ A = ['MY', 'Address'],
100
+ u = [t.certInfo.certID],
101
+ C = tcu.sign(A, u, o, !1, !1, !1, !1, !1, i, c, a, s)
102
+ return C != null ? C.result : null
103
+ }),
104
+ (this.signFile = function (r, e, n, i, c) {
105
+ if (((n = void 0 === n || n), (i = void 0 === i ? TCA.IO.BIN : i), void 0 === c))
106
+ c = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SM3
107
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), c)) return null
108
+ var a = TCACore.getInstance(),
109
+ s = TCA.IO.FILE | i,
110
+ o = r,
111
+ A = TCA.IO.FILE | i,
112
+ u = e,
113
+ C = tcu.tcaAlg2SDKAlg(c),
114
+ l = a.getCfg('signPkcs7WithAttr'),
115
+ T = ['MY', 'Address'],
116
+ E = [t.certInfo.certID],
117
+ R = tcu.sign(T, E, C, !1, !0, l, n, !0, s, o, A, u)
118
+ return R != null
119
+ }),
120
+ (this.signFile2Msg = function (r, e, n, i) {
121
+ if (((e = void 0 === e || e), (n = void 0 === n ? TCA.IO.BIN : n), void 0 === i))
122
+ i = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SM3
123
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), i)) return null
124
+ var c = TCACore.getInstance(),
125
+ a = TCA.IO.FILE | n,
126
+ s = r,
127
+ o = TCA.IO.MSG | TCA.IO.B64,
128
+ A = 'noset',
129
+ u = tcu.tcaAlg2SDKAlg(i),
130
+ C = c.getCfg('signPkcs7WithAttr'),
131
+ l = ['MY', 'Address'],
132
+ T = [t.certInfo.certID],
133
+ E = tcu.sign(l, T, u, !1, !0, C, e, !0, a, s, o, A)
134
+ return E != null ? E.result : null
135
+ }),
136
+ (this.signFileRaw = function (r, e, n) {
137
+ if (((e = void 0 === e ? TCA.IO.BIN : e), void 0 === n)) n = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SM3
138
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), n)) return null
139
+ var i = TCA.IO.FILE | e,
140
+ c = r,
141
+ a = TCA.IO.MSG | TCA.IO.B64,
142
+ s = 'noSet',
143
+ o = tcu.tcaAlg2SDKAlg(n),
144
+ A = ['MY', 'Address'],
145
+ u = [t.certInfo.certID],
146
+ C = tcu.sign(A, u, o, !1, !1, !1, !1, !1, i, c, a, s)
147
+ return C != null ? C.result : null
148
+ }),
149
+ (this.encryptMessage = function (r, t) {
150
+ void 0 === t && ((t = this.publicKeyAlg() == 'SM2' ? TCA.SM4 : TCA.DES3), (t = tcu.tcaAlg2SDKAlg(t)))
151
+ var e = [this.toBase64()],
152
+ n = TCA.IO.MSG | TCA.IO.U8,
153
+ i = r,
154
+ c = TCA.IO.MSG | TCA.IO.B64,
155
+ a = 'noSet',
156
+ s = tcu.enc(e, t, !0, n, i, c, a)
157
+ return s != null ? s.result : null
158
+ }),
159
+ (this.encryptMessageRaw = function (r) {
160
+ var t = [this.toBase64()],
161
+ e = TCA.IO.MSG | TCA.IO.U8,
162
+ n = r,
163
+ i = TCA.IO.MSG | TCA.IO.B64,
164
+ c = 'noSet',
165
+ a = tcu.tcaAlg2SDKAlg(TCA.SM4),
166
+ s = tcu.enc(t, a, !1, e, n, i, c)
167
+ return s != null ? s.result : null
168
+ }),
169
+ (this.encryptFile = function (r, t, e, n) {
170
+ ;(e = void 0 === e ? TCA.IO.BIN : e), (n = tcu.tcaAlg2SDKAlg(TCA.SM4))
171
+ var i = [this.toBase64()],
172
+ c = TCA.IO.FILE | e,
173
+ a = r,
174
+ s = TCA.IO.FILE | e,
175
+ o = tcu.enc(i, n, !0, c, a, s, t)
176
+ return o != null || null
177
+ }),
178
+ (this.verifyMessageRaw = function (r, t, e, n) {
179
+ if (void 0 === e) e = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SHA256
180
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), e)) return null
181
+ n = void 0 === n ? TCA.IO.U8 : n
182
+ var i = this.toBase64(),
183
+ c = TCA.VERIFYOPT.CONTEXT_IN_INPUT | TCA.VERIFYOPT.CERT_IN_INPUT,
184
+ a = TCA.IO.MSG | TCA.IO.B64,
185
+ s = r,
186
+ o = TCA.IO.MSG | n,
187
+ A = tcu.tcaAlg2SDKAlg(e),
188
+ u = tcu.verify(i, !1, !1, A, c, a, s, o, t)
189
+ return u != null && u.verifyResult
190
+ }),
191
+ (this.verifyFileRaw = function (r, t, e, n) {
192
+ if (void 0 === n) n = this.publicKeyAlg() === 'RSA' ? TCA.SHA1 : TCA.SHA256
193
+ else if (!tcu.checkHashAlg(this.publicKeyAlg(), n)) return null
194
+ var i = this.toBase64(),
195
+ c = TCA.VERIFYOPT.CONTEXT_IN_INPUT | TCA.VERIFYOPT.CERT_IN_INPUT,
196
+ a = TCA.IO.MSG | TCA.IO.B64,
197
+ s = r,
198
+ o = TCA.IO.FILE | TCA.IO.BIN,
199
+ A = tcu.tcaAlg2SDKAlg(n),
200
+ u = tcu.verify(i, !1, !1, A, c, a, s, o, t)
201
+ return u != null && u.verifyResult
202
+ }),
203
+ (this.decryptMessageRaw = function (r) {
204
+ var e = ['MY', 'Address'],
205
+ n = [t.certInfo.certID],
206
+ i = TCA.IO.MSG | TCA.IO.B64,
207
+ c = r,
208
+ a = TCA.IO.MSG | TCA.IO.U8,
209
+ s = 'noSet',
210
+ o = tcu.dec(e, n, !1, i, c, a, s)
211
+ return o != null ? o.result : null
212
+ }),
213
+ (this.deleteCert = function () {
214
+ var r,
215
+ e = [t.certInfo.certID],
216
+ n = TCACore.getInstance(),
217
+ i = '{"certStore" : ["MY", "Address"], "certIDArr" : ["' + e + '"]}'
218
+ try {
219
+ r = n.call('Certificate/deleteCert', i)
220
+ } catch (r) {
221
+ return TCACErr.throwErr(r, ERRMAP.CERTIFICATE_DELETE_ERROR), !1
222
+ }
223
+ return r != null
224
+ }),
225
+ (this.signLogonData = function (r) {
226
+ return this.signMessage('LOGONDATA:' + r)
227
+ }),
228
+ (this.signFile2File = this.signFile),
229
+ (this.signLogondata = this.signLogonData),
230
+ (this.encryptRaw = this.encryptMessageRaw),
231
+ (this.verifyFile = function (r, t, e) {
232
+ return (r = null), (t = null), (e = null), TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
233
+ }),
234
+ (this.verifyRaw = this.verifyMessageRaw),
235
+ (this.Delete = this.deleteCert),
236
+ (this.b64str = this.toBase64),
237
+ (this.exportPFX = function (r) {
238
+ return (r = null), TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
239
+ }),
240
+ (this.exportPFX2File = function (r, t) {
241
+ return (r = null), (t = null), TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
242
+ }),
243
+ (this.show = function () {
244
+ return TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
245
+ })
246
+ }
247
+ function CertSet(r) {
248
+ var t = {}
249
+ if (((t.certArr = []), r instanceof Array)) {
250
+ if (r.length != 0)
251
+ if (r[0] instanceof Certificate) t.certArr = r
252
+ else {
253
+ if (!tcu.isStr(r[0])) return void TCACErr.throwErr(ERRMAP.CERT_SET_INIT_ERROR_TYPE)
254
+ for (var e = 0; e < r.length; e++) t.certArr.push(new Certificate(r[e]))
255
+ }
256
+ } else if (tcu.isStr(r)) t.certArr.push(new Certificate(r))
257
+ else {
258
+ if (r instanceof Pkcs7) return void TCACErr.throwErr(ERRMAP.CERT_SET_INIT_ERROR_TYPE_2)
259
+ if (r instanceof Certificate) t.certArr.push(r)
260
+ else if (arguments.length != 0) return void TCACErr.throwErr(ERRMAP.CERT_SET_INIT_ERROR_TYPE_3)
261
+ }
262
+ ;(this.size = function () {
263
+ return t.certArr.length
264
+ }),
265
+ (this.get = function (r) {
266
+ return t.certArr[r]
267
+ }),
268
+ (this.bySerialnumber = function (r) {
269
+ for (var e = 0; e < t.certArr.length; e++)
270
+ if (t.certArr[e].serialNumber() === r.toUpperCase()) return new CertSet(t.certArr[e])
271
+ return new CertSet()
272
+ }),
273
+ (this.bySubject = function (r) {
274
+ for (var e = [], n = 0; n < t.certArr.length; n++) t.certArr[n].subject().search(r) >= 0 && e.push(t.certArr[n])
275
+ return e.length == 0 ? new CertSet() : new CertSet(e)
276
+ }),
277
+ (this.byIssuer = function (r) {
278
+ for (var e = [], n = 0; n < t.certArr.length; n++) t.certArr[n].issuer().search(r) >= 0 && e.push(t.certArr[n])
279
+ return e.length == 0 ? new CertSet() : new CertSet(e)
280
+ }),
281
+ (this.byValidity = function (r) {
282
+ for (var e = arguments.length == 0 ? new Date() : new Date(date), n = [], i = 0; i < t.certArr.length; i++)
283
+ t.certArr[i].notBefore() <= e && e <= t.certArr[i].notAfter() && n.push(t.certArr[i])
284
+ return n.length == 0 ? new CertSet() : new CertSet(n)
285
+ }),
286
+ (this.byKeyUsage = function (r) {
287
+ var e = 0
288
+ if (r instanceof Array) e = tcu.convKeyUsageArr2Num(r)
289
+ else {
290
+ if (!tcu.isNum(r)) return TCACErr.throwErr(ERRMAP.CERT_SET_FILTER_KEYUSAGE_ERROR), null
291
+ e = r
292
+ }
293
+ for (var n = [], i = 0; i < t.certArr.length; i++) {
294
+ var c = tcu.convKeyUsageArr2Num(t.certArr[i].keyUsage())
295
+ ;(c & e) == e && n.push(t.certArr[i])
296
+ }
297
+ return n.length == 0 ? new CertSet() : new CertSet(n)
298
+ }),
299
+ (this.forSign = function () {
300
+ return this.byKeyUsage(128)
301
+ }),
302
+ (this.forEncrypt = function () {
303
+ return this.byKeyUsage(32)
304
+ }),
305
+ (this.bySubjcet = this.bySubject),
306
+ (this.encryptMessage = function (r, t) {
307
+ return TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
308
+ }),
309
+ (this.encryptFile = function (r, t, e, n) {
310
+ return TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
311
+ }),
312
+ (this.uiSelect = function () {
313
+ return TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
314
+ })
315
+ }
316
+ function CertStore(r, t) {
317
+ if (!tcu.isStr(r) || !tcu.isNum(t)) return TCACErr.throwErr(ERRMAP.CERTSTORE_INIT_WRONGTYPE), null
318
+ var e = TCACore.getInstance()
319
+ r = e.getCfg('useAlias') ? e.alias2Full(r) : r
320
+ var n = {}
321
+ ;(n.storeName = r),
322
+ (n.storeType = t),
323
+ (this.genCsr = function (r, t) {
324
+ var e,
325
+ i,
326
+ c = TCACore.getInstance(),
327
+ a = 1,
328
+ s = 'topca',
329
+ o = c.getCfg('genKeySpec'),
330
+ A = c.getCfg('exportKeyAble') ? 1 : 0,
331
+ u = 'noSet',
332
+ C = c.getCfg('genCsrUseSHA256') ? TCA.SHA256 : TCA.SHA1
333
+ if (arguments.length === 1)
334
+ if (tcu.isStr(r))
335
+ (a = 1), (e = tcu.tcaAlg2SDKAlg(r)), (i = r == TCA.SM2 ? tcu.tcaAlg2SDKAlg(TCA.SM3) : tcu.tcaAlg2SDKAlg(C))
336
+ else {
337
+ if (!(r instanceof Certificate)) return TCACErr.throwErr(ERRMAP.GEN_CSR_ERROR_PARAMS), null
338
+ var l,
339
+ T = r.publicKeyAlg(),
340
+ E = r.publicKeySize()
341
+ if (T === 'RSA' && E === 1024) l = TCA.RSA1024
342
+ else if (T == 'RSA' && E === 2048) l = TCA.RSA2048
343
+ else {
344
+ if (T != 'SM2') return TCACErr.throwErr(ERRMAP.GEN_CSR_ERR_PUBKEY_ALG), null
345
+ l = TCA.SM2
346
+ }
347
+ ;(a = 2),
348
+ (e = tcu.tcaAlg2SDKAlg(l)),
349
+ (i = l == TCA.SM2 ? tcu.tcaAlg2SDKAlg(TCA.SM3) : tcu.tcaAlg2SDKAlg(C)),
350
+ (o = r._keySpec),
351
+ (u = r._keyStoreContainer)
352
+ }
353
+ else if (arguments.length === 2)
354
+ (a = 1),
355
+ (s = t),
356
+ (e = tcu.tcaAlg2SDKAlg(r)),
357
+ (i = r == TCA.SM2 ? tcu.tcaAlg2SDKAlg(TCA.SM3) : tcu.tcaAlg2SDKAlg(C))
358
+ else {
359
+ if (arguments.length !== 0) return TCACErr.throwErr(ERRMAP.GEN_CSR_ERROR_PARAMS), null
360
+ ;(a = 1), (e = tcu.tcaAlg2SDKAlg(TCA.SM2)), (i = tcu.tcaAlg2SDKAlg(TCA.SM3))
361
+ }
362
+ u = u.replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/\"/g, '\\"').replace(/\\/g, '\\\\')
363
+ var R,
364
+ g =
365
+ '{"mode" : ' +
366
+ a +
367
+ ',"subject" : "' +
368
+ s +
369
+ '","provName" : "' +
370
+ n.storeName +
371
+ '","provType" : ' +
372
+ n.storeType +
373
+ ',"containerName" : "' +
374
+ u +
375
+ '","keySpec" :' +
376
+ o +
377
+ ',"keyAlg" :' +
378
+ e +
379
+ ',"hashAlg" : ' +
380
+ i +
381
+ ',"opation" : ' +
382
+ A +
383
+ '}'
384
+ try {
385
+ R = c.call('Csr/genCsr', g)
386
+ } catch (r) {
387
+ return TCACErr.throwErr(r, ERRMAP.GEN_CSR_ERROR), null
388
+ }
389
+ return new Csr(R.csrInfo)
390
+ }),
391
+ (this.listCerts = function () {
392
+ for (var r = CertStore.listAllCerts(), t = [], e = 0; e < r.size(); e++) {
393
+ var i = r.get(e)
394
+ i._keyStoreName === n.storeName && t.push(i)
395
+ }
396
+ return new CertSet(t)
397
+ }),
398
+ (this.getSupportedKeyAlgs = function () {
399
+ return TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
400
+ }),
401
+ (this.importPFX = function (r, t) {
402
+ return (r = null), (t = null), TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
403
+ }),
404
+ (this.importPFXFile = function (r, t) {
405
+ return (r = null), (t = null), TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
406
+ }),
407
+ (this.name = function () {
408
+ return n.storeName
409
+ })
410
+ }
411
+ function Csr(r) {
412
+ var t = {}
413
+ ;(t.csrInfo = null),
414
+ tcu.isObj(r) ? (t.csrInfo = r) : TCACErr.throwErr(ERRMAP.CSR_INIT_ERROR_TYPE),
415
+ (this.subject = function () {
416
+ return t.csrInfo.subject.winDN
417
+ }),
418
+ (this.toBase64 = function () {
419
+ return t.csrInfo.b64
420
+ })
421
+ }
422
+ function Pkcs7(r) {
423
+ var t = {}
424
+ if (((t.pkcs7Info = null), !tcu.isStr(r))) return TCACErr.throwErr(ERRMAP.PKCS7_INIT_ERROR_TYPE), null
425
+ var e,
426
+ n =
427
+ '{"inType" : ' +
428
+ (TCA.IO.MSG | TCA.IO.B64) +
429
+ ', "inParam" : "' +
430
+ r +
431
+ '", "certs" : true, "content" : true, "b64" : false}',
432
+ i = TCACore.getInstance()
433
+ try {
434
+ e = i.call('Pkcs7/parsePkcs7', n)
435
+ } catch (r) {
436
+ return TCACErr.throwErr(r, ERRMAP.LIST_CERT_ERROR), null
437
+ }
438
+ ;(t.pkcs7Info = e.pkcs7Info),
439
+ (t.pkcs7Info.b64 = r),
440
+ (this.verifyMessage = function (r) {
441
+ var e,
442
+ n = '',
443
+ i = TCA.VERIFYOPT.CERT_IN_P7,
444
+ c = TCA.IO.MSG | TCA.IO.U8
445
+ void 0 != r
446
+ ? ((i |= TCA.VERIFYOPT.CONTEXT_IN_INPUT), (e = r))
447
+ : ((i |= TCA.VERIFYOPT.CONTEXT_IN_P7), (e = 'noSet'))
448
+ var a = TCA.IO.MSG | TCA.IO.B64,
449
+ s = t.pkcs7Info.b64,
450
+ o = tcu.verify(n, !1, !0, 1, i, a, s, c, e)
451
+ return o === null ? null : o.verifyResult ? new Certificate(o.b64Cert) : null
452
+ }),
453
+ (this.decryptMessage = function () {
454
+ var r = ['MY', 'Address'],
455
+ e = [],
456
+ n = TCA.IO.MSG | TCA.IO.B64,
457
+ i = t.pkcs7Info.b64,
458
+ c = TCA.IO.MSG | TCA.IO.U8,
459
+ a = 'noSet',
460
+ s = tcu.dec(r, e, !0, n, i, c, a)
461
+ return s != null ? s.result : null
462
+ }),
463
+ (this.contentMessage = function () {
464
+ return t.pkcs7Info.isSigned && t.pkcs7Info.hasContent ? t.pkcs7Info.content : null
465
+ }),
466
+ (this.verify = this.verifyMessage),
467
+ (this.toBase64 = function () {
468
+ return t.pkcs7Info.b64
469
+ })
470
+ }
471
+ function TCACErr(r) {
472
+ ;(this._errarr = []),
473
+ r instanceof TCACErr && (this._errarr = r._errarr),
474
+ (this.addErr = function (r) {
475
+ var t = r.code,
476
+ e = r.msg
477
+ ;(this.number = t > 0 ? t : 4294967296 + t),
478
+ (this.description = e),
479
+ this._errarr.push({ code: this.number.toString(16).toUpperCase(), msg: e })
480
+ }),
481
+ (this.toStr = function () {
482
+ for (var r = '', t = 0; t < this._errarr.length; t++)
483
+ r += this._errarr[t].msg + ', 错误码:0x' + this._errarr[t].code + ', \r\n'
484
+ return r.substr(0, r.length - 4)
485
+ })
486
+ }
487
+ function tcu() {}
488
+ ;(CertStore.listAllCerts = function () {
489
+ for (var r = TCACore.getInstance(), t = ['MY', 'Address'], e = [], n = 0; n < t.length; n++) {
490
+ var i = '{"certStoreName" : "' + t[n] + '", "needB64" : true}',
491
+ c = null
492
+ try {
493
+ c = r.call('CertStore/listCerts', i)
494
+ } catch (r) {
495
+ return TCACErr.throwErr(r, ERRMAP.LIST_CERT_ERROR), new CertSet()
496
+ }
497
+ for (var a = c.certArr, s = 0; s < a.length; s++) {
498
+ ;(a[s].notBefore = new Date(a[s].notBefore)), (a[s].notAfter = new Date(a[s].notAfter))
499
+ var o = new Certificate(a[s])
500
+ r.certInLic(o) && e.push(o)
501
+ }
502
+ }
503
+ return new CertSet(e)
504
+ }),
505
+ (CertStore.listStore = function (r) {
506
+ for (var t = CertStore.listKeyStore(r), e = [], n = 0; n < t.length; n++) e.push(t[n].name)
507
+ return e
508
+ }),
509
+ (CertStore.byName = function (r) {
510
+ for (var t = CertStore.listKeyStore(!1), e = 0; e < t.length; e++)
511
+ if (r === t[e].name) return new CertStore(t[e].name, t[e].type)
512
+ return null
513
+ }),
514
+ (CertStore.byCert = function (r) {
515
+ return r instanceof Certificate
516
+ ? new CertStore(r._keyStoreName, r._keyStoreType)
517
+ : (TCACErr.throwErr(ERRMAP.BY_CERT_ERR_TYPE), null)
518
+ }),
519
+ (CertStore.installCert = function (r, t, e) {
520
+ var n,
521
+ i,
522
+ c = TCACore.getInstance()
523
+ if (arguments.length === 1)
524
+ (n = 'InstallSignCert/installSignCert'),
525
+ r instanceof Certificate && (r = r.toBase64()),
526
+ (i = '{"certStoreName" : "MY", "caCertStoreName" : "Ca", "b64SignCertP7" : "' + r + '"}')
527
+ else {
528
+ if (arguments.length !== 3) return TCACErr.throwErr(ERRMAP.INSTALL_CERT_ERR_PARAMS), null
529
+ n = 'InstallEncCert/installEncCert'
530
+ for (var a = e.split('&'), s = {}, o = 0; o < a.length; o++) {
531
+ var A = a[o].split('=')
532
+ s[A[0]] = tcu.urlDec(A[1])
533
+ }
534
+ var u,
535
+ C = s.userSeal,
536
+ l = s.encPrivateKeyUser,
537
+ T = s.userCipher,
538
+ E = s.userIV
539
+ switch (T) {
540
+ case 'AES':
541
+ case 'AES_128':
542
+ u = TCA.AES
543
+ break
544
+ case 'DES':
545
+ u = TCA.DES
546
+ break
547
+ case 'DESEDE':
548
+ case 'DES3':
549
+ case '3DES':
550
+ u = TCA.DES3
551
+ break
552
+ case 'SM4':
553
+ case 'SMS4':
554
+ u = TCA.SM4
555
+ break
556
+ case 'SM1':
557
+ u = TCA.SM1
558
+ break
559
+ case 'rc2':
560
+ case 'AES_192':
561
+ case 'AES_256':
562
+ return TCACErr.throwErr(ERRMAP.INSTALL_CERT_ERR_UNKNOWN_SYMMALG), null
563
+ default:
564
+ u = TCA.AES
565
+ }
566
+ u = tcu.tcaAlg2SDKAlg(u)
567
+ var R,
568
+ g = new Certificate(r),
569
+ S = g._keyStoreName
570
+ ;(R = S.indexOf('Microsoft') >= 0 || S.indexOf('iTrus') >= 0 || S == 'RSA' ? 1 : c.getCfg('installMode') ? 2 : 1),
571
+ (i =
572
+ '{"certStoreName" : "MY", "mode" : ' +
573
+ R +
574
+ ', "b64SignCert" : "' +
575
+ r +
576
+ '", "b64UserSeal" : "' +
577
+ C +
578
+ '", "b64EncUserCert" : "' +
579
+ t +
580
+ '", "b64EncUserPrivateKey" : "' +
581
+ l +
582
+ '", "symmAlg" : ' +
583
+ u +
584
+ ', "b64IV" : "' +
585
+ E +
586
+ '"}')
587
+ }
588
+ var f
589
+ try {
590
+ f = c.call(n, i)
591
+ } catch (r) {
592
+ return TCACErr.throwErr(r, ERRMAP.INSTALL_CERT_ERR), null
593
+ }
594
+ return f.onlyCertChain ? null : new Certificate(f.certInfo)
595
+ }),
596
+ (CertStore.listKeyStore = function (r) {
597
+ var t = TCACore.getInstance(),
598
+ e = '{"mode" : 1 }',
599
+ n = null
600
+ try {
601
+ n = t.call('KeyStore/listKeyStore', e)
602
+ } catch (r) {
603
+ return TCACErr.throwErr(r, ERRMAP.LIST_STORE_ERROR), []
604
+ }
605
+ var i = n.keyStoreArr
606
+ t.setKeyStoreListCache(i), (r = !t.getCfg('disableWhiteList') && r)
607
+ for (var c = t.getCfg('whiteList'), a = t.getCfg('useAlias'), s = [], o = 0; o < i.length; o++) {
608
+ var A = i[o].name
609
+ r
610
+ ? tcu.strInList(A, c) && s.push({ name: a ? t.full2Alias(A) : A, type: i[o].type })
611
+ : s.push({ name: a ? t.full2Alias(A) : A, type: i[o].type })
612
+ }
613
+ return s
614
+ })
615
+ var CryptoUtil = {}
616
+ ;(CryptoUtil.random = function (r) {
617
+ var t = tcu.random(r)
618
+ return t != null ? t.result : null
619
+ }),
620
+ (CryptoUtil.symmEnc = function (r, t, e, n) {
621
+ var i = TCA.IO.FILE | TCA.IO.BIN,
622
+ c = n,
623
+ a = TCA.IO.MSG | TCA.IO.B64,
624
+ s = 'noSet'
625
+ e = tcu.tcaAlg2SDKAlg(e)
626
+ var o = tcu.symm(r, t, e, !0, i, c, a, s)
627
+ return o != null ? o.result : null
628
+ }),
629
+ (CryptoUtil.symmEncFile2File = function (r, t, e, n, i) {
630
+ var c = TCA.IO.FILE | TCA.IO.BIN,
631
+ a = n,
632
+ s = TCA.IO.FILE | TCA.IO.BIN,
633
+ o = i
634
+ e = tcu.tcaAlg2SDKAlg(e)
635
+ var A = tcu.symm(r, t, e, !0, c, a, s, o)
636
+ return A != null
637
+ }),
638
+ (CryptoUtil.symmDec = function (r, t, e, n, i) {
639
+ var c = TCA.IO.MSG | TCA.IO.B64,
640
+ a = n,
641
+ s = TCA.IO.FILE | TCA.IO.BIN,
642
+ o = i
643
+ e = tcu.tcaAlg2SDKAlg(e)
644
+ var A = tcu.symm(r, t, e, !1, c, a, s, o)
645
+ return A != null ? A.result : null
646
+ }),
647
+ (CryptoUtil.symmDecFile2File = function (r, t, e, n, i) {
648
+ var c = TCA.IO.FILE | TCA.IO.BIN,
649
+ a = n,
650
+ s = TCA.IO.FILE | TCA.IO.BIN,
651
+ o = i
652
+ e = tcu.tcaAlg2SDKAlg(e)
653
+ var A = tcu.symm(r, t, e, !1, c, a, s, o)
654
+ return A != null
655
+ }),
656
+ (Pkcs7.verifyFile = function (r, t, e, n) {
657
+ var i,
658
+ c = '',
659
+ a = TCA.VERIFYOPT.CERT_IN_P7,
660
+ s = TCA.IO.FILE | TCA.IO.BIN
661
+ void 0 != t ? ((a |= TCA.VERIFYOPT.CONTEXT_IN_INPUT), (i = t)) : ((a |= TCA.VERIFYOPT.CONTEXT_IN_P7), (i = 'noSet'))
662
+ var o = TCA.IO.FILE | TCA.IO.BIN,
663
+ A = r,
664
+ u = tcu.verify(c, !1, !0, 1, a, o, A, s, i)
665
+ return u === null ? null : u.verifyResult ? new Certificate(u.b64Cert) : null
666
+ }),
667
+ (Pkcs7.verifyFileEx = function (r, t, e, n) {
668
+ var i = '',
669
+ c = TCA.VERIFYOPT.CERT_IN_P7 | TCA.VERIFYOPT.CONTEXT_IN_INPUT,
670
+ a = TCA.IO.FILE | TCA.IO.BIN,
671
+ s = t,
672
+ o = TCA.IO.MSG | TCA.IO.B64,
673
+ A = r,
674
+ u = tcu.verify(i, !1, !0, 1, c, o, A, a, s)
675
+ return u === null ? null : u.verifyResult ? new Certificate(u.b64Cert) : null
676
+ }),
677
+ (Pkcs7.contentFile = function (r, t, e) {
678
+ return TCACErr.throwErr(ERRMAP.UNIMPLEMENTED), null
679
+ }),
680
+ (Pkcs7.decryptFile = function (r, t, e) {
681
+ e = void 0 === e ? TCA.IO.BIN : e
682
+ var n = ['MY', 'Address'],
683
+ i = [''],
684
+ c = TCA.IO.FILE | e,
685
+ a = r,
686
+ s = TCA.IO.FILE | e,
687
+ o = t,
688
+ A = tcu.dec(n, i, !0, c, a, s, o)
689
+ return A != null
690
+ })
691
+ var TCA = {}
692
+ ;(TCA.config = function (r) {
693
+ TCACore.getInstance(r)
694
+ }),
695
+ (TCA.GetJSVersion = function () {
696
+ return '3.7.5'
697
+ }),
698
+ (TCA.GetClientVersion = function () {
699
+ return TCACore.getInstance().GetClientVersion()
700
+ }),
701
+ (TCA.SM1 = 'SM1'),
702
+ (TCA.SM4 = 'SM4'),
703
+ (TCA.DES = 'DES'),
704
+ (TCA.DES3 = '3DES'),
705
+ (TCA.AES = 'AES'),
706
+ (TCA.RC4 = 'RC4'),
707
+ (TCA.SM2 = 'SM2'),
708
+ (TCA.RSA1024 = 'RSA1024'),
709
+ (TCA.RSA2048 = 'RSA2048'),
710
+ (TCA.SHA256 = 'SHA256'),
711
+ (TCA.SHA1 = 'SHA1'),
712
+ (TCA.SM3 = 'SM3'),
713
+ (TCA.MD5 = 'MD5'),
714
+ (TCA.digitalSignature = 128),
715
+ (TCA.nonRepudiation = 64),
716
+ (TCA.keyEncipherment = 32),
717
+ (TCA.dataEncipherment = 16),
718
+ (TCA.keyAgreement = 8),
719
+ (TCA.keyCertSign = 4),
720
+ (TCA.cRLSign = 2),
721
+ (TCA.encipherOnly = 1),
722
+ (TCA.decipherOnly = 32768),
723
+ (TCA.contentCommitment = 64),
724
+ (TCA.serverAuth = '1.3.6.1.5.5.7.3.1'),
725
+ (TCA.clientAuth = '1.3.6.1.5.5.7.3.2'),
726
+ (TCA.codeSigning = '1.3.6.1.5.5.7.3.3'),
727
+ (TCA.emailProtection = '1.3.6.1.5.5.7.3.4'),
728
+ (TCA.ipsecEndSystem = '1.3.6.1.5.5.7.3.5'),
729
+ (TCA.ipsecTunnel = '1.3.6.1.5.5.7.3.6'),
730
+ (TCA.ipsecUser = '1.3.6.1.5.5.7.3.7'),
731
+ (TCA.timeStamping = '1.3.6.1.5.5.7.3.8'),
732
+ (TCA.OCSPSigning = '1.3.6.1.5.5.7.3.9'),
733
+ (TCA.dvcs = '1.3.6.1.5.5.7.3.10'),
734
+ (TCA.sbgpCertAAServerAuth = '1.3.6.1.5.5.7.3.11'),
735
+ (TCA.scvpResponder = '1.3.6.1.5.5.7.3.12'),
736
+ (TCA.eapOverPPP = '1.3.6.1.5.5.7.3.13'),
737
+ (TCA.eapOverLAN = '1.3.6.1.5.5.7.3.14'),
738
+ (TCA.scvpServer = '1.3.6.1.5.5.7.3.15'),
739
+ (TCA.scvpClient = '1.3.6.1.5.5.7.3.16'),
740
+ (TCA.ipsecIKE = '1.3.6.1.5.5.7.3.17'),
741
+ (TCA.capwapAC = '1.3.6.1.5.5.7.3.18'),
742
+ (TCA.capwapWTP = '1.3.6.1.5.5.7.3.19'),
743
+ (TCA.smartcardlogon = '1.3.6.1.4.1.311.20.2.2'),
744
+ (TCA.EX = {}),
745
+ (TCA.EX.szOID_RSA_MD5RSA = '1.2.840.113549.1.1.4'),
746
+ (TCA.EX.szOID_RSA_SHA1RSA = '1.2.840.113549.1.1.5'),
747
+ (TCA.EX.szOID_SM2_SM3SM2 = '1.2.156.10197.1.501'),
748
+ (TCA.EX.INPUT_BASE64 = 1),
749
+ (TCA.EX.INPUT_HEX = 2),
750
+ (TCA.EX.OUTPUT_BASE64 = 4),
751
+ (TCA.EX.OUTPUT_HEX = 8),
752
+ (TCA.EX.INNER_CONTENT = 16),
753
+ (TCA.EX.PLAINTEXT_UTF8 = 32),
754
+ (TCA.EX.ONLY_SIGNATURE = 512),
755
+ (TCA.EX._pta_OverlapPeriod = 30),
756
+ (TCA.EX.FUNCOPT_NOALERT = 2147483648),
757
+ (TCA.EX.PARAM_FILENAME = 4096),
758
+ (TCA.EX.PARAM_STRING = 8192),
759
+ (TCA.EX.PTA_CALG_SHA256 = 2097152),
760
+ (TCA.EX.PFX_BASE64 = 8),
761
+ (TCA.EX.SIGNOPTION_P7 = 1),
762
+ (TCA.EX.SIGNOPTION_RAW = 2),
763
+ (TCA.EX.SIGNOPTION_P7_INNER_CONTEXT = 256),
764
+ (TCA.EX.SIGNOPTION_P7_INNER_CERT = 512),
765
+ (TCA.EX.SIGNOPTION_P7_INNER_AUTHATTR = 1024),
766
+ (TCA.EX.PARAM_IN_FILE = 1),
767
+ (TCA.EX.PARAM_IN_MSG = 2),
768
+ (TCA.EX.PARAM_OUT_FILE = 4),
769
+ (TCA.EX.PARAM_OUT_MSG = 8),
770
+ (TCA.EX.PARAM_TO_U16 = 256),
771
+ (TCA.EX.PARAM_TO_U8 = 512),
772
+ (TCA.EX.PARAM_IN_B64 = 1024),
773
+ (TCA.EX.PARAM_OUT_B64 = 2048),
774
+ (TCA.EX.PARAM_INC_CERT = 16777216),
775
+ (TCA.EX.PARAM_INC_CONTEXT = 33554432),
776
+ (TCA.EX.SM2_SOFT_CSP_NAME = 'iTrusChina Cryptographic Service Provider v1.0.0'),
777
+ (TCA.EX.CRYPT_EXPORTABLE = 1),
778
+ (TCA.IO = {}),
779
+ (TCA.IO.MSG = 1),
780
+ (TCA.IO.FILE = 2),
781
+ (TCA.IO.SELFILE = 4),
782
+ (TCA.IO.BIN = 65536),
783
+ (TCA.IO.B64 = 131072),
784
+ (TCA.IO.HEX = 262144),
785
+ (TCA.IO.U8 = 524288),
786
+ (TCA.VERIFYOPT = {}),
787
+ (TCA.VERIFYOPT.CONTEXT_IN_P7 = 1),
788
+ (TCA.VERIFYOPT.CONTEXT_IN_INPUT = 2),
789
+ (TCA.VERIFYOPT.CERT_IN_P7 = 16),
790
+ (TCA.VERIFYOPT.CERT_IN_INPUT = 32),
791
+ (TCA.EX.exkeyusagemap = {
792
+ '1.3.6.1.5.5.7.3.1': 'serverAuth',
793
+ '1.3.6.1.5.5.7.3.2': 'clientAuth',
794
+ '1.3.6.1.5.5.7.3.3': 'codeSigning',
795
+ '1.3.6.1.5.5.7.3.4': 'emailProtection',
796
+ '1.3.6.1.5.5.7.3.5': 'ipsecEndSystem',
797
+ '1.3.6.1.5.5.7.3.6': 'ipsecTunnel',
798
+ '1.3.6.1.5.5.7.3.7': 'ipsecUser',
799
+ '1.3.6.1.5.5.7.3.8': 'timeStamping',
800
+ '1.3.6.1.5.5.7.3.9': 'OCSPSigning',
801
+ '1.3.6.1.5.5.7.3.10': 'dvcs',
802
+ '1.3.6.1.5.5.7.3.11': 'sbgpCertAAServerAuth',
803
+ '1.3.6.1.5.5.7.3.12': 'scvpResponder',
804
+ '1.3.6.1.5.5.7.3.13': 'eapOverPPP',
805
+ '1.3.6.1.5.5.7.3.14': 'eapOverLAN',
806
+ '1.3.6.1.5.5.7.3.15': 'scvpServer',
807
+ '1.3.6.1.5.5.7.3.16': 'scvpClient',
808
+ '1.3.6.1.5.5.7.3.17': 'ipsecIKE',
809
+ '1.3.6.1.5.5.7.3.18': 'capwapAC',
810
+ '1.3.6.1.5.5.7.3.19': 'capwapWTP',
811
+ '1.3.6.1.4.1.311.20.2.2': 'smartcardlogon'
812
+ }),
813
+ (TCA.filter2Str = function (r) {
814
+ for (var t = '', e = 0; e < r.length; e++) {
815
+ var n = r[e],
816
+ i = ''
817
+ for (var c in n) i += n[c] + '|'
818
+ t += i
819
+ }
820
+ return t
821
+ }),
822
+ (TCA.doFileDialog = function (r, t, e, n) {
823
+ function i(r) {
824
+ var t = r.result != ''
825
+ e(t, r.result)
826
+ }
827
+ e == null && TCACErr.throwErr(ERRMAP.ERROR_NULL_CALLBACK),
828
+ (t !== null && tcu.isArr(t)) || (t = [{ typeTxt: 'All(*.*)', typeExt: '*.*' }])
829
+ var c = TCA.filter2Str(t),
830
+ a = { isOpen: n, title: r, filter: c }
831
+ a = tcu.json2Str(a)
832
+ var s = TCACore.getInstance()
833
+ try {
834
+ s.callAsyn('FileUtil/SelFile', a, i)
835
+ } catch (r) {
836
+ return TCACErr.throwErr(r, ERRMAP.ERROR_FILE_DIALOG), null
837
+ }
838
+ }),
839
+ (TCA.showOpenDialog = function (r, t, e) {
840
+ ;(r !== null && r !== '') || (r = '打开'), TCA.doFileDialog(r, t, e, !0)
841
+ }),
842
+ (TCA.showSaveDialog = function (r, t, e) {
843
+ ;(r !== null && r !== '') || (r = '关闭'), TCA.doFileDialog(r, t, e, !1)
844
+ })
845
+ var TCACore = (function () {
846
+ function saveConfig(r) {
847
+ ;(priData.config = {}),
848
+ (priData.config.ajaxHdl = void 0 !== r.ajaxHdl ? r.ajaxHdl : tcu.ajax),
849
+ (priData.config.str2JsonHdl = void 0 !== r.str2JsonHdl ? r.str2JsonHdl : tcu.convStr2Json),
850
+ (priData.config.certkitClsID = '40CAB063-EF31-4ff6-B512-E1E4E454EB19'),
851
+ (priData.config.certKitSrvHost = '127.0.0.1'),
852
+ (priData.config.certKitSrvPort = '9655'),
853
+ (priData.config.certKitSrvUrl =
854
+ 'https://' + priData.config.certKitSrvHost + ':' + priData.config.certKitSrvPort + '/'),
855
+ (priData.config.certKitSrvVer = '3.6.0.2'),
856
+ (priData.config.certKitActiveXVer = '3.7.3.0'),
857
+ (priData.config.licver = '3.6.0.2'),
858
+ (priData.config.licsoftver = '3.6.0.2'),
859
+ (priData.config.selfNameFmt = 'TopCertKit-\\d+(\\.\\d+)*.js'),
860
+ (priData.config.selfPath = getSelfPath()),
861
+ (priData.config.useAlias = void 0 === r.useAlias || r.useAlias),
862
+ (priData.config.disableExeUrl = void 0 !== r.disableExeUrl && r.disableExeUrl),
863
+ void 0 !== r.cspAlias
864
+ ? (priData.config.cspAlias = r.cspAlias)
865
+ : (priData.config.cspAlias = {
866
+ RSA软证书: 'Microsoft Enhanced Cryptographic Provider v1.0',
867
+ '飞天 ePass 3000 GM': 'EnterSafe ePass3000GM CSP v1.0',
868
+ '华大智宝 SJK102': 'CIDC Cryptographic Service Provider v3.0.0',
869
+ SM2软证书: 'iTrusChina Cryptographic Service Provider v1.0.0',
870
+ 神州龙芯: 'ChinaCpu USB Key CSP v1.0'
871
+ }),
872
+ (priData.config.addCspAlias = void 0 !== r.addCspAlias ? r.addCspAlias : {})
873
+ for (var t in priData.config.addCspAlias) priData.config.cspAlias[t] = priData.config.addCspAlias[t]
874
+ ;(priData.config.disableWhiteList = void 0 !== r.disableWhiteList && r.disableWhiteList),
875
+ void 0 !== r.whiteList
876
+ ? (priData.config.whiteList = r.whiteList)
877
+ : (priData.config.whiteList = [
878
+ 'Microsoft Enhanced Cryptographic Provider v1.0',
879
+ 'iTrusChina Cryptographic Service Provider v1.0.0'
880
+ ]),
881
+ (priData.config.addWhiteList = void 0 !== r.addWhiteList ? r.addWhiteList : [])
882
+ for (var e = 0; e < priData.config.addWhiteList.length; e++)
883
+ priData.config.whiteList.push(priData.config.addWhiteList[e])
884
+ ;(priData.config.lic = void 0 !== r.license ? r.license : null),
885
+ (priData.config.licinfo = null),
886
+ (priData.config.urlArr = null),
887
+ (priData.config.autoExePath = void 0 !== r.autoExePath && r.autoExePath),
888
+ (priData.config.installMode = void 0 === r.installMode || r.installMode),
889
+ (priData.config.exportKeyAble = void 0 === r.exportKeyAble || r.exportKeyAble),
890
+ void 0 === r.exepath
891
+ ? (priData.config.exepath = priData.config.selfPath + 'TopCertKit-' + priData.config.exeVer + '.exe')
892
+ : (priData.config.exepath = r.exepath),
893
+ (priData.config.genKeySpec = void 0 !== r.genKeySpec ? r.genKeySpec : 1),
894
+ priData.config.genKeySpec != 1 && priData.config.genKeySpec != 2 && (priData.config.genKeySpec = 1),
895
+ (priData.config.genCsrUseSHA256 = void 0 !== r.genCsrUseSHA256 && r.genCsrUseSHA256),
896
+ (priData.config.signPkcs7WithAttr = void 0 !== r.signPkcs7WithAttr && r.signPkcs7WithAttr),
897
+ (priData.config.enableAutoAuth = void 0 !== r.enableAutoAuth && r.enableAutoAuth),
898
+ (priData.config.autoAuthUrl = void 0 !== r.autoAuthUrl ? r.autoAuthUrl : '')
899
+ }
900
+ function getSelfPath() {
901
+ for (var r, t = document.getElementsByTagName('script'), e = new RegExp('(.*/)+'), n = 0; n < t.length; n++)
902
+ if (((r = t[n].getAttribute('src')), r !== null && !(r.search('TopCertKit-\\d{5}.js') < 0))) {
903
+ r = r.match(e)[0]
904
+ break
905
+ }
906
+ return r
907
+ }
908
+ function doGetEnct() {
909
+ var r,
910
+ t = '{"method" : "gen","param1" : "", "param2" : "", "param3" : ""}',
911
+ e = TCACore.getInstance()
912
+ try {
913
+ r = e.call('token/token', t)
914
+ } catch (r) {
915
+ return TCACErr.throwErr(r, ERRMAP.AUTOAUTH_ERROR_2), null
916
+ }
917
+ return r.retStr1
918
+ }
919
+ function doVerifyToken(r, t) {
920
+ var e,
921
+ n = '{"method" : "verify","param1" : "' + r + '", "param2" : "' + t + '", "param3" : ""}',
922
+ i = TCACore.getInstance()
923
+ try {
924
+ e = i.call('token/token', n)
925
+ } catch (r) {
926
+ return TCACErr.throwErr(r, ERRMAP.AUTOAUTH_ERROR_2), !1
927
+ }
928
+ return !0
929
+ }
930
+ function verifyAutoAuth() {
931
+ var r = priData.config.autoAuthUrl
932
+ ;(r !== '' && void 0 !== r && r !== null) || TCACErr.throwErr(ERRMAP.INVALID_CONFIG)
933
+ var t = doGetEnct(),
934
+ e = "d={'winterIsComing': \"" + t + '", \'v\' : "1"}'
935
+ $.ajax({
936
+ type: 'post',
937
+ async: !1,
938
+ url: r,
939
+ dataType: 'json',
940
+ data: e,
941
+ success: function (r) {
942
+ ret = doVerifyToken(t, r.t)
943
+ },
944
+ error: function (r, t, e) {
945
+ ret = !1
946
+ }
947
+ }),
948
+ ret ? (priData.config.licinfo = { Issuer: '.*' }) : TCACErr.throwErr(ERRMAP.AUTOAUTH_ERROR)
949
+ }
950
+ function verifyLicense() {
951
+ var pkcs7 = new Pkcs7(priData.config.lic),
952
+ cert = pkcs7.verifyMessage()
953
+ cert.serialNumber() != '5F259CDACC82BB7EF305B3007B8B8EC9BDF9B5F2' && TCACErr.throwErr(ERRMAP.INVALID_LICENSE_2)
954
+ var info = pkcs7.contentMessage()
955
+ priData.config.licinfo = eval('(' + info + ')')
956
+ }
957
+ function gotoExeUrl() {
958
+ if (priData.config.disableExeUrl) throw TCACErr.throwErr(ERRMAP.INSTALL_ACTIVEX_ERR)
959
+ window.location = priData.config.exepath
960
+ }
961
+ function loadCertKitSrv() {
962
+ return !0
963
+ }
964
+ function getSrvVersion() {
965
+ var r = tcu.getSrvVersion()
966
+ return r.version
967
+ }
968
+ function loadCertKitActiveX() {
969
+ try {
970
+ var r = "<object id='TopCertKit' classid='clsid:" + priData.config.certkitClsID + "' "
971
+ r += '></object>'
972
+ var t = document.getElementById('CertKitDiv')
973
+ ;(t !== null && t !== '') ||
974
+ ((t = document.createElement('div')),
975
+ t.setAttribute('id', 'CertKitDiv'),
976
+ (t.innerHTML = r),
977
+ document.body.appendChild(t)),
978
+ (priData.certKitSrvActiveX = document.getElementById('TopCertKit'))
979
+ } catch (r) {
980
+ throw r
981
+ }
982
+ }
983
+ function checkCertKitVer() {
984
+ var r
985
+ r = isIE() ? priData.certKitSrvActiveX.ver : getSrvVersion()
986
+ var t = r.split('.'),
987
+ e = priData.config.certKitActiveXVer.split('.'),
988
+ n = 1e4 * parseInt(t[0]) + 100 * parseInt(t[1]) + parseInt(t[2]),
989
+ i = 1e4 * parseInt(e[0]) + 100 * parseInt(e[1]) + parseInt(e[2])
990
+ return !(n < i) || (TCACErr.throwErr(ERRMAP.INVALID_CERTKIT_VER), !1)
991
+ }
992
+ function doGetClientVersion() {
993
+ return isIE() ? priData.certKitSrvActiveX.ver : getSrvVersion()
994
+ }
995
+ function isIE() {
996
+ var r = navigator.userAgent
997
+ return r.indexOf('MSIE') > 0 || r.toLocaleLowerCase().indexOf('trident') > -1
998
+ }
999
+ function loadCertKit() {
1000
+ return isIE() ? loadCertKitActiveX() : loadCertKitSrv()
1001
+ }
1002
+ function callSrv(r, t) {
1003
+ var e = priData.config.certKitSrvUrl + r,
1004
+ n = {},
1005
+ i = !1,
1006
+ c = function (r) {
1007
+ ;(i = !0), (n = r)
1008
+ },
1009
+ a = function (r, t, e) {
1010
+ ;(i = !1), (n.request = r), (n.status = t), (n.err = e)
1011
+ }
1012
+ if (
1013
+ (priData.config.ajaxHdl({
1014
+ type: 'POST',
1015
+ url: e,
1016
+ async: !1,
1017
+ contentType: 'application/json; charset=utf-8',
1018
+ dataType: 'json',
1019
+ data: t,
1020
+ success: c,
1021
+ error: a
1022
+ }),
1023
+ !i)
1024
+ ) {
1025
+ var s = '[' + n.request.readyState + '][' + n.request.status + '][' + n.status + '][' + n.err.toString() + ']'
1026
+ throw new TCACErr(4278190081, s)
1027
+ }
1028
+ return (
1029
+ n.retCode != ERRMAP.SUPER_SUCCESS.code &&
1030
+ TCACErr.throwErr(TCACErr.newErr(ERRMAP.CALL_HTTP_CLIENT_ERR), { code: n.retCode, msg: n.retMsg }),
1031
+ n
1032
+ )
1033
+ }
1034
+ function callSrvAsyn(r, t, e) {
1035
+ var n = priData.config.certKitSrvUrl + r,
1036
+ i = {},
1037
+ c = !1,
1038
+ a = function (r) {
1039
+ ;(c = !0), (i = r), e(r)
1040
+ },
1041
+ s = function (r, t, e) {
1042
+ TCACErr.throwErr(TCACErr.newErr(ERRMAP.CALL_HTTP_CLIENT_ERR), { code: i.retCode, msg: i.retMsg }),
1043
+ (c = !1),
1044
+ (i.request = r),
1045
+ (i.status = t),
1046
+ (i.err = e)
1047
+ }
1048
+ priData.config.ajaxHdl({
1049
+ type: 'POST',
1050
+ url: n,
1051
+ async: !0,
1052
+ contentType: 'application/json; charset=utf-8',
1053
+ dataType: 'json',
1054
+ data: t,
1055
+ success: a,
1056
+ error: s
1057
+ })
1058
+ }
1059
+ function callActiveX(r, t) {
1060
+ var e = null
1061
+ try {
1062
+ ;(r = '/' + r), (e = priData.certKitSrvActiveX.reqHdl(r, t))
1063
+ } catch (r) {
1064
+ var n = TCACErr.newErr({ code: r.number, msg: r.description })
1065
+ return TCACErr.throwErr(n, ERRMAP.CALL_ACTIVEX_ERR), null
1066
+ }
1067
+ if (((e = priData.config.str2JsonHdl(e)), e.retCode != 0)) {
1068
+ var i = TCACErr.newErr(ERRMAP.CALL_ACTIVEX_ERR_METHOD)
1069
+ return TCACErr.throwErr(i, { code: e.retCode, msg: e.retMsg }), null
1070
+ }
1071
+ return e
1072
+ }
1073
+ function callActiveXAsyn(r, t, e) {
1074
+ var n = null
1075
+ try {
1076
+ ;(r = '/' + r), (n = priData.certKitSrvActiveX.reqHdl(r, t))
1077
+ } catch (r) {
1078
+ var i = TCACErr.newErr({ code: r.number, msg: r.description })
1079
+ return TCACErr.throwErr(i, ERRMAP.CALL_ACTIVEX_ERR), null
1080
+ }
1081
+ if (((n = priData.config.str2JsonHdl(n)), n.retCode != 0)) {
1082
+ var c = TCACErr.newErr(ERRMAP.CALL_ACTIVEX_ERR_METHOD)
1083
+ return TCACErr.throwErr(c, { code: n.retCode, msg: n.retMsg }), null
1084
+ }
1085
+ e(n)
1086
+ }
1087
+ var priData = {}
1088
+ ;(priData.config = null), (priData.cacheKeyStoreList = null), (priData.certKitSrvActiveX = null), saveConfig({})
1089
+ var instanceClass = function () {
1090
+ ;(this.getCfg = function (r) {
1091
+ return priData.config[r]
1092
+ }),
1093
+ (this.setKeyStoreListCache = function (r) {
1094
+ priData.cacheKeyStoreList = r
1095
+ }),
1096
+ (this.getLicInfo = function (r) {
1097
+ return priData.config.licinfo == null, priData.config.licinfo[r]
1098
+ }),
1099
+ (this.full2Alias = function (r) {
1100
+ for (var t in priData.config.cspAlias)
1101
+ if (priData.config.cspAlias.hasOwnProperty(t) && priData.config.cspAlias[t] == r) return t
1102
+ return r
1103
+ }),
1104
+ (this.alias2Full = function (r) {
1105
+ var t = priData.config.cspAlias[r]
1106
+ return void 0 === t ? r : t
1107
+ }),
1108
+ (this.certInLic = function (r) {
1109
+ var t = new RegExp(this.getLicInfo('Issuer'))
1110
+ return t.test(r.issuer())
1111
+ })
1112
+ var r = {}
1113
+ ;(r.query = isIE() ? callActiveX : callSrv),
1114
+ (r.queryAsyn = isIE() ? callActiveXAsyn : callSrvAsyn),
1115
+ (this.call = function (t, e) {
1116
+ return r.query(t, e)
1117
+ }),
1118
+ (this.callAsyn = function (t, e, n) {
1119
+ return r.queryAsyn(t, e, n)
1120
+ }),
1121
+ (this.GetClientVersion = function () {
1122
+ return doGetClientVersion()
1123
+ })
1124
+ },
1125
+ _instance = null,
1126
+ getInstance = function (r) {
1127
+ if ((void 0 !== r && r !== null && saveConfig(r), _instance === null)) {
1128
+ if (((_instance = new instanceClass()), loadCertKit(), !checkCertKitVer())) return void gotoExeUrl()
1129
+ priData.config.enableAutoAuth ? verifyAutoAuth() : verifyLicense()
1130
+ }
1131
+ return _instance
1132
+ }
1133
+ return { getInstance: getInstance }
1134
+ })()
1135
+ ;(TCACErr.newErr = function (r, t) {
1136
+ var e = null
1137
+ return r instanceof TCACErr ? ((e = new TCACErr(r)), e.addErr(t)) : ((e = new TCACErr()), e.addErr(r)), e
1138
+ }),
1139
+ (TCACErr.throwErr = function (r, t) {
1140
+ throw r instanceof TCACErr ? TCACErr.newErr(r, t) : TCACErr.newErr(r)
1141
+ })
1142
+ var ERRMAP_ZHCN = {
1143
+ CERTSTORE_INIT_WRONGTYPE: { code: 16777217, msg: 'CertStore实例初始化失败,参数类型不匹配' },
1144
+ LIST_STORE_ERROR: { code: 16777218, msg: '列举密钥库错误' },
1145
+ BY_CERT_ERR_TYPE: { code: 16777219, msg: '根据证书获取CertStore实例时失败,参数类型不匹配' },
1146
+ LIST_CERT_ERROR: { code: 16777220, msg: '列举证书错误' },
1147
+ GEN_CSR_ERROR_PARAMS: { code: 16777221, msg: '产生CSR失败,输入参数错误' },
1148
+ GEN_CSR_ERR_PUBKEY_ALG: { code: 16777222, msg: '产生CSR失败,未知的证书公钥算法' },
1149
+ GEN_CSR_ERROR: { code: 16777223, msg: '产生CSR失败' },
1150
+ INSTALL_CERT_ERR_PARAMS: { code: 16777224, msg: '安装证书失败,输入参数错误' },
1151
+ INSTALL_CERT_ERR_UNKNOWN_SYMMALG: { code: 16777225, msg: '安装加密证书失败,未知的对称加密算法' },
1152
+ INSTALL_CERT_ERR: { code: 16777226, msg: '安装证书失败' },
1153
+ CERTIFICATE_INIT_WRONGTYPE: { code: 33554433, msg: 'Certificate实例初始化失败,参数类型不匹配' },
1154
+ CERTIFICATE_PARSE_ERROR: { code: 33554434, msg: '从Base64解析证书失败' },
1155
+ CERTIFICATE_DELETE_ERROR: { code: 33554435, msg: '删除证书失败' },
1156
+ CERT_SET_INIT_ERROR_TYPE: { code: 50331649, msg: '初始化CertSet实例失败,错误的输入类型' },
1157
+ CERT_SET_INIT_ERROR_TYPE_2: { code: 50331650, msg: '初始化CertSet实例失败,错误的输入类型' },
1158
+ CERT_SET_INIT_ERROR_TYPE_3: { code: 50331651, msg: '初始化CertSet实例失败,错误的输入类型' },
1159
+ CERT_SET_FILTER_KEYUSAGE_ERROR: { code: 50331652, msg: '通过密钥用法过滤失败,错误的输入类型' },
1160
+ CSR_INIT_ERROR_TYPE: { code: 67108865, msg: '初始化Csr实例失败,错误的输入类型' },
1161
+ PKCS7_INIT_ERROR_TYPE: { code: 83886081, msg: '初始化Pkcs7实例失败,错误的输入类型' },
1162
+ PKCS7_INIT_PARSE_ERROR: { code: 83886082, msg: '初始化Pkcs7实例失败,解析Pkcs7数据失败' },
1163
+ SIGN_ERROR: { code: 2684354561, msg: '签名操作失败' },
1164
+ SIGN_ERROR_HASH_ALG: { code: 100663297, msg: '哈希算法与签名算法不匹配' },
1165
+ SIGN_INPUT_ERROR: { code: 100663298, msg: '参数错误' },
1166
+ VERIFY_ERROR: { code: 2684354562, msg: '验证签名操作失败' },
1167
+ ENCRYPT_ERROR: { code: 2684354563, msg: '加密操作失败' },
1168
+ DECRYPT_ERROR: { code: 2684354564, msg: '解密操作失败' },
1169
+ ERROR_HASH_ALG: { code: 2952790017, msg: '指定了错误的Hash算法算法' },
1170
+ ERROR_JSON_TYPE: { code: 2952790018, msg: '错误的json类型' },
1171
+ ERROR_CALL_SRV_VER: { code: 2952790019, msg: '查询服务版本失败' },
1172
+ CALL_HTTP_CLIENT_ERR: { code: 4026531841, msg: '执行本地方法失败' },
1173
+ INVALID_LICENSE: { code: 4026531842, msg: '使用了无效的License' },
1174
+ INVALID_CERTKIT_VER: { code: 4026531843, msg: '不匹配的CertKit版本' },
1175
+ CALL_ACTIVEX_ERR: { code: 4026531844, msg: '执行本地方法失败' },
1176
+ CALL_ACTIVEX_ERR_METHOD: { code: 4026531845, msg: '执行操作失败' },
1177
+ INSTALL_ACTIVEX_ERR: { code: 4026531846, msg: '无法加载ActiveX控件' },
1178
+ INVALID_LICENSE_2: { code: 4026531847, msg: '使用了无效的License' },
1179
+ INVALID_CONFIG: { code: 4026531848, msg: '无效的配置' },
1180
+ AUTOAUTH_ERROR: { code: 4026531849, msg: 'autoautherror' },
1181
+ AUTOAUTH_ERROR_2: { code: 4026531850, msg: 'autoautherror2' },
1182
+ ERROR_FILE_DIALOG: { code: 218103810, msg: '打开对话框失败' },
1183
+ UNIMPLEMENTED: { code: 1, msg: '未实现的方法' },
1184
+ BIG_ERROR: { code: 4294967295, msg: '错误' },
1185
+ SUPER_SUCCESS: { code: 0, msg: '成功' }
1186
+ },
1187
+ ERRMAP = ERRMAP_ZHCN
1188
+ ;(TCACErr.prototype = new Error()),
1189
+ (tcu.extKeyUsageMap = {
1190
+ '1.3.6.1.5.5.7.3.1': 'serverAuth',
1191
+ '1.3.6.1.5.5.7.3.2': 'clientAuth',
1192
+ '1.3.6.1.5.5.7.3.3': 'codeSigning',
1193
+ '1.3.6.1.5.5.7.3.4': 'emailProtection',
1194
+ '1.3.6.1.5.5.7.3.5': 'ipsecEndSystem',
1195
+ '1.3.6.1.5.5.7.3.6': 'ipsecTunnel',
1196
+ '1.3.6.1.5.5.7.3.7': 'ipsecUser',
1197
+ '1.3.6.1.5.5.7.3.8': 'timeStamping',
1198
+ '1.3.6.1.5.5.7.3.9': 'OCSPSigning',
1199
+ '1.3.6.1.5.5.7.3.10': 'dvcs',
1200
+ '1.3.6.1.5.5.7.3.11': 'sbgpCertAAServerAuth',
1201
+ '1.3.6.1.5.5.7.3.12': 'scvpResponder',
1202
+ '1.3.6.1.5.5.7.3.13': 'eapOverPPP',
1203
+ '1.3.6.1.5.5.7.3.14': 'eapOverLAN',
1204
+ '1.3.6.1.5.5.7.3.15': 'scvpServer',
1205
+ '1.3.6.1.5.5.7.3.16': 'scvpClient',
1206
+ '1.3.6.1.5.5.7.3.17': 'ipsecIKE',
1207
+ '1.3.6.1.5.5.7.3.18': 'capwapAC',
1208
+ '1.3.6.1.5.5.7.3.19': 'capwapWTP',
1209
+ '1.3.6.1.4.1.311.20.2.2': 'smartcardlogon'
1210
+ }),
1211
+ (tcu.isStr = function (r) {
1212
+ return typeof r === 'string'
1213
+ }),
1214
+ (tcu.isNum = function (r) {
1215
+ return typeof r === 'number'
1216
+ }),
1217
+ (tcu.isBool = function (r) {
1218
+ return typeof r === 'boolean'
1219
+ }),
1220
+ (tcu.isUndef = function (r) {
1221
+ return typeof r === 'undefined'
1222
+ }),
1223
+ (tcu.isNull = function (r) {
1224
+ return typeof r === 'null'
1225
+ }),
1226
+ (tcu.isObj = function (r) {
1227
+ return typeof r === 'object'
1228
+ }),
1229
+ (tcu.isArr = function (r) {
1230
+ return Object.prototype.toString.call(r) === '[object Array]'
1231
+ }),
1232
+ (tcu.urlDec = function (r) {
1233
+ var t = decodeURIComponent(r)
1234
+ return t.replace(/[\r\n]/g, '')
1235
+ }),
1236
+ (tcu.convKeyUsageArr2Num = function (r) {
1237
+ for (var t = 0, e = 0; e < r.length; e++)
1238
+ r[e] != 'digitalSignature'
1239
+ ? r[e] != 'nonRepudiation'
1240
+ ? r[e] != 'keyEncipherment'
1241
+ ? r[e] != 'dataEncipherment'
1242
+ ? r[e] != 'keyAgreement'
1243
+ ? r[e] != 'keyCertSign'
1244
+ ? r[e] != 'cRLSign'
1245
+ ? r[e] != 'encipherOnly'
1246
+ ? r[e] != 'decipherOnly'
1247
+ ? r[e] == 'contentCommitment' && (t |= TCA.contentCommitment)
1248
+ : (t |= TCA.decipherOnly)
1249
+ : (t |= TCA.encipherOnly)
1250
+ : (t |= TCA.cRLSign)
1251
+ : (t |= TCA.keyCertSign)
1252
+ : (t |= TCA.keyAgreement)
1253
+ : (t |= TCA.dataEncipherment)
1254
+ : (t |= TCA.keyEncipherment)
1255
+ : (t |= TCA.nonRepudiation)
1256
+ : (t |= TCA.digitalSignature)
1257
+ return t
1258
+ }),
1259
+ (tcu.convKeyUsageNum2Arr = function (r) {
1260
+ var t = []
1261
+ return r === 0
1262
+ ? t
1263
+ : (r & TCA.digitalSignature && t.push('digitalSignature'),
1264
+ r & TCA.nonRepudiation && t.push('nonRepudiation'),
1265
+ r & TCA.keyEncipherment && t.push('keyEncipherment'),
1266
+ r & TCA.dataEncipherment && t.push('dataEncipherment'),
1267
+ r & TCA.keyAgreement && t.push('keyAgreement'),
1268
+ r & TCA.keyCertSign && t.push('keyCertSign'),
1269
+ r & TCA.cRLSign && t.push('cRLSign'),
1270
+ r & TCA.encipherOnly && t.push('encipherOnly'),
1271
+ r & TCA.decipherOnly && t.push('decipherOnly'),
1272
+ r & TCA.contentCommitment && t.push('contentCommitment'),
1273
+ t)
1274
+ }),
1275
+ (tcu.convSignAlg2Str = function (r) {
1276
+ switch (r) {
1277
+ case 81:
1278
+ return 'SM3WithSM2'
1279
+ case 98:
1280
+ return 'SHA1WithRSA'
1281
+ }
1282
+ return 'UnknownSignAlg'
1283
+ }),
1284
+ (tcu.convAlg2SignAlgId = function (r) {
1285
+ return r == TCA.RSA1024 ? 98 : r == TCA.RSA2048 ? 98 : r == TCA.SM2 ? 81 : -1
1286
+ }),
1287
+ (tcu.convPubKeyAlg2Str = function (r) {
1288
+ switch (r) {
1289
+ case 1:
1290
+ case 2:
1291
+ case 3:
1292
+ case 16:
1293
+ return 'RSA'
1294
+ case 17:
1295
+ return 'SM2'
1296
+ }
1297
+ return 'UnknownAlg'
1298
+ }),
1299
+ (tcu.convPubKeyAlg2Size = function (r) {
1300
+ switch (r) {
1301
+ case 1:
1302
+ return 1024
1303
+ case 2:
1304
+ return 2048
1305
+ case 3:
1306
+ return 4096
1307
+ case 17:
1308
+ return 256
1309
+ }
1310
+ return -1
1311
+ }),
1312
+ (tcu.convExtKeyUsageOID2Name = function (r) {
1313
+ for (var t = [], e = 0; e < r.length; e++) t.push(tcu.extKeyUsageMap[r[e]])
1314
+ return t
1315
+ }),
1316
+ (tcu.convStr2Json = function (jsonStr) {
1317
+ return eval('(' + jsonStr + ')')
1318
+ }),
1319
+ (tcu.convKeySize2CSP = function (r) {
1320
+ return r == TCA.RSA1024 ? 67108864 : r == TCA.RSA2048 ? 134217728 : r == TCA.SM2 ? 16777216 : -1
1321
+ }),
1322
+ (tcu.strInList = function (r, t) {
1323
+ if (t.length <= 0) return !1
1324
+ for (var e = 0; e < t.length; e++) if (r === t[e]) return !0
1325
+ return !1
1326
+ }),
1327
+ (tcu.tcaAlg2SDKAlg = function (r) {
1328
+ switch (r) {
1329
+ case TCA.SM4:
1330
+ return 65
1331
+ case TCA.DES:
1332
+ return 67
1333
+ case TCA.DES3:
1334
+ return 68
1335
+ case TCA.AES:
1336
+ return 69
1337
+ case TCA.RC4:
1338
+ return 70
1339
+ case TCA.SM2:
1340
+ return 17
1341
+ case TCA.RSA1024:
1342
+ return 1
1343
+ case TCA.RSA2048:
1344
+ return 2
1345
+ case TCA.SHA256:
1346
+ return 50
1347
+ case TCA.SHA1:
1348
+ return 49
1349
+ case TCA.SM3:
1350
+ return 33
1351
+ case TCA.MD5:
1352
+ return 51
1353
+ case TCA.SM1:
1354
+ default:
1355
+ return 0
1356
+ }
1357
+ }),
1358
+ (tcu.arr2Str = function (r) {
1359
+ for (var t = '', e = 0; e < r.length; e++) {
1360
+ var n = r[e]
1361
+ ;(n = n.replace(/\r/g, '\\r').replace(/\n/g, '\\n')), (t = t + '"' + n + '", ')
1362
+ }
1363
+ return t.length > 0 && (t = t.substr(0, t.length - 2)), '[' + t + ']'
1364
+ }),
1365
+ (tcu.json2Str = function (r) {
1366
+ var t = '{'
1367
+ for (var e in r) {
1368
+ t += '"' + e + '":'
1369
+ var n = r[e]
1370
+ tcu.isStr(n)
1371
+ ? ((n = n.replace(/\\/g, '\\\\').replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/\"/g, '\\"')),
1372
+ (t += '"' + n + '",'))
1373
+ : tcu.isNum(n) || tcu.isBool(n)
1374
+ ? (t += n + ',')
1375
+ : tcu.isArr(n)
1376
+ ? (t += tcu.arr2Str(n) + ',')
1377
+ : TCACErr.throwErr(ERRMAP.ERROR_JSON_TYPE)
1378
+ }
1379
+ return (t += '"_jsonEnd":"_jsonEnd"}')
1380
+ }),
1381
+ (tcu.sign = function (r, t, e, n, i, c, a, s, o, A, u, C) {
1382
+ var l = {
1383
+ certStore: r,
1384
+ certIDArr: t,
1385
+ hash: e,
1386
+ bSignHash: n,
1387
+ bSignP7: i,
1388
+ bAttr: c,
1389
+ bIncCtx: a,
1390
+ bIncCert: s,
1391
+ inType: o,
1392
+ inParam: A,
1393
+ outType: u,
1394
+ outParam: C
1395
+ }
1396
+ l = tcu.json2Str(l)
1397
+ var T,
1398
+ E = TCACore.getInstance()
1399
+ try {
1400
+ T = E.call('Sign/sign', l)
1401
+ } catch (r) {
1402
+ return TCACErr.throwErr(r, ERRMAP.SIGN_ERROR), null
1403
+ }
1404
+ return T
1405
+ }),
1406
+ (tcu.verify = function (r, t, e, n, i, c, a, s, o) {
1407
+ var A = {
1408
+ b64Cert: r,
1409
+ isHashSign: t,
1410
+ isPkcs7: e,
1411
+ hash: n,
1412
+ verifyOption: i,
1413
+ signInType: c,
1414
+ signInParam: a,
1415
+ plainInType: s,
1416
+ plainInParam: o
1417
+ }
1418
+ A = tcu.json2Str(A)
1419
+ var u,
1420
+ C = TCACore.getInstance()
1421
+ try {
1422
+ u = C.call('Verify/verify', A)
1423
+ } catch (r) {
1424
+ return TCACErr.throwErr(r, ERRMAP.VERIFY_ERROR), null
1425
+ }
1426
+ return u
1427
+ }),
1428
+ (tcu.enc = function (r, t, e, n, i, c, a) {
1429
+ var s = { certArr: r, symmAlg: t, bEncP7: e, inType: n, inParam: i, outType: c, outParam: a }
1430
+ s = tcu.json2Str(s)
1431
+ var o,
1432
+ A = TCACore.getInstance()
1433
+ try {
1434
+ o = A.call('Enc/enc', s)
1435
+ } catch (r) {
1436
+ return TCACErr.throwErr(r, ERRMAP.ENCRYPT_ERROR), null
1437
+ }
1438
+ return o
1439
+ }),
1440
+ (tcu.dec = function (r, t, e, n, i, c, a) {
1441
+ var s = { certStore: r, certIDArr: t, bIsP7: e, inType: n, inParam: i, outType: c, outParam: a }
1442
+ s = tcu.json2Str(s)
1443
+ var o,
1444
+ A = TCACore.getInstance()
1445
+ try {
1446
+ o = A.call('Dec/dec', s)
1447
+ } catch (r) {
1448
+ return TCACErr.throwErr(r, ERRMAP.DECRYPT_ERROR), null
1449
+ }
1450
+ return o
1451
+ }),
1452
+ (tcu.checkHashAlg = function (r, t) {
1453
+ return (
1454
+ !((r === 'SM2' && t != TCA.SM3) || (r === 'RSA' && t === TCA.SM3)) ||
1455
+ (TCACErr.throwErr(ERRMAP.SIGN_ERROR_HASH_ALG), !1)
1456
+ )
1457
+ }),
1458
+ (tcu.getSrvVersion = function () {
1459
+ var r,
1460
+ t = TCA.IO.MSG,
1461
+ e = '{"outType" :' + t + '}',
1462
+ n = TCACore.getInstance()
1463
+ try {
1464
+ r = n.call('Server/version', e)
1465
+ } catch (r) {
1466
+ return TCACErr.throwErr(r, ERRMAP.ERROR_CALL_SRV_VER), null
1467
+ }
1468
+ return r
1469
+ }),
1470
+ (tcu.ajax = function (jsonParam) {
1471
+ var url = jsonParam.url,
1472
+ data = jsonParam.data,
1473
+ successCallback = jsonParam.success,
1474
+ errorCallback = jsonParam.error,
1475
+ request = new XMLHttpRequest()
1476
+ try {
1477
+ if (
1478
+ (request.open('POST', url, !1),
1479
+ request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'),
1480
+ request.send(data),
1481
+ request.status == 200)
1482
+ )
1483
+ return void successCallback(eval('(' + request.responseText + ')'))
1484
+ } catch (r) {
1485
+ return void errorCallback(request, request.statusText, 'send error & no error thrown')
1486
+ }
1487
+ errorCallback(request, request.statusText, 'no error thrown')
1488
+ }),
1489
+ (tcu.hash = function (r, t, e, n, i) {
1490
+ var c = { hash: r, inType: t, inParam: e, outType: n, outParam: i }
1491
+ c = tcu.json2Str(c)
1492
+ var a,
1493
+ s = TCACore.getInstance()
1494
+ try {
1495
+ a = s.call('Hash/hash', c)
1496
+ } catch (r) {
1497
+ return TCACErr.throwErr(r, ERRMAP.DECRYPT_ERROR), null
1498
+ }
1499
+ return a
1500
+ }),
1501
+ (tcu.random = function (r) {
1502
+ var t = { byteLen: r }
1503
+ t = tcu.json2Str(t)
1504
+ var e,
1505
+ n = TCACore.getInstance()
1506
+ try {
1507
+ e = n.call('rand/rand', t)
1508
+ } catch (r) {
1509
+ return TCACErr.throwErr(r, ERRMAP.DECRYPT_ERROR), null
1510
+ }
1511
+ return e
1512
+ }),
1513
+ (tcu.symm = function (r, t, e, n, i, c, a, s) {
1514
+ var o = { isEnc: n, b64Key: r, b64IV: t, symmAlg: e, inType: i, inParam: c, outType: a, outParam: s }
1515
+ o = tcu.json2Str(o)
1516
+ var A,
1517
+ u = TCACore.getInstance()
1518
+ try {
1519
+ A = u.call('symm/symm', o)
1520
+ } catch (r) {
1521
+ return TCACErr.throwErr(r, ERRMAP.DECRYPT_ERROR), null
1522
+ }
1523
+ return A
1524
+ })
1525
+
1526
+ var config = {
1527
+ license:
1528
+ 'MIIG5AYJKoZIhvcNAQcCoIIG1TCCBtECAQExDjAMBggqgRzPVQGDEQUAMIICKQYJKoZIhvcNAQcBoIICGgSCAhZ7Iklzc3VlciI6IigoKC4qQ049aVRydXNDaGluYSBSU0EgVGVzdCBVc2VyIENBLiopfCguKk9VPVRlc3QuKil8KC4qTz1pVHJ1c0NoaW5hLiopfCguKkM9Q04uKikpezR9fCgoLipDTj1pVHJ1c0NoaW5hIFNNMiBUZXN0IFVzZXIgQ0EuKil8KC4qT1U9VGVzdC4qKXwoLipPPWlUcnVzQ2hpbmEuKil8KC4qQz1DTi4qKSl7NH18KCguKkNOPWlUcnVzQ2hpbmEgRW50ZXJwcmlzZSBVc2VyIENBIC0gUlNBLiopfCguKk9VPUVudGVycHJpc2UuKil8KC4qTz1pVHJ1c0NoaW5hLiopfCguKkM9Q04uKikpezR9fCgoLipDTj1pVHJ1c0NoaW5hIEVudGVycHJpc2UgVXNlciBDQSAtIFNNMi4qKXwoLipPVT1FbnRlcnByaXNlLiopfCguKk89aVRydXNDaGluYS4qKXwoLipDPUNOLiopKXs0fXwoKC4qTz3lpKnlqIHor5rkv6HmtYvor5Xns7vnu58uKikpezF9KSIsInZlcnNpb24iOiIxLjAuMC4xIiwic29mdFZlcnNpb24iOiIzLjEuMC4wIiwibm90YWZ0ZXIiOiIyMDI4LTExLTA3Iiwibm90YmVmb3JlIjoiMjAxOC0xMS0wNyIsIm5vQWxlcnQiOiJ0cnVlIn2gggNEMIIDQDCCAuWgAwIBAgIUXyWc2syCu37zBbMAe4uOyb35tfIwDAYIKoEcz1UBg3UFADBVMSYwJAYDVQQDDB3lpKnor5rlronkv6HmtYvor5VTTTLnlKjmiLdDQTEOMAwGA1UECwwFVE9QQ0ExDjAMBgNVBAoMBVRPUENBMQswCQYDVQQGEwJDTjAeFw0xNDA5MjYwNzQ2MDhaFw0xNTA5MjYwNzQ2MDhaMDExGDAWBgNVBAMMD1NpZ25FU0EyMDE0MDkyNzEVMBMGA1UECgwM5aSp6K+a5a6J5L+hMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAElhZ4UuYjL2ZO535qLQsF4ujGGCc7odxAZuxCGXh+94nOhXHQLLO3/G9ZjnLuXeoDB3n0Bsj4iboW2X/AA5KFiaOCAbMwggGvMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgbAMIGKBggrBgEFBQcBAQR+MHwwegYIKwYBBQUHMAKGbmh0dHA6Ly9Zb3VyX1NlcnZlcl9OYW1lOlBvcnQvVG9wQ0EvdXNlckVucm9sbC9jYUNlcnQ/Y2VydFNlcmlhbE51bWJlcj01QTQ3RUNGMTA1ODA0QTVDNkE1QjIyOTI5Qjc1REYwREZCQzBENzk2MFcGA1UdLgRQME4wTKBKoEiGRlBvcnQvVG9wQ0EvcHVibGljL2l0cnVzY3JsP0NBPTVBNDdFQ0YxMDU4MDRBNUM2QTVCMjI5MjlCNzVERjBERkJDMEQ3OTYwbwYDVR0fBGgwZjBkoGKgYIZeaHR0cDovL1lvdXJfU2VydmVyX05hbWU6UG9ydC9Ub3BDQS9wdWJsaWMvaXRydXNjcmw/Q0E9NUE0N0VDRjEwNTgwNEE1QzZBNUIyMjkyOUI3NURGMERGQkMwRDc5NjAfBgNVHSMEGDAWgBQ9icZHy3GFsNk71kiwidnn/u/a2TAdBgNVHQ4EFgQUSzvtf4eChoegEpKxLuYAJdi1EQAwDAYIKoEcz1UBg3UFAANHADBEAiC9tNcXzI0fmOxsbqvtcvksS6kl3yXzH1qTPyuE7ldhggIg6D6HGfkXjg3n7Bqob7UNuzqb3GIgPzdWQeeam10yhHsxggFFMIIBQQIBATBtMFUxJjAkBgNVBAMMHeWkqeivmuWuieS/oea1i+ivlVNNMueUqOaIt0NBMQ4wDAYDVQQLDAVUT1BDQTEOMAwGA1UECgwFVE9QQ0ExCzAJBgNVBAYTAkNOAhRfJZzazIK7fvMFswB7i47Jvfm18jAMBggqgRzPVQGDEQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTUwNTAxMTQwNDU4WjAvBgkqhkiG9w0BCQQxIgQgXW9V6Mry3iSO+nGFVSIWZvZlfAyouiIepXB2SWuopFEwDAYIKoEcz1UBgi0FAARGMEQCILtmCFpdK6+QOhq00XvbqaSDbSdnfn0xbKXVYd+Wn24uAiD0soWoLCWqGAdlvZwW8NJH1UX7TNtYy1Mk1AK2DJvGkA==',
1529
+ exportKeyAble: false,
1530
+ disableExeUrl: true
1531
+ }
1532
+
1533
+ function initCertList() {
1534
+ try {
1535
+ var certs = CertStore.listAllCerts()
1536
+ if (certs.size() > 0) {
1537
+ console.warn('签名初始化成功!')
1538
+ } else {
1539
+ alert('没有检测到证书!')
1540
+ }
1541
+ } catch (e) {
1542
+ if (e instanceof TCACErr) {
1543
+ alert(e.toStr())
1544
+ } else {
1545
+ alert('没有检测到证书!')
1546
+ }
1547
+ }
1548
+ }
1549
+
1550
+ try {
1551
+ TCA.config(config)
1552
+ initCertList()
1553
+ } catch (err) {
1554
+ console.log(err)
1555
+ alert('没有检测到证书助手,请下载并安装证书助手!')
1556
+ }
1557
+
1558
+ let _dn
1559
+ function getDN() {
1560
+ if (!_dn) {
1561
+ let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
1562
+ if (userInfo?.dn) {
1563
+ _dn = userInfo.dn
1564
+ }
1565
+ }
1566
+ return _dn
1567
+ }
1568
+
1569
+ // 签名方法
1570
+ export function getSign(plain, dn) {
1571
+ try {
1572
+ if (dn === undefined) {
1573
+ dn = getDN()
1574
+ }
1575
+ if (!dn) {
1576
+ alert('签名参数DN错误!')
1577
+ return false
1578
+ }
1579
+ var certs = CertStore.listAllCerts()
1580
+
1581
+ if (certs.size() > 0) {
1582
+ var sginCert = null
1583
+ for (var i = 0; i < certs.size(); i++) {
1584
+ var cert = certs.get(i)
1585
+ var t = cert.subject().match(/(S(?!N)|L|O(?!U)|OU|SN|CN|E)=([^=]+)(?=, |$)/g)
1586
+ for (var i = 0; i < t.length; i++) {
1587
+ if (t[i] == dn) {
1588
+ sginCert = cert
1589
+ break
1590
+ }
1591
+ }
1592
+ }
1593
+ if (sginCert) {
1594
+ return sginCert.signMessage(plain, false)
1595
+ } else {
1596
+ alert('签名参数DN不匹配!')
1597
+ }
1598
+ }
1599
+ } catch (e) {
1600
+ if (e instanceof TCACErr) {
1601
+ alert(e.toStr())
1602
+ } else {
1603
+ alert('签名失败!')
1604
+ }
1605
+ }
1606
+ }