@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.36 → 8.2.1-alpha.360

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 (90) hide show
  1. package/CHANGELOG.md +519 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +25 -6
  4. package/dist/src/curves/constant.d.ts +0 -2
  5. package/dist/src/curves/constant.d.ts.map +0 -1
  6. package/dist/src/curves/constant.js +0 -6
  7. package/dist/src/curves/ed25519.d.ts +0 -21
  8. package/dist/src/curves/ed25519.d.ts.map +0 -1
  9. package/dist/src/curves/ed25519.js +0 -72
  10. package/dist/src/curves/ed25519Bip32HdTree.d.ts +0 -10
  11. package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +0 -1
  12. package/dist/src/curves/ed25519Bip32HdTree.js +0 -85
  13. package/dist/src/curves/index.d.ts +0 -8
  14. package/dist/src/curves/index.d.ts.map +0 -1
  15. package/dist/src/curves/index.js +0 -20
  16. package/dist/src/curves/secp256k1.d.ts +0 -19
  17. package/dist/src/curves/secp256k1.d.ts.map +0 -1
  18. package/dist/src/curves/secp256k1.js +0 -77
  19. package/dist/src/curves/secp256k1Bip32HdTree.d.ts +0 -8
  20. package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +0 -1
  21. package/dist/src/curves/secp256k1Bip32HdTree.js +0 -54
  22. package/dist/src/curves/types.d.ts +0 -36
  23. package/dist/src/curves/types.d.ts.map +0 -1
  24. package/dist/src/curves/types.js +0 -3
  25. package/dist/src/curves/util.d.ts +0 -2
  26. package/dist/src/curves/util.d.ts.map +0 -1
  27. package/dist/src/curves/util.js +0 -11
  28. package/dist/src/hashCommitment.d.ts +0 -17
  29. package/dist/src/hashCommitment.d.ts.map +0 -1
  30. package/dist/src/hashCommitment.js +0 -45
  31. package/dist/src/index.d.ts +0 -9
  32. package/dist/src/index.d.ts.map +0 -1
  33. package/dist/src/index.js +0 -34
  34. package/dist/src/openssl/index.d.ts +0 -2
  35. package/dist/src/openssl/index.d.ts.map +0 -1
  36. package/dist/src/openssl/index.js +0 -14
  37. package/dist/src/openssl/openssl.d.ts +0 -9
  38. package/dist/src/openssl/openssl.d.ts.map +0 -1
  39. package/dist/src/openssl/openssl.js +0 -45
  40. package/dist/src/openssl/opensslbytes.d.ts +0 -4
  41. package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
  42. package/dist/src/openssl/opensslbytes.js +0 -20
  43. package/dist/src/schnorrProof.d.ts +0 -22
  44. package/dist/src/schnorrProof.d.ts.map +0 -1
  45. package/dist/src/schnorrProof.js +0 -62
  46. package/dist/src/shamir/index.d.ts +0 -3
  47. package/dist/src/shamir/index.d.ts.map +0 -1
  48. package/dist/src/shamir/index.js +0 -15
  49. package/dist/src/shamir/shamir.d.ts +0 -38
  50. package/dist/src/shamir/shamir.d.ts.map +0 -1
  51. package/dist/src/shamir/shamir.js +0 -136
  52. package/dist/src/shamir/types.d.ts +0 -5
  53. package/dist/src/shamir/types.d.ts.map +0 -1
  54. package/dist/src/shamir/types.js +0 -3
  55. package/dist/src/tss/ecdsa/generatePaillierKey.d.ts +0 -6
  56. package/dist/src/tss/ecdsa/generatePaillierKey.d.ts.map +0 -1
  57. package/dist/src/tss/ecdsa/generatePaillierKey.js +0 -52
  58. package/dist/src/tss/ecdsa/index.d.ts +0 -8
  59. package/dist/src/tss/ecdsa/index.d.ts.map +0 -1
  60. package/dist/src/tss/ecdsa/index.js +0 -33
  61. package/dist/src/tss/ecdsa/noSmallFactorsProof.d.ts +0 -24
  62. package/dist/src/tss/ecdsa/noSmallFactorsProof.d.ts.map +0 -1
  63. package/dist/src/tss/ecdsa/noSmallFactorsProof.js +0 -157
  64. package/dist/src/tss/ecdsa/paillierBlumProof.d.ts +0 -16
  65. package/dist/src/tss/ecdsa/paillierBlumProof.d.ts.map +0 -1
  66. package/dist/src/tss/ecdsa/paillierBlumProof.js +0 -148
  67. package/dist/src/tss/ecdsa/paillierProof.d.ts +0 -24
  68. package/dist/src/tss/ecdsa/paillierProof.d.ts.map +0 -1
  69. package/dist/src/tss/ecdsa/paillierProof.js +0 -86
  70. package/dist/src/tss/ecdsa/primes.d.ts +0 -2
  71. package/dist/src/tss/ecdsa/primes.d.ts.map +0 -1
  72. package/dist/src/tss/ecdsa/primes.js +0 -1846
  73. package/dist/src/tss/ecdsa/rangeProof.d.ts +0 -80
  74. package/dist/src/tss/ecdsa/rangeProof.d.ts.map +0 -1
  75. package/dist/src/tss/ecdsa/rangeProof.js +0 -404
  76. package/dist/src/tss/ecdsa/types.d.ts +0 -182
  77. package/dist/src/tss/ecdsa/types.d.ts.map +0 -1
  78. package/dist/src/tss/ecdsa/types.js +0 -197
  79. package/dist/src/tss/ecdsa/zkVProof.d.ts +0 -25
  80. package/dist/src/tss/ecdsa/zkVProof.d.ts.map +0 -1
  81. package/dist/src/tss/ecdsa/zkVProof.js +0 -71
  82. package/dist/src/tss/index.d.ts +0 -2
  83. package/dist/src/tss/index.d.ts.map +0 -1
  84. package/dist/src/tss/index.js +0 -14
  85. package/dist/src/types.d.ts +0 -14
  86. package/dist/src/types.d.ts.map +0 -1
  87. package/dist/src/types.js +0 -3
  88. package/dist/src/util.d.ts +0 -61
  89. package/dist/src/util.d.ts.map +0 -1
  90. package/dist/src/util.js +0 -208
@@ -1,22 +0,0 @@
1
- /// <reference types="node" />
2
- import { BaseCurve as Curve } from './curves';
3
- import { SchnorrProof } from './types';
4
- /**
5
- * Create a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
6
- * @param A The curve point.
7
- * @param a The discrete log of the curve point.
8
- * @param curve The elliptic curve.
9
- * @param additionalCtx Additional contextual information to associate with the proof.
10
- * @returns The created proof.
11
- */
12
- export declare function createSchnorrProof(A: bigint, a: bigint, curve: Curve, additionalCtx?: Buffer): SchnorrProof;
13
- /**
14
- * Verify a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
15
- * @param A The curve point.
16
- * @param proof The schnorr proof.
17
- * @param curve The elliptic curve.
18
- * @param additionalCtx Additional contextual information that is supposed to associate with the proof.
19
- * @returns True if the proof checks out.
20
- */
21
- export declare function verifySchnorrProof(A: bigint, proof: SchnorrProof, curve: Curve, additionalCtx?: Buffer): boolean;
22
- //# sourceMappingURL=schnorrProof.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schnorrProof.d.ts","sourceRoot":"","sources":["../../src/schnorrProof.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,KAAK,EACZ,aAAa,GAAE,MAAwB,GACtC,YAAY,CAYd;AAuBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,KAAK,EACZ,aAAa,GAAE,MAAwB,GACtC,OAAO,CAQT"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifySchnorrProof = exports.createSchnorrProof = void 0;
4
- /**
5
- * Implementation of Schnorr Non-interactive Zero-Knowledge Proof.
6
- * @see {@link https://datatracker.ietf.org/doc/rfc8235/}
7
- */
8
- const crypto_1 = require("crypto");
9
- const util_1 = require("./util");
10
- /**
11
- * Create a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
12
- * @param A The curve point.
13
- * @param a The discrete log of the curve point.
14
- * @param curve The elliptic curve.
15
- * @param additionalCtx Additional contextual information to associate with the proof.
16
- * @returns The created proof.
17
- */
18
- function createSchnorrProof(A, a, curve, additionalCtx = Buffer.from('')) {
19
- const v = curve.scalarRandom();
20
- const V = curve.basePointMult(v);
21
- const c = nonInteractiveChallenge(V, A, curve, additionalCtx);
22
- const r = curve.scalarSub(v, curve.scalarMult(a, c));
23
- return {
24
- vPoint: V,
25
- r: r,
26
- };
27
- }
28
- exports.createSchnorrProof = createSchnorrProof;
29
- /**
30
- * Calculate challenge for NIZK schnorr proof using Fiat-Shamir transform.
31
- *
32
- * @param V The point/public value corresponding to the random scalar value v chosen by the prover.
33
- * @param A The point to be proved.
34
- * @param curve The elliptic curve.
35
- * @param additionalCtx Additional contextual information to associate with the proof.
36
- * @returns The calculated challenge.
37
- */
38
- function nonInteractiveChallenge(V, A, curve, additionalCtx) {
39
- const G = curve.basePointMult(BigInt(1));
40
- const hash = crypto_1.createHash('sha256');
41
- hash.update(util_1.bigIntToBufferBE(G, 32));
42
- hash.update(util_1.bigIntToBufferBE(V, 32));
43
- hash.update(util_1.bigIntToBufferBE(A, 32));
44
- hash.update(additionalCtx);
45
- return util_1.bigIntFromBufferBE(hash.digest());
46
- }
47
- /**
48
- * Verify a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
49
- * @param A The curve point.
50
- * @param proof The schnorr proof.
51
- * @param curve The elliptic curve.
52
- * @param additionalCtx Additional contextual information that is supposed to associate with the proof.
53
- * @returns True if the proof checks out.
54
- */
55
- function verifySchnorrProof(A, proof, curve, additionalCtx = Buffer.from('')) {
56
- const c = nonInteractiveChallenge(proof.vPoint, A, curve, additionalCtx);
57
- const rG = curve.basePointMult(proof.r);
58
- const cA = curve.pointMultiply(A, curve.scalarReduce(c));
59
- return proof.vPoint === curve.pointAdd(rG, cA);
60
- }
61
- exports.verifySchnorrProof = verifySchnorrProof;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nobm9yclByb29mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaG5vcnJQcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDSCxtQ0FBb0M7QUFHcEMsaUNBQThEO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsQ0FBUyxFQUNULENBQVMsRUFDVCxLQUFZLEVBQ1osZ0JBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXZDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sQ0FBQyxHQUFHLHVCQUF1QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTlELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckQsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDO1FBQ1QsQ0FBQyxFQUFFLENBQUM7S0FDTCxDQUFDO0FBQ0osQ0FBQztBQWpCRCxnREFpQkM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsdUJBQXVCLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFZLEVBQUUsYUFBcUI7SUFDeEYsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QyxNQUFNLElBQUksR0FBRyxtQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQWdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLHVCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFM0IsT0FBTyx5QkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxDQUFTLEVBQ1QsS0FBbUIsRUFDbkIsS0FBWSxFQUNaLGdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFekUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpELE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBYkQsZ0RBYUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIFNjaG5vcnIgTm9uLWludGVyYWN0aXZlIFplcm8tS25vd2xlZGdlIFByb29mLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvcmZjODIzNS99XG4gKi9cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgQmFzZUN1cnZlIGFzIEN1cnZlIH0gZnJvbSAnLi9jdXJ2ZXMnO1xuaW1wb3J0IHsgU2Nobm9yclByb29mIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBiaWdJbnRGcm9tQnVmZmVyQkUsIGJpZ0ludFRvQnVmZmVyQkUgfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIENyZWF0ZSBhIFNjaG5vcnIgUHJvb2Ygb2Yga25vd2xlZGdlIG9mIHRoZSBkaXNjcmV0ZSBsb2cgb2YgYW4gRWxsaXB0aWMtY3VydmUgcG9pbnQuXG4gKiBAcGFyYW0gQSBUaGUgY3VydmUgcG9pbnQuXG4gKiBAcGFyYW0gYSBUaGUgZGlzY3JldGUgbG9nIG9mIHRoZSBjdXJ2ZSBwb2ludC5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgcHJvb2YuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTY2hub3JyUHJvb2YoXG4gIEE6IGJpZ2ludCxcbiAgYTogYmlnaW50LFxuICBjdXJ2ZTogQ3VydmUsXG4gIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCcnKVxuKTogU2Nobm9yclByb29mIHtcbiAgY29uc3QgdiA9IGN1cnZlLnNjYWxhclJhbmRvbSgpO1xuICBjb25zdCBWID0gY3VydmUuYmFzZVBvaW50TXVsdCh2KTtcblxuICBjb25zdCBjID0gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoViwgQSwgY3VydmUsIGFkZGl0aW9uYWxDdHgpO1xuXG4gIGNvbnN0IHIgPSBjdXJ2ZS5zY2FsYXJTdWIodiwgY3VydmUuc2NhbGFyTXVsdChhLCBjKSk7XG5cbiAgcmV0dXJuIHtcbiAgICB2UG9pbnQ6IFYsXG4gICAgcjogcixcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY2hhbGxlbmdlIGZvciBOSVpLIHNjaG5vcnIgcHJvb2YgdXNpbmcgRmlhdC1TaGFtaXIgdHJhbnNmb3JtLlxuICpcbiAqIEBwYXJhbSBWIFRoZSBwb2ludC9wdWJsaWMgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgcmFuZG9tIHNjYWxhciB2YWx1ZSB2IGNob3NlbiBieSB0aGUgcHJvdmVyLlxuICogQHBhcmFtIEEgVGhlIHBvaW50IHRvIGJlIHByb3ZlZC5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVGhlIGNhbGN1bGF0ZWQgY2hhbGxlbmdlLlxuICovXG5mdW5jdGlvbiBub25JbnRlcmFjdGl2ZUNoYWxsZW5nZShWOiBiaWdpbnQsIEE6IGJpZ2ludCwgY3VydmU6IEN1cnZlLCBhZGRpdGlvbmFsQ3R4OiBCdWZmZXIpOiBiaWdpbnQge1xuICBjb25zdCBHID0gY3VydmUuYmFzZVBvaW50TXVsdChCaWdJbnQoMSkpO1xuXG4gIGNvbnN0IGhhc2ggPSBjcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShHLCAzMikpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKFYsIDMyKSk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoQSwgMzIpKTtcbiAgaGFzaC51cGRhdGUoYWRkaXRpb25hbEN0eCk7XG5cbiAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJCRShoYXNoLmRpZ2VzdCgpKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgYSBTY2hub3JyIFByb29mIG9mIGtub3dsZWRnZSBvZiB0aGUgZGlzY3JldGUgbG9nIG9mIGFuIEVsbGlwdGljLWN1cnZlIHBvaW50LlxuICogQHBhcmFtIEEgVGhlIGN1cnZlIHBvaW50LlxuICogQHBhcmFtIHByb29mIFRoZSBzY2hub3JyIHByb29mLlxuICogQHBhcmFtIGN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZS5cbiAqIEBwYXJhbSBhZGRpdGlvbmFsQ3R4IEFkZGl0aW9uYWwgY29udGV4dHVhbCBpbmZvcm1hdGlvbiB0aGF0IGlzIHN1cHBvc2VkIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHByb29mIGNoZWNrcyBvdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTY2hub3JyUHJvb2YoXG4gIEE6IGJpZ2ludCxcbiAgcHJvb2Y6IFNjaG5vcnJQcm9vZixcbiAgY3VydmU6IEN1cnZlLFxuICBhZGRpdGlvbmFsQ3R4OiBCdWZmZXIgPSBCdWZmZXIuZnJvbSgnJylcbik6IGJvb2xlYW4ge1xuICBjb25zdCBjID0gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UocHJvb2YudlBvaW50LCBBLCBjdXJ2ZSwgYWRkaXRpb25hbEN0eCk7XG5cbiAgY29uc3QgckcgPSBjdXJ2ZS5iYXNlUG9pbnRNdWx0KHByb29mLnIpO1xuXG4gIGNvbnN0IGNBID0gY3VydmUucG9pbnRNdWx0aXBseShBLCBjdXJ2ZS5zY2FsYXJSZWR1Y2UoYykpO1xuXG4gIHJldHVybiBwcm9vZi52UG9pbnQgPT09IGN1cnZlLnBvaW50QWRkKHJHLCBjQSk7XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './types';
2
- export * from './shamir';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shamir/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./types"), exports);
14
- __exportStar(require("./shamir"), exports);
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhbWlyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4QiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhbWlyJztcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { BaseCurve } from '../curves';
2
- import { SplitSecret } from './types';
3
- export declare class Shamir {
4
- curve: BaseCurve;
5
- constructor(curve: BaseCurve);
6
- /**
7
- * Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
8
- * ways. The split secret requires `threshold` shares to be reconstructed.
9
- *
10
- * @param secret secret to split
11
- * @param threshold share threshold required to reconstruct secret
12
- * @param numShares total number of shares to split secret into
13
- * @param indices optional indices which can be used while generating the shares
14
- * @param salt optional salt which could be used while generating the shares
15
- * @returns Dictionary containing `shares`, a dictionary where each key is an int
16
- * in the range 1<=x<=numShares representing that share's free term, and `v`, an
17
- * array of proofs to be shared with all participants.
18
- */
19
- split(secret: bigint, threshold: number, numShares: number, indices?: Array<number>, salt?: bigint): SplitSecret;
20
- /**
21
- * Verify a VSS share.
22
- *
23
- * @param u Secret share received from other party.
24
- * @param v Verification values received from other party.
25
- * @param index Verifier's index.
26
- * @returns True on success; otherwise throws Error.
27
- */
28
- verify(u: bigint, v: Array<bigint>, index: number): boolean;
29
- /**
30
- * Reconstitute a secret from a dictionary of shares. The number of shares must
31
- * be equal to `t` to reconstitute the original secret.
32
- *
33
- * @param shares dictionary of shares. each key is the free term of the share
34
- * @returns secret
35
- */
36
- combine(shares: Record<number, bigint>): bigint;
37
- }
38
- //# sourceMappingURL=shamir.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shamir.d.ts","sourceRoot":"","sources":["../../../src/shamir/shamir.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,qBAAa,MAAM;IACjB,KAAK,EAAE,SAAS,CAAC;gBAEL,KAAK,EAAE,SAAS;IAI5B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,SAAY,GAAG,WAAW;IA8CnH;;;;;;;OAOG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsB3D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CA+BhD"}
@@ -1,136 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Shamir = void 0;
7
- const crypto_1 = __importDefault(require("crypto"));
8
- const util_1 = require("../util");
9
- class Shamir {
10
- constructor(curve) {
11
- this.curve = curve;
12
- }
13
- /**
14
- * Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
15
- * ways. The split secret requires `threshold` shares to be reconstructed.
16
- *
17
- * @param secret secret to split
18
- * @param threshold share threshold required to reconstruct secret
19
- * @param numShares total number of shares to split secret into
20
- * @param indices optional indices which can be used while generating the shares
21
- * @param salt optional salt which could be used while generating the shares
22
- * @returns Dictionary containing `shares`, a dictionary where each key is an int
23
- * in the range 1<=x<=numShares representing that share's free term, and `v`, an
24
- * array of proofs to be shared with all participants.
25
- */
26
- split(secret, threshold, numShares, indices, salt = BigInt(0)) {
27
- let bigIndices;
28
- if (indices) {
29
- bigIndices = indices.map((i) => {
30
- if (i < 1) {
31
- throw new Error('Invalid value supplied for indices');
32
- }
33
- return BigInt(i);
34
- });
35
- }
36
- else {
37
- // make range(1, n + 1)
38
- bigIndices = Array(numShares)
39
- .fill(null)
40
- .map((_, i) => BigInt(i + 1));
41
- }
42
- if (threshold < 2) {
43
- throw new Error('Threshold cannot be less than two');
44
- }
45
- if (threshold > numShares) {
46
- throw new Error('Threshold cannot be greater than the total number of shares');
47
- }
48
- const coefs = [];
49
- const v = [];
50
- for (let ind = 0; ind < threshold - 1; ind++) {
51
- const coeff = util_1.clamp(util_1.bigIntFromBufferLE(crypto_1.default.createHmac('sha256', ind.toString(10)).update(util_1.bigIntToBufferLE(secret, 32)).digest()));
52
- coefs.push(coeff);
53
- v.unshift(this.curve.basePointMult(coeff));
54
- }
55
- coefs.push(secret);
56
- const shares = {};
57
- for (let ind = 0; ind < bigIndices.length; ind++) {
58
- const x = bigIndices[ind];
59
- let partial = coefs[0];
60
- for (let other = 1; other < coefs.length; other++) {
61
- partial = this.curve.scalarAdd(coefs[other], this.curve.scalarMult(partial, x));
62
- }
63
- shares[parseInt(x.toString(), 10)] = partial;
64
- }
65
- return { shares, v };
66
- }
67
- /**
68
- * Verify a VSS share.
69
- *
70
- * @param u Secret share received from other party.
71
- * @param v Verification values received from other party.
72
- * @param index Verifier's index.
73
- * @returns True on success; otherwise throws Error.
74
- */
75
- verify(u, v, index) {
76
- if (v.length < 2) {
77
- throw new Error('Threshold cannot be less than two');
78
- }
79
- if (index < 1) {
80
- throw new Error('Invalid value supplied for index');
81
- }
82
- const i = BigInt(index);
83
- let x = v[0];
84
- let t = BigInt(1);
85
- for (const vsj of v.slice(1)) {
86
- t = this.curve.scalarMult(t, i);
87
- const vjt = this.curve.pointMultiply(vsj, t);
88
- x = this.curve.pointAdd(x, vjt);
89
- }
90
- const sigmaG = this.curve.basePointMult(u);
91
- if (x !== sigmaG) {
92
- throw new Error('Could not verify share');
93
- }
94
- return true;
95
- }
96
- /**
97
- * Reconstitute a secret from a dictionary of shares. The number of shares must
98
- * be equal to `t` to reconstitute the original secret.
99
- *
100
- * @param shares dictionary of shares. each key is the free term of the share
101
- * @returns secret
102
- */
103
- combine(shares) {
104
- try {
105
- let s = BigInt(0);
106
- for (const i in shares) {
107
- const yi = shares[i];
108
- const xi = BigInt(i);
109
- let num = BigInt(1);
110
- let denum = BigInt(1);
111
- for (const j in shares) {
112
- const xj = BigInt(j);
113
- if (xi !== xj) {
114
- num = this.curve.scalarMult(num, xj);
115
- }
116
- }
117
- for (const j in shares) {
118
- const xj = BigInt(j);
119
- if (xi !== xj) {
120
- denum = this.curve.scalarMult(denum, this.curve.scalarSub(xj, xi));
121
- }
122
- }
123
- const inverted = this.curve.scalarInvert(denum);
124
- const innerMultiplied = this.curve.scalarMult(num, inverted);
125
- const multiplied = this.curve.scalarMult(innerMultiplied, yi);
126
- s = this.curve.scalarAdd(multiplied, s);
127
- }
128
- return s;
129
- }
130
- catch (error) {
131
- throw new Error('Failed to combine Shamir shares , ' + error);
132
- }
133
- }
134
- }
135
- exports.Shamir = Shamir;
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhbWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYW1pci9zaGFtaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRzVCLGtDQUFzRTtBQUV0RSxNQUFhLE1BQU07SUFHakIsWUFBWSxLQUFnQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsS0FBSyxDQUFDLE1BQWMsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsT0FBdUIsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQXlCLENBQUM7UUFDOUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2lCQUN2RDtnQkFDRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCx1QkFBdUI7WUFDdkIsVUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7aUJBQzFCLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN0RDtRQUVELElBQUksU0FBUyxHQUFHLFNBQVMsRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFD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QUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7Q0FDRjtBQXRJRCx3QkFzSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlQ3VydmUgfSBmcm9tICcuLi9jdXJ2ZXMnO1xuaW1wb3J0IHsgU3BsaXRTZWNyZXQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJMRSwgYmlnSW50VG9CdWZmZXJMRSwgY2xhbXAgfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IGNsYXNzIFNoYW1pciB7XG4gIGN1cnZlOiBCYXNlQ3VydmU7XG5cbiAgY29uc3RydWN0b3IoY3VydmU6IEJhc2VDdXJ2ZSkge1xuICAgIHRoaXMuY3VydmUgPSBjdXJ2ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIFNoYW1pciBzaGFyaW5nIG9uIHRoZSBzZWNyZXQgYHNlY3JldGAgdG8gdGhlIGRlZ3JlZSBgdGhyZXNob2xkIC0gMWAgc3BsaXQgYG51bVNoYXJlc2BcbiAgICogd2F5cy4gVGhlIHNwbGl0IHNlY3JldCByZXF1aXJlcyBgdGhyZXNob2xkYCBzaGFyZXMgdG8gYmUgcmVjb25zdHJ1Y3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHNlY3JldCBzZWNyZXQgdG8gc3BsaXRcbiAgICogQHBhcmFtIHRocmVzaG9sZCBzaGFyZSB0aHJlc2hvbGQgcmVxdWlyZWQgdG8gcmVjb25zdHJ1Y3Qgc2VjcmV0XG4gICAqIEBwYXJhbSBudW1TaGFyZXMgdG90YWwgbnVtYmVyIG9mIHNoYXJlcyB0byBzcGxpdCBzZWNyZXQgaW50b1xuICAgKiBAcGFyYW0gaW5kaWNlcyBvcHRpb25hbCBpbmRpY2VzIHdoaWNoIGNhbiBiZSB1c2VkIHdoaWxlIGdlbmVyYXRpbmcgdGhlIHNoYXJlc1xuICAgKiBAcGFyYW0gc2FsdCBvcHRpb25hbCBzYWx0IHdoaWNoIGNvdWxkIGJlIHVzZWQgd2hpbGUgZ2VuZXJhdGluZyB0aGUgc2hhcmVzXG4gICAqIEByZXR1cm5zIERpY3Rpb25hcnkgY29udGFpbmluZyBgc2hhcmVzYCwgYSBkaWN0aW9uYXJ5IHdoZXJlIGVhY2gga2V5IGlzIGFuIGludFxuICAgKiBpbiB0aGUgcmFuZ2UgMTw9eDw9bnVtU2hhcmVzIHJlcHJlc2VudGluZyB0aGF0IHNoYXJlJ3MgZnJlZSB0ZXJtLCBhbmQgYHZgLCBhblxuICAgKiBhcnJheSBvZiBwcm9vZnMgdG8gYmUgc2hhcmVkIHdpdGggYWxsIHBhcnRpY2lwYW50cy5cbiAgICovXG4gIHNwbGl0KHNlY3JldDogYmlnaW50LCB0aHJlc2hvbGQ6IG51bWJlciwgbnVtU2hhcmVzOiBudW1iZXIsIGluZGljZXM/OiBBcnJheTxudW1iZXI+LCBzYWx0ID0gQmlnSW50KDApKTogU3BsaXRTZWNyZXQge1xuICAgIGxldCBiaWdJbmRpY2VzOiBBcnJheTxiaWdpbnQ+O1xuICAgIGlmIChpbmRpY2VzKSB7XG4gICAgICBiaWdJbmRpY2VzID0gaW5kaWNlcy5tYXAoKGkpID0+IHtcbiAgICAgICAgaWYgKGkgPCAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIHN1cHBsaWVkIGZvciBpbmRpY2VzJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJpZ0ludChpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBtYWtlIHJhbmdlKDEsIG4gKyAxKVxuICAgICAgYmlnSW5kaWNlcyA9IEFycmF5KG51bVNoYXJlcylcbiAgICAgICAgLmZpbGwobnVsbClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gQmlnSW50KGkgKyAxKSk7XG4gICAgfVxuICAgIGlmICh0aHJlc2hvbGQgPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RocmVzaG9sZCBjYW5ub3QgYmUgbGVzcyB0aGFuIHR3bycpO1xuICAgIH1cblxuICAgIGlmICh0aHJlc2hvbGQgPiBudW1TaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhyZXNob2xkIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIHRvdGFsIG51bWJlciBvZiBzaGFyZXMnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2VmczogYmlnaW50W10gPSBbXTtcbiAgICBjb25zdCB2OiBBcnJheTxiaWdpbnQ+ID0gW107XG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgdGhyZXNob2xkIC0gMTsgaW5kKyspIHtcbiAgICAgIGNvbnN0IGNvZWZmID0gY2xhbXAoXG4gICAgICAgIGJpZ0ludEZyb21CdWZmZXJMRShjcnlwdG8uY3JlYXRlSG1hYygnc2hhMjU2JywgaW5kLnRvU3RyaW5nKDEwKSkudXBkYXRlKGJpZ0ludFRvQnVmZmVyTEUoc2VjcmV0LCAzMikpLmRpZ2VzdCgpKVxuICAgICAgKTtcbiAgICAgIGNvZWZzLnB1c2goY29lZmYpO1xuICAgICAgdi51bnNoaWZ0KHRoaXMuY3VydmUuYmFzZVBvaW50TXVsdChjb2VmZikpO1xuICAgIH1cbiAgICBjb2Vmcy5wdXNoKHNlY3JldCk7XG5cbiAgICBjb25zdCBzaGFyZXM6IFJlY29yZDxudW1iZXIsIGJpZ2ludD4gPSB7fTtcbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCBiaWdJbmRpY2VzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IHggPSBiaWdJbmRpY2VzW2luZF07XG4gICAgICBsZXQgcGFydGlhbCA9IGNvZWZzWzBdO1xuICAgICAgZm9yIChsZXQgb3RoZXIgPSAxOyBvdGhlciA8IGNvZWZzLmxlbmd0aDsgb3RoZXIrKykge1xuICAgICAgICBwYXJ0aWFsID0gdGhpcy5jdXJ2ZS5zY2FsYXJBZGQoY29lZnNbb3RoZXJdLCB0aGlzLmN1cnZlLnNjYWxhck11bHQocGFydGlhbCwgeCkpO1xuICAgICAgfVxuICAgICAgc2hhcmVzW3BhcnNlSW50KHgudG9TdHJpbmcoKSwgMTApXSA9IHBhcnRpYWw7XG4gICAgfVxuICAgIHJldHVybiB7IHNoYXJlcywgdiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmeSBhIFZTUyBzaGFyZS5cbiAgICpcbiAgICogQHBhcmFtIHUgU2VjcmV0IHNoYXJlIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydHkuXG4gICAqIEBwYXJhbSB2IFZlcmlmaWNhdGlvbiB2YWx1ZXMgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0eS5cbiAgICogQHBhcmFtIGluZGV4IFZlcmlmaWVyJ3MgaW5kZXguXG4gICAqIEByZXR1cm5zIFRydWUgb24gc3VjY2Vzczsgb3RoZXJ3aXNlIHRocm93cyBFcnJvci5cbiAgICovXG4gIHZlcmlmeSh1OiBiaWdpbnQsIHY6IEFycmF5PGJpZ2ludD4sIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodi5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RocmVzaG9sZCBjYW5ub3QgYmUgbGVzcyB0aGFuIHR3bycpO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgc3VwcGxpZWQgZm9yIGluZGV4Jyk7XG4gICAgfVxuICAgIGNvbnN0IGkgPSBCaWdJbnQoaW5kZXgpO1xuICAgIGxldCB4ID0gdlswXTtcbiAgICBsZXQgdCA9IEJpZ0ludCgxKTtcbiAgICBmb3IgKGNvbnN0IHZzaiBvZiB2LnNsaWNlKDEpKSB7XG4gICAgICB0ID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KHQsIGkpO1xuICAgICAgY29uc3Qgdmp0ID0gdGhpcy5jdXJ2ZS5wb2ludE11bHRpcGx5KHZzaiwgdCk7XG4gICAgICB4ID0gdGhpcy5jdXJ2ZS5wb2ludEFkZCh4LCB2anQpO1xuICAgIH1cbiAgICBjb25zdCBzaWdtYUcgPSB0aGlzLmN1cnZlLmJhc2VQb2ludE11bHQodSk7XG4gICAgaWYgKHggIT09IHNpZ21hRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgdmVyaWZ5IHNoYXJlJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29uc3RpdHV0ZSBhIHNlY3JldCBmcm9tIGEgZGljdGlvbmFyeSBvZiBzaGFyZXMuIFRoZSBudW1iZXIgb2Ygc2hhcmVzIG11c3RcbiAgICogYmUgZXF1YWwgdG8gYHRgIHRvIHJlY29uc3RpdHV0ZSB0aGUgb3JpZ2luYWwgc2VjcmV0LlxuICAgKlxuICAgKiBAcGFyYW0gc2hhcmVzIGRpY3Rpb25hcnkgb2Ygc2hhcmVzLiBlYWNoIGtleSBpcyB0aGUgZnJlZSB0ZXJtIG9mIHRoZSBzaGFyZVxuICAgKiBAcmV0dXJucyBzZWNyZXRcbiAgICovXG4gIGNvbWJpbmUoc2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBiaWdpbnQ+KTogYmlnaW50IHtcbiAgICB0cnkge1xuICAgICAgbGV0IHMgPSBCaWdJbnQoMCk7XG4gICAgICBmb3IgKGNvbnN0IGkgaW4gc2hhcmVzKSB7XG4gICAgICAgIGNvbnN0IHlpID0gc2hhcmVzW2ldO1xuICAgICAgICBjb25zdCB4aSA9IEJpZ0ludChpKTtcbiAgICAgICAgbGV0IG51bSA9IEJpZ0ludCgxKTtcbiAgICAgICAgbGV0IGRlbnVtID0gQmlnSW50KDEpO1xuXG4gICAgICAgIGZvciAoY29uc3QgaiBpbiBzaGFyZXMpIHtcbiAgICAgICAgICBjb25zdCB4aiA9IEJpZ0ludChqKTtcbiAgICAgICAgICBpZiAoeGkgIT09IHhqKSB7XG4gICAgICAgICAgICBudW0gPSB0aGlzLmN1cnZlLnNjYWxhck11bHQobnVtLCB4aik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaiBpbiBzaGFyZXMpIHtcbiAgICAgICAgICBjb25zdCB4aiA9IEJpZ0ludChqKTtcbiAgICAgICAgICBpZiAoeGkgIT09IHhqKSB7XG4gICAgICAgICAgICBkZW51bSA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChkZW51bSwgdGhpcy5jdXJ2ZS5zY2FsYXJTdWIoeGosIHhpKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGludmVydGVkID0gdGhpcy5jdXJ2ZS5zY2FsYXJJbnZlcnQoZGVudW0pO1xuICAgICAgICBjb25zdCBpbm5lck11bHRpcGxpZWQgPSB0aGlzLmN1cnZlLnNjYWxhck11bHQobnVtLCBpbnZlcnRlZCk7XG4gICAgICAgIGNvbnN0IG11bHRpcGxpZWQgPSB0aGlzLmN1cnZlLnNjYWxhck11bHQoaW5uZXJNdWx0aXBsaWVkLCB5aSk7XG4gICAgICAgIHMgPSB0aGlzLmN1cnZlLnNjYWxhckFkZChtdWx0aXBsaWVkLCBzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjb21iaW5lIFNoYW1pciBzaGFyZXMgLCAnICsgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- export declare type SplitSecret = {
2
- shares: Record<number, bigint>;
3
- v: bigint[];
4
- };
5
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shamir/types.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,EAAE,MAAM,EAAE,CAAC;CACb,CAAC"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhbWlyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTcGxpdFNlY3JldCA9IHtcbiAgc2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBiaWdpbnQ+O1xuICB2OiBiaWdpbnRbXTtcbn07XG4iXX0=
@@ -1,6 +0,0 @@
1
- import { KeyPair } from 'paillier-bigint';
2
- import { DeserializedKeyPairWithPaillierBlumProof, RawPaillierKey } from './types';
3
- export declare function generatePaillierKey(bitlength?: number): Promise<RawPaillierKey>;
4
- export declare function generatePaillierKeyWithProof(bitlength?: number): Promise<DeserializedKeyPairWithPaillierBlumProof>;
5
- export declare function rawPaillierKeyToPaillierKey(n: bigint, lambda: bigint, mu: bigint, p: bigint, q: bigint): KeyPair;
6
- //# sourceMappingURL=generatePaillierKey.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generatePaillierKey.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/generatePaillierKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,wCAAwC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGnF,wBAAsB,mBAAmB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAUnF;AAED,wBAAsB,4BAA4B,CAChD,SAAS,SAAO,GACf,OAAO,CAAC,wCAAwC,CAAC,CAInD;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKhH"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.rawPaillierKeyToPaillierKey = exports.generatePaillierKeyWithProof = exports.generatePaillierKey = void 0;
23
- const bcu = __importStar(require("bigint-crypto-utils"));
24
- const paillier_bigint_1 = require("paillier-bigint");
25
- const paillierBlumProof_1 = require("./paillierBlumProof");
26
- // Implementation based on paillier-bigint's generateRandomKeys
27
- async function generatePaillierKey(bitlength = 3072) {
28
- let [p, q, n] = [BigInt(0), BigInt(0), BigInt(0)];
29
- do {
30
- p = await bcu.prime(Math.floor(bitlength / 2) + 1);
31
- q = await bcu.prime(Math.floor(bitlength / 2));
32
- n = p * q;
33
- } while (q === p || q % BigInt(4) !== BigInt(3) || p % BigInt(4) !== BigInt(3) || bcu.bitLength(n) !== bitlength);
34
- const lambda = (p - BigInt(1)) * (q - BigInt(1));
35
- const mu = bcu.modInv(lambda, n);
36
- return { n, lambda, mu, p, q };
37
- }
38
- exports.generatePaillierKey = generatePaillierKey;
39
- async function generatePaillierKeyWithProof(bitlength = 3072) {
40
- const key = await generatePaillierKey(bitlength);
41
- const proof = await paillierBlumProof_1.prove(key.p, key.q);
42
- return { ...key, ...proof };
43
- }
44
- exports.generatePaillierKeyWithProof = generatePaillierKeyWithProof;
45
- function rawPaillierKeyToPaillierKey(n, lambda, mu, p, q) {
46
- const g = n + BigInt(1);
47
- const publicKey = new paillier_bigint_1.PublicKey(n, g);
48
- const privateKey = new paillier_bigint_1.PrivateKey(lambda, mu, publicKey, p, q);
49
- return { publicKey, privateKey };
50
- }
51
- exports.rawPaillierKeyToPaillierKey = rawPaillierKeyToPaillierKey;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQYWlsbGllcktleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90c3MvZWNkc2EvZ2VuZXJhdGVQYWlsbGllcktleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQTJDO0FBQzNDLHFEQUFpRTtBQUNqRSwyREFBNEM7QUFHNUMsK0RBQStEO0FBQ3hELEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsSUFBSTtJQUN4RCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsR0FBRztRQUNELENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ1gsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFO0lBQ2xILE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7QUFDakMsQ0FBQztBQVZELGtEQVVDO0FBRU0sS0FBSyxVQUFVLDRCQUE0QixDQUNoRCxTQUFTLEdBQUcsSUFBSTtJQUVoQixNQUFNLEdBQUcsR0FBRyxNQUFNLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sS0FBSyxHQUFHLE1BQU0seUJBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUM5QixDQUFDO0FBTkQsb0VBTUM7QUFFRCxTQUFnQiwyQkFBMkIsQ0FBQyxDQUFTLEVBQUUsTUFBYyxFQUFFLEVBQVUsRUFBRSxDQUFTLEVBQUUsQ0FBUztJQUNyRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLE1BQU0sU0FBUyxHQUFHLElBQUksMkJBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSw0QkFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ25DLENBQUM7QUFMRCxrRUFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJjdSBmcm9tICdiaWdpbnQtY3J5cHRvLXV0aWxzJztcbmltcG9ydCB7IFB1YmxpY0tleSwgUHJpdmF0ZUtleSwgS2V5UGFpciB9IGZyb20gJ3BhaWxsaWVyLWJpZ2ludCc7XG5pbXBvcnQgeyBwcm92ZSB9IGZyb20gJy4vcGFpbGxpZXJCbHVtUHJvb2YnO1xuaW1wb3J0IHsgRGVzZXJpYWxpemVkS2V5UGFpcldpdGhQYWlsbGllckJsdW1Qcm9vZiwgUmF3UGFpbGxpZXJLZXkgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gSW1wbGVtZW50YXRpb24gYmFzZWQgb24gcGFpbGxpZXItYmlnaW50J3MgZ2VuZXJhdGVSYW5kb21LZXlzXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVQYWlsbGllcktleShiaXRsZW5ndGggPSAzMDcyKTogUHJvbWlzZTxSYXdQYWlsbGllcktleT4ge1xuICBsZXQgW3AsIHEsIG5dID0gW0JpZ0ludCgwKSwgQmlnSW50KDApLCBCaWdJbnQoMCldO1xuICBkbyB7XG4gICAgcCA9IGF3YWl0IGJjdS5wcmltZShNYXRoLmZsb29yKGJpdGxlbmd0aCAvIDIpICsgMSk7XG4gICAgcSA9IGF3YWl0IGJjdS5wcmltZShNYXRoLmZsb29yKGJpdGxlbmd0aCAvIDIpKTtcbiAgICBuID0gcCAqIHE7XG4gIH0gd2hpbGUgKHEgPT09IHAgfHwgcSAlIEJpZ0ludCg0KSAhPT0gQmlnSW50KDMpIHx8IHAgJSBCaWdJbnQoNCkgIT09IEJpZ0ludCgzKSB8fCBiY3UuYml0TGVuZ3RoKG4pICE9PSBiaXRsZW5ndGgpO1xuICBjb25zdCBsYW1iZGEgPSAocCAtIEJpZ0ludCgxKSkgKiAocSAtIEJpZ0ludCgxKSk7XG4gIGNvbnN0IG11ID0gYmN1Lm1vZEludihsYW1iZGEsIG4pO1xuICByZXR1cm4geyBuLCBsYW1iZGEsIG11LCBwLCBxIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVBhaWxsaWVyS2V5V2l0aFByb29mKFxuICBiaXRsZW5ndGggPSAzMDcyXG4pOiBQcm9taXNlPERlc2VyaWFsaXplZEtleVBhaXJXaXRoUGFpbGxpZXJCbHVtUHJvb2Y+IHtcbiAgY29uc3Qga2V5ID0gYXdhaXQgZ2VuZXJhdGVQYWlsbGllcktleShiaXRsZW5ndGgpO1xuICBjb25zdCBwcm9vZiA9IGF3YWl0IHByb3ZlKGtleS5wLCBrZXkucSk7XG4gIHJldHVybiB7IC4uLmtleSwgLi4ucHJvb2YgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJhd1BhaWxsaWVyS2V5VG9QYWlsbGllcktleShuOiBiaWdpbnQsIGxhbWJkYTogYmlnaW50LCBtdTogYmlnaW50LCBwOiBiaWdpbnQsIHE6IGJpZ2ludCk6IEtleVBhaXIge1xuICBjb25zdCBnID0gbiArIEJpZ0ludCgxKTtcbiAgY29uc3QgcHVibGljS2V5ID0gbmV3IFB1YmxpY0tleShuLCBnKTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IG5ldyBQcml2YXRlS2V5KGxhbWJkYSwgbXUsIHB1YmxpY0tleSwgcCwgcSk7XG4gIHJldHVybiB7IHB1YmxpY0tleSwgcHJpdmF0ZUtleSB9O1xufVxuIl19
@@ -1,8 +0,0 @@
1
- export * as EcdsaTypes from './types';
2
- export * as EcdsaRangeProof from './rangeProof';
3
- export * as EcdsaPaillierProof from './paillierProof';
4
- export * as EcdsaZkVProof from './zkVProof';
5
- export * as EcdsaNoSmallFactorsProof from './noSmallFactorsProof';
6
- export * from './generatePaillierKey';
7
- export declare const minModulusBitLength = 3072;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,kBAAkB,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,wBAAwB,MAAM,uBAAuB,CAAC;AAClE,cAAc,uBAAuB,CAAC;AACtC,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.minModulusBitLength = exports.EcdsaNoSmallFactorsProof = exports.EcdsaZkVProof = exports.EcdsaPaillierProof = exports.EcdsaRangeProof = exports.EcdsaTypes = void 0;
26
- exports.EcdsaTypes = __importStar(require("./types"));
27
- exports.EcdsaRangeProof = __importStar(require("./rangeProof"));
28
- exports.EcdsaPaillierProof = __importStar(require("./paillierProof"));
29
- exports.EcdsaZkVProof = __importStar(require("./zkVProof"));
30
- exports.EcdsaNoSmallFactorsProof = __importStar(require("./noSmallFactorsProof"));
31
- __exportStar(require("./generatePaillierKey"), exports);
32
- exports.minModulusBitLength = 3072;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBc0M7QUFDdEMsZ0VBQWdEO0FBQ2hELHNFQUFzRDtBQUN0RCw0REFBNEM7QUFDNUMsa0ZBQWtFO0FBQ2xFLHdEQUFzQztBQUN6QixRQUFBLG1CQUFtQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIEVjZHNhVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBhcyBFY2RzYVJhbmdlUHJvb2YgZnJvbSAnLi9yYW5nZVByb29mJztcbmV4cG9ydCAqIGFzIEVjZHNhUGFpbGxpZXJQcm9vZiBmcm9tICcuL3BhaWxsaWVyUHJvb2YnO1xuZXhwb3J0ICogYXMgRWNkc2Faa1ZQcm9vZiBmcm9tICcuL3prVlByb29mJztcbmV4cG9ydCAqIGFzIEVjZHNhTm9TbWFsbEZhY3RvcnNQcm9vZiBmcm9tICcuL25vU21hbGxGYWN0b3JzUHJvb2YnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0ZVBhaWxsaWVyS2V5JztcbmV4cG9ydCBjb25zdCBtaW5Nb2R1bHVzQml0TGVuZ3RoID0gMzA3MjtcbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { DeserializedNoSmallFactorsProof } from './types';
2
- /**
3
- * Prove that $n0$ has no small factors, where $n0$ is the product of two large primes.
4
- * @param p - a large prime.
5
- * @param q - a large prime.
6
- * @param w - a random number with the same bitLength as $p * q$, that satisfies the Jacobi of w is -1 wrt $n0$.
7
- * @param nHat - a safe bi-prime, such as that returned from rangeProof.generateNTilde.
8
- * @param s - security parameters for $nHat$ such as the $h1$ value returned from rangeProof.generateNTilde.
9
- * @param t - security parameters for $nHat$ such as the $h2$ value returned from rangeProof.generateNTilde.
10
- * @returns proof that the product of $p * q$ has no small factors.
11
- */
12
- export declare function prove(p: bigint, q: bigint, w: bigint, nHat: bigint, s: bigint, t: bigint): DeserializedNoSmallFactorsProof;
13
- /**
14
- * Verify that $n0$ is not the product of any small factors.
15
- * @param n0 - a modulus that is the product of $p$ and $q$.
16
- * @param w - a random number with the same bitLength as $n0$, that satisfies the Jacobi of w is -1 wrt $n0$.
17
- * @param nHat - a safe bi-prime, such as that returned from rangeProof.generateNTilde.
18
- * @param s - security parameters for $nHat$ such as the $h1$ value returned from rangeProof.generateNTilde.
19
- * @param t - security parameters for $nHat$ such as the $h2$ value returned from rangeProof.generateNTilde.
20
- * @param proof - a proof generated by noSmallFactors.prove.
21
- * @returns true if verification successful.
22
- */
23
- export declare function verify(n0: bigint, w: bigint, nHat: bigint, s: bigint, t: bigint, proof: DeserializedNoSmallFactorsProof): boolean;
24
- //# sourceMappingURL=noSmallFactorsProof.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"noSmallFactorsProof.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/noSmallFactorsProof.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AA2E1D;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,+BAA+B,CA+BjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CACpB,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAwBT"}