@bsv/sdk 1.9.24 → 1.9.30

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 (75) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/primitives/AESGCM.js +160 -76
  3. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  4. package/dist/cjs/src/primitives/ECDSA.js +22 -23
  5. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  6. package/dist/cjs/src/primitives/Point.js +102 -22
  7. package/dist/cjs/src/primitives/Point.js.map +1 -1
  8. package/dist/cjs/src/primitives/PrivateKey.js +2 -2
  9. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  10. package/dist/cjs/src/primitives/PublicKey.js +1 -1
  11. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  12. package/dist/cjs/src/primitives/SymmetricKey.js +20 -19
  13. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  14. package/dist/cjs/src/primitives/hex.js +1 -3
  15. package/dist/cjs/src/primitives/hex.js.map +1 -1
  16. package/dist/cjs/src/primitives/utils.js +10 -0
  17. package/dist/cjs/src/primitives/utils.js.map +1 -1
  18. package/dist/cjs/src/totp/totp.js +3 -1
  19. package/dist/cjs/src/totp/totp.js.map +1 -1
  20. package/dist/cjs/src/wallet/ProtoWallet.js +4 -2
  21. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  22. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  23. package/dist/esm/src/primitives/AESGCM.js +158 -75
  24. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  25. package/dist/esm/src/primitives/ECDSA.js +22 -23
  26. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  27. package/dist/esm/src/primitives/Point.js +102 -22
  28. package/dist/esm/src/primitives/Point.js.map +1 -1
  29. package/dist/esm/src/primitives/PrivateKey.js +2 -2
  30. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  31. package/dist/esm/src/primitives/PublicKey.js +1 -1
  32. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  33. package/dist/esm/src/primitives/SymmetricKey.js +20 -19
  34. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  35. package/dist/esm/src/primitives/hex.js +1 -3
  36. package/dist/esm/src/primitives/hex.js.map +1 -1
  37. package/dist/esm/src/primitives/utils.js +9 -0
  38. package/dist/esm/src/primitives/utils.js.map +1 -1
  39. package/dist/esm/src/totp/totp.js +3 -1
  40. package/dist/esm/src/totp/totp.js.map +1 -1
  41. package/dist/esm/src/wallet/ProtoWallet.js +4 -2
  42. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  43. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  44. package/dist/types/src/primitives/AESGCM.d.ts +59 -9
  45. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  46. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  47. package/dist/types/src/primitives/Point.d.ts +2 -0
  48. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  49. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  50. package/dist/types/src/primitives/hex.d.ts.map +1 -1
  51. package/dist/types/src/primitives/utils.d.ts +1 -0
  52. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  53. package/dist/types/src/totp/totp.d.ts.map +1 -1
  54. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  55. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  56. package/dist/umd/bundle.js +3 -3
  57. package/dist/umd/bundle.js.map +1 -1
  58. package/docs/reference/primitives.md +206 -60
  59. package/package.json +1 -1
  60. package/src/primitives/AESGCM.ts +225 -103
  61. package/src/primitives/ECDSA.ts +25 -23
  62. package/src/primitives/Point.ts +142 -23
  63. package/src/primitives/PrivateKey.ts +2 -2
  64. package/src/primitives/PublicKey.ts +1 -1
  65. package/src/primitives/SymmetricKey.ts +28 -20
  66. package/src/primitives/__tests/AESGCM.test.ts +254 -354
  67. package/src/primitives/__tests/ECDSA.test.ts +39 -0
  68. package/src/primitives/__tests/Point.test.ts +112 -0
  69. package/src/primitives/__tests/utils.test.ts +24 -1
  70. package/src/primitives/hex.ts +1 -3
  71. package/src/primitives/utils.ts +10 -0
  72. package/src/totp/__tests/totp.test.ts +21 -0
  73. package/src/totp/totp.ts +9 -1
  74. package/src/wallet/ProtoWallet.ts +8 -3
  75. package/src/wallet/__tests/ProtoWallet.test.ts +55 -34
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsv/sdk",
3
- "version": "1.9.24",
3
+ "version": "1.9.30",
4
4
  "type": "commonjs",
5
5
  "description": "BSV Blockchain Software Development Kit",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.incrementLeastSignificantThirtyTwoBits = exports.multiply = exports.rightShift = exports.exclusiveOR = exports.getBytes = exports.checkBit = void 0;
3
+ exports.incrementLeastSignificantThirtyTwoBits = exports.multiply = exports.rightShift = exports.exclusiveOR = exports.getBytes64 = exports.getBytes = exports.checkBit = void 0;
4
4
  exports.AES = AES;
5
5
  exports.ghash = ghash;
6
6
  exports.AESGCM = AESGCM;
@@ -177,29 +177,64 @@ const getBytes = function (numericValue) {
177
177
  ];
178
178
  };
179
179
  exports.getBytes = getBytes;
180
+ const getBytes64 = function (numericValue) {
181
+ if (numericValue < 0 || numericValue > Number.MAX_SAFE_INTEGER) {
182
+ throw new Error('getBytes64: value out of range');
183
+ }
184
+ const hi = Math.floor(numericValue / 0x100000000);
185
+ const lo = numericValue >>> 0;
186
+ return [
187
+ (hi >>> 24) & 0xFF,
188
+ (hi >>> 16) & 0xFF,
189
+ (hi >>> 8) & 0xFF,
190
+ hi & 0xFF,
191
+ (lo >>> 24) & 0xFF,
192
+ (lo >>> 16) & 0xFF,
193
+ (lo >>> 8) & 0xFF,
194
+ lo & 0xFF
195
+ ];
196
+ };
197
+ exports.getBytes64 = getBytes64;
180
198
  const createZeroBlock = function (length) {
181
- return new Array(length).fill(0);
199
+ // Uint8Array is already zero-filled
200
+ return new Uint8Array(length);
201
+ };
202
+ // R = 0xe1 || 15 zero bytes
203
+ const R = (() => {
204
+ const r = new Uint8Array(16);
205
+ r[0] = 0xe1;
206
+ return r;
207
+ })();
208
+ const concatBytes = (...arrays) => {
209
+ let total = 0;
210
+ for (const a of arrays)
211
+ total += a.length;
212
+ const out = new Uint8Array(total);
213
+ let offset = 0;
214
+ for (const a of arrays) {
215
+ out.set(a, offset);
216
+ offset += a.length;
217
+ }
218
+ return out;
182
219
  };
183
- const R = [0xe1].concat(createZeroBlock(15));
184
220
  const exclusiveOR = function (block0, block1) {
185
221
  const len = block0.length;
186
- const result = new Array(len);
222
+ const result = new Uint8Array(len);
187
223
  for (let i = 0; i < len; i++) {
188
- result[i] = block0[i] ^ block1[i];
224
+ result[i] = block0[i] ^ (block1[i] ?? 0);
189
225
  }
190
226
  return result;
191
227
  };
192
228
  exports.exclusiveOR = exclusiveOR;
193
229
  const xorInto = function (target, block) {
194
230
  for (let i = 0; i < target.length; i++) {
195
- target[i] ^= block[i];
231
+ target[i] ^= block[i] ?? 0;
196
232
  }
197
233
  };
198
234
  const rightShift = function (block) {
199
- let i;
200
235
  let carry = 0;
201
236
  let oldCarry = 0;
202
- for (i = 0; i < block.length; i++) {
237
+ for (let i = 0; i < block.length; i++) {
203
238
  oldCarry = carry;
204
239
  carry = block[i] & 0x01;
205
240
  block[i] = block[i] >> 1;
@@ -231,14 +266,10 @@ const multiply = function (block0, block1) {
231
266
  };
232
267
  exports.multiply = multiply;
233
268
  const incrementLeastSignificantThirtyTwoBits = function (block) {
234
- let i;
235
269
  const result = block.slice();
236
- for (i = 15; i !== 11; i--) {
237
- result[i] = result[i] + 1;
238
- if (result[i] === 256) {
239
- result[i] = 0;
240
- }
241
- else {
270
+ for (let i = 15; i > 11; i--) {
271
+ result[i] = (result[i] + 1) & 0xff; // wrap explicitly
272
+ if (result[i] !== 0) {
242
273
  break;
243
274
  }
244
275
  }
@@ -247,8 +278,9 @@ const incrementLeastSignificantThirtyTwoBits = function (block) {
247
278
  exports.incrementLeastSignificantThirtyTwoBits = incrementLeastSignificantThirtyTwoBits;
248
279
  function ghash(input, hashSubKey) {
249
280
  let result = createZeroBlock(16);
281
+ const block = new Uint8Array(16);
250
282
  for (let i = 0; i < input.length; i += 16) {
251
- const block = result.slice();
283
+ block.set(result);
252
284
  for (let j = 0; j < 16; j++) {
253
285
  block[j] ^= input[i + j] ?? 0;
254
286
  }
@@ -258,9 +290,9 @@ function ghash(input, hashSubKey) {
258
290
  }
259
291
  function gctr(input, initialCounterBlock, key) {
260
292
  if (input.length === 0)
261
- return [];
262
- const output = new Array(input.length);
263
- let counterBlock = initialCounterBlock;
293
+ return new Uint8Array(0);
294
+ const output = new Uint8Array(input.length);
295
+ let counterBlock = initialCounterBlock.slice();
264
296
  let pos = 0;
265
297
  const n = Math.ceil(input.length / 16);
266
298
  for (let i = 0; i < n; i++) {
@@ -276,52 +308,114 @@ function gctr(input, initialCounterBlock, key) {
276
308
  }
277
309
  return output;
278
310
  }
279
- function AESGCM(plainText, additionalAuthenticatedData, initializationVector, key) {
311
+ function buildAuthInput(cipherText) {
312
+ const aadLenBits = 0;
313
+ const ctLenBits = cipherText.length * 8;
314
+ let padLen;
315
+ if (cipherText.length === 0) {
316
+ padLen = 16;
317
+ }
318
+ else if (cipherText.length % 16 === 0) {
319
+ padLen = 0;
320
+ }
321
+ else {
322
+ padLen = 16 - (cipherText.length % 16);
323
+ }
324
+ const total = 16 +
325
+ cipherText.length +
326
+ padLen +
327
+ 16;
328
+ const out = new Uint8Array(total);
329
+ let offset = 0;
330
+ offset += 16;
331
+ out.set(cipherText, offset);
332
+ offset += cipherText.length;
333
+ offset += padLen;
334
+ const aadLen = (0, exports.getBytes64)(aadLenBits);
335
+ out.set(aadLen, offset);
336
+ offset += 8;
337
+ const ctLen = (0, exports.getBytes64)(ctLenBits);
338
+ out.set(ctLen, offset);
339
+ return out;
340
+ }
341
+ /**
342
+ * SECURITY NOTE – NON-STANDARD AES-GCM PADDING
343
+ *
344
+ * This implementation intentionally deviates from NIST SP 800-38D’s AES-GCM
345
+ * specification in how the GHASH input is formed when the additional
346
+ * authenticated data (AAD) or ciphertext length is zero.
347
+ *
348
+ * In the standard, AAD and ciphertext are each padded with the minimum number
349
+ * of zero bytes required to reach a multiple of 16 bytes; when the length is
350
+ * already a multiple of 16 (including the case length = 0), no padding block
351
+ * is added. In this implementation, when AAD.length === 0 or ciphertext.length
352
+ * === 0, an extra 16-byte block of zeros is appended before the length fields
353
+ * are processed. The same formatting logic is used symmetrically in both
354
+ * AESGCM (encryption) and AESGCMDecrypt (decryption).
355
+ *
356
+ * As a result:
357
+ * - Authentication tags produced here are NOT compatible with tags produced
358
+ * by standards-compliant AES-GCM implementations in the cases where AAD
359
+ * or ciphertext are empty.
360
+ * - Ciphertexts generated by this code must be decrypted by this exact
361
+ * implementation (or one that reproduces the same GHASH formatting), and
362
+ * must not be mixed with ciphertexts produced by a strictly standard
363
+ * AES-GCM library.
364
+ *
365
+ * Cryptographic impact: this change alters only the encoding of the message
366
+ * that is input to GHASH; it does not change the block cipher, key derivation,
367
+ * IV handling, or the basic “encrypt-then-MAC over (AAD, ciphertext, lengths)”
368
+ * structure of AES-GCM. Under the usual assumptions that AES is a secure block
369
+ * cipher and GHASH with a secret subkey is a secure polynomial MAC, this
370
+ * variant continues to provide confidentiality and integrity for data encrypted
371
+ * and decrypted consistently with this implementation. We are not aware of any
372
+ * attack that exploits the presence of this extra zero block when AAD or
373
+ * ciphertext are empty.
374
+ *
375
+ * However, this padding behavior is non-compliant with NIST SP 800-38D and has
376
+ * not been analyzed as extensively as standard AES-GCM. Code that requires
377
+ * strict standards compliance or interoperability with external AES-GCM
378
+ * implementations SHOULD NOT use this module as-is. Any future migration to a
379
+ * fully compliant AES-GCM encoding will require a compatibility strategy, as
380
+ * existing ciphertexts produced by this implementation will otherwise become
381
+ * undecryptable.
382
+ *
383
+ * This non-standard padding behavior is retained intentionally for backward
384
+ * compatibility: existing ciphertexts in production were generated with this
385
+ * encoding, and changing it would render previously encrypted data
386
+ * undecryptable by newer versions of the library.
387
+ */
388
+ function AESGCM(plainText, initializationVector, key) {
280
389
  if (initializationVector.length === 0) {
281
390
  throw new Error('Initialization vector must not be empty');
282
391
  }
283
392
  if (key.length === 0) {
284
393
  throw new Error('Key must not be empty');
285
394
  }
395
+ const hashSubKey = new Uint8Array(AES(createZeroBlock(16), key));
286
396
  let preCounterBlock;
287
- let plainTag;
288
- const hashSubKey = AES(createZeroBlock(16), key);
289
- preCounterBlock = [...initializationVector];
290
397
  if (initializationVector.length === 12) {
291
- preCounterBlock = preCounterBlock.concat(createZeroBlock(3)).concat([0x01]);
398
+ preCounterBlock = concatBytes(initializationVector, createZeroBlock(3), new Uint8Array([0x01]));
292
399
  }
293
400
  else {
294
- if (initializationVector.length % 16 !== 0) {
295
- preCounterBlock = preCounterBlock.concat(createZeroBlock(16 - (initializationVector.length % 16)));
401
+ let ivPadded = initializationVector;
402
+ if (ivPadded.length % 16 !== 0) {
403
+ ivPadded = concatBytes(ivPadded, createZeroBlock(16 - (ivPadded.length % 16)));
296
404
  }
297
- preCounterBlock = preCounterBlock.concat(createZeroBlock(8));
298
- preCounterBlock = ghash(preCounterBlock.concat(createZeroBlock(4))
299
- .concat((0, exports.getBytes)(initializationVector.length * 8)), hashSubKey);
405
+ const lenBlock = (0, exports.getBytes64)(initializationVector.length * 8);
406
+ const s = concatBytes(ivPadded, createZeroBlock(8), new Uint8Array(lenBlock));
407
+ preCounterBlock = ghash(s, hashSubKey);
300
408
  }
301
409
  const cipherText = gctr(plainText, (0, exports.incrementLeastSignificantThirtyTwoBits)(preCounterBlock), key);
302
- plainTag = additionalAuthenticatedData.slice();
303
- if (additionalAuthenticatedData.length === 0) {
304
- plainTag = plainTag.concat(createZeroBlock(16));
305
- }
306
- else if (additionalAuthenticatedData.length % 16 !== 0) {
307
- plainTag = plainTag.concat(createZeroBlock(16 - (additionalAuthenticatedData.length % 16)));
308
- }
309
- plainTag = plainTag.concat(cipherText);
310
- if (cipherText.length === 0) {
311
- plainTag = plainTag.concat(createZeroBlock(16));
312
- }
313
- else if (cipherText.length % 16 !== 0) {
314
- plainTag = plainTag.concat(createZeroBlock(16 - (cipherText.length % 16)));
315
- }
316
- plainTag = plainTag.concat(createZeroBlock(4))
317
- .concat((0, exports.getBytes)(additionalAuthenticatedData.length * 8))
318
- .concat(createZeroBlock(4)).concat((0, exports.getBytes)(cipherText.length * 8));
410
+ const authInput = buildAuthInput(cipherText);
411
+ const s = ghash(authInput, hashSubKey);
412
+ const authenticationTag = gctr(s, preCounterBlock, key);
319
413
  return {
320
414
  result: cipherText,
321
- authenticationTag: gctr(ghash(plainTag, hashSubKey), preCounterBlock, key)
415
+ authenticationTag
322
416
  };
323
417
  }
324
- function AESGCMDecrypt(cipherText, additionalAuthenticatedData, initializationVector, authenticationTag, key) {
418
+ function AESGCMDecrypt(cipherText, initializationVector, authenticationTag, key) {
325
419
  if (cipherText.length === 0) {
326
420
  throw new Error('Cipher text must not be empty');
327
421
  }
@@ -331,44 +425,34 @@ function AESGCMDecrypt(cipherText, additionalAuthenticatedData, initializationVe
331
425
  if (key.length === 0) {
332
426
  throw new Error('Key must not be empty');
333
427
  }
334
- let preCounterBlock;
335
- let compareTag;
336
428
  // Generate the hash subkey
337
- const hashSubKey = AES(createZeroBlock(16), key);
338
- preCounterBlock = [...initializationVector];
429
+ const hashSubKey = new Uint8Array(AES(createZeroBlock(16), key));
430
+ let preCounterBlock;
339
431
  if (initializationVector.length === 12) {
340
- preCounterBlock = preCounterBlock.concat(createZeroBlock(3)).concat([0x01]);
432
+ preCounterBlock = concatBytes(initializationVector, createZeroBlock(3), new Uint8Array([0x01]));
341
433
  }
342
434
  else {
343
- if (initializationVector.length % 16 !== 0) {
344
- preCounterBlock = preCounterBlock.concat(createZeroBlock(16 - (initializationVector.length % 16)));
435
+ let ivPadded = initializationVector;
436
+ if (ivPadded.length % 16 !== 0) {
437
+ ivPadded = concatBytes(ivPadded, createZeroBlock(16 - (ivPadded.length % 16)));
345
438
  }
346
- preCounterBlock = preCounterBlock.concat(createZeroBlock(8));
347
- preCounterBlock = ghash(preCounterBlock.concat(createZeroBlock(4)).concat((0, exports.getBytes)(initializationVector.length * 8)), hashSubKey);
439
+ const lenBlock = (0, exports.getBytes64)(initializationVector.length * 8);
440
+ const s = concatBytes(ivPadded, createZeroBlock(8), new Uint8Array(lenBlock));
441
+ preCounterBlock = ghash(s, hashSubKey);
348
442
  }
349
443
  // Decrypt to obtain the plain text
350
444
  const plainText = gctr(cipherText, (0, exports.incrementLeastSignificantThirtyTwoBits)(preCounterBlock), key);
351
- compareTag = additionalAuthenticatedData.slice();
352
- if (additionalAuthenticatedData.length === 0) {
353
- compareTag = compareTag.concat(createZeroBlock(16));
445
+ const authInput = buildAuthInput(cipherText);
446
+ const s = ghash(authInput, hashSubKey);
447
+ const calculatedTag = gctr(s, preCounterBlock, key);
448
+ if (calculatedTag.length !== authenticationTag.length) {
449
+ return null;
354
450
  }
355
- else if (additionalAuthenticatedData.length % 16 !== 0) {
356
- compareTag = compareTag.concat(createZeroBlock(16 - (additionalAuthenticatedData.length % 16)));
451
+ let diff = 0;
452
+ for (let i = 0; i < calculatedTag.length; i++) {
453
+ diff |= calculatedTag[i] ^ authenticationTag[i];
357
454
  }
358
- compareTag = compareTag.concat(cipherText);
359
- if (cipherText.length === 0) {
360
- compareTag = compareTag.concat(createZeroBlock(16));
361
- }
362
- else if (cipherText.length % 16 !== 0) {
363
- compareTag = compareTag.concat(createZeroBlock(16 - (cipherText.length % 16)));
364
- }
365
- compareTag = compareTag.concat(createZeroBlock(4))
366
- .concat((0, exports.getBytes)(additionalAuthenticatedData.length * 8))
367
- .concat(createZeroBlock(4)).concat((0, exports.getBytes)(cipherText.length * 8));
368
- // Generate the authentication tag
369
- const calculatedTag = gctr(ghash(compareTag, hashSubKey), preCounterBlock, key);
370
- // If the calculated tag does not match the provided tag, return null - the decryption failed.
371
- if (calculatedTag.join() !== authenticationTag.join()) {
455
+ if (diff !== 0) {
372
456
  return null;
373
457
  }
374
458
  return plainText;
@@ -1 +1 @@
1
- {"version":3,"file":"AESGCM.js","sourceRoot":"","sources":["../../../../src/primitives/AESGCM.ts"],"names":[],"mappings":";;;AAyIA,kBAgDC;AAkGD,sBAYC;AA8BD,wBA2DC;AAED,sCAsEC;AAvcD,cAAc;AACd,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;IAC1B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC/F,CAAC,CAAA;AACF,MAAM,IAAI,GAAG;IACX,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACtG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IACtG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CAC7E,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAChC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC5D,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,SAAS,WAAW,CAClB,KAAiB,EACjB,aAAyB,EACzB,MAAc;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAE,KAAiB;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAE,KAAe;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAE,KAAe;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAErB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACjB,CAAC;AAED,SAAS,SAAS,CAAE,KAAiB;IACnC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IAEjB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;IACjB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAElB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;AACnB,CAAC;AAED,SAAS,UAAU,CAAE,KAAiB;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEtB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;QAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;QAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAE,UAAkB,EAAE,GAAa;IACtD,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;IACzB,MAAM,MAAM,GAAe,EAAE,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;QACd,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;QAElC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,GAAG,CAAE,KAAe,EAAE,GAAa;IACjD,IAAI,CAAC,CAAA;IACL,IAAI,CAAC,CAAA;IACL,IAAI,KAAa,CAAA;IACjB,IAAI,UAAU,CAAA;IACd,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE5B,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvB,UAAU,GAAG,EAAE,CAAA;IACjB,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,UAAU,GAAG,EAAE,CAAA;IACjB,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,UAAU,GAAG,EAAE,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5C,QAAQ,CAAC,KAAK,CAAC,CAAA;QACf,SAAS,CAAC,KAAK,CAAC,CAAA;QAEhB,IAAI,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,CAAC;YAC3B,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;QAED,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAEM,MAAM,QAAQ,GAAG,UACtB,SAAmB,EACnB,SAAiB,EACjB,QAAgB;IAEhB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClE,CAAC,CAAA;AANY,QAAA,QAAQ,YAMpB;AAEM,MAAM,QAAQ,GAAG,UAAU,YAAoB;IACpD,OAAO;QACL,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE;QAClC,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE;QACjC,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;QAChC,YAAY,GAAG,UAAU;KAC1B,CAAA;AACH,CAAC,CAAA;AAPY,QAAA,QAAQ,YAOpB;AAED,MAAM,eAAe,GAAG,UAAU,MAAc;IAC9C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC,CAAA;AAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;AAErC,MAAM,WAAW,GAAG,UAAU,MAAgB,EAAE,MAAgB;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAA;IACzB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAPY,QAAA,WAAW,eAOvB;AAED,MAAM,OAAO,GAAG,UAAU,MAAgB,EAAE,KAAe;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,UAAU,GAAG,UAAU,KAAe;IACjD,IAAI,CAAS,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,QAAQ,GAAG,KAAK,CAAA;QAChB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAExB,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAhBY,QAAA,UAAU,cAgBtB;AAEM,MAAM,QAAQ,GAAG,UAAU,MAAgB,EAAE,MAAgB;IAClE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IACxB,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACf,CAAC;YAED,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAA;gBACb,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAA;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AApBY,QAAA,QAAQ,YAoBpB;AAEM,MAAM,sCAAsC,GAAG,UACpD,KAAe;IAEf,IAAI,CAAC,CAAA;IACL,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;IAC5B,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACf,CAAC;aAAM,CAAC;YACN,MAAK;QACP,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAhBY,QAAA,sCAAsC,0CAgBlD;AAED,SAAgB,KAAK,CAAE,KAAe,EAAE,UAAoB;IAC1D,IAAI,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QACD,MAAM,GAAG,IAAA,gBAAQ,EAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,IAAI,CACX,KAAe,EACf,mBAA6B,EAC7B,GAAa;IAEb,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEjC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACtC,IAAI,YAAY,GAAG,mBAAmB,CAAA;IACtC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACrC,GAAG,EAAE,CAAA;QACP,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,YAAY,GAAG,IAAA,8CAAsC,EAAC,YAAY,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,MAAM,CACpB,SAAmB,EACnB,2BAAqC,EACrC,oBAA8B,EAC9B,GAAa;IAEb,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,eAAe,CAAA;IACnB,IAAI,QAAQ,CAAA;IACZ,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAChD,eAAe,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAA;IAC3C,IAAI,oBAAoB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvC,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7E,CAAC;SAAM,CAAC;QACN,IAAI,oBAAoB,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,eAAe,GAAG,eAAe,CAAC,MAAM,CACtC,eAAe,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CACzD,CAAA;QACH,CAAC;QAED,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5D,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;aAC/D,MAAM,CAAC,IAAA,gBAAQ,EAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAA,8CAAsC,EAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAA;IAEhG,QAAQ,GAAG,2BAA2B,CAAC,KAAK,EAAE,CAAA;IAE9C,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;IACjD,CAAC;SAAM,IAAI,2BAA2B,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACzD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7F,CAAC;IAED,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAEtC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;IACjD,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACxC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAC3C,MAAM,CAAC,IAAA,gBAAQ,EAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACxD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,gBAAQ,EAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAErE,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC;KAC3E,CAAA;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,UAAoB,EACpB,2BAAqC,EACrC,oBAA8B,EAC9B,iBAA2B,EAC3B,GAAa;IAEb,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,eAAe,CAAA;IACnB,IAAI,UAAU,CAAA;IAEd,2BAA2B;IAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAEhD,eAAe,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAA;IAC3C,IAAI,oBAAoB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvC,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7E,CAAC;SAAM,CAAC;QACN,IAAI,oBAAoB,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3C,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;QACpG,CAAC;QAED,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;QAE5D,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,gBAAQ,EAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IACnI,CAAC;IAED,mCAAmC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAA,8CAAsC,EAAC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAA;IAEhG,UAAU,GAAG,2BAA2B,CAAC,KAAK,EAAE,CAAA;IAEhD,IAAI,2BAA2B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,2BAA2B,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACzD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,2BAA2B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IACjG,CAAC;IAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAE1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QACxC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChF,CAAC;IAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;SAC/C,MAAM,CAAC,IAAA,gBAAQ,EAAC,2BAA2B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACxD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,gBAAQ,EAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAErE,kCAAkC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,CAAA;IAE/E,8FAA8F;IAC9F,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"AESGCM.js","sourceRoot":"","sources":["../../../../src/primitives/AESGCM.ts"],"names":[],"mappings":";;;AAyIA,kBAgDC;AAwID,sBAaC;AAoHD,wBAqDC;AAED,sCAyEC;AAjkBD,cAAc;AACd,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;IAC1B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,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"}
@@ -40,6 +40,14 @@ function truncateToN(msg, truncOnly, curve = new Curve_js_1.default()) {
40
40
  return msg;
41
41
  }
42
42
  }
43
+ function bnToBigInt(bn) {
44
+ const bytes = bn.toArray('be');
45
+ let x = 0n;
46
+ for (let i = 0; i < bytes.length; i++) {
47
+ x = (x << 8n) | BigInt(bytes[i]);
48
+ }
49
+ return x;
50
+ }
43
51
  const curve = new Curve_js_1.default();
44
52
  const bytes = curve.n.byteLength();
45
53
  const ns1 = curve.n.subn(1);
@@ -60,43 +68,36 @@ const halfN = Point_js_1.N_BIGINT >> 1n;
60
68
  * const signature = sign(msg, key)
61
69
  */
62
70
  const sign = (msg, key, forceLowS = false, customK) => {
63
- // —— prepare inputs ────────────────────────────────────────────────────────
64
71
  msg = truncateToN(msg);
65
- const msgBig = BigInt('0x' + msg.toString(16));
66
- const keyBig = BigInt('0x' + key.toString(16));
67
- // DRBG seeding identical to previous implementation
72
+ const msgBig = bnToBigInt(msg);
73
+ const keyBig = bnToBigInt(key);
68
74
  const bkey = key.toArray('be', bytes);
69
75
  const nonce = msg.toArray('be', bytes);
70
76
  const drbg = new DRBG_js_1.default(bkey, nonce);
71
77
  for (let iter = 0;; iter++) {
72
- // —— k generation & basic validity checks ───────────────────────────────
73
78
  let kBN = typeof customK === 'function'
74
79
  ? customK(iter)
75
80
  : BigNumber_js_1.default.isBN(customK)
76
81
  ? customK
77
82
  : new BigNumber_js_1.default(drbg.generate(bytes), 16);
78
- if (kBN == null)
83
+ if (kBN == null) {
79
84
  throw new Error('k is undefined');
85
+ }
80
86
  kBN = truncateToN(kBN, true);
81
87
  if (kBN.cmpn(1) < 0 || kBN.cmp(ns1) > 0) {
82
88
  if (BigNumber_js_1.default.isBN(customK)) {
83
- throw new Error('Invalid fixed custom K value (must be >1 and <N1)');
89
+ throw new Error('Invalid fixed custom K value (must be >1 and <N-1)');
84
90
  }
85
91
  continue;
86
92
  }
87
- const kBig = BigInt('0x' + kBN.toString(16));
88
- // —— R = k·G (Jacobian, window‑NAF) ──────────────────────────────────────
89
- const R = (0, Point_js_1.scalarMultiplyWNAF)(kBig, { x: Point_js_1.GX_BIGINT, y: Point_js_1.GY_BIGINT });
90
- if (R.Z === 0n) { // point at infinity – should never happen for valid k
93
+ const R = curve.g.mulCT(kBN);
94
+ if (R.isInfinity()) {
91
95
  if (BigNumber_js_1.default.isBN(customK)) {
92
96
  throw new Error('Invalid fixed custom K value (k·G at infinity)');
93
97
  }
94
98
  continue;
95
99
  }
96
- // affine X coordinate of R
97
- const zInv = (0, Point_js_1.biModInv)(R.Z);
98
- const zInv2 = (0, Point_js_1.biModMul)(zInv, zInv);
99
- const xAff = (0, Point_js_1.biModMul)(R.X, zInv2);
100
+ const xAff = BigInt('0x' + R.getX().toString(16));
100
101
  const rBig = (0, Point_js_1.modN)(xAff);
101
102
  if (rBig === 0n) {
102
103
  if (BigNumber_js_1.default.isBN(customK)) {
@@ -104,7 +105,7 @@ const sign = (msg, key, forceLowS = false, customK) => {
104
105
  }
105
106
  continue;
106
107
  }
107
- // —— s = k⁻¹ · (msg + r·key) mod n ─────────────────────────────────────
108
+ const kBig = BigInt('0x' + kBN.toString(16));
108
109
  const kInv = (0, Point_js_1.modInvN)(kBig);
109
110
  const rTimesKey = (0, Point_js_1.modMulN)(rBig, keyBig);
110
111
  const sum = (0, Point_js_1.modN)(msgBig + rTimesKey);
@@ -115,11 +116,9 @@ const sign = (msg, key, forceLowS = false, customK) => {
115
116
  }
116
117
  continue;
117
118
  }
118
- // low‑S mitigation (BIP‑62/BIP‑340 style)
119
119
  if (forceLowS && sBig > halfN) {
120
120
  sBig = Point_js_1.N_BIGINT - sBig;
121
121
  }
122
- // —— convert back to BigNumber & return ─────────────────────────────────
123
122
  const r = new BigNumber_js_1.default(rBig.toString(16), 16);
124
123
  const s = new BigNumber_js_1.default(sBig.toString(16), 16);
125
124
  return new Signature_js_1.default(r, s);
@@ -146,17 +145,17 @@ exports.sign = sign;
146
145
  */
147
146
  const verify = (msg, sig, key) => {
148
147
  // Convert inputs to BigInt
149
- const hash = BigInt('0x' + msg.toString(16));
148
+ const hash = bnToBigInt(msg);
150
149
  if ((key.x == null) || (key.y == null)) {
151
150
  throw new Error('Invalid public key: missing coordinates.');
152
151
  }
153
152
  const publicKey = {
154
- x: BigInt('0x' + key.x.toString(16)),
155
- y: BigInt('0x' + key.y.toString(16))
153
+ x: bnToBigInt(key.x),
154
+ y: bnToBigInt(key.y)
156
155
  };
157
156
  const signature = {
158
- r: BigInt('0x' + sig.r.toString(16)),
159
- s: BigInt('0x' + sig.s.toString(16))
157
+ r: bnToBigInt(sig.r),
158
+ s: bnToBigInt(sig.s)
160
159
  };
161
160
  const { r, s } = signature;
162
161
  const z = hash;
@@ -1 +1 @@
1
- {"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ECDSA.js","sourceRoot":"","sources":["../../../../src/primitives/ECDSA.ts"],"names":[],"mappings":"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"}