orion-design 0.1.49 → 0.1.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/dist/base64-KVpG-D_n.js +103 -0
  2. package/dist/base64-KVpG-D_n.js.map +1 -0
  3. package/dist/components/Button/index.d.ts +2 -41
  4. package/dist/components/Card/index.d.ts +1 -3
  5. package/dist/components/Form/FileInput/FileInput.vue.d.ts +3 -100
  6. package/dist/components/Form/Form.vue.d.ts +2 -70
  7. package/dist/components/Form/LovInput/LovInput.vue.d.ts +21526 -1248
  8. package/dist/components/Form/TableSelect/TableSelect.vue.d.ts +21526 -1248
  9. package/dist/components/Form/index.d.ts +2 -38
  10. package/dist/components/Form/index.js +126 -127
  11. package/dist/components/Form/index.js.map +1 -1
  12. package/dist/components/LovTable/LovPagetable.vue.d.ts +2 -262
  13. package/dist/components/LovTable/LovQuerytable.vue.d.ts +2 -178
  14. package/dist/components/LovTable/index.d.ts +4 -233
  15. package/dist/components/Space/index.d.ts +1 -10
  16. package/dist/components/TableSelectPagetable/TableSelectPagetable.vue.d.ts +2 -262
  17. package/dist/components/TableSelectPagetable/index.d.ts +2 -136
  18. package/dist/components/Tabs/index.js +1 -1
  19. package/dist/components/Tree/Tree.vue.d.ts +2 -160
  20. package/dist/components/Tree/index.d.ts +2 -84
  21. package/dist/components/_util/dom/element.js +1 -1
  22. package/dist/components/_util/dom/style.js +1 -1
  23. package/dist/components/_util/error.js +1 -1
  24. package/dist/components/_util/functions.js +1 -1
  25. package/dist/components/_util/index.js +1 -1
  26. package/dist/components/_util/objects.js +1 -1
  27. package/dist/components/_util/strings.js +2 -2
  28. package/dist/components/_util/types.js +2 -2
  29. package/dist/components/_util/vue/install.js +1 -1
  30. package/dist/components/_util/vue/props/runtime.js +1 -1
  31. package/dist/components/_util/vue/refs.js +1 -1
  32. package/dist/components/_util/vue/vnode.js +1 -1
  33. package/dist/{functions-DzLqXvGt.js → functions-LOH6x_02.js} +2 -2
  34. package/dist/functions-LOH6x_02.js.map +1 -0
  35. package/dist/index-BW3nOBfD.js +714 -0
  36. package/dist/index-BW3nOBfD.js.map +1 -0
  37. package/dist/request/disivion/DivisionErrorHandler.d.ts +0 -2
  38. package/dist/request/disivion/DivisionErrorHandler.js +18 -28
  39. package/dist/request/disivion/DivisionErrorHandler.js.map +1 -1
  40. package/dist/request/disivion/index.d.ts +1 -0
  41. package/dist/request/disivion/index.js +73 -168
  42. package/dist/request/disivion/index.js.map +1 -1
  43. package/dist/request/error/ResponseError404.d.ts +7 -0
  44. package/dist/request/error/ResponseError404.js +10 -0
  45. package/dist/request/error/ResponseError404.js.map +1 -0
  46. package/dist/request/error/ResponseError500.d.ts +6 -0
  47. package/dist/request/error/ResponseError500.js +10 -0
  48. package/dist/request/error/ResponseError500.js.map +1 -0
  49. package/dist/request/error/{BizExceptionResponseError.d.ts → ResponseErrorBizException.d.ts} +1 -1
  50. package/dist/request/error/{BizExceptionResponseError.js → ResponseErrorBizException.js} +2 -2
  51. package/dist/request/error/ResponseErrorBizException.js.map +1 -0
  52. package/dist/request/error/{ExceptionResponseError.d.ts → ResponseErrorException.d.ts} +1 -1
  53. package/dist/request/error/{ExceptionResponseError.js → ResponseErrorException.js} +2 -2
  54. package/dist/request/error/ResponseErrorException.js.map +1 -0
  55. package/dist/request/error/{SessionExceptionResponseError.d.ts → ResponseErrorSessionException.d.ts} +1 -1
  56. package/dist/request/error/{SessionExceptionResponseError.js → ResponseErrorSessionException.js} +2 -2
  57. package/dist/request/error/{SessionExceptionResponseError.js.map → ResponseErrorSessionException.js.map} +1 -1
  58. package/dist/request/index.d.ts +12 -3
  59. package/dist/request/index.js +35 -11
  60. package/dist/request/index.js.map +1 -1
  61. package/dist/request/leaf7/Leaf7EncryptRequestParser.d.ts +8 -0
  62. package/dist/request/leaf7/Leaf7EncryptRequestParser.js +28 -0
  63. package/dist/request/leaf7/Leaf7EncryptRequestParser.js.map +1 -0
  64. package/dist/request/leaf7/Leaf7EncryptResponseParser.d.ts +8 -0
  65. package/dist/request/leaf7/Leaf7EncryptResponseParser.js +42 -0
  66. package/dist/request/leaf7/Leaf7EncryptResponseParser.js.map +1 -0
  67. package/dist/request/leaf7/Leaf7ErrorHandler.d.ts +7 -0
  68. package/dist/request/leaf7/Leaf7ErrorHandler.js +51 -0
  69. package/dist/request/leaf7/Leaf7ErrorHandler.js.map +1 -0
  70. package/dist/request/leaf7/Leaf7ResponseParser.d.ts +5 -0
  71. package/dist/request/leaf7/Leaf7ResponseParser.js +17 -0
  72. package/dist/request/leaf7/Leaf7ResponseParser.js.map +1 -0
  73. package/dist/request/leaf7/index.d.ts +20 -0
  74. package/dist/request/leaf7/index.js +130 -0
  75. package/dist/request/leaf7/index.js.map +1 -0
  76. package/dist/request/leaf7/smCrypto/sm2/asn1.d.ts +14 -0
  77. package/dist/request/leaf7/smCrypto/sm2/asn1.js +81 -0
  78. package/dist/request/leaf7/smCrypto/sm2/asn1.js.map +1 -0
  79. package/dist/request/leaf7/smCrypto/sm2/ec.d.ts +119 -0
  80. package/dist/request/leaf7/smCrypto/sm2/ec.js +199 -0
  81. package/dist/request/leaf7/smCrypto/sm2/ec.js.map +1 -0
  82. package/dist/request/leaf7/smCrypto/sm2/index.d.ts +45 -0
  83. package/dist/request/leaf7/smCrypto/sm2/index.js +102 -0
  84. package/dist/request/leaf7/smCrypto/sm2/index.js.map +1 -0
  85. package/dist/request/leaf7/smCrypto/sm2/sm3.d.ts +10 -0
  86. package/dist/request/leaf7/smCrypto/sm2/sm3.js +69 -0
  87. package/dist/request/leaf7/smCrypto/sm2/sm3.js.map +1 -0
  88. package/dist/request/leaf7/smCrypto/sm2/utils.d.ts +66 -0
  89. package/dist/request/leaf7/smCrypto/sm2/utils.js +91 -0
  90. package/dist/request/leaf7/smCrypto/sm2/utils.js.map +1 -0
  91. package/dist/request/leaf7/smCrypto/sm3/index.d.ts +1 -0
  92. package/dist/request/leaf7/smCrypto/sm3/index.js +45 -0
  93. package/dist/request/leaf7/smCrypto/sm3/index.js.map +1 -0
  94. package/dist/request/leaf7/smCrypto/sm4/index.d.ts +5 -0
  95. package/dist/request/leaf7/smCrypto/sm4/index.js +399 -0
  96. package/dist/request/leaf7/smCrypto/sm4/index.js.map +1 -0
  97. package/dist/request/leaf7/smCrypto/smCrypto.d.ts +3 -0
  98. package/dist/request/leaf7/smCrypto/smCrypto.js +9 -0
  99. package/dist/request/leaf7/smCrypto/smCrypto.js.map +1 -0
  100. package/dist/request/leaf7/types.d.ts +11 -0
  101. package/dist/request/leaf7/types.js +2 -0
  102. package/dist/request/leaf7/types.js.map +1 -0
  103. package/dist/request/utils/readBlob.d.ts +1 -0
  104. package/dist/request/utils/readBlob.js +12 -0
  105. package/dist/request/utils/readBlob.js.map +1 -0
  106. package/dist/utils/functions.js +1 -1
  107. package/dist/version/version.d.ts +1 -1
  108. package/dist/version/version.js +1 -1
  109. package/dist/version/version.js.map +1 -1
  110. package/package.json +2 -1
  111. package/dist/functions-DzLqXvGt.js.map +0 -1
  112. package/dist/request/error/BizExceptionResponseError.js.map +0 -1
  113. package/dist/request/error/ExceptionResponseError.js.map +0 -1
@@ -0,0 +1,102 @@
1
+ import { j as u } from "../../../../index-BW3nOBfD.js";
2
+ import v from "./asn1.js";
3
+ import e from "./utils.js";
4
+ import E from "./sm3.js";
5
+ const { sm3: I } = E, { encodeDer: k, decodeDer: C } = v, { G: h, curve: m, n: B } = e.generateEcparam(), p = 0;
6
+ function O(t, n, r = 1) {
7
+ t = typeof t == "string" ? e.hexToArray(e.utf8ToHex(t)) : Array.prototype.slice.call(t), n = e.getGlobalCurve().decodePointHex(n);
8
+ const d = e.generateKeyPairHex(), y = new u.BigInteger(d.privateKey, 16);
9
+ let i = d.publicKey;
10
+ i.length > 128 && (i = i.substr(i.length - 128));
11
+ const a = n.multiply(y), g = e.hexToArray(e.leftPad(a.getX().toBigInteger().toRadix(16), 64)), s = e.hexToArray(e.leftPad(a.getY().toBigInteger().toRadix(16), 64)), f = e.arrayToHex(I([].concat(g, t, s)));
12
+ let c = 1, o = 0, l = [];
13
+ const x = [].concat(g, s), P = () => {
14
+ l = I([...x, c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, c & 255]), c++, o = 0;
15
+ };
16
+ P();
17
+ for (let b = 0, T = t.length; b < T; b++)
18
+ o === l.length && P(), t[b] ^= l[o++] & 255;
19
+ const H = e.arrayToHex(t);
20
+ return r === p ? i + H + f : i + f + H;
21
+ }
22
+ function S(t, n, r = 1, { output: d = "string" } = {}) {
23
+ n = new u.BigInteger(n, 16);
24
+ let y = t.substr(128, 64), i = t.substr(192);
25
+ r === p && (y = t.substr(t.length - 64), i = t.substr(128, t.length - 128 - 64));
26
+ const a = e.hexToArray(i), s = e.getGlobalCurve().decodePointHex("04" + t.substr(0, 128)).multiply(n), f = e.hexToArray(e.leftPad(s.getX().toBigInteger().toRadix(16), 64)), c = e.hexToArray(e.leftPad(s.getY().toBigInteger().toRadix(16), 64));
27
+ let o = 1, l = 0, x = [];
28
+ const P = [].concat(f, c), H = () => {
29
+ x = I([...P, o >> 24 & 255, o >> 16 & 255, o >> 8 & 255, o & 255]), o++, l = 0;
30
+ };
31
+ H();
32
+ for (let T = 0, w = a.length; T < w; T++)
33
+ l === x.length && H(), a[T] ^= x[l++] & 255;
34
+ return e.arrayToHex(I([].concat(f, a, c))) === y.toLowerCase() ? d === "array" ? a : e.arrayToUtf8(a) : d === "array" ? [] : "";
35
+ }
36
+ function X(t, n, { pointPool: r, der: d, hash: y, publicKey: i, userId: a } = {}) {
37
+ let g = typeof t == "string" ? e.utf8ToHex(t) : e.arrayToHex(t);
38
+ y && (i = i || getPublicKeyFromPrivateKey(n), g = R(g, i, a));
39
+ const s = new u.BigInteger(n, 16), f = new u.BigInteger(g, 16);
40
+ let c = null, o = null, l = null;
41
+ do {
42
+ do {
43
+ let x;
44
+ r && r.length ? x = r.pop() : x = A(), c = x.k, o = f.add(x.x1).mod(B);
45
+ } while (o.equals(u.BigInteger.ZERO) || o.add(c).equals(B));
46
+ l = s.add(u.BigInteger.ONE).modInverse(B).multiply(c.subtract(o.multiply(s))).mod(B);
47
+ } while (l.equals(u.BigInteger.ZERO));
48
+ return d ? k(o, l) : e.leftPad(o.toString(16), 64) + e.leftPad(l.toString(16), 64);
49
+ }
50
+ function G(t, n, r, { der: d, hash: y, userId: i } = {}) {
51
+ let a = typeof t == "string" ? e.utf8ToHex(t) : e.arrayToHex(t);
52
+ y && (a = R(a, r, i));
53
+ let g, s;
54
+ if (d) {
55
+ const P = C(n);
56
+ g = P.r, s = P.s;
57
+ } else
58
+ g = new u.BigInteger(n.substring(0, 64), 16), s = new u.BigInteger(n.substring(64), 16);
59
+ const f = m.decodePointHex(r), c = new u.BigInteger(a, 16), o = g.add(s).mod(B);
60
+ if (o.equals(u.BigInteger.ZERO)) return !1;
61
+ const l = h.multiply(s).add(f.multiply(o)), x = c.add(l.getX().toBigInteger()).mod(B);
62
+ return g.equals(x);
63
+ }
64
+ function R(t, n, r = "1234567812345678") {
65
+ r = e.utf8ToHex(r);
66
+ const d = e.leftPad(h.curve.a.toBigInteger().toRadix(16), 64), y = e.leftPad(h.curve.b.toBigInteger().toRadix(16), 64), i = e.leftPad(h.getX().toBigInteger().toRadix(16), 64), a = e.leftPad(h.getY().toBigInteger().toRadix(16), 64);
67
+ let g, s;
68
+ if (n.length === 128)
69
+ g = n.substr(0, 64), s = n.substr(64, 64);
70
+ else {
71
+ const l = h.curve.decodePointHex(n);
72
+ g = e.leftPad(l.getX().toBigInteger().toRadix(16), 64), s = e.leftPad(l.getY().toBigInteger().toRadix(16), 64);
73
+ }
74
+ const f = e.hexToArray(r + d + y + i + a + g + s), c = r.length * 4;
75
+ f.unshift(c & 255), f.unshift(c >> 8 & 255);
76
+ const o = I(f);
77
+ return e.arrayToHex(I(o.concat(e.hexToArray(t))));
78
+ }
79
+ function _(t) {
80
+ const n = h.multiply(new u.BigInteger(t, 16)), r = e.leftPad(n.getX().toBigInteger().toString(16), 64), d = e.leftPad(n.getY().toBigInteger().toString(16), 64);
81
+ return "04" + r + d;
82
+ }
83
+ function A() {
84
+ const t = e.generateKeyPairHex(), n = m.decodePointHex(t.publicKey);
85
+ return t.k = new u.BigInteger(t.privateKey, 16), t.x1 = n.getX().toBigInteger(), t;
86
+ }
87
+ const z = {
88
+ generateKeyPairHex: e.generateKeyPairHex,
89
+ compressPublicKeyHex: e.compressPublicKeyHex,
90
+ comparePublicKeyHex: e.comparePublicKeyHex,
91
+ _s2EN: O,
92
+ _s2DE: S,
93
+ _s2DOSIG: X,
94
+ _s2DOVERSIG: G,
95
+ _s2GETPublicFPrivate: _,
96
+ getPoint: A,
97
+ verifyPublicKey: e.verifyPublicKey
98
+ };
99
+ export {
100
+ z as default
101
+ };
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/request/leaf7/smCrypto/sm2/index.ts"],"sourcesContent":["import { BigInteger } from 'jsbn'\r\nimport asn1 from './asn1'\r\nimport _ from './utils'\r\nimport SM3 from './sm3'\r\n\r\nconst { sm3 } = SM3\r\nconst { encodeDer, decodeDer } = asn1\r\n\r\nconst { G, curve, n } = _.generateEcparam()\r\nconst C1C2C3 = 0\r\n\r\n/**\r\n * 加密\r\n */\r\nfunction _s2EN(msg, publicKey, cipherMode = 1) {\r\n msg = typeof msg === 'string' ? _.hexToArray(_.utf8ToHex(msg)) : Array.prototype.slice.call(msg)\r\n publicKey = _.getGlobalCurve().decodePointHex(publicKey) // 先将公钥转成点\r\n\r\n const keypair = _.generateKeyPairHex()\r\n const k = new BigInteger(keypair.privateKey, 16) // 随机数 k\r\n\r\n // c1 = k * G\r\n let c1 = keypair.publicKey\r\n if (c1.length > 128) c1 = c1.substr(c1.length - 128)\r\n\r\n // (x2, y2) = k * publicKey\r\n const p = publicKey.multiply(k)\r\n const x2 = _.hexToArray(_.leftPad(p.getX().toBigInteger().toRadix(16), 64))\r\n const y2 = _.hexToArray(_.leftPad(p.getY().toBigInteger().toRadix(16), 64))\r\n\r\n // c3 = hash(x2 || msg || y2)\r\n const c3 = _.arrayToHex(sm3([].concat(x2, msg, y2)))\r\n\r\n let ct = 1\r\n let offset = 0\r\n let t = [] // 256 位\r\n const z = [].concat(x2, y2)\r\n const nextT = () => {\r\n // (1) Hai = hash(z || ct)\r\n // (2) ct++\r\n t = sm3([...z, (ct >> 24) & 0x00ff, (ct >> 16) & 0x00ff, (ct >> 8) & 0x00ff, ct & 0x00ff])\r\n ct++\r\n offset = 0\r\n }\r\n nextT() // 先生成 Ha1\r\n\r\n for (let i = 0, len = msg.length; i < len; i++) {\r\n // t = Ha1 || Ha2 || Ha3 || Ha4\r\n if (offset === t.length) nextT()\r\n\r\n // c2 = msg ^ t\r\n msg[i] ^= t[offset++] & 0xff\r\n }\r\n const c2 = _.arrayToHex(msg)\r\n\r\n return cipherMode === C1C2C3 ? c1 + c2 + c3 : c1 + c3 + c2\r\n}\r\n\r\n/**\r\n * 解密\r\n */\r\nfunction _s2DE(encryptData, privateKey, cipherMode = 1, { output = 'string' } = {}) {\r\n privateKey = new BigInteger(privateKey, 16)\r\n\r\n let c3 = encryptData.substr(128, 64)\r\n let c2 = encryptData.substr(128 + 64)\r\n\r\n if (cipherMode === C1C2C3) {\r\n c3 = encryptData.substr(encryptData.length - 64)\r\n c2 = encryptData.substr(128, encryptData.length - 128 - 64)\r\n }\r\n\r\n const msg = _.hexToArray(c2)\r\n const c1 = _.getGlobalCurve().decodePointHex('04' + encryptData.substr(0, 128))\r\n\r\n const p = c1.multiply(privateKey)\r\n const x2 = _.hexToArray(_.leftPad(p.getX().toBigInteger().toRadix(16), 64))\r\n const y2 = _.hexToArray(_.leftPad(p.getY().toBigInteger().toRadix(16), 64))\r\n\r\n let ct = 1\r\n let offset = 0\r\n let t = [] // 256 位\r\n const z = [].concat(x2, y2)\r\n const nextT = () => {\r\n // (1) Hai = hash(z || ct)\r\n // (2) ct++\r\n t = sm3([...z, (ct >> 24) & 0x00ff, (ct >> 16) & 0x00ff, (ct >> 8) & 0x00ff, ct & 0x00ff])\r\n ct++\r\n offset = 0\r\n }\r\n nextT() // 先生成 Ha1\r\n\r\n for (let i = 0, len = msg.length; i < len; i++) {\r\n // t = Ha1 || Ha2 || Ha3 || Ha4\r\n if (offset === t.length) nextT()\r\n\r\n // c2 = msg ^ t\r\n msg[i] ^= t[offset++] & 0xff\r\n }\r\n\r\n // c3 = hash(x2 || msg || y2)\r\n const checkC3 = _.arrayToHex(sm3([].concat(x2, msg, y2)))\r\n\r\n if (checkC3 === c3.toLowerCase()) {\r\n return output === 'array' ? msg : _.arrayToUtf8(msg)\r\n } else {\r\n return output === 'array' ? [] : ''\r\n }\r\n}\r\n\r\n/**\r\n * 签名\r\n */\r\nfunction _s2DOSIG(msg, privateKey, { pointPool, der, hash, publicKey, userId } = {}) {\r\n let hashHex = typeof msg === 'string' ? _.utf8ToHex(msg) : _.arrayToHex(msg)\r\n\r\n if (hash) {\r\n // sm3杂凑\r\n publicKey = publicKey || getPublicKeyFromPrivateKey(privateKey)\r\n hashHex = getHash(hashHex, publicKey, userId)\r\n }\r\n\r\n const dA = new BigInteger(privateKey, 16)\r\n const e = new BigInteger(hashHex, 16)\r\n\r\n // k\r\n let k = null\r\n let r = null\r\n let s = null\r\n\r\n do {\r\n do {\r\n let point\r\n if (pointPool && pointPool.length) {\r\n point = pointPool.pop()\r\n } else {\r\n point = getPoint()\r\n }\r\n k = point.k\r\n\r\n // r = (e + x1) mod n\r\n r = e.add(point.x1).mod(n)\r\n } while (r.equals(BigInteger.ZERO) || r.add(k).equals(n))\r\n\r\n // s = ((1 + dA)^-1 * (k - r * dA)) mod n\r\n s = dA\r\n .add(BigInteger.ONE)\r\n .modInverse(n)\r\n .multiply(k.subtract(r.multiply(dA)))\r\n .mod(n)\r\n } while (s.equals(BigInteger.ZERO))\r\n\r\n if (der) return encodeDer(r, s) // asn.1 der 编码\r\n\r\n return _.leftPad(r.toString(16), 64) + _.leftPad(s.toString(16), 64)\r\n}\r\n\r\n/**\r\n * 验签\r\n */\r\nfunction _s2DOVERSIG(msg, signHex, publicKey, { der, hash, userId } = {}) {\r\n let hashHex = typeof msg === 'string' ? _.utf8ToHex(msg) : _.arrayToHex(msg)\r\n\r\n if (hash) {\r\n // sm3杂凑\r\n hashHex = getHash(hashHex, publicKey, userId)\r\n }\r\n\r\n let r\r\n let s\r\n if (der) {\r\n const decodeDerObj = decodeDer(signHex) // asn.1 der 解码\r\n r = decodeDerObj.r\r\n s = decodeDerObj.s\r\n } else {\r\n r = new BigInteger(signHex.substring(0, 64), 16)\r\n s = new BigInteger(signHex.substring(64), 16)\r\n }\r\n\r\n const PA = curve.decodePointHex(publicKey)\r\n const e = new BigInteger(hashHex, 16)\r\n\r\n // t = (r + s) mod n\r\n const t = r.add(s).mod(n)\r\n\r\n if (t.equals(BigInteger.ZERO)) return false\r\n\r\n // x1y1 = s * G + t * PA\r\n const x1y1 = G.multiply(s).add(PA.multiply(t))\r\n\r\n // R = (e + x1) mod n\r\n const R = e.add(x1y1.getX().toBigInteger()).mod(n)\r\n\r\n return r.equals(R)\r\n}\r\n\r\n/**\r\n * sm3杂凑算法\r\n */\r\nfunction getHash(hashHex, publicKey, userId = '1234567812345678') {\r\n // z = hash(entl || userId || a || b || gx || gy || px || py)\r\n userId = _.utf8ToHex(userId)\r\n const a = _.leftPad(G.curve.a.toBigInteger().toRadix(16), 64)\r\n const b = _.leftPad(G.curve.b.toBigInteger().toRadix(16), 64)\r\n const gx = _.leftPad(G.getX().toBigInteger().toRadix(16), 64)\r\n const gy = _.leftPad(G.getY().toBigInteger().toRadix(16), 64)\r\n let px\r\n let py\r\n if (publicKey.length === 128) {\r\n px = publicKey.substr(0, 64)\r\n py = publicKey.substr(64, 64)\r\n } else {\r\n const point = G.curve.decodePointHex(publicKey)\r\n px = _.leftPad(point.getX().toBigInteger().toRadix(16), 64)\r\n py = _.leftPad(point.getY().toBigInteger().toRadix(16), 64)\r\n }\r\n const data = _.hexToArray(userId + a + b + gx + gy + px + py)\r\n\r\n const entl = userId.length * 4\r\n data.unshift(entl & 0x00ff)\r\n data.unshift((entl >> 8) & 0x00ff)\r\n\r\n const z = sm3(data)\r\n\r\n // e = hash(z || msg)\r\n return _.arrayToHex(sm3(z.concat(_.hexToArray(hashHex))))\r\n}\r\n\r\n/**\r\n * 计算公钥\r\n */\r\nfunction _s2GETPublicFPrivate(privateKey) {\r\n const PA = G.multiply(new BigInteger(privateKey, 16))\r\n const x = _.leftPad(PA.getX().toBigInteger().toString(16), 64)\r\n const y = _.leftPad(PA.getY().toBigInteger().toString(16), 64)\r\n return '04' + x + y\r\n}\r\n\r\n/**\r\n * 获取椭圆曲线点\r\n */\r\nfunction getPoint() {\r\n const keypair = _.generateKeyPairHex()\r\n const PA = curve.decodePointHex(keypair.publicKey)\r\n\r\n keypair.k = new BigInteger(keypair.privateKey, 16)\r\n keypair.x1 = PA.getX().toBigInteger()\r\n\r\n return keypair\r\n}\r\n\r\nexport default {\r\n generateKeyPairHex: _.generateKeyPairHex,\r\n compressPublicKeyHex: _.compressPublicKeyHex,\r\n comparePublicKeyHex: _.comparePublicKeyHex,\r\n _s2EN,\r\n _s2DE,\r\n _s2DOSIG,\r\n _s2DOVERSIG,\r\n _s2GETPublicFPrivate,\r\n getPoint,\r\n verifyPublicKey: _.verifyPublicKey,\r\n}\r\n"],"names":["sm3","SM3","encodeDer","decodeDer","asn1","G","curve","n","_","C1C2C3","_s2EN","msg","publicKey","cipherMode","keypair","k","BigInteger","c1","p","x2","y2","c3","ct","offset","t","z","nextT","i","len","c2","_s2DE","encryptData","privateKey","output","_s2DOSIG","pointPool","der","hash","userId","hashHex","getHash","dA","e","r","s","point","getPoint","_s2DOVERSIG","signHex","decodeDerObj","PA","x1y1","R","a","b","gx","gy","px","py","data","entl","_s2GETPublicFPrivate","x","y","sm2"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * sm3 本体
3
+ */
4
+ export declare function sm3(array: any): never[];
5
+ export declare function hmac(input: any, key: any): never[];
6
+ declare const _default: {
7
+ sm3: typeof sm3;
8
+ hmac: typeof hmac;
9
+ };
10
+ export default _default;
@@ -0,0 +1,69 @@
1
+ const i = new Uint32Array(68), j = new Uint32Array(64);
2
+ function s(n, e) {
3
+ const o = e & 31;
4
+ return n << o | n >>> 32 - o;
5
+ }
6
+ function M(n, e) {
7
+ const o = [];
8
+ for (let c = n.length - 1; c >= 0; c--) o[c] = (n[c] ^ e[c]) & 255;
9
+ return o;
10
+ }
11
+ function H(n) {
12
+ return n ^ s(n, 9) ^ s(n, 17);
13
+ }
14
+ function L(n) {
15
+ return n ^ s(n, 15) ^ s(n, 23);
16
+ }
17
+ function P(n) {
18
+ let e = n.length * 8, o = e % 512;
19
+ o = o >= 448 ? 512 - o % 448 - 1 : 448 - o - 1;
20
+ const c = new Array((o - 7) / 8), u = new Array(8);
21
+ for (let r = 0, f = c.length; r < f; r++) c[r] = 0;
22
+ for (let r = 0, f = u.length; r < f; r++) u[r] = 0;
23
+ e = e.toString(2);
24
+ for (let r = 7; r >= 0; r--)
25
+ if (e.length > 8) {
26
+ const f = e.length - 8;
27
+ u[r] = parseInt(e.substr(f), 2), e = e.substr(0, f);
28
+ } else e.length > 0 && (u[r] = parseInt(e, 2), e = "");
29
+ const m = new Uint8Array([...n, 128, ...c, ...u]), E = new DataView(m.buffer, 0), F = m.length / 64, l = new Uint32Array([1937774191, 1226093241, 388252375, 3666478592, 2842636476, 372324522, 3817729613, 2969243214]);
30
+ for (let r = 0; r < F; r++) {
31
+ i.fill(0), j.fill(0);
32
+ const f = 16 * r;
33
+ for (let t = 0; t < 16; t++)
34
+ i[t] = E.getUint32((f + t) * 4, !1);
35
+ for (let t = 16; t < 68; t++)
36
+ i[t] = L(i[t - 16] ^ i[t - 9] ^ s(i[t - 3], 15)) ^ s(i[t - 13], 7) ^ i[t - 6];
37
+ for (let t = 0; t < 64; t++)
38
+ j[t] = i[t] ^ i[t + 4];
39
+ const g = 2043430169, G = 2055708042;
40
+ let a = l[0], w = l[1], A = l[2], S = l[3], h = l[4], d = l[5], T = l[6], p = l[7], b, V, D, I, K;
41
+ for (let t = 0; t < 64; t++)
42
+ K = t >= 0 && t <= 15 ? g : G, b = s(s(a, 12) + h + s(K, t), 7), V = b ^ s(a, 12), D = (t >= 0 && t <= 15 ? a ^ w ^ A : a & w | a & A | w & A) + S + V + j[t], I = (t >= 0 && t <= 15 ? h ^ d ^ T : h & d | ~h & T) + p + b + i[t], S = A, A = s(w, 9), w = a, a = D, p = T, T = s(d, 19), d = h, h = H(I);
43
+ l[0] ^= a, l[1] ^= w, l[2] ^= A, l[3] ^= S, l[4] ^= h, l[5] ^= d, l[6] ^= T, l[7] ^= p;
44
+ }
45
+ const y = [];
46
+ for (let r = 0, f = l.length; r < f; r++) {
47
+ const g = l[r];
48
+ y.push((g & 4278190080) >>> 24, (g & 16711680) >>> 16, (g & 65280) >>> 8, g & 255);
49
+ }
50
+ return y;
51
+ }
52
+ const U = 64, B = new Uint8Array(U), C = new Uint8Array(U);
53
+ for (let n = 0; n < U; n++)
54
+ B[n] = 54, C[n] = 92;
55
+ function W(n, e) {
56
+ for (e.length > U && (e = P(e)); e.length < U; ) e.push(0);
57
+ const o = M(e, B), c = M(e, C), u = P([...o, ...n]);
58
+ return P([...c, ...u]);
59
+ }
60
+ const q = {
61
+ sm3: P,
62
+ hmac: W
63
+ };
64
+ export {
65
+ q as default,
66
+ W as hmac,
67
+ P as sm3
68
+ };
69
+ //# sourceMappingURL=sm3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sm3.js","sources":["../../../../../src/request/leaf7/smCrypto/sm2/sm3.ts"],"sourcesContent":["// 消息扩展\r\nconst W = new Uint32Array(68)\r\nconst M = new Uint32Array(64) // W'\r\n\r\n/**\r\n * 循环左移\r\n */\r\nfunction rotl(x, n) {\r\n const s = n & 31\r\n return (x << s) | (x >>> (32 - s))\r\n}\r\n\r\n/**\r\n * 二进制异或运算\r\n */\r\nfunction xor(x, y) {\r\n const result = []\r\n for (let i = x.length - 1; i >= 0; i--) result[i] = (x[i] ^ y[i]) & 0xff\r\n return result\r\n}\r\n\r\n/**\r\n * 压缩函数中的置换函数 P0(X) = X xor (X <<< 9) xor (X <<< 17)\r\n */\r\nfunction P0(X) {\r\n return X ^ rotl(X, 9) ^ rotl(X, 17)\r\n}\r\n\r\n/**\r\n * 消息扩展中的置换函数 P1(X) = X xor (X <<< 15) xor (X <<< 23)\r\n */\r\nfunction P1(X) {\r\n return X ^ rotl(X, 15) ^ rotl(X, 23)\r\n}\r\n\r\n/**\r\n * sm3 本体\r\n */\r\nexport function sm3(array) {\r\n let len = array.length * 8\r\n\r\n // k 是满足 len + 1 + k = 448mod512 的最小的非负整数\r\n let k = len % 512\r\n // 如果 448 <= (512 % len) < 512,需要多补充 (len % 448) 比特'0'以满足总比特长度为512的倍数\r\n k = k >= 448 ? 512 - (k % 448) - 1 : 448 - k - 1\r\n\r\n // 填充\r\n const kArr = new Array((k - 7) / 8)\r\n const lenArr = new Array(8)\r\n for (let i = 0, len = kArr.length; i < len; i++) kArr[i] = 0\r\n for (let i = 0, len = lenArr.length; i < len; i++) lenArr[i] = 0\r\n len = len.toString(2)\r\n for (let i = 7; i >= 0; i--) {\r\n if (len.length > 8) {\r\n const start = len.length - 8\r\n lenArr[i] = parseInt(len.substr(start), 2)\r\n len = len.substr(0, start)\r\n } else if (len.length > 0) {\r\n lenArr[i] = parseInt(len, 2)\r\n len = ''\r\n }\r\n }\r\n const m = new Uint8Array([...array, 0x80, ...kArr, ...lenArr])\r\n const dataView = new DataView(m.buffer, 0)\r\n\r\n // 迭代压缩\r\n const n = m.length / 64\r\n const V = new Uint32Array([0x7380166f, 0x4914b2b9, 0x172442d7, 0xda8a0600, 0xa96f30bc, 0x163138aa, 0xe38dee4d, 0xb0fb0e4e])\r\n for (let i = 0; i < n; i++) {\r\n W.fill(0)\r\n M.fill(0)\r\n\r\n // 将消息分组B划分为 16 个字 W0, W1,……,W15\r\n const start = 16 * i\r\n for (let j = 0; j < 16; j++) {\r\n W[j] = dataView.getUint32((start + j) * 4, false)\r\n }\r\n\r\n // W16 ~ W67:W[j] <- P1(W[j−16] xor W[j−9] xor (W[j−3] <<< 15)) xor (W[j−13] <<< 7) xor W[j−6]\r\n for (let j = 16; j < 68; j++) {\r\n W[j] = P1(W[j - 16] ^ W[j - 9] ^ rotl(W[j - 3], 15)) ^ rotl(W[j - 13], 7) ^ W[j - 6]\r\n }\r\n\r\n // W′0 ~ W′63:W′[j] = W[j] xor W[j+4]\r\n for (let j = 0; j < 64; j++) {\r\n M[j] = W[j] ^ W[j + 4]\r\n }\r\n\r\n // 压缩\r\n const T1 = 0x79cc4519\r\n const T2 = 0x7a879d8a\r\n // 字寄存器\r\n let A = V[0]\r\n let B = V[1]\r\n let C = V[2]\r\n let D = V[3]\r\n let E = V[4]\r\n let F = V[5]\r\n let G = V[6]\r\n let H = V[7]\r\n // 中间变量\r\n let SS1\r\n let SS2\r\n let TT1\r\n let TT2\r\n let T\r\n for (let j = 0; j < 64; j++) {\r\n T = j >= 0 && j <= 15 ? T1 : T2\r\n SS1 = rotl(rotl(A, 12) + E + rotl(T, j), 7)\r\n SS2 = SS1 ^ rotl(A, 12)\r\n\r\n TT1 = (j >= 0 && j <= 15 ? A ^ B ^ C : (A & B) | (A & C) | (B & C)) + D + SS2 + M[j]\r\n TT2 = (j >= 0 && j <= 15 ? E ^ F ^ G : (E & F) | (~E & G)) + H + SS1 + W[j]\r\n\r\n D = C\r\n C = rotl(B, 9)\r\n B = A\r\n A = TT1\r\n H = G\r\n G = rotl(F, 19)\r\n F = E\r\n E = P0(TT2)\r\n }\r\n\r\n V[0] ^= A\r\n V[1] ^= B\r\n V[2] ^= C\r\n V[3] ^= D\r\n V[4] ^= E\r\n V[5] ^= F\r\n V[6] ^= G\r\n V[7] ^= H\r\n }\r\n\r\n // 转回 uint8\r\n const result = []\r\n for (let i = 0, len = V.length; i < len; i++) {\r\n const word = V[i]\r\n result.push((word & 0xff000000) >>> 24, (word & 0xff0000) >>> 16, (word & 0xff00) >>> 8, word & 0xff)\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * hmac 实现\r\n */\r\nconst blockLen = 64\r\nconst iPad = new Uint8Array(blockLen)\r\nconst oPad = new Uint8Array(blockLen)\r\nfor (let i = 0; i < blockLen; i++) {\r\n iPad[i] = 0x36\r\n oPad[i] = 0x5c\r\n}\r\nexport function hmac(input, key) {\r\n // 密钥填充\r\n if (key.length > blockLen) key = sm3(key)\r\n while (key.length < blockLen) key.push(0)\r\n\r\n const iPadKey = xor(key, iPad)\r\n const oPadKey = xor(key, oPad)\r\n\r\n const hash = sm3([...iPadKey, ...input])\r\n return sm3([...oPadKey, ...hash])\r\n}\r\n\r\nexport default {\r\n sm3,\r\n hmac,\r\n}\r\n"],"names":["W","M","rotl","x","n","s","xor","y","result","i","P0","X","P1","sm3","array","len","k","kArr","lenArr","start","dataView","V","j","T1","T2","A","B","C","D","E","F","G","H","SS1","SS2","TT1","TT2","T","word","blockLen","iPad","oPad","hmac","input","key","iPadKey","oPadKey","hash","SM3"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { ECCurveFp } from './ec';
2
+ /**
3
+ * 获取公共椭圆曲线
4
+ */
5
+ declare function getGlobalCurve(): ECCurveFp;
6
+ /**
7
+ * 生成ecparam
8
+ */
9
+ declare function generateEcparam(): {
10
+ curve: ECCurveFp;
11
+ G: any;
12
+ n: any;
13
+ };
14
+ /**
15
+ * 生成密钥对:publicKey = privateKey * G
16
+ */
17
+ declare function generateKeyPairHex(a: any, b: any, c: any): {
18
+ privateKey: any;
19
+ publicKey: string;
20
+ };
21
+ /**
22
+ * 生成压缩公钥
23
+ */
24
+ declare function compressPublicKeyHex(s: any): string;
25
+ /**
26
+ * utf8串转16进制串
27
+ */
28
+ declare function utf8ToHex(input: any): string;
29
+ /**
30
+ * 补全16进制字符串
31
+ */
32
+ declare function leftPad(input: any, num: any): any;
33
+ /**
34
+ * 转成16进制串
35
+ */
36
+ declare function arrayToHex(arr: any): any;
37
+ /**
38
+ * 转成utf8串
39
+ */
40
+ declare function arrayToUtf8(arr: any): string;
41
+ /**
42
+ * 转成字节数组
43
+ */
44
+ declare function hexToArray(hexStr: any): never[];
45
+ /**
46
+ * 验证公钥是否为椭圆曲线上的点
47
+ */
48
+ declare function verifyPublicKey(publicKey: any): any;
49
+ /**
50
+ * 验证公钥是否等价,等价返回true
51
+ */
52
+ declare function comparePublicKeyHex(publicKey1: any, publicKey2: any): any;
53
+ declare const _default: {
54
+ getGlobalCurve: typeof getGlobalCurve;
55
+ generateEcparam: typeof generateEcparam;
56
+ generateKeyPairHex: typeof generateKeyPairHex;
57
+ compressPublicKeyHex: typeof compressPublicKeyHex;
58
+ utf8ToHex: typeof utf8ToHex;
59
+ leftPad: typeof leftPad;
60
+ arrayToHex: typeof arrayToHex;
61
+ arrayToUtf8: typeof arrayToUtf8;
62
+ hexToArray: typeof hexToArray;
63
+ verifyPublicKey: typeof verifyPublicKey;
64
+ comparePublicKeyHex: typeof comparePublicKeyHex;
65
+ };
66
+ export default _default;
@@ -0,0 +1,91 @@
1
+ import { j as r } from "../../../../index-BW3nOBfD.js";
2
+ import { ECCurveFp as B } from "./ec.js";
3
+ const p = new r.SecureRandom(), { curve: s, G: C, n: a } = l();
4
+ function h() {
5
+ return s;
6
+ }
7
+ function l() {
8
+ const F = new r.BigInteger("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF", 16), e = new r.BigInteger("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC", 16), t = new r.BigInteger("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93", 16), n = new B(F, e, t), g = n.decodePointHex("04" + "32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7" + "BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0"), u = new r.BigInteger("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123", 16);
9
+ return { curve: n, G: g, n: u };
10
+ }
11
+ function y(F, e, t) {
12
+ const o = (F ? new r.BigInteger(F, e, t) : new r.BigInteger(a.bitLength(), p)).mod(a.subtract(r.BigInteger.ONE)).add(r.BigInteger.ONE), c = i(o.toString(16), 64), g = C.multiply(o), u = i(g.getX().toBigInteger().toString(16), 64), f = i(g.getY().toBigInteger().toString(16), 64), d = "04" + u + f;
13
+ return { privateKey: c, publicKey: d };
14
+ }
15
+ function E(F) {
16
+ if (F.length !== 130) throw new Error("Invalid public key to compress");
17
+ const e = (F.length - 2) / 2, t = F.substr(2, e), n = new r.BigInteger(F.substr(e + 2, e), 16);
18
+ let o = "03";
19
+ return n.mod(new r.BigInteger("2")).equals(r.BigInteger.ZERO) && (o = "02"), o + t;
20
+ }
21
+ function x(F) {
22
+ F = unescape(encodeURIComponent(F));
23
+ const e = F.length, t = [];
24
+ for (let o = 0; o < e; o++)
25
+ t[o >>> 2] |= (F.charCodeAt(o) & 255) << 24 - o % 4 * 8;
26
+ const n = [];
27
+ for (let o = 0; o < e; o++) {
28
+ const c = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;
29
+ n.push((c >>> 4).toString(16)), n.push((c & 15).toString(16));
30
+ }
31
+ return n.join("");
32
+ }
33
+ function i(F, e) {
34
+ return F.length >= e ? F : new Array(e - F.length + 1).join("0") + F;
35
+ }
36
+ function w(F) {
37
+ return F.map((e) => (e = e.toString(16), e.length === 1 ? "0" + e : e)).join("");
38
+ }
39
+ function I(F) {
40
+ const e = [];
41
+ let t = 0;
42
+ for (let n = 0; n < F.length * 2; n += 2)
43
+ e[n >>> 3] |= parseInt(F[t], 10) << 24 - n % 8 * 4, t++;
44
+ try {
45
+ const n = [];
46
+ for (let o = 0; o < F.length; o++) {
47
+ const c = e[o >>> 2] >>> 24 - o % 4 * 8 & 255;
48
+ n.push(String.fromCharCode(c));
49
+ }
50
+ return decodeURIComponent(escape(n.join("")));
51
+ } catch {
52
+ throw new Error("Malformed UTF-8 data");
53
+ }
54
+ }
55
+ function b(F) {
56
+ const e = [];
57
+ let t = F.length;
58
+ t % 2 !== 0 && (F = i(F, t + 1)), t = F.length;
59
+ for (let n = 0; n < t; n += 2)
60
+ e.push(parseInt(F.substr(n, 2), 16));
61
+ return e;
62
+ }
63
+ function m(F) {
64
+ const e = s.decodePointHex(F);
65
+ if (!e) return !1;
66
+ const t = e.getX();
67
+ return e.getY().square().equals(t.multiply(t.square()).add(t.multiply(s.a)).add(s.b));
68
+ }
69
+ function A(F, e) {
70
+ const t = s.decodePointHex(F);
71
+ if (!t) return !1;
72
+ const n = s.decodePointHex(e);
73
+ return n ? t.equals(n) : !1;
74
+ }
75
+ const D = {
76
+ getGlobalCurve: h,
77
+ generateEcparam: l,
78
+ generateKeyPairHex: y,
79
+ compressPublicKeyHex: E,
80
+ utf8ToHex: x,
81
+ leftPad: i,
82
+ arrayToHex: w,
83
+ arrayToUtf8: I,
84
+ hexToArray: b,
85
+ verifyPublicKey: m,
86
+ comparePublicKeyHex: A
87
+ };
88
+ export {
89
+ D as default
90
+ };
91
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/request/leaf7/smCrypto/sm2/utils.ts"],"sourcesContent":["import { BigInteger, SecureRandom } from 'jsbn'\r\nimport { ECCurveFp } from './ec'\r\n\r\nconst rng = new SecureRandom()\r\nconst { curve, G, n } = generateEcparam()\r\n\r\n/**\r\n * 获取公共椭圆曲线\r\n */\r\nfunction getGlobalCurve() {\r\n return curve\r\n}\r\n\r\n/**\r\n * 生成ecparam\r\n */\r\nfunction generateEcparam() {\r\n // 椭圆曲线\r\n const p = new BigInteger('FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF', 16)\r\n const a = new BigInteger('FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC', 16)\r\n const b = new BigInteger('28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93', 16)\r\n const curve = new ECCurveFp(p, a, b)\r\n\r\n // 基点\r\n const gxHex = '32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7'\r\n const gyHex = 'BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0'\r\n const G = curve.decodePointHex('04' + gxHex + gyHex)\r\n\r\n const n = new BigInteger('FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123', 16)\r\n\r\n return { curve, G, n }\r\n}\r\n\r\n/**\r\n * 生成密钥对:publicKey = privateKey * G\r\n */\r\nfunction generateKeyPairHex(a, b, c) {\r\n const random = a ? new BigInteger(a, b, c) : new BigInteger(n.bitLength(), rng)\r\n const d = random.mod(n.subtract(BigInteger.ONE)).add(BigInteger.ONE) // 随机数\r\n const privateKey = leftPad(d.toString(16), 64)\r\n\r\n const P = G.multiply(d) // P = dG,p 为公钥,d 为私钥\r\n const Px = leftPad(P.getX().toBigInteger().toString(16), 64)\r\n const Py = leftPad(P.getY().toBigInteger().toString(16), 64)\r\n const publicKey = '04' + Px + Py\r\n\r\n return { privateKey, publicKey }\r\n}\r\n\r\n/**\r\n * 生成压缩公钥\r\n */\r\nfunction compressPublicKeyHex(s) {\r\n if (s.length !== 130) throw new Error('Invalid public key to compress')\r\n\r\n const len = (s.length - 2) / 2\r\n const xHex = s.substr(2, len)\r\n const y = new BigInteger(s.substr(len + 2, len), 16)\r\n\r\n let prefix = '03'\r\n if (y.mod(new BigInteger('2')).equals(BigInteger.ZERO)) prefix = '02'\r\n\r\n return prefix + xHex\r\n}\r\n\r\n/**\r\n * utf8串转16进制串\r\n */\r\nfunction utf8ToHex(input) {\r\n input = unescape(encodeURIComponent(input))\r\n\r\n const length = input.length\r\n\r\n // 转换到字数组\r\n const words = []\r\n for (let i = 0; i < length; i++) {\r\n words[i >>> 2] |= (input.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8)\r\n }\r\n\r\n // 转换到16进制\r\n const hexChars = []\r\n for (let i = 0; i < length; i++) {\r\n const bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff\r\n hexChars.push((bite >>> 4).toString(16))\r\n hexChars.push((bite & 0x0f).toString(16))\r\n }\r\n\r\n return hexChars.join('')\r\n}\r\n\r\n/**\r\n * 补全16进制字符串\r\n */\r\nfunction leftPad(input, num) {\r\n if (input.length >= num) return input\r\n\r\n return new Array(num - input.length + 1).join('0') + input\r\n}\r\n\r\n/**\r\n * 转成16进制串\r\n */\r\nfunction arrayToHex(arr) {\r\n return arr\r\n .map((item) => {\r\n item = item.toString(16)\r\n return item.length === 1 ? '0' + item : item\r\n })\r\n .join('')\r\n}\r\n\r\n/**\r\n * 转成utf8串\r\n */\r\nfunction arrayToUtf8(arr) {\r\n const words = []\r\n let j = 0\r\n for (let i = 0; i < arr.length * 2; i += 2) {\r\n words[i >>> 3] |= parseInt(arr[j], 10) << (24 - (i % 8) * 4)\r\n j++\r\n }\r\n\r\n try {\r\n const latin1Chars = []\r\n\r\n for (let i = 0; i < arr.length; i++) {\r\n const bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff\r\n latin1Chars.push(String.fromCharCode(bite))\r\n }\r\n\r\n return decodeURIComponent(escape(latin1Chars.join('')))\r\n } catch (e) {\r\n throw new Error('Malformed UTF-8 data')\r\n }\r\n}\r\n\r\n/**\r\n * 转成字节数组\r\n */\r\nfunction hexToArray(hexStr) {\r\n const words = []\r\n let hexStrLength = hexStr.length\r\n\r\n if (hexStrLength % 2 !== 0) {\r\n hexStr = leftPad(hexStr, hexStrLength + 1)\r\n }\r\n\r\n hexStrLength = hexStr.length\r\n\r\n for (let i = 0; i < hexStrLength; i += 2) {\r\n words.push(parseInt(hexStr.substr(i, 2), 16))\r\n }\r\n return words\r\n}\r\n\r\n/**\r\n * 验证公钥是否为椭圆曲线上的点\r\n */\r\nfunction verifyPublicKey(publicKey) {\r\n const point = curve.decodePointHex(publicKey)\r\n if (!point) return false\r\n\r\n const x = point.getX()\r\n const y = point.getY()\r\n\r\n // 验证 y^2 是否等于 x^3 + ax + b\r\n return y.square().equals(x.multiply(x.square()).add(x.multiply(curve.a)).add(curve.b))\r\n}\r\n\r\n/**\r\n * 验证公钥是否等价,等价返回true\r\n */\r\nfunction comparePublicKeyHex(publicKey1, publicKey2) {\r\n const point1 = curve.decodePointHex(publicKey1)\r\n if (!point1) return false\r\n\r\n const point2 = curve.decodePointHex(publicKey2)\r\n if (!point2) return false\r\n\r\n return point1.equals(point2)\r\n}\r\n\r\nexport default {\r\n getGlobalCurve,\r\n generateEcparam,\r\n generateKeyPairHex,\r\n compressPublicKeyHex,\r\n utf8ToHex,\r\n leftPad,\r\n arrayToHex,\r\n arrayToUtf8,\r\n hexToArray,\r\n verifyPublicKey,\r\n comparePublicKeyHex,\r\n}\r\n"],"names":["rng","SecureRandom","curve","G","n","generateEcparam","getGlobalCurve","p","BigInteger","a","b","ECCurveFp","generateKeyPairHex","c","d","privateKey","leftPad","P","Px","Py","publicKey","compressPublicKeyHex","s","len","xHex","y","prefix","utf8ToHex","input","length","words","i","hexChars","bite","num","arrayToHex","arr","item","arrayToUtf8","j","latin1Chars","hexToArray","hexStr","hexStrLength","verifyPublicKey","point","x","comparePublicKeyHex","publicKey1","publicKey2","point1","point2","_"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export default function (input: any, options?: any): any;
@@ -0,0 +1,45 @@
1
+ import { sm3 as l, hmac as h } from "../sm2/sm3.js";
2
+ function f(e, r) {
3
+ return e.length >= r ? e : new Array(r - e.length + 1).join("0") + e;
4
+ }
5
+ function s(e) {
6
+ return e.map((r) => (r = r.toString(16), r.length === 1 ? "0" + r : r)).join("");
7
+ }
8
+ function u(e) {
9
+ const r = [];
10
+ let n = e.length;
11
+ n % 2 !== 0 && (e = f(e, n + 1)), n = e.length;
12
+ for (let t = 0; t < n; t += 2)
13
+ r.push(parseInt(e.substr(t, 2), 16));
14
+ return r;
15
+ }
16
+ function a(e) {
17
+ const r = [];
18
+ for (let n = 0, t = e.length; n < t; n++) {
19
+ const o = e.codePointAt(n);
20
+ if (o <= 127)
21
+ r.push(o);
22
+ else if (o <= 2047)
23
+ r.push(192 | o >>> 6), r.push(128 | o & 63);
24
+ else if (o <= 55295 || o >= 57344 && o <= 65535)
25
+ r.push(224 | o >>> 12), r.push(128 | o >>> 6 & 63), r.push(128 | o & 63);
26
+ else if (o >= 65536 && o <= 1114111)
27
+ n++, r.push(240 | o >>> 18 & 28), r.push(128 | o >>> 12 & 63), r.push(128 | o >>> 6 & 63), r.push(128 | o & 63);
28
+ else
29
+ throw r.push(o), new Error("input is not supported");
30
+ }
31
+ return r;
32
+ }
33
+ function c(e, r) {
34
+ if (e = typeof e == "string" ? a(e) : Array.prototype.slice.call(e), r) {
35
+ if ((r.mode || "hmac") !== "hmac") throw new Error("invalid mode");
36
+ let t = r.key;
37
+ if (!t) throw new Error("invalid key");
38
+ return t = typeof t == "string" ? u(t) : Array.prototype.slice.call(t), s(h(e, t));
39
+ }
40
+ return s(l(e));
41
+ }
42
+ export {
43
+ c as default
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/request/leaf7/smCrypto/sm3/index.ts"],"sourcesContent":["import { sm3, hmac } from '../sm2/sm3'\r\n\r\n/**\r\n * 补全16进制字符串\r\n */\r\nfunction leftPad(input, num) {\r\n if (input.length >= num) return input\r\n\r\n return new Array(num - input.length + 1).join('0') + input\r\n}\r\n\r\n/**\r\n * 字节数组转 16 进制串\r\n */\r\nfunction ArrayToHex(arr) {\r\n return arr\r\n .map((item) => {\r\n item = item.toString(16)\r\n return item.length === 1 ? '0' + item : item\r\n })\r\n .join('')\r\n}\r\n\r\n/**\r\n * 转成字节数组\r\n */\r\nfunction hexToArray(hexStr) {\r\n const words = []\r\n let hexStrLength = hexStr.length\r\n\r\n if (hexStrLength % 2 !== 0) {\r\n hexStr = leftPad(hexStr, hexStrLength + 1)\r\n }\r\n\r\n hexStrLength = hexStr.length\r\n\r\n for (let i = 0; i < hexStrLength; i += 2) {\r\n words.push(parseInt(hexStr.substr(i, 2), 16))\r\n }\r\n return words\r\n}\r\n\r\n/**\r\n * utf8 串转字节数组\r\n */\r\nfunction utf8ToArray(str) {\r\n const arr = []\r\n\r\n for (let i = 0, len = str.length; i < len; i++) {\r\n const point = str.codePointAt(i)\r\n\r\n if (point <= 0x007f) {\r\n // 单字节,标量值:00000000 00000000 0zzzzzzz\r\n arr.push(point)\r\n } else if (point <= 0x07ff) {\r\n // 双字节,标量值:00000000 00000yyy yyzzzzzz\r\n arr.push(0xc0 | (point >>> 6)) // 110yyyyy(0xc0-0xdf)\r\n arr.push(0x80 | (point & 0x3f)) // 10zzzzzz(0x80-0xbf)\r\n } else if (point <= 0xd7ff || (point >= 0xe000 && point <= 0xffff)) {\r\n // 三字节:标量值:00000000 xxxxyyyy yyzzzzzz\r\n arr.push(0xe0 | (point >>> 12)) // 1110xxxx(0xe0-0xef)\r\n arr.push(0x80 | ((point >>> 6) & 0x3f)) // 10yyyyyy(0x80-0xbf)\r\n arr.push(0x80 | (point & 0x3f)) // 10zzzzzz(0x80-0xbf)\r\n } else if (point >= 0x010000 && point <= 0x10ffff) {\r\n // 四字节:标量值:000wwwxx xxxxyyyy yyzzzzzz\r\n i++\r\n arr.push(0xf0 | ((point >>> 18) & 0x1c)) // 11110www(0xf0-0xf7)\r\n arr.push(0x80 | ((point >>> 12) & 0x3f)) // 10xxxxxx(0x80-0xbf)\r\n arr.push(0x80 | ((point >>> 6) & 0x3f)) // 10yyyyyy(0x80-0xbf)\r\n arr.push(0x80 | (point & 0x3f)) // 10zzzzzz(0x80-0xbf)\r\n } else {\r\n // 五、六字节,暂时不支持\r\n arr.push(point)\r\n throw new Error('input is not supported')\r\n }\r\n }\r\n\r\n return arr\r\n}\r\n\r\nexport default function (input, options?) {\r\n input = typeof input === 'string' ? utf8ToArray(input) : Array.prototype.slice.call(input)\r\n\r\n if (options) {\r\n const mode = options.mode || 'hmac'\r\n if (mode !== 'hmac') throw new Error('invalid mode')\r\n\r\n let key = options.key\r\n if (!key) throw new Error('invalid key')\r\n\r\n key = typeof key === 'string' ? hexToArray(key) : Array.prototype.slice.call(key)\r\n return ArrayToHex(hmac(input, key))\r\n }\r\n\r\n return ArrayToHex(sm3(input))\r\n}\r\n"],"names":["leftPad","input","num","ArrayToHex","arr","item","hexToArray","hexStr","words","hexStrLength","i","utf8ToArray","str","len","point","sm3","options","key","hmac"],"mappings":";AAKA,SAASA,EAAQC,GAAOC,GAAK;AACvB,SAAAD,EAAM,UAAUC,IAAYD,IAEzB,IAAI,MAAMC,IAAMD,EAAM,SAAS,CAAC,EAAE,KAAK,GAAG,IAAIA;AACvD;AAKA,SAASE,EAAWC,GAAK;AAChB,SAAAA,EACJ,IAAI,CAACC,OACGA,IAAAA,EAAK,SAAS,EAAE,GAChBA,EAAK,WAAW,IAAI,MAAMA,IAAOA,EACzC,EACA,KAAK,EAAE;AACZ;AAKA,SAASC,EAAWC,GAAQ;AAC1B,QAAMC,IAAQ,CAAA;AACd,MAAIC,IAAeF,EAAO;AAEtB,EAAAE,IAAe,MAAM,MACdF,IAAAP,EAAQO,GAAQE,IAAe,CAAC,IAG3CA,IAAeF,EAAO;AAEtB,WAASG,IAAI,GAAGA,IAAID,GAAcC,KAAK;AAC/B,IAAAF,EAAA,KAAK,SAASD,EAAO,OAAOG,GAAG,CAAC,GAAG,EAAE,CAAC;AAEvC,SAAAF;AACT;AAKA,SAASG,EAAYC,GAAK;AACxB,QAAMR,IAAM,CAAA;AAEZ,WAASM,IAAI,GAAGG,IAAMD,EAAI,QAAQF,IAAIG,GAAKH,KAAK;AACxC,UAAAI,IAAQF,EAAI,YAAYF,CAAC;AAE/B,QAAII,KAAS;AAEX,MAAAV,EAAI,KAAKU,CAAK;AAAA,aACLA,KAAS;AAEd,MAAAV,EAAA,KAAK,MAAQU,MAAU,CAAE,GACzBV,EAAA,KAAK,MAAQU,IAAQ,EAAK;AAAA,aACrBA,KAAS,SAAWA,KAAS,SAAUA,KAAS;AAErD,MAAAV,EAAA,KAAK,MAAQU,MAAU,EAAG,GAC9BV,EAAI,KAAK,MAASU,MAAU,IAAK,EAAK,GAClCV,EAAA,KAAK,MAAQU,IAAQ,EAAK;AAAA,aACrBA,KAAS,SAAYA,KAAS;AAEvC,MAAAJ,KACAN,EAAI,KAAK,MAASU,MAAU,KAAM,EAAK,GACvCV,EAAI,KAAK,MAASU,MAAU,KAAM,EAAK,GACvCV,EAAI,KAAK,MAASU,MAAU,IAAK,EAAK,GAClCV,EAAA,KAAK,MAAQU,IAAQ,EAAK;AAAA;AAG9B,YAAAV,EAAI,KAAKU,CAAK,GACR,IAAI,MAAM,wBAAwB;AAAA,EAE5C;AAEO,SAAAV;AACT;AAEA,SAAAW,EAAyBd,GAAOe,GAAU;AAGxC,MAFQf,IAAA,OAAOA,KAAU,WAAWU,EAAYV,CAAK,IAAI,MAAM,UAAU,MAAM,KAAKA,CAAK,GAErFe,GAAS;AAEX,SADaA,EAAQ,QAAQ,YAChB,OAAc,OAAA,IAAI,MAAM,cAAc;AAEnD,QAAIC,IAAMD,EAAQ;AAClB,QAAI,CAACC,EAAW,OAAA,IAAI,MAAM,aAAa;AAEjC,WAAAA,IAAA,OAAOA,KAAQ,WAAWX,EAAWW,CAAG,IAAI,MAAM,UAAU,MAAM,KAAKA,CAAG,GACzEd,EAAWe,EAAKjB,GAAOgB,CAAG,CAAC;AAAA,EACpC;AAEO,SAAAd,EAAWY,EAAId,CAAK,CAAC;AAC9B;"}
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ _s4EN(inArray: any, key: any, options: any): any;
3
+ _s4DE(inArray: any, key: any, options: any): any;
4
+ };
5
+ export default _default;