@ivujs/i-utils 1.1.16 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/README.md +21 -19
  2. package/dist/cjs/index.cjs +5 -400
  3. package/dist/es/index.d.ts +1 -26
  4. package/dist/es/index.mjs +2 -55
  5. package/dist/index.d.ts +11 -2851
  6. package/dist/lib/index.full.umd.js +33 -14240
  7. package/dist/lib/index.full.umd.min.js +2 -64
  8. package/dist/lib/index.full.umd.min.js.map +1 -1
  9. package/dist/resolver/auto-imports.cjs +1 -337
  10. package/dist/resolver/auto-imports.mjs +1 -337
  11. package/dist/resolver/index.cjs +1 -1
  12. package/dist/resolver/index.d.ts +1 -1
  13. package/dist/resolver/index.mjs +1 -1
  14. package/package.json +5 -13
  15. package/dist/cjs/ID-card/index.cjs +0 -87
  16. package/dist/cjs/array/index.cjs +0 -470
  17. package/dist/cjs/clipboard/index.cjs +0 -128
  18. package/dist/cjs/color/index.cjs +0 -193
  19. package/dist/cjs/constants/date.cjs +0 -178
  20. package/dist/cjs/constants/id-card.cjs +0 -52
  21. package/dist/cjs/constants/keycode.cjs +0 -117
  22. package/dist/cjs/constants/lang.cjs +0 -13
  23. package/dist/cjs/constants/math.cjs +0 -13
  24. package/dist/cjs/constants/regexp.cjs +0 -53
  25. package/dist/cjs/constants/sort.cjs +0 -15
  26. package/dist/cjs/cookie/index.cjs +0 -70
  27. package/dist/cjs/crypto/aes/aes.cjs +0 -480
  28. package/dist/cjs/crypto/aes/index.cjs +0 -27
  29. package/dist/cjs/crypto/base32/base32.cjs +0 -357
  30. package/dist/cjs/crypto/base32/index.cjs +0 -41
  31. package/dist/cjs/crypto/base64/base64.cjs +0 -348
  32. package/dist/cjs/crypto/base64/index.cjs +0 -59
  33. package/dist/cjs/crypto/des/des.cjs +0 -257
  34. package/dist/cjs/crypto/des/index.cjs +0 -28
  35. package/dist/cjs/crypto/md5/index.cjs +0 -24
  36. package/dist/cjs/crypto/md5/md5.cjs +0 -897
  37. package/dist/cjs/crypto/sha/sha1/index.cjs +0 -24
  38. package/dist/cjs/crypto/sha/sha1/sha1.cjs +0 -529
  39. package/dist/cjs/crypto/sha/sha256/index.cjs +0 -43
  40. package/dist/cjs/crypto/sha/sha256/sha256.cjs +0 -595
  41. package/dist/cjs/crypto/sha/sha3/index.cjs +0 -41
  42. package/dist/cjs/crypto/sha/sha3/sha3.cjs +0 -624
  43. package/dist/cjs/crypto/sha/sha512/index.cjs +0 -81
  44. package/dist/cjs/crypto/sha/sha512/sha512.cjs +0 -950
  45. package/dist/cjs/crypto/sm/lib/asn1.cjs +0 -149
  46. package/dist/cjs/crypto/sm/lib/ec.cjs +0 -315
  47. package/dist/cjs/crypto/sm/lib/jsbn.cjs +0 -1608
  48. package/dist/cjs/crypto/sm/lib/sm3.cjs +0 -158
  49. package/dist/cjs/crypto/sm/lib/utils.cjs +0 -170
  50. package/dist/cjs/crypto/sm/sm2/index.cjs +0 -112
  51. package/dist/cjs/crypto/sm/sm2/sm2.cjs +0 -231
  52. package/dist/cjs/crypto/sm/sm3/index.cjs +0 -15
  53. package/dist/cjs/crypto/sm/sm3/sm3.cjs +0 -93
  54. package/dist/cjs/crypto/sm/sm4/index.cjs +0 -27
  55. package/dist/cjs/crypto/sm/sm4/sm4.cjs +0 -327
  56. package/dist/cjs/crypto/tea/index.cjs +0 -25
  57. package/dist/cjs/crypto/tea/tea.cjs +0 -187
  58. package/dist/cjs/date/index.cjs +0 -1266
  59. package/dist/cjs/desensitized/index.cjs +0 -75
  60. package/dist/cjs/device/index.cjs +0 -151
  61. package/dist/cjs/dom/index.cjs +0 -129
  62. package/dist/cjs/file/index.cjs +0 -333
  63. package/dist/cjs/function/index.cjs +0 -69
  64. package/dist/cjs/keycode/index.cjs +0 -33
  65. package/dist/cjs/math/index.cjs +0 -278
  66. package/dist/cjs/number/index.cjs +0 -31
  67. package/dist/cjs/object/index.cjs +0 -272
  68. package/dist/cjs/pagination/index.cjs +0 -131
  69. package/dist/cjs/random/index.cjs +0 -24
  70. package/dist/cjs/regexp/index.cjs +0 -100
  71. package/dist/cjs/storage/index.cjs +0 -11
  72. package/dist/cjs/storage/localStorage.cjs +0 -37
  73. package/dist/cjs/storage/sessionStorage.cjs +0 -37
  74. package/dist/cjs/string/index.cjs +0 -358
  75. package/dist/cjs/url/index.cjs +0 -258
  76. package/dist/cjs/validate/index.cjs +0 -468
  77. package/dist/cjs/weapp/index.cjs +0 -142
  78. package/dist/es/ID-card/index.d.ts +0 -31
  79. package/dist/es/ID-card/index.mjs +0 -81
  80. package/dist/es/array/index.d.ts +0 -203
  81. package/dist/es/array/index.mjs +0 -441
  82. package/dist/es/clipboard/index.d.ts +0 -29
  83. package/dist/es/clipboard/index.mjs +0 -122
  84. package/dist/es/color/index.d.ts +0 -52
  85. package/dist/es/color/index.mjs +0 -183
  86. package/dist/es/constants/date.d.ts +0 -174
  87. package/dist/es/constants/date.mjs +0 -176
  88. package/dist/es/constants/id-card.d.ts +0 -43
  89. package/dist/es/constants/id-card.mjs +0 -50
  90. package/dist/es/constants/index.d.ts +0 -7
  91. package/dist/es/constants/keycode.d.ts +0 -103
  92. package/dist/es/constants/keycode.mjs +0 -115
  93. package/dist/es/constants/lang.d.ts +0 -4
  94. package/dist/es/constants/lang.mjs +0 -11
  95. package/dist/es/constants/math.d.ts +0 -4
  96. package/dist/es/constants/math.mjs +0 -11
  97. package/dist/es/constants/regexp.d.ts +0 -24
  98. package/dist/es/constants/regexp.mjs +0 -51
  99. package/dist/es/constants/sort.d.ts +0 -5
  100. package/dist/es/constants/sort.mjs +0 -13
  101. package/dist/es/cookie/index.d.ts +0 -29
  102. package/dist/es/cookie/index.mjs +0 -64
  103. package/dist/es/crypto/aes/aes.d.ts +0 -156
  104. package/dist/es/crypto/aes/aes.mjs +0 -478
  105. package/dist/es/crypto/aes/index.d.ts +0 -16
  106. package/dist/es/crypto/aes/index.mjs +0 -24
  107. package/dist/es/crypto/base32/base32.d.ts +0 -3
  108. package/dist/es/crypto/base32/base32.mjs +0 -353
  109. package/dist/es/crypto/base32/index.d.ts +0 -24
  110. package/dist/es/crypto/base32/index.mjs +0 -36
  111. package/dist/es/crypto/base64/base64.d.ts +0 -5
  112. package/dist/es/crypto/base64/base64.mjs +0 -342
  113. package/dist/es/crypto/base64/index.d.ts +0 -36
  114. package/dist/es/crypto/base64/index.mjs +0 -52
  115. package/dist/es/crypto/des/des.d.ts +0 -52
  116. package/dist/es/crypto/des/des.mjs +0 -255
  117. package/dist/es/crypto/des/index.d.ts +0 -14
  118. package/dist/es/crypto/des/index.mjs +0 -25
  119. package/dist/es/crypto/index.d.ts +0 -8
  120. package/dist/es/crypto/md5/index.d.ts +0 -13
  121. package/dist/es/crypto/md5/index.mjs +0 -21
  122. package/dist/es/crypto/md5/md5.d.ts +0 -144
  123. package/dist/es/crypto/md5/md5.mjs +0 -894
  124. package/dist/es/crypto/sha/index.d.ts +0 -4
  125. package/dist/es/crypto/sha/sha1/index.d.ts +0 -13
  126. package/dist/es/crypto/sha/sha1/index.mjs +0 -21
  127. package/dist/es/crypto/sha/sha1/sha1.d.ts +0 -2
  128. package/dist/es/crypto/sha/sha1/sha1.mjs +0 -526
  129. package/dist/es/crypto/sha/sha256/index.d.ts +0 -26
  130. package/dist/es/crypto/sha/sha256/index.mjs +0 -38
  131. package/dist/es/crypto/sha/sha256/sha256.d.ts +0 -4
  132. package/dist/es/crypto/sha/sha256/sha256.mjs +0 -590
  133. package/dist/es/crypto/sha/sha3/index.d.ts +0 -24
  134. package/dist/es/crypto/sha/sha3/index.mjs +0 -36
  135. package/dist/es/crypto/sha/sha3/sha3.d.ts +0 -4
  136. package/dist/es/crypto/sha/sha3/sha3.mjs +0 -619
  137. package/dist/es/crypto/sha/sha512/index.d.ts +0 -52
  138. package/dist/es/crypto/sha/sha512/index.mjs +0 -72
  139. package/dist/es/crypto/sha/sha512/sha512.d.ts +0 -8
  140. package/dist/es/crypto/sha/sha512/sha512.mjs +0 -941
  141. package/dist/es/crypto/sm/index.d.ts +0 -3
  142. package/dist/es/crypto/sm/lib/asn1.d.ts +0 -12
  143. package/dist/es/crypto/sm/lib/asn1.mjs +0 -146
  144. package/dist/es/crypto/sm/lib/ec.d.ts +0 -126
  145. package/dist/es/crypto/sm/lib/ec.mjs +0 -312
  146. package/dist/es/crypto/sm/lib/jsbn.d.ts +0 -198
  147. package/dist/es/crypto/sm/lib/jsbn.mjs +0 -1605
  148. package/dist/es/crypto/sm/lib/sm3.d.ts +0 -5
  149. package/dist/es/crypto/sm/lib/sm3.mjs +0 -155
  150. package/dist/es/crypto/sm/lib/utils.d.ts +0 -53
  151. package/dist/es/crypto/sm/lib/utils.mjs +0 -158
  152. package/dist/es/crypto/sm/sm2/index.d.ts +0 -71
  153. package/dist/es/crypto/sm/sm2/index.mjs +0 -101
  154. package/dist/es/crypto/sm/sm2/sm2.d.ts +0 -34
  155. package/dist/es/crypto/sm/sm2/sm2.mjs +0 -220
  156. package/dist/es/crypto/sm/sm3/index.d.ts +0 -7
  157. package/dist/es/crypto/sm/sm3/index.mjs +0 -13
  158. package/dist/es/crypto/sm/sm3/sm3.d.ts +0 -1
  159. package/dist/es/crypto/sm/sm3/sm3.mjs +0 -91
  160. package/dist/es/crypto/sm/sm4/index.d.ts +0 -16
  161. package/dist/es/crypto/sm/sm4/index.mjs +0 -24
  162. package/dist/es/crypto/sm/sm4/sm4.d.ts +0 -2
  163. package/dist/es/crypto/sm/sm4/sm4.mjs +0 -324
  164. package/dist/es/crypto/tea/index.d.ts +0 -14
  165. package/dist/es/crypto/tea/index.mjs +0 -22
  166. package/dist/es/crypto/tea/tea.d.ts +0 -69
  167. package/dist/es/crypto/tea/tea.mjs +0 -185
  168. package/dist/es/date/index.d.ts +0 -547
  169. package/dist/es/date/index.mjs +0 -1179
  170. package/dist/es/desensitized/index.d.ts +0 -38
  171. package/dist/es/desensitized/index.mjs +0 -69
  172. package/dist/es/device/index.d.ts +0 -67
  173. package/dist/es/device/index.mjs +0 -137
  174. package/dist/es/dom/index.d.ts +0 -57
  175. package/dist/es/dom/index.mjs +0 -119
  176. package/dist/es/file/index.d.ts +0 -93
  177. package/dist/es/file/index.mjs +0 -317
  178. package/dist/es/function/index.d.ts +0 -23
  179. package/dist/es/function/index.mjs +0 -65
  180. package/dist/es/keycode/index.d.ts +0 -12
  181. package/dist/es/keycode/index.mjs +0 -30
  182. package/dist/es/math/index.d.ts +0 -66
  183. package/dist/es/math/index.mjs +0 -268
  184. package/dist/es/number/index.d.ts +0 -14
  185. package/dist/es/number/index.mjs +0 -28
  186. package/dist/es/object/index.d.ts +0 -83
  187. package/dist/es/object/index.mjs +0 -259
  188. package/dist/es/pagination/index.d.ts +0 -34
  189. package/dist/es/pagination/index.mjs +0 -125
  190. package/dist/es/random/index.d.ts +0 -15
  191. package/dist/es/random/index.mjs +0 -21
  192. package/dist/es/regexp/index.d.ts +0 -63
  193. package/dist/es/regexp/index.mjs +0 -89
  194. package/dist/es/storage/index.d.ts +0 -7
  195. package/dist/es/storage/index.mjs +0 -9
  196. package/dist/es/storage/localStorage.d.ts +0 -21
  197. package/dist/es/storage/localStorage.mjs +0 -32
  198. package/dist/es/storage/sessionStorage.d.ts +0 -21
  199. package/dist/es/storage/sessionStorage.mjs +0 -32
  200. package/dist/es/string/index.d.ts +0 -121
  201. package/dist/es/string/index.mjs +0 -339
  202. package/dist/es/url/index.d.ts +0 -118
  203. package/dist/es/url/index.mjs +0 -240
  204. package/dist/es/validate/index.d.ts +0 -228
  205. package/dist/es/validate/index.mjs +0 -431
  206. package/dist/es/weapp/index.d.ts +0 -57
  207. package/dist/es/weapp/index.mjs +0 -131
  208. package/dist/lib/index.full.cjs.js +0 -14264
  209. package/dist/lib/index.full.cjs.min.js +0 -69
  210. package/dist/lib/index.full.cjs.min.js.map +0 -1
  211. package/dist/lib/index.full.esm.js +0 -13910
  212. package/dist/lib/index.full.esm.min.js +0 -64
  213. package/dist/lib/index.full.esm.min.js.map +0 -1
@@ -1,220 +0,0 @@
1
- import * as jsbn from '../lib/jsbn.mjs';
2
- import * as asn1 from '../lib/asn1.mjs';
3
- import { generateEcparam, generateKeyPairHex as generateKeyPairHex$1, compressPublicKeyHex as compressPublicKeyHex$1, comparePublicKeyHex as comparePublicKeyHex$1, verifyPublicKey as verifyPublicKey$1, hexToArray, utf8ToHex, getGlobalCurve, leftPad, arrayToHex, arrayToUtf8 } from '../lib/utils.mjs';
4
- import { sm3 } from '../lib/sm3.mjs';
5
-
6
- const { BigInteger } = jsbn;
7
- const { decodeDer, encodeDer } = asn1;
8
- const { G, curve, n } = generateEcparam();
9
- const C1C2C3 = 0;
10
- /**
11
- * 加密
12
- */
13
- function doEncrypt(msg, publicKey, cipherMode = 1) {
14
- msg = typeof msg === "string" ? hexToArray(utf8ToHex(msg)) : Array.prototype.slice.call(msg);
15
- publicKey = getGlobalCurve().decodePointHex(publicKey); // 先将公钥转成点
16
- const keypair = generateKeyPairHex$1();
17
- const k = new BigInteger(keypair.privateKey, 16); // 随机数 k
18
- // c1 = k * G
19
- let c1 = keypair.publicKey;
20
- if (c1.length > 128)
21
- c1 = c1.substr(c1.length - 128);
22
- // (x2, y2) = k * publicKey
23
- const p = publicKey.multiply(k);
24
- const x2 = hexToArray(leftPad(p.getX().toBigInteger().toRadix(16), 64));
25
- const y2 = hexToArray(leftPad(p.getY().toBigInteger().toRadix(16), 64));
26
- // c3 = hash(x2 || msg || y2)
27
- const c3 = arrayToHex(sm3([].concat(x2, msg, y2)));
28
- let ct = 1;
29
- let offset = 0;
30
- let t = []; // 256 位
31
- const z = [].concat(x2, y2);
32
- const nextT = () => {
33
- // (1) Hai = hash(z || ct)
34
- // (2) ct++
35
- t = sm3([...z, (ct >> 24) & 0x00ff, (ct >> 16) & 0x00ff, (ct >> 8) & 0x00ff, ct & 0x00ff]);
36
- ct++;
37
- offset = 0;
38
- };
39
- nextT(); // 先生成 Ha1
40
- for (let i = 0, len = msg.length; i < len; i++) {
41
- // t = Ha1 || Ha2 || Ha3 || Ha4
42
- if (offset === t.length)
43
- nextT();
44
- // c2 = msg ^ t
45
- msg[i] ^= t[offset++] & 0xff;
46
- }
47
- const c2 = arrayToHex(msg);
48
- return cipherMode === C1C2C3 ? c1 + c2 + c3 : c1 + c3 + c2;
49
- }
50
- /**
51
- * 解密
52
- */
53
- function doDecrypt(encryptData, privateKey, cipherMode = 1, { output = "string" } = {}) {
54
- privateKey = new BigInteger(privateKey, 16);
55
- let c3 = encryptData.substr(128, 64);
56
- let c2 = encryptData.substr(128 + 64);
57
- if (cipherMode === C1C2C3) {
58
- c3 = encryptData.substr(encryptData.length - 64);
59
- c2 = encryptData.substr(128, encryptData.length - 128 - 64);
60
- }
61
- const msg = hexToArray(c2);
62
- const c1 = getGlobalCurve().decodePointHex("04" + encryptData.substr(0, 128));
63
- const p = c1.multiply(privateKey);
64
- const x2 = hexToArray(leftPad(p.getX().toBigInteger().toRadix(16), 64));
65
- const y2 = hexToArray(leftPad(p.getY().toBigInteger().toRadix(16), 64));
66
- let ct = 1;
67
- let offset = 0;
68
- let t = []; // 256 位
69
- const z = [].concat(x2, y2);
70
- const nextT = () => {
71
- // (1) Hai = hash(z || ct)
72
- // (2) ct++
73
- t = sm3([...z, (ct >> 24) & 0x00ff, (ct >> 16) & 0x00ff, (ct >> 8) & 0x00ff, ct & 0x00ff]);
74
- ct++;
75
- offset = 0;
76
- };
77
- nextT(); // 先生成 Ha1
78
- for (let i = 0, len = msg.length; i < len; i++) {
79
- // t = Ha1 || Ha2 || Ha3 || Ha4
80
- if (offset === t.length)
81
- nextT();
82
- // c2 = msg ^ t
83
- msg[i] ^= t[offset++] & 0xff;
84
- }
85
- // c3 = hash(x2 || msg || y2)
86
- const checkC3 = arrayToHex(sm3([].concat(x2, msg, y2)));
87
- if (checkC3 === c3.toLowerCase()) {
88
- return output === "array" ? msg : arrayToUtf8(msg);
89
- }
90
- else {
91
- return output === "array" ? [] : "";
92
- }
93
- }
94
- /**
95
- * 签名
96
- */
97
- function doSignature(msg, privateKey, { pointPool, der, hash, publicKey, userId } = {}) {
98
- let hashHex = typeof msg === "string" ? utf8ToHex(msg) : arrayToHex(msg);
99
- if (hash) {
100
- // sm3杂凑
101
- publicKey = publicKey || getPublicKeyFromPrivateKey(privateKey);
102
- hashHex = getHash(hashHex, publicKey, userId);
103
- }
104
- const dA = new BigInteger(privateKey, 16);
105
- const e = new BigInteger(hashHex, 16);
106
- // k
107
- let k = null;
108
- let r = null;
109
- let s = null;
110
- do {
111
- do {
112
- let point;
113
- if (pointPool && pointPool.length) {
114
- point = pointPool.pop();
115
- }
116
- else {
117
- point = getPoint();
118
- }
119
- k = point.k;
120
- // r = (e + x1) mod n
121
- r = e.add(point.x1).mod(n);
122
- } while (r.equals(BigInteger.ZERO) || r.add(k).equals(n));
123
- // s = ((1 + dA)^-1 * (k - r * dA)) mod n
124
- s = dA
125
- .add(BigInteger.ONE)
126
- .modInverse(n)
127
- .multiply(k.subtract(r.multiply(dA)))
128
- .mod(n);
129
- } while (s.equals(BigInteger.ZERO));
130
- if (der)
131
- return encodeDer(r, s); // asn.1 der 编码
132
- return leftPad(r.toString(16), 64) + leftPad(s.toString(16), 64);
133
- }
134
- /**
135
- * 验签
136
- */
137
- function doVerifySignature(msg, signHex, publicKey, { der, hash, userId } = {}) {
138
- let hashHex = typeof msg === "string" ? utf8ToHex(msg) : arrayToHex(msg);
139
- if (hash) {
140
- // sm3杂凑
141
- hashHex = getHash(hashHex, publicKey, userId);
142
- }
143
- let r;
144
- let s;
145
- if (der) {
146
- const decodeDerObj = decodeDer(signHex); // asn.1 der 解码
147
- r = decodeDerObj.r;
148
- s = decodeDerObj.s;
149
- }
150
- else {
151
- r = new BigInteger(signHex.substring(0, 64), 16);
152
- s = new BigInteger(signHex.substring(64), 16);
153
- }
154
- const PA = curve.decodePointHex(publicKey);
155
- const e = new BigInteger(hashHex, 16);
156
- // t = (r + s) mod n
157
- const t = r.add(s).mod(n);
158
- if (t.equals(BigInteger.ZERO))
159
- return false;
160
- // x1y1 = s * G + t * PA
161
- const x1y1 = G.multiply(s).add(PA.multiply(t));
162
- // R = (e + x1) mod n
163
- const R = e.add(x1y1.getX().toBigInteger()).mod(n);
164
- return r.equals(R);
165
- }
166
- /**
167
- * sm3杂凑算法
168
- */
169
- function getHash(hashHex, publicKey, userId = "1234567812345678") {
170
- // z = hash(entl || userId || a || b || gx || gy || px || py)
171
- userId = utf8ToHex(userId);
172
- const a = leftPad(G.curve.a.toBigInteger().toRadix(16), 64);
173
- const b = leftPad(G.curve.b.toBigInteger().toRadix(16), 64);
174
- const gx = leftPad(G.getX().toBigInteger().toRadix(16), 64);
175
- const gy = leftPad(G.getY().toBigInteger().toRadix(16), 64);
176
- let px;
177
- let py;
178
- if (publicKey.length === 128) {
179
- px = publicKey.substr(0, 64);
180
- py = publicKey.substr(64, 64);
181
- }
182
- else {
183
- const point = G.curve.decodePointHex(publicKey);
184
- px = leftPad(point.getX().toBigInteger().toRadix(16), 64);
185
- py = leftPad(point.getY().toBigInteger().toRadix(16), 64);
186
- }
187
- const data = hexToArray(userId + a + b + gx + gy + px + py);
188
- const entl = userId.length * 4;
189
- data.unshift(entl & 0x00ff);
190
- data.unshift((entl >> 8) & 0x00ff);
191
- const z = sm3(data);
192
- // e = hash(z || msg)
193
- return arrayToHex(sm3(z.concat(hexToArray(hashHex))));
194
- }
195
- /**
196
- * 计算公钥
197
- */
198
- function getPublicKeyFromPrivateKey(privateKey) {
199
- const PA = G.multiply(new BigInteger(privateKey, 16));
200
- const x = leftPad(PA.getX().toBigInteger().toString(16), 64);
201
- const y = leftPad(PA.getY().toBigInteger().toString(16), 64);
202
- return "04" + x + y;
203
- }
204
- /**
205
- * 获取椭圆曲线点
206
- */
207
- function getPoint() {
208
- const keypair = generateKeyPairHex$1();
209
- const PA = curve.decodePointHex(keypair.publicKey);
210
- keypair.k = new BigInteger(keypair.privateKey, 16);
211
- keypair.x1 = PA.getX().toBigInteger();
212
- return keypair;
213
- }
214
- // es6 export
215
- const generateKeyPairHex = generateKeyPairHex$1;
216
- const compressPublicKeyHex = compressPublicKeyHex$1;
217
- const comparePublicKeyHex = comparePublicKeyHex$1;
218
- const verifyPublicKey = verifyPublicKey$1;
219
-
220
- export { comparePublicKeyHex, compressPublicKeyHex, doDecrypt, doEncrypt, doSignature, doVerifySignature, generateKeyPairHex, getPoint, getPublicKeyFromPrivateKey, verifyPublicKey };
@@ -1,7 +0,0 @@
1
- /**
2
- * sm3 加密
3
- * @param {String} str 字符串
4
- * @param {Object} options 配置
5
- * @returns {String} 返回加密后的字符串
6
- */
7
- export function encrypt(str: string, options: Object): string;
@@ -1,13 +0,0 @@
1
- import SM3 from './sm3.mjs';
2
-
3
- /**
4
- * sm3 加密
5
- * @param {String} str 字符串
6
- * @param {Object} options 配置
7
- * @returns {String} 返回加密后的字符串
8
- */
9
- function encrypt(str, options) {
10
- return SM3(str, options);
11
- }
12
-
13
- export { encrypt };
@@ -1 +0,0 @@
1
- export default function _default(input: any, options: any): any;
@@ -1,91 +0,0 @@
1
- import { hmac, sm3 } from '../lib/sm3.mjs';
2
-
3
- /**
4
- * 补全16进制字符串
5
- */
6
- function leftPad(input, num) {
7
- if (input.length >= num)
8
- return input;
9
- return new Array(num - input.length + 1).join("0") + input;
10
- }
11
- /**
12
- * 字节数组转 16 进制串
13
- */
14
- function ArrayToHex(arr) {
15
- return arr
16
- .map((item) => {
17
- item = item.toString(16);
18
- return item.length === 1 ? "0" + item : item;
19
- })
20
- .join("");
21
- }
22
- /**
23
- * 转成字节数组
24
- */
25
- function hexToArray(hexStr) {
26
- const words = [];
27
- let hexStrLength = hexStr.length;
28
- if (hexStrLength % 2 !== 0) {
29
- hexStr = leftPad(hexStr, hexStrLength + 1);
30
- }
31
- hexStrLength = hexStr.length;
32
- for (let i = 0; i < hexStrLength; i += 2) {
33
- words.push(parseInt(hexStr.substr(i, 2), 16));
34
- }
35
- return words;
36
- }
37
- /**
38
- * utf8 串转字节数组
39
- */
40
- function utf8ToArray(str) {
41
- const arr = [];
42
- for (let i = 0, len = str.length; i < len; i++) {
43
- const point = str.codePointAt(i);
44
- if (point <= 0x007f) {
45
- // 单字节,标量值:00000000 00000000 0zzzzzzz
46
- arr.push(point);
47
- }
48
- else if (point <= 0x07ff) {
49
- // 双字节,标量值:00000000 00000yyy yyzzzzzz
50
- arr.push(0xc0 | (point >>> 6)); // 110yyyyy(0xc0-0xdf)
51
- arr.push(0x80 | (point & 0x3f)); // 10zzzzzz(0x80-0xbf)
52
- }
53
- else if (point <= 0xd7ff || (point >= 0xe000 && point <= 0xffff)) {
54
- // 三字节:标量值:00000000 xxxxyyyy yyzzzzzz
55
- arr.push(0xe0 | (point >>> 12)); // 1110xxxx(0xe0-0xef)
56
- arr.push(0x80 | ((point >>> 6) & 0x3f)); // 10yyyyyy(0x80-0xbf)
57
- arr.push(0x80 | (point & 0x3f)); // 10zzzzzz(0x80-0xbf)
58
- }
59
- else if (point >= 0x010000 && point <= 0x10ffff) {
60
- // 四字节:标量值:000wwwxx xxxxyyyy yyzzzzzz
61
- i++;
62
- arr.push(0xf0 | ((point >>> 18) & 0x1c)); // 11110www(0xf0-0xf7)
63
- arr.push(0x80 | ((point >>> 12) & 0x3f)); // 10xxxxxx(0x80-0xbf)
64
- arr.push(0x80 | ((point >>> 6) & 0x3f)); // 10yyyyyy(0x80-0xbf)
65
- arr.push(0x80 | (point & 0x3f)); // 10zzzzzz(0x80-0xbf)
66
- }
67
- else {
68
- // 五、六字节,暂时不支持
69
- arr.push(point);
70
- throw new Error("input is not supported");
71
- }
72
- }
73
- return arr;
74
- }
75
- /* 以下是内部实现需要的es模块化导出方法 */
76
- function SM3 (input, options) {
77
- input = typeof input === "string" ? utf8ToArray(input) : Array.prototype.slice.call(input);
78
- if (options) {
79
- const mode = options.mode || "hmac";
80
- if (mode !== "hmac")
81
- throw new Error("invalid mode");
82
- let key = options.key;
83
- if (!key)
84
- throw new Error("invalid key");
85
- key = typeof key === "string" ? hexToArray(key) : Array.prototype.slice.call(key);
86
- return ArrayToHex(hmac(input, key));
87
- }
88
- return ArrayToHex(sm3(input));
89
- }
90
-
91
- export { SM3 as default };
@@ -1,16 +0,0 @@
1
- /**
2
- * sm4 加密
3
- * @param {String} str 字符串
4
- * @param {String} key 秘钥
5
- * @param {Object} options 配置
6
- * @returns {String} 返回加密后的字符串
7
- */
8
- export function encrypt(str: string, key: string, options: Object): string;
9
- /**
10
- * sm4 解密
11
- * @param {String} str 字符串
12
- * @param {String} key 秘钥
13
- * @param {Object} options 配置
14
- * @returns {String} 返回解密后的数据
15
- */
16
- export function decrypt(str: string, key: string, options: Object): string;
@@ -1,24 +0,0 @@
1
- import { encrypt as encrypt$1, decrypt as decrypt$1 } from './sm4.mjs';
2
-
3
- /**
4
- * sm4 加密
5
- * @param {String} str 字符串
6
- * @param {String} key 秘钥
7
- * @param {Object} options 配置
8
- * @returns {String} 返回加密后的字符串
9
- */
10
- function encrypt(str, key, options) {
11
- return encrypt$1(str, key, options);
12
- }
13
- /**
14
- * sm4 解密
15
- * @param {String} str 字符串
16
- * @param {String} key 秘钥
17
- * @param {Object} options 配置
18
- * @returns {String} 返回解密后的数据
19
- */
20
- function decrypt(str, key, options) {
21
- return decrypt$1(str, key, options);
22
- }
23
-
24
- export { decrypt, encrypt };
@@ -1,2 +0,0 @@
1
- export function encrypt(inArray: any, key: any, options: any): any;
2
- export function decrypt(inArray: any, key: any, options: any): any;