@cogitator-ai/wasm-tools 0.5.11 → 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 (119) 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/types.d.ts +2 -0
  7. package/dist/manager/types.d.ts.map +1 -1
  8. package/dist/manager/wasm-loader.d.ts.map +1 -1
  9. package/dist/manager/wasm-loader.js +11 -2
  10. package/dist/manager/wasm-loader.js.map +1 -1
  11. package/dist/manager/wasm-tool-manager.d.ts +1 -0
  12. package/dist/manager/wasm-tool-manager.d.ts.map +1 -1
  13. package/dist/manager/wasm-tool-manager.js +56 -13
  14. package/dist/manager/wasm-tool-manager.js.map +1 -1
  15. package/dist/runtime.d.ts +11 -0
  16. package/dist/runtime.d.ts.map +1 -0
  17. package/dist/runtime.js +104 -0
  18. package/dist/runtime.js.map +1 -0
  19. package/dist/wasm/base64.wasm +0 -0
  20. package/dist/wasm/calc.wasm +0 -0
  21. package/dist/wasm/compression.wasm +0 -0
  22. package/dist/wasm/csv.wasm +0 -0
  23. package/dist/wasm/datetime.wasm +0 -0
  24. package/dist/wasm/diff.wasm +0 -0
  25. package/dist/wasm/hash.wasm +0 -0
  26. package/dist/wasm/json.wasm +0 -0
  27. package/dist/wasm/markdown.wasm +0 -0
  28. package/dist/wasm/regex.wasm +0 -0
  29. package/dist/wasm/signing.wasm +0 -0
  30. package/dist/wasm/slug.wasm +0 -0
  31. package/dist/wasm/validation.wasm +0 -0
  32. package/dist/wasm/xml.wasm +0 -0
  33. package/package.json +5 -6
  34. package/dist/__tests__/file-watcher.test.d.ts +0 -2
  35. package/dist/__tests__/file-watcher.test.d.ts.map +0 -1
  36. package/dist/__tests__/file-watcher.test.js +0 -99
  37. package/dist/__tests__/file-watcher.test.js.map +0 -1
  38. package/dist/__tests__/index.test.d.ts +0 -2
  39. package/dist/__tests__/index.test.d.ts.map +0 -1
  40. package/dist/__tests__/index.test.js +0 -226
  41. package/dist/__tests__/index.test.js.map +0 -1
  42. package/dist/__tests__/wasm-loader.test.d.ts +0 -2
  43. package/dist/__tests__/wasm-loader.test.d.ts.map +0 -1
  44. package/dist/__tests__/wasm-loader.test.js +0 -68
  45. package/dist/__tests__/wasm-loader.test.js.map +0 -1
  46. package/dist/__tests__/wasm-tool-manager.test.d.ts +0 -2
  47. package/dist/__tests__/wasm-tool-manager.test.d.ts.map +0 -1
  48. package/dist/__tests__/wasm-tool-manager.test.js +0 -166
  49. package/dist/__tests__/wasm-tool-manager.test.js.map +0 -1
  50. package/dist/plugins/base64.d.ts +0 -12
  51. package/dist/plugins/base64.d.ts.map +0 -1
  52. package/dist/plugins/base64.js +0 -144
  53. package/dist/plugins/base64.js.map +0 -1
  54. package/dist/plugins/calc.d.ts +0 -12
  55. package/dist/plugins/calc.d.ts.map +0 -1
  56. package/dist/plugins/calc.js +0 -102
  57. package/dist/plugins/calc.js.map +0 -1
  58. package/dist/plugins/compression.d.ts +0 -2
  59. package/dist/plugins/compression.d.ts.map +0 -1
  60. package/dist/plugins/compression.js +0 -549
  61. package/dist/plugins/compression.js.map +0 -1
  62. package/dist/plugins/csv.d.ts +0 -2
  63. package/dist/plugins/csv.d.ts.map +0 -1
  64. package/dist/plugins/csv.js +0 -142
  65. package/dist/plugins/csv.js.map +0 -1
  66. package/dist/plugins/datetime.d.ts +0 -2
  67. package/dist/plugins/datetime.d.ts.map +0 -1
  68. package/dist/plugins/datetime.js +0 -199
  69. package/dist/plugins/datetime.js.map +0 -1
  70. package/dist/plugins/diff.d.ts +0 -2
  71. package/dist/plugins/diff.d.ts.map +0 -1
  72. package/dist/plugins/diff.js +0 -187
  73. package/dist/plugins/diff.js.map +0 -1
  74. package/dist/plugins/hash.d.ts +0 -12
  75. package/dist/plugins/hash.d.ts.map +0 -1
  76. package/dist/plugins/hash.js +0 -310
  77. package/dist/plugins/hash.js.map +0 -1
  78. package/dist/plugins/json.d.ts +0 -12
  79. package/dist/plugins/json.d.ts.map +0 -1
  80. package/dist/plugins/json.js +0 -70
  81. package/dist/plugins/json.js.map +0 -1
  82. package/dist/plugins/markdown.d.ts +0 -2
  83. package/dist/plugins/markdown.d.ts.map +0 -1
  84. package/dist/plugins/markdown.js +0 -213
  85. package/dist/plugins/markdown.js.map +0 -1
  86. package/dist/plugins/regex.d.ts +0 -2
  87. package/dist/plugins/regex.d.ts.map +0 -1
  88. package/dist/plugins/regex.js +0 -120
  89. package/dist/plugins/regex.js.map +0 -1
  90. package/dist/plugins/signing.d.ts +0 -2
  91. package/dist/plugins/signing.d.ts.map +0 -1
  92. package/dist/plugins/signing.js +0 -589
  93. package/dist/plugins/signing.js.map +0 -1
  94. package/dist/plugins/slug.d.ts +0 -2
  95. package/dist/plugins/slug.d.ts.map +0 -1
  96. package/dist/plugins/slug.js +0 -183
  97. package/dist/plugins/slug.js.map +0 -1
  98. package/dist/plugins/validation.d.ts +0 -2
  99. package/dist/plugins/validation.d.ts.map +0 -1
  100. package/dist/plugins/validation.js +0 -105
  101. package/dist/plugins/validation.js.map +0 -1
  102. package/dist/plugins/xml.d.ts +0 -2
  103. package/dist/plugins/xml.d.ts.map +0 -1
  104. package/dist/plugins/xml.js +0 -297
  105. package/dist/plugins/xml.js.map +0 -1
  106. package/dist/temp/base64.js +0 -149
  107. package/dist/temp/calc.js +0 -108
  108. package/dist/temp/compression.js +0 -742
  109. package/dist/temp/csv.js +0 -161
  110. package/dist/temp/datetime.js +0 -217
  111. package/dist/temp/diff.js +0 -198
  112. package/dist/temp/hash.js +0 -424
  113. package/dist/temp/json.js +0 -80
  114. package/dist/temp/markdown.js +0 -224
  115. package/dist/temp/regex.js +0 -141
  116. package/dist/temp/signing.js +0 -600
  117. package/dist/temp/slug.js +0 -201
  118. package/dist/temp/validation.js +0 -125
  119. package/dist/temp/xml.js +0 -295
@@ -1,589 +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 = mod(-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(mod(p1.y - p1.x, ED25519_P) * mod(p2.y - p2.x, ED25519_P), ED25519_P);
319
- const b = mod(mod(p1.y + p1.x, ED25519_P) * mod(p2.y + p2.x, ED25519_P), ED25519_P);
320
- const c = mod(2n * p1.t * p2.t * ED25519_D, ED25519_P);
321
- const d = mod(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 = mod(2n * mod(p.z * p.z, ED25519_P), ED25519_P);
337
- const d = mod(-a, ED25519_P);
338
- const e = mod(mod((p.x + p.y) * (p.x + p.y), ED25519_P) - a - b, ED25519_P);
339
- const g = mod(d + b, ED25519_P);
340
- const f = mod(g - c, ED25519_P);
341
- const h = mod(d - b, ED25519_P);
342
- return {
343
- x: mod(e * f, ED25519_P),
344
- y: mod(g * h, ED25519_P),
345
- z: mod(f * g, ED25519_P),
346
- t: mod(e * h, ED25519_P),
347
- };
348
- }
349
- function scalarMult(k, p) {
350
- let result = { x: 0n, y: 1n, z: 1n, t: 0n };
351
- let temp = p;
352
- while (k > 0n) {
353
- if (k & 1n)
354
- result = pointAdd(result, temp);
355
- temp = pointDouble(temp);
356
- k >>= 1n;
357
- }
358
- return result;
359
- }
360
- function pointToBytes(p) {
361
- const zi = modInv(p.z, ED25519_P);
362
- const x = mod(p.x * zi, ED25519_P);
363
- const y = mod(p.y * zi, ED25519_P);
364
- const bytes = new Uint8Array(32);
365
- for (let i = 0; i < 32; i++) {
366
- bytes[i] = Number((y >> BigInt(i * 8)) & 0xffn);
367
- }
368
- bytes[31] |= Number((x & 1n) << 7n);
369
- return bytes;
370
- }
371
- function bytesToPoint(bytes) {
372
- let y = 0n;
373
- for (let i = 0; i < 32; i++) {
374
- y |= BigInt(bytes[i] & (i === 31 ? 0x7f : 0xff)) << BigInt(i * 8);
375
- }
376
- const xSign = (bytes[31] >> 7) & 1;
377
- const y2 = mod(y * y, ED25519_P);
378
- const x2 = mod((y2 - 1n) * modInv(ED25519_D * y2 + 1n, ED25519_P), ED25519_P);
379
- let x = modPow(x2, (ED25519_P + 3n) / 8n, ED25519_P);
380
- if (mod(x * x - x2, ED25519_P) !== 0n) {
381
- x = mod(x * modPow(2n, (ED25519_P - 1n) / 4n, ED25519_P), ED25519_P);
382
- }
383
- if (Number(x & 1n) !== xSign) {
384
- x = mod(-x, ED25519_P);
385
- }
386
- return { x, y, z: 1n, t: mod(x * y, ED25519_P) };
387
- }
388
- const ED25519_G = (() => {
389
- const gy = mod(4n * modInv(5n, ED25519_P), ED25519_P);
390
- const gx2 = mod((gy * gy - 1n) * modInv(ED25519_D * gy * gy + 1n, ED25519_P), ED25519_P);
391
- let gx = modPow(gx2, (ED25519_P + 3n) / 8n, ED25519_P);
392
- if (mod(gx * gx - gx2, ED25519_P) !== 0n) {
393
- gx = mod(gx * modPow(2n, (ED25519_P - 1n) / 4n, ED25519_P), ED25519_P);
394
- }
395
- if (gx & 1n)
396
- gx = mod(-gx, ED25519_P);
397
- return { x: gx, y: gy, z: 1n, t: mod(gx * gy, ED25519_P) };
398
- })();
399
- function ed25519GenerateKeypair(seed) {
400
- const h = sha512(seed);
401
- h[0] &= 248;
402
- h[31] &= 127;
403
- h[31] |= 64;
404
- let scalar = 0n;
405
- for (let i = 0; i < 32; i++) {
406
- scalar |= BigInt(h[i]) << BigInt(i * 8);
407
- }
408
- const pubPoint = scalarMult(scalar, ED25519_G);
409
- const publicKey = pointToBytes(pubPoint);
410
- return { privateKey: seed, publicKey };
411
- }
412
- function ed25519Sign(message, privateKey) {
413
- const h = sha512(privateKey);
414
- h[0] &= 248;
415
- h[31] &= 127;
416
- h[31] |= 64;
417
- let scalar = 0n;
418
- for (let i = 0; i < 32; i++) {
419
- scalar |= BigInt(h[i]) << BigInt(i * 8);
420
- }
421
- const pubPoint = scalarMult(scalar, ED25519_G);
422
- const publicKey = pointToBytes(pubPoint);
423
- const prefix = h.slice(32);
424
- const rHash = sha512(new Uint8Array([...prefix, ...message]));
425
- let r = 0n;
426
- for (let i = 0; i < 64; i++) {
427
- r |= BigInt(rHash[i]) << BigInt(i * 8);
428
- }
429
- r = mod(r, ED25519_L);
430
- const R = scalarMult(r, ED25519_G);
431
- const Rbytes = pointToBytes(R);
432
- const kHash = sha512(new Uint8Array([...Rbytes, ...publicKey, ...message]));
433
- let k = 0n;
434
- for (let i = 0; i < 64; i++) {
435
- k |= BigInt(kHash[i]) << BigInt(i * 8);
436
- }
437
- k = mod(k, ED25519_L);
438
- const s = mod(r + k * scalar, ED25519_L);
439
- const signature = new Uint8Array(64);
440
- signature.set(Rbytes);
441
- for (let i = 0; i < 32; i++) {
442
- signature[32 + i] = Number((s >> BigInt(i * 8)) & 0xffn);
443
- }
444
- return signature;
445
- }
446
- function ed25519Verify(message, signature, publicKey) {
447
- if (signature.length !== 64 || publicKey.length !== 32)
448
- return false;
449
- try {
450
- const Rbytes = signature.slice(0, 32);
451
- const R = bytesToPoint(Rbytes);
452
- const A = bytesToPoint(publicKey);
453
- let s = 0n;
454
- for (let i = 0; i < 32; i++) {
455
- s |= BigInt(signature[32 + i]) << BigInt(i * 8);
456
- }
457
- if (s >= ED25519_L)
458
- return false;
459
- const kHash = sha512(new Uint8Array([...Rbytes, ...publicKey, ...message]));
460
- let k = 0n;
461
- for (let i = 0; i < 64; i++) {
462
- k |= BigInt(kHash[i]) << BigInt(i * 8);
463
- }
464
- k = mod(k, ED25519_L);
465
- const sB = scalarMult(s, ED25519_G);
466
- const kA = scalarMult(k, A);
467
- const RkA = pointAdd(R, kA);
468
- const left = pointToBytes(sB);
469
- const right = pointToBytes(RkA);
470
- for (let i = 0; i < 32; i++) {
471
- if (left[i] !== right[i])
472
- return false;
473
- }
474
- return true;
475
- }
476
- catch {
477
- return false;
478
- }
479
- }
480
- function getRandomBytes(len) {
481
- const bytes = new Uint8Array(len);
482
- if (globalThis.crypto?.getRandomValues) {
483
- globalThis.crypto.getRandomValues(bytes);
484
- }
485
- else {
486
- throw new Error('Cryptographically secure RNG not available. Provide a seed via generateKeypair input instead.');
487
- }
488
- return bytes;
489
- }
490
- export function signing() {
491
- try {
492
- const inputStr = Host.inputString();
493
- const input = JSON.parse(inputStr);
494
- const encoding = input.encoding ?? 'hex';
495
- const algorithm = input.algorithm;
496
- if (algorithm !== 'ed25519') {
497
- throw new Error('Only ed25519 is currently supported');
498
- }
499
- let output;
500
- switch (input.operation) {
501
- case 'generateKeypair': {
502
- const seed = getRandomBytes(32);
503
- const { privateKey, publicKey } = ed25519GenerateKeypair(seed);
504
- output = {
505
- privateKey: encodeKey(privateKey, encoding),
506
- publicKey: encodeKey(publicKey, encoding),
507
- algorithm,
508
- };
509
- break;
510
- }
511
- case 'sign': {
512
- if (!input.privateKey)
513
- throw new Error('privateKey required for signing');
514
- if (!input.message)
515
- throw new Error('message required for signing');
516
- const privateKey = decodeKey(input.privateKey, encoding);
517
- if (privateKey.length !== 32) {
518
- throw new Error(`Invalid private key length: expected 32 bytes, got ${privateKey.length}`);
519
- }
520
- const message = new TextEncoder().encode(input.message);
521
- const signature = ed25519Sign(message, privateKey);
522
- output = {
523
- signature: encodeKey(signature, encoding),
524
- algorithm,
525
- };
526
- break;
527
- }
528
- case 'verify': {
529
- if (!input.publicKey)
530
- throw new Error('publicKey required for verification');
531
- if (!input.signature)
532
- throw new Error('signature required for verification');
533
- if (!input.message)
534
- throw new Error('message required for verification');
535
- const publicKey = decodeKey(input.publicKey, encoding);
536
- if (publicKey.length !== 32) {
537
- throw new Error(`Invalid public key length: expected 32 bytes, got ${publicKey.length}`);
538
- }
539
- const signature = decodeKey(input.signature, encoding);
540
- if (signature.length !== 64) {
541
- throw new Error(`Invalid signature length: expected 64 bytes, got ${signature.length}`);
542
- }
543
- const message = new TextEncoder().encode(input.message);
544
- const valid = ed25519Verify(message, signature, publicKey);
545
- output = {
546
- valid,
547
- algorithm,
548
- };
549
- break;
550
- }
551
- default:
552
- throw new Error(`Unknown operation: ${input.operation}`);
553
- }
554
- Host.outputString(JSON.stringify(output));
555
- return 0;
556
- }
557
- catch (error) {
558
- const output = {
559
- algorithm: 'unknown',
560
- error: error instanceof Error ? error.message : String(error),
561
- };
562
- Host.outputString(JSON.stringify(output));
563
- return 1;
564
- }
565
- }
566
- class TextEncoder {
567
- encode(str) {
568
- const bytes = [];
569
- for (let i = 0; i < str.length; i++) {
570
- let c = str.charCodeAt(i);
571
- if (c < 0x80) {
572
- bytes.push(c);
573
- }
574
- else if (c < 0x800) {
575
- bytes.push(0xc0 | (c >> 6), 0x80 | (c & 0x3f));
576
- }
577
- else if (c >= 0xd800 && c < 0xdc00 && i + 1 < str.length) {
578
- const c2 = str.charCodeAt(++i);
579
- c = 0x10000 + ((c & 0x3ff) << 10) + (c2 & 0x3ff);
580
- bytes.push(0xf0 | (c >> 18), 0x80 | ((c >> 12) & 0x3f), 0x80 | ((c >> 6) & 0x3f), 0x80 | (c & 0x3f));
581
- }
582
- else {
583
- bytes.push(0xe0 | (c >> 12), 0x80 | ((c >> 6) & 0x3f), 0x80 | (c & 0x3f));
584
- }
585
- }
586
- return new Uint8Array(bytes);
587
- }
588
- }
589
- //# 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,CA6B7B"}