You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

994 lines
324 KiB

3 weeks ago
  1. {
  2. "info": {
  3. "_postman_id": "fafb1969-d41a-493b-a8c4-8c755127158c",
  4. "name": "GR-C2C-prod fxtrade",
  5. "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
  6. "_exporter_id": "30040149"
  7. },
  8. "item": [
  9. {
  10. "name": "星河api",
  11. "item": [
  12. {
  13. "name": "fxTrade",
  14. "event": [
  15. {
  16. "listen": "prerequest",
  17. "script": {
  18. "exec": [
  19. ""
  20. ],
  21. "type": "text/javascript"
  22. }
  23. }
  24. ],
  25. "request": {
  26. "method": "POST",
  27. "header": [
  28. {
  29. "key": "Content-Type",
  30. "value": "application/json; charset=UTF-8",
  31. "type": "text"
  32. },
  33. {
  34. "key": "client-id",
  35. "value": "{{client_id}}",
  36. "type": "text"
  37. },
  38. {
  39. "key": "request-time",
  40. "value": "{{request_time}}",
  41. "type": "text"
  42. },
  43. {
  44. "key": "signature",
  45. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  46. "type": "text"
  47. },
  48. {
  49. "key": "original_host",
  50. "value": "open-sea.alipayplus.com",
  51. "type": "text"
  52. },
  53. {
  54. "key": "markuid",
  55. "value": "0A",
  56. "type": "text",
  57. "disabled": true
  58. }
  59. ],
  60. "body": {
  61. "mode": "raw",
  62. "raw": "{\n \"fxTradeRequestId\": \"2019010111434112601\",\n \"quoteRetrieveType\": \"ACTIVE\", \n \"foreignExchangeQuote\": {\n \"quoteId\": \"1622010148223353977\",\n \"quoteCurrencyPair\": \"USD/CNY\",\n \"quotePrice\": \"7.00\",\n \"baseCurrency\": \"USD\",\n \"quoteUnit\": \"1\"\n },\n \"currencyPair\": \"USD/CNY\",\n \"fxTradeSide\": \"SELL\",\n \"fxTradeAmount\": {\"value\": \"1000\", \"currency\": \"USD\"}\n}"
  63. },
  64. "url": {
  65. "raw": "https://open-sea.alipay.com/aps/api/sandbox/transfer/fxTrade",
  66. "protocol": "https",
  67. "host": [
  68. "open-sea",
  69. "alipay",
  70. "com"
  71. ],
  72. "path": [
  73. "aps",
  74. "api",
  75. "sandbox",
  76. "transfer",
  77. "fxTrade"
  78. ]
  79. },
  80. "description": "11"
  81. },
  82. "response": []
  83. },
  84. {
  85. "name": "Inquiry fxTrade",
  86. "event": [
  87. {
  88. "listen": "prerequest",
  89. "script": {
  90. "exec": [
  91. ""
  92. ],
  93. "type": "text/javascript"
  94. }
  95. }
  96. ],
  97. "request": {
  98. "method": "POST",
  99. "header": [
  100. {
  101. "key": "Content-Type",
  102. "value": "application/json; charset=UTF-8",
  103. "type": "text"
  104. },
  105. {
  106. "key": "client-id",
  107. "value": "{{client_id}}",
  108. "type": "text"
  109. },
  110. {
  111. "key": "request-time",
  112. "value": "{{request_time}}",
  113. "type": "text"
  114. },
  115. {
  116. "key": "signature",
  117. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  118. "type": "text"
  119. },
  120. {
  121. "key": "original_host",
  122. "value": "open-sea.alipayplus.com",
  123. "type": "text"
  124. },
  125. {
  126. "key": "markuid",
  127. "value": "0A",
  128. "type": "text",
  129. "disabled": true
  130. }
  131. ],
  132. "body": {
  133. "mode": "raw",
  134. "raw": "{\n \"fxTradeRequestId\":\"000000\"\n}"
  135. },
  136. "url": {
  137. "raw": "https://open-sea.alipay.com/aps/api/sandbox/transfer/inquiryFxTrade",
  138. "protocol": "https",
  139. "host": [
  140. "open-sea",
  141. "alipay",
  142. "com"
  143. ],
  144. "path": [
  145. "aps",
  146. "api",
  147. "sandbox",
  148. "transfer",
  149. "inquiryFxTrade"
  150. ]
  151. },
  152. "description": "11"
  153. },
  154. "response": []
  155. },
  156. {
  157. "name": "Inquiry Quote",
  158. "event": [
  159. {
  160. "listen": "prerequest",
  161. "script": {
  162. "exec": [
  163. ""
  164. ],
  165. "type": "text/javascript"
  166. }
  167. }
  168. ],
  169. "request": {
  170. "method": "POST",
  171. "header": [
  172. {
  173. "key": "Content-Type",
  174. "value": "application/json; charset=UTF-8",
  175. "type": "text"
  176. },
  177. {
  178. "key": "client-id",
  179. "value": "{{client_id}}",
  180. "type": "text"
  181. },
  182. {
  183. "key": "request-time",
  184. "value": "{{request_time}}",
  185. "type": "text"
  186. },
  187. {
  188. "key": "signature",
  189. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  190. "type": "text"
  191. },
  192. {
  193. "key": "original_host",
  194. "value": "open-sea.alipayplus.com",
  195. "type": "text"
  196. },
  197. {
  198. "key": "markuid",
  199. "value": "0A",
  200. "type": "text",
  201. "disabled": true
  202. }
  203. ],
  204. "body": {
  205. "mode": "raw",
  206. "raw": "{\n \"quoteBizType\": \"PREFUND\",\n \"sellCurrency\": \"USD\",\n \"buyCurrency\": \"CNY\",\n \"sellAmount\": {\"value\": \"1000\", \"currency\": \"USD\"}\n}"
  207. },
  208. "url": {
  209. "raw": "https://open-sea.alipay.com/aps/api/sandbox/transfer/inquiryQuote",
  210. "protocol": "https",
  211. "host": [
  212. "open-sea",
  213. "alipay",
  214. "com"
  215. ],
  216. "path": [
  217. "aps",
  218. "api",
  219. "sandbox",
  220. "transfer",
  221. "inquiryQuote"
  222. ]
  223. },
  224. "description": "11"
  225. },
  226. "response": []
  227. },
  228. {
  229. "name": "Cancel Transfer",
  230. "event": [
  231. {
  232. "listen": "prerequest",
  233. "script": {
  234. "exec": [
  235. ""
  236. ],
  237. "type": "text/javascript"
  238. }
  239. }
  240. ],
  241. "request": {
  242. "method": "POST",
  243. "header": [
  244. {
  245. "key": "Content-Type",
  246. "value": "application/json; charset=UTF-8",
  247. "type": "text"
  248. },
  249. {
  250. "key": "client-id",
  251. "value": "{{client_id}}",
  252. "type": "text"
  253. },
  254. {
  255. "key": "request-time",
  256. "value": "{{request_time}}",
  257. "type": "text"
  258. },
  259. {
  260. "key": "signature",
  261. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  262. "type": "text"
  263. },
  264. {
  265. "key": "original_host",
  266. "value": "open-sea.alipayplus.com",
  267. "type": "text"
  268. }
  269. ],
  270. "body": {
  271. "mode": "raw",
  272. "raw": "{\n \"transferRequestId\": \"test202002060007\"\n}"
  273. },
  274. "url": {
  275. "raw": "https://open-sea.alipayplus.com/aps/api/sandbox/transfer/cancelTransfer",
  276. "protocol": "https",
  277. "host": [
  278. "open-sea",
  279. "alipayplus",
  280. "com"
  281. ],
  282. "path": [
  283. "aps",
  284. "api",
  285. "sandbox",
  286. "transfer",
  287. "cancelTransfer"
  288. ]
  289. }
  290. },
  291. "response": []
  292. },
  293. {
  294. "name": "ValidateTransfer",
  295. "event": [
  296. {
  297. "listen": "prerequest",
  298. "script": {
  299. "exec": [
  300. ""
  301. ],
  302. "type": "text/javascript",
  303. "packages": {}
  304. }
  305. }
  306. ],
  307. "request": {
  308. "method": "POST",
  309. "header": [
  310. {
  311. "key": "Content-Type",
  312. "value": "application/json; charset=UTF-8",
  313. "type": "text"
  314. },
  315. {
  316. "key": "client-id",
  317. "value": "{{client_id}}",
  318. "type": "text"
  319. },
  320. {
  321. "key": "request-time",
  322. "value": "{{request_time}}",
  323. "type": "text"
  324. },
  325. {
  326. "key": "signature",
  327. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  328. "type": "text"
  329. },
  330. {
  331. "key": "original_host",
  332. "value": "open-sea.alipayplus.com",
  333. "type": "text"
  334. },
  335. {
  336. "key": "markuid",
  337. "value": "0A",
  338. "type": "text",
  339. "disabled": true
  340. }
  341. ],
  342. "body": {
  343. "mode": "raw",
  344. "raw": "{\n \"beneficiaryReceiptMethod\": {\n \"walletDetail\": {\n \"walletName\": \"ALIPAY_CN\",\n \"customerId\": \"not_exist_user@antfin.com\",\n \"customerName\": {\n \"firstName\": \"ZHANG\",\n \"lastName\": \"SAN\",\n \"fullName\" :\"NOT EXIST\"\n }\n },\n \"paymentMethodType\": \"WALLET\"\n },\n \"instructedAmountType\": \"TRANSFER_TO\",\n \"beneficiary\": {\n \"userName\": {\n \"firstName\": \"ZHANG\",\n \"lastName\": \"SAN\",\n \"fullName\": \"ZHANG SAN\"\n }\n },\n \"transferToAmount\": {\n \"currency\": \"CNY\",\n \"value\": 10000\n },\n \"transferFromRegion\": \"KR\",\n \"transferToRegion\": \"CN\"\n}"
  345. },
  346. "url": {
  347. "raw": "https://open-sea.alipay.com/aps/api/sandbox/transfer/validateTransfer",
  348. "protocol": "https",
  349. "host": [
  350. "open-sea",
  351. "alipay",
  352. "com"
  353. ],
  354. "path": [
  355. "aps",
  356. "api",
  357. "sandbox",
  358. "transfer",
  359. "validateTransfer"
  360. ]
  361. }
  362. },
  363. "response": []
  364. },
  365. {
  366. "name": "inquiryBalance",
  367. "request": {
  368. "method": "POST",
  369. "header": [
  370. {
  371. "key": "Content-Type",
  372. "value": "application/json; ",
  373. "type": "text"
  374. },
  375. {
  376. "key": "client-id",
  377. "value": "{{client_id}}",
  378. "type": "text"
  379. },
  380. {
  381. "key": "request-time",
  382. "value": "{{request_time}}",
  383. "type": "text"
  384. },
  385. {
  386. "key": "signature",
  387. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  388. "type": "text"
  389. },
  390. {
  391. "key": "original_host",
  392. "value": "open-sea.alipayplus.com",
  393. "type": "text",
  394. "disabled": true
  395. },
  396. {
  397. "key": "markuid",
  398. "value": "0A",
  399. "type": "text",
  400. "disabled": true
  401. }
  402. ],
  403. "body": {
  404. "mode": "raw",
  405. "raw": "{\"participantId\":\"2031228300000000\"}"
  406. },
  407. "url": {
  408. "raw": "https://open-sea.alipayplus.com/aps/api/sandbox/balance/inquiryBalance",
  409. "protocol": "https",
  410. "host": [
  411. "open-sea",
  412. "alipayplus",
  413. "com"
  414. ],
  415. "path": [
  416. "aps",
  417. "api",
  418. "sandbox",
  419. "balance",
  420. "inquiryBalance"
  421. ]
  422. }
  423. },
  424. "response": []
  425. },
  426. {
  427. "name": "inquiryTransfer",
  428. "request": {
  429. "method": "POST",
  430. "header": [
  431. {
  432. "key": "Content-Type",
  433. "value": "application/json; charset=UTF-8",
  434. "type": "text"
  435. },
  436. {
  437. "key": "client-id",
  438. "value": "{{client_id}}",
  439. "type": "text"
  440. },
  441. {
  442. "key": "request-time",
  443. "value": "{{request_time}}",
  444. "type": "text"
  445. },
  446. {
  447. "key": "signature",
  448. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  449. "type": "text"
  450. },
  451. {
  452. "key": "original_host",
  453. "value": "open-sea.alipayplus.com",
  454. "type": "text"
  455. }
  456. ],
  457. "body": {
  458. "mode": "raw",
  459. "raw": "{\r\n\t\"transferRequestId\":\"2021daisy0608\"\r\n}"
  460. },
  461. "url": {
  462. "raw": "https://open-sea.alipayplus.com/aps/api/sandbox/transfer/inquiryTransfer",
  463. "protocol": "https",
  464. "host": [
  465. "open-sea",
  466. "alipayplus",
  467. "com"
  468. ],
  469. "path": [
  470. "aps",
  471. "api",
  472. "sandbox",
  473. "transfer",
  474. "inquiryTransfer"
  475. ]
  476. }
  477. },
  478. "response": []
  479. },
  480. {
  481. "name": "Transfer",
  482. "request": {
  483. "method": "POST",
  484. "header": [
  485. {
  486. "key": "Content-Type",
  487. "value": "application/json; charset=UTF-8",
  488. "type": "text"
  489. },
  490. {
  491. "key": "client-id",
  492. "value": "{{client_id}}",
  493. "type": "text"
  494. },
  495. {
  496. "key": "request-time",
  497. "value": "{{request_time}}",
  498. "type": "text"
  499. },
  500. {
  501. "key": "signature",
  502. "value": "algorithm=RSA256,keyVersion=1,signature={{sign}}",
  503. "type": "text"
  504. },
  505. {
  506. "key": "original_host",
  507. "value": "open-sea.alipayplus.com",
  508. "type": "text"
  509. }
  510. ],
  511. "body": {
  512. "mode": "raw",
  513. "raw": "{\n \"transferRequestId\": \"test_15838983DAISY907\",\n \"beneficiaryReceiptMethod\": {\n \"walletDetail\": {\n \"walletName\": \"ALIPAY_CN\",\n \"customerId\": \"64000000003\",\n \"customerName\": {\n \"firstName\": \"ZHANG\",\n \"lastName\": \"SAN\",\n \"fullName\": \"ZHANG SAN\",\n \"middleName\": \"\"\n }\n },\n \"paymentMethodType\": \"WALLET\"\n },\n \"instructedAmountType\": \"TRANSFER_TO\",\n \"bizSceneType\": \"TRANSFER\",\n \"transferToAmount\": {\n \"currency\": \"CNY\",\n \"value\": \"10000\"\n },\n \"additionalTransferDetails\": {\n \"beneficiary\": {\n \"nationality\": \"CN\",\n \"userName\": {\n \"firstName\": \"ZHANG\",\n \"lastName\": \"SAN\",\n \"fullName\": \"ZHANG SAN\",\n \"middleName\": \"\"\n }\n },\n\t\"transferPurpose\": \"SALARY\",\n \"subTransferPurpose\": \"\",\n \"transferFromRegion\": \"KR\",\n \"payer\": {\n \"userAddress\": {\n \"zipCode\": \"04072\",\n \"city\": \"SEOUL\",\n \"address2\": \"366-1. Hapjeong-dong\",\n \"address1\": \"Mapo-gu, Seoul\",\n \"region\": \"KR\"\n },\n \"nationality\": \"CN\",\n \"userPhoneNo\": \"01012345678\",\n \"certificate\": {\n \"certificateNo\": \"11234578899\",\n \"certificateType\": \"PASSPORT\"\n },\n \"userName\": {\n \"firstName\": \"William\",\n \"lastName\": \"Clinton\",\n \"fullName\": \"William Jefferson Clinton\",\n \"middleName\": \"Jefferson\"\n },\n \"userId\": \"123456789\",\n \"birthDate\": \"20020604\"\n },\n \"transferToRegion\": \"CN\"\n },\n \"transferReference\": \"test transfer reference\"\n}"
  514. },
  515. "url": {
  516. "raw": "https://open-sea.alipayplus.com/aps/api/sandbox/transfer/transfer",
  517. "protocol": "https",
  518. "host": [
  519. "open-sea",
  520. "alipayplus",
  521. "com"
  522. ],
  523. "path": [
  524. "aps",
  525. "api",
  526. "sandbox",
  527. "transfer",
  528. "transfer"
  529. ]
  530. }
  531. },
  532. "response": []
  533. }
  534. ],
  535. "event": [
  536. {
  537. "listen": "prerequest",
  538. "script": {
  539. "type": "text/javascript",
  540. "exec": [
  541. ""
  542. ]
  543. }
  544. },
  545. {
  546. "listen": "test",
  547. "script": {
  548. "type": "text/javascript",
  549. "exec": [
  550. ""
  551. ]
  552. }
  553. }
  554. ]
  555. }
  556. ],
  557. "event": [
  558. {
  559. "listen": "prerequest",
  560. "script": {
  561. "type": "text/javascript",
  562. "exec": [
  563. "let navigator = \"1\";",
  564. "let window = \"1\";",
  565. "if (YAHOO === undefined) { var YAHOO = {} } YAHOO.lang = { extend: function (g, h, f) { if (!h || !g) { throw new Error(\"YAHOO.lang.extend failed, please check that all dependencies are included.\") } var d = function () { }; d.prototype = h.prototype; g.prototype = new d(); g.prototype.constructor = g; g.superclass = h.prototype; if (h.prototype.constructor == Object.prototype.constructor) { h.prototype.constructor = h } if (f) { var b; for (b in f) { g.prototype[b] = f[b] } var e = function () { }, c = [\"toString\", \"valueOf\"]; try { if (/MSIE/.test(navigator.userAgent)) { e = function (j, i) { for (b = 0; b < c.length; b = b + 1) { var l = c[b], k = i[l]; if (typeof k === \"function\" && k != Object.prototype[l]) { j[l] = k } } } } } catch (a) { } e(g.prototype, f) } } };",
  566. "",
  567. "/*! CryptoJS v3.1.2 core-fix.js",
  568. " * code.google.com/p/crypto-js",
  569. " * (c) 2009-2013 by Jeff Mott. All rights reserved.",
  570. " * code.google.com/p/crypto-js/wiki/License",
  571. " * THIS IS FIX of 'core.js' to fix Hmac issue.",
  572. " * https://code.google.com/p/crypto-js/issues/detail?id=84",
  573. " * https://crypto-js.googlecode.com/svn-history/r667/branches/3.x/src/core.js",
  574. " */",
  575. "var CryptoJS = CryptoJS || (function (e, g) { var a = {}; var b = a.lib = {}; var j = b.Base = (function () { function n() { } return { extend: function (p) { n.prototype = this; var o = new n(); if (p) { o.mixIn(p) } if (!o.hasOwnProperty(\"init\")) { o.init = function () { o.$super.init.apply(this, arguments) } } o.init.prototype = o; o.$super = this; return o }, create: function () { var o = this.extend(); o.init.apply(o, arguments); return o }, init: function () { }, mixIn: function (p) { for (var o in p) { if (p.hasOwnProperty(o)) { this[o] = p[o] } } if (p.hasOwnProperty(\"toString\")) { this.toString = p.toString } }, clone: function () { return this.init.prototype.extend(this) } } }()); var l = b.WordArray = j.extend({ init: function (o, n) { o = this.words = o || []; if (n != g) { this.sigBytes = n } else { this.sigBytes = o.length * 4 } }, toString: function (n) { return (n || h).stringify(this) }, concat: function (t) { var q = this.words; var p = t.words; var n = this.sigBytes; var s = t.sigBytes; this.clamp(); if (n % 4) { for (var r = 0; r < s; r++) { var o = (p[r >>> 2] >>> (24 - (r % 4) * 8)) & 255; q[(n + r) >>> 2] |= o << (24 - ((n + r) % 4) * 8) } } else { for (var r = 0; r < s; r += 4) { q[(n + r) >>> 2] = p[r >>> 2] } } this.sigBytes += s; return this }, clamp: function () { var o = this.words; var n = this.sigBytes; o[n >>> 2] &= 4294967295 << (32 - (n % 4) * 8); o.length = e.ceil(n / 4) }, clone: function () { var n = j.clone.call(this); n.words = this.words.slice(0); return n }, random: function (p) { var o = []; for (var n = 0; n < p; n += 4) { o.push((e.random() * 4294967296) | 0) } return new l.init(o, p) } }); var m = a.enc = {}; var h = m.Hex = { stringify: function (p) { var r = p.words; var o = p.sigBytes; var q = []; for (var n = 0; n < o; n++) { var s = (r[n >>> 2] >>> (24 - (n % 4) * 8)) & 255; q.push((s >>> 4).toString(16)); q.push((s & 15).toString(16)) } return q.join(\"\") }, parse: function (p) { var n = p.length; var q = []; for (var o = 0; o < n; o += 2) { q[o >>> 3] |= parseInt(p.substr(o, 2), 16) << (24 - (o % 8) * 4) } return new l.init(q, n / 2) } }; var d = m.Latin1 = { stringify: function (q) { var r = q.words; var p = q.sigBytes; var n = []; for (var o = 0; o < p; o++) { var s = (r[o >>> 2] >>> (24 - (o % 4) * 8)) & 255; n.push(String.fromCharCode(s)) } return n.join(\"\") }, parse: function (p) { var n = p.length; var q = []; for (var o = 0; o < n; o++) { q[o >>> 2] |= (p.charCodeAt(o) & 255) << (24 - (o % 4) * 8) } return new l.init(q, n) } }; var c = m.Utf8 = { stringify: function (n) { try { return decodeURIComponent(escape(d.stringify(n))) } catch (o) { throw new Error(\"Malformed UTF-8 data\") } }, parse: function (n) { return d.parse(unescape(encodeURIComponent(n))) } }; var i = b.BufferedBlockAlgorithm = j.extend({ reset: function () { this._data = new l.init(); this._nDataBytes = 0 }, _append: function (n) { if (typeof n == \"string\") { n = c.parse(n) } this._data.concat(n); this._nDataBytes += n.sigBytes }, _process: function (w) { var q = this._data; var x = q.words; var n = q.sigBytes; var t = this.blockSize; var v = t * 4; var u = n / v; if (w) { u = e.ceil(u) } else { u = e.max((u | 0) - this._minBufferSize, 0) } var s = u * t; var r = e.min(s * 4, n); if (s) { for (var p = 0; p < s; p += t) { this._doProcessBlock(x, p) } var o = x.splice(0, s); q.sigBytes -= r } return new l.init(o, r) }, clone: function () { var n = j.clone.call(this); n._data = this._data.clone(); return n }, _minBufferSize: 0 }); var f = b.Hasher = i.extend({ cfg: j.extend(), init: function (n) { this.cfg = this.cfg.extend(n); this.reset() }, reset: function () { i.reset.call(this); this._doReset() }, update: function (n) { this._append(n); this._process(); return this }, finalize: function (n) { if (n) { this._append(n) } var o = this._doFinalize(); return o }, blockSize: 512 / 32, _createHelper: function (n) { return function (p, o) { return new n.init(o).finalize(p) } }, _createHmacHelper: function (n) { return function (p, o) { return new k.HMAC.init(n, o).finalize(p) } } }); v
  576. "/*",
  577. "CryptoJS v3.1.2 x64-core-min.js",
  578. "code.google.com/p/crypto-js",
  579. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  580. "code.google.com/p/crypto-js/wiki/License",
  581. "*/",
  582. "(function (g) { var a = CryptoJS, f = a.lib, e = f.Base, h = f.WordArray, a = a.x64 = {}; a.Word = e.extend({ init: function (b, c) { this.high = b; this.low = c } }); a.WordArray = e.extend({ init: function (b, c) { b = this.words = b || []; this.sigBytes = c != g ? c : 8 * b.length }, toX32: function () { for (var b = this.words, c = b.length, a = [], d = 0; d < c; d++) { var e = b[d]; a.push(e.high); a.push(e.low) } return h.create(a, this.sigBytes) }, clone: function () { for (var b = e.clone.call(this), c = b.words = this.words.slice(0), a = c.length, d = 0; d < a; d++)c[d] = c[d].clone(); return b } }) })();",
  583. "",
  584. "/*",
  585. "CryptoJS v3.1.2 cipher-core.js",
  586. "code.google.com/p/crypto-js",
  587. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  588. "code.google.com/p/crypto-js/wiki/License",
  589. "*/",
  590. "CryptoJS.lib.Cipher || function (u) {",
  591. " var g = CryptoJS, f = g.lib, k = f.Base, l = f.WordArray, q = f.BufferedBlockAlgorithm, r = g.enc.Base64, v = g.algo.EvpKDF, n = f.Cipher = q.extend({",
  592. " cfg: k.extend(), createEncryptor: function (a, b) { return this.create(this._ENC_XFORM_MODE, a, b) }, createDecryptor: function (a, b) { return this.create(this._DEC_XFORM_MODE, a, b) }, init: function (a, b, c) { this.cfg = this.cfg.extend(c); this._xformMode = a; this._key = b; this.reset() }, reset: function () { q.reset.call(this); this._doReset() }, process: function (a) {",
  593. " this._append(a);",
  594. " return this._process()",
  595. " }, finalize: function (a) { a && this._append(a); return this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (a) { return { encrypt: function (b, c, d) { return (\"string\" == typeof c ? s : j).encrypt(a, b, c, d) }, decrypt: function (b, c, d) { return (\"string\" == typeof c ? s : j).decrypt(a, b, c, d) } } }",
  596. " }); f.StreamCipher = n.extend({ _doFinalize: function () { return this._process(!0) }, blockSize: 1 }); var m = g.mode = {}, t = function (a, b, c) {",
  597. " var d = this._iv; d ? this._iv = u : d = this._prevBlock; for (var e =",
  598. " 0; e < c; e++)a[b + e] ^= d[e]",
  599. " }, h = (f.BlockCipherMode = k.extend({ createEncryptor: function (a, b) { return this.Encryptor.create(a, b) }, createDecryptor: function (a, b) { return this.Decryptor.create(a, b) }, init: function (a, b) { this._cipher = a; this._iv = b } })).extend(); h.Encryptor = h.extend({ processBlock: function (a, b) { var c = this._cipher, d = c.blockSize; t.call(this, a, b, d); c.encryptBlock(a, b); this._prevBlock = a.slice(b, b + d) } }); h.Decryptor = h.extend({",
  600. " processBlock: function (a, b) {",
  601. " var c = this._cipher, d = c.blockSize, e = a.slice(b, b + d); c.decryptBlock(a,",
  602. " b); t.call(this, a, b, d); this._prevBlock = e",
  603. " }",
  604. " }); m = m.CBC = h; h = (g.pad = {}).Pkcs7 = { pad: function (a, b) { for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, e = [], f = 0; f < c; f += 4)e.push(d); c = l.create(e, c); a.concat(c) }, unpad: function (a) { a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255 } }; f.BlockCipher = n.extend({",
  605. " cfg: n.cfg.extend({ mode: m, padding: h }), reset: function () {",
  606. " n.reset.call(this); var a = this.cfg, b = a.iv, a = a.mode; if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor; else c = a.createDecryptor, this._minBufferSize = 1;",
  607. " this._mode = c.call(a, this, b && b.words)",
  608. " }, _doProcessBlock: function (a, b) { this._mode.processBlock(a, b) }, _doFinalize: function () { var a = this.cfg.padding; if (this._xformMode == this._ENC_XFORM_MODE) { a.pad(this._data, this.blockSize); var b = this._process(!0) } else b = this._process(!0), a.unpad(b); return b }, blockSize: 4",
  609. " }); var p = f.CipherParams = k.extend({ init: function (a) { this.mixIn(a) }, toString: function (a) { return (a || this.formatter).stringify(this) } }), m = (g.format = {}).OpenSSL = {",
  610. " stringify: function (a) {",
  611. " var b = a.ciphertext; a = a.salt;",
  612. " return (a ? l.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r)",
  613. " }, parse: function (a) { a = r.parse(a); var b = a.words; if (1398893684 == b[0] && 1701076831 == b[1]) { var c = l.create(b.slice(2, 4)); b.splice(0, 4); a.sigBytes -= 16 } return p.create({ ciphertext: a, salt: c }) }",
  614. " }, j = f.SerializableCipher = k.extend({",
  615. " cfg: k.extend({ format: m }), encrypt: function (a, b, c, d) {",
  616. " d = this.cfg.extend(d); var e = a.createEncryptor(c, d); b = e.finalize(b); e = e.cfg; return p.create({",
  617. " ciphertext: b, key: c, iv: e.iv, algorithm: a, mode: e.mode, padding: e.padding,",
  618. " blockSize: a.blockSize, formatter: d.format",
  619. " })",
  620. " }, decrypt: function (a, b, c, d) { d = this.cfg.extend(d); b = this._parse(b, d.format); return a.createDecryptor(c, d).finalize(b.ciphertext) }, _parse: function (a, b) { return \"string\" == typeof a ? b.parse(a, this) : a }",
  621. " }), g = (g.kdf = {}).OpenSSL = { execute: function (a, b, c, d) { d || (d = l.random(8)); a = v.create({ keySize: b + c }).compute(a, d); c = l.create(a.words.slice(b), 4 * c); a.sigBytes = 4 * b; return p.create({ key: a, iv: c, salt: d }) } }, s = f.PasswordBasedCipher = j.extend({",
  622. " cfg: j.cfg.extend({ kdf: g }), encrypt: function (a,",
  623. " b, c, d) { d = this.cfg.extend(d); c = d.kdf.execute(c, a.keySize, a.ivSize); d.iv = c.iv; a = j.encrypt.call(this, a, b, c.key, d); a.mixIn(c); return a }, decrypt: function (a, b, c, d) { d = this.cfg.extend(d); b = this._parse(b, d.format); c = d.kdf.execute(c, a.keySize, a.ivSize, b.salt); d.iv = c.iv; return j.decrypt.call(this, a, b, c.key, d) }",
  624. " })",
  625. "}();",
  626. "",
  627. "/*",
  628. "CryptoJS v3.1.2 aes.js",
  629. "code.google.com/p/crypto-js",
  630. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  631. "code.google.com/p/crypto-js/wiki/License",
  632. "*/",
  633. "(function () {",
  634. " for (var q = CryptoJS, x = q.lib.BlockCipher, r = q.algo, j = [], y = [], z = [], A = [], B = [], C = [], s = [], u = [], v = [], w = [], g = [], k = 0; 256 > k; k++)g[k] = 128 > k ? k << 1 : k << 1 ^ 283; for (var n = 0, l = 0, k = 0; 256 > k; k++) { var f = l ^ l << 1 ^ l << 2 ^ l << 3 ^ l << 4, f = f >>> 8 ^ f & 255 ^ 99; j[n] = f; y[f] = n; var t = g[n], D = g[t], E = g[D], b = 257 * g[f] ^ 16843008 * f; z[n] = b << 24 | b >>> 8; A[n] = b << 16 | b >>> 16; B[n] = b << 8 | b >>> 24; C[n] = b; b = 16843009 * E ^ 65537 * D ^ 257 * t ^ 16843008 * n; s[f] = b << 24 | b >>> 8; u[f] = b << 16 | b >>> 16; v[f] = b << 8 | b >>> 24; w[f] = b; n ? (n = t ^ g[g[g[E ^ t]]], l ^= g[g[l]]) : n = l = 1 } var F = [0, 1, 2, 4, 8,",
  635. " 16, 32, 64, 128, 27, 54], r = r.AES = x.extend({",
  636. " _doReset: function () {",
  637. " for (var c = this._key, e = c.words, a = c.sigBytes / 4, c = 4 * ((this._nRounds = a + 6) + 1), b = this._keySchedule = [], h = 0; h < c; h++)if (h < a) b[h] = e[h]; else { var d = b[h - 1]; h % a ? 6 < a && 4 == h % a && (d = j[d >>> 24] << 24 | j[d >>> 16 & 255] << 16 | j[d >>> 8 & 255] << 8 | j[d & 255]) : (d = d << 8 | d >>> 24, d = j[d >>> 24] << 24 | j[d >>> 16 & 255] << 16 | j[d >>> 8 & 255] << 8 | j[d & 255], d ^= F[h / a | 0] << 24); b[h] = b[h - a] ^ d } e = this._invKeySchedule = []; for (a = 0; a < c; a++)h = c - a, d = a % 4 ? b[h] : b[h - 4], e[a] = 4 > a || 4 >= h ? d : s[j[d >>> 24]] ^ u[j[d >>> 16 & 255]] ^ v[j[d >>>",
  638. " 8 & 255]] ^ w[j[d & 255]]",
  639. " }, encryptBlock: function (c, e) { this._doCryptBlock(c, e, this._keySchedule, z, A, B, C, j) }, decryptBlock: function (c, e) { var a = c[e + 1]; c[e + 1] = c[e + 3]; c[e + 3] = a; this._doCryptBlock(c, e, this._invKeySchedule, s, u, v, w, y); a = c[e + 1]; c[e + 1] = c[e + 3]; c[e + 3] = a }, _doCryptBlock: function (c, e, a, b, h, d, j, m) {",
  640. " for (var n = this._nRounds, f = c[e] ^ a[0], g = c[e + 1] ^ a[1], k = c[e + 2] ^ a[2], p = c[e + 3] ^ a[3], l = 4, t = 1; t < n; t++)var q = b[f >>> 24] ^ h[g >>> 16 & 255] ^ d[k >>> 8 & 255] ^ j[p & 255] ^ a[l++], r = b[g >>> 24] ^ h[k >>> 16 & 255] ^ d[p >>> 8 & 255] ^ j[f & 255] ^ a[l++], s =",
  641. " b[k >>> 24] ^ h[p >>> 16 & 255] ^ d[f >>> 8 & 255] ^ j[g & 255] ^ a[l++], p = b[p >>> 24] ^ h[f >>> 16 & 255] ^ d[g >>> 8 & 255] ^ j[k & 255] ^ a[l++], f = q, g = r, k = s; q = (m[f >>> 24] << 24 | m[g >>> 16 & 255] << 16 | m[k >>> 8 & 255] << 8 | m[p & 255]) ^ a[l++]; r = (m[g >>> 24] << 24 | m[k >>> 16 & 255] << 16 | m[p >>> 8 & 255] << 8 | m[f & 255]) ^ a[l++]; s = (m[k >>> 24] << 24 | m[p >>> 16 & 255] << 16 | m[f >>> 8 & 255] << 8 | m[g & 255]) ^ a[l++]; p = (m[p >>> 24] << 24 | m[f >>> 16 & 255] << 16 | m[g >>> 8 & 255] << 8 | m[k & 255]) ^ a[l++]; c[e] = q; c[e + 1] = r; c[e + 2] = s; c[e + 3] = p",
  642. " }, keySize: 8",
  643. " }); q.AES = x._createHelper(r)",
  644. "})();",
  645. "",
  646. "/*",
  647. "CryptoJS v3.1.2 tripledes-min.js",
  648. "code.google.com/p/crypto-js",
  649. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  650. "code.google.com/p/crypto-js/wiki/License",
  651. "*/",
  652. "(function () {",
  653. " function j(b, c) { var a = (this._lBlock >>> b ^ this._rBlock) & c; this._rBlock ^= a; this._lBlock ^= a << b } function l(b, c) { var a = (this._rBlock >>> b ^ this._lBlock) & c; this._lBlock ^= a; this._rBlock ^= a << b } var h = CryptoJS, e = h.lib, n = e.WordArray, e = e.BlockCipher, g = h.algo, q = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], p = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47,",
  654. " 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], r = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], s = [{",
  655. " \"0\": 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2,",
  656. " 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610,",
  657. " 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378",
  658. " }, {",
  659. " \"0\": 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224,",
  660. " 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512,",
  661. " 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672",
  662. " }, {",
  663. " \"0\": 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536,",
  664. " 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404,",
  665. " 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792",
  666. " }, {",
  667. " \"0\": 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808,",
  668. " 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952,",
  669. " 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464",
  670. " }, {",
  671. " \"0\": 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256,",
  672. " 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184,",
  673. " 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040",
  674. " }, {",
  675. " \"0\": 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192,",
  676. " 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656",
  677. " }, {",
  678. " \"0\": 1048576,",
  679. " 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433,",
  680. " 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577",
  681. " }, {",
  682. " \"0\": 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32,",
  683. " 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760,",
  684. " 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848",
  685. " }], t = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], m = g.DES = e.extend({",
  686. " _doReset: function () {",
  687. " for (var b = this._key.words, c = [], a = 0; 56 > a; a++) { var f = q[a] - 1; c[a] = b[f >>> 5] >>> 31 - f % 32 & 1 } b = this._subKeys = []; for (f = 0; 16 > f; f++) {",
  688. " for (var d = b[f] = [], e = r[f], a = 0; 24 > a; a++)d[a / 6 | 0] |= c[(p[a] - 1 + e) % 28] << 31 - a % 6, d[4 + (a / 6 | 0)] |= c[28 + (p[a + 24] - 1 + e) % 28] << 31 - a % 6; d[0] = d[0] << 1 | d[0] >>> 31; for (a = 1; 7 > a; a++)d[a] >>>=",
  689. " 4 * (a - 1) + 3; d[7] = d[7] << 5 | d[7] >>> 27",
  690. " } c = this._invSubKeys = []; for (a = 0; 16 > a; a++)c[a] = b[15 - a]",
  691. " }, encryptBlock: function (b, c) { this._doCryptBlock(b, c, this._subKeys) }, decryptBlock: function (b, c) { this._doCryptBlock(b, c, this._invSubKeys) }, _doCryptBlock: function (b, c, a) {",
  692. " this._lBlock = b[c]; this._rBlock = b[c + 1]; j.call(this, 4, 252645135); j.call(this, 16, 65535); l.call(this, 2, 858993459); l.call(this, 8, 16711935); j.call(this, 1, 1431655765); for (var f = 0; 16 > f; f++) {",
  693. " for (var d = a[f], e = this._lBlock, h = this._rBlock, g = 0, k = 0; 8 > k; k++)g |= s[k][((h ^",
  694. " d[k]) & t[k]) >>> 0]; this._lBlock = h; this._rBlock = e ^ g",
  695. " } a = this._lBlock; this._lBlock = this._rBlock; this._rBlock = a; j.call(this, 1, 1431655765); l.call(this, 8, 16711935); l.call(this, 2, 858993459); j.call(this, 16, 65535); j.call(this, 4, 252645135); b[c] = this._lBlock; b[c + 1] = this._rBlock",
  696. " }, keySize: 2, ivSize: 2, blockSize: 2",
  697. " }); h.DES = e._createHelper(m); g = g.TripleDES = e.extend({",
  698. " _doReset: function () {",
  699. " var b = this._key.words; this._des1 = m.createEncryptor(n.create(b.slice(0, 2))); this._des2 = m.createEncryptor(n.create(b.slice(2, 4))); this._des3 =",
  700. " m.createEncryptor(n.create(b.slice(4, 6)))",
  701. " }, encryptBlock: function (b, c) { this._des1.encryptBlock(b, c); this._des2.decryptBlock(b, c); this._des3.encryptBlock(b, c) }, decryptBlock: function (b, c) { this._des3.decryptBlock(b, c); this._des2.encryptBlock(b, c); this._des1.decryptBlock(b, c) }, keySize: 6, ivSize: 2, blockSize: 2",
  702. " }); h.TripleDES = e._createHelper(g)",
  703. "})();",
  704. "",
  705. "/*",
  706. "CryptoJS v3.1.2 enc-base64.js",
  707. "code.google.com/p/crypto-js",
  708. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  709. "code.google.com/p/crypto-js/wiki/License",
  710. "*/",
  711. "(function () {",
  712. " var h = CryptoJS, j = h.lib.WordArray; h.enc.Base64 = {",
  713. " stringify: function (b) { var e = b.words, f = b.sigBytes, c = this._map; b.clamp(); b = []; for (var a = 0; a < f; a += 3)for (var d = (e[a >>> 2] >>> 24 - 8 * (a % 4) & 255) << 16 | (e[a + 1 >>> 2] >>> 24 - 8 * ((a + 1) % 4) & 255) << 8 | e[a + 2 >>> 2] >>> 24 - 8 * ((a + 2) % 4) & 255, g = 0; 4 > g && a + 0.75 * g < f; g++)b.push(c.charAt(d >>> 6 * (3 - g) & 63)); if (e = c.charAt(64)) for (; b.length % 4;)b.push(e); return b.join(\"\") }, parse: function (b) {",
  714. " var e = b.length, f = this._map, c = f.charAt(64); c && (c = b.indexOf(c), -1 != c && (e = c)); for (var c = [], a = 0, d = 0; d <",
  715. " e; d++)if (d % 4) { var g = f.indexOf(b.charAt(d - 1)) << 2 * (d % 4), h = f.indexOf(b.charAt(d)) >>> 6 - 2 * (d % 4); c[a >>> 2] |= (g | h) << 24 - 8 * (a % 4); a++ } return j.create(c, a)",
  716. " }, _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"",
  717. " }",
  718. "})();",
  719. "",
  720. "/*",
  721. "CryptoJS v3.1.2 md5.js",
  722. "code.google.com/p/crypto-js",
  723. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  724. "code.google.com/p/crypto-js/wiki/License",
  725. "*/",
  726. "(function (E) {",
  727. " function h(a, f, g, j, p, h, k) { a = a + (f & g | ~f & j) + p + k; return (a << h | a >>> 32 - h) + f } function k(a, f, g, j, p, h, k) { a = a + (f & j | g & ~j) + p + k; return (a << h | a >>> 32 - h) + f } function l(a, f, g, j, h, k, l) { a = a + (f ^ g ^ j) + h + l; return (a << k | a >>> 32 - k) + f } function n(a, f, g, j, h, k, l) { a = a + (g ^ (f | ~j)) + h + l; return (a << k | a >>> 32 - k) + f } for (var r = CryptoJS, q = r.lib, F = q.WordArray, s = q.Hasher, q = r.algo, a = [], t = 0; 64 > t; t++)a[t] = 4294967296 * E.abs(E.sin(t + 1)) | 0; q = q.MD5 = s.extend({",
  728. " _doReset: function () { this._hash = new F.init([1732584193, 4023233417, 2562383102, 271733878]) },",
  729. " _doProcessBlock: function (m, f) {",
  730. " for (var g = 0; 16 > g; g++) { var j = f + g, p = m[j]; m[j] = (p << 8 | p >>> 24) & 16711935 | (p << 24 | p >>> 8) & 4278255360 } var g = this._hash.words, j = m[f + 0], p = m[f + 1], q = m[f + 2], r = m[f + 3], s = m[f + 4], t = m[f + 5], u = m[f + 6], v = m[f + 7], w = m[f + 8], x = m[f + 9], y = m[f + 10], z = m[f + 11], A = m[f + 12], B = m[f + 13], C = m[f + 14], D = m[f + 15], b = g[0], c = g[1], d = g[2], e = g[3], b = h(b, c, d, e, j, 7, a[0]), e = h(e, b, c, d, p, 12, a[1]), d = h(d, e, b, c, q, 17, a[2]), c = h(c, d, e, b, r, 22, a[3]), b = h(b, c, d, e, s, 7, a[4]), e = h(e, b, c, d, t, 12, a[5]), d = h(d, e, b, c, u, 17, a[6]), c = h(c, d, e, b, v, 22, a[7]),",
  731. " b = h(b, c, d, e, w, 7, a[8]), e = h(e, b, c, d, x, 12, a[9]), d = h(d, e, b, c, y, 17, a[10]), c = h(c, d, e, b, z, 22, a[11]), b = h(b, c, d, e, A, 7, a[12]), e = h(e, b, c, d, B, 12, a[13]), d = h(d, e, b, c, C, 17, a[14]), c = h(c, d, e, b, D, 22, a[15]), b = k(b, c, d, e, p, 5, a[16]), e = k(e, b, c, d, u, 9, a[17]), d = k(d, e, b, c, z, 14, a[18]), c = k(c, d, e, b, j, 20, a[19]), b = k(b, c, d, e, t, 5, a[20]), e = k(e, b, c, d, y, 9, a[21]), d = k(d, e, b, c, D, 14, a[22]), c = k(c, d, e, b, s, 20, a[23]), b = k(b, c, d, e, x, 5, a[24]), e = k(e, b, c, d, C, 9, a[25]), d = k(d, e, b, c, r, 14, a[26]), c = k(c, d, e, b, w, 20, a[27]), b = k(b, c, d, e, B, 5, a[28]), e = k(e, b,",
  732. " c, d, q, 9, a[29]), d = k(d, e, b, c, v, 14, a[30]), c = k(c, d, e, b, A, 20, a[31]), b = l(b, c, d, e, t, 4, a[32]), e = l(e, b, c, d, w, 11, a[33]), d = l(d, e, b, c, z, 16, a[34]), c = l(c, d, e, b, C, 23, a[35]), b = l(b, c, d, e, p, 4, a[36]), e = l(e, b, c, d, s, 11, a[37]), d = l(d, e, b, c, v, 16, a[38]), c = l(c, d, e, b, y, 23, a[39]), b = l(b, c, d, e, B, 4, a[40]), e = l(e, b, c, d, j, 11, a[41]), d = l(d, e, b, c, r, 16, a[42]), c = l(c, d, e, b, u, 23, a[43]), b = l(b, c, d, e, x, 4, a[44]), e = l(e, b, c, d, A, 11, a[45]), d = l(d, e, b, c, D, 16, a[46]), c = l(c, d, e, b, q, 23, a[47]), b = n(b, c, d, e, j, 6, a[48]), e = n(e, b, c, d, v, 10, a[49]), d = n(d, e, b, c,",
  733. " C, 15, a[50]), c = n(c, d, e, b, t, 21, a[51]), b = n(b, c, d, e, A, 6, a[52]), e = n(e, b, c, d, r, 10, a[53]), d = n(d, e, b, c, y, 15, a[54]), c = n(c, d, e, b, p, 21, a[55]), b = n(b, c, d, e, w, 6, a[56]), e = n(e, b, c, d, D, 10, a[57]), d = n(d, e, b, c, u, 15, a[58]), c = n(c, d, e, b, B, 21, a[59]), b = n(b, c, d, e, s, 6, a[60]), e = n(e, b, c, d, z, 10, a[61]), d = n(d, e, b, c, q, 15, a[62]), c = n(c, d, e, b, x, 21, a[63]); g[0] = g[0] + b | 0; g[1] = g[1] + c | 0; g[2] = g[2] + d | 0; g[3] = g[3] + e | 0",
  734. " }, _doFinalize: function () {",
  735. " var a = this._data, f = a.words, g = 8 * this._nDataBytes, j = 8 * a.sigBytes; f[j >>> 5] |= 128 << 24 - j % 32; var h = E.floor(g /",
  736. " 4294967296); f[(j + 64 >>> 9 << 4) + 15] = (h << 8 | h >>> 24) & 16711935 | (h << 24 | h >>> 8) & 4278255360; f[(j + 64 >>> 9 << 4) + 14] = (g << 8 | g >>> 24) & 16711935 | (g << 24 | g >>> 8) & 4278255360; a.sigBytes = 4 * (f.length + 1); this._process(); a = this._hash; f = a.words; for (g = 0; 4 > g; g++)j = f[g], f[g] = (j << 8 | j >>> 24) & 16711935 | (j << 24 | j >>> 8) & 4278255360; return a",
  737. " }, clone: function () { var a = s.clone.call(this); a._hash = this._hash.clone(); return a }",
  738. " }); r.MD5 = s._createHelper(q); r.HmacMD5 = s._createHmacHelper(q)",
  739. "})(Math);",
  740. "",
  741. "/*",
  742. "CryptoJS v3.1.2 sha1-min.js",
  743. "code.google.com/p/crypto-js",
  744. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  745. "code.google.com/p/crypto-js/wiki/License",
  746. "*/",
  747. "(function () {",
  748. " var k = CryptoJS, b = k.lib, m = b.WordArray, l = b.Hasher, d = [], b = k.algo.SHA1 = l.extend({",
  749. " _doReset: function () { this._hash = new m.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (n, p) {",
  750. " for (var a = this._hash.words, e = a[0], f = a[1], h = a[2], j = a[3], b = a[4], c = 0; 80 > c; c++) {",
  751. " if (16 > c) d[c] = n[p + c] | 0; else { var g = d[c - 3] ^ d[c - 8] ^ d[c - 14] ^ d[c - 16]; d[c] = g << 1 | g >>> 31 } g = (e << 5 | e >>> 27) + b + d[c]; g = 20 > c ? g + ((f & h | ~f & j) + 1518500249) : 40 > c ? g + ((f ^ h ^ j) + 1859775393) : 60 > c ? g + ((f & h | f & j | h & j) - 1894007588) : g + ((f ^ h ^",
  752. " j) - 899497514); b = j; j = h; h = f << 30 | f >>> 2; f = e; e = g",
  753. " } a[0] = a[0] + e | 0; a[1] = a[1] + f | 0; a[2] = a[2] + h | 0; a[3] = a[3] + j | 0; a[4] = a[4] + b | 0",
  754. " }, _doFinalize: function () { var b = this._data, d = b.words, a = 8 * this._nDataBytes, e = 8 * b.sigBytes; d[e >>> 5] |= 128 << 24 - e % 32; d[(e + 64 >>> 9 << 4) + 14] = Math.floor(a / 4294967296); d[(e + 64 >>> 9 << 4) + 15] = a; b.sigBytes = 4 * d.length; this._process(); return this._hash }, clone: function () { var b = l.clone.call(this); b._hash = this._hash.clone(); return b }",
  755. " }); k.SHA1 = l._createHelper(b); k.HmacSHA1 = l._createHmacHelper(b)",
  756. "})();",
  757. "",
  758. "/*",
  759. "CryptoJS v3.1.2 sha256-min.js",
  760. "code.google.com/p/crypto-js",
  761. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  762. "code.google.com/p/crypto-js/wiki/License",
  763. "*/",
  764. "(function (k) {",
  765. " for (var g = CryptoJS, h = g.lib, v = h.WordArray, j = h.Hasher, h = g.algo, s = [], t = [], u = function (q) { return 4294967296 * (q - (q | 0)) | 0 }, l = 2, b = 0; 64 > b;) { var d; a: { d = l; for (var w = k.sqrt(d), r = 2; r <= w; r++)if (!(d % r)) { d = !1; break a } d = !0 } d && (8 > b && (s[b] = u(k.pow(l, 0.5))), t[b] = u(k.pow(l, 1 / 3)), b++); l++ } var n = [], h = h.SHA256 = j.extend({",
  766. " _doReset: function () { this._hash = new v.init(s.slice(0)) }, _doProcessBlock: function (q, h) {",
  767. " for (var a = this._hash.words, c = a[0], d = a[1], b = a[2], k = a[3], f = a[4], g = a[5], j = a[6], l = a[7], e = 0; 64 > e; e++) {",
  768. " if (16 > e) n[e] =",
  769. " q[h + e] | 0; else { var m = n[e - 15], p = n[e - 2]; n[e] = ((m << 25 | m >>> 7) ^ (m << 14 | m >>> 18) ^ m >>> 3) + n[e - 7] + ((p << 15 | p >>> 17) ^ (p << 13 | p >>> 19) ^ p >>> 10) + n[e - 16] } m = l + ((f << 26 | f >>> 6) ^ (f << 21 | f >>> 11) ^ (f << 7 | f >>> 25)) + (f & g ^ ~f & j) + t[e] + n[e]; p = ((c << 30 | c >>> 2) ^ (c << 19 | c >>> 13) ^ (c << 10 | c >>> 22)) + (c & d ^ c & b ^ d & b); l = j; j = g; g = f; f = k + m | 0; k = b; b = d; d = c; c = m + p | 0",
  770. " } a[0] = a[0] + c | 0; a[1] = a[1] + d | 0; a[2] = a[2] + b | 0; a[3] = a[3] + k | 0; a[4] = a[4] + f | 0; a[5] = a[5] + g | 0; a[6] = a[6] + j | 0; a[7] = a[7] + l | 0",
  771. " }, _doFinalize: function () {",
  772. " var d = this._data, b = d.words, a = 8 * this._nDataBytes, c = 8 * d.sigBytes;",
  773. " b[c >>> 5] |= 128 << 24 - c % 32; b[(c + 64 >>> 9 << 4) + 14] = k.floor(a / 4294967296); b[(c + 64 >>> 9 << 4) + 15] = a; d.sigBytes = 4 * b.length; this._process(); return this._hash",
  774. " }, clone: function () { var b = j.clone.call(this); b._hash = this._hash.clone(); return b }",
  775. " }); g.SHA256 = j._createHelper(h); g.HmacSHA256 = j._createHmacHelper(h)",
  776. "})(Math);",
  777. "",
  778. "/*",
  779. "CryptoJS v3.1.2 sha224-min.js",
  780. "code.google.com/p/crypto-js",
  781. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  782. "code.google.com/p/crypto-js/wiki/License",
  783. "*/",
  784. "(function () { var b = CryptoJS, d = b.lib.WordArray, a = b.algo, c = a.SHA256, a = a.SHA224 = c.extend({ _doReset: function () { this._hash = new d.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var a = c._doFinalize.call(this); a.sigBytes -= 4; return a } }); b.SHA224 = c._createHelper(a); b.HmacSHA224 = c._createHmacHelper(a) })();",
  785. "",
  786. "/*",
  787. "CryptoJS v3.1.2 sha512-min.js",
  788. "code.google.com/p/crypto-js",
  789. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  790. "code.google.com/p/crypto-js/wiki/License",
  791. "*/",
  792. "(function () {",
  793. " function a() { return d.create.apply(d, arguments) } for (var n = CryptoJS, r = n.lib.Hasher, e = n.x64, d = e.Word, T = e.WordArray, e = n.algo, ea = [a(1116352408, 3609767458), a(1899447441, 602891725), a(3049323471, 3964484399), a(3921009573, 2173295548), a(961987163, 4081628472), a(1508970993, 3053834265), a(2453635748, 2937671579), a(2870763221, 3664609560), a(3624381080, 2734883394), a(310598401, 1164996542), a(607225278, 1323610764), a(1426881987, 3590304994), a(1925078388, 4068182383), a(2162078206, 991336113), a(2614888103, 633803317),",
  794. " a(3248222580, 3479774868), a(3835390401, 2666613458), a(4022224774, 944711139), a(264347078, 2341262773), a(604807628, 2007800933), a(770255983, 1495990901), a(1249150122, 1856431235), a(1555081692, 3175218132), a(1996064986, 2198950837), a(2554220882, 3999719339), a(2821834349, 766784016), a(2952996808, 2566594879), a(3210313671, 3203337956), a(3336571891, 1034457026), a(3584528711, 2466948901), a(113926993, 3758326383), a(338241895, 168717936), a(666307205, 1188179964), a(773529912, 1546045734), a(1294757372, 1522805485), a(1396182291,",
  795. " 2643833823), a(1695183700, 2343527390), a(1986661051, 1014477480), a(2177026350, 1206759142), a(2456956037, 344077627), a(2730485921, 1290863460), a(2820302411, 3158454273), a(3259730800, 3505952657), a(3345764771, 106217008), a(3516065817, 3606008344), a(3600352804, 1432725776), a(4094571909, 1467031594), a(275423344, 851169720), a(430227734, 3100823752), a(506948616, 1363258195), a(659060556, 3750685593), a(883997877, 3785050280), a(958139571, 3318307427), a(1322822218, 3812723403), a(1537002063, 2003034995), a(1747873779, 3602036899),",
  796. " a(1955562222, 1575990012), a(2024104815, 1125592928), a(2227730452, 2716904306), a(2361852424, 442776044), a(2428436474, 593698344), a(2756734187, 3733110249), a(3204031479, 2999351573), a(3329325298, 3815920427), a(3391569614, 3928383900), a(3515267271, 566280711), a(3940187606, 3454069534), a(4118630271, 4000239992), a(116418474, 1914138554), a(174292421, 2731055270), a(289380356, 3203993006), a(460393269, 320620315), a(685471733, 587496836), a(852142971, 1086792851), a(1017036298, 365543100), a(1126000580, 2618297676), a(1288033470,",
  797. " 3409855158), a(1501505948, 4234509866), a(1607167915, 987167468), a(1816402316, 1246189591)], v = [], w = 0; 80 > w; w++)v[w] = a(); e = e.SHA512 = r.extend({",
  798. " _doReset: function () { this._hash = new T.init([new d.init(1779033703, 4089235720), new d.init(3144134277, 2227873595), new d.init(1013904242, 4271175723), new d.init(2773480762, 1595750129), new d.init(1359893119, 2917565137), new d.init(2600822924, 725511199), new d.init(528734635, 4215389547), new d.init(1541459225, 327033209)]) }, _doProcessBlock: function (a, d) {",
  799. " for (var f = this._hash.words,",
  800. " F = f[0], e = f[1], n = f[2], r = f[3], G = f[4], H = f[5], I = f[6], f = f[7], w = F.high, J = F.low, X = e.high, K = e.low, Y = n.high, L = n.low, Z = r.high, M = r.low, $ = G.high, N = G.low, aa = H.high, O = H.low, ba = I.high, P = I.low, ca = f.high, Q = f.low, k = w, g = J, z = X, x = K, A = Y, y = L, U = Z, B = M, l = $, h = N, R = aa, C = O, S = ba, D = P, V = ca, E = Q, m = 0; 80 > m; m++) {",
  801. " var s = v[m]; if (16 > m) var j = s.high = a[d + 2 * m] | 0, b = s.low = a[d + 2 * m + 1] | 0; else {",
  802. " var j = v[m - 15], b = j.high, p = j.low, j = (b >>> 1 | p << 31) ^ (b >>> 8 | p << 24) ^ b >>> 7, p = (p >>> 1 | b << 31) ^ (p >>> 8 | b << 24) ^ (p >>> 7 | b << 25), u = v[m - 2], b = u.high, c = u.low, u = (b >>> 19 | c << 13) ^ (b <<",
  803. " 3 | c >>> 29) ^ b >>> 6, c = (c >>> 19 | b << 13) ^ (c << 3 | b >>> 29) ^ (c >>> 6 | b << 26), b = v[m - 7], W = b.high, t = v[m - 16], q = t.high, t = t.low, b = p + b.low, j = j + W + (b >>> 0 < p >>> 0 ? 1 : 0), b = b + c, j = j + u + (b >>> 0 < c >>> 0 ? 1 : 0), b = b + t, j = j + q + (b >>> 0 < t >>> 0 ? 1 : 0); s.high = j; s.low = b",
  804. " } var W = l & R ^ ~l & S, t = h & C ^ ~h & D, s = k & z ^ k & A ^ z & A, T = g & x ^ g & y ^ x & y, p = (k >>> 28 | g << 4) ^ (k << 30 | g >>> 2) ^ (k << 25 | g >>> 7), u = (g >>> 28 | k << 4) ^ (g << 30 | k >>> 2) ^ (g << 25 | k >>> 7), c = ea[m], fa = c.high, da = c.low, c = E + ((h >>> 14 | l << 18) ^ (h >>> 18 | l << 14) ^ (h << 23 | l >>> 9)), q = V + ((l >>> 14 | h << 18) ^ (l >>> 18 | h << 14) ^ (l << 23 | h >>> 9)) + (c >>> 0 < E >>> 0 ? 1 :",
  805. " 0), c = c + t, q = q + W + (c >>> 0 < t >>> 0 ? 1 : 0), c = c + da, q = q + fa + (c >>> 0 < da >>> 0 ? 1 : 0), c = c + b, q = q + j + (c >>> 0 < b >>> 0 ? 1 : 0), b = u + T, s = p + s + (b >>> 0 < u >>> 0 ? 1 : 0), V = S, E = D, S = R, D = C, R = l, C = h, h = B + c | 0, l = U + q + (h >>> 0 < B >>> 0 ? 1 : 0) | 0, U = A, B = y, A = z, y = x, z = k, x = g, g = c + b | 0, k = q + s + (g >>> 0 < c >>> 0 ? 1 : 0) | 0",
  806. " } J = F.low = J + g; F.high = w + k + (J >>> 0 < g >>> 0 ? 1 : 0); K = e.low = K + x; e.high = X + z + (K >>> 0 < x >>> 0 ? 1 : 0); L = n.low = L + y; n.high = Y + A + (L >>> 0 < y >>> 0 ? 1 : 0); M = r.low = M + B; r.high = Z + U + (M >>> 0 < B >>> 0 ? 1 : 0); N = G.low = N + h; G.high = $ + l + (N >>> 0 < h >>> 0 ? 1 : 0); O = H.low = O + C; H.high = aa + R + (O >>> 0 < C >>> 0 ? 1 : 0); P = I.low = P + D;",
  807. " I.high = ba + S + (P >>> 0 < D >>> 0 ? 1 : 0); Q = f.low = Q + E; f.high = ca + V + (Q >>> 0 < E >>> 0 ? 1 : 0)",
  808. " }, _doFinalize: function () { var a = this._data, d = a.words, f = 8 * this._nDataBytes, e = 8 * a.sigBytes; d[e >>> 5] |= 128 << 24 - e % 32; d[(e + 128 >>> 10 << 5) + 30] = Math.floor(f / 4294967296); d[(e + 128 >>> 10 << 5) + 31] = f; a.sigBytes = 4 * d.length; this._process(); return this._hash.toX32() }, clone: function () { var a = r.clone.call(this); a._hash = this._hash.clone(); return a }, blockSize: 32",
  809. " }); n.SHA512 = r._createHelper(e); n.HmacSHA512 = r._createHmacHelper(e)",
  810. "})();",
  811. "",
  812. "/*",
  813. "CryptoJS v3.1.2 sha384-min.js",
  814. "code.google.com/p/crypto-js",
  815. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  816. "code.google.com/p/crypto-js/wiki/License",
  817. "*/",
  818. "(function () {",
  819. " var c = CryptoJS, a = c.x64, b = a.Word, e = a.WordArray, a = c.algo, d = a.SHA512, a = a.SHA384 = d.extend({ _doReset: function () { this._hash = new e.init([new b.init(3418070365, 3238371032), new b.init(1654270250, 914150663), new b.init(2438529370, 812702999), new b.init(355462360, 4144912697), new b.init(1731405415, 4290775857), new b.init(2394180231, 1750603025), new b.init(3675008525, 1694076839), new b.init(1203062813, 3204075428)]) }, _doFinalize: function () { var a = d._doFinalize.call(this); a.sigBytes -= 16; return a } }); c.SHA384 =",
  820. " d._createHelper(a); c.HmacSHA384 = d._createHmacHelper(a)",
  821. "})();",
  822. "",
  823. "/*",
  824. "CryptoJS v3.1.2 ripemd160-min.js",
  825. "code.google.com/p/crypto-js",
  826. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  827. "code.google.com/p/crypto-js/wiki/License",
  828. "*/",
  829. "/*",
  830. "",
  831. "(c) 2012 by Cedric Mesnil. All rights reserved.",
  832. "",
  833. "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:",
  834. "",
  835. " - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",
  836. " - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.",
  837. "",
  838. "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
  839. "*/",
  840. "(function () {",
  841. " var q = CryptoJS, d = q.lib, n = d.WordArray, p = d.Hasher, d = q.algo, x = n.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), y = n.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), z = n.create([11, 14, 15, 12,",
  842. " 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), A = n.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), B = n.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), C = n.create([1352829926, 1548603684, 1836072691,",
  843. " 2053994217, 0]), d = d.RIPEMD160 = p.extend({",
  844. " _doReset: function () { this._hash = n.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (e, v) {",
  845. " for (var b = 0; 16 > b; b++) { var c = v + b, f = e[c]; e[c] = (f << 8 | f >>> 24) & 16711935 | (f << 24 | f >>> 8) & 4278255360 } var c = this._hash.words, f = B.words, d = C.words, n = x.words, q = y.words, p = z.words, w = A.words, t, g, h, j, r, u, k, l, m, s; u = t = c[0]; k = g = c[1]; l = h = c[2]; m = j = c[3]; s = r = c[4]; for (var a, b = 0; 80 > b; b += 1)a = t + e[v + n[b]] | 0, a = 16 > b ? a + ((g ^ h ^ j) + f[0]) : 32 > b ? a + ((g & h | ~g & j) + f[1]) : 48 > b ?",
  846. " a + (((g | ~h) ^ j) + f[2]) : 64 > b ? a + ((g & j | h & ~j) + f[3]) : a + ((g ^ (h | ~j)) + f[4]), a |= 0, a = a << p[b] | a >>> 32 - p[b], a = a + r | 0, t = r, r = j, j = h << 10 | h >>> 22, h = g, g = a, a = u + e[v + q[b]] | 0, a = 16 > b ? a + ((k ^ (l | ~m)) + d[0]) : 32 > b ? a + ((k & m | l & ~m) + d[1]) : 48 > b ? a + (((k | ~l) ^ m) + d[2]) : 64 > b ? a + ((k & l | ~k & m) + d[3]) : a + ((k ^ l ^ m) + d[4]), a |= 0, a = a << w[b] | a >>> 32 - w[b], a = a + s | 0, u = s, s = m, m = l << 10 | l >>> 22, l = k, k = a; a = c[1] + h + m | 0; c[1] = c[2] + j + s | 0; c[2] = c[3] + r + u | 0; c[3] = c[4] + t + k | 0; c[4] = c[0] + g + l | 0; c[0] = a",
  847. " }, _doFinalize: function () {",
  848. " var e = this._data, d = e.words, b = 8 * this._nDataBytes, c = 8 * e.sigBytes;",
  849. " d[c >>> 5] |= 128 << 24 - c % 32; d[(c + 64 >>> 9 << 4) + 14] = (b << 8 | b >>> 24) & 16711935 | (b << 24 | b >>> 8) & 4278255360; e.sigBytes = 4 * (d.length + 1); this._process(); e = this._hash; d = e.words; for (b = 0; 5 > b; b++)c = d[b], d[b] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; return e",
  850. " }, clone: function () { var d = p.clone.call(this); d._hash = this._hash.clone(); return d }",
  851. " }); q.RIPEMD160 = p._createHelper(d); q.HmacRIPEMD160 = p._createHmacHelper(d)",
  852. "})(Math);",
  853. "",
  854. "/*",
  855. "CryptoJS v3.1.2 hmac.js",
  856. "code.google.com/p/crypto-js",
  857. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  858. "code.google.com/p/crypto-js/wiki/License",
  859. "*/",
  860. "(function () {",
  861. " var c = CryptoJS, k = c.enc.Utf8; c.algo.HMAC = c.lib.Base.extend({",
  862. " init: function (a, b) { a = this._hasher = new a.init; \"string\" == typeof b && (b = k.parse(b)); var c = a.blockSize, e = 4 * c; b.sigBytes > e && (b = a.finalize(b)); b.clamp(); for (var f = this._oKey = b.clone(), g = this._iKey = b.clone(), h = f.words, j = g.words, d = 0; d < c; d++)h[d] ^= 1549556828, j[d] ^= 909522486; f.sigBytes = g.sigBytes = e; this.reset() }, reset: function () { var a = this._hasher; a.reset(); a.update(this._iKey) }, update: function (a) { this._hasher.update(a); return this }, finalize: function (a) {",
  863. " var b =",
  864. " this._hasher; a = b.finalize(a); b.reset(); return b.finalize(this._oKey.clone().concat(a))",
  865. " }",
  866. " })",
  867. "})();",
  868. "",
  869. "/*",
  870. "CryptoJS v3.1.2 pbkdf2-min.js",
  871. "code.google.com/p/crypto-js",
  872. "(c) 2009-2013 by Jeff Mott. All rights reserved.",
  873. "code.google.com/p/crypto-js/wiki/License",
  874. "*/",
  875. "(function () {",
  876. " var b = CryptoJS, a = b.lib, d = a.Base, m = a.WordArray, a = b.algo, q = a.HMAC, l = a.PBKDF2 = d.extend({",
  877. " cfg: d.extend({ keySize: 4, hasher: a.SHA1, iterations: 1 }), init: function (a) { this.cfg = this.cfg.extend(a) }, compute: function (a, b) {",
  878. " for (var c = this.cfg, f = q.create(c.hasher, a), g = m.create(), d = m.create([1]), l = g.words, r = d.words, n = c.keySize, c = c.iterations; l.length < n;) {",
  879. " var h = f.update(b).finalize(d); f.reset(); for (var j = h.words, s = j.length, k = h, p = 1; p < c; p++) { k = f.finalize(k); f.reset(); for (var t = k.words, e = 0; e < s; e++)j[e] ^= t[e] } g.concat(h);",
  880. " r[0]++",
  881. " } g.sigBytes = 4 * n; return g",
  882. " }",
  883. " }); b.PBKDF2 = function (a, b, c) { return l.create(c).compute(a, b) }",
  884. "})();",
  885. "",
  886. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  887. " */",
  888. "var b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"; var b64pad = \"=\"; function hex2b64(d) { var b; var e; var a = \"\"; for (b = 0; b + 3 <= d.length; b += 3) { e = parseInt(d.substring(b, b + 3), 16); a += b64map.charAt(e >> 6) + b64map.charAt(e & 63) } if (b + 1 == d.length) { e = parseInt(d.substring(b, b + 1), 16); a += b64map.charAt(e << 2) } else { if (b + 2 == d.length) { e = parseInt(d.substring(b, b + 2), 16); a += b64map.charAt(e >> 2) + b64map.charAt((e & 3) << 4) } } if (b64pad) { while ((a.length & 3) > 0) { a += b64pad } } return a } function b64tohex(f) { var d = \"\"; var e; var b = 0; var c; var a; for (e = 0; e < f.length; ++e) { if (f.charAt(e) == b64pad) { break } a = b64map.indexOf(f.charAt(e)); if (a < 0) { continue } if (b == 0) { d += int2char(a >> 2); c = a & 3; b = 1 } else { if (b == 1) { d += int2char((c << 2) | (a >> 4)); c = a & 15; b = 2 } else { if (b == 2) { d += int2char(c); d += int2char(a >> 2); c = a & 3; b = 3 } else { d += int2char((c << 2) | (a >> 4)); d += int2char(a & 15); b = 0 } } } } if (b == 1) { d += int2char(c << 2) } return d } function b64toBA(e) { var d = b64tohex(e); var c; var b = new Array(); for (c = 0; 2 * c < d.length; ++c) { b[c] = parseInt(d.substring(2 * c, 2 * c + 2), 16) } return b };",
  889. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  890. " */",
  891. "var dbits; var canary = 244837814094590; var j_lm = ((canary & 16777215) == 15715070); function BigInteger(e, d, f) { if (e != null) { if (\"number\" == typeof e) { this.fromNumber(e, d, f) } else { if (d == null && \"string\" != typeof e) { this.fromString(e, 256) } else { this.fromString(e, d) } } } } function nbi() { return new BigInteger(null) } function am1(f, a, b, e, h, g) { while (--g >= 0) { var d = a * this[f++] + b[e] + h; h = Math.floor(d / 67108864); b[e++] = d & 67108863 } return h } function am2(f, q, r, e, o, a) { var k = q & 32767, p = q >> 15; while (--a >= 0) { var d = this[f] & 32767; var g = this[f++] >> 15; var b = p * d + g * k; d = k * d + ((b & 32767) << 15) + r[e] + (o & 1073741823); o = (d >>> 30) + (b >>> 15) + p * g + (o >>> 30); r[e++] = d & 1073741823 } return o } function am3(f, q, r, e, o, a) { var k = q & 16383, p = q >> 14; while (--a >= 0) { var d = this[f] & 16383; var g = this[f++] >> 14; var b = p * d + g * k; d = k * d + ((b & 16383) << 14) + r[e] + o; o = (d >> 28) + (b >> 14) + p * g; r[e++] = d & 268435455 } return o } if (j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) { BigInteger.prototype.am = am2; dbits = 30 } else { if (j_lm && (navigator.appName != \"Netscape\")) { BigInteger.prototype.am = am1; dbits = 26 } else { BigInteger.prototype.am = am3; dbits = 28 } } BigInteger.prototype.DB = dbits; BigInteger.prototype.DM = ((1 << dbits) - 1); BigInteger.prototype.DV = (1 << dbits); var BI_FP = 52; BigInteger.prototype.FV = Math.pow(2, BI_FP); BigInteger.prototype.F1 = BI_FP - dbits; BigInteger.prototype.F2 = 2 * dbits - BI_FP; var BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\"; var BI_RC = new Array(); var rr, vv; rr = \"0\".charCodeAt(0); for (vv = 0; vv <= 9; ++vv) { BI_RC[rr++] = vv } rr = \"a\".charCodeAt(0); for (vv = 10; vv < 36; ++vv) { BI_RC[rr++] = vv } rr = \"A\".charCodeAt(0); for (vv = 10; vv < 36; ++vv) { BI_RC[rr++] = vv } function int2char(a) { return BI_RM.charAt(a) } function intAt(b, a) { var d = BI_RC[b.charCodeAt(a)]; return (d == null) ? -1 : d } function bnpCopyTo(b) { for (var a = this.t - 1; a >= 0; --a) { b[a] = this[a] } b.t = this.t; b.s = this.s } function bnpFromInt(a) { this.t = 1; this.s = (a < 0) ? -1 : 0; if (a > 0) { this[0] = a } else { if (a < -1) { this[0] = a + this.DV } else { this.t = 0 } } } function nbv(a) { var b = nbi(); b.fromInt(a); return b } function bnpFromString(h, c) { var e; if (c == 16) { e = 4 } else { if (c == 8) { e = 3 } else { if (c == 256) { e = 8 } else { if (c == 2) { e = 1 } else { if (c == 32) { e = 5 } else { if (c == 4) { e = 2 } else { this.fromRadix(h, c); return } } } } } } this.t = 0; this.s = 0; var g = h.length, d = false, f = 0; while (--g >= 0) { var a = (e == 8) ? h[g] & 255 : intAt(h, g); if (a < 0) { if (h.charAt(g) == \"-\") { d = true } continue } d = false; if (f == 0) { this[this.t++] = a } else { if (f + e > this.DB) { this[this.t - 1] |= (a & ((1 << (this.DB - f)) - 1)) << f; this[this.t++] = (a >> (this.DB - f)) } else { this[this.t - 1] |= a << f } } f += e; if (f >= this.DB) { f -= this.DB } } if (e == 8 && (h[0] & 128) != 0) { this.s = -1; if (f > 0) { this[this.t - 1] |= ((1 << (this.DB - f)) - 1) << f } } this.clamp(); if (d) { BigInteger.ZERO.subTo(this, this) } } function bnpClamp() { var a = this.s & this.DM; while (this.t > 0 && this[this.t - 1] == a) { --this.t } } function bnToString(c) { if (this.s < 0) { return \"-\" + this.negate().toString(c) } var e; if (c == 16) { e = 4 } else { if (c == 8) { e = 3 } else { if (c == 2) { e = 1 } else { if (c == 32) { e = 5 } else { if (c == 4) { e = 2 } else { return this.toRadix(c) } } } } } var g = (1 << e) - 1, l, a = false, h = \"\", f = this.t; var j = this.DB - (f * this.DB) % e; if (f-- > 0) { if (j < this.DB && (l = this[f] >> j) > 0) { a = true; h = int2char(l) } while (f >= 0) { if (j < e) { l = (this[f] & ((1 << j) - 1)) << (e - j); l |= this[--f] >> (j += this.DB - e) } else { l = (this[f] >> (j -= e)) & g; if (j <= 0) { j += this.DB; --f } } if (l > 0) { a = true } if (a) { h += int2char(l) } } } return a ?
  892. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  893. " */",
  894. "function bnClone() { var a = nbi(); this.copyTo(a); return a } function bnIntValue() { if (this.s < 0) { if (this.t == 1) { return this[0] - this.DV } else { if (this.t == 0) { return -1 } } } else { if (this.t == 1) { return this[0] } else { if (this.t == 0) { return 0 } } } return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0] } function bnByteValue() { return (this.t == 0) ? this.s : (this[0] << 24) >> 24 } function bnShortValue() { return (this.t == 0) ? this.s : (this[0] << 16) >> 16 } function bnpChunkSize(a) { return Math.floor(Math.LN2 * this.DB / Math.log(a)) } function bnSigNum() { if (this.s < 0) { return -1 } else { if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) { return 0 } else { return 1 } } } function bnpToRadix(c) { if (c == null) { c = 10 } if (this.signum() == 0 || c < 2 || c > 36) { return \"0\" } var f = this.chunkSize(c); var e = Math.pow(c, f); var i = nbv(e), j = nbi(), h = nbi(), g = \"\"; this.divRemTo(i, j, h); while (j.signum() > 0) { g = (e + h.intValue()).toString(c).substr(1) + g; j.divRemTo(i, j, h) } return h.intValue().toString(c) + g } function bnpFromRadix(m, h) { this.fromInt(0); if (h == null) { h = 10 } var f = this.chunkSize(h); var g = Math.pow(h, f), e = false, a = 0, l = 0; for (var c = 0; c < m.length; ++c) { var k = intAt(m, c); if (k < 0) { if (m.charAt(c) == \"-\" && this.signum() == 0) { e = true } continue } l = h * l + k; if (++a >= f) { this.dMultiply(g); this.dAddOffset(l, 0); a = 0; l = 0 } } if (a > 0) { this.dMultiply(Math.pow(h, a)); this.dAddOffset(l, 0) } if (e) { BigInteger.ZERO.subTo(this, this) } } function bnpFromNumber(f, e, h) { if (\"number\" == typeof e) { if (f < 2) { this.fromInt(1) } else { this.fromNumber(f, h); if (!this.testBit(f - 1)) { this.bitwiseTo(BigInteger.ONE.shiftLeft(f - 1), op_or, this) } if (this.isEven()) { this.dAddOffset(1, 0) } while (!this.isProbablePrime(e)) { this.dAddOffset(2, 0); if (this.bitLength() > f) { this.subTo(BigInteger.ONE.shiftLeft(f - 1), this) } } } } else { var d = new Array(), g = f & 7; d.length = (f >> 3) + 1; e.nextBytes(d); if (g > 0) { d[0] &= ((1 << g) - 1) } else { d[0] = 0 } this.fromString(d, 256) } } function bnToByteArray() { var b = this.t, c = new Array(); c[0] = this.s; var e = this.DB - (b * this.DB) % 8, f, a = 0; if (b-- > 0) { if (e < this.DB && (f = this[b] >> e) != (this.s & this.DM) >> e) { c[a++] = f | (this.s << (this.DB - e)) } while (b >= 0) { if (e < 8) { f = (this[b] & ((1 << e) - 1)) << (8 - e); f |= this[--b] >> (e += this.DB - 8) } else { f = (this[b] >> (e -= 8)) & 255; if (e <= 0) { e += this.DB; --b } } if ((f & 128) != 0) { f |= -256 } if (a == 0 && (this.s & 128) != (f & 128)) { ++a } if (a > 0 || f != this.s) { c[a++] = f } } } return c } function bnEquals(b) { return (this.compareTo(b) == 0) } function bnMin(b) { return (this.compareTo(b) < 0) ? this : b } function bnMax(b) { return (this.compareTo(b) > 0) ? this : b } function bnpBitwiseTo(c, h, e) { var d, g, b = Math.min(c.t, this.t); for (d = 0; d < b; ++d) { e[d] = h(this[d], c[d]) } if (c.t < this.t) { g = c.s & this.DM; for (d = b; d < this.t; ++d) { e[d] = h(this[d], g) } e.t = this.t } else { g = this.s & this.DM; for (d = b; d < c.t; ++d) { e[d] = h(g, c[d]) } e.t = c.t } e.s = h(this.s, c.s); e.clamp() } function op_and(a, b) { return a & b } function bnAnd(b) { var c = nbi(); this.bitwiseTo(b, op_and, c); return c } function op_or(a, b) { return a | b } function bnOr(b) { var c = nbi(); this.bitwiseTo(b, op_or, c); return c } function op_xor(a, b) { return a ^ b } function bnXor(b) { var c = nbi(); this.bitwiseTo(b, op_xor, c); return c } function op_andnot(a, b) { return a & ~b } function bnAndNot(b) { var c = nbi(); this.bitwiseTo(b, op_andnot, c); return c } function bnNot() { var b = nbi(); for (var a = 0; a < this.t; ++a) { b[a] = this.DM & ~this[a] } b.t = this.t; b.s = ~this.s; return b } function bnShiftLeft(b) { var a = nbi(); if (b < 0) { this.rShiftTo(-b, a) } else { this.lShiftTo(b, a) } return a } function bnShiftRight(b) { var a = nbi(); if (b < 0) { this.lShiftTo(-b, a) } else
  895. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  896. " */",
  897. "function Arcfour() { this.i = 0; this.j = 0; this.S = new Array() } function ARC4init(d) { var c, a, b; for (c = 0; c < 256; ++c) { this.S[c] = c } a = 0; for (c = 0; c < 256; ++c) { a = (a + this.S[c] + d[c % d.length]) & 255; b = this.S[c]; this.S[c] = this.S[a]; this.S[a] = b } this.i = 0; this.j = 0 } function ARC4next() { var a; this.i = (this.i + 1) & 255; this.j = (this.j + this.S[this.i]) & 255; a = this.S[this.i]; this.S[this.i] = this.S[this.j]; this.S[this.j] = a; return this.S[(a + this.S[this.i]) & 255] } Arcfour.prototype.init = ARC4init; Arcfour.prototype.next = ARC4next; function prng_newstate() { return new Arcfour() } var rng_psize = 256;",
  898. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  899. " */",
  900. "var rng_state; var rng_pool; var rng_pptr; function rng_seed_int(a) { rng_pool[rng_pptr++] ^= a & 255; rng_pool[rng_pptr++] ^= (a >> 8) & 255; rng_pool[rng_pptr++] ^= (a >> 16) & 255; rng_pool[rng_pptr++] ^= (a >> 24) & 255; if (rng_pptr >= rng_psize) { rng_pptr -= rng_psize } } function rng_seed_time() { rng_seed_int(new Date().getTime()) } if (rng_pool == null) { rng_pool = new Array(); rng_pptr = 0; var t; if (window !== undefined && (window.crypto !== undefined || window.msCrypto !== undefined)) { var crypto = window.crypto || window.msCrypto; if (crypto.getRandomValues) { var ua = new Uint8Array(32); crypto.getRandomValues(ua); for (t = 0; t < 32; ++t) { rng_pool[rng_pptr++] = ua[t] } } else { if (navigator.appName == \"Netscape\" && navigator.appVersion < \"5\") { var z = window.crypto.random(32); for (t = 0; t < z.length; ++t) { rng_pool[rng_pptr++] = z.charCodeAt(t) & 255 } } } } while (rng_pptr < rng_psize) { t = Math.floor(65536 * Math.random()); rng_pool[rng_pptr++] = t >>> 8; rng_pool[rng_pptr++] = t & 255 } rng_pptr = 0; rng_seed_time() } function rng_get_byte() { if (rng_state == null) { rng_seed_time(); rng_state = prng_newstate(); rng_state.init(rng_pool); for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) { rng_pool[rng_pptr] = 0 } rng_pptr = 0 } return rng_state.next() } function rng_get_bytes(b) { var a; for (a = 0; a < b.length; ++a) { b[a] = rng_get_byte() } } function SecureRandom() { } SecureRandom.prototype.nextBytes = rng_get_bytes;",
  901. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  902. " */",
  903. "function parseBigInt(b, a) { return new BigInteger(b, a) } function linebrk(c, d) { var a = \"\"; var b = 0; while (b + d < c.length) { a += c.substring(b, b + d) + \"\\n\"; b += d } return a + c.substring(b, c.length) } function byte2Hex(a) { if (a < 16) { return \"0\" + a.toString(16) } else { return a.toString(16) } } function pkcs1pad2(e, h) { if (h < e.length + 11) { throw \"Message too long for RSA\"; return null } var g = new Array(); var d = e.length - 1; while (d >= 0 && h > 0) { var f = e.charCodeAt(d--); if (f < 128) { g[--h] = f } else { if ((f > 127) && (f < 2048)) { g[--h] = (f & 63) | 128; g[--h] = (f >> 6) | 192 } else { g[--h] = (f & 63) | 128; g[--h] = ((f >> 6) & 63) | 128; g[--h] = (f >> 12) | 224 } } } g[--h] = 0; var b = new SecureRandom(); var a = new Array(); while (h > 2) { a[0] = 0; while (a[0] == 0) { b.nextBytes(a) } g[--h] = a[0] } g[--h] = 2; g[--h] = 0; return new BigInteger(g) } function oaep_mgf1_arr(c, a, e) { var b = \"\", d = 0; while (b.length < a) { b += e(String.fromCharCode.apply(String, c.concat([(d & 4278190080) >> 24, (d & 16711680) >> 16, (d & 65280) >> 8, d & 255]))); d += 1 } return b } function oaep_pad(q, a, f, l) { var c = KJUR.crypto.MessageDigest; var o = KJUR.crypto.Util; var b = null; if (!f) { f = \"sha1\" } if (typeof f === \"string\") { b = c.getCanonicalAlgName(f); l = c.getHashLength(b); f = function (i) { return hextorstr(o.hashHex(rstrtohex(i), b)) } } if (q.length + 2 * l + 2 > a) { throw \"Message too long for RSA\" } var k = \"\", e; for (e = 0; e < a - q.length - 2 * l - 2; e += 1) { k += \"\\x00\" } var h = f(\"\") + k + \"\\x01\" + q; var g = new Array(l); new SecureRandom().nextBytes(g); var j = oaep_mgf1_arr(g, h.length, f); var p = []; for (e = 0; e < h.length; e += 1) { p[e] = h.charCodeAt(e) ^ j.charCodeAt(e) } var m = oaep_mgf1_arr(p, g.length, f); var d = [0]; for (e = 0; e < g.length; e += 1) { d[e + 1] = g[e] ^ m.charCodeAt(e) } return new BigInteger(d.concat(p)) } function RSAKey() { this.n = null; this.e = 0; this.d = null; this.p = null; this.q = null; this.dmp1 = null; this.dmq1 = null; this.coeff = null } function RSASetPublic(b, a) { this.isPublic = true; this.isPrivate = false; if (typeof b !== \"string\") { this.n = b; this.e = a } else { if (b != null && a != null && b.length > 0 && a.length > 0) { this.n = parseBigInt(b, 16); this.e = parseInt(a, 16) } else { throw \"Invalid RSA public key\" } } } function RSADoPublic(a) { return a.modPowInt(this.e, this.n) } function RSAEncrypt(d) { var a = pkcs1pad2(d, (this.n.bitLength() + 7) >> 3); if (a == null) { return null } var e = this.doPublic(a); if (e == null) { return null } var b = e.toString(16); if ((b.length & 1) == 0) { return b } else { return \"0\" + b } } function RSAEncryptOAEP(f, e, b) { var a = oaep_pad(f, (this.n.bitLength() + 7) >> 3, e, b); if (a == null) { return null } var g = this.doPublic(a); if (g == null) { return null } var d = g.toString(16); if ((d.length & 1) == 0) { return d } else { return \"0\" + d } } RSAKey.prototype.doPublic = RSADoPublic; RSAKey.prototype.setPublic = RSASetPublic; RSAKey.prototype.encrypt = RSAEncrypt; RSAKey.prototype.encryptOAEP = RSAEncryptOAEP; RSAKey.prototype.type = \"RSA\";",
  904. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  905. " */",
  906. "function pkcs1unpad2(g, j) { var a = g.toByteArray(); var f = 0; while (f < a.length && a[f] == 0) { ++f } if (a.length - f != j - 1 || a[f] != 2) { return null } ++f; while (a[f] != 0) { if (++f >= a.length) { return null } } var e = \"\"; while (++f < a.length) { var h = a[f] & 255; if (h < 128) { e += String.fromCharCode(h) } else { if ((h > 191) && (h < 224)) { e += String.fromCharCode(((h & 31) << 6) | (a[f + 1] & 63)); ++f } else { e += String.fromCharCode(((h & 15) << 12) | ((a[f + 1] & 63) << 6) | (a[f + 2] & 63)); f += 2 } } } return e } function oaep_mgf1_str(c, a, e) { var b = \"\", d = 0; while (b.length < a) { b += e(c + String.fromCharCode.apply(String, [(d & 4278190080) >> 24, (d & 16711680) >> 16, (d & 65280) >> 8, d & 255])); d += 1 } return b } function oaep_unpad(o, b, g, p) { var e = KJUR.crypto.MessageDigest; var r = KJUR.crypto.Util; var c = null; if (!g) { g = \"sha1\" } if (typeof g === \"string\") { c = e.getCanonicalAlgName(g); p = e.getHashLength(c); g = function (d) { return hextorstr(r.hashHex(rstrtohex(d), c)) } } o = o.toByteArray(); var h; for (h = 0; h < o.length; h += 1) { o[h] &= 255 } while (o.length < b) { o.unshift(0) } o = String.fromCharCode.apply(String, o); if (o.length < 2 * p + 2) { throw \"Cipher too short\" } var f = o.substr(1, p); var s = o.substr(p + 1); var q = oaep_mgf1_str(s, p, g); var k = [], h; for (h = 0; h < f.length; h += 1) { k[h] = f.charCodeAt(h) ^ q.charCodeAt(h) } var l = oaep_mgf1_str(String.fromCharCode.apply(String, k), o.length - p, g); var j = []; for (h = 0; h < s.length; h += 1) { j[h] = s.charCodeAt(h) ^ l.charCodeAt(h) } j = String.fromCharCode.apply(String, j); if (j.substr(0, p) !== g(\"\")) { throw \"Hash mismatch\" } j = j.substr(p); var a = j.indexOf(\"\\x01\"); var m = (a != -1) ? j.substr(0, a).lastIndexOf(\"\\x00\") : -1; if (m + 1 != a) { throw \"Malformed data\" } return j.substr(a + 1) } function RSASetPrivate(c, a, b) { this.isPrivate = true; if (typeof c !== \"string\") { this.n = c; this.e = a; this.d = b } else { if (c != null && a != null && c.length > 0 && a.length > 0) { this.n = parseBigInt(c, 16); this.e = parseInt(a, 16); this.d = parseBigInt(b, 16) } else { throw \"Invalid RSA private key\" } } } function RSASetPrivateEx(g, d, e, c, b, a, h, f) { this.isPrivate = true; this.isPublic = false; if (g == null) { throw \"RSASetPrivateEx N == null\" } if (d == null) { throw \"RSASetPrivateEx E == null\" } if (g.length == 0) { throw \"RSASetPrivateEx N.length == 0\" } if (d.length == 0) { throw \"RSASetPrivateEx E.length == 0\" } if (g != null && d != null && g.length > 0 && d.length > 0) { this.n = parseBigInt(g, 16); this.e = parseInt(d, 16); this.d = parseBigInt(e, 16); this.p = parseBigInt(c, 16); this.q = parseBigInt(b, 16); this.dmp1 = parseBigInt(a, 16); this.dmq1 = parseBigInt(h, 16); this.coeff = parseBigInt(f, 16) } else { throw \"Invalid RSA private key in RSASetPrivateEx\" } } function RSAGenerate(b, i) { var a = new SecureRandom(); var f = b >> 1; this.e = parseInt(i, 16); var c = new BigInteger(i, 16); for (; ;) { for (; ;) { this.p = new BigInteger(b - f, 1, a); if (this.p.subtract(BigInteger.ONE).gcd(c).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) { break } } for (; ;) { this.q = new BigInteger(f, 1, a); if (this.q.subtract(BigInteger.ONE).gcd(c).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) { break } } if (this.p.compareTo(this.q) <= 0) { var h = this.p; this.p = this.q; this.q = h } var g = this.p.subtract(BigInteger.ONE); var d = this.q.subtract(BigInteger.ONE); var e = g.multiply(d); if (e.gcd(c).compareTo(BigInteger.ONE) == 0) { this.n = this.p.multiply(this.q); this.d = c.modInverse(e); this.dmp1 = this.d.mod(g); this.dmq1 = this.d.mod(d); this.coeff = this.q.modInverse(this.p); break } } this.isPrivate = true } function RSADoPrivate(a) { if (this.p == null || this.q == null) { return a.modPow(this.d, this.n) } var c = a.mod(this.p).modPow(this.dmp1, this.p); var b = a.mod(this.q).modPow(this.dmq1, this.q); while (c.compareTo(b) < 0) { c = c.add(this.p) } return c.subtract(b
  907. "/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/",
  908. " */",
  909. "function ECFieldElementFp(b, a) { this.x = a; this.q = b } function feFpEquals(a) { if (a == this) { return true } return (this.q.equals(a.q) && this.x.equals(a.x)) } function feFpToBigInteger() { return this.x } function feFpNegate() { return new ECFieldElementFp(this.q, this.x.negate().mod(this.q)) } function feFpAdd(a) { return new ECFieldElementFp(this.q, this.x.add(a.toBigInteger()).mod(this.q)) } function feFpSubtract(a) { return new ECFieldElementFp(this.q, this.x.subtract(a.toBigInteger()).mod(this.q)) } function feFpMultiply(a) { return new ECFieldElementFp(this.q, this.x.multiply(a.toBigInteger()).mod(this.q)) } function feFpSquare() { return new ECFieldElementFp(this.q, this.x.square().mod(this.q)) } function feFpDivide(a) { return new ECFieldElementFp(this.q, this.x.multiply(a.toBigInteger().modInverse(this.q)).mod(this.q)) } ECFieldElementFp.prototype.equals = feFpEquals; ECFieldElementFp.prototype.toBigInteger = feFpToBigInteger; ECFieldElementFp.prototype.negate = feFpNegate; ECFieldElementFp.prototype.add = feFpAdd; ECFieldElementFp.prototype.subtract = feFpSubtract; ECFieldElementFp.prototype.multiply = feFpMultiply; ECFieldElementFp.prototype.square = feFpSquare; ECFieldElementFp.prototype.divide = feFpDivide; function ECPointFp(c, a, d, b) { this.curve = c; this.x = a; this.y = d; if (b == null) { this.z = BigInteger.ONE } else { this.z = b } this.zinv = null } function pointFpGetX() { if (this.zinv == null) { this.zinv = this.z.modInverse(this.curve.q) } return this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q)) } function pointFpGetY() { if (this.zinv == null) { this.zinv = this.z.modInverse(this.curve.q) } return this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q)) } function pointFpEquals(a) { if (a == this) { return true } if (this.isInfinity()) { return a.isInfinity() } if (a.isInfinity()) { return this.isInfinity() } var c, b; c = a.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(a.z)).mod(this.curve.q); if (!c.equals(BigInteger.ZERO)) { return false } b = a.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(a.z)).mod(this.curve.q); return b.equals(BigInteger.ZERO) } function pointFpIsInfinity() { if ((this.x == null) && (this.y == null)) { return true } return this.z.equals(BigInteger.ZERO) && !this.y.toBigInteger().equals(BigInteger.ZERO) } function pointFpNegate() { return new ECPointFp(this.curve, this.x, this.y.negate(), this.z) } function pointFpAdd(l) { if (this.isInfinity()) { return l } if (l.isInfinity()) { return this } var p = l.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(l.z)).mod(this.curve.q); var o = l.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(l.z)).mod(this.curve.q); if (BigInteger.ZERO.equals(o)) { if (BigInteger.ZERO.equals(p)) { return this.twice() } return this.curve.getInfinity() } var j = new BigInteger(\"3\"); var e = this.x.toBigInteger(); var n = this.y.toBigInteger(); var c = l.x.toBigInteger(); var k = l.y.toBigInteger(); var m = o.square(); var i = m.multiply(o); var d = e.multiply(m); var g = p.square().multiply(this.z); var a = g.subtract(d.shiftLeft(1)).multiply(l.z).subtract(i).multiply(o).mod(this.curve.q); var h = d.multiply(j).multiply(p).subtract(n.multiply(i)).subtract(g.multiply(p)).multiply(l.z).add(p.multiply(i)).mod(this.curve.q); var f = i.multiply(this.z).multiply(l.z).mod(this.curve.q); return new ECPointFp(this.curve, this.curve.fromBigInteger(a), this.curve.fromBigInteger(h), f) } function pointFpTwice() { if (this.isInfinity()) { return this } if (this.y.toBigInteger().signum() == 0) { return this.curve.getInfinity() } var g = new BigInteger(\"3\"); var c = this.x.toBigInteger(); var h = this.y.toBigInteger(); var e = h.multiply(this.z); var j = e.multiply(h).mod(this.curve.q); var i = this.curve.a.toBigInteger(); var k = c.square().multiply(g); if (!BigInteger.ZERO.equals(i)) { k = k.add(this.z.square().multiply(i)) } k = k.mod(this.curve.q); var b = k.square().su
  910. "/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib",
  911. " */",
  912. "ECFieldElementFp.prototype.getByteLength = function () { return Math.floor((this.toBigInteger().bitLength() + 7) / 8) }; ECPointFp.prototype.getEncoded = function (c) { var d = function (h, f) { var g = h.toByteArrayUnsigned(); if (f < g.length) { g = g.slice(g.length - f) } else { while (f > g.length) { g.unshift(0) } } return g }; var a = this.getX().toBigInteger(); var e = this.getY().toBigInteger(); var b = d(a, 32); if (c) { if (e.isEven()) { b.unshift(2) } else { b.unshift(3) } } else { b.unshift(4); b = b.concat(d(e, 32)) } return b }; ECPointFp.decodeFrom = function (g, c) { var f = c[0]; var e = c.length - 1; var d = c.slice(1, 1 + e / 2); var b = c.slice(1 + e / 2, 1 + e); d.unshift(0); b.unshift(0); var a = new BigInteger(d); var h = new BigInteger(b); return new ECPointFp(g, g.fromBigInteger(a), g.fromBigInteger(h)) }; ECPointFp.decodeFromHex = function (g, c) { var f = c.substr(0, 2); var e = c.length - 2; var d = c.substr(2, e / 2); var b = c.substr(2 + e / 2, e / 2); var a = new BigInteger(d, 16); var h = new BigInteger(b, 16); return new ECPointFp(g, g.fromBigInteger(a), g.fromBigInteger(h)) }; ECPointFp.prototype.add2D = function (c) { if (this.isInfinity()) { return c } if (c.isInfinity()) { return this } if (this.x.equals(c.x)) { if (this.y.equals(c.y)) { return this.twice() } return this.curve.getInfinity() } var g = c.x.subtract(this.x); var e = c.y.subtract(this.y); var a = e.divide(g); var d = a.square().subtract(this.x).subtract(c.x); var f = a.multiply(this.x.subtract(d)).subtract(this.y); return new ECPointFp(this.curve, d, f) }; ECPointFp.prototype.twice2D = function () { if (this.isInfinity()) { return this } if (this.y.toBigInteger().signum() == 0) { return this.curve.getInfinity() } var b = this.curve.fromBigInteger(BigInteger.valueOf(2)); var e = this.curve.fromBigInteger(BigInteger.valueOf(3)); var a = this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(b)); var c = a.square().subtract(this.x.multiply(b)); var d = a.multiply(this.x.subtract(c)).subtract(this.y); return new ECPointFp(this.curve, c, d) }; ECPointFp.prototype.multiply2D = function (b) { if (this.isInfinity()) { return this } if (b.signum() == 0) { return this.curve.getInfinity() } var g = b; var f = g.multiply(new BigInteger(\"3\")); var l = this.negate(); var d = this; var c; for (c = f.bitLength() - 2; c > 0; --c) { d = d.twice(); var a = f.testBit(c); var j = g.testBit(c); if (a != j) { d = d.add2D(a ? this : l) } } return d }; ECPointFp.prototype.isOnCurve = function () { var d = this.getX().toBigInteger(); var i = this.getY().toBigInteger(); var f = this.curve.getA().toBigInteger(); var c = this.curve.getB().toBigInteger(); var h = this.curve.getQ(); var e = i.multiply(i).mod(h); var g = d.multiply(d).multiply(d).add(f.multiply(d)).add(c).mod(h); return e.equals(g) }; ECPointFp.prototype.toString = function () { return \"(\" + this.getX().toBigInteger().toString() + \",\" + this.getY().toBigInteger().toString() + \")\" }; ECPointFp.prototype.validate = function () { var c = this.curve.getQ(); if (this.isInfinity()) { throw new Error(\"Point is at infinity.\") } var a = this.getX().toBigInteger(); var b = this.getY().toBigInteger(); if (a.compareTo(BigInteger.ONE) < 0 || a.compareTo(c.subtract(BigInteger.ONE)) > 0) { throw new Error(\"x coordinate out of bounds\") } if (b.compareTo(BigInteger.ONE) < 0 || b.compareTo(c.subtract(BigInteger.ONE)) > 0) { throw new Error(\"y coordinate out of bounds\") } if (!this.isOnCurve()) { throw new Error(\"Point is not on the curve.\") } if (this.multiply(c).isInfinity()) { throw new Error(\"Point is not a scalar multiple of G.\") } return true };",
  913. "/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval",
  914. " */",
  915. "var jsonParse = (function () { var e = \"(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)\"; var j = '(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))'; var i = '(?:\"' + j + '*\")'; var d = new RegExp(\"(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|\" + e + \"|\" + i + \")\", \"g\"); var k = new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\", \"g\"); var g = { '\"': '\"', \"/\": \"/\", \"\\\\\": \"\\\\\", b: \"\\b\", f: \"\\f\", n: \"\\n\", r: \"\\r\", t: \"\\t\" }; function h(l, m, n) { return m ? g[m] : String.fromCharCode(parseInt(n, 16)) } var c = new String(\"\"); var a = \"\\\\\"; var f = { \"{\": Object, \"[\": Array }; var b = Object.hasOwnProperty; return function (u, q) { var p = u.match(d); var x; var v = p[0]; var l = false; if (\"{\" === v) { x = {} } else { if (\"[\" === v) { x = [] } else { x = []; l = true } } var t; var r = [x]; for (var o = 1 - l, m = p.length; o < m; ++o) { v = p[o]; var w; switch (v.charCodeAt(0)) { default: w = r[0]; w[t || w.length] = +(v); t = void 0; break; case 34: v = v.substring(1, v.length - 1); if (v.indexOf(a) !== -1) { v = v.replace(k, h) } w = r[0]; if (!t) { if (w instanceof Array) { t = w.length } else { t = v || c; break } } w[t] = v; t = void 0; break; case 91: w = r[0]; r.unshift(w[t || w.length] = []); t = void 0; break; case 93: r.shift(); break; case 102: w = r[0]; w[t || w.length] = false; t = void 0; break; case 110: w = r[0]; w[t || w.length] = null; t = void 0; break; case 116: w = r[0]; w[t || w.length] = true; t = void 0; break; case 123: w = r[0]; r.unshift(w[t || w.length] = {}); t = void 0; break; case 125: r.shift(); break } } if (l) { if (r.length !== 1) { throw new Error() } x = x[0] } else { if (r.length) { throw new Error() } } if (q) { var s = function (C, B) { var D = C[B]; if (D && typeof D === \"object\") { var n = null; for (var z in D) { if (b.call(D, z) && D !== C) { var y = s(D, z); if (y !== void 0) { D[z] = y } else { if (!n) { n = [] } n.push(z) } } } if (n) { for (var A = n.length; --A >= 0;) { delete D[n[A]] } } } return q.call(C, B, D) }; x = s({ \"\": x }, \"\") } return x } })();",
  916. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) { KJUR.asn1 = {} } KJUR.asn1.ASN1Util = new function () { this.integerToByteHex = function (a) { var b = a.toString(16); if ((b.length % 2) == 1) { b = \"0\" + b } return b }; this.bigIntToMinTwosComplementsHex = function (j) { var f = j.toString(16); if (f.substr(0, 1) != \"-\") { if (f.length % 2 == 1) { f = \"0\" + f } else { if (!f.match(/^[0-7]/)) { f = \"00\" + f } } } else { var a = f.substr(1); var e = a.length; if (e % 2 == 1) { e += 1 } else { if (!f.match(/^[0-7]/)) { e += 2 } } var g = \"\"; for (var d = 0; d < e; d++) { g += \"f\" } var c = new BigInteger(g, 16); var b = c.xor(j).add(BigInteger.ONE); f = b.toString(16).replace(/^-/, \"\") } return f }; this.getPEMStringFromHex = function (a, b) { return hextopem(a, b) }; this.newObject = function (k) { var D = KJUR, n = D.asn1, z = n.DERBoolean, e = n.DERInteger, s = n.DERBitString, h = n.DEROctetString, v = n.DERNull, w = n.DERObjectIdentifier, l = n.DEREnumerated, g = n.DERUTF8String, f = n.DERNumericString, y = n.DERPrintableString, u = n.DERTeletexString, p = n.DERIA5String, C = n.DERUTCTime, j = n.DERGeneralizedTime, m = n.DERSequence, c = n.DERSet, r = n.DERTaggedObject, o = n.ASN1Util.newObject; var t = Object.keys(k); if (t.length != 1) { throw \"key of param shall be only one.\" } var F = t[0]; if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + F + \":\") == -1) { throw \"undefined key: \" + F } if (F == \"bool\") { return new z(k[F]) } if (F == \"int\") { return new e(k[F]) } if (F == \"bitstr\") { return new s(k[F]) } if (F == \"octstr\") { return new h(k[F]) } if (F == \"null\") { return new v(k[F]) } if (F == \"oid\") { return new w(k[F]) } if (F == \"enum\") { return new l(k[F]) } if (F == \"utf8str\") { return new g(k[F]) } if (F == \"numstr\") { return new f(k[F]) } if (F == \"prnstr\") { return new y(k[F]) } if (F == \"telstr\") { return new u(k[F]) } if (F == \"ia5str\") { return new p(k[F]) } if (F == \"utctime\") { return new C(k[F]) } if (F == \"gentime\") { return new j(k[F]) } if (F == \"seq\") { var d = k[F]; var E = []; for (var x = 0; x < d.length; x++) { var B = o(d[x]); E.push(B) } return new m({ array: E }) } if (F == \"set\") { var d = k[F]; var E = []; for (var x = 0; x < d.length; x++) { var B = o(d[x]); E.push(B) } return new c({ array: E }) } if (F == \"tag\") { var A = k[F]; if (Object.prototype.toString.call(A) === \"[object Array]\" && A.length == 3) { var q = o(A[2]); return new r({ tag: A[0], explicit: A[1], obj: q }) } else { var b = {}; if (A.explicit !== undefined) { b.explicit = A.explicit } if (A.tag !== undefined) { b.tag = A.tag } if (A.obj === undefined) { throw \"obj shall be specified for 'tag'.\" } b.obj = o(A.obj); return new r(b) } } }; this.jsonToASN1HEX = function (b) { var a = this.newObject(b); return a.getEncodedHex() } }; KJUR.asn1.ASN1Util.oidHexToInt = function (a) { var j = \"\"; var k = parseInt(a.substr(0, 2), 16); var d = Math.floor(k / 40); var c = k % 40; var j = d + \".\" + c; var e = \"\"; for (var f = 2; f < a.length; f += 2) { var g = parseInt(a.substr(f, 2), 16); var h = (\"00000000\" + g.toString(2)).slice(-8); e = e + h.substr(1, 7); if (h.substr(0, 1) == \"0\") { var b = new BigInteger(e, 2); j = j + \".\" + b.toString(10); e = \"\" } } return j }; KJUR.asn1.ASN1Util.oidIntToHex = function (f) { var e = function (a) { var k = a.toString(16); if (k.length == 1) { k = \"0\" + k } return k }; var d = function (o) { var n = \"\"; var k = new BigInteger(o, 10); var a = k.toString(2); var l = 7 - a.length % 7; if (l == 7) { l = 0 } var q = \"\"; for (var m = 0; m < l; m++) { q += \"0\" } a = q + a; for (var m = 0; m < a.length - 1; m += 7) { var p = a.substr(m, 7); if (m != a.length - 7) { p = \"1\" + p } n += e(parseInt(p, 2)) } return n }; if (!f.match(/^[0-9.]+$/)) { throw \"malformed oid string: \" + f } var g = \"\"; var b = f.split(\".\"); var j = parseInt(b[0]) * 40 + parseInt(b[1]); g += e(j);
  917. "var ASN1HEX = new function () { }; ASN1HEX.getLblen = function (c, a) { if (c.substr(a + 2, 1) != \"8\") { return 1 } var b = parseInt(c.substr(a + 3, 1)); if (b == 0) { return -1 } if (0 < b && b < 10) { return b + 1 } return -2 }; ASN1HEX.getL = function (c, b) { var a = ASN1HEX.getLblen(c, b); if (a < 1) { return \"\" } return c.substr(b + 2, a * 2) }; ASN1HEX.getVblen = function (d, a) { var c, b; c = ASN1HEX.getL(d, a); if (c == \"\") { return -1 } if (c.substr(0, 1) === \"8\") { b = new BigInteger(c.substr(2), 16) } else { b = new BigInteger(c, 16) } return b.intValue() }; ASN1HEX.getVidx = function (c, b) { var a = ASN1HEX.getLblen(c, b); if (a < 0) { return a } return b + (a + 1) * 2 }; ASN1HEX.getV = function (d, a) { var c = ASN1HEX.getVidx(d, a); var b = ASN1HEX.getVblen(d, a); return d.substr(c, b * 2) }; ASN1HEX.getTLV = function (b, a) { return b.substr(a, 2) + ASN1HEX.getL(b, a) + ASN1HEX.getV(b, a) }; ASN1HEX.getNextSiblingIdx = function (d, a) { var c = ASN1HEX.getVidx(d, a); var b = ASN1HEX.getVblen(d, a); return c + b * 2 }; ASN1HEX.getChildIdx = function (e, f) { var j = ASN1HEX; var g = new Array(); var i = j.getVidx(e, f); if (e.substr(f, 2) == \"03\") { g.push(i + 2) } else { g.push(i) } var l = j.getVblen(e, f); var c = i; var d = 0; while (1) { var b = j.getNextSiblingIdx(e, c); if (b == null || (b - i >= (l * 2))) { break } if (d >= 200) { break } g.push(b); c = b; d++ } return g }; ASN1HEX.getNthChildIdx = function (d, b, e) { var c = ASN1HEX.getChildIdx(d, b); return c[e] }; ASN1HEX.getIdxbyList = function (e, d, c, i) { var g = ASN1HEX; var f, b; if (c.length == 0) { if (i !== undefined) { if (e.substr(d, 2) !== i) { throw \"checking tag doesn't match: \" + e.substr(d, 2) + \"!=\" + i } } return d } f = c.shift(); b = g.getChildIdx(e, d); return g.getIdxbyList(e, b[f], c, i) }; ASN1HEX.getTLVbyList = function (d, c, b, f) { var e = ASN1HEX; var a = e.getIdxbyList(d, c, b); if (a === undefined) { throw \"can't find nthList object\" } if (f !== undefined) { if (d.substr(a, 2) != f) { throw \"checking tag doesn't match: \" + d.substr(a, 2) + \"!=\" + f } } return e.getTLV(d, a) }; ASN1HEX.getVbyList = function (e, c, b, g, i) { var f = ASN1HEX; var a, d; a = f.getIdxbyList(e, c, b, g); if (a === undefined) { throw \"can't find nthList object\" } d = f.getV(e, a); if (i === true) { d = d.substr(2) } return d }; ASN1HEX.hextooidstr = function (e) { var h = function (b, a) { if (b.length >= a) { return b } return new Array(a - b.length + 1).join(\"0\") + b }; var l = []; var o = e.substr(0, 2); var f = parseInt(o, 16); l[0] = new String(Math.floor(f / 40)); l[1] = new String(f % 40); var m = e.substr(2); var k = []; for (var g = 0; g < m.length / 2; g++) { k.push(parseInt(m.substr(g * 2, 2), 16)) } var j = []; var d = \"\"; for (var g = 0; g < k.length; g++) { if (k[g] & 128) { d = d + h((k[g] & 127).toString(2), 7) } else { d = d + h((k[g] & 127).toString(2), 7); j.push(new String(parseInt(d, 2))); d = \"\" } } var n = l.join(\".\"); if (j.length > 0) { n = n + \".\" + j.join(\".\") } return n }; ASN1HEX.dump = function (t, c, l, g) { var p = ASN1HEX; var j = p.getV; var y = p.dump; var w = p.getChildIdx; var e = t; if (t instanceof KJUR.asn1.ASN1Object) { e = t.getEncodedHex() } var q = function (A, i) { if (A.length <= i * 2) { return A } else { var v = A.substr(0, i) + \"..(total \" + A.length / 2 + \"bytes)..\" + A.substr(A.length - i, i); return v } }; if (c === undefined) { c = { ommit_long_octet: 32 } } if (l === undefined) { l = 0 } if (g === undefined) { g = \"\" } var x = c.ommit_long_octet; if (e.substr(l, 2) == \"01\") { var h = j(e, l); if (h == \"00\") { return g + \"BOOLEAN FALSE\\n\" } else { return g + \"BOOLEAN TRUE\\n\" } } if (e.substr(l, 2) == \"02\") { var h = j(e, l); return g + \"INTEGER \" + q(h, x) + \"\\n\" } if (e.substr(l, 2) == \"03\") { var h = j(e, l); return g + \"BITSTRING \" + q(h, x) + \"\\n\" } if (e.substr(l, 2) == \"04\") { var h = j(e, l); if (p.isASN1HEX(h)) { var k = g + \"OCTETSTRING, encapsulates\\n\"; k = k + y(h, c, 0, g + \" \"); return k } el
  918. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) { KJUR.asn1 = {} } if (typeof KJUR.asn1.x509 == \"undefined\" || !KJUR.asn1.x509) { KJUR.asn1.x509 = {} } KJUR.asn1.x509.Certificate = function (e) { KJUR.asn1.x509.Certificate.superclass.constructor.call(this); var a = null, j = null, h = null, k = null, i = null, b = KJUR, f = b.crypto, g = b.asn1, d = g.DERSequence, c = g.DERBitString; this.sign = function () { this.asn1SignatureAlg = this.asn1TBSCert.asn1SignatureAlg; var m = new KJUR.crypto.Signature({ alg: this.asn1SignatureAlg.nameAlg }); m.init(this.prvKey); m.updateHex(this.asn1TBSCert.getEncodedHex()); this.hexSig = m.sign(); this.asn1Sig = new c({ hex: \"00\" + this.hexSig }); var l = new d({ array: [this.asn1TBSCert, this.asn1SignatureAlg, this.asn1Sig] }); this.hTLV = l.getEncodedHex(); this.isModified = false }; this.setSignatureHex = function (l) { this.asn1SignatureAlg = this.asn1TBSCert.asn1SignatureAlg; this.hexSig = l; this.asn1Sig = new c({ hex: \"00\" + this.hexSig }); var m = new d({ array: [this.asn1TBSCert, this.asn1SignatureAlg, this.asn1Sig] }); this.hTLV = m.getEncodedHex(); this.isModified = false }; this.getEncodedHex = function () { if (this.isModified == false && this.hTLV != null) { return this.hTLV } throw \"not signed yet\" }; this.getPEMString = function () { var l = hextob64nl(this.getEncodedHex()); return \"-----BEGIN CERTIFICATE-----\\r\\n\" + l + \"\\r\\n-----END CERTIFICATE-----\\r\\n\" }; if (e !== undefined) { if (e.tbscertobj !== undefined) { this.asn1TBSCert = e.tbscertobj } if (e.prvkeyobj !== undefined) { this.prvKey = e.prvkeyobj } } }; YAHOO.lang.extend(KJUR.asn1.x509.Certificate, KJUR.asn1.ASN1Object); KJUR.asn1.x509.TBSCertificate = function (e) { KJUR.asn1.x509.TBSCertificate.superclass.constructor.call(this); var b = KJUR, i = b.asn1, f = i.DERSequence, h = i.DERInteger, c = i.DERTaggedObject, d = i.x509, g = d.Time, a = d.X500Name, j = d.SubjectPublicKeyInfo; this._initialize = function () { this.asn1Array = new Array(); this.asn1Version = new c({ obj: new h({ \"int\": 2 }) }); this.asn1SerialNumber = null; this.asn1SignatureAlg = null; this.asn1Issuer = null; this.asn1NotBefore = null; this.asn1NotAfter = null; this.asn1Subject = null; this.asn1SubjPKey = null; this.extensionsArray = new Array() }; this.setSerialNumberByParam = function (k) { this.asn1SerialNumber = new h(k) }; this.setSignatureAlgByParam = function (k) { this.asn1SignatureAlg = new d.AlgorithmIdentifier(k) }; this.setIssuerByParam = function (k) { this.asn1Issuer = new a(k) }; this.setNotBeforeByParam = function (k) { this.asn1NotBefore = new g(k) }; this.setNotAfterByParam = function (k) { this.asn1NotAfter = new g(k) }; this.setSubjectByParam = function (k) { this.asn1Subject = new a(k) }; this.setSubjectPublicKey = function (k) { this.asn1SubjPKey = new j(k) }; this.setSubjectPublicKeyByGetKey = function (l) { var k = KEYUTIL.getKey(l); this.asn1SubjPKey = new j(k) }; this.appendExtension = function (k) { this.extensionsArray.push(k) }; this.appendExtensionByName = function (l, k) { KJUR.asn1.x509.Extension.appendByNameToArray(l, k, this.extensionsArray) }; this.getEncodedHex = function () { if (this.asn1NotBefore == null || this.asn1NotAfter == null) { throw \"notBefore and/or notAfter not set\" } var l = new f({ array: [this.asn1NotBefore, this.asn1NotAfter] }); this.asn1Array = new Array(); this.asn1Array.push(this.asn1Version); this.asn1Array.push(this.asn1SerialNumber); this.asn1Array.push(this.asn1SignatureAlg); this.asn1Array.push(this.asn1Issuer); this.asn1Array.push(l); this.asn1Array.push(this.asn1Subject); this.asn1Array.push(this.asn1SubjPKey); if (this.extensionsArray.length > 0) { var m = new f({ array: this.extensionsArray }); var k = new c({ explicit: true, tag: \"a3\", obj: m }); this.asn1Array.push(k) } var n = new f({ array: this.asn1Array }); this.hTLV = n.getEncodedHex(); this.isModified = false; return this.hTLV }; this._initialize() }; YAHOO.lang.extend(KJUR.asn1.x509.TBSCertificate, KJUR.asn1.ASN1Object); KJU
  919. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) { KJUR.asn1 = {} } if (typeof KJUR.asn1.cms == \"undefined\" || !KJUR.asn1.cms) { KJUR.asn1.cms = {} } KJUR.asn1.cms.Attribute = function (d) { var a = [], c = KJUR, b = c.asn1; b.cms.Attribute.superclass.constructor.call(this); this.getEncodedHex = function () { var h, g, e; h = new b.DERObjectIdentifier({ oid: this.attrTypeOid }); g = new b.DERSet({ array: this.valueList }); try { g.getEncodedHex() } catch (f) { throw \"fail valueSet.getEncodedHex in Attribute(1)/\" + f } e = new b.DERSequence({ array: [h, g] }); try { this.hTLV = e.getEncodedHex() } catch (f) { throw \"failed seq.getEncodedHex in Attribute(2)/\" + f } return this.hTLV } }; YAHOO.lang.extend(KJUR.asn1.cms.Attribute, KJUR.asn1.ASN1Object); KJUR.asn1.cms.ContentType = function (d) { var c = KJUR, b = c.asn1; b.cms.ContentType.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.3\"; var a = null; if (typeof d != \"undefined\") { var a = new b.DERObjectIdentifier(d); this.valueList = [a] } }; YAHOO.lang.extend(KJUR.asn1.cms.ContentType, KJUR.asn1.cms.Attribute); KJUR.asn1.cms.MessageDigest = function (d) { var b = KJUR, e = b.asn1, g = e.DEROctetString, i = e.cms; i.MessageDigest.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.4\"; if (d !== undefined) { if (d.eciObj instanceof i.EncapsulatedContentInfo && typeof d.hashAlg === \"string\") { var h = d.eciObj.eContentValueHex; var c = d.hashAlg; var a = b.crypto.Util.hashHex(h, c); var f = new g({ hex: a }); f.getEncodedHex(); this.valueList = [f] } else { var f = new g(d); f.getEncodedHex(); this.valueList = [f] } } }; YAHOO.lang.extend(KJUR.asn1.cms.MessageDigest, KJUR.asn1.cms.Attribute); KJUR.asn1.cms.SigningTime = function (e) { var d = KJUR, c = d.asn1; c.cms.SigningTime.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.5\"; if (e !== undefined) { var a = new c.x509.Time(e); try { a.getEncodedHex() } catch (b) { throw \"SigningTime.getEncodedHex() failed/\" + b } this.valueList = [a] } }; YAHOO.lang.extend(KJUR.asn1.cms.SigningTime, KJUR.asn1.cms.Attribute); KJUR.asn1.cms.SigningCertificate = function (f) { var c = KJUR, b = c.asn1, a = b.DERSequence, e = b.cms, d = c.crypto; e.SigningCertificate.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.16.2.12\"; this.setCerts = function (n) { var l = []; for (var k = 0; k < n.length; k++) { var h = pemtohex(n[k]); var g = c.crypto.Util.hashHex(h, \"sha1\"); var o = new b.DEROctetString({ hex: g }); o.getEncodedHex(); var m = new e.IssuerAndSerialNumber({ cert: n[k] }); m.getEncodedHex(); var p = new a({ array: [o, m] }); p.getEncodedHex(); l.push(p) } var j = new a({ array: l }); j.getEncodedHex(); this.valueList = [j] }; if (f !== undefined) { if (typeof f.array == \"object\") { this.setCerts(f.array) } } }; YAHOO.lang.extend(KJUR.asn1.cms.SigningCertificate, KJUR.asn1.cms.Attribute); KJUR.asn1.cms.SigningCertificateV2 = function (h) { var d = KJUR, c = d.asn1, b = c.DERSequence, g = c.x509, f = c.cms, e = d.crypto; f.SigningCertificateV2.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.16.2.47\"; this.setCerts = function (r, k) { var p = []; for (var n = 0; n < r.length; n++) { var l = pemtohex(r[n]); var t = []; if (k !== \"sha256\") { t.push(new g.AlgorithmIdentifier({ name: k })) } var j = e.Util.hashHex(l, k); var s = new c.DEROctetString({ hex: j }); s.getEncodedHex(); t.push(s); var o = new f.IssuerAndSerialNumber({ cert: r[n] }); o.getEncodedHex(); t.push(o); var q = new b({ array: t }); q.getEncodedHex(); p.push(q) } var m = new b({ array: p }); m.getEncodedHex(); this.valueList = [m] }; if (h !== undefined) { if (typeof h.array == \"object\") { var a = \"sha256\"; if (typeof h.hashAlg == \"string\") { a = h.hashAlg } this.setCerts(h.array, a) } } }; YAHOO.lang.extend(KJUR.asn1.cms.SigningCertificateV2, KJUR.asn1.cms.Attribute); KJUR.asn1.cms.IssuerAndSerialNumber = function (e) { var b = KJUR, g = b.asn1, f =
  920. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) { KJUR.asn1 = {} } if (typeof KJUR.asn1.tsp == \"undefined\" || !KJUR.asn1.tsp) { KJUR.asn1.tsp = {} } KJUR.asn1.tsp.Accuracy = function (f) { var c = KJUR, b = c.asn1, e = b.DERInteger, a = b.DERSequence, d = b.DERTaggedObject; b.tsp.Accuracy.superclass.constructor.call(this); this.seconds = null; this.millis = null; this.micros = null; this.getEncodedHex = function () { var i = null; var k = null; var m = null; var g = []; if (this.seconds != null) { i = new e({ \"int\": this.seconds }); g.push(i) } if (this.millis != null) { var l = new e({ \"int\": this.millis }); k = new d({ obj: l, tag: \"80\", explicit: false }); g.push(k) } if (this.micros != null) { var j = new e({ \"int\": this.micros }); m = new d({ obj: j, tag: \"81\", explicit: false }); g.push(m) } var h = new a({ array: g }); this.hTLV = h.getEncodedHex(); return this.hTLV }; if (f !== undefined) { if (typeof f.seconds == \"number\") { this.seconds = f.seconds } if (typeof f.millis == \"number\") { this.millis = f.millis } if (typeof f.micros == \"number\") { this.micros = f.micros } } }; YAHOO.lang.extend(KJUR.asn1.tsp.Accuracy, KJUR.asn1.ASN1Object); KJUR.asn1.tsp.MessageImprint = function (g) { var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.DEROctetString, f = b.x509, e = f.AlgorithmIdentifier; b.tsp.MessageImprint.superclass.constructor.call(this); this.dHashAlg = null; this.dHashValue = null; this.getEncodedHex = function () { if (typeof this.hTLV == \"string\") { return this.hTLV } var h = new a({ array: [this.dHashAlg, this.dHashValue] }); return h.getEncodedHex() }; if (g !== undefined) { if (typeof g.hashAlg == \"string\") { this.dHashAlg = new e({ name: g.hashAlg }) } if (typeof g.hashValue == \"string\") { this.dHashValue = new d({ hex: g.hashValue }) } } }; YAHOO.lang.extend(KJUR.asn1.tsp.MessageImprint, KJUR.asn1.ASN1Object); KJUR.asn1.tsp.TimeStampReq = function (c) { var a = KJUR, f = a.asn1, d = f.DERSequence, e = f.DERInteger, g = f.DERBoolean, i = f.DERObjectIdentifier, h = f.tsp, b = h.MessageImprint; h.TimeStampReq.superclass.constructor.call(this); this.dVersion = new e({ \"int\": 1 }); this.dMessageImprint = null; this.dPolicy = null; this.dNonce = null; this.certReq = true; this.setMessageImprint = function (j) { if (j instanceof b) { this.dMessageImprint = j; return } if (typeof j == \"object\") { this.dMessageImprint = new b(j) } }; this.getEncodedHex = function () { if (this.dMessageImprint == null) { throw \"messageImprint shall be specified\" } var j = [this.dVersion, this.dMessageImprint]; if (this.dPolicy != null) { j.push(this.dPolicy) } if (this.dNonce != null) { j.push(this.dNonce) } if (this.certReq) { j.push(new g()) } var k = new d({ array: j }); this.hTLV = k.getEncodedHex(); return this.hTLV }; if (c !== undefined) { if (typeof c.mi == \"object\") { this.setMessageImprint(c.mi) } if (typeof c.policy == \"object\") { this.dPolicy = new i(c.policy) } if (typeof c.nonce == \"object\") { this.dNonce = new e(c.nonce) } if (typeof c.certreq == \"boolean\") { this.certReq = c.certreq } } }; YAHOO.lang.extend(KJUR.asn1.tsp.TimeStampReq, KJUR.asn1.ASN1Object); KJUR.asn1.tsp.TSTInfo = function (e) { var c = KJUR, i = c.asn1, f = i.DERSequence, h = i.DERInteger, k = i.DERBoolean, g = i.DERGeneralizedTime, l = i.DERObjectIdentifier, j = i.tsp, d = j.MessageImprint, b = j.Accuracy, a = i.x509.X500Name; j.TSTInfo.superclass.constructor.call(this); this.dVersion = new h({ \"int\": 1 }); this.dPolicy = null; this.dMessageImprint = null; this.dSerialNumber = null; this.dGenTime = null; this.dAccuracy = null; this.dOrdering = null; this.dNonce = null; this.dTsa = null; this.getEncodedHex = function () { var m = [this.dVersion]; if (this.dPolicy == null) { throw \"policy shall be specified.\" } m.push(this.dPolicy); if (this.dMessageImprint == null) { throw \"messageImprint shall be specified.\" } m.push(this.dMessageImprint); if (this.dSerialNumber == null) { throw \"serialNumber shall be specified.\" } m.push(this.dS
  921. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) { KJUR.asn1 = {} } if (typeof KJUR.asn1.cades == \"undefined\" || !KJUR.asn1.cades) { KJUR.asn1.cades = {} } KJUR.asn1.cades.SignaturePolicyIdentifier = function (f) { var b = KJUR, h = b.asn1, i = h.DERObjectIdentifier, g = h.DERSequence, e = h.cades, c = e.OtherHashAlgAndValue; e.SignaturePolicyIdentifier.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.16.2.15\"; if (f !== undefined) { if (typeof f.oid == \"string\" && typeof f.hash == \"object\") { var d = new i({ oid: f.oid }); var a = new c(f.hash); var j = new g({ array: [d, a] }); this.valueList = [j] } } }; YAHOO.lang.extend(KJUR.asn1.cades.SignaturePolicyIdentifier, KJUR.asn1.cms.Attribute); KJUR.asn1.cades.OtherHashAlgAndValue = function (e) { var a = KJUR, g = a.asn1, f = g.DERSequence, h = g.DEROctetString, d = g.x509, i = d.AlgorithmIdentifier, c = g.cades, b = c.OtherHashAlgAndValue; b.superclass.constructor.call(this); this.dAlg = null; this.dHash = null; this.getEncodedHex = function () { var j = new f({ array: [this.dAlg, this.dHash] }); this.hTLV = j.getEncodedHex(); return this.hTLV }; if (e !== undefined) { if (typeof e.alg == \"string\" && typeof e.hash == \"string\") { this.dAlg = new i({ name: e.alg }); this.dHash = new h({ hex: e.hash }) } } }; YAHOO.lang.extend(KJUR.asn1.cades.OtherHashAlgAndValue, KJUR.asn1.ASN1Object); KJUR.asn1.cades.SignatureTimeStamp = function (h) { var c = KJUR, b = c.asn1, e = b.ASN1Object, g = b.x509, a = b.cades; a.SignatureTimeStamp.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.16.2.14\"; this.tstHex = null; if (h !== undefined) { if (h.res !== undefined) { if (typeof h.res == \"string\" && h.res.match(/^[0-9A-Fa-f]+$/)) { } else { if (h.res instanceof e) { } else { throw \"res param shall be ASN1Object or hex string\" } } } if (h.tst !== undefined) { if (typeof h.tst == \"string\" && h.tst.match(/^[0-9A-Fa-f]+$/)) { var f = new e(); this.tstHex = h.tst; f.hTLV = this.tstHex; f.getEncodedHex(); this.valueList = [f] } else { if (h.tst instanceof e) { } else { throw \"tst param shall be ASN1Object or hex string\" } } } } }; YAHOO.lang.extend(KJUR.asn1.cades.SignatureTimeStamp, KJUR.asn1.cms.Attribute); KJUR.asn1.cades.CompleteCertificateRefs = function (d) { var c = KJUR, b = c.asn1, a = b.cades; a.CompleteCertificateRefs.superclass.constructor.call(this); this.attrTypeOid = \"1.2.840.113549.1.9.16.2.21\"; this.setByArray = function (e) { this.valueList = []; for (var f = 0; f < e.length; f++) { var g = new a.OtherCertID(e[f]); this.valueList.push(g) } }; if (d !== undefined) { if (typeof d == \"object\" && typeof d.length == \"number\") { this.setByArray(d) } } }; YAHOO.lang.extend(KJUR.asn1.cades.CompleteCertificateRefs, KJUR.asn1.cms.Attribute); KJUR.asn1.cades.OtherCertID = function (e) { var c = KJUR, b = c.asn1, d = b.cms, a = b.cades; a.OtherCertID.superclass.constructor.call(this); this.hasIssuerSerial = true; this.dOtherCertHash = null; this.dIssuerSerial = null; this.setByCertPEM = function (f) { this.dOtherCertHash = new a.OtherHash(f); if (this.hasIssuerSerial) { this.dIssuerSerial = new d.IssuerAndSerialNumber(f) } }; this.getEncodedHex = function () { if (this.hTLV != null) { return this.hTLV } if (this.dOtherCertHash == null) { throw \"otherCertHash not set\" } var f = [this.dOtherCertHash]; if (this.dIssuerSerial != null) { f.push(this.dIssuerSerial) } var g = new b.DERSequence({ array: f }); this.hTLV = g.getEncodedHex(); return this.hTLV }; if (e !== undefined) { if (typeof e == \"string\" && e.indexOf(\"-----BEGIN \") != -1) { this.setByCertPEM(e) } if (typeof e == \"object\") { if (e.hasis === false) { this.hasIssuerSerial = false } if (typeof e.cert == \"string\") { this.setByCertPEM(e.cert) } } } }; YAHOO.lang.extend(KJUR.asn1.cades.OtherCertID, KJUR.asn1.ASN1Object); KJUR.asn1.cades.OtherHash = function (f) { var d = KJUR, c = d.asn1, e = c.cms, b = c.cades, g = b.OtherHashAlgAndValue, a = d.crypto.Util.hashHex; b.OtherHash.supe
  922. "if (typeof KJUR.asn1.csr == \"undefined\" || !KJUR.asn1.csr) { KJUR.asn1.csr = {} } KJUR.asn1.csr.CertificationRequest = function (d) { var a = KJUR, f = a.asn1, b = f.DERBitString, e = f.DERSequence, k = f.csr, c = f.x509; k.CertificationRequest.superclass.constructor.call(this); var l = null; var j = null; var h = null; var i = null; var g = null; this.sign = function (o, n) { if (this.prvKey == null) { this.prvKey = n } this.asn1SignatureAlg = new c.AlgorithmIdentifier({ name: o }); sig = new a.crypto.Signature({ alg: o }); sig.init(this.prvKey); sig.updateHex(this.asn1CSRInfo.getEncodedHex()); this.hexSig = sig.sign(); this.asn1Sig = new b({ hex: \"00\" + this.hexSig }); var m = new e({ array: [this.asn1CSRInfo, this.asn1SignatureAlg, this.asn1Sig] }); this.hTLV = m.getEncodedHex(); this.isModified = false }; this.getPEMString = function () { return hextopem(this.getEncodedHex(), \"CERTIFICATE REQUEST\") }; this.getEncodedHex = function () { if (this.isModified == false && this.hTLV != null) { return this.hTLV } throw \"not signed yet\" }; if (d !== undefined && d.csrinfo !== undefined) { this.asn1CSRInfo = d.csrinfo } }; YAHOO.lang.extend(KJUR.asn1.csr.CertificationRequest, KJUR.asn1.ASN1Object); KJUR.asn1.csr.CertificationRequestInfo = function (e) { var b = KJUR, h = b.asn1, g = h.DERInteger, f = h.DERSequence, m = h.DERSet, j = h.DERNull, c = h.DERTaggedObject, k = h.DERObjectIdentifier, l = h.csr, d = h.x509, a = d.X500Name, n = d.Extension, i = KEYUTIL; l.CertificationRequestInfo.superclass.constructor.call(this); this._initialize = function () { this.asn1Array = new Array(); this.asn1Version = new g({ \"int\": 0 }); this.asn1Subject = null; this.asn1SubjPKey = null; this.extensionsArray = new Array() }; this.setSubjectByParam = function (o) { this.asn1Subject = new a(o) }; this.setSubjectPublicKeyByGetKey = function (p) { var o = i.getKey(p); this.asn1SubjPKey = new d.SubjectPublicKeyInfo(o) }; this.appendExtensionByName = function (p, o) { n.appendByNameToArray(p, o, this.extensionsArray) }; this.getEncodedHex = function () { this.asn1Array = new Array(); this.asn1Array.push(this.asn1Version); this.asn1Array.push(this.asn1Subject); this.asn1Array.push(this.asn1SubjPKey); if (this.extensionsArray.length > 0) { var s = new f({ array: this.extensionsArray }); var r = new m({ array: [s] }); var q = new f({ array: [new k({ oid: \"1.2.840.113549.1.9.14\" }), r] }); var p = new c({ explicit: true, tag: \"a0\", obj: q }); this.asn1Array.push(p) } else { var p = new c({ explicit: false, tag: \"a0\", obj: new j() }); this.asn1Array.push(p) } var t = new f({ array: this.asn1Array }); this.hTLV = t.getEncodedHex(); this.isModified = false; return this.hTLV }; this._initialize() }; YAHOO.lang.extend(KJUR.asn1.csr.CertificationRequestInfo, KJUR.asn1.ASN1Object); KJUR.asn1.csr.CSRUtil = new function () { }; KJUR.asn1.csr.CSRUtil.newCSRPEM = function (h) { var c = KEYUTIL, b = KJUR.asn1.csr; if (h.subject === undefined) { throw \"parameter subject undefined\" } if (h.sbjpubkey === undefined) { throw \"parameter sbjpubkey undefined\" } if (h.sigalg === undefined) { throw \"parameter sigalg undefined\" } if (h.sbjprvkey === undefined) { throw \"parameter sbjpubkey undefined\" } var d = new b.CertificationRequestInfo(); d.setSubjectByParam(h.subject); d.setSubjectPublicKeyByGetKey(h.sbjpubkey); if (h.ext !== undefined && h.ext.length !== undefined) { for (var e = 0; e < h.ext.length; e++) { for (key in h.ext[e]) { d.appendExtensionByName(key, h.ext[e][key]) } } } var f = new b.CertificationRequest({ csrinfo: d }); var a = c.getKey(h.sbjprvkey); f.sign(h.sigalg, a); var g = f.getPEMString(); return g }; KJUR.asn1.csr.CSRUtil.getInfo = function (b) { var d = ASN1HEX; var e = d.getTLVbyList; var a = {}; a.subject = {}; a.pubkey = {}; if (b.indexOf(\"-----BEGIN CERTIFICATE REQUEST\") == -1) { throw \"argument is not PEM file\" } var c = pemtohex(b, \"CERTIFICATE REQUEST\"); a.subject.hex = e(c, 0, [0, 1]); a.subject.name = X509.hex2dn(a.subject.hex); a.pubkey.hex = e(c, 0, [0, 2]); a.pubkey.obj = KEYUTIL.getKey(a.pubkey.hex,
  923. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1) { KJUR.asn1 = {} } if (typeof KJUR.asn1.ocsp == \"undefined\" || !KJUR.asn1.ocsp) { KJUR.asn1.ocsp = {} } KJUR.asn1.ocsp.DEFAULT_HASH = \"sha1\"; KJUR.asn1.ocsp.CertID = function (g) { var d = KJUR, k = d.asn1, m = k.DEROctetString, j = k.DERInteger, h = k.DERSequence, f = k.x509, n = f.AlgorithmIdentifier, o = k.ocsp, l = o.DEFAULT_HASH, i = d.crypto, e = i.Util.hashHex, c = X509, q = ASN1HEX; o.CertID.superclass.constructor.call(this); this.dHashAlg = null; this.dIssuerNameHash = null; this.dIssuerKeyHash = null; this.dSerialNumber = null; this.setByValue = function (t, s, p, r) { if (r === undefined) { r = l } this.dHashAlg = new n({ name: r }); this.dIssuerNameHash = new m({ hex: t }); this.dIssuerKeyHash = new m({ hex: s }); this.dSerialNumber = new j({ hex: p }) }; this.setByCert = function (x, t, v) { if (v === undefined) { v = l } var p = new c(); p.readCertPEM(t); var y = new c(); y.readCertPEM(x); var z = y.getPublicKeyHex(); var w = q.getTLVbyList(z, 0, [1, 0], \"30\"); var r = p.getSerialNumberHex(); var s = e(y.getSubjectHex(), v); var u = e(w, v); this.setByValue(s, u, r, v); this.hoge = p.getSerialNumberHex() }; this.getEncodedHex = function () { if (this.dHashAlg === null && this.dIssuerNameHash === null && this.dIssuerKeyHash === null && this.dSerialNumber === null) { throw \"not yet set values\" } var p = [this.dHashAlg, this.dIssuerNameHash, this.dIssuerKeyHash, this.dSerialNumber]; var r = new h({ array: p }); this.hTLV = r.getEncodedHex(); return this.hTLV }; if (g !== undefined) { var b = g; if (b.issuerCert !== undefined && b.subjectCert !== undefined) { var a = l; if (b.alg === undefined) { a = undefined } this.setByCert(b.issuerCert, b.subjectCert, a) } else { if (b.namehash !== undefined && b.keyhash !== undefined && b.serial !== undefined) { var a = l; if (b.alg === undefined) { a = undefined } this.setByValue(b.namehash, b.keyhash, b.serial, a) } else { throw \"invalid constructor arguments\" } } } }; YAHOO.lang.extend(KJUR.asn1.ocsp.CertID, KJUR.asn1.ASN1Object); KJUR.asn1.ocsp.Request = function (f) { var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.ocsp; d.Request.superclass.constructor.call(this); this.dReqCert = null; this.dExt = null; this.getEncodedHex = function () { var g = []; if (this.dReqCert === null) { throw \"reqCert not set\" } g.push(this.dReqCert); var h = new a({ array: g }); this.hTLV = h.getEncodedHex(); return this.hTLV }; if (typeof f !== \"undefined\") { var e = new d.CertID(f); this.dReqCert = e } }; YAHOO.lang.extend(KJUR.asn1.ocsp.Request, KJUR.asn1.ASN1Object); KJUR.asn1.ocsp.TBSRequest = function (e) { var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.ocsp; d.TBSRequest.superclass.constructor.call(this); this.version = 0; this.dRequestorName = null; this.dRequestList = []; this.dRequestExt = null; this.setRequestListByParam = function (h) { var f = []; for (var g = 0; g < h.length; g++) { var j = new d.Request(h[0]); f.push(j) } this.dRequestList = f }; this.getEncodedHex = function () { var f = []; if (this.version !== 0) { throw \"not supported version: \" + this.version } if (this.dRequestorName !== null) { throw \"requestorName not supported\" } var h = new a({ array: this.dRequestList }); f.push(h); if (this.dRequestExt !== null) { throw \"requestExtensions not supported\" } var g = new a({ array: f }); this.hTLV = g.getEncodedHex(); return this.hTLV }; if (e !== undefined) { if (e.reqList !== undefined) { this.setRequestListByParam(e.reqList) } } }; YAHOO.lang.extend(KJUR.asn1.ocsp.TBSRequest, KJUR.asn1.ASN1Object); KJUR.asn1.ocsp.OCSPRequest = function (f) { var c = KJUR, b = c.asn1, a = b.DERSequence, d = b.ocsp; d.OCSPRequest.superclass.constructor.call(this); this.dTbsRequest = null; this.dOptionalSignature = null; this.getEncodedHex = function () { var g = []; if (this.dTbsRequest !== null) { g.push(this.dTbsRequest) } else { throw \"tbsRequest not set\" } if (this.dOptionalSignature !== null) { throw \"optionalSignature not supported\"
  924. "var KJUR; if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.lang == \"undefined\" || !KJUR.lang) { KJUR.lang = {} } KJUR.lang.String = function () { }; function Base64x() { } function stoBA(d) { var b = new Array(); for (var c = 0; c < d.length; c++) { b[c] = d.charCodeAt(c) } return b } function BAtos(b) { var d = \"\"; for (var c = 0; c < b.length; c++) { d = d + String.fromCharCode(b[c]) } return d } function BAtohex(b) { var e = \"\"; for (var d = 0; d < b.length; d++) { var c = b[d].toString(16); if (c.length == 1) { c = \"0\" + c } e = e + c } return e } function stohex(a) { return BAtohex(stoBA(a)) } function stob64(a) { return hex2b64(stohex(a)) } function stob64u(a) { return b64tob64u(hex2b64(stohex(a))) } function b64utos(a) { return BAtos(b64toBA(b64utob64(a))) } function b64tob64u(a) { a = a.replace(/\\=/g, \"\"); a = a.replace(/\\+/g, \"-\"); a = a.replace(/\\//g, \"_\"); return a } function b64utob64(a) { if (a.length % 4 == 2) { a = a + \"==\" } else { if (a.length % 4 == 3) { a = a + \"=\" } } a = a.replace(/-/g, \"+\"); a = a.replace(/_/g, \"/\"); return a } function hextob64u(a) { if (a.length % 2 == 1) { a = \"0\" + a } return b64tob64u(hex2b64(a)) } function b64utohex(a) { return b64tohex(b64utob64(a)) } var utf8tob64u, b64utoutf8; if (typeof Buffer === \"function\") { utf8tob64u = function (a) { return b64tob64u(new Buffer(a, \"utf8\").toString(\"base64\")) }; b64utoutf8 = function (a) { return new Buffer(b64utob64(a), \"base64\").toString(\"utf8\") } } else { utf8tob64u = function (a) { return hextob64u(uricmptohex(encodeURIComponentAll(a))) }; b64utoutf8 = function (a) { return decodeURIComponent(hextouricmp(b64utohex(a))) } } function utf8tob64(a) { return hex2b64(uricmptohex(encodeURIComponentAll(a))) } function b64toutf8(a) { return decodeURIComponent(hextouricmp(b64tohex(a))) } function utf8tohex(a) { return uricmptohex(encodeURIComponentAll(a)) } function hextoutf8(a) { return decodeURIComponent(hextouricmp(a)) } function hextorstr(c) { var b = \"\"; for (var a = 0; a < c.length - 1; a += 2) { b += String.fromCharCode(parseInt(c.substr(a, 2), 16)) } return b } function rstrtohex(c) { var a = \"\"; for (var b = 0; b < c.length; b++) { a += (\"0\" + c.charCodeAt(b).toString(16)).slice(-2) } return a } function hextob64(a) { return hex2b64(a) } function hextob64nl(b) { var a = hextob64(b); var c = a.replace(/(.{64})/g, \"$1\\r\\n\"); c = c.replace(/\\r\\n$/, \"\"); return c } function b64nltohex(b) { var a = b.replace(/[^0-9A-Za-z\\/+=]*/g, \"\"); var c = b64tohex(a); return c } function hextopem(a, b) { var c = hextob64nl(a); return \"-----BEGIN \" + b + \"-----\\r\\n\" + c + \"\\r\\n-----END \" + b + \"-----\\r\\n\" } function pemtohex(a, b) { if (a.indexOf(\"-----BEGIN \") == -1) { throw \"can't find PEM header: \" + b } if (b !== undefined) { a = a.replace(\"-----BEGIN \" + b + \"-----\", \"\"); a = a.replace(\"-----END \" + b + \"-----\", \"\") } else { a = a.replace(/-----BEGIN [^-]+-----/, \"\"); a = a.replace(/-----END [^-]+-----/, \"\") } return b64nltohex(a) } function hextoArrayBuffer(d) { if (d.length % 2 != 0) { throw \"input is not even length\" } if (d.match(/^[0-9A-Fa-f]+$/) == null) { throw \"input is not hexadecimal\" } var b = new ArrayBuffer(d.length / 2); var a = new DataView(b); for (var c = 0; c < d.length / 2; c++) { a.setUint8(c, parseInt(d.substr(c * 2, 2), 16)) } return b } function ArrayBuffertohex(b) { var d = \"\"; var a = new DataView(b); for (var c = 0; c < b.byteLength; c++) { d += (\"00\" + a.getUint8(c).toString(16)).slice(-2) } return d } function zulutomsec(n) { var l, j, m, e, f, i, b, k; var a, h, g, c; c = n.match(/^(\\d{2}|\\d{4})(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(|\\.\\d+)Z$/); if (c) { a = c[1]; l = parseInt(a); if (a.length === 2) { if (50 <= l && l < 100) { l = 1900 + l } else { if (0 <= l && l < 50) { l = 2000 + l } } } j = parseInt(c[2]) - 1; m = parseInt(c[3]); e = parseInt(c[4]); f = parseInt(c[5]); i = parseInt(c[6]); b = 0; h = c[7]; if (h !== \"\") { g = (h.substr(1) + \"00\").substr(0, 3); b = parseInt(g) } r
  925. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.crypto == \"undefined\" || !KJUR.crypto) { KJUR.crypto = {} } KJUR.crypto.Util = new function () { this.DIGESTINFOHEAD = { sha1: \"3021300906052b0e03021a05000414\", sha224: \"302d300d06096086480165030402040500041c\", sha256: \"3031300d060960864801650304020105000420\", sha384: \"3041300d060960864801650304020205000430\", sha512: \"3051300d060960864801650304020305000440\", md2: \"3020300c06082a864886f70d020205000410\", md5: \"3020300c06082a864886f70d020505000410\", ripemd160: \"3021300906052b2403020105000414\", }; this.DEFAULTPROVIDER = { md5: \"cryptojs\", sha1: \"cryptojs\", sha224: \"cryptojs\", sha256: \"cryptojs\", sha384: \"cryptojs\", sha512: \"cryptojs\", ripemd160: \"cryptojs\", hmacmd5: \"cryptojs\", hmacsha1: \"cryptojs\", hmacsha224: \"cryptojs\", hmacsha256: \"cryptojs\", hmacsha384: \"cryptojs\", hmacsha512: \"cryptojs\", hmacripemd160: \"cryptojs\", MD5withRSA: \"cryptojs/jsrsa\", SHA1withRSA: \"cryptojs/jsrsa\", SHA224withRSA: \"cryptojs/jsrsa\", SHA256withRSA: \"cryptojs/jsrsa\", SHA384withRSA: \"cryptojs/jsrsa\", SHA512withRSA: \"cryptojs/jsrsa\", RIPEMD160withRSA: \"cryptojs/jsrsa\", MD5withECDSA: \"cryptojs/jsrsa\", SHA1withECDSA: \"cryptojs/jsrsa\", SHA224withECDSA: \"cryptojs/jsrsa\", SHA256withECDSA: \"cryptojs/jsrsa\", SHA384withECDSA: \"cryptojs/jsrsa\", SHA512withECDSA: \"cryptojs/jsrsa\", RIPEMD160withECDSA: \"cryptojs/jsrsa\", SHA1withDSA: \"cryptojs/jsrsa\", SHA224withDSA: \"cryptojs/jsrsa\", SHA256withDSA: \"cryptojs/jsrsa\", MD5withRSAandMGF1: \"cryptojs/jsrsa\", SHA1withRSAandMGF1: \"cryptojs/jsrsa\", SHA224withRSAandMGF1: \"cryptojs/jsrsa\", SHA256withRSAandMGF1: \"cryptojs/jsrsa\", SHA384withRSAandMGF1: \"cryptojs/jsrsa\", SHA512withRSAandMGF1: \"cryptojs/jsrsa\", RIPEMD160withRSAandMGF1: \"cryptojs/jsrsa\", }; this.CRYPTOJSMESSAGEDIGESTNAME = { md5: CryptoJS.algo.MD5, sha1: CryptoJS.algo.SHA1, sha224: CryptoJS.algo.SHA224, sha256: CryptoJS.algo.SHA256, sha384: CryptoJS.algo.SHA384, sha512: CryptoJS.algo.SHA512, ripemd160: CryptoJS.algo.RIPEMD160 }; this.getDigestInfoHex = function (a, b) { if (typeof this.DIGESTINFOHEAD[b] == \"undefined\") { throw \"alg not supported in Util.DIGESTINFOHEAD: \" + b } return this.DIGESTINFOHEAD[b] + a }; this.getPaddedDigestInfoHex = function (h, a, j) { var c = this.getDigestInfoHex(h, a); var d = j / 4; if (c.length + 22 > d) { throw \"key is too short for SigAlg: keylen=\" + j + \",\" + a } var b = \"0001\"; var k = \"00\" + c; var g = \"\"; var l = d - b.length - k.length; for (var f = 0; f < l; f += 2) { g += \"ff\" } var e = b + g + k; return e }; this.hashString = function (a, c) { var b = new KJUR.crypto.MessageDigest({ alg: c }); return b.digestString(a) }; this.hashHex = function (b, c) { var a = new KJUR.crypto.MessageDigest({ alg: c }); return a.digestHex(b) }; this.sha1 = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"sha1\", prov: \"cryptojs\" }); return b.digestString(a) }; this.sha256 = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"sha256\", prov: \"cryptojs\" }); return b.digestString(a) }; this.sha256Hex = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"sha256\", prov: \"cryptojs\" }); return b.digestHex(a) }; this.sha512 = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"sha512\", prov: \"cryptojs\" }); return b.digestString(a) }; this.sha512Hex = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"sha512\", prov: \"cryptojs\" }); return b.digestHex(a) } }; KJUR.crypto.Util.md5 = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"md5\", prov: \"cryptojs\" }); return b.digestString(a) }; KJUR.crypto.Util.ripemd160 = function (a) { var b = new KJUR.crypto.MessageDigest({ alg: \"ripemd160\", prov: \"cryptojs\" }); return b.digestString(a) }; KJUR.crypto.Util.SECURERANDOMGEN = new SecureRandom(); KJUR.crypto.Util.getRandomHexOfNbytes = function (b) { var a = new Array(b); KJUR.crypto.Util.SECURERANDOMGEN.nextBytes(a); return BAtohex(a) }; KJUR.crypto.Util.getRandomBigIntegerOfNbytes = f
  926. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.crypto == \"undefined\" || !KJUR.crypto) { KJUR.crypto = {} } KJUR.crypto.ECDSA = function (h) { var e = \"secp256r1\"; var g = null; var b = null; var f = null; var a = new SecureRandom(); var d = null; this.type = \"EC\"; this.isPrivate = false; this.isPublic = false; function c(s, o, r, n) { var j = Math.max(o.bitLength(), n.bitLength()); var t = s.add2D(r); var q = s.curve.getInfinity(); for (var p = j - 1; p >= 0; --p) { q = q.twice2D(); q.z = BigInteger.ONE; if (o.testBit(p)) { if (n.testBit(p)) { q = q.add2D(t) } else { q = q.add2D(s) } } else { if (n.testBit(p)) { q = q.add2D(r) } } } return q } this.getBigRandom = function (i) { return new BigInteger(i.bitLength(), a).mod(i.subtract(BigInteger.ONE)).add(BigInteger.ONE) }; this.setNamedCurve = function (i) { this.ecparams = KJUR.crypto.ECParameterDB.getByName(i); this.prvKeyHex = null; this.pubKeyHex = null; this.curveName = i }; this.setPrivateKeyHex = function (i) { this.isPrivate = true; this.prvKeyHex = i }; this.setPublicKeyHex = function (i) { this.isPublic = true; this.pubKeyHex = i }; this.getPublicKeyXYHex = function () { var k = this.pubKeyHex; if (k.substr(0, 2) !== \"04\") { throw \"this method supports uncompressed format(04) only\" } var j = this.ecparams.keylen / 4; if (k.length !== 2 + j * 2) { throw \"malformed public key hex length\" } var i = {}; i.x = k.substr(2, j); i.y = k.substr(2 + j); return i }; this.getShortNISTPCurveName = function () { var i = this.curveName; if (i === \"secp256r1\" || i === \"NIST P-256\" || i === \"P-256\" || i === \"prime256v1\") { return \"P-256\" } if (i === \"secp384r1\" || i === \"NIST P-384\" || i === \"P-384\") { return \"P-384\" } return null }; this.generateKeyPairHex = function () { var k = this.ecparams.n; var n = this.getBigRandom(k); var l = this.ecparams.G.multiply(n); var q = l.getX().toBigInteger(); var o = l.getY().toBigInteger(); var i = this.ecparams.keylen / 4; var m = (\"0000000000\" + n.toString(16)).slice(-i); var r = (\"0000000000\" + q.toString(16)).slice(-i); var p = (\"0000000000\" + o.toString(16)).slice(-i); var j = \"04\" + r + p; this.setPrivateKeyHex(m); this.setPublicKeyHex(j); return { ecprvhex: m, ecpubhex: j } }; this.signWithMessageHash = function (i) { return this.signHex(i, this.prvKeyHex) }; this.signHex = function (o, j) { var t = new BigInteger(j, 16); var l = this.ecparams.n; var q = new BigInteger(o, 16); do { var m = this.getBigRandom(l); var u = this.ecparams.G; var p = u.multiply(m); var i = p.getX().toBigInteger().mod(l) } while (i.compareTo(BigInteger.ZERO) <= 0); var v = m.modInverse(l).multiply(q.add(t.multiply(i))).mod(l); return KJUR.crypto.ECDSA.biRSSigToASN1Sig(i, v) }; this.sign = function (m, u) { var q = u; var j = this.ecparams.n; var p = BigInteger.fromByteArrayUnsigned(m); do { var l = this.getBigRandom(j); var t = this.ecparams.G; var o = t.multiply(l); var i = o.getX().toBigInteger().mod(j) } while (i.compareTo(BigInteger.ZERO) <= 0); var v = l.modInverse(j).multiply(p.add(q.multiply(i))).mod(j); return this.serializeSig(i, v) }; this.verifyWithMessageHash = function (j, i) { return this.verifyHex(j, i, this.pubKeyHex) }; this.verifyHex = function (m, i, p) { var l, j; var o = KJUR.crypto.ECDSA.parseSigHex(i); l = o.r; j = o.s; var k; k = ECPointFp.decodeFromHex(this.ecparams.curve, p); var n = new BigInteger(m, 16); return this.verifyRaw(n, l, j, k) }; this.verify = function (o, p, j) { var l, i; if (Bitcoin.Util.isArray(p)) { var n = this.parseSig(p); l = n.r; i = n.s } else { if (\"object\" === typeof p && p.r && p.s) { l = p.r; i = p.s } else { throw \"Invalid value for signature\" } } var k; if (j instanceof ECPointFp) { k = j } else { if (Bitcoin.Util.isArray(j)) { k = ECPointFp.decodeFrom(this.ecparams.curve, j) } else { throw \"Invalid format for pubkey value, must be byte array or ECPointFp\" } } var m = BigInteger.fromByteArrayUnsigned(o); return this.verifyRaw(m, l, i, k) }; this.verifyRaw = function (o, i, w, m) { var l = this.ecparams.n; var u = this.ecparams.G;
  927. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.crypto == \"undefined\" || !KJUR.crypto) { KJUR.crypto = {} } KJUR.crypto.ECParameterDB = new function () { var b = {}; var c = {}; function a(d) { return new BigInteger(d, 16) } this.getByName = function (e) { var d = e; if (typeof c[d] != \"undefined\") { d = c[e] } if (typeof b[d] != \"undefined\") { return b[d] } throw \"unregistered EC curve name: \" + d }; this.regist = function (A, l, o, g, m, e, j, f, k, u, d, x) { b[A] = {}; var s = a(o); var z = a(g); var y = a(m); var t = a(e); var w = a(j); var r = new ECCurveFp(s, z, y); var q = r.decodePointHex(\"04\" + f + k); b[A][\"name\"] = A; b[A][\"keylen\"] = l; b[A][\"curve\"] = r; b[A][\"G\"] = q; b[A][\"n\"] = t; b[A][\"h\"] = w; b[A][\"oid\"] = d; b[A][\"info\"] = x; for (var v = 0; v < u.length; v++) { c[u[v]] = A } } }; KJUR.crypto.ECParameterDB.regist(\"secp128r1\", 128, \"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF\", \"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC\", \"E87579C11079F43DD824993C2CEE5ED3\", \"FFFFFFFE0000000075A30D1B9038A115\", \"1\", \"161FF7528B899B2D0C28607CA52C5B86\", \"CF5AC8395BAFEB13C02DA292DDED7A83\", [], \"\", \"secp128r1 : SECG curve over a 128 bit prime field\"); KJUR.crypto.ECParameterDB.regist(\"secp160k1\", 160, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73\", \"0\", \"7\", \"0100000000000000000001B8FA16DFAB9ACA16B6B3\", \"1\", \"3B4C382CE37AA192A4019E763036F4F5DD4D7EBB\", \"938CF935318FDCED6BC28286531733C3F03C4FEE\", [], \"\", \"secp160k1 : SECG curve over a 160 bit prime field\"); KJUR.crypto.ECParameterDB.regist(\"secp160r1\", 160, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC\", \"1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45\", \"0100000000000000000001F4C8F927AED3CA752257\", \"1\", \"4A96B5688EF573284664698968C38BB913CBFC82\", \"23A628553168947D59DCC912042351377AC5FB32\", [], \"\", \"secp160r1 : SECG curve over a 160 bit prime field\"); KJUR.crypto.ECParameterDB.regist(\"secp192k1\", 192, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37\", \"0\", \"3\", \"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D\", \"1\", \"DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D\", \"9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D\", []); KJUR.crypto.ECParameterDB.regist(\"secp192r1\", 192, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC\", \"64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1\", \"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831\", \"1\", \"188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012\", \"07192B95FFC8DA78631011ED6B24CDD573F977A11E794811\", []); KJUR.crypto.ECParameterDB.regist(\"secp224r1\", 224, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE\", \"B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D\", \"1\", \"B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21\", \"BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34\", []); KJUR.crypto.ECParameterDB.regist(\"secp256k1\", 256, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\", \"0\", \"7\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", \"1\", \"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798\", \"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8\", []); KJUR.crypto.ECParameterDB.regist(\"secp256r1\", 256, \"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF\", \"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC\", \"5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B\", \"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551\", \"1\", \"6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296\", \"4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5\", [\"NIST P-256\", \"P-256\", \"prime256v1\"]); KJUR.crypto.ECParameterDB.regist(\"secp384r1\", 384, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF00000000
  928. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.crypto == \"undefined\" || !KJUR.crypto) { KJUR.crypto = {} } KJUR.crypto.DSA = function () { this.p = null; this.q = null; this.g = null; this.y = null; this.x = null; this.type = \"DSA\"; this.isPrivate = false; this.isPublic = false; this.setPrivate = function (d, c, b, e, a) { this.isPrivate = true; this.p = d; this.q = c; this.g = b; this.y = e; this.x = a }; this.setPrivateHex = function (d, b, f, i, j) { var c, a, e, g, h; c = new BigInteger(d, 16); a = new BigInteger(b, 16); e = new BigInteger(f, 16); if (typeof i === \"string\" && i.length > 1) { g = new BigInteger(i, 16) } else { g = null } h = new BigInteger(j, 16); this.setPrivate(c, a, e, g, h) }; this.setPublic = function (c, b, a, d) { this.isPublic = true; this.p = c; this.q = b; this.g = a; this.y = d; this.x = null }; this.setPublicHex = function (f, e, d, g) { var b, a, h, c; b = new BigInteger(f, 16); a = new BigInteger(e, 16); h = new BigInteger(d, 16); c = new BigInteger(g, 16); this.setPublic(b, a, h, c) }; this.signWithMessageHash = function (d) { var c = this.p; var b = this.q; var f = this.g; var i = this.y; var j = this.x; var e = KJUR.crypto.Util.getRandomBigIntegerMinToMax(BigInteger.ONE.add(BigInteger.ONE), b.subtract(BigInteger.ONE)); var l = d.substr(0, b.bitLength() / 4); var h = new BigInteger(l, 16); var a = (f.modPow(e, c)).mod(b); var n = (e.modInverse(b).multiply(h.add(j.multiply(a)))).mod(b); var m = KJUR.asn1.ASN1Util.jsonToASN1HEX({ seq: [{ \"int\": { bigint: a } }, { \"int\": { bigint: n } }] }); return m }; this.verifyWithMessageHash = function (h, f) { var d = this.p; var b = this.q; var j = this.g; var l = this.y; var i = this.parseASN1Signature(f); var a = i[0]; var t = i[1]; var o = h.substr(0, b.bitLength() / 4); var k = new BigInteger(o, 16); if (BigInteger.ZERO.compareTo(a) > 0 || a.compareTo(b) > 0) { throw \"invalid DSA signature\" } if (BigInteger.ZERO.compareTo(t) >= 0 || t.compareTo(b) > 0) { throw \"invalid DSA signature\" } var m = t.modInverse(b); var e = k.multiply(m).mod(b); var c = a.multiply(m).mod(b); var n = j.modPow(e, d).multiply(l.modPow(c, d)).mod(d).mod(b); return n.compareTo(a) == 0 }; this.parseASN1Signature = function (a) { try { var d = new BigInteger(ASN1HEX.getVbyList(a, 0, [0], \"02\"), 16); var c = new BigInteger(ASN1HEX.getVbyList(a, 0, [1], \"02\"), 16); return [d, c] } catch (b) { throw \"malformed ASN.1 DSA signature\" } }; this.readPKCS5PrvKeyHex = function (c) { var b, a, f, g, i; var j = ASN1HEX; var d = j.getVbyList; if (j.isASN1HEX(c) === false) { throw \"not ASN.1 hex string\" } try { b = d(c, 0, [1], \"02\"); a = d(c, 0, [2], \"02\"); f = d(c, 0, [3], \"02\"); g = d(c, 0, [4], \"02\"); i = d(c, 0, [5], \"02\") } catch (e) { console.log(\"EXCEPTION:\" + e); throw \"malformed PKCS#1/5 plain DSA private key\" } this.setPrivateHex(b, a, f, g, i) }; this.readPKCS8PrvKeyHex = function (d) { var f, c, b, g; var e = ASN1HEX; var i = e.getVbyList; if (e.isASN1HEX(d) === false) { throw \"not ASN.1 hex string\" } try { f = i(d, 0, [1, 1, 0], \"02\"); c = i(d, 0, [1, 1, 1], \"02\"); b = i(d, 0, [1, 1, 2], \"02\"); g = i(d, 0, [2, 0], \"02\") } catch (a) { console.log(\"EXCEPTION:\" + a); throw \"malformed PKCS#8 plain DSA private key\" } this.setPrivateHex(f, c, b, null, g) }; this.readPKCS8PubKeyHex = function (d) { var f, c, b, g; var e = ASN1HEX; var i = e.getVbyList; if (e.isASN1HEX(d) === false) { throw \"not ASN.1 hex string\" } try { f = i(d, 0, [0, 1, 0], \"02\"); c = i(d, 0, [0, 1, 1], \"02\"); b = i(d, 0, [0, 1, 2], \"02\"); g = i(d, 0, [1, 0], \"02\") } catch (a) { console.log(\"EXCEPTION:\" + a); throw \"malformed PKCS#8 DSA public key\" } this.setPublicHex(f, c, b, g) }; this.readCertPubKeyHex = function (c, f) { if (f !== 5) { f = 6 } var b, a, g, i; var j = ASN1HEX; var d = j.getVbyList; if (j.isASN1HEX(c) === false) { throw \"not ASN.1 hex string\" } try { b = d(c, 0, [0, f, 0, 1, 0], \"02\"); a = d(c, 0, [0, f, 0, 1, 1], \"02\"); g = d(c, 0, [0, f, 0, 1, 2], \"02\"); i = d(c, 0, [0, f, 1, 0], \"02\")
  929. "var KEYUTIL = function () { var d = function (p, r, q) { return k(CryptoJS.AES, p, r, q) }; var e = function (p, r, q) { return k(CryptoJS.TripleDES, p, r, q) }; var a = function (p, r, q) { return k(CryptoJS.DES, p, r, q) }; var k = function (s, x, u, q) { var r = CryptoJS.enc.Hex.parse(x); var w = CryptoJS.enc.Hex.parse(u); var p = CryptoJS.enc.Hex.parse(q); var t = {}; t.key = w; t.iv = p; t.ciphertext = r; var v = s.decrypt(t, w, { iv: p }); return CryptoJS.enc.Hex.stringify(v) }; var l = function (p, r, q) { return g(CryptoJS.AES, p, r, q) }; var o = function (p, r, q) { return g(CryptoJS.TripleDES, p, r, q) }; var f = function (p, r, q) { return g(CryptoJS.DES, p, r, q) }; var g = function (t, y, v, q) { var s = CryptoJS.enc.Hex.parse(y); var x = CryptoJS.enc.Hex.parse(v); var p = CryptoJS.enc.Hex.parse(q); var w = t.encrypt(s, x, { iv: p }); var r = CryptoJS.enc.Hex.parse(w.toString()); var u = CryptoJS.enc.Base64.stringify(r); return u }; var i = { \"AES-256-CBC\": { proc: d, eproc: l, keylen: 32, ivlen: 16 }, \"AES-192-CBC\": { proc: d, eproc: l, keylen: 24, ivlen: 16 }, \"AES-128-CBC\": { proc: d, eproc: l, keylen: 16, ivlen: 16 }, \"DES-EDE3-CBC\": { proc: e, eproc: o, keylen: 24, ivlen: 8 }, \"DES-CBC\": { proc: a, eproc: f, keylen: 8, ivlen: 8 } }; var c = function (p) { return i[p][\"proc\"] }; var m = function (p) { var r = CryptoJS.lib.WordArray.random(p); var q = CryptoJS.enc.Hex.stringify(r); return q }; var n = function (v) { var w = {}; var q = v.match(new RegExp(\"DEK-Info: ([^,]+),([0-9A-Fa-f]+)\", \"m\")); if (q) { w.cipher = q[1]; w.ivsalt = q[2] } var p = v.match(new RegExp(\"-----BEGIN ([A-Z]+) PRIVATE KEY-----\")); if (p) { w.type = p[1] } var u = -1; var x = 0; if (v.indexOf(\"\\r\\n\\r\\n\") != -1) { u = v.indexOf(\"\\r\\n\\r\\n\"); x = 2 } if (v.indexOf(\"\\n\\n\") != -1) { u = v.indexOf(\"\\n\\n\"); x = 1 } var t = v.indexOf(\"-----END\"); if (u != -1 && t != -1) { var r = v.substring(u + x * 2, t - x); r = r.replace(/\\s+/g, \"\"); w.data = r } return w }; var j = function (q, y, p) { var v = p.substring(0, 16); var t = CryptoJS.enc.Hex.parse(v); var r = CryptoJS.enc.Utf8.parse(y); var u = i[q][\"keylen\"] + i[q][\"ivlen\"]; var x = \"\"; var w = null; for (; ;) { var s = CryptoJS.algo.MD5.create(); if (w != null) { s.update(w) } s.update(r); s.update(t); w = s.finalize(); x = x + CryptoJS.enc.Hex.stringify(w); if (x.length >= u * 2) { break } } var z = {}; z.keyhex = x.substr(0, i[q][\"keylen\"] * 2); z.ivhex = x.substr(i[q][\"keylen\"] * 2, i[q][\"ivlen\"] * 2); return z }; var b = function (p, v, r, w) { var s = CryptoJS.enc.Base64.parse(p); var q = CryptoJS.enc.Hex.stringify(s); var u = i[v][\"proc\"]; var t = u(q, r, w); return t }; var h = function (p, s, q, u) { var r = i[s][\"eproc\"]; var t = r(p, q, u); return t }; return { version: \"1.0.0\", parsePKCS5PEM: function (p) { return n(p) }, getKeyAndUnusedIvByPasscodeAndIvsalt: function (q, p, r) { return j(q, p, r) }, decryptKeyB64: function (p, r, q, s) { return b(p, r, q, s) }, getDecryptedKeyHex: function (y, x) { var q = n(y); var t = q.type; var r = q.cipher; var p = q.ivsalt; var s = q.data; var w = j(r, x, p); var v = w.keyhex; var u = b(s, r, v, p); return u }, getEncryptedPKCS5PEMFromPrvKeyHex: function (x, s, A, t, r) { var p = \"\"; if (typeof t == \"undefined\" || t == null) { t = \"AES-256-CBC\" } if (typeof i[t] == \"undefined\") { throw \"KEYUTIL unsupported algorithm: \" + t } if (typeof r == \"undefined\" || r == null) { var v = i[t][\"ivlen\"]; var u = m(v); r = u.toUpperCase() } var z = j(t, A, r); var y = z.keyhex; var w = h(s, t, y, r); var q = w.replace(/(.{64})/g, \"$1\\r\\n\"); var p = \"-----BEGIN \" + x + \" PRIVATE KEY-----\\r\\n\"; p += \"Proc-Type: 4,ENCRYPTED\\r\\n\"; p += \"DEK-Info: \" + t + \",\" + r + \"\\r\\n\"; p += \"\\r\\n\"; p += q; p += \"\\r\\n-----END \" + x + \" PRIVATE KEY-----\\r\\n\"; return p }, parseHexOfEncryptedPKCS8: function (y) { var B = ASN1HEX; var z = B.getChildIdx; var w = B.getV; var t = {}; var r = z(y, 0); if (r.length != 2) { throw \"malformed format: SEQUENCE(0).i
  930. "RSAKey.getPosArrayOfChildrenFromHex = function (a) { return ASN1HEX.getChildIdx(a, 0) }; RSAKey.getHexValueArrayOfChildrenFromHex = function (f) { var n = ASN1HEX; var i = n.getV; var k = RSAKey.getPosArrayOfChildrenFromHex(f); var e = i(f, k[0]); var j = i(f, k[1]); var b = i(f, k[2]); var c = i(f, k[3]); var h = i(f, k[4]); var g = i(f, k[5]); var m = i(f, k[6]); var l = i(f, k[7]); var d = i(f, k[8]); var k = new Array(); k.push(e, j, b, c, h, g, m, l, d); return k }; RSAKey.prototype.readPrivateKeyFromPEMString = function (d) { var c = pemtohex(d); var b = RSAKey.getHexValueArrayOfChildrenFromHex(c); this.setPrivateEx(b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]) }; RSAKey.prototype.readPKCS5PrvKeyHex = function (c) { var b = RSAKey.getHexValueArrayOfChildrenFromHex(c); this.setPrivateEx(b[1], b[2], b[3], b[4], b[5], b[6], b[7], b[8]) }; RSAKey.prototype.readPKCS8PrvKeyHex = function (e) { var c, j, l, b, a, f, d, k; var m = ASN1HEX; var g = m.getVbyList; if (m.isASN1HEX(e) === false) { throw \"not ASN.1 hex string\" } try { c = g(e, 0, [2, 0, 1], \"02\"); j = g(e, 0, [2, 0, 2], \"02\"); l = g(e, 0, [2, 0, 3], \"02\"); b = g(e, 0, [2, 0, 4], \"02\"); a = g(e, 0, [2, 0, 5], \"02\"); f = g(e, 0, [2, 0, 6], \"02\"); d = g(e, 0, [2, 0, 7], \"02\"); k = g(e, 0, [2, 0, 8], \"02\") } catch (i) { throw \"malformed PKCS#8 plain RSA private key\" } this.setPrivateEx(c, j, l, b, a, f, d, k) }; RSAKey.prototype.readPKCS5PubKeyHex = function (c) { var e = ASN1HEX; var b = e.getV; if (e.isASN1HEX(c) === false) { throw \"keyHex is not ASN.1 hex string\" } var a = e.getChildIdx(c, 0); if (a.length !== 2 || c.substr(a[0], 2) !== \"02\" || c.substr(a[1], 2) !== \"02\") { throw \"wrong hex for PKCS#5 public key\" } var f = b(c, a[0]); var d = b(c, a[1]); this.setPublic(f, d) }; RSAKey.prototype.readPKCS8PubKeyHex = function (b) { var c = ASN1HEX; if (c.isASN1HEX(b) === false) { throw \"not ASN.1 hex string\" } if (c.getTLVbyList(b, 0, [0, 0]) !== \"06092a864886f70d010101\") { throw \"not PKCS8 RSA public key\" } var a = c.getTLVbyList(b, 0, [1, 0]); this.readPKCS5PubKeyHex(a) }; RSAKey.prototype.readCertPubKeyHex = function (b, d) { var a, c; a = new X509(); a.readCertHex(b); c = a.getPublicKeyHex(); this.readPKCS8PubKeyHex(c) };",
  931. "var _RE_HEXDECONLY = new RegExp(\"\"); _RE_HEXDECONLY.compile(\"[^0-9a-f]\", \"gi\"); function _rsasign_getHexPaddedDigestInfoForString(d, e, a) { var b = function (f) { return KJUR.crypto.Util.hashString(f, a) }; var c = b(d); return KJUR.crypto.Util.getPaddedDigestInfoHex(c, a, e) } function _zeroPaddingOfSignature(e, d) { var c = \"\"; var a = d / 4 - e.length; for (var b = 0; b < a; b++) { c = c + \"0\" } return c + e } RSAKey.prototype.sign = function (d, a) { var b = function (e) { return KJUR.crypto.Util.hashString(e, a) }; var c = b(d); return this.signWithMessageHash(c, a) }; RSAKey.prototype.signWithMessageHash = function (e, c) { var f = KJUR.crypto.Util.getPaddedDigestInfoHex(e, c, this.n.bitLength()); var b = parseBigInt(f, 16); var d = this.doPrivate(b); var a = d.toString(16); return _zeroPaddingOfSignature(a, this.n.bitLength()) }; function pss_mgf1_str(c, a, e) { var b = \"\", d = 0; while (b.length < a) { b += hextorstr(e(rstrtohex(c + String.fromCharCode.apply(String, [(d & 4278190080) >> 24, (d & 16711680) >> 16, (d & 65280) >> 8, d & 255])))); d += 1 } return b } RSAKey.prototype.signPSS = function (e, a, d) { var c = function (f) { return KJUR.crypto.Util.hashHex(f, a) }; var b = c(rstrtohex(e)); if (d === undefined) { d = -1 } return this.signWithMessageHashPSS(b, a, d) }; RSAKey.prototype.signWithMessageHashPSS = function (l, a, k) { var b = hextorstr(l); var g = b.length; var m = this.n.bitLength() - 1; var c = Math.ceil(m / 8); var d; var o = function (i) { return KJUR.crypto.Util.hashHex(i, a) }; if (k === -1 || k === undefined) { k = g } else { if (k === -2) { k = c - g - 2 } else { if (k < -2) { throw \"invalid salt length\" } } } if (c < (g + k + 2)) { throw \"data too long\" } var f = \"\"; if (k > 0) { f = new Array(k); new SecureRandom().nextBytes(f); f = String.fromCharCode.apply(String, f) } var n = hextorstr(o(rstrtohex(\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\" + b + f))); var j = []; for (d = 0; d < c - k - g - 2; d += 1) { j[d] = 0 } var e = String.fromCharCode.apply(String, j) + \"\\x01\" + f; var h = pss_mgf1_str(n, e.length, o); var q = []; for (d = 0; d < e.length; d += 1) { q[d] = e.charCodeAt(d) ^ h.charCodeAt(d) } var p = (65280 >> (8 * c - m)) & 255; q[0] &= ~p; for (d = 0; d < g; d++) { q.push(n.charCodeAt(d)) } q.push(188); return _zeroPaddingOfSignature(this.doPrivate(new BigInteger(q)).toString(16), this.n.bitLength()) }; function _rsasign_getDecryptSignatureBI(a, d, c) { var b = new RSAKey(); b.setPublic(d, c); var e = b.doPublic(a); return e } function _rsasign_getHexDigestInfoFromSig(a, c, b) { var e = _rsasign_getDecryptSignatureBI(a, c, b); var d = e.toString(16).replace(/^1f+00/, \"\"); return d } function _rsasign_getAlgNameAndHashFromHexDisgestInfo(f) { for (var e in KJUR.crypto.Util.DIGESTINFOHEAD) { var d = KJUR.crypto.Util.DIGESTINFOHEAD[e]; var b = d.length; if (f.substring(0, b) == d) { var c = [e, f.substring(b)]; return c } } return [] } RSAKey.prototype.verify = function (f, j) { j = j.replace(_RE_HEXDECONLY, \"\"); j = j.replace(/[ \\n]+/g, \"\"); var b = parseBigInt(j, 16); if (b.bitLength() > this.n.bitLength()) { return 0 } var i = this.doPublic(b); var e = i.toString(16).replace(/^1f+00/, \"\"); var g = _rsasign_getAlgNameAndHashFromHexDisgestInfo(e); if (g.length == 0) { return false } var d = g[0]; var h = g[1]; var a = function (k) { return KJUR.crypto.Util.hashString(k, d) }; var c = a(f); return (h == c) }; RSAKey.prototype.verifyWithMessageHash = function (e, a) { a = a.replace(_RE_HEXDECONLY, \"\"); a = a.replace(/[ \\n]+/g, \"\"); var b = parseBigInt(a, 16); if (b.bitLength() > this.n.bitLength()) { return 0 } var h = this.doPublic(b); var g = h.toString(16).replace(/^1f+00/, \"\"); var c = _rsasign_getAlgNameAndHashFromHexDisgestInfo(g); if (c.length == 0) { return false } var d = c[0]; var f = c[1]; return (f == e) }; RSAKey.prototype.verifyPSS = function (c, b, a, f) { var e = function (g) { return KJUR.crypto.Util.hashHex(g, a) }; var d = e(rstrtohex(c)); if (f === undefined) { f = -1 } return this.verifyWithMessageHashPSS(d, b,
  932. "function X509() { var k = ASN1HEX, j = k.getChildIdx, h = k.getV, b = k.getTLV, f = k.getVbyList, c = k.getTLVbyList, g = k.getIdxbyList, d = k.getVidx, i = k.oidname, a = X509, e = pemtohex; this.hex = null; this.version = 0; this.foffset = 0; this.aExtInfo = null; this.getVersion = function () { if (this.hex === null || this.version !== 0) { return this.version } if (c(this.hex, 0, [0, 0]) !== \"a003020102\") { this.version = 1; this.foffset = -1; return 1 } this.version = 3; return 3 }; this.getSerialNumberHex = function () { return f(this.hex, 0, [0, 1 + this.foffset], \"02\") }; this.getSignatureAlgorithmField = function () { return i(f(this.hex, 0, [0, 2 + this.foffset, 0], \"06\")) }; this.getIssuerHex = function () { return c(this.hex, 0, [0, 3 + this.foffset], \"30\") }; this.getIssuerString = function () { return a.hex2dn(this.getIssuerHex()) }; this.getSubjectHex = function () { return c(this.hex, 0, [0, 5 + this.foffset], \"30\") }; this.getSubjectString = function () { return a.hex2dn(this.getSubjectHex()) }; this.getNotBefore = function () { var l = f(this.hex, 0, [0, 4 + this.foffset, 0]); l = l.replace(/(..)/g, \"%$1\"); l = decodeURIComponent(l); return l }; this.getNotAfter = function () { var l = f(this.hex, 0, [0, 4 + this.foffset, 1]); l = l.replace(/(..)/g, \"%$1\"); l = decodeURIComponent(l); return l }; this.getPublicKeyHex = function () { return k.getTLVbyList(this.hex, 0, [0, 6 + this.foffset], \"30\") }; this.getPublicKeyIdx = function () { return g(this.hex, 0, [0, 6 + this.foffset], \"30\") }; this.getPublicKeyContentIdx = function () { var l = this.getPublicKeyIdx(); return g(this.hex, l, [1, 0], \"30\") }; this.getPublicKey = function () { return KEYUTIL.getKey(this.getPublicKeyHex(), null, \"pkcs8pub\") }; this.getSignatureAlgorithmName = function () { return i(f(this.hex, 0, [1, 0], \"06\")) }; this.getSignatureValueHex = function () { return f(this.hex, 0, [2], \"03\", true) }; this.verifySignature = function (n) { var o = this.getSignatureAlgorithmName(); var l = this.getSignatureValueHex(); var m = c(this.hex, 0, [0], \"30\"); var p = new KJUR.crypto.Signature({ alg: o }); p.init(n); p.updateHex(m); return p.verify(l) }; this.parseExt = function () { if (this.version !== 3) { return -1 } var p = g(this.hex, 0, [0, 7, 0], \"30\"); var m = j(this.hex, p); this.aExtInfo = new Array(); for (var n = 0; n < m.length; n++) { var q = {}; q.critical = false; var l = j(this.hex, m[n]); var r = 0; if (l.length === 3) { q.critical = true; r = 1 } q.oid = k.hextooidstr(f(this.hex, m[n], [0], \"06\")); var o = g(this.hex, m[n], [1 + r]); q.vidx = d(this.hex, o); this.aExtInfo.push(q) } }; this.getExtInfo = function (n) { var l = this.aExtInfo; var o = n; if (!n.match(/^[0-9.]+$/)) { o = KJUR.asn1.x509.OID.name2oid(n) } if (o === \"\") { return undefined } for (var m = 0; m < l.length; m++) { if (l[m].oid === o) { return l[m] } } return undefined }; this.getExtBasicConstraints = function () { var n = this.getExtInfo(\"basicConstraints\"); if (n === undefined) { return n } var l = h(this.hex, n.vidx); if (l === \"\") { return {} } if (l === \"0101ff\") { return { cA: true } } if (l.substr(0, 8) === \"0101ff02\") { var o = h(l, 6); var m = parseInt(o, 16); return { cA: true, pathLen: m } } throw \"basicConstraints parse error\" }; this.getExtKeyUsageBin = function () { var o = this.getExtInfo(\"keyUsage\"); if (o === undefined) { return \"\" } var m = h(this.hex, o.vidx); if (m.length % 2 != 0 || m.length <= 2) { throw \"malformed key usage value\" } var l = parseInt(m.substr(0, 2)); var n = parseInt(m.substr(2), 16).toString(2); return n.substr(0, n.length - l) }; this.getExtKeyUsageString = function () { var n = this.getExtKeyUsageBin(); var l = new Array(); for (var m = 0; m < n.length; m++) { if (n.substr(m, 1) == \"1\") { l.push(X509.KEYUSAGE_NAME[m]) } } return l.join(\",\") }; this.getExtSubjectKeyIdentifier = function () { var l = this.getExtInfo(\"subjectKeyIdentifier\"); if (l === undefined) { return l } return h(this.hex, l.vidx) }; this.getExtAuthorityKeyIdentifier = function () { va
  933. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.jws == \"undefined\" || !KJUR.jws) { KJUR.jws = {} } KJUR.jws.JWS = function () { var b = KJUR, a = b.jws.JWS, c = a.isSafeJSONString; this.parseJWS = function (g, j) { if ((this.parsedJWS !== undefined) && (j || (this.parsedJWS.sigvalH !== undefined))) { return } var i = g.match(/^([^.]+)\\.([^.]+)\\.([^.]+)$/); if (i == null) { throw \"JWS signature is not a form of 'Head.Payload.SigValue'.\" } var k = i[1]; var e = i[2]; var l = i[3]; var n = k + \".\" + e; this.parsedJWS = {}; this.parsedJWS.headB64U = k; this.parsedJWS.payloadB64U = e; this.parsedJWS.sigvalB64U = l; this.parsedJWS.si = n; if (!j) { var h = b64utohex(l); var f = parseBigInt(h, 16); this.parsedJWS.sigvalH = h; this.parsedJWS.sigvalBI = f } var d = b64utoutf8(k); var m = b64utoutf8(e); this.parsedJWS.headS = d; this.parsedJWS.payloadS = m; if (!c(d, this.parsedJWS, \"headP\")) { throw \"malformed JSON string for JWS Head: \" + d } } }; KJUR.jws.JWS.sign = function (i, v, y, z, a) { var w = KJUR, m = w.jws, q = m.JWS, g = q.readSafeJSONString, p = q.isSafeJSONString, d = w.crypto, k = d.ECDSA, o = d.Mac, c = d.Signature, t = JSON; var s, j, n; if (typeof v != \"string\" && typeof v != \"object\") { throw \"spHeader must be JSON string or object: \" + v } if (typeof v == \"object\") { j = v; s = t.stringify(j) } if (typeof v == \"string\") { s = v; if (!p(s)) { throw \"JWS Head is not safe JSON string: \" + s } j = g(s) } n = y; if (typeof y == \"object\") { n = t.stringify(y) } if ((i == \"\" || i == null) && j.alg !== undefined) { i = j.alg } if ((i != \"\" && i != null) && j.alg === undefined) { j.alg = i; s = t.stringify(j) } if (i !== j.alg) { throw \"alg and sHeader.alg doesn't match: \" + i + \"!=\" + j.alg } var r = null; if (q.jwsalg2sigalg[i] === undefined) { throw \"unsupported alg name: \" + i } else { r = q.jwsalg2sigalg[i] } var e = utf8tob64u(s); var l = utf8tob64u(n); var b = e + \".\" + l; var x = \"\"; if (r.substr(0, 4) == \"Hmac\") { if (z === undefined) { throw \"mac key shall be specified for HS* alg\" } var h = new o({ alg: r, prov: \"cryptojs\", pass: z }); h.updateString(b); x = h.doFinal() } else { if (r.indexOf(\"withECDSA\") != -1) { var f = new c({ alg: r }); f.init(z, a); f.updateString(b); hASN1Sig = f.sign(); x = KJUR.crypto.ECDSA.asn1SigToConcatSig(hASN1Sig) } else { if (r != \"none\") { var f = new c({ alg: r }); f.init(z, a); f.updateString(b); x = f.sign() } } } var u = hextob64u(x); return b + \".\" + u }; KJUR.jws.JWS.verify = function (w, B, n) { var x = KJUR, q = x.jws, t = q.JWS, i = t.readSafeJSONString, e = x.crypto, p = e.ECDSA, s = e.Mac, d = e.Signature, m; if (typeof RSAKey !== undefined) { m = RSAKey } var y = w.split(\".\"); if (y.length !== 3) { return false } var f = y[0]; var r = y[1]; var c = f + \".\" + r; var A = b64utohex(y[2]); var l = i(b64utoutf8(y[0])); var k = null; var z = null; if (l.alg === undefined) { throw \"algorithm not specified in header\" } else { k = l.alg; z = k.substr(0, 2) } if (n != null && Object.prototype.toString.call(n) === \"[object Array]\" && n.length > 0) { var b = \":\" + n.join(\":\") + \":\"; if (b.indexOf(\":\" + k + \":\") == -1) { throw \"algorithm '\" + k + \"' not accepted in the list\" } } if (k != \"none\" && B === null) { throw \"key shall be specified to verify.\" } if (typeof B == \"string\" && B.indexOf(\"-----BEGIN \") != -1) { B = KEYUTIL.getKey(B) } if (z == \"RS\" || z == \"PS\") { if (!(B instanceof m)) { throw \"key shall be a RSAKey obj for RS* and PS* algs\" } } if (z == \"ES\") { if (!(B instanceof p)) { throw \"key shall be a ECDSA obj for ES* algs\" } } if (k == \"none\") { } var u = null; if (t.jwsalg2sigalg[l.alg] === undefined) { throw \"unsupported alg name: \" + k } else { u = t.jwsalg2sigalg[k] } if (u == \"none\") { throw \"not supported\" } else { if (u.substr(0, 4) == \"Hmac\") { var o = null; if (B === undefined) { throw \"hexadecimal key shall be specified for HMAC\" } var j = new s({ alg: u, pass: B }); j.updateString(c); o = j.doFinal(); return A == o } e
  934. "if (typeof KJUR == \"undefined\" || !KJUR) { KJUR = {} } if (typeof KJUR.jws == \"undefined\" || !KJUR.jws) { KJUR.jws = {} } KJUR.jws.JWSJS = function () { var c = KJUR, b = c.jws, a = b.JWS, d = a.readSafeJSONString; this.aHeader = []; this.sPayload = \"\"; this.aSignature = []; this.init = function () { this.aHeader = []; this.sPayload = undefined; this.aSignature = [] }; this.initWithJWS = function (f) { this.init(); var e = f.split(\".\"); if (e.length != 3) { throw \"malformed input JWS\" } this.aHeader.push(e[0]); this.sPayload = e[1]; this.aSignature.push(e[2]) }; this.addSignature = function (e, h, m, k) { if (this.sPayload === undefined || this.sPayload === null) { throw \"there's no JSON-JS signature to add.\" } var l = this.aHeader.length; if (this.aHeader.length != this.aSignature.length) { throw \"aHeader.length != aSignature.length\" } try { var f = KJUR.jws.JWS.sign(e, h, this.sPayload, m, k); var j = f.split(\".\"); var n = j[0]; var g = j[2]; this.aHeader.push(j[0]); this.aSignature.push(j[2]) } catch (i) { if (this.aHeader.length > l) { this.aHeader.pop() } if (this.aSignature.length > l) { this.aSignature.pop() } throw \"addSignature failed: \" + i } }; this.verifyAll = function (h) { if (this.aHeader.length !== h.length || this.aSignature.length !== h.length) { return false } for (var g = 0; g < h.length; g++) { var f = h[g]; if (f.length !== 2) { return false } var e = this.verifyNth(g, f[0], f[1]); if (e === false) { return false } } return true }; this.verifyNth = function (f, j, g) { if (this.aHeader.length <= f || this.aSignature.length <= f) { return false } var h = this.aHeader[f]; var k = this.aSignature[f]; var l = h + \".\" + this.sPayload + \".\" + k; var e = false; try { e = a.verify(l, j, g) } catch (i) { return false } return e }; this.readJWSJS = function (g) { if (typeof g === \"string\") { var f = d(g); if (f == null) { throw \"argument is not safe JSON object string\" } this.aHeader = f.headers; this.sPayload = f.payload; this.aSignature = f.signatures } else { try { if (g.headers.length > 0) { this.aHeader = g.headers } else { throw \"malformed header\" } if (typeof g.payload === \"string\") { this.sPayload = g.payload } else { throw \"malformed signatures\" } if (g.signatures.length > 0) { this.aSignatures = g.signatures } else { throw \"malformed signatures\" } } catch (e) { throw \"malformed JWS-JS JSON object: \" + e } } }; this.getJSON = function () { return { headers: this.aHeader, payload: this.sPayload, signatures: this.aSignature } }; this.isEmpty = function () { if (this.aHeader.length == 0) { return 1 } return 0 } };",
  935. "",
  936. "function signature_RSA2(content, key) {",
  937. " key = key.replace(new RegExp(\"[\\n\\r\\t ]\", \"g\"), \"\");",
  938. " key = key.replace(new RegExp(\"(-+[^-]+-+)([^-]+)(-+[^-]+-+)\", \"g\"), \"$2\");",
  939. " try {",
  940. " key = `-----BEGIN PRIVATE KEY-----${key}-----END PRIVATE KEY-----`;",
  941. " let signature = new KJUR.crypto.Signature({ \"alg\": \"SHA256withRSA\", \"prov\": \"cryptojs/jsrsa\", \"prvkeypem\": key });",
  942. " signature.updateString(content);",
  943. " return hextob64(signature.sign());",
  944. " } catch (e) {",
  945. " let rsa = new RSAKey();",
  946. " rsa.readPrivateKeyFromPEMString(key);",
  947. " let sign = rsa.sign(content, \"sha256\");",
  948. " return hextob64(sign);",
  949. " }",
  950. "}",
  951. "",
  952. "pm.environment.set(\"auto\", new Date(new Date().getTime() + 3600000 * 8).toISOString().replace(new RegExp(\"[^\\\\d]\", \"g\"), \"\"));",
  953. "let request_time = new Date(new Date().getTime() + 3600000 * 8).toISOString().replace(new RegExp(\"([^\\\\.]+)\\\\..*\"), \"$1\") + \"+08:00\";",
  954. "pm.environment.set(\"request_time\", request_time);",
  955. "let path = \"/\" + pm.request.url.path.join(\"/\");",
  956. "let client_id = pm.variables.get(\"client_id\");",
  957. "let request_body = pm.request.body.raw.replace(new RegExp(\"\\\\{\\\\{([^{}]+)\\\\}\\\\}\", \"g\"), function (a, b) {",
  958. " if (pm.globals.get(b)) {",
  959. " return pm.globals.get(b);",
  960. " } else if (pm.environment.get(b)) {",
  961. " return pm.environment.get(b);",
  962. " } else if (pm.variables.get(b)) {",
  963. " return pm.variables.get(b);",
  964. " } else {",
  965. " return a;",
  966. " }",
  967. "});",
  968. "let preSignString = \"POST \" + path + \"\\n\" + client_id + \".\" + request_time + \".\" + request_body;",
  969. "let private_key = pm.variables.get(\"private_key\");",
  970. "let sign = encodeURIComponent(signature_RSA2(preSignString, private_key));",
  971. "pm.environment.set(\"sign\", sign);"
  972. ]
  973. }
  974. },
  975. {
  976. "listen": "test",
  977. "script": {
  978. "type": "text/javascript",
  979. "exec": [
  980. "pm.variables.get(\"variable_key\");"
  981. ]
  982. }
  983. }
  984. ],
  985. "variable": [
  986. {
  987. "key": "private_key",
  988. "value": "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDyLMnsV55WZdZd\nrXqrw5u3mfMrPbm4SbrK4xrHWCLBgw9gfv7wj26tw2GPDfSHQl/1qTP3m4NuKQFJ\nqJ0gg0YY2CZyabMN5BvkX6EZziwPahDlwsjok0tri8njH44wibgjrI6qAA0itfr+\n8/era2uPz6nUmoCDeRSH/60RajK0lEtakLXFHhSNAv7KDJEPaikhDyXuVxKRi6jw\njIEhhjZjziCYvK2q/4snoMTQk/ctm2ZxlgEueUpm5UTibiDAcwzh7UgR7+7wLlvE\nB9q1dETUASWFECdKXP2aK6ujMn4U8s71DxCDZAhOfiAvDjH+QjpZSFRaSIpShPQZ\nrbc//rn3AgMBAAECggEBAK51rZFhHWPIQUGC89hBNjBx60e/U8d69eGq8WOiDoex\nTqaJVkceTPFIy0MvHnVCT7a9if5aPbhiOddCbM87QogrTqclliPvrFg8u+XHLN59\n3mZmiC1jzvVO4sWHufsle03XxX6aQtw6lPKN9mG7JOWZCBNsqiAMXcoLWjYtdxG2\nTEKT/Pkf4JQ4mO0GiJA/DBYe5CpeH1gsBOMC6iC1NaRDUgGFT0LqTNzqZrHYNjdg\nMBFBxphHtNPhybWFXHNP47zGFeqksvS/pNG40zldPehishLRzN3u0QO43tYQ8yyY\nAugP6bWQ/tLLD8ItOebk0EGePpchr4jRzuOhvEqlo+ECgYEA+izi/Pme4chGJMi6\nP1v4gyiM+ui2SKDSUZl4Bld9skwdt8gtRRGVQjpia00YOZU8vJtcnMrwBOByWFag\nhcr3vMAFWABKSYTmu2J/3OL4BTp298NT3uP6M9IpGggYA57E8KK7HkA4VZ/Nawgo\nIPazLHL6Zi2mAjYyFmm4xxDg1WUCgYEA99A3tlaFdRKNinCMOKJ2l3nTgznYADHc\nV5WAz+D2ag6pPVg1nDgFc7ljYCY0A2/zCyvHZLmFr9PB6H5ykG+XV0PA1sDiG4gc\n0yYBr4L4L4TjX7iPwZR/0Hg0WpBeS12WeqiMuDaptha5XprCFVhWTDjGkNDSePU1\n3mq+Fg06OisCgYB284rGEAZsgmZfrRVpdNh3vHsz/hxV8imuZNM96LG6ahijPsnP\nkmmuwMX1EQYYsw3a++AQKSnwl6umtyHCG9ypYX/o9NJdnJR8unvjUgPtsHvKmJQz\nYaCgrSef2gNZDU/EvwtLeeuPQtlQL+OssMBGvTC0DrZlTNGJ+KDD/hF5RQKBgAgM\n4pJw0xsPhDuYFmYMmQ+orH9Z1LOE6ySJPcsDAt5FJahRgkRV6Y9t2VWZSB1IeLvH\nK04RXM9ucKEt4mjgxyjVkaEoWPAOBumxFWLvPULF7WEBrOHcAh7ymLjMcdO+8ZGA\ngjnFxNOef10cZ+url/oX6hNwRTYauSpFi3FJ8rdLAoGAC5BKhBLzvD4kCyFOF7yG\nVVJAn61T5IV3TMb+hT5LeeOWkY9adOvktZeTTW3ir7v3wJgdjdnbJEeivoMYS7h5\nGoXXbOLf+dvnGyYl+eQDZROqYdicQP8ZdJLuwR4YUK+A7LDkffRJ7dZcxBYlUZXm\nsOSne6bVc+pNZq44b8daSGQ="
  989. },
  990. {
  991. "key": "client_id",
  992. "value": "SANDBOX_5Y3A5W2YEMT604244\n"
  993. }
  994. ]
  995. }