@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.9 → 8.2.1-alpha.91

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 (92) hide show
  1. package/CHANGELOG.md +511 -0
  2. package/dist/src/curves/constant.d.ts +2 -0
  3. package/dist/src/curves/constant.d.ts.map +1 -0
  4. package/dist/src/curves/constant.js +6 -0
  5. package/dist/src/curves/{baseCurve.d.ts → ed25519.d.ts} +9 -7
  6. package/dist/src/curves/ed25519.d.ts.map +1 -0
  7. package/dist/src/curves/ed25519.js +72 -0
  8. package/dist/src/curves/ed25519Bip32HdTree.d.ts +10 -0
  9. package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +1 -0
  10. package/dist/src/curves/ed25519Bip32HdTree.js +85 -0
  11. package/dist/src/curves/index.d.ts +6 -1
  12. package/dist/src/curves/index.d.ts.map +1 -1
  13. package/dist/src/curves/index.js +12 -3
  14. package/dist/src/curves/secp256k1.d.ts +3 -1
  15. package/dist/src/curves/secp256k1.d.ts.map +1 -1
  16. package/dist/src/curves/secp256k1.js +25 -14
  17. package/dist/src/curves/secp256k1Bip32HdTree.d.ts +8 -0
  18. package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +1 -0
  19. package/dist/src/curves/secp256k1Bip32HdTree.js +54 -0
  20. package/dist/src/curves/types.d.ts +36 -0
  21. package/dist/src/curves/types.d.ts.map +1 -0
  22. package/dist/src/curves/types.js +3 -0
  23. package/dist/src/curves/util.d.ts +2 -0
  24. package/dist/src/curves/util.d.ts.map +1 -0
  25. package/dist/src/curves/util.js +11 -0
  26. package/dist/src/hashCommitment.d.ts +17 -0
  27. package/dist/src/hashCommitment.d.ts.map +1 -0
  28. package/dist/src/hashCommitment.js +45 -0
  29. package/dist/src/index.d.ts +6 -2
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +25 -4
  32. package/dist/src/openssl/index.js +6 -2
  33. package/dist/src/openssl/openssl.js +3 -3
  34. package/dist/src/safePrime.d.ts +3 -0
  35. package/dist/src/safePrime.d.ts.map +1 -0
  36. package/dist/src/safePrime.js +20 -0
  37. package/dist/src/schnorrProof.d.ts +22 -0
  38. package/dist/src/schnorrProof.d.ts.map +1 -0
  39. package/dist/src/schnorrProof.js +62 -0
  40. package/dist/src/shamir/index.d.ts +3 -0
  41. package/dist/src/shamir/index.d.ts.map +1 -0
  42. package/dist/src/shamir/index.js +19 -0
  43. package/dist/src/shamir/shamir.d.ts +38 -0
  44. package/dist/src/shamir/shamir.d.ts.map +1 -0
  45. package/dist/src/shamir/shamir.js +136 -0
  46. package/dist/src/shamir/types.d.ts +5 -0
  47. package/dist/src/shamir/types.d.ts.map +1 -0
  48. package/dist/src/shamir/types.js +3 -0
  49. package/dist/src/tss/ecdsa/index.d.ts +1 -0
  50. package/dist/src/tss/ecdsa/index.d.ts.map +1 -1
  51. package/dist/src/tss/ecdsa/index.js +8 -3
  52. package/dist/src/tss/ecdsa/paillierproof.js +6 -6
  53. package/dist/src/tss/ecdsa/rangeproof.d.ts +0 -1
  54. package/dist/src/tss/ecdsa/rangeproof.d.ts.map +1 -1
  55. package/dist/src/tss/ecdsa/rangeproof.js +102 -108
  56. package/dist/src/tss/ecdsa/types.d.ts +16 -0
  57. package/dist/src/tss/ecdsa/types.d.ts.map +1 -1
  58. package/dist/src/tss/ecdsa/types.js +19 -20
  59. package/dist/src/tss/ecdsa/zkVProof.d.ts +25 -0
  60. package/dist/src/tss/ecdsa/zkVProof.d.ts.map +1 -0
  61. package/dist/src/tss/ecdsa/zkVProof.js +71 -0
  62. package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts +43 -0
  63. package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts.map +1 -0
  64. package/dist/src/tss/ecdsa-dkls/commsLayer.js +222 -0
  65. package/dist/src/tss/ecdsa-dkls/dkg.d.ts +25 -0
  66. package/dist/src/tss/ecdsa-dkls/dkg.d.ts.map +1 -0
  67. package/dist/src/tss/ecdsa-dkls/dkg.js +224 -0
  68. package/dist/src/tss/ecdsa-dkls/dsg.d.ts +30 -0
  69. package/dist/src/tss/ecdsa-dkls/dsg.d.ts.map +1 -0
  70. package/dist/src/tss/ecdsa-dkls/dsg.js +171 -0
  71. package/dist/src/tss/ecdsa-dkls/index.d.ts +6 -0
  72. package/dist/src/tss/ecdsa-dkls/index.d.ts.map +1 -0
  73. package/dist/src/tss/ecdsa-dkls/index.js +32 -0
  74. package/dist/src/tss/ecdsa-dkls/types.d.ts +120 -0
  75. package/dist/src/tss/ecdsa-dkls/types.d.ts.map +1 -0
  76. package/dist/src/tss/ecdsa-dkls/types.js +155 -0
  77. package/dist/src/tss/ecdsa-dkls/util.d.ts +28 -0
  78. package/dist/src/tss/ecdsa-dkls/util.d.ts.map +1 -0
  79. package/dist/src/tss/ecdsa-dkls/util.js +261 -0
  80. package/dist/src/tss/index.d.ts +1 -0
  81. package/dist/src/tss/index.d.ts.map +1 -1
  82. package/dist/src/tss/index.js +7 -2
  83. package/dist/src/types.d.ts +14 -0
  84. package/dist/src/types.d.ts.map +1 -0
  85. package/dist/src/types.js +3 -0
  86. package/dist/src/util.d.ts +8 -2
  87. package/dist/src/util.d.ts.map +1 -1
  88. package/dist/src/util.js +35 -13
  89. package/dist/tsconfig.tsbuildinfo +1 -3645
  90. package/package.json +17 -6
  91. package/dist/src/curves/baseCurve.d.ts.map +0 -1
  92. package/dist/src/curves/baseCurve.js +0 -6
@@ -1,5 +1,9 @@
1
- export * from './tss';
2
1
  export * from './curves';
2
+ export * from './safePrime';
3
+ export * from './shamir';
4
+ export * from './tss';
5
+ export * as HashCommitment from './hashCommitment';
6
+ export * as Schnorr from './schnorrProof';
7
+ export * from './types';
3
8
  export * from './util';
4
- export * from './openssl';
5
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AAEtB,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,17 +1,38 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
8
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
9
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
20
  };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
12
28
  Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./tss"), exports);
29
+ exports.Schnorr = exports.HashCommitment = void 0;
14
30
  __exportStar(require("./curves"), exports);
31
+ __exportStar(require("./safePrime"), exports);
32
+ __exportStar(require("./shamir"), exports);
33
+ __exportStar(require("./tss"), exports);
34
+ exports.HashCommitment = __importStar(require("./hashCommitment"));
35
+ exports.Schnorr = __importStar(require("./schnorrProof"));
36
+ __exportStar(require("./types"), exports);
15
37
  __exportStar(require("./util"), exports);
16
- __exportStar(require("./openssl"), exports);
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90c3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJ2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vb3BlbnNzbCc7XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUI7QUFDekIsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qix3Q0FBc0I7QUFFdEIsbUVBQW1EO0FBQ25ELDBEQUEwQztBQUMxQywwQ0FBd0I7QUFDeEIseUNBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jdXJ2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zYWZlUHJpbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFtaXInO1xuZXhwb3J0ICogZnJvbSAnLi90c3MnO1xuXG5leHBvcnQgKiBhcyBIYXNoQ29tbWl0bWVudCBmcm9tICcuL2hhc2hDb21taXRtZW50JztcbmV4cG9ydCAqIGFzIFNjaG5vcnIgZnJvbSAnLi9zY2hub3JyUHJvb2YnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwnO1xuIl19
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -11,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
15
  };
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./openssl"), exports);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3BlbnNzbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29wZW5zc2wnO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3BlbnNzbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vcGVuc3NsJztcbiJdfQ==
@@ -8,7 +8,7 @@ class OpenSSL {
8
8
  this.isInitialized = false;
9
9
  }
10
10
  async init() {
11
- await wasi_1.init();
11
+ await (0, wasi_1.init)();
12
12
  this.waModule = await WebAssembly.compile(await this.getWasmBytes());
13
13
  this.isInitialized = true;
14
14
  }
@@ -34,7 +34,7 @@ class OpenSSL {
34
34
  return wasi.getStdoutString();
35
35
  }
36
36
  async getWasmBytes() {
37
- const waBuffer = opensslbytes_1.loadWebAssembly();
37
+ const waBuffer = (0, opensslbytes_1.loadWebAssembly)();
38
38
  if (!waBuffer) {
39
39
  throw new Error('Cannot load openssl web-assembly!');
40
40
  }
@@ -42,4 +42,4 @@ class OpenSSL {
42
42
  }
43
43
  }
44
44
  exports.OpenSSL = OpenSSL;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNzbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVuc3NsL29wZW5zc2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQTBDO0FBQzFDLGlEQUFpRDtBQUVqRCxNQUFhLE9BQU87SUFBcEI7UUFFVSxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQXNDaEMsQ0FBQztJQXBDQyxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sV0FBSSxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsU0FBaUI7UUFDdkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZGLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDTyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWlDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztTQUN0RjtRQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkgsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUM7UUFFSCw4QkFBOEI7UUFDOUIseUVBQXlFO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVELEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWTtRQUN4QixNQUFNLFFBQVEsR0FBRyw4QkFBZSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUF4Q0QsMEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5pdCwgV0FTSSB9IGZyb20gJ0B3YXNtZXIvd2FzaSc7XG5pbXBvcnQgeyBsb2FkV2ViQXNzZW1ibHkgfSBmcm9tICcuL29wZW5zc2xieXRlcyc7XG5cbmV4cG9ydCBjbGFzcyBPcGVuU1NMIHtcbiAgcHJpdmF0ZSB3YU1vZHVsZTogV2ViQXNzZW1ibHkuTW9kdWxlO1xuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBhc3luYyBpbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGluaXQoKTtcbiAgICB0aGlzLndhTW9kdWxlID0gYXdhaXQgV2ViQXNzZW1ibHkuY29tcGlsZShhd2FpdCB0aGlzLmdldFdhc21CeXRlcygpKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgYXN5bmMgZ2VuZXJhdGVTYWZlUHJpbWUoYml0TGVuZ3RoOiBudW1iZXIpOiBQcm9taXNlPGJpZ2ludD4ge1xuICAgIGNvbnN0IGJpZ0ludFN0cmluZyA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChgcHJpbWUgLWJpdHMgJHtiaXRMZW5ndGh9IC1nZW5lcmF0ZSAtc2FmZWApO1xuICAgIHJldHVybiBCaWdJbnQoYmlnSW50U3RyaW5nKTtcbiAgfVxuICBwcml2YXRlIGFzeW5jIHJ1bkNvbW1hbmQob3BlblNzbENvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgT3BlblNTbCBjbGFzcyBpcyBub3QgaW5pdGlhbGl6ZWQhIFBsZWFzZSBjYWxsIE9wZW5TU0wuaW5pdCgpLicpO1xuICAgIH1cbiAgICBjb25zdCBjb21tYW5kID0gQXJyYXkuaXNBcnJheShvcGVuU3NsQ29tbWFuZCkgPyBvcGVuU3NsQ29tbWFuZCA6IG9wZW5Tc2xDb21tYW5kLnNwbGl0KC9bXFxzXXsxLH0vZykuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IHdhc2kgPSBuZXcgV0FTSSh7XG4gICAgICBhcmdzOiBjb21tYW5kLFxuICAgIH0pO1xuXG4gICAgLy8gSW5zdGFudGlhdGUgdGhlIFdBU0kgbW9kdWxlXG4gICAgLy8gY2Fubm90IHVzZSB3YXNpLmluc3RhbnRpYXRlKG1vZHVsZSwge30pOyBkdWUgdG8gdGhlIHNpemUgb2YgdGhlIG1vZHVsZVxuICAgIGNvbnN0IGluc3RhbmNlID0gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodGhpcy53YU1vZHVsZSwge1xuICAgICAgLi4ud2FzaS5nZXRJbXBvcnRzKHRoaXMud2FNb2R1bGUpLFxuICAgIH0pO1xuICAgIC8vIFJ1biB0aGUgc3RhcnQgZnVuY3Rpb25cbiAgICB3YXNpLnN0YXJ0KGluc3RhbmNlKTtcbiAgICByZXR1cm4gd2FzaS5nZXRTdGRvdXRTdHJpbmcoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0V2FzbUJ5dGVzKCk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IHdhQnVmZmVyID0gbG9hZFdlYkFzc2VtYmx5KCk7XG4gICAgaWYgKCF3YUJ1ZmZlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgbG9hZCBvcGVuc3NsIHdlYi1hc3NlbWJseSEnKTtcbiAgICB9XG4gICAgcmV0dXJuIHdhQnVmZmVyLmJ1ZmZlcjtcbiAgfVxufVxuIl19
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNzbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVuc3NsL29wZW5zc2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQTBDO0FBQzFDLGlEQUFpRDtBQUVqRCxNQUFhLE9BQU87SUFBcEI7UUFFVSxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQXNDaEMsQ0FBQztJQXBDQyxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sSUFBQSxXQUFJLEdBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxTQUFTLGtCQUFrQixDQUFDLENBQUM7UUFDdkYsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNPLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBaUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1NBQ3RGO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuSCxNQUFNLElBQUksR0FBRyxJQUFJLFdBQUksQ0FBQztZQUNwQixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5Qix5RUFBeUU7UUFDekUsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUQsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUEsOEJBQWUsR0FBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDdEQ7UUFDRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBeENELDBCQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluaXQsIFdBU0kgfSBmcm9tICdAd2FzbWVyL3dhc2knO1xuaW1wb3J0IHsgbG9hZFdlYkFzc2VtYmx5IH0gZnJvbSAnLi9vcGVuc3NsYnl0ZXMnO1xuXG5leHBvcnQgY2xhc3MgT3BlblNTTCB7XG4gIHByaXZhdGUgd2FNb2R1bGU6IFdlYkFzc2VtYmx5Lk1vZHVsZTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBpbml0KCk7XG4gICAgdGhpcy53YU1vZHVsZSA9IGF3YWl0IFdlYkFzc2VtYmx5LmNvbXBpbGUoYXdhaXQgdGhpcy5nZXRXYXNtQnl0ZXMoKSk7XG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlU2FmZVByaW1lKGJpdExlbmd0aDogbnVtYmVyKTogUHJvbWlzZTxiaWdpbnQ+IHtcbiAgICBjb25zdCBiaWdJbnRTdHJpbmcgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQoYHByaW1lIC1iaXRzICR7Yml0TGVuZ3RofSAtZ2VuZXJhdGUgLXNhZmVgKTtcbiAgICByZXR1cm4gQmlnSW50KGJpZ0ludFN0cmluZyk7XG4gIH1cbiAgcHJpdmF0ZSBhc3luYyBydW5Db21tYW5kKG9wZW5Tc2xDb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIE9wZW5TU2wgY2xhc3MgaXMgbm90IGluaXRpYWxpemVkISBQbGVhc2UgY2FsbCBPcGVuU1NMLmluaXQoKS4nKTtcbiAgICB9XG4gICAgY29uc3QgY29tbWFuZCA9IEFycmF5LmlzQXJyYXkob3BlblNzbENvbW1hbmQpID8gb3BlblNzbENvbW1hbmQgOiBvcGVuU3NsQ29tbWFuZC5zcGxpdCgvW1xcc117MSx9L2cpLmZpbHRlcihCb29sZWFuKTtcbiAgICBjb25zdCB3YXNpID0gbmV3IFdBU0koe1xuICAgICAgYXJnczogY29tbWFuZCxcbiAgICB9KTtcblxuICAgIC8vIEluc3RhbnRpYXRlIHRoZSBXQVNJIG1vZHVsZVxuICAgIC8vIGNhbm5vdCB1c2Ugd2FzaS5pbnN0YW50aWF0ZShtb2R1bGUsIHt9KTsgZHVlIHRvIHRoZSBzaXplIG9mIHRoZSBtb2R1bGVcbiAgICBjb25zdCBpbnN0YW5jZSA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHRoaXMud2FNb2R1bGUsIHtcbiAgICAgIC4uLndhc2kuZ2V0SW1wb3J0cyh0aGlzLndhTW9kdWxlKSxcbiAgICB9KTtcbiAgICAvLyBSdW4gdGhlIHN0YXJ0IGZ1bmN0aW9uXG4gICAgd2FzaS5zdGFydChpbnN0YW5jZSk7XG4gICAgcmV0dXJuIHdhc2kuZ2V0U3Rkb3V0U3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFdhc21CeXRlcygpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCB3YUJ1ZmZlciA9IGxvYWRXZWJBc3NlbWJseSgpO1xuICAgIGlmICghd2FCdWZmZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGxvYWQgb3BlbnNzbCB3ZWItYXNzZW1ibHkhJyk7XG4gICAgfVxuICAgIHJldHVybiB3YUJ1ZmZlci5idWZmZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export declare function generateSafePrime(bitlength: number): Promise<bigint>;
2
+ export declare function generateSafePrimes(bitLengths: number[]): Promise<bigint[]>;
3
+ //# sourceMappingURL=safePrime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safePrime.d.ts","sourceRoot":"","sources":["../../src/safePrime.ts"],"names":[],"mappings":"AAEA,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1E;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOhF"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSafePrimes = exports.generateSafePrime = void 0;
4
+ const openssl_1 = require("./openssl");
5
+ async function generateSafePrime(bitlength) {
6
+ const openSSL = new openssl_1.OpenSSL();
7
+ await openSSL.init();
8
+ return openSSL.generateSafePrime(bitlength);
9
+ }
10
+ exports.generateSafePrime = generateSafePrime;
11
+ async function generateSafePrimes(bitLengths) {
12
+ const openSSL = new openssl_1.OpenSSL();
13
+ await openSSL.init();
14
+ const promises = bitLengths.map((bitlength) => {
15
+ return openSSL.generateSafePrime(bitlength);
16
+ });
17
+ return await Promise.all(promises);
18
+ }
19
+ exports.generateSafePrimes = generateSafePrimes;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZVByaW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NhZmVQcmltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBb0M7QUFFN0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLFNBQWlCO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sRUFBRSxDQUFDO0lBQzlCLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFKRCw4Q0FJQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxVQUFvQjtJQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztJQUM5QixNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixNQUFNLFFBQVEsR0FBc0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtRQUN2RSxPQUFPLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFQRCxnREFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wZW5TU0wgfSBmcm9tICcuL29wZW5zc2wnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVTYWZlUHJpbWUoYml0bGVuZ3RoOiBudW1iZXIpOiBQcm9taXNlPGJpZ2ludD4ge1xuICBjb25zdCBvcGVuU1NMID0gbmV3IE9wZW5TU0woKTtcbiAgYXdhaXQgb3BlblNTTC5pbml0KCk7XG4gIHJldHVybiBvcGVuU1NMLmdlbmVyYXRlU2FmZVByaW1lKGJpdGxlbmd0aCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVNhZmVQcmltZXMoYml0TGVuZ3RoczogbnVtYmVyW10pOiBQcm9taXNlPGJpZ2ludFtdPiB7XG4gIGNvbnN0IG9wZW5TU0wgPSBuZXcgT3BlblNTTCgpO1xuICBhd2FpdCBvcGVuU1NMLmluaXQoKTtcbiAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YmlnaW50PltdID0gYml0TGVuZ3Rocy5tYXAoKGJpdGxlbmd0aDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIG9wZW5TU0wuZ2VuZXJhdGVTYWZlUHJpbWUoYml0bGVuZ3RoKTtcbiAgfSk7XG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59XG4iXX0=
@@ -0,0 +1,22 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,62 @@
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 = (0, crypto_1.createHash)('sha256');
41
+ hash.update((0, util_1.bigIntToBufferBE)(G, 32));
42
+ hash.update((0, util_1.bigIntToBufferBE)(V, 32));
43
+ hash.update((0, util_1.bigIntToBufferBE)(A, 32));
44
+ hash.update(additionalCtx);
45
+ return (0, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nobm9yclByb29mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaG5vcnJQcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDSCxtQ0FBb0M7QUFHcEMsaUNBQThEO0FBRTlEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsQ0FBUyxFQUNULENBQVMsRUFDVCxLQUFZLEVBQ1osZ0JBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXZDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpDLE1BQU0sQ0FBQyxHQUFHLHVCQUF1QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTlELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckQsT0FBTztRQUNMLE1BQU0sRUFBRSxDQUFDO1FBQ1QsQ0FBQyxFQUFFLENBQUM7S0FDTCxDQUFDO0FBQ0osQ0FBQztBQWpCRCxnREFpQkM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsdUJBQXVCLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFZLEVBQUUsYUFBcUI7SUFDeEYsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QyxNQUFNLElBQUksR0FBRyxJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSx1QkFBZ0IsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsdUJBQWdCLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUzQixPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsQ0FBUyxFQUNULEtBQW1CLEVBQ25CLEtBQVksRUFDWixnQkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdkMsTUFBTSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXpFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RCxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQWJELGdEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiBTY2hub3JyIE5vbi1pbnRlcmFjdGl2ZSBaZXJvLUtub3dsZWRnZSBQcm9vZi5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL3JmYzgyMzUvfVxuICovXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEJhc2VDdXJ2ZSBhcyBDdXJ2ZSB9IGZyb20gJy4vY3VydmVzJztcbmltcG9ydCB7IFNjaG5vcnJQcm9vZiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckJFLCBiaWdJbnRUb0J1ZmZlckJFIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBDcmVhdGUgYSBTY2hub3JyIFByb29mIG9mIGtub3dsZWRnZSBvZiB0aGUgZGlzY3JldGUgbG9nIG9mIGFuIEVsbGlwdGljLWN1cnZlIHBvaW50LlxuICogQHBhcmFtIEEgVGhlIGN1cnZlIHBvaW50LlxuICogQHBhcmFtIGEgVGhlIGRpc2NyZXRlIGxvZyBvZiB0aGUgY3VydmUgcG9pbnQuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHByb29mLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2Nobm9yclByb29mKFxuICBBOiBiaWdpbnQsXG4gIGE6IGJpZ2ludCxcbiAgY3VydmU6IEN1cnZlLFxuICBhZGRpdGlvbmFsQ3R4OiBCdWZmZXIgPSBCdWZmZXIuZnJvbSgnJylcbik6IFNjaG5vcnJQcm9vZiB7XG4gIGNvbnN0IHYgPSBjdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgY29uc3QgViA9IGN1cnZlLmJhc2VQb2ludE11bHQodik7XG5cbiAgY29uc3QgYyA9IG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFYsIEEsIGN1cnZlLCBhZGRpdGlvbmFsQ3R4KTtcblxuICBjb25zdCByID0gY3VydmUuc2NhbGFyU3ViKHYsIGN1cnZlLnNjYWxhck11bHQoYSwgYykpO1xuXG4gIHJldHVybiB7XG4gICAgdlBvaW50OiBWLFxuICAgIHI6IHIsXG4gIH07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIGNoYWxsZW5nZSBmb3IgTklaSyBzY2hub3JyIHByb29mIHVzaW5nIEZpYXQtU2hhbWlyIHRyYW5zZm9ybS5cbiAqXG4gKiBAcGFyYW0gViBUaGUgcG9pbnQvcHVibGljIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJhbmRvbSBzY2FsYXIgdmFsdWUgdiBjaG9zZW4gYnkgdGhlIHByb3Zlci5cbiAqIEBwYXJhbSBBIFRoZSBwb2ludCB0byBiZSBwcm92ZWQuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRoZSBjYWxjdWxhdGVkIGNoYWxsZW5nZS5cbiAqL1xuZnVuY3Rpb24gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoVjogYmlnaW50LCBBOiBiaWdpbnQsIGN1cnZlOiBDdXJ2ZSwgYWRkaXRpb25hbEN0eDogQnVmZmVyKTogYmlnaW50IHtcbiAgY29uc3QgRyA9IGN1cnZlLmJhc2VQb2ludE11bHQoQmlnSW50KDEpKTtcblxuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoRywgMzIpKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShWLCAzMikpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKEEsIDMyKSk7XG4gIGhhc2gudXBkYXRlKGFkZGl0aW9uYWxDdHgpO1xuXG4gIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyQkUoaGFzaC5kaWdlc3QoKSk7XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgU2Nobm9yciBQcm9vZiBvZiBrbm93bGVkZ2Ugb2YgdGhlIGRpc2NyZXRlIGxvZyBvZiBhbiBFbGxpcHRpYy1jdXJ2ZSBwb2ludC5cbiAqIEBwYXJhbSBBIFRoZSBjdXJ2ZSBwb2ludC5cbiAqIEBwYXJhbSBwcm9vZiBUaGUgc2Nobm9yciBwcm9vZi5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdGhhdCBpcyBzdXBwb3NlZCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBwcm9vZiBjaGVja3Mgb3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U2Nobm9yclByb29mKFxuICBBOiBiaWdpbnQsXG4gIHByb29mOiBTY2hub3JyUHJvb2YsXG4gIGN1cnZlOiBDdXJ2ZSxcbiAgYWRkaXRpb25hbEN0eDogQnVmZmVyID0gQnVmZmVyLmZyb20oJycpXG4pOiBib29sZWFuIHtcbiAgY29uc3QgYyA9IG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKHByb29mLnZQb2ludCwgQSwgY3VydmUsIGFkZGl0aW9uYWxDdHgpO1xuXG4gIGNvbnN0IHJHID0gY3VydmUuYmFzZVBvaW50TXVsdChwcm9vZi5yKTtcblxuICBjb25zdCBjQSA9IGN1cnZlLnBvaW50TXVsdGlwbHkoQSwgY3VydmUuc2NhbGFyUmVkdWNlKGMpKTtcblxuICByZXR1cm4gcHJvb2YudlBvaW50ID09PSBjdXJ2ZS5wb2ludEFkZChyRywgY0EpO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './shamir';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shamir/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./shamir"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhbWlyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYW1pcic7XG4iXX0=
@@ -0,0 +1,38 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,136 @@
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 = (0, util_1.clamp)((0, util_1.bigIntFromBufferLE)(crypto_1.default.createHmac('sha256', ind.toString(10)).update((0, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhbWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYW1pci9zaGFtaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRzVCLGtDQUFzRTtBQUV0RSxNQUFhLE1BQU07SUFHakIsWUFBWSxLQUFnQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsS0FBSyxDQUFDLE1BQWMsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsT0FBdUIsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQXlCLENBQUM7UUFDOUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2lCQUN2RDtnQkFDRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCx1QkFBdUI7WUFDdkIsVUFBVSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7aUJBQzFCLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUN0RDtRQUVELElBQUksU0FBUyxHQUFHLFNBQVMsRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7U0FDaEY7UUFFRCxNQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLEdBQWtCLEVBQUUsQ0FBQztRQUM1QixLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFBLFlBQUssRUFDakIsSUFBQSx5QkFBa0IsRUFBQyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ2hILENBQUM7WUFDRixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkIsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNoRCxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNqRCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pGO1lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7U0FDOUM7UUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLENBQVMsRUFBRSxDQUFnQixFQUFFLEtBQWE7UUFDL0MsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDdEQ7UUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxNQUE4QjtRQUNwQyxJQUFJO1lBQ0YsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO2dCQUN0QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRXRCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO29CQUN0QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3JCLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTt3QkFDYixHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUN0QztpQkFDRjtnQkFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtvQkFDdEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyQixJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQ2IsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDcEU7aUJBQ0Y7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7Q0FDRjtBQXRJRCx3QkFzSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlQ3VydmUgfSBmcm9tICcuLi9jdXJ2ZXMnO1xuaW1wb3J0IHsgU3BsaXRTZWNyZXQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJMRSwgYmlnSW50VG9CdWZmZXJMRSwgY2xhbXAgfSBmcm9tICcuLi91dGlsJztcblxuZXhwb3J0IGNsYXNzIFNoYW1pciB7XG4gIGN1cnZlOiBCYXNlQ3VydmU7XG5cbiAgY29uc3RydWN0b3IoY3VydmU6IEJhc2VDdXJ2ZSkge1xuICAgIHRoaXMuY3VydmUgPSBjdXJ2ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIFNoYW1pciBzaGFyaW5nIG9uIHRoZSBzZWNyZXQgYHNlY3JldGAgdG8gdGhlIGRlZ3JlZSBgdGhyZXNob2xkIC0gMWAgc3BsaXQgYG51bVNoYXJlc2BcbiAgICogd2F5cy4gVGhlIHNwbGl0IHNlY3JldCByZXF1aXJlcyBgdGhyZXNob2xkYCBzaGFyZXMgdG8gYmUgcmVjb25zdHJ1Y3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHNlY3JldCBzZWNyZXQgdG8gc3BsaXRcbiAgICogQHBhcmFtIHRocmVzaG9sZCBzaGFyZSB0aHJlc2hvbGQgcmVxdWlyZWQgdG8gcmVjb25zdHJ1Y3Qgc2VjcmV0XG4gICAqIEBwYXJhbSBudW1TaGFyZXMgdG90YWwgbnVtYmVyIG9mIHNoYXJlcyB0byBzcGxpdCBzZWNyZXQgaW50b1xuICAgKiBAcGFyYW0gaW5kaWNlcyBvcHRpb25hbCBpbmRpY2VzIHdoaWNoIGNhbiBiZSB1c2VkIHdoaWxlIGdlbmVyYXRpbmcgdGhlIHNoYXJlc1xuICAgKiBAcGFyYW0gc2FsdCBvcHRpb25hbCBzYWx0IHdoaWNoIGNvdWxkIGJlIHVzZWQgd2hpbGUgZ2VuZXJhdGluZyB0aGUgc2hhcmVzXG4gICAqIEByZXR1cm5zIERpY3Rpb25hcnkgY29udGFpbmluZyBgc2hhcmVzYCwgYSBkaWN0aW9uYXJ5IHdoZXJlIGVhY2gga2V5IGlzIGFuIGludFxuICAgKiBpbiB0aGUgcmFuZ2UgMTw9eDw9bnVtU2hhcmVzIHJlcHJlc2VudGluZyB0aGF0IHNoYXJlJ3MgZnJlZSB0ZXJtLCBhbmQgYHZgLCBhblxuICAgKiBhcnJheSBvZiBwcm9vZnMgdG8gYmUgc2hhcmVkIHdpdGggYWxsIHBhcnRpY2lwYW50cy5cbiAgICovXG4gIHNwbGl0KHNlY3JldDogYmlnaW50LCB0aHJlc2hvbGQ6IG51bWJlciwgbnVtU2hhcmVzOiBudW1iZXIsIGluZGljZXM/OiBBcnJheTxudW1iZXI+LCBzYWx0ID0gQmlnSW50KDApKTogU3BsaXRTZWNyZXQge1xuICAgIGxldCBiaWdJbmRpY2VzOiBBcnJheTxiaWdpbnQ+O1xuICAgIGlmIChpbmRpY2VzKSB7XG4gICAgICBiaWdJbmRpY2VzID0gaW5kaWNlcy5tYXAoKGkpID0+IHtcbiAgICAgICAgaWYgKGkgPCAxKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIHN1cHBsaWVkIGZvciBpbmRpY2VzJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEJpZ0ludChpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBtYWtlIHJhbmdlKDEsIG4gKyAxKVxuICAgICAgYmlnSW5kaWNlcyA9IEFycmF5KG51bVNoYXJlcylcbiAgICAgICAgLmZpbGwobnVsbClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gQmlnSW50KGkgKyAxKSk7XG4gICAgfVxuICAgIGlmICh0aHJlc2hvbGQgPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RocmVzaG9sZCBjYW5ub3QgYmUgbGVzcyB0aGFuIHR3bycpO1xuICAgIH1cblxuICAgIGlmICh0aHJlc2hvbGQgPiBudW1TaGFyZXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhyZXNob2xkIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIHRvdGFsIG51bWJlciBvZiBzaGFyZXMnKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb2VmczogYmlnaW50W10gPSBbXTtcbiAgICBjb25zdCB2OiBBcnJheTxiaWdpbnQ+ID0gW107XG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgdGhyZXNob2xkIC0gMTsgaW5kKyspIHtcbiAgICAgIGNvbnN0IGNvZWZmID0gY2xhbXAoXG4gICAgICAgIGJpZ0ludEZyb21CdWZmZXJMRShjcnlwdG8uY3JlYXRlSG1hYygnc2hhMjU2JywgaW5kLnRvU3RyaW5nKDEwKSkudXBkYXRlKGJpZ0ludFRvQnVmZmVyTEUoc2VjcmV0LCAzMikpLmRpZ2VzdCgpKVxuICAgICAgKTtcbiAgICAgIGNvZWZzLnB1c2goY29lZmYpO1xuICAgICAgdi51bnNoaWZ0KHRoaXMuY3VydmUuYmFzZVBvaW50TXVsdChjb2VmZikpO1xuICAgIH1cbiAgICBjb2Vmcy5wdXNoKHNlY3JldCk7XG5cbiAgICBjb25zdCBzaGFyZXM6IFJlY29yZDxudW1iZXIsIGJpZ2ludD4gPSB7fTtcbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCBiaWdJbmRpY2VzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IHggPSBiaWdJbmRpY2VzW2luZF07XG4gICAgICBsZXQgcGFydGlhbCA9IGNvZWZzWzBdO1xuICAgICAgZm9yIChsZXQgb3RoZXIgPSAxOyBvdGhlciA8IGNvZWZzLmxlbmd0aDsgb3RoZXIrKykge1xuICAgICAgICBwYXJ0aWFsID0gdGhpcy5jdXJ2ZS5zY2FsYXJBZGQoY29lZnNbb3RoZXJdLCB0aGlzLmN1cnZlLnNjYWxhck11bHQocGFydGlhbCwgeCkpO1xuICAgICAgfVxuICAgICAgc2hhcmVzW3BhcnNlSW50KHgudG9TdHJpbmcoKSwgMTApXSA9IHBhcnRpYWw7XG4gICAgfVxuICAgIHJldHVybiB7IHNoYXJlcywgdiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmeSBhIFZTUyBzaGFyZS5cbiAgICpcbiAgICogQHBhcmFtIHUgU2VjcmV0IHNoYXJlIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydHkuXG4gICAqIEBwYXJhbSB2IFZlcmlmaWNhdGlvbiB2YWx1ZXMgcmVjZWl2ZWQgZnJvbSBvdGhlciBwYXJ0eS5cbiAgICogQHBhcmFtIGluZGV4IFZlcmlmaWVyJ3MgaW5kZXguXG4gICAqIEByZXR1cm5zIFRydWUgb24gc3VjY2Vzczsgb3RoZXJ3aXNlIHRocm93cyBFcnJvci5cbiAgICovXG4gIHZlcmlmeSh1OiBiaWdpbnQsIHY6IEFycmF5PGJpZ2ludD4sIGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodi5sZW5ndGggPCAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RocmVzaG9sZCBjYW5ub3QgYmUgbGVzcyB0aGFuIHR3bycpO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgc3VwcGxpZWQgZm9yIGluZGV4Jyk7XG4gICAgfVxuICAgIGNvbnN0IGkgPSBCaWdJbnQoaW5kZXgpO1xuICAgIGxldCB4ID0gdlswXTtcbiAgICBsZXQgdCA9IEJpZ0ludCgxKTtcbiAgICBmb3IgKGNvbnN0IHZzaiBvZiB2LnNsaWNlKDEpKSB7XG4gICAgICB0ID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KHQsIGkpO1xuICAgICAgY29uc3Qgdmp0ID0gdGhpcy5jdXJ2ZS5wb2ludE11bHRpcGx5KHZzaiwgdCk7XG4gICAgICB4ID0gdGhpcy5jdXJ2ZS5wb2ludEFkZCh4LCB2anQpO1xuICAgIH1cbiAgICBjb25zdCBzaWdtYUcgPSB0aGlzLmN1cnZlLmJhc2VQb2ludE11bHQodSk7XG4gICAgaWYgKHggIT09IHNpZ21hRykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgdmVyaWZ5IHNoYXJlJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY29uc3RpdHV0ZSBhIHNlY3JldCBmcm9tIGEgZGljdGlvbmFyeSBvZiBzaGFyZXMuIFRoZSBudW1iZXIgb2Ygc2hhcmVzIG11c3RcbiAgICogYmUgZXF1YWwgdG8gYHRgIHRvIHJlY29uc3RpdHV0ZSB0aGUgb3JpZ2luYWwgc2VjcmV0LlxuICAgKlxuICAgKiBAcGFyYW0gc2hhcmVzIGRpY3Rpb25hcnkgb2Ygc2hhcmVzLiBlYWNoIGtleSBpcyB0aGUgZnJlZSB0ZXJtIG9mIHRoZSBzaGFyZVxuICAgKiBAcmV0dXJucyBzZWNyZXRcbiAgICovXG4gIGNvbWJpbmUoc2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBiaWdpbnQ+KTogYmlnaW50IHtcbiAgICB0cnkge1xuICAgICAgbGV0IHMgPSBCaWdJbnQoMCk7XG4gICAgICBmb3IgKGNvbnN0IGkgaW4gc2hhcmVzKSB7XG4gICAgICAgIGNvbnN0IHlpID0gc2hhcmVzW2ldO1xuICAgICAgICBjb25zdCB4aSA9IEJpZ0ludChpKTtcbiAgICAgICAgbGV0IG51bSA9IEJpZ0ludCgxKTtcbiAgICAgICAgbGV0IGRlbnVtID0gQmlnSW50KDEpO1xuXG4gICAgICAgIGZvciAoY29uc3QgaiBpbiBzaGFyZXMpIHtcbiAgICAgICAgICBjb25zdCB4aiA9IEJpZ0ludChqKTtcbiAgICAgICAgICBpZiAoeGkgIT09IHhqKSB7XG4gICAgICAgICAgICBudW0gPSB0aGlzLmN1cnZlLnNjYWxhck11bHQobnVtLCB4aik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgaiBpbiBzaGFyZXMpIHtcbiAgICAgICAgICBjb25zdCB4aiA9IEJpZ0ludChqKTtcbiAgICAgICAgICBpZiAoeGkgIT09IHhqKSB7XG4gICAgICAgICAgICBkZW51bSA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdChkZW51bSwgdGhpcy5jdXJ2ZS5zY2FsYXJTdWIoeGosIHhpKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGludmVydGVkID0gdGhpcy5jdXJ2ZS5zY2FsYXJJbnZlcnQoZGVudW0pO1xuICAgICAgICBjb25zdCBpbm5lck11bHRpcGxpZWQgPSB0aGlzLmN1cnZlLnNjYWxhck11bHQobnVtLCBpbnZlcnRlZCk7XG4gICAgICAgIGNvbnN0IG11bHRpcGxpZWQgPSB0aGlzLmN1cnZlLnNjYWxhck11bHQoaW5uZXJNdWx0aXBsaWVkLCB5aSk7XG4gICAgICAgIHMgPSB0aGlzLmN1cnZlLnNjYWxhckFkZChtdWx0aXBsaWVkLCBzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjb21iaW5lIFNoYW1pciBzaGFyZXMgLCAnICsgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export declare type SplitSecret = {
2
+ shares: Record<number, bigint>;
3
+ v: bigint[];
4
+ };
5
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhbWlyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTcGxpdFNlY3JldCA9IHtcbiAgc2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBiaWdpbnQ+O1xuICB2OiBiaWdpbnRbXTtcbn07XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  export * as EcdsaTypes from './types';
2
2
  export * as EcdsaRangeProof from './rangeproof';
3
3
  export * as EcdsaPaillierProof from './paillierproof';
4
+ export * as EcdsaZkVProof from './zkVProof';
4
5
  export declare const minModulusBitLength = 3072;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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;AAEtD,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
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;AAE5C,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -19,9 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
23
  return result;
20
24
  };
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.minModulusBitLength = exports.EcdsaPaillierProof = exports.EcdsaRangeProof = exports.EcdsaTypes = void 0;
26
+ exports.minModulusBitLength = exports.EcdsaZkVProof = exports.EcdsaPaillierProof = exports.EcdsaRangeProof = exports.EcdsaTypes = void 0;
23
27
  exports.EcdsaTypes = __importStar(require("./types"));
24
28
  exports.EcdsaRangeProof = __importStar(require("./rangeproof"));
25
29
  exports.EcdsaPaillierProof = __importStar(require("./paillierproof"));
30
+ exports.EcdsaZkVProof = __importStar(require("./zkVProof"));
26
31
  exports.minModulusBitLength = 3072;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBc0M7QUFDdEMsZ0VBQWdEO0FBQ2hELHNFQUFzRDtBQUV6QyxRQUFBLG1CQUFtQixHQUFHLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIEVjZHNhVHlwZXMgZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBhcyBFY2RzYVJhbmdlUHJvb2YgZnJvbSAnLi9yYW5nZXByb29mJztcbmV4cG9ydCAqIGFzIEVjZHNhUGFpbGxpZXJQcm9vZiBmcm9tICcuL3BhaWxsaWVycHJvb2YnO1xuXG5leHBvcnQgY29uc3QgbWluTW9kdWx1c0JpdExlbmd0aCA9IDMwNzI7XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXNDO0FBQ3RDLGdFQUFnRDtBQUNoRCxzRUFBc0Q7QUFDdEQsNERBQTRDO0FBRS9CLFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgRWNkc2FUeXBlcyBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGFzIEVjZHNhUmFuZ2VQcm9vZiBmcm9tICcuL3JhbmdlcHJvb2YnO1xuZXhwb3J0ICogYXMgRWNkc2FQYWlsbGllclByb29mIGZyb20gJy4vcGFpbGxpZXJwcm9vZic7XG5leHBvcnQgKiBhcyBFY2RzYVprVlByb29mIGZyb20gJy4vemtWUHJvb2YnO1xuXG5leHBvcnQgY29uc3QgbWluTW9kdWx1c0JpdExlbmd0aCA9IDMwNzI7XG4iXX0=
@@ -18,12 +18,12 @@ exports.m = Math.ceil(k / Math.log2(exports.alpha));
18
18
  * @returns {Promise<Array<bigint>>} - array of challenges $p_i$
19
19
  */
20
20
  async function generateP(n) {
21
- if (bigint_crypto_utils_1.bitLength(n) < index_1.minModulusBitLength) {
21
+ if ((0, bigint_crypto_utils_1.bitLength)(n) < index_1.minModulusBitLength) {
22
22
  throw new Error(`modulus n must have a bit length larger than or equal to ${index_1.minModulusBitLength}`);
23
23
  }
24
24
  return Promise.all(Array(exports.m)
25
25
  .fill(null)
26
- .map(() => util_1.randomPositiveCoPrimeLessThan(n)));
26
+ .map(() => (0, util_1.randomPositiveCoPrimeLessThan)(n)));
27
27
  }
28
28
  exports.generateP = generateP;
29
29
  /**
@@ -37,8 +37,8 @@ function prove(n, lambda, p) {
37
37
  if (!p.every((p_i) => p_i > 0)) {
38
38
  throw new Error('All paillier challenge values must be positive.');
39
39
  }
40
- const n_inv = bigint_mod_arith_1.modInv(n, lambda);
41
- return p.map((p_i) => bigint_mod_arith_1.modPow(p_i, n_inv, n));
40
+ const n_inv = (0, bigint_mod_arith_1.modInv)(n, lambda);
41
+ return p.map((p_i) => (0, bigint_mod_arith_1.modPow)(p_i, n_inv, n));
42
42
  }
43
43
  exports.prove = prove;
44
44
  /**
@@ -76,11 +76,11 @@ function verify(n, p, sigma) {
76
76
  }
77
77
  // c) Verify that $p_i = \sigma_i^N \mod N$ for $i = 1...m$.
78
78
  for (let i = 0; i < exports.m; i++) {
79
- if (p[i] !== bigint_mod_arith_1.modPow(sigma[i], n, n)) {
79
+ if (p[i] !== (0, bigint_mod_arith_1.modPow)(sigma[i], n, n)) {
80
80
  return false;
81
81
  }
82
82
  }
83
83
  return true;
84
84
  }
85
85
  exports.verify = verify;
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbGxpZXJwcm9vZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90c3MvZWNkc2EvcGFpbGxpZXJwcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBZ0Q7QUFDaEQsdURBQWtEO0FBRWxELHFDQUEyRDtBQUMzRCxtQ0FBOEM7QUFDOUMscUNBQW1EO0FBRW5ELHVCQUF1QjtBQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDZCwrQ0FBK0M7QUFDL0Msb0VBQW9FO0FBQ3ZELFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQztBQUNmLFFBQUEsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBSyxDQUFDLENBQUMsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLFNBQVMsQ0FBQyxDQUFTO0lBQ3ZDLElBQUksK0JBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRywyQkFBbUIsRUFBRTtRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCwyQkFBbUIsRUFBRSxDQUFDLENBQUM7S0FDcEc7SUFDRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLEtBQUssQ0FBQyxTQUFDLENBQUM7U0FDTCxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLG9DQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQy9DLENBQUM7QUFDSixDQUFDO0FBVEQsOEJBU0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUyxFQUFFLE1BQWMsRUFBRSxDQUFnQjtJQUMvRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztLQUNwRTtJQUNELE1BQU0sS0FBSyxHQUFHLHlCQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMseUJBQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQU5ELHNCQU1DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixNQUFNLENBQUMsQ0FBUyxFQUFFLENBQWdCLEVBQUUsS0FBb0I7SUFDdEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDcEU7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUMxRTtJQUNELHNFQUFzRTtJQUN0RSxpQ0FBaUM7SUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksYUFBSyxLQUFLLE1BQU0sRUFBRTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDNUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLGdDQUF1QixFQUFFO1FBQzNDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsT0FBTyxLQUFLLENBQUM7U0FDZDtLQUNGO0lBQ0QsOERBQThEO0lBQzlELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFDLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDMUMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELDREQUE0RDtJQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLHlCQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNuQyxPQUFPLEtBQUssQ0FBQztTQUNkO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFsQ0Qsd0JBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYml0TGVuZ3RoIH0gZnJvbSAnYmlnaW50LWNyeXB0by11dGlscyc7XG5pbXBvcnQgeyBtb2RJbnYsIG1vZFBvdyB9IGZyb20gJ2JpZ2ludC1tb2QtYXJpdGgnO1xuXG5pbXBvcnQgeyByYW5kb21Qb3NpdGl2ZUNvUHJpbWVMZXNzVGhhbiB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHsgbWluTW9kdWx1c0JpdExlbmd0aCB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0IHsgcHJpbWVzU21hbGxlclRoYW4zMTk1NjcgfSBmcm9tICcuL3ByaW1lcyc7XG5cbi8vIFNlY3VyaXR5IHBhcmFtZXRlcnMuXG5jb25zdCBrID0gMTI4O1xuLy8gZXByaW50LmlhY3Iub3JnLzIwMTgvMDU3LnBkZiNwYWdlNiBzZWN0aW9uIDVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRHby9CaXRHb0pTL3B1bGwvMzUwMiNkaXNjdXNzaW9uX3IxMjAzMDcwMzkyXG5leHBvcnQgY29uc3QgYWxwaGEgPSAzMTk1Njc7XG5leHBvcnQgY29uc3QgbSA9IE1hdGguY2VpbChrIC8gTWF0aC5sb2cyKGFscGhhKSk7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBzZXQgb2YgY2hhbGxlbmdlcyAkcCQgZm9yIGEgZ2l2ZW4gcGFpbGxpZXIgcHVibGljIGtleSBtb2R1bHVzICRuJC5cbiAqIEBwYXJhbSBuIC0gcGFpbGxpZXIgcHVibGljIGtleSBtb2R1bHVzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxiaWdpbnQ+Pn0gLSBhcnJheSBvZiBjaGFsbGVuZ2VzICRwX2kkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVAobjogYmlnaW50KTogUHJvbWlzZTxBcnJheTxiaWdpbnQ+PiB7XG4gIGlmIChiaXRMZW5ndGgobikgPCBtaW5Nb2R1bHVzQml0TGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtb2R1bHVzIG4gbXVzdCBoYXZlIGEgYml0IGxlbmd0aCBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byAke21pbk1vZHVsdXNCaXRMZW5ndGh9YCk7XG4gIH1cbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIEFycmF5KG0pXG4gICAgICAuZmlsbChudWxsKVxuICAgICAgLm1hcCgoKSA9PiByYW5kb21Qb3NpdGl2ZUNvUHJpbWVMZXNzVGhhbihuKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHNldCBvZiBwcm9vZnMgJHNpZ21hJCBmb3IgYSBnaXZlbiBzZXQgb2YgY2hhbGxlbmdlcyAkcCQgdXNpbmcgdGhlIHBhaWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiQgYW5kIHRoZSBwcml2YXRlIGtleSAkXFxsYW1iZGEkLlxuICogQHBhcmFtIG4gLSBwYWlsbGllciBwdWJsaWMga2V5IG1vZHVsdXMgJG4kXG4gKiBAcGFyYW0gbGFtYmRhIC0gcHJpdmF0ZSBrZXkgJFxcbGFtYmRhLCAgd2hpY2ggaXMgdGhlICRcXGV1bGVyKE4pID0gKHAtMSkocS0xKSRcbiAqIEBwYXJhbSBwIC0gYXJyYXkgb2YgY2hhbGxlbmdlcyAkcCRcbiAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PGJpZ2ludD4+fSAtIGFycmF5IG9mIHByb29mcyAkXFxzaWdtYSRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZlKG46IGJpZ2ludCwgbGFtYmRhOiBiaWdpbnQsIHA6IEFycmF5PGJpZ2ludD4pOiBiaWdpbnRbXSB7XG4gIGlmICghcC5ldmVyeSgocF9pKSA9PiBwX2kgPiAwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQWxsIHBhaWxsaWVyIGNoYWxsZW5nZSB2YWx1ZXMgbXVzdCBiZSBwb3NpdGl2ZS4nKTtcbiAgfVxuICBjb25zdCBuX2ludiA9IG1vZEludihuLCBsYW1iZGEpO1xuICByZXR1cm4gcC5tYXAoKHBfaSkgPT4gbW9kUG93KHBfaSwgbl9pbnYsIG4pKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgYSBzZXQgb2YgcHJvb2ZzICRcXHNpZ21hJCBvbiB0aGUgbW9kdWx1cyAkbiQgdXNpbmcgdGhlIGNoYWxsZW5nZXMgJHAkIHRoYXQgd2VyZSBwcm92aWRlZCB0byB0aGUgcHJvdmVyIHRvIGdlbmVyYXRlIHRoZSBwcm9vZnMuXG4gKiBAcGFyYW0gbiAtIHBhaWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiRcbiAqIEBwYXJhbSBwIC0gYXJyYXkgb2YgY2hhbGxlbmdlcyAkcCRcbiAqIEBwYXJhbSBzaWdtYSAtIGFycmF5IG9mIHByb29mcyAkXFxzaWdtYSRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeShuOiBiaWdpbnQsIHA6IEFycmF5PGJpZ2ludD4sIHNpZ21hOiBBcnJheTxiaWdpbnQ+KTogYm9vbGVhbiB7XG4gIGlmICghcC5ldmVyeSgocF9pKSA9PiBwX2kgPiAwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQWxsIHBhaWxsaWVyIGNoYWxsZW5nZSB2YWx1ZXMgbXVzdCBiZSBwb3NpdGl2ZS4nKTtcbiAgfVxuICBpZiAoIXNpZ21hLmV2ZXJ5KChzaWdtYV9pKSA9PiBzaWdtYV9pID4gMCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FsbCBwYWlsbGllciBjaGFsbGVuZ2UgcHJvb2YgdmFsdWVzIG11c3QgYmUgcG9zaXRpdmUuJyk7XG4gIH1cbiAgLy8gYSkgQ2hlY2sgdGhhdCAkTiQgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyIGFuZCBpcyBub3QgZGl2aXNpYmxlIGJ5IGFsbFxuICAvLyB0aGUgcHJpbWVzIGxlc3MgdGhhbiAkXFxhbHBoYSQuXG4gIGlmIChuIDw9IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGFscGhhICE9PSAzMTk1NjcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIGFscGhhIHZhbHVlJyk7XG4gIH1cbiAgZm9yIChjb25zdCBwcmltZSBvZiBwcmltZXNTbWFsbGVyVGhhbjMxOTU2Nykge1xuICAgIGlmIChuICUgQmlnSW50KHByaW1lKSA9PT0gQmlnSW50KDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIC8vIGIpIENoZWNrIHRoYXQgJFxcc2lnbWFfaSQgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyICRpID0gMS4uLm0kLlxuICBpZiAoc2lnbWEubGVuZ3RoICE9PSBtKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICghc2lnbWEuZXZlcnkoKHNpZ21hX2kpID0+IHNpZ21hX2kgPiAwKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBjKSBWZXJpZnkgdGhhdCAkcF9pID0gXFxzaWdtYV9pXk4gXFxtb2QgTiQgZm9yICRpID0gMS4uLm0kLlxuICBmb3IgKGxldCBpID0gMDsgaSA8IG07IGkrKykge1xuICAgIGlmIChwW2ldICE9PSBtb2RQb3coc2lnbWFbaV0sIG4sIG4pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbGxpZXJwcm9vZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90c3MvZWNkc2EvcGFpbGxpZXJwcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBZ0Q7QUFDaEQsdURBQWtEO0FBRWxELHFDQUEyRDtBQUMzRCxtQ0FBOEM7QUFDOUMscUNBQW1EO0FBRW5ELHVCQUF1QjtBQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDZCwrQ0FBK0M7QUFDL0Msb0VBQW9FO0FBQ3ZELFFBQUEsS0FBSyxHQUFHLE1BQU0sQ0FBQztBQUNmLFFBQUEsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBSyxDQUFDLENBQUMsQ0FBQztBQUVqRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLFNBQVMsQ0FBQyxDQUFTO0lBQ3ZDLElBQUksSUFBQSwrQkFBUyxFQUFDLENBQUMsQ0FBQyxHQUFHLDJCQUFtQixFQUFFO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTRELDJCQUFtQixFQUFFLENBQUMsQ0FBQztLQUNwRztJQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsS0FBSyxDQUFDLFNBQUMsQ0FBQztTQUNMLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxvQ0FBNkIsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQVRELDhCQVNDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLENBQVMsRUFBRSxNQUFjLEVBQUUsQ0FBZ0I7SUFDL0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDcEU7SUFDRCxNQUFNLEtBQUssR0FBRyxJQUFBLHlCQUFNLEVBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBTSxFQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBTkQsc0JBTUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLE1BQU0sQ0FBQyxDQUFTLEVBQUUsQ0FBZ0IsRUFBRSxLQUFvQjtJQUN0RSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztLQUNwRTtJQUNELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzFFO0lBQ0Qsc0VBQXNFO0lBQ3RFLGlDQUFpQztJQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxhQUFLLEtBQUssTUFBTSxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQUM1QztJQUNELEtBQUssTUFBTSxLQUFLLElBQUksZ0NBQXVCLEVBQUU7UUFDM0MsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuQyxPQUFPLEtBQUssQ0FBQztTQUNkO0tBQ0Y7SUFDRCw4REFBOEQ7SUFDOUQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQUMsRUFBRTtRQUN0QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRTtRQUMxQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsNERBQTREO0lBQzVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBQSx5QkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsT0FBTyxLQUFLLENBQUM7U0FDZDtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBbENELHdCQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJpdExlbmd0aCB9IGZyb20gJ2JpZ2ludC1jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgbW9kSW52LCBtb2RQb3cgfSBmcm9tICdiaWdpbnQtbW9kLWFyaXRoJztcblxuaW1wb3J0IHsgcmFuZG9tUG9zaXRpdmVDb1ByaW1lTGVzc1RoYW4gfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7IG1pbk1vZHVsdXNCaXRMZW5ndGggfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IHByaW1lc1NtYWxsZXJUaGFuMzE5NTY3IH0gZnJvbSAnLi9wcmltZXMnO1xuXG4vLyBTZWN1cml0eSBwYXJhbWV0ZXJzLlxuY29uc3QgayA9IDEyODtcbi8vIGVwcmludC5pYWNyLm9yZy8yMDE4LzA1Ny5wZGYjcGFnZTYgc2VjdGlvbiA1XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQml0R28vQml0R29KUy9wdWxsLzM1MDIjZGlzY3Vzc2lvbl9yMTIwMzA3MDM5MlxuZXhwb3J0IGNvbnN0IGFscGhhID0gMzE5NTY3O1xuZXhwb3J0IGNvbnN0IG0gPSBNYXRoLmNlaWwoayAvIE1hdGgubG9nMihhbHBoYSkpO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgc2V0IG9mIGNoYWxsZW5nZXMgJHAkIGZvciBhIGdpdmVuIHBhaWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiQuXG4gKiBAcGFyYW0gbiAtIHBhaWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1c1xuICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8YmlnaW50Pj59IC0gYXJyYXkgb2YgY2hhbGxlbmdlcyAkcF9pJFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVQKG46IGJpZ2ludCk6IFByb21pc2U8QXJyYXk8YmlnaW50Pj4ge1xuICBpZiAoYml0TGVuZ3RoKG4pIDwgbWluTW9kdWx1c0JpdExlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbW9kdWx1cyBuIG11c3QgaGF2ZSBhIGJpdCBsZW5ndGggbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gJHttaW5Nb2R1bHVzQml0TGVuZ3RofWApO1xuICB9XG4gIHJldHVybiBQcm9taXNlLmFsbChcbiAgICBBcnJheShtKVxuICAgICAgLmZpbGwobnVsbClcbiAgICAgIC5tYXAoKCkgPT4gcmFuZG9tUG9zaXRpdmVDb1ByaW1lTGVzc1RoYW4obikpXG4gICk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBzZXQgb2YgcHJvb2ZzICRzaWdtYSQgZm9yIGEgZ2l2ZW4gc2V0IG9mIGNoYWxsZW5nZXMgJHAkIHVzaW5nIHRoZSBwYWlsbGllciBwdWJsaWMga2V5IG1vZHVsdXMgJG4kIGFuZCB0aGUgcHJpdmF0ZSBrZXkgJFxcbGFtYmRhJC5cbiAqIEBwYXJhbSBuIC0gcGFpbGxpZXIgcHVibGljIGtleSBtb2R1bHVzICRuJFxuICogQHBhcmFtIGxhbWJkYSAtIHByaXZhdGUga2V5ICRcXGxhbWJkYSwgIHdoaWNoIGlzIHRoZSAkXFxldWxlcihOKSA9IChwLTEpKHEtMSkkXG4gKiBAcGFyYW0gcCAtIGFycmF5IG9mIGNoYWxsZW5nZXMgJHAkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxiaWdpbnQ+Pn0gLSBhcnJheSBvZiBwcm9vZnMgJFxcc2lnbWEkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92ZShuOiBiaWdpbnQsIGxhbWJkYTogYmlnaW50LCBwOiBBcnJheTxiaWdpbnQ+KTogYmlnaW50W10ge1xuICBpZiAoIXAuZXZlcnkoKHBfaSkgPT4gcF9pID4gMCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FsbCBwYWlsbGllciBjaGFsbGVuZ2UgdmFsdWVzIG11c3QgYmUgcG9zaXRpdmUuJyk7XG4gIH1cbiAgY29uc3Qgbl9pbnYgPSBtb2RJbnYobiwgbGFtYmRhKTtcbiAgcmV0dXJuIHAubWFwKChwX2kpID0+IG1vZFBvdyhwX2ksIG5faW52LCBuKSk7XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgc2V0IG9mIHByb29mcyAkXFxzaWdtYSQgb24gdGhlIG1vZHVsdXMgJG4kIHVzaW5nIHRoZSBjaGFsbGVuZ2VzICRwJCB0aGF0IHdlcmUgcHJvdmlkZWQgdG8gdGhlIHByb3ZlciB0byBnZW5lcmF0ZSB0aGUgcHJvb2ZzLlxuICogQHBhcmFtIG4gLSBwYWlsbGllciBwdWJsaWMga2V5IG1vZHVsdXMgJG4kXG4gKiBAcGFyYW0gcCAtIGFycmF5IG9mIGNoYWxsZW5nZXMgJHAkXG4gKiBAcGFyYW0gc2lnbWEgLSBhcnJheSBvZiBwcm9vZnMgJFxcc2lnbWEkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnkobjogYmlnaW50LCBwOiBBcnJheTxiaWdpbnQ+LCBzaWdtYTogQXJyYXk8YmlnaW50Pik6IGJvb2xlYW4ge1xuICBpZiAoIXAuZXZlcnkoKHBfaSkgPT4gcF9pID4gMCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FsbCBwYWlsbGllciBjaGFsbGVuZ2UgdmFsdWVzIG11c3QgYmUgcG9zaXRpdmUuJyk7XG4gIH1cbiAgaWYgKCFzaWdtYS5ldmVyeSgoc2lnbWFfaSkgPT4gc2lnbWFfaSA+IDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbGwgcGFpbGxpZXIgY2hhbGxlbmdlIHByb29mIHZhbHVlcyBtdXN0IGJlIHBvc2l0aXZlLicpO1xuICB9XG4gIC8vIGEpIENoZWNrIHRoYXQgJE4kIGlzIGEgcG9zaXRpdmUgaW50ZWdlciBhbmQgaXMgbm90IGRpdmlzaWJsZSBieSBhbGxcbiAgLy8gdGhlIHByaW1lcyBsZXNzIHRoYW4gJFxcYWxwaGEkLlxuICBpZiAobiA8PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChhbHBoYSAhPT0gMzE5NTY3KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCBhbHBoYSB2YWx1ZScpO1xuICB9XG4gIGZvciAoY29uc3QgcHJpbWUgb2YgcHJpbWVzU21hbGxlclRoYW4zMTk1NjcpIHtcbiAgICBpZiAobiAlIEJpZ0ludChwcmltZSkgPT09IEJpZ0ludCgwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICAvLyBiKSBDaGVjayB0aGF0ICRcXHNpZ21hX2kkIGlzIGEgcG9zaXRpdmUgaW50ZWdlciAkaSA9IDEuLi5tJC5cbiAgaWYgKHNpZ21hLmxlbmd0aCAhPT0gbSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIXNpZ21hLmV2ZXJ5KChzaWdtYV9pKSA9PiBzaWdtYV9pID4gMCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gYykgVmVyaWZ5IHRoYXQgJHBfaSA9IFxcc2lnbWFfaV5OIFxcbW9kIE4kIGZvciAkaSA9IDEuLi5tJC5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICBpZiAocFtpXSAhPT0gbW9kUG93KHNpZ21hW2ldLCBuLCBuKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import { BaseCurve } from '../../curves';
2
2
  import { PublicKey } from 'paillier-bigint';
3
3
  import { DeserializedNtilde, DeserializedNtildeProof, RangeProof, RangeProofWithCheck, DeserializedNtildeWithProofs } from './types';
4
- export declare function generateSafePrimes(bitLengths: number[]): Promise<bigint[]>;
5
4
  /**
6
5
  * Generate "challenge" values for range proofs.
7
6
  * @param {number} bitlength The bit length of the modulus to generate. This should