@bitgo-beta/sdk-lib-mpc 8.2.0-beta.2 → 8.2.0-beta.4

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.
@@ -1,4 +1,5 @@
1
1
  export * from './tss';
2
2
  export * from './curves';
3
3
  export * from './util';
4
+ export * from './openssl';
4
5
  //# 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"}
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"}
package/dist/src/index.js CHANGED
@@ -13,4 +13,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./tss"), exports);
14
14
  __exportStar(require("./curves"), exports);
15
15
  __exportStar(require("./util"), exports);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLDJDQUF5QjtBQUN6Qix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rzcyc7XG5leHBvcnQgKiBmcm9tICcuL2N1cnZlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwnO1xuIl19
16
+ __exportStar(require("./openssl"), exports);
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90c3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXJ2ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vb3BlbnNzbCc7XG4iXX0=
@@ -12,12 +12,12 @@ export declare function generateP(n: bigint): Promise<Array<bigint>>;
12
12
  * @param p - array of challenges $p$
13
13
  * @returns {Promise<Array<bigint>>} - array of proofs $\sigma$
14
14
  */
15
- export declare function prove(n: bigint, lambda: bigint, p: Array<bigint>): Promise<Array<bigint>>;
15
+ export declare function prove(n: bigint, lambda: bigint, p: Array<bigint>): bigint[];
16
16
  /**
17
17
  * Verify a set of proofs $\sigma$ on the modulus $n$ using the challenges $p$ that were provided to the prover to generate the proofs.
18
18
  * @param n - pallier public key modulus $n$
19
19
  * @param p - array of challenges $p$
20
20
  * @param sigma - array of proofs $\sigma$
21
21
  */
22
- export declare function verify(n: bigint, p: Array<bigint>, sigma: Array<bigint>): Promise<boolean>;
22
+ export declare function verify(n: bigint, p: Array<bigint>, sigma: Array<bigint>): boolean;
23
23
  //# sourceMappingURL=pallierproof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pallierproof.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/pallierproof.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,CAAC,QAAkC,CAAC;AAEjD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CASjE;AAED;;;;;;GAMG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAO/F;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BhG"}
1
+ {"version":3,"file":"pallierproof.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/pallierproof.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,CAAC,QAAkC,CAAC;AAEjD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CASjE;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAM3E;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAkCjF"}
@@ -5,9 +5,12 @@ const bigint_crypto_utils_1 = require("bigint-crypto-utils");
5
5
  const bigint_mod_arith_1 = require("bigint-mod-arith");
6
6
  const util_1 = require("../../util");
7
7
  const index_1 = require("./index");
8
+ const primes_1 = require("./primes");
8
9
  // Security parameters.
9
10
  const k = 128;
10
- const alpha = 2;
11
+ // eprint.iacr.org/2018/057.pdf#page6 section 5
12
+ // https://github.com/BitGo/BitGoJS/pull/3502#discussion_r1203070392
13
+ const alpha = 319567;
11
14
  exports.m = Math.ceil(k / Math.log2(alpha));
12
15
  /**
13
16
  * Generate a set of challenges $p$ for a given pallier public key modulus $n$.
@@ -30,13 +33,12 @@ exports.generateP = generateP;
30
33
  * @param p - array of challenges $p$
31
34
  * @returns {Promise<Array<bigint>>} - array of proofs $\sigma$
32
35
  */
33
- async function prove(n, lambda, p) {
34
- return new Promise(function (resolve) {
35
- setTimeout(() => {
36
- const n_inv = bigint_mod_arith_1.modInv(n, lambda);
37
- resolve(p.map((p_i) => bigint_mod_arith_1.modPow(p_i, n_inv, n)));
38
- });
39
- });
36
+ function prove(n, lambda, p) {
37
+ if (!p.every((p_i) => p_i > 0)) {
38
+ throw new Error('All pallier challenge values must be positive.');
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
42
  }
41
43
  exports.prove = prove;
42
44
  /**
@@ -45,16 +47,26 @@ exports.prove = prove;
45
47
  * @param p - array of challenges $p$
46
48
  * @param sigma - array of proofs $\sigma$
47
49
  */
48
- async function verify(n, p, sigma) {
50
+ function verify(n, p, sigma) {
51
+ if (!p.every((p_i) => p_i > 0)) {
52
+ throw new Error('All pallier challenge values must be positive.');
53
+ }
54
+ if (!sigma.every((sigma_i) => sigma_i > 0)) {
55
+ throw new Error('All pallier challenge proof values must be positive.');
56
+ }
49
57
  // a) Check that $N$ is a positive integer and is not divisible by all
50
58
  // the primes less than $\alpha$.
51
- // (Since is $\alpha = 2$, we only check that $N$ is positive.
52
59
  if (n <= 0) {
53
60
  return false;
54
61
  }
55
- if (alpha > 2) {
62
+ if (alpha !== 319567) {
56
63
  throw new Error('unsupported alpha value');
57
64
  }
65
+ for (const prime of primes_1.primesSmallerThan319567) {
66
+ if (n % BigInt(prime) === BigInt(0)) {
67
+ return false;
68
+ }
69
+ }
58
70
  // b) Check that $\sigma_i$ is a positive integer $i = 1...m$.
59
71
  if (sigma.length !== exports.m) {
60
72
  return false;
@@ -63,17 +75,12 @@ async function verify(n, p, sigma) {
63
75
  return false;
64
76
  }
65
77
  // c) Verify that $p_i = \sigma_i^N \mod N$ for $i = 1...m$.
66
- return new Promise(function (resolve) {
67
- setTimeout(() => {
68
- for (let i = 0; i < exports.m; i++) {
69
- if (p[i] !== bigint_mod_arith_1.modPow(sigma[i], n, n)) {
70
- resolve(false);
71
- return;
72
- }
73
- }
74
- resolve(true);
75
- });
76
- });
78
+ for (let i = 0; i < exports.m; i++) {
79
+ if (p[i] !== bigint_mod_arith_1.modPow(sigma[i], n, n)) {
80
+ return false;
81
+ }
82
+ }
83
+ return true;
77
84
  }
78
85
  exports.verify = verify;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFsbGllcnByb29mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rzcy9lY2RzYS9wYWxsaWVycHJvb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQWdEO0FBQ2hELHVEQUFrRDtBQUVsRCxxQ0FBMkQ7QUFDM0QsbUNBQThDO0FBRTlDLHVCQUF1QjtBQUN2QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDZCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDSCxRQUFBLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxTQUFTLENBQUMsQ0FBUztJQUN2QyxJQUFJLCtCQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsMkJBQW1CLEVBQUU7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0tBQ2xGO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixLQUFLLENBQUMsU0FBQyxDQUFDO1NBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNWLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQVRELDhCQVNDO0FBRUQ7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLEtBQUssQ0FBQyxDQUFTLEVBQUUsTUFBYyxFQUFFLENBQWdCO0lBQ3JFLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxPQUFPO1FBQ2xDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLEtBQUssR0FBRyx5QkFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMseUJBQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVBELHNCQU9DO0FBRUQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsTUFBTSxDQUFDLENBQVMsRUFBRSxDQUFnQixFQUFFLEtBQW9CO0lBQzVFLHNFQUFzRTtJQUN0RSxpQ0FBaUM7SUFDakMsOERBQThEO0lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7S0FDNUM7SUFDRCw4REFBOEQ7SUFDOUQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQUMsRUFBRTtRQUN0QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRTtRQUMxQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsNERBQTREO0lBQzVELE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxPQUFPO1FBQ2xDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyx5QkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDZixPQUFPO2lCQUNSO2FBQ0Y7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUE3QkQsd0JBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYml0TGVuZ3RoIH0gZnJvbSAnYmlnaW50LWNyeXB0by11dGlscyc7XG5pbXBvcnQgeyBtb2RJbnYsIG1vZFBvdyB9IGZyb20gJ2JpZ2ludC1tb2QtYXJpdGgnO1xuXG5pbXBvcnQgeyByYW5kb21Qb3NpdGl2ZUNvUHJpbWVMZXNzVGhhbiB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHsgbWluTW9kdWx1c0JpdExlbmd0aCB9IGZyb20gJy4vaW5kZXgnO1xuXG4vLyBTZWN1cml0eSBwYXJhbWV0ZXJzLlxuY29uc3QgayA9IDEyODtcbmNvbnN0IGFscGhhID0gMjtcbmV4cG9ydCBjb25zdCBtID0gTWF0aC5jZWlsKGsgLyBNYXRoLmxvZzIoYWxwaGEpKTtcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHNldCBvZiBjaGFsbGVuZ2VzICRwJCBmb3IgYSBnaXZlbiBwYWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiQuXG4gKiBAcGFyYW0gbiAtIHBhbGxpZXIgcHVibGljIGtleSBtb2R1bHVzXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxiaWdpbnQ+Pn0gLSBhcnJheSBvZiBjaGFsbGVuZ2VzICRwX2kkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVAobjogYmlnaW50KTogUHJvbWlzZTxBcnJheTxiaWdpbnQ+PiB7XG4gIGlmIChiaXRMZW5ndGgobikgPCBtaW5Nb2R1bHVzQml0TGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtb2R1bHVzIG4gbXVzdCBoYXZlIGEgYml0IGxlbmd0aCBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byAzMDcyJyk7XG4gIH1cbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIEFycmF5KG0pXG4gICAgICAuZmlsbChudWxsKVxuICAgICAgLm1hcCgoKSA9PiByYW5kb21Qb3NpdGl2ZUNvUHJpbWVMZXNzVGhhbihuKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHNldCBvZiBwcm9vZnMgJHNpZ21hJCBmb3IgYSBnaXZlbiBzZXQgb2YgY2hhbGxlbmdlcyAkcCQgdXNpbmcgdGhlIHBhbGxpZXIgcHVibGljIGtleSBtb2R1bHVzICRuJCBhbmQgdGhlIHByaXZhdGUga2V5ICRcXGxhbWJkYSQuXG4gKiBAcGFyYW0gbiAtIHBhbGxpZXIgcHVibGljIGtleSBtb2R1bHVzICRuJFxuICogQHBhcmFtIGxhbWJkYSAtIHByaXZhdGUga2V5ICRcXGxhbWJkYSwgIHdoaWNoIGlzIHRoZSAkXFxldWxlcihOKSA9IChwLTEpKHEtMSkkXG4gKiBAcGFyYW0gcCAtIGFycmF5IG9mIGNoYWxsZW5nZXMgJHAkXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxiaWdpbnQ+Pn0gLSBhcnJheSBvZiBwcm9vZnMgJFxcc2lnbWEkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm92ZShuOiBiaWdpbnQsIGxhbWJkYTogYmlnaW50LCBwOiBBcnJheTxiaWdpbnQ+KTogUHJvbWlzZTxBcnJheTxiaWdpbnQ+PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgbl9pbnYgPSBtb2RJbnYobiwgbGFtYmRhKTtcbiAgICAgIHJlc29sdmUocC5tYXAoKHBfaSkgPT4gbW9kUG93KHBfaSwgbl9pbnYsIG4pKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFZlcmlmeSBhIHNldCBvZiBwcm9vZnMgJFxcc2lnbWEkIG9uIHRoZSBtb2R1bHVzICRuJCB1c2luZyB0aGUgY2hhbGxlbmdlcyAkcCQgdGhhdCB3ZXJlIHByb3ZpZGVkIHRvIHRoZSBwcm92ZXIgdG8gZ2VuZXJhdGUgdGhlIHByb29mcy5cbiAqIEBwYXJhbSBuIC0gcGFsbGllciBwdWJsaWMga2V5IG1vZHVsdXMgJG4kXG4gKiBAcGFyYW0gcCAtIGFycmF5IG9mIGNoYWxsZW5nZXMgJHAkXG4gKiBAcGFyYW0gc2lnbWEgLSBhcnJheSBvZiBwcm9vZnMgJFxcc2lnbWEkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnkobjogYmlnaW50LCBwOiBBcnJheTxiaWdpbnQ+LCBzaWdtYTogQXJyYXk8YmlnaW50Pik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAvLyBhKSBDaGVjayB0aGF0ICROJCBpcyBhIHBvc2l0aXZlIGludGVnZXIgYW5kIGlzIG5vdCBkaXZpc2libGUgYnkgYWxsXG4gIC8vIHRoZSBwcmltZXMgbGVzcyB0aGFuICRcXGFscGhhJC5cbiAgLy8gKFNpbmNlIGlzICRcXGFscGhhID0gMiQsIHdlIG9ubHkgY2hlY2sgdGhhdCAkTiQgaXMgcG9zaXRpdmUuXG4gIGlmIChuIDw9IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGFscGhhID4gMikge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgYWxwaGEgdmFsdWUnKTtcbiAgfVxuICAvLyBiKSBDaGVjayB0aGF0ICRcXHNpZ21hX2kkIGlzIGEgcG9zaXRpdmUgaW50ZWdlciAkaSA9IDEuLi5tJC5cbiAgaWYgKHNpZ21hLmxlbmd0aCAhPT0gbSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIXNpZ21hLmV2ZXJ5KChzaWdtYV9pKSA9PiBzaWdtYV9pID4gMCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gYykgVmVyaWZ5IHRoYXQgJHBfaSA9IFxcc2lnbWFfaV5OIFxcbW9kIE4kIGZvciAkaSA9IDEuLi5tJC5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG07IGkrKykge1xuICAgICAgICBpZiAocFtpXSAhPT0gbW9kUG93KHNpZ21hW2ldLCBuLCBuKSkge1xuICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFsbGllcnByb29mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rzcy9lY2RzYS9wYWxsaWVycHJvb2YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQWdEO0FBQ2hELHVEQUFrRDtBQUVsRCxxQ0FBMkQ7QUFDM0QsbUNBQThDO0FBQzlDLHFDQUFtRDtBQUVuRCx1QkFBdUI7QUFDdkIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2QsK0NBQStDO0FBQy9DLG9FQUFvRTtBQUNwRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUM7QUFDUixRQUFBLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxTQUFTLENBQUMsQ0FBUztJQUN2QyxJQUFJLCtCQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsMkJBQW1CLEVBQUU7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0tBQ2xGO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNoQixLQUFLLENBQUMsU0FBQyxDQUFDO1NBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNWLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQ0FBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQVRELDhCQVNDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLENBQVMsRUFBRSxNQUFjLEVBQUUsQ0FBZ0I7SUFDL0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7S0FDbkU7SUFDRCxNQUFNLEtBQUssR0FBRyx5QkFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLHlCQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFORCxzQkFNQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLENBQVMsRUFBRSxDQUFnQixFQUFFLEtBQW9CO0lBQ3RFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRTtRQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7S0FDekU7SUFDRCxzRUFBc0U7SUFDdEUsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBQzVDO0lBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxnQ0FBdUIsRUFBRTtRQUMzQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7S0FDRjtJQUNELDhEQUE4RDtJQUM5RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBQyxFQUFFO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFO1FBQzFDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCw0REFBNEQ7SUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyx5QkFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsT0FBTyxLQUFLLENBQUM7U0FDZDtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBbENELHdCQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJpdExlbmd0aCB9IGZyb20gJ2JpZ2ludC1jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgbW9kSW52LCBtb2RQb3cgfSBmcm9tICdiaWdpbnQtbW9kLWFyaXRoJztcblxuaW1wb3J0IHsgcmFuZG9tUG9zaXRpdmVDb1ByaW1lTGVzc1RoYW4gfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7IG1pbk1vZHVsdXNCaXRMZW5ndGggfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7IHByaW1lc1NtYWxsZXJUaGFuMzE5NTY3IH0gZnJvbSAnLi9wcmltZXMnO1xuXG4vLyBTZWN1cml0eSBwYXJhbWV0ZXJzLlxuY29uc3QgayA9IDEyODtcbi8vIGVwcmludC5pYWNyLm9yZy8yMDE4LzA1Ny5wZGYjcGFnZTYgc2VjdGlvbiA1XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQml0R28vQml0R29KUy9wdWxsLzM1MDIjZGlzY3Vzc2lvbl9yMTIwMzA3MDM5MlxuY29uc3QgYWxwaGEgPSAzMTk1Njc7XG5leHBvcnQgY29uc3QgbSA9IE1hdGguY2VpbChrIC8gTWF0aC5sb2cyKGFscGhhKSk7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBzZXQgb2YgY2hhbGxlbmdlcyAkcCQgZm9yIGEgZ2l2ZW4gcGFsbGllciBwdWJsaWMga2V5IG1vZHVsdXMgJG4kLlxuICogQHBhcmFtIG4gLSBwYWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1c1xuICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8YmlnaW50Pj59IC0gYXJyYXkgb2YgY2hhbGxlbmdlcyAkcF9pJFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVQKG46IGJpZ2ludCk6IFByb21pc2U8QXJyYXk8YmlnaW50Pj4ge1xuICBpZiAoYml0TGVuZ3RoKG4pIDwgbWluTW9kdWx1c0JpdExlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbW9kdWx1cyBuIG11c3QgaGF2ZSBhIGJpdCBsZW5ndGggbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gMzA3MicpO1xuICB9XG4gIHJldHVybiBQcm9taXNlLmFsbChcbiAgICBBcnJheShtKVxuICAgICAgLmZpbGwobnVsbClcbiAgICAgIC5tYXAoKCkgPT4gcmFuZG9tUG9zaXRpdmVDb1ByaW1lTGVzc1RoYW4obikpXG4gICk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBzZXQgb2YgcHJvb2ZzICRzaWdtYSQgZm9yIGEgZ2l2ZW4gc2V0IG9mIGNoYWxsZW5nZXMgJHAkIHVzaW5nIHRoZSBwYWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiQgYW5kIHRoZSBwcml2YXRlIGtleSAkXFxsYW1iZGEkLlxuICogQHBhcmFtIG4gLSBwYWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiRcbiAqIEBwYXJhbSBsYW1iZGEgLSBwcml2YXRlIGtleSAkXFxsYW1iZGEsICB3aGljaCBpcyB0aGUgJFxcZXVsZXIoTikgPSAocC0xKShxLTEpJFxuICogQHBhcmFtIHAgLSBhcnJheSBvZiBjaGFsbGVuZ2VzICRwJFxuICogQHJldHVybnMge1Byb21pc2U8QXJyYXk8YmlnaW50Pj59IC0gYXJyYXkgb2YgcHJvb2ZzICRcXHNpZ21hJFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmUobjogYmlnaW50LCBsYW1iZGE6IGJpZ2ludCwgcDogQXJyYXk8YmlnaW50Pik6IGJpZ2ludFtdIHtcbiAgaWYgKCFwLmV2ZXJ5KChwX2kpID0+IHBfaSA+IDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBbGwgcGFsbGllciBjaGFsbGVuZ2UgdmFsdWVzIG11c3QgYmUgcG9zaXRpdmUuJyk7XG4gIH1cbiAgY29uc3Qgbl9pbnYgPSBtb2RJbnYobiwgbGFtYmRhKTtcbiAgcmV0dXJuIHAubWFwKChwX2kpID0+IG1vZFBvdyhwX2ksIG5faW52LCBuKSk7XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgc2V0IG9mIHByb29mcyAkXFxzaWdtYSQgb24gdGhlIG1vZHVsdXMgJG4kIHVzaW5nIHRoZSBjaGFsbGVuZ2VzICRwJCB0aGF0IHdlcmUgcHJvdmlkZWQgdG8gdGhlIHByb3ZlciB0byBnZW5lcmF0ZSB0aGUgcHJvb2ZzLlxuICogQHBhcmFtIG4gLSBwYWxsaWVyIHB1YmxpYyBrZXkgbW9kdWx1cyAkbiRcbiAqIEBwYXJhbSBwIC0gYXJyYXkgb2YgY2hhbGxlbmdlcyAkcCRcbiAqIEBwYXJhbSBzaWdtYSAtIGFycmF5IG9mIHByb29mcyAkXFxzaWdtYSRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeShuOiBiaWdpbnQsIHA6IEFycmF5PGJpZ2ludD4sIHNpZ21hOiBBcnJheTxiaWdpbnQ+KTogYm9vbGVhbiB7XG4gIGlmICghcC5ldmVyeSgocF9pKSA9PiBwX2kgPiAwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQWxsIHBhbGxpZXIgY2hhbGxlbmdlIHZhbHVlcyBtdXN0IGJlIHBvc2l0aXZlLicpO1xuICB9XG4gIGlmICghc2lnbWEuZXZlcnkoKHNpZ21hX2kpID0+IHNpZ21hX2kgPiAwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQWxsIHBhbGxpZXIgY2hhbGxlbmdlIHByb29mIHZhbHVlcyBtdXN0IGJlIHBvc2l0aXZlLicpO1xuICB9XG4gIC8vIGEpIENoZWNrIHRoYXQgJE4kIGlzIGEgcG9zaXRpdmUgaW50ZWdlciBhbmQgaXMgbm90IGRpdmlzaWJsZSBieSBhbGxcbiAgLy8gdGhlIHByaW1lcyBsZXNzIHRoYW4gJFxcYWxwaGEkLlxuICBpZiAobiA8PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChhbHBoYSAhPT0gMzE5NTY3KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCBhbHBoYSB2YWx1ZScpO1xuICB9XG4gIGZvciAoY29uc3QgcHJpbWUgb2YgcHJpbWVzU21hbGxlclRoYW4zMTk1NjcpIHtcbiAgICBpZiAobiAlIEJpZ0ludChwcmltZSkgPT09IEJpZ0ludCgwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICAvLyBiKSBDaGVjayB0aGF0ICRcXHNpZ21hX2kkIGlzIGEgcG9zaXRpdmUgaW50ZWdlciAkaSA9IDEuLi5tJC5cbiAgaWYgKHNpZ21hLmxlbmd0aCAhPT0gbSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIXNpZ21hLmV2ZXJ5KChzaWdtYV9pKSA9PiBzaWdtYV9pID4gMCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gYykgVmVyaWZ5IHRoYXQgJHBfaSA9IFxcc2lnbWFfaV5OIFxcbW9kIE4kIGZvciAkaSA9IDEuLi5tJC5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICBpZiAocFtpXSAhPT0gbW9kUG93KHNpZ21hW2ldLCBuLCBuKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export declare const primesSmallerThan319567: number[];
2
+ //# sourceMappingURL=primes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primes.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/primes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,UAizDnC,CAAC"}