@cogitator-ai/wasm-tools 0.5.10 → 0.6.0

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 (123) hide show
  1. package/README.md +84 -25
  2. package/dist/index.d.ts +22 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +81 -14
  5. package/dist/index.js.map +1 -1
  6. package/dist/manager/file-watcher.d.ts.map +1 -1
  7. package/dist/manager/file-watcher.js +6 -0
  8. package/dist/manager/file-watcher.js.map +1 -1
  9. package/dist/manager/types.d.ts +11 -3
  10. package/dist/manager/types.d.ts.map +1 -1
  11. package/dist/manager/wasm-loader.d.ts +1 -0
  12. package/dist/manager/wasm-loader.d.ts.map +1 -1
  13. package/dist/manager/wasm-loader.js +26 -5
  14. package/dist/manager/wasm-loader.js.map +1 -1
  15. package/dist/manager/wasm-tool-manager.d.ts +6 -0
  16. package/dist/manager/wasm-tool-manager.d.ts.map +1 -1
  17. package/dist/manager/wasm-tool-manager.js +115 -30
  18. package/dist/manager/wasm-tool-manager.js.map +1 -1
  19. package/dist/runtime.d.ts +11 -0
  20. package/dist/runtime.d.ts.map +1 -0
  21. package/dist/runtime.js +104 -0
  22. package/dist/runtime.js.map +1 -0
  23. package/dist/wasm/base64.wasm +0 -0
  24. package/dist/wasm/calc.wasm +0 -0
  25. package/dist/wasm/compression.wasm +0 -0
  26. package/dist/wasm/csv.wasm +0 -0
  27. package/dist/wasm/datetime.wasm +0 -0
  28. package/dist/wasm/diff.wasm +0 -0
  29. package/dist/wasm/hash.wasm +0 -0
  30. package/dist/wasm/json.wasm +0 -0
  31. package/dist/wasm/markdown.wasm +0 -0
  32. package/dist/wasm/regex.wasm +0 -0
  33. package/dist/wasm/signing.wasm +0 -0
  34. package/dist/wasm/slug.wasm +0 -0
  35. package/dist/wasm/validation.wasm +0 -0
  36. package/dist/wasm/xml.wasm +0 -0
  37. package/package.json +5 -6
  38. package/dist/__tests__/file-watcher.test.d.ts +0 -2
  39. package/dist/__tests__/file-watcher.test.d.ts.map +0 -1
  40. package/dist/__tests__/file-watcher.test.js +0 -99
  41. package/dist/__tests__/file-watcher.test.js.map +0 -1
  42. package/dist/__tests__/index.test.d.ts +0 -2
  43. package/dist/__tests__/index.test.d.ts.map +0 -1
  44. package/dist/__tests__/index.test.js +0 -226
  45. package/dist/__tests__/index.test.js.map +0 -1
  46. package/dist/__tests__/wasm-loader.test.d.ts +0 -2
  47. package/dist/__tests__/wasm-loader.test.d.ts.map +0 -1
  48. package/dist/__tests__/wasm-loader.test.js +0 -68
  49. package/dist/__tests__/wasm-loader.test.js.map +0 -1
  50. package/dist/__tests__/wasm-tool-manager.test.d.ts +0 -2
  51. package/dist/__tests__/wasm-tool-manager.test.d.ts.map +0 -1
  52. package/dist/__tests__/wasm-tool-manager.test.js +0 -166
  53. package/dist/__tests__/wasm-tool-manager.test.js.map +0 -1
  54. package/dist/plugins/base64.d.ts +0 -12
  55. package/dist/plugins/base64.d.ts.map +0 -1
  56. package/dist/plugins/base64.js +0 -95
  57. package/dist/plugins/base64.js.map +0 -1
  58. package/dist/plugins/calc.d.ts +0 -12
  59. package/dist/plugins/calc.d.ts.map +0 -1
  60. package/dist/plugins/calc.js +0 -95
  61. package/dist/plugins/calc.js.map +0 -1
  62. package/dist/plugins/compression.d.ts +0 -2
  63. package/dist/plugins/compression.d.ts.map +0 -1
  64. package/dist/plugins/compression.js +0 -545
  65. package/dist/plugins/compression.js.map +0 -1
  66. package/dist/plugins/csv.d.ts +0 -2
  67. package/dist/plugins/csv.d.ts.map +0 -1
  68. package/dist/plugins/csv.js +0 -136
  69. package/dist/plugins/csv.js.map +0 -1
  70. package/dist/plugins/datetime.d.ts +0 -2
  71. package/dist/plugins/datetime.d.ts.map +0 -1
  72. package/dist/plugins/datetime.js +0 -186
  73. package/dist/plugins/datetime.js.map +0 -1
  74. package/dist/plugins/diff.d.ts +0 -2
  75. package/dist/plugins/diff.d.ts.map +0 -1
  76. package/dist/plugins/diff.js +0 -187
  77. package/dist/plugins/diff.js.map +0 -1
  78. package/dist/plugins/hash.d.ts +0 -12
  79. package/dist/plugins/hash.d.ts.map +0 -1
  80. package/dist/plugins/hash.js +0 -309
  81. package/dist/plugins/hash.js.map +0 -1
  82. package/dist/plugins/json.d.ts +0 -12
  83. package/dist/plugins/json.d.ts.map +0 -1
  84. package/dist/plugins/json.js +0 -70
  85. package/dist/plugins/json.js.map +0 -1
  86. package/dist/plugins/markdown.d.ts +0 -2
  87. package/dist/plugins/markdown.d.ts.map +0 -1
  88. package/dist/plugins/markdown.js +0 -213
  89. package/dist/plugins/markdown.js.map +0 -1
  90. package/dist/plugins/regex.d.ts +0 -2
  91. package/dist/plugins/regex.d.ts.map +0 -1
  92. package/dist/plugins/regex.js +0 -120
  93. package/dist/plugins/regex.js.map +0 -1
  94. package/dist/plugins/signing.d.ts +0 -2
  95. package/dist/plugins/signing.d.ts.map +0 -1
  96. package/dist/plugins/signing.js +0 -576
  97. package/dist/plugins/signing.js.map +0 -1
  98. package/dist/plugins/slug.d.ts +0 -2
  99. package/dist/plugins/slug.d.ts.map +0 -1
  100. package/dist/plugins/slug.js +0 -180
  101. package/dist/plugins/slug.js.map +0 -1
  102. package/dist/plugins/validation.d.ts +0 -2
  103. package/dist/plugins/validation.d.ts.map +0 -1
  104. package/dist/plugins/validation.js +0 -105
  105. package/dist/plugins/validation.js.map +0 -1
  106. package/dist/plugins/xml.d.ts +0 -2
  107. package/dist/plugins/xml.d.ts.map +0 -1
  108. package/dist/plugins/xml.js +0 -297
  109. package/dist/plugins/xml.js.map +0 -1
  110. package/dist/temp/base64.js +0 -102
  111. package/dist/temp/calc.js +0 -102
  112. package/dist/temp/compression.js +0 -738
  113. package/dist/temp/csv.js +0 -155
  114. package/dist/temp/datetime.js +0 -201
  115. package/dist/temp/diff.js +0 -198
  116. package/dist/temp/hash.js +0 -423
  117. package/dist/temp/json.js +0 -80
  118. package/dist/temp/markdown.js +0 -224
  119. package/dist/temp/regex.js +0 -141
  120. package/dist/temp/signing.js +0 -584
  121. package/dist/temp/slug.js +0 -198
  122. package/dist/temp/validation.js +0 -125
  123. package/dist/temp/xml.js +0 -295
@@ -1,576 +0,0 @@
1
- function hexToBytes(hex) {
2
- if (hex.length % 2 !== 0) {
3
- throw new Error('Hex string must have even length');
4
- }
5
- if (!/^[0-9a-fA-F]*$/.test(hex)) {
6
- throw new Error('Invalid hex characters');
7
- }
8
- const bytes = new Uint8Array(hex.length / 2);
9
- for (let i = 0; i < hex.length; i += 2) {
10
- bytes[i / 2] = parseInt(hex.substr(i, 2), 16);
11
- }
12
- return bytes;
13
- }
14
- function bytesToHex(bytes) {
15
- return Array.from(bytes)
16
- .map((b) => b.toString(16).padStart(2, '0'))
17
- .join('');
18
- }
19
- const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
20
- function base64ToBytes(b64) {
21
- const clean = b64.replace(/[^A-Za-z0-9+/]/g, '');
22
- const len = clean.length;
23
- const outLen = Math.floor((len * 3) / 4) - (b64.endsWith('==') ? 2 : b64.endsWith('=') ? 1 : 0);
24
- const out = new Uint8Array(outLen);
25
- const lookup = {};
26
- for (let i = 0; i < B64.length; i++)
27
- lookup[B64[i]] = i;
28
- let j = 0;
29
- for (let i = 0; i < len; i += 4) {
30
- const a = lookup[clean[i]] ?? 0;
31
- const b = lookup[clean[i + 1]] ?? 0;
32
- const c = lookup[clean[i + 2]] ?? 0;
33
- const d = lookup[clean[i + 3]] ?? 0;
34
- out[j++] = (a << 2) | (b >> 4);
35
- if (j < outLen)
36
- out[j++] = ((b & 15) << 4) | (c >> 2);
37
- if (j < outLen)
38
- out[j++] = ((c & 3) << 6) | d;
39
- }
40
- return out;
41
- }
42
- function bytesToBase64(bytes) {
43
- let r = '';
44
- for (let i = 0; i < bytes.length; i += 3) {
45
- const b1 = bytes[i], b2 = bytes[i + 1] ?? 0, b3 = bytes[i + 2] ?? 0;
46
- r += B64[b1 >> 2];
47
- r += B64[((b1 & 3) << 4) | (b2 >> 4)];
48
- r += i + 1 < bytes.length ? B64[((b2 & 15) << 2) | (b3 >> 6)] : '=';
49
- r += i + 2 < bytes.length ? B64[b3 & 63] : '=';
50
- }
51
- return r;
52
- }
53
- function decodeKey(key, encoding) {
54
- return encoding === 'base64' ? base64ToBytes(key) : hexToBytes(key);
55
- }
56
- function encodeKey(bytes, encoding) {
57
- return encoding === 'base64' ? bytesToBase64(bytes) : bytesToHex(bytes);
58
- }
59
- function sha512(message) {
60
- const K = [
61
- 0x428a2f98n,
62
- 0xd728ae22n,
63
- 0x71374491n,
64
- 0x23ef65cdn,
65
- 0xb5c0fbcfn,
66
- 0xec4d3b2fn,
67
- 0xe9b5dba5n,
68
- 0x8189dbbcn,
69
- 0x3956c25bn,
70
- 0xf348b538n,
71
- 0x59f111f1n,
72
- 0xb605d019n,
73
- 0x923f82a4n,
74
- 0xaf194f9bn,
75
- 0xab1c5ed5n,
76
- 0xda6d8118n,
77
- 0xd807aa98n,
78
- 0xa3030242n,
79
- 0x12835b01n,
80
- 0x45706fben,
81
- 0x243185ben,
82
- 0x4ee4b28cn,
83
- 0x550c7dc3n,
84
- 0xd5ffb4e2n,
85
- 0x72be5d74n,
86
- 0xf27b896fn,
87
- 0x80deb1fen,
88
- 0x3b1696b1n,
89
- 0x9bdc06a7n,
90
- 0x25c71235n,
91
- 0xc19bf174n,
92
- 0xcf692694n,
93
- 0xe49b69c1n,
94
- 0x9ef14ad2n,
95
- 0xefbe4786n,
96
- 0x384f25e3n,
97
- 0x0fc19dc6n,
98
- 0x8b8cd5b5n,
99
- 0x240ca1ccn,
100
- 0x77ac9c65n,
101
- 0x2de92c6fn,
102
- 0x592b0275n,
103
- 0x4a7484aan,
104
- 0x6ea6e483n,
105
- 0x5cb0a9dcn,
106
- 0xbd41fbd4n,
107
- 0x76f988dan,
108
- 0x831153b5n,
109
- 0x983e5152n,
110
- 0xee66dfabn,
111
- 0xa831c66dn,
112
- 0x2db43210n,
113
- 0xb00327c8n,
114
- 0x98fb213fn,
115
- 0xbf597fc7n,
116
- 0xbeef0ee4n,
117
- 0xc6e00bf3n,
118
- 0x3da88fc2n,
119
- 0xd5a79147n,
120
- 0x930aa725n,
121
- 0x06ca6351n,
122
- 0xe003826fn,
123
- 0x14292967n,
124
- 0x0a0e6e70n,
125
- 0x27b70a85n,
126
- 0x46d22ffcn,
127
- 0x2e1b2138n,
128
- 0x5c26c926n,
129
- 0x4d2c6dfcn,
130
- 0x5ac42aedn,
131
- 0x53380d13n,
132
- 0x9d95b3dfn,
133
- 0x650a7354n,
134
- 0x8baf63den,
135
- 0x766a0abbn,
136
- 0x3c77b2a8n,
137
- 0x81c2c92en,
138
- 0x47edaee6n,
139
- 0x92722c85n,
140
- 0x1482353bn,
141
- 0xa2bfe8a1n,
142
- 0x4cf10364n,
143
- 0xa81a664bn,
144
- 0xbc423001n,
145
- 0xc24b8b70n,
146
- 0xd0f89791n,
147
- 0xc76c51a3n,
148
- 0x0654be30n,
149
- 0xd192e819n,
150
- 0xd6ef5218n,
151
- 0xd6990624n,
152
- 0x5565a910n,
153
- 0xf40e3585n,
154
- 0x5771202an,
155
- 0x106aa070n,
156
- 0x32bbd1b8n,
157
- 0x19a4c116n,
158
- 0xb8d2d0c8n,
159
- 0x1e376c08n,
160
- 0x5141ab53n,
161
- 0x2748774cn,
162
- 0xdf8eeb99n,
163
- 0x34b0bcb5n,
164
- 0xe19b48a8n,
165
- 0x391c0cb3n,
166
- 0xc5c95a63n,
167
- 0x4ed8aa4an,
168
- 0xe3418acbn,
169
- 0x5b9cca4fn,
170
- 0x7763e373n,
171
- 0x682e6ff3n,
172
- 0xd6b2b8a3n,
173
- 0x748f82een,
174
- 0x5defb2fcn,
175
- 0x78a5636fn,
176
- 0x43172f60n,
177
- 0x84c87814n,
178
- 0xa1f0ab72n,
179
- 0x8cc70208n,
180
- 0x1a6439ecn,
181
- 0x90befffan,
182
- 0x23631e28n,
183
- 0xa4506cebn,
184
- 0xde82bde9n,
185
- 0xbef9a3f7n,
186
- 0xb2c67915n,
187
- 0xc67178f2n,
188
- 0xe372532bn,
189
- 0xca273ecen,
190
- 0xea26619cn,
191
- 0xd186b8c7n,
192
- 0x21c0c207n,
193
- 0xeada7dd6n,
194
- 0xcde0eb1en,
195
- 0xf57d4f7fn,
196
- 0xee6ed178n,
197
- 0x06f067aan,
198
- 0x72176fban,
199
- 0x0a637dc5n,
200
- 0xa2c898a6n,
201
- 0x113f9804n,
202
- 0xbef90daen,
203
- 0x1b710b35n,
204
- 0x131c471bn,
205
- 0x28db77f5n,
206
- 0x23047d84n,
207
- 0x32caab7bn,
208
- 0x40c72493n,
209
- 0x3c9ebe0an,
210
- 0x15c9bebcn,
211
- 0x431d67c4n,
212
- 0x9c100d4cn,
213
- 0x4cc5d4ben,
214
- 0xcb3e42b6n,
215
- 0x597f299cn,
216
- 0xfc657e2an,
217
- 0x5fcb6fabn,
218
- 0x3ad6faecn,
219
- 0x6c44198cn,
220
- 0x4a475817n,
221
- ];
222
- const H = [
223
- 0x6a09e667f3bcc908n,
224
- 0xbb67ae8584caa73bn,
225
- 0x3c6ef372fe94f82bn,
226
- 0xa54ff53a5f1d36f1n,
227
- 0x510e527fade682d1n,
228
- 0x9b05688c2b3e6c1fn,
229
- 0x1f83d9abfb41bd6bn,
230
- 0x5be0cd19137e2179n,
231
- ];
232
- const msg = new Uint8Array(message);
233
- const bitLen = BigInt(msg.length * 8);
234
- const padLen = (128 - ((msg.length + 17) % 128)) % 128;
235
- const padded = new Uint8Array(msg.length + 1 + padLen + 16);
236
- padded.set(msg);
237
- padded[msg.length] = 0x80;
238
- for (let i = 0; i < 8; i++) {
239
- padded[padded.length - 1 - i] = Number((bitLen >> BigInt(i * 8)) & 0xffn);
240
- }
241
- const rotr = (x, n) => ((x >> n) | (x << (64n - n))) & 0xffffffffffffffffn;
242
- for (let chunk = 0; chunk < padded.length; chunk += 128) {
243
- const w = new Array(80);
244
- for (let i = 0; i < 16; i++) {
245
- w[i] = 0n;
246
- for (let j = 0; j < 8; j++) {
247
- w[i] = (w[i] << 8n) | BigInt(padded[chunk + i * 8 + j]);
248
- }
249
- }
250
- for (let i = 16; i < 80; i++) {
251
- const s0 = rotr(w[i - 15], 1n) ^ rotr(w[i - 15], 8n) ^ (w[i - 15] >> 7n);
252
- const s1 = rotr(w[i - 2], 19n) ^ rotr(w[i - 2], 61n) ^ (w[i - 2] >> 6n);
253
- w[i] = (w[i - 16] + s0 + w[i - 7] + s1) & 0xffffffffffffffffn;
254
- }
255
- let [a, b, c, d, e, f, g, h] = H;
256
- for (let i = 0; i < 80; i++) {
257
- const S1 = rotr(e, 14n) ^ rotr(e, 18n) ^ rotr(e, 41n);
258
- const ch = (e & f) ^ (~e & g);
259
- const ki = (K[i * 2] << 32n) | K[i * 2 + 1];
260
- const temp1 = (h + S1 + ch + ki + w[i]) & 0xffffffffffffffffn;
261
- const S0 = rotr(a, 28n) ^ rotr(a, 34n) ^ rotr(a, 39n);
262
- const maj = (a & b) ^ (a & c) ^ (b & c);
263
- const temp2 = (S0 + maj) & 0xffffffffffffffffn;
264
- h = g;
265
- g = f;
266
- f = e;
267
- e = (d + temp1) & 0xffffffffffffffffn;
268
- d = c;
269
- c = b;
270
- b = a;
271
- a = (temp1 + temp2) & 0xffffffffffffffffn;
272
- }
273
- H[0] = (H[0] + a) & 0xffffffffffffffffn;
274
- H[1] = (H[1] + b) & 0xffffffffffffffffn;
275
- H[2] = (H[2] + c) & 0xffffffffffffffffn;
276
- H[3] = (H[3] + d) & 0xffffffffffffffffn;
277
- H[4] = (H[4] + e) & 0xffffffffffffffffn;
278
- H[5] = (H[5] + f) & 0xffffffffffffffffn;
279
- H[6] = (H[6] + g) & 0xffffffffffffffffn;
280
- H[7] = (H[7] + h) & 0xffffffffffffffffn;
281
- }
282
- const result = new Uint8Array(64);
283
- for (let i = 0; i < 8; i++) {
284
- for (let j = 0; j < 8; j++) {
285
- result[i * 8 + j] = Number((H[i] >> BigInt((7 - j) * 8)) & 0xffn);
286
- }
287
- }
288
- return result;
289
- }
290
- const ED25519_P = 2n ** 255n - 19n;
291
- const ED25519_L = 2n ** 252n + 27742317777372353535851937790883648493n;
292
- const ED25519_D = (-121665n * modInv(121666n, ED25519_P)) % ED25519_P;
293
- function mod(a, m) {
294
- return ((a % m) + m) % m;
295
- }
296
- function modInv(a, m) {
297
- let [old_r, r] = [a, m];
298
- let [old_s, s] = [1n, 0n];
299
- while (r !== 0n) {
300
- const q = old_r / r;
301
- [old_r, r] = [r, old_r - q * r];
302
- [old_s, s] = [s, old_s - q * s];
303
- }
304
- return mod(old_s, m);
305
- }
306
- function modPow(base, exp, m) {
307
- let result = 1n;
308
- base = mod(base, m);
309
- while (exp > 0n) {
310
- if (exp & 1n)
311
- result = mod(result * base, m);
312
- exp >>= 1n;
313
- base = mod(base * base, m);
314
- }
315
- return result;
316
- }
317
- function pointAdd(p1, p2) {
318
- const a = (mod(p1.y - p1.x, ED25519_P) * mod(p2.y - p2.x, ED25519_P)) % ED25519_P;
319
- const b = (mod(p1.y + p1.x, ED25519_P) * mod(p2.y + p2.x, ED25519_P)) % ED25519_P;
320
- const c = (2n * p1.t * p2.t * ED25519_D) % ED25519_P;
321
- const d = (2n * p1.z * p2.z) % ED25519_P;
322
- const e = mod(b - a, ED25519_P);
323
- const f = mod(d - c, ED25519_P);
324
- const g = mod(d + c, ED25519_P);
325
- const h = mod(b + a, ED25519_P);
326
- return {
327
- x: mod(e * f, ED25519_P),
328
- y: mod(g * h, ED25519_P),
329
- z: mod(f * g, ED25519_P),
330
- t: mod(e * h, ED25519_P),
331
- };
332
- }
333
- function pointDouble(p) {
334
- const a = mod(p.x * p.x, ED25519_P);
335
- const b = mod(p.y * p.y, ED25519_P);
336
- const c = 2n * mod(p.z * p.z, ED25519_P);
337
- const h = mod(a + b, ED25519_P);
338
- const e = mod(h - mod((p.x + p.y) * (p.x + p.y), ED25519_P), ED25519_P);
339
- const g = mod(a - b, ED25519_P);
340
- const f = mod(c + g, ED25519_P);
341
- return {
342
- x: mod(e * f, ED25519_P),
343
- y: mod(g * h, ED25519_P),
344
- z: mod(f * g, ED25519_P),
345
- t: mod(e * h, ED25519_P),
346
- };
347
- }
348
- function scalarMult(k, p) {
349
- let result = { x: 0n, y: 1n, z: 1n, t: 0n };
350
- let temp = p;
351
- while (k > 0n) {
352
- if (k & 1n)
353
- result = pointAdd(result, temp);
354
- temp = pointDouble(temp);
355
- k >>= 1n;
356
- }
357
- return result;
358
- }
359
- function pointToBytes(p) {
360
- const zi = modInv(p.z, ED25519_P);
361
- const x = mod(p.x * zi, ED25519_P);
362
- const y = mod(p.y * zi, ED25519_P);
363
- const bytes = new Uint8Array(32);
364
- for (let i = 0; i < 32; i++) {
365
- bytes[i] = Number((y >> BigInt(i * 8)) & 0xffn);
366
- }
367
- bytes[31] |= Number((x & 1n) << 7n);
368
- return bytes;
369
- }
370
- function bytesToPoint(bytes) {
371
- let y = 0n;
372
- for (let i = 0; i < 32; i++) {
373
- y |= BigInt(bytes[i] & (i === 31 ? 0x7f : 0xff)) << BigInt(i * 8);
374
- }
375
- const xSign = (bytes[31] >> 7) & 1;
376
- const y2 = mod(y * y, ED25519_P);
377
- const x2 = mod((y2 - 1n) * modInv(ED25519_D * y2 + 1n, ED25519_P), ED25519_P);
378
- let x = modPow(x2, (ED25519_P + 3n) / 8n, ED25519_P);
379
- if (mod(x * x - x2, ED25519_P) !== 0n) {
380
- x = mod(x * modPow(2n, (ED25519_P - 1n) / 4n, ED25519_P), ED25519_P);
381
- }
382
- if (Number(x & 1n) !== xSign) {
383
- x = mod(-x, ED25519_P);
384
- }
385
- return { x, y, z: 1n, t: mod(x * y, ED25519_P) };
386
- }
387
- const ED25519_G = (() => {
388
- const gy = (4n * modInv(5n, ED25519_P)) % ED25519_P;
389
- const gx2 = mod((gy * gy - 1n) * modInv(ED25519_D * gy * gy + 1n, ED25519_P), ED25519_P);
390
- let gx = modPow(gx2, (ED25519_P + 3n) / 8n, ED25519_P);
391
- if (mod(gx * gx - gx2, ED25519_P) !== 0n) {
392
- gx = mod(gx * modPow(2n, (ED25519_P - 1n) / 4n, ED25519_P), ED25519_P);
393
- }
394
- if (gx & 1n)
395
- gx = mod(-gx, ED25519_P);
396
- return { x: gx, y: gy, z: 1n, t: mod(gx * gy, ED25519_P) };
397
- })();
398
- function ed25519GenerateKeypair(seed) {
399
- const h = sha512(seed);
400
- h[0] &= 248;
401
- h[31] &= 127;
402
- h[31] |= 64;
403
- let scalar = 0n;
404
- for (let i = 0; i < 32; i++) {
405
- scalar |= BigInt(h[i]) << BigInt(i * 8);
406
- }
407
- const pubPoint = scalarMult(scalar, ED25519_G);
408
- const publicKey = pointToBytes(pubPoint);
409
- return { privateKey: seed, publicKey };
410
- }
411
- function ed25519Sign(message, privateKey) {
412
- const h = sha512(privateKey);
413
- h[0] &= 248;
414
- h[31] &= 127;
415
- h[31] |= 64;
416
- let scalar = 0n;
417
- for (let i = 0; i < 32; i++) {
418
- scalar |= BigInt(h[i]) << BigInt(i * 8);
419
- }
420
- const pubPoint = scalarMult(scalar, ED25519_G);
421
- const publicKey = pointToBytes(pubPoint);
422
- const prefix = h.slice(32);
423
- const rHash = sha512(new Uint8Array([...prefix, ...message]));
424
- let r = 0n;
425
- for (let i = 0; i < 64; i++) {
426
- r |= BigInt(rHash[i]) << BigInt(i * 8);
427
- }
428
- r = mod(r, ED25519_L);
429
- const R = scalarMult(r, ED25519_G);
430
- const Rbytes = pointToBytes(R);
431
- const kHash = sha512(new Uint8Array([...Rbytes, ...publicKey, ...message]));
432
- let k = 0n;
433
- for (let i = 0; i < 64; i++) {
434
- k |= BigInt(kHash[i]) << BigInt(i * 8);
435
- }
436
- k = mod(k, ED25519_L);
437
- const s = mod(r + k * scalar, ED25519_L);
438
- const signature = new Uint8Array(64);
439
- signature.set(Rbytes);
440
- for (let i = 0; i < 32; i++) {
441
- signature[32 + i] = Number((s >> BigInt(i * 8)) & 0xffn);
442
- }
443
- return signature;
444
- }
445
- function ed25519Verify(message, signature, publicKey) {
446
- if (signature.length !== 64 || publicKey.length !== 32)
447
- return false;
448
- try {
449
- const Rbytes = signature.slice(0, 32);
450
- const R = bytesToPoint(Rbytes);
451
- const A = bytesToPoint(publicKey);
452
- let s = 0n;
453
- for (let i = 0; i < 32; i++) {
454
- s |= BigInt(signature[32 + i]) << BigInt(i * 8);
455
- }
456
- if (s >= ED25519_L)
457
- return false;
458
- const kHash = sha512(new Uint8Array([...Rbytes, ...publicKey, ...message]));
459
- let k = 0n;
460
- for (let i = 0; i < 64; i++) {
461
- k |= BigInt(kHash[i]) << BigInt(i * 8);
462
- }
463
- k = mod(k, ED25519_L);
464
- const sB = scalarMult(s, ED25519_G);
465
- const kA = scalarMult(k, A);
466
- const RkA = pointAdd(R, kA);
467
- const left = pointToBytes(sB);
468
- const right = pointToBytes(RkA);
469
- for (let i = 0; i < 32; i++) {
470
- if (left[i] !== right[i])
471
- return false;
472
- }
473
- return true;
474
- }
475
- catch {
476
- return false;
477
- }
478
- }
479
- function getRandomBytes(len) {
480
- const bytes = new Uint8Array(len);
481
- for (let i = 0; i < len; i++) {
482
- bytes[i] = Math.floor(Math.random() * 256);
483
- }
484
- return bytes;
485
- }
486
- export function signing() {
487
- try {
488
- const inputStr = Host.inputString();
489
- const input = JSON.parse(inputStr);
490
- const encoding = input.encoding ?? 'hex';
491
- const algorithm = input.algorithm;
492
- if (algorithm !== 'ed25519') {
493
- throw new Error('Only ed25519 is currently supported');
494
- }
495
- let output;
496
- switch (input.operation) {
497
- case 'generateKeypair': {
498
- const seed = getRandomBytes(32);
499
- const { privateKey, publicKey } = ed25519GenerateKeypair(seed);
500
- output = {
501
- privateKey: encodeKey(privateKey, encoding),
502
- publicKey: encodeKey(publicKey, encoding),
503
- algorithm,
504
- };
505
- break;
506
- }
507
- case 'sign': {
508
- if (!input.privateKey)
509
- throw new Error('privateKey required for signing');
510
- if (!input.message)
511
- throw new Error('message required for signing');
512
- const privateKey = decodeKey(input.privateKey, encoding);
513
- const message = new TextEncoder().encode(input.message);
514
- const signature = ed25519Sign(message, privateKey);
515
- output = {
516
- signature: encodeKey(signature, encoding),
517
- algorithm,
518
- };
519
- break;
520
- }
521
- case 'verify': {
522
- if (!input.publicKey)
523
- throw new Error('publicKey required for verification');
524
- if (!input.signature)
525
- throw new Error('signature required for verification');
526
- if (!input.message)
527
- throw new Error('message required for verification');
528
- const publicKey = decodeKey(input.publicKey, encoding);
529
- const signature = decodeKey(input.signature, encoding);
530
- const message = new TextEncoder().encode(input.message);
531
- const valid = ed25519Verify(message, signature, publicKey);
532
- output = {
533
- valid,
534
- algorithm,
535
- };
536
- break;
537
- }
538
- default:
539
- throw new Error(`Unknown operation: ${input.operation}`);
540
- }
541
- Host.outputString(JSON.stringify(output));
542
- return 0;
543
- }
544
- catch (error) {
545
- const output = {
546
- algorithm: 'unknown',
547
- error: error instanceof Error ? error.message : String(error),
548
- };
549
- Host.outputString(JSON.stringify(output));
550
- return 1;
551
- }
552
- }
553
- class TextEncoder {
554
- encode(str) {
555
- const bytes = [];
556
- for (let i = 0; i < str.length; i++) {
557
- let c = str.charCodeAt(i);
558
- if (c < 0x80) {
559
- bytes.push(c);
560
- }
561
- else if (c < 0x800) {
562
- bytes.push(0xc0 | (c >> 6), 0x80 | (c & 0x3f));
563
- }
564
- else if (c >= 0xd800 && c < 0xdc00 && i + 1 < str.length) {
565
- const c2 = str.charCodeAt(++i);
566
- c = 0x10000 + ((c & 0x3ff) << 10) + (c2 & 0x3ff);
567
- bytes.push(0xf0 | (c >> 18), 0x80 | ((c >> 12) & 0x3f), 0x80 | ((c >> 6) & 0x3f), 0x80 | (c & 0x3f));
568
- }
569
- else {
570
- bytes.push(0xe0 | (c >> 12), 0x80 | ((c >> 6) & 0x3f), 0x80 | (c & 0x3f));
571
- }
572
- }
573
- return new Uint8Array(bytes);
574
- }
575
- }
576
- //# sourceMappingURL=signing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/plugins/signing.ts"],"names":[],"mappings":"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AAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,W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"}
@@ -1,2 +0,0 @@
1
- export declare function slug(): number;
2
- //# sourceMappingURL=slug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../src/plugins/slug.ts"],"names":[],"mappings":"AAoLA,wBAAgB,IAAI,IAAI,MAAM,CA0B7B"}