@tachybase/module-multi-app 0.23.8

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 (117) hide show
  1. package/.turbo/turbo-build.log +14 -0
  2. package/README.md +34 -0
  3. package/README.zh-CN.md +34 -0
  4. package/client.d.ts +1 -0
  5. package/client.js +1 -0
  6. package/dist/client/AppManager.d.ts +2 -0
  7. package/dist/client/AppNameInput.d.ts +2 -0
  8. package/dist/client/MultiAppBlockInitializer.d.ts +2 -0
  9. package/dist/client/MultiAppManagerProvider.d.ts +2 -0
  10. package/dist/client/MultiAppManagerProvider.style.d.ts +5 -0
  11. package/dist/client/Settings.d.ts +2 -0
  12. package/dist/client/index.d.ts +6 -0
  13. package/dist/client/index.js +1 -0
  14. package/dist/client/settings/schemas/applications.d.ts +13 -0
  15. package/dist/client/utils.d.ts +4 -0
  16. package/dist/constants.d.ts +1 -0
  17. package/dist/constants.js +27 -0
  18. package/dist/externalVersion.js +16 -0
  19. package/dist/index.d.ts +2 -0
  20. package/dist/index.js +39 -0
  21. package/dist/locale/en-US.json +27 -0
  22. package/dist/locale/es-ES.json +9 -0
  23. package/dist/locale/ko_KR.json +11 -0
  24. package/dist/locale/pt-BR.json +9 -0
  25. package/dist/locale/zh-CN.json +27 -0
  26. package/dist/node_modules/mariadb/LICENSE +502 -0
  27. package/dist/node_modules/mariadb/callback.js +41 -0
  28. package/dist/node_modules/mariadb/lib/cmd/batch-bulk.js +278 -0
  29. package/dist/node_modules/mariadb/lib/cmd/batch-rewrite.js +372 -0
  30. package/dist/node_modules/mariadb/lib/cmd/change-user.js +149 -0
  31. package/dist/node_modules/mariadb/lib/cmd/class/ok-packet.js +17 -0
  32. package/dist/node_modules/mariadb/lib/cmd/column-definition.js +102 -0
  33. package/dist/node_modules/mariadb/lib/cmd/command.js +168 -0
  34. package/dist/node_modules/mariadb/lib/cmd/common-binary-cmd.js +327 -0
  35. package/dist/node_modules/mariadb/lib/cmd/common-text-cmd.js +427 -0
  36. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/caching-sha2-password-auth.js +168 -0
  37. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/clear-password-auth.js +23 -0
  38. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/ed25519-password-auth.js +761 -0
  39. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/native-password-auth.js +55 -0
  40. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/pam-password-auth.js +58 -0
  41. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/plugin-auth.js +19 -0
  42. package/dist/node_modules/mariadb/lib/cmd/handshake/auth/sha256-password-auth.js +142 -0
  43. package/dist/node_modules/mariadb/lib/cmd/handshake/client-capabilities.js +74 -0
  44. package/dist/node_modules/mariadb/lib/cmd/handshake/client-handshake-response.js +126 -0
  45. package/dist/node_modules/mariadb/lib/cmd/handshake/handshake.js +292 -0
  46. package/dist/node_modules/mariadb/lib/cmd/handshake/initial-handshake.js +74 -0
  47. package/dist/node_modules/mariadb/lib/cmd/handshake/ssl-request.js +29 -0
  48. package/dist/node_modules/mariadb/lib/cmd/ping.js +52 -0
  49. package/dist/node_modules/mariadb/lib/cmd/query.js +255 -0
  50. package/dist/node_modules/mariadb/lib/cmd/quit.js +28 -0
  51. package/dist/node_modules/mariadb/lib/cmd/reset.js +54 -0
  52. package/dist/node_modules/mariadb/lib/cmd/resultset.js +607 -0
  53. package/dist/node_modules/mariadb/lib/cmd/stream.js +45 -0
  54. package/dist/node_modules/mariadb/lib/config/connection-options.js +258 -0
  55. package/dist/node_modules/mariadb/lib/config/pool-cluster-options.js +19 -0
  56. package/dist/node_modules/mariadb/lib/config/pool-options.js +47 -0
  57. package/dist/node_modules/mariadb/lib/connection-callback.js +160 -0
  58. package/dist/node_modules/mariadb/lib/connection.js +1460 -0
  59. package/dist/node_modules/mariadb/lib/const/capabilities.js +64 -0
  60. package/dist/node_modules/mariadb/lib/const/collations.js +473 -0
  61. package/dist/node_modules/mariadb/lib/const/connection_status.js +13 -0
  62. package/dist/node_modules/mariadb/lib/const/error-code.js +1282 -0
  63. package/dist/node_modules/mariadb/lib/const/field-detail.js +35 -0
  64. package/dist/node_modules/mariadb/lib/const/field-type.js +71 -0
  65. package/dist/node_modules/mariadb/lib/const/server-status.js +30 -0
  66. package/dist/node_modules/mariadb/lib/const/state-change.js +12 -0
  67. package/dist/node_modules/mariadb/lib/filtered-pool-cluster.js +81 -0
  68. package/dist/node_modules/mariadb/lib/io/bulk-packet.js +590 -0
  69. package/dist/node_modules/mariadb/lib/io/compression-input-stream.js +141 -0
  70. package/dist/node_modules/mariadb/lib/io/compression-output-stream.js +171 -0
  71. package/dist/node_modules/mariadb/lib/io/packet-input-stream.js +193 -0
  72. package/dist/node_modules/mariadb/lib/io/packet-node-encoded.js +36 -0
  73. package/dist/node_modules/mariadb/lib/io/packet-node-iconv.js +37 -0
  74. package/dist/node_modules/mariadb/lib/io/packet-output-stream.js +502 -0
  75. package/dist/node_modules/mariadb/lib/io/packet.js +515 -0
  76. package/dist/node_modules/mariadb/lib/io/rewrite-packet.js +481 -0
  77. package/dist/node_modules/mariadb/lib/misc/connection-information.js +96 -0
  78. package/dist/node_modules/mariadb/lib/misc/errors.js +123 -0
  79. package/dist/node_modules/mariadb/lib/misc/parse.js +1033 -0
  80. package/dist/node_modules/mariadb/lib/misc/utils.js +298 -0
  81. package/dist/node_modules/mariadb/lib/pool-base.js +611 -0
  82. package/dist/node_modules/mariadb/lib/pool-callback.js +202 -0
  83. package/dist/node_modules/mariadb/lib/pool-cluster-callback.js +66 -0
  84. package/dist/node_modules/mariadb/lib/pool-cluster.js +407 -0
  85. package/dist/node_modules/mariadb/lib/pool-promise.js +108 -0
  86. package/dist/node_modules/mariadb/package.json +1 -0
  87. package/dist/node_modules/mariadb/promise.js +34 -0
  88. package/dist/node_modules/mariadb/types/index.d.ts +870 -0
  89. package/dist/server/actions/apps.d.ts +5 -0
  90. package/dist/server/actions/apps.js +117 -0
  91. package/dist/server/app-lifecycle.d.ts +8 -0
  92. package/dist/server/app-lifecycle.js +99 -0
  93. package/dist/server/app-start-env.d.ts +2 -0
  94. package/dist/server/app-start-env.js +105 -0
  95. package/dist/server/collections/applications.d.ts +2 -0
  96. package/dist/server/collections/applications.js +82 -0
  97. package/dist/server/index.d.ts +4 -0
  98. package/dist/server/index.js +29 -0
  99. package/dist/server/middlewares/app-selector.d.ts +1 -0
  100. package/dist/server/middlewares/app-selector.js +47 -0
  101. package/dist/server/middlewares/index.d.ts +2 -0
  102. package/dist/server/middlewares/index.js +23 -0
  103. package/dist/server/middlewares/inject-app-list.d.ts +1 -0
  104. package/dist/server/middlewares/inject-app-list.js +48 -0
  105. package/dist/server/migrations/20240820153000-add-apps-tmpl.d.ts +6 -0
  106. package/dist/server/migrations/20240820153000-add-apps-tmpl.js +47 -0
  107. package/dist/server/migrations/20241126124904-add-createdBy.d.ts +6 -0
  108. package/dist/server/migrations/20241126124904-add-createdBy.js +41 -0
  109. package/dist/server/models/application.d.ts +10 -0
  110. package/dist/server/models/application.js +57 -0
  111. package/dist/server/server.d.ts +19 -0
  112. package/dist/server/server.js +246 -0
  113. package/dist/swagger/index.d.ts +197 -0
  114. package/dist/swagger/index.js +227 -0
  115. package/package.json +38 -0
  116. package/server.d.ts +2 -0
  117. package/server.js +1 -0
@@ -0,0 +1,761 @@
1
+ 'use strict';
2
+
3
+ const PluginAuth = require('./plugin-auth');
4
+ const Crypto = require('crypto');
5
+
6
+ /**
7
+ * Standard authentication plugin
8
+ */
9
+ class Ed25519PasswordAuth extends PluginAuth {
10
+ constructor(packSeq, compressPackSeq, pluginData, resolve, reject, multiAuthResolver) {
11
+ super(resolve, reject, multiAuthResolver);
12
+ this.pluginData = pluginData;
13
+ this.sequenceNo = packSeq;
14
+ }
15
+
16
+ start(out, opts, info) {
17
+ //seed is ended with a null byte value.
18
+ const data = this.pluginData;
19
+
20
+ const sign = Ed25519PasswordAuth.encryptPassword(opts.password, data);
21
+ out.startPacket(this);
22
+ out.writeBuffer(sign, 0, sign.length);
23
+ out.flushBuffer(true);
24
+ this.emit('send_end');
25
+ this.onPacketReceive = this.successSend;
26
+ }
27
+
28
+ static encryptPassword(password, seed) {
29
+ if (!password) return Buffer.alloc(0);
30
+
31
+ let i, j;
32
+ let p = [gf(), gf(), gf(), gf()];
33
+ const signedMsg = Buffer.alloc(96);
34
+ const bytePwd = Buffer.from(password);
35
+
36
+ let hash = Crypto.createHash('sha512');
37
+ const d = hash.update(bytePwd).digest();
38
+ d[0] &= 248;
39
+ d[31] &= 127;
40
+ d[31] |= 64;
41
+
42
+ for (i = 0; i < 32; i++) signedMsg[64 + i] = seed[i];
43
+ for (i = 0; i < 32; i++) signedMsg[32 + i] = d[32 + i];
44
+
45
+ hash = Crypto.createHash('sha512');
46
+ const r = hash.update(signedMsg.slice(32, 96)).digest();
47
+
48
+ reduce(r);
49
+ scalarbase(p, r);
50
+ pack(signedMsg, p);
51
+
52
+ p = [gf(), gf(), gf(), gf()];
53
+
54
+ scalarbase(p, d);
55
+ const tt = Buffer.alloc(32);
56
+ pack(tt, p);
57
+
58
+ for (i = 32; i < 64; i++) signedMsg[i] = tt[i - 32];
59
+
60
+ hash = Crypto.createHash('sha512');
61
+ const h = hash.update(signedMsg).digest();
62
+
63
+ reduce(h);
64
+
65
+ const x = new Float64Array(64);
66
+ for (i = 0; i < 64; i++) x[i] = 0;
67
+ for (i = 0; i < 32; i++) x[i] = r[i];
68
+ for (i = 0; i < 32; i++) {
69
+ for (j = 0; j < 32; j++) {
70
+ x[i + j] += h[i] * d[j];
71
+ }
72
+ }
73
+
74
+ modL(signedMsg.subarray(32), x);
75
+
76
+ return signedMsg.slice(0, 64);
77
+ }
78
+ }
79
+
80
+ /*******************************************************
81
+ *
82
+ * This plugin uses the following public domain tweetnacl-js code by Dmitry Chestnykh (from https://github.com/dchest/tweetnacl-js/blob/master/nacl-fast.js).
83
+ * tweetnacl cannot be used directly (secret key mandatory size is 32 in nacl + implementation differ : second scalarbase use hash of secret key, not secret key).
84
+ *
85
+ *******************************************************/
86
+
87
+ const gf = function (init) {
88
+ const r = new Float64Array(16);
89
+ if (init) for (let i = 0; i < init.length; i++) r[i] = init[i];
90
+ return r;
91
+ };
92
+
93
+ const gf0 = gf(),
94
+ gf1 = gf([1]),
95
+ D2 = gf([
96
+ 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e,
97
+ 0xfce7, 0x56df, 0xd9dc, 0x2406
98
+ ]),
99
+ X = gf([
100
+ 0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4,
101
+ 0x53fe, 0xcd6e, 0x36d3, 0x2169
102
+ ]),
103
+ Y = gf([
104
+ 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666,
105
+ 0x6666, 0x6666, 0x6666, 0x6666
106
+ ]);
107
+
108
+ const L = new Float64Array([
109
+ 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0,
110
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10
111
+ ]);
112
+
113
+ function reduce(r) {
114
+ const x = new Float64Array(64);
115
+ let i;
116
+ for (i = 0; i < 64; i++) x[i] = r[i];
117
+ for (i = 0; i < 64; i++) r[i] = 0;
118
+ modL(r, x);
119
+ }
120
+
121
+ function modL(r, x) {
122
+ let carry, i, j, k;
123
+ for (i = 63; i >= 32; --i) {
124
+ carry = 0;
125
+ for (j = i - 32, k = i - 12; j < k; ++j) {
126
+ x[j] += carry - 16 * x[i] * L[j - (i - 32)];
127
+ carry = (x[j] + 128) >> 8;
128
+ x[j] -= carry * 256;
129
+ }
130
+ x[j] += carry;
131
+ x[i] = 0;
132
+ }
133
+ carry = 0;
134
+ for (j = 0; j < 32; j++) {
135
+ x[j] += carry - (x[31] >> 4) * L[j];
136
+ carry = x[j] >> 8;
137
+ x[j] &= 255;
138
+ }
139
+ for (j = 0; j < 32; j++) x[j] -= carry * L[j];
140
+ for (i = 0; i < 32; i++) {
141
+ x[i + 1] += x[i] >> 8;
142
+ r[i] = x[i] & 255;
143
+ }
144
+ }
145
+
146
+ function scalarbase(p, s) {
147
+ const q = [gf(), gf(), gf(), gf()];
148
+ set25519(q[0], X);
149
+ set25519(q[1], Y);
150
+ set25519(q[2], gf1);
151
+ M(q[3], X, Y);
152
+ scalarmult(p, q, s);
153
+ }
154
+
155
+ function set25519(r, a) {
156
+ for (let i = 0; i < 16; i++) r[i] = a[i] | 0;
157
+ }
158
+
159
+ function M(o, a, b) {
160
+ let v,
161
+ c,
162
+ t0 = 0,
163
+ t1 = 0,
164
+ t2 = 0,
165
+ t3 = 0,
166
+ t4 = 0,
167
+ t5 = 0,
168
+ t6 = 0,
169
+ t7 = 0,
170
+ t8 = 0,
171
+ t9 = 0,
172
+ t10 = 0,
173
+ t11 = 0,
174
+ t12 = 0,
175
+ t13 = 0,
176
+ t14 = 0,
177
+ t15 = 0,
178
+ t16 = 0,
179
+ t17 = 0,
180
+ t18 = 0,
181
+ t19 = 0,
182
+ t20 = 0,
183
+ t21 = 0,
184
+ t22 = 0,
185
+ t23 = 0,
186
+ t24 = 0,
187
+ t25 = 0,
188
+ t26 = 0,
189
+ t27 = 0,
190
+ t28 = 0,
191
+ t29 = 0,
192
+ t30 = 0;
193
+ const b0 = b[0],
194
+ b1 = b[1],
195
+ b2 = b[2],
196
+ b3 = b[3],
197
+ b4 = b[4],
198
+ b5 = b[5],
199
+ b6 = b[6],
200
+ b7 = b[7],
201
+ b8 = b[8],
202
+ b9 = b[9],
203
+ b10 = b[10],
204
+ b11 = b[11],
205
+ b12 = b[12],
206
+ b13 = b[13],
207
+ b14 = b[14],
208
+ b15 = b[15];
209
+
210
+ v = a[0];
211
+ t0 += v * b0;
212
+ t1 += v * b1;
213
+ t2 += v * b2;
214
+ t3 += v * b3;
215
+ t4 += v * b4;
216
+ t5 += v * b5;
217
+ t6 += v * b6;
218
+ t7 += v * b7;
219
+ t8 += v * b8;
220
+ t9 += v * b9;
221
+ t10 += v * b10;
222
+ t11 += v * b11;
223
+ t12 += v * b12;
224
+ t13 += v * b13;
225
+ t14 += v * b14;
226
+ t15 += v * b15;
227
+ v = a[1];
228
+ t1 += v * b0;
229
+ t2 += v * b1;
230
+ t3 += v * b2;
231
+ t4 += v * b3;
232
+ t5 += v * b4;
233
+ t6 += v * b5;
234
+ t7 += v * b6;
235
+ t8 += v * b7;
236
+ t9 += v * b8;
237
+ t10 += v * b9;
238
+ t11 += v * b10;
239
+ t12 += v * b11;
240
+ t13 += v * b12;
241
+ t14 += v * b13;
242
+ t15 += v * b14;
243
+ t16 += v * b15;
244
+ v = a[2];
245
+ t2 += v * b0;
246
+ t3 += v * b1;
247
+ t4 += v * b2;
248
+ t5 += v * b3;
249
+ t6 += v * b4;
250
+ t7 += v * b5;
251
+ t8 += v * b6;
252
+ t9 += v * b7;
253
+ t10 += v * b8;
254
+ t11 += v * b9;
255
+ t12 += v * b10;
256
+ t13 += v * b11;
257
+ t14 += v * b12;
258
+ t15 += v * b13;
259
+ t16 += v * b14;
260
+ t17 += v * b15;
261
+ v = a[3];
262
+ t3 += v * b0;
263
+ t4 += v * b1;
264
+ t5 += v * b2;
265
+ t6 += v * b3;
266
+ t7 += v * b4;
267
+ t8 += v * b5;
268
+ t9 += v * b6;
269
+ t10 += v * b7;
270
+ t11 += v * b8;
271
+ t12 += v * b9;
272
+ t13 += v * b10;
273
+ t14 += v * b11;
274
+ t15 += v * b12;
275
+ t16 += v * b13;
276
+ t17 += v * b14;
277
+ t18 += v * b15;
278
+ v = a[4];
279
+ t4 += v * b0;
280
+ t5 += v * b1;
281
+ t6 += v * b2;
282
+ t7 += v * b3;
283
+ t8 += v * b4;
284
+ t9 += v * b5;
285
+ t10 += v * b6;
286
+ t11 += v * b7;
287
+ t12 += v * b8;
288
+ t13 += v * b9;
289
+ t14 += v * b10;
290
+ t15 += v * b11;
291
+ t16 += v * b12;
292
+ t17 += v * b13;
293
+ t18 += v * b14;
294
+ t19 += v * b15;
295
+ v = a[5];
296
+ t5 += v * b0;
297
+ t6 += v * b1;
298
+ t7 += v * b2;
299
+ t8 += v * b3;
300
+ t9 += v * b4;
301
+ t10 += v * b5;
302
+ t11 += v * b6;
303
+ t12 += v * b7;
304
+ t13 += v * b8;
305
+ t14 += v * b9;
306
+ t15 += v * b10;
307
+ t16 += v * b11;
308
+ t17 += v * b12;
309
+ t18 += v * b13;
310
+ t19 += v * b14;
311
+ t20 += v * b15;
312
+ v = a[6];
313
+ t6 += v * b0;
314
+ t7 += v * b1;
315
+ t8 += v * b2;
316
+ t9 += v * b3;
317
+ t10 += v * b4;
318
+ t11 += v * b5;
319
+ t12 += v * b6;
320
+ t13 += v * b7;
321
+ t14 += v * b8;
322
+ t15 += v * b9;
323
+ t16 += v * b10;
324
+ t17 += v * b11;
325
+ t18 += v * b12;
326
+ t19 += v * b13;
327
+ t20 += v * b14;
328
+ t21 += v * b15;
329
+ v = a[7];
330
+ t7 += v * b0;
331
+ t8 += v * b1;
332
+ t9 += v * b2;
333
+ t10 += v * b3;
334
+ t11 += v * b4;
335
+ t12 += v * b5;
336
+ t13 += v * b6;
337
+ t14 += v * b7;
338
+ t15 += v * b8;
339
+ t16 += v * b9;
340
+ t17 += v * b10;
341
+ t18 += v * b11;
342
+ t19 += v * b12;
343
+ t20 += v * b13;
344
+ t21 += v * b14;
345
+ t22 += v * b15;
346
+ v = a[8];
347
+ t8 += v * b0;
348
+ t9 += v * b1;
349
+ t10 += v * b2;
350
+ t11 += v * b3;
351
+ t12 += v * b4;
352
+ t13 += v * b5;
353
+ t14 += v * b6;
354
+ t15 += v * b7;
355
+ t16 += v * b8;
356
+ t17 += v * b9;
357
+ t18 += v * b10;
358
+ t19 += v * b11;
359
+ t20 += v * b12;
360
+ t21 += v * b13;
361
+ t22 += v * b14;
362
+ t23 += v * b15;
363
+ v = a[9];
364
+ t9 += v * b0;
365
+ t10 += v * b1;
366
+ t11 += v * b2;
367
+ t12 += v * b3;
368
+ t13 += v * b4;
369
+ t14 += v * b5;
370
+ t15 += v * b6;
371
+ t16 += v * b7;
372
+ t17 += v * b8;
373
+ t18 += v * b9;
374
+ t19 += v * b10;
375
+ t20 += v * b11;
376
+ t21 += v * b12;
377
+ t22 += v * b13;
378
+ t23 += v * b14;
379
+ t24 += v * b15;
380
+ v = a[10];
381
+ t10 += v * b0;
382
+ t11 += v * b1;
383
+ t12 += v * b2;
384
+ t13 += v * b3;
385
+ t14 += v * b4;
386
+ t15 += v * b5;
387
+ t16 += v * b6;
388
+ t17 += v * b7;
389
+ t18 += v * b8;
390
+ t19 += v * b9;
391
+ t20 += v * b10;
392
+ t21 += v * b11;
393
+ t22 += v * b12;
394
+ t23 += v * b13;
395
+ t24 += v * b14;
396
+ t25 += v * b15;
397
+ v = a[11];
398
+ t11 += v * b0;
399
+ t12 += v * b1;
400
+ t13 += v * b2;
401
+ t14 += v * b3;
402
+ t15 += v * b4;
403
+ t16 += v * b5;
404
+ t17 += v * b6;
405
+ t18 += v * b7;
406
+ t19 += v * b8;
407
+ t20 += v * b9;
408
+ t21 += v * b10;
409
+ t22 += v * b11;
410
+ t23 += v * b12;
411
+ t24 += v * b13;
412
+ t25 += v * b14;
413
+ t26 += v * b15;
414
+ v = a[12];
415
+ t12 += v * b0;
416
+ t13 += v * b1;
417
+ t14 += v * b2;
418
+ t15 += v * b3;
419
+ t16 += v * b4;
420
+ t17 += v * b5;
421
+ t18 += v * b6;
422
+ t19 += v * b7;
423
+ t20 += v * b8;
424
+ t21 += v * b9;
425
+ t22 += v * b10;
426
+ t23 += v * b11;
427
+ t24 += v * b12;
428
+ t25 += v * b13;
429
+ t26 += v * b14;
430
+ t27 += v * b15;
431
+ v = a[13];
432
+ t13 += v * b0;
433
+ t14 += v * b1;
434
+ t15 += v * b2;
435
+ t16 += v * b3;
436
+ t17 += v * b4;
437
+ t18 += v * b5;
438
+ t19 += v * b6;
439
+ t20 += v * b7;
440
+ t21 += v * b8;
441
+ t22 += v * b9;
442
+ t23 += v * b10;
443
+ t24 += v * b11;
444
+ t25 += v * b12;
445
+ t26 += v * b13;
446
+ t27 += v * b14;
447
+ t28 += v * b15;
448
+ v = a[14];
449
+ t14 += v * b0;
450
+ t15 += v * b1;
451
+ t16 += v * b2;
452
+ t17 += v * b3;
453
+ t18 += v * b4;
454
+ t19 += v * b5;
455
+ t20 += v * b6;
456
+ t21 += v * b7;
457
+ t22 += v * b8;
458
+ t23 += v * b9;
459
+ t24 += v * b10;
460
+ t25 += v * b11;
461
+ t26 += v * b12;
462
+ t27 += v * b13;
463
+ t28 += v * b14;
464
+ t29 += v * b15;
465
+ v = a[15];
466
+ t15 += v * b0;
467
+ t16 += v * b1;
468
+ t17 += v * b2;
469
+ t18 += v * b3;
470
+ t19 += v * b4;
471
+ t20 += v * b5;
472
+ t21 += v * b6;
473
+ t22 += v * b7;
474
+ t23 += v * b8;
475
+ t24 += v * b9;
476
+ t25 += v * b10;
477
+ t26 += v * b11;
478
+ t27 += v * b12;
479
+ t28 += v * b13;
480
+ t29 += v * b14;
481
+ t30 += v * b15;
482
+
483
+ t0 += 38 * t16;
484
+ t1 += 38 * t17;
485
+ t2 += 38 * t18;
486
+ t3 += 38 * t19;
487
+ t4 += 38 * t20;
488
+ t5 += 38 * t21;
489
+ t6 += 38 * t22;
490
+ t7 += 38 * t23;
491
+ t8 += 38 * t24;
492
+ t9 += 38 * t25;
493
+ t10 += 38 * t26;
494
+ t11 += 38 * t27;
495
+ t12 += 38 * t28;
496
+ t13 += 38 * t29;
497
+ t14 += 38 * t30;
498
+ // t15 left as is
499
+
500
+ // first car
501
+ c = 1;
502
+ v = t0 + c + 65535;
503
+ c = Math.floor(v / 65536);
504
+ t0 = v - c * 65536;
505
+ v = t1 + c + 65535;
506
+ c = Math.floor(v / 65536);
507
+ t1 = v - c * 65536;
508
+ v = t2 + c + 65535;
509
+ c = Math.floor(v / 65536);
510
+ t2 = v - c * 65536;
511
+ v = t3 + c + 65535;
512
+ c = Math.floor(v / 65536);
513
+ t3 = v - c * 65536;
514
+ v = t4 + c + 65535;
515
+ c = Math.floor(v / 65536);
516
+ t4 = v - c * 65536;
517
+ v = t5 + c + 65535;
518
+ c = Math.floor(v / 65536);
519
+ t5 = v - c * 65536;
520
+ v = t6 + c + 65535;
521
+ c = Math.floor(v / 65536);
522
+ t6 = v - c * 65536;
523
+ v = t7 + c + 65535;
524
+ c = Math.floor(v / 65536);
525
+ t7 = v - c * 65536;
526
+ v = t8 + c + 65535;
527
+ c = Math.floor(v / 65536);
528
+ t8 = v - c * 65536;
529
+ v = t9 + c + 65535;
530
+ c = Math.floor(v / 65536);
531
+ t9 = v - c * 65536;
532
+ v = t10 + c + 65535;
533
+ c = Math.floor(v / 65536);
534
+ t10 = v - c * 65536;
535
+ v = t11 + c + 65535;
536
+ c = Math.floor(v / 65536);
537
+ t11 = v - c * 65536;
538
+ v = t12 + c + 65535;
539
+ c = Math.floor(v / 65536);
540
+ t12 = v - c * 65536;
541
+ v = t13 + c + 65535;
542
+ c = Math.floor(v / 65536);
543
+ t13 = v - c * 65536;
544
+ v = t14 + c + 65535;
545
+ c = Math.floor(v / 65536);
546
+ t14 = v - c * 65536;
547
+ v = t15 + c + 65535;
548
+ c = Math.floor(v / 65536);
549
+ t15 = v - c * 65536;
550
+ t0 += c - 1 + 37 * (c - 1);
551
+
552
+ // second car
553
+ c = 1;
554
+ v = t0 + c + 65535;
555
+ c = Math.floor(v / 65536);
556
+ t0 = v - c * 65536;
557
+ v = t1 + c + 65535;
558
+ c = Math.floor(v / 65536);
559
+ t1 = v - c * 65536;
560
+ v = t2 + c + 65535;
561
+ c = Math.floor(v / 65536);
562
+ t2 = v - c * 65536;
563
+ v = t3 + c + 65535;
564
+ c = Math.floor(v / 65536);
565
+ t3 = v - c * 65536;
566
+ v = t4 + c + 65535;
567
+ c = Math.floor(v / 65536);
568
+ t4 = v - c * 65536;
569
+ v = t5 + c + 65535;
570
+ c = Math.floor(v / 65536);
571
+ t5 = v - c * 65536;
572
+ v = t6 + c + 65535;
573
+ c = Math.floor(v / 65536);
574
+ t6 = v - c * 65536;
575
+ v = t7 + c + 65535;
576
+ c = Math.floor(v / 65536);
577
+ t7 = v - c * 65536;
578
+ v = t8 + c + 65535;
579
+ c = Math.floor(v / 65536);
580
+ t8 = v - c * 65536;
581
+ v = t9 + c + 65535;
582
+ c = Math.floor(v / 65536);
583
+ t9 = v - c * 65536;
584
+ v = t10 + c + 65535;
585
+ c = Math.floor(v / 65536);
586
+ t10 = v - c * 65536;
587
+ v = t11 + c + 65535;
588
+ c = Math.floor(v / 65536);
589
+ t11 = v - c * 65536;
590
+ v = t12 + c + 65535;
591
+ c = Math.floor(v / 65536);
592
+ t12 = v - c * 65536;
593
+ v = t13 + c + 65535;
594
+ c = Math.floor(v / 65536);
595
+ t13 = v - c * 65536;
596
+ v = t14 + c + 65535;
597
+ c = Math.floor(v / 65536);
598
+ t14 = v - c * 65536;
599
+ v = t15 + c + 65535;
600
+ c = Math.floor(v / 65536);
601
+ t15 = v - c * 65536;
602
+ t0 += c - 1 + 37 * (c - 1);
603
+
604
+ o[0] = t0;
605
+ o[1] = t1;
606
+ o[2] = t2;
607
+ o[3] = t3;
608
+ o[4] = t4;
609
+ o[5] = t5;
610
+ o[6] = t6;
611
+ o[7] = t7;
612
+ o[8] = t8;
613
+ o[9] = t9;
614
+ o[10] = t10;
615
+ o[11] = t11;
616
+ o[12] = t12;
617
+ o[13] = t13;
618
+ o[14] = t14;
619
+ o[15] = t15;
620
+ }
621
+
622
+ function scalarmult(p, q, s) {
623
+ let b, i;
624
+ set25519(p[0], gf0);
625
+ set25519(p[1], gf1);
626
+ set25519(p[2], gf1);
627
+ set25519(p[3], gf0);
628
+ for (i = 255; i >= 0; --i) {
629
+ b = (s[(i / 8) | 0] >> (i & 7)) & 1;
630
+ cswap(p, q, b);
631
+ add(q, p);
632
+ add(p, p);
633
+ cswap(p, q, b);
634
+ }
635
+ }
636
+
637
+ function pack(r, p) {
638
+ const tx = gf(),
639
+ ty = gf(),
640
+ zi = gf();
641
+ inv25519(zi, p[2]);
642
+ M(tx, p[0], zi);
643
+ M(ty, p[1], zi);
644
+ pack25519(r, ty);
645
+ r[31] ^= par25519(tx) << 7;
646
+ }
647
+
648
+ function inv25519(o, i) {
649
+ const c = gf();
650
+ let a;
651
+ for (a = 0; a < 16; a++) c[a] = i[a];
652
+ for (a = 253; a >= 0; a--) {
653
+ S(c, c);
654
+ if (a !== 2 && a !== 4) M(c, c, i);
655
+ }
656
+ for (a = 0; a < 16; a++) o[a] = c[a];
657
+ }
658
+
659
+ function S(o, a) {
660
+ M(o, a, a);
661
+ }
662
+
663
+ function par25519(a) {
664
+ const d = new Uint8Array(32);
665
+ pack25519(d, a);
666
+ return d[0] & 1;
667
+ }
668
+ function car25519(o) {
669
+ let i,
670
+ v,
671
+ c = 1;
672
+ for (i = 0; i < 16; i++) {
673
+ v = o[i] + c + 65535;
674
+ c = Math.floor(v / 65536);
675
+ o[i] = v - c * 65536;
676
+ }
677
+ o[0] += c - 1 + 37 * (c - 1);
678
+ }
679
+
680
+ function pack25519(o, n) {
681
+ let i, j, b;
682
+ const m = gf(),
683
+ t = gf();
684
+ for (i = 0; i < 16; i++) t[i] = n[i];
685
+ car25519(t);
686
+ car25519(t);
687
+ car25519(t);
688
+ for (j = 0; j < 2; j++) {
689
+ m[0] = t[0] - 0xffed;
690
+ for (i = 1; i < 15; i++) {
691
+ m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);
692
+ m[i - 1] &= 0xffff;
693
+ }
694
+ m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);
695
+ b = (m[15] >> 16) & 1;
696
+ m[14] &= 0xffff;
697
+ sel25519(t, m, 1 - b);
698
+ }
699
+ for (i = 0; i < 16; i++) {
700
+ o[2 * i] = t[i] & 0xff;
701
+ o[2 * i + 1] = t[i] >> 8;
702
+ }
703
+ }
704
+
705
+ function cswap(p, q, b) {
706
+ for (let i = 0; i < 4; i++) {
707
+ sel25519(p[i], q[i], b);
708
+ }
709
+ }
710
+
711
+ function A(o, a, b) {
712
+ for (let i = 0; i < 16; i++) o[i] = a[i] + b[i];
713
+ }
714
+
715
+ function Z(o, a, b) {
716
+ for (let i = 0; i < 16; i++) o[i] = a[i] - b[i];
717
+ }
718
+
719
+ function add(p, q) {
720
+ const a = gf(),
721
+ b = gf(),
722
+ c = gf(),
723
+ d = gf(),
724
+ e = gf(),
725
+ f = gf(),
726
+ g = gf(),
727
+ h = gf(),
728
+ t = gf();
729
+
730
+ Z(a, p[1], p[0]);
731
+ Z(t, q[1], q[0]);
732
+ M(a, a, t);
733
+ A(b, p[0], p[1]);
734
+ A(t, q[0], q[1]);
735
+ M(b, b, t);
736
+ M(c, p[3], q[3]);
737
+ M(c, c, D2);
738
+ M(d, p[2], q[2]);
739
+ A(d, d, d);
740
+ Z(e, b, a);
741
+ Z(f, d, c);
742
+ A(g, d, c);
743
+ A(h, b, a);
744
+
745
+ M(p[0], e, f);
746
+ M(p[1], h, g);
747
+ M(p[2], g, f);
748
+ M(p[3], e, h);
749
+ }
750
+
751
+ function sel25519(p, q, b) {
752
+ const c = ~(b - 1);
753
+ let t;
754
+ for (let i = 0; i < 16; i++) {
755
+ t = c & (p[i] ^ q[i]);
756
+ p[i] ^= t;
757
+ q[i] ^= t;
758
+ }
759
+ }
760
+
761
+ module.exports = Ed25519PasswordAuth;