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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +519 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +25 -6
  4. package/dist/src/curves/constant.d.ts +0 -2
  5. package/dist/src/curves/constant.d.ts.map +0 -1
  6. package/dist/src/curves/constant.js +0 -6
  7. package/dist/src/curves/ed25519.d.ts +0 -21
  8. package/dist/src/curves/ed25519.d.ts.map +0 -1
  9. package/dist/src/curves/ed25519.js +0 -72
  10. package/dist/src/curves/ed25519Bip32HdTree.d.ts +0 -10
  11. package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +0 -1
  12. package/dist/src/curves/ed25519Bip32HdTree.js +0 -85
  13. package/dist/src/curves/index.d.ts +0 -8
  14. package/dist/src/curves/index.d.ts.map +0 -1
  15. package/dist/src/curves/index.js +0 -20
  16. package/dist/src/curves/secp256k1.d.ts +0 -19
  17. package/dist/src/curves/secp256k1.d.ts.map +0 -1
  18. package/dist/src/curves/secp256k1.js +0 -77
  19. package/dist/src/curves/secp256k1Bip32HdTree.d.ts +0 -8
  20. package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +0 -1
  21. package/dist/src/curves/secp256k1Bip32HdTree.js +0 -54
  22. package/dist/src/curves/types.d.ts +0 -36
  23. package/dist/src/curves/types.d.ts.map +0 -1
  24. package/dist/src/curves/types.js +0 -3
  25. package/dist/src/curves/util.d.ts +0 -2
  26. package/dist/src/curves/util.d.ts.map +0 -1
  27. package/dist/src/curves/util.js +0 -11
  28. package/dist/src/hashCommitment.d.ts +0 -17
  29. package/dist/src/hashCommitment.d.ts.map +0 -1
  30. package/dist/src/hashCommitment.js +0 -45
  31. package/dist/src/index.d.ts +0 -9
  32. package/dist/src/index.d.ts.map +0 -1
  33. package/dist/src/index.js +0 -34
  34. package/dist/src/openssl/index.d.ts +0 -2
  35. package/dist/src/openssl/index.d.ts.map +0 -1
  36. package/dist/src/openssl/index.js +0 -14
  37. package/dist/src/openssl/openssl.d.ts +0 -9
  38. package/dist/src/openssl/openssl.d.ts.map +0 -1
  39. package/dist/src/openssl/openssl.js +0 -45
  40. package/dist/src/openssl/opensslbytes.d.ts +0 -4
  41. package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
  42. package/dist/src/openssl/opensslbytes.js +0 -20
  43. package/dist/src/schnorrProof.d.ts +0 -22
  44. package/dist/src/schnorrProof.d.ts.map +0 -1
  45. package/dist/src/schnorrProof.js +0 -62
  46. package/dist/src/shamir/index.d.ts +0 -3
  47. package/dist/src/shamir/index.d.ts.map +0 -1
  48. package/dist/src/shamir/index.js +0 -15
  49. package/dist/src/shamir/shamir.d.ts +0 -38
  50. package/dist/src/shamir/shamir.d.ts.map +0 -1
  51. package/dist/src/shamir/shamir.js +0 -136
  52. package/dist/src/shamir/types.d.ts +0 -5
  53. package/dist/src/shamir/types.d.ts.map +0 -1
  54. package/dist/src/shamir/types.js +0 -3
  55. package/dist/src/tss/ecdsa/generatePaillierKey.d.ts +0 -6
  56. package/dist/src/tss/ecdsa/generatePaillierKey.d.ts.map +0 -1
  57. package/dist/src/tss/ecdsa/generatePaillierKey.js +0 -52
  58. package/dist/src/tss/ecdsa/index.d.ts +0 -8
  59. package/dist/src/tss/ecdsa/index.d.ts.map +0 -1
  60. package/dist/src/tss/ecdsa/index.js +0 -33
  61. package/dist/src/tss/ecdsa/noSmallFactorsProof.d.ts +0 -24
  62. package/dist/src/tss/ecdsa/noSmallFactorsProof.d.ts.map +0 -1
  63. package/dist/src/tss/ecdsa/noSmallFactorsProof.js +0 -157
  64. package/dist/src/tss/ecdsa/paillierBlumProof.d.ts +0 -16
  65. package/dist/src/tss/ecdsa/paillierBlumProof.d.ts.map +0 -1
  66. package/dist/src/tss/ecdsa/paillierBlumProof.js +0 -148
  67. package/dist/src/tss/ecdsa/paillierProof.d.ts +0 -24
  68. package/dist/src/tss/ecdsa/paillierProof.d.ts.map +0 -1
  69. package/dist/src/tss/ecdsa/paillierProof.js +0 -86
  70. package/dist/src/tss/ecdsa/primes.d.ts +0 -2
  71. package/dist/src/tss/ecdsa/primes.d.ts.map +0 -1
  72. package/dist/src/tss/ecdsa/primes.js +0 -1846
  73. package/dist/src/tss/ecdsa/rangeProof.d.ts +0 -80
  74. package/dist/src/tss/ecdsa/rangeProof.d.ts.map +0 -1
  75. package/dist/src/tss/ecdsa/rangeProof.js +0 -404
  76. package/dist/src/tss/ecdsa/types.d.ts +0 -182
  77. package/dist/src/tss/ecdsa/types.d.ts.map +0 -1
  78. package/dist/src/tss/ecdsa/types.js +0 -197
  79. package/dist/src/tss/ecdsa/zkVProof.d.ts +0 -25
  80. package/dist/src/tss/ecdsa/zkVProof.d.ts.map +0 -1
  81. package/dist/src/tss/ecdsa/zkVProof.js +0 -71
  82. package/dist/src/tss/index.d.ts +0 -2
  83. package/dist/src/tss/index.d.ts.map +0 -1
  84. package/dist/src/tss/index.js +0 -14
  85. package/dist/src/types.d.ts +0 -14
  86. package/dist/src/types.d.ts.map +0 -1
  87. package/dist/src/types.js +0 -3
  88. package/dist/src/util.d.ts +0 -61
  89. package/dist/src/util.d.ts.map +0 -1
  90. package/dist/src/util.js +0 -208
@@ -1,182 +0,0 @@
1
- interface NtildeProof<T> {
2
- alpha: T[];
3
- t: T[];
4
- }
5
- interface NtildeProofs<T> {
6
- h1WrtH2: NtildeProof<T>;
7
- h2WrtH1: NtildeProof<T>;
8
- }
9
- interface Ntilde<T> {
10
- ntilde: T;
11
- h1: T;
12
- h2: T;
13
- }
14
- export declare type DeserializedNtilde = Ntilde<bigint>;
15
- export declare type SerializedNtilde = Ntilde<string>;
16
- export declare type DeserializedNtildeProof = NtildeProof<bigint>;
17
- export declare type SerializedNtildeProof = NtildeProof<string>;
18
- export declare type DeserializedNtildeProofs = NtildeProofs<bigint>;
19
- export declare type SerializedNtildeProofs = NtildeProofs<string>;
20
- /**
21
- * The ntilde proofs are done non-interactively,
22
- * therefore a party generates both ntilde, h1, h2 and the proofs without
23
- * interaction with the other party.
24
- */
25
- export declare type DeserializedNtildeWithProofs = DeserializedNtilde & {
26
- ntildeProof: DeserializedNtildeProofs;
27
- };
28
- export declare type SerializedNtildeWithProofs = SerializedNtilde & {
29
- ntildeProof: SerializedNtildeProofs;
30
- };
31
- export declare type SerializedEcdsaChallenges = SerializedNtilde & SerializedPaillierChallenge;
32
- /**
33
- * Deserializes a challenge from hex strings to bigint
34
- * @param challenge
35
- */
36
- export declare function deserializeNtilde(challenge: SerializedNtilde): DeserializedNtilde;
37
- /**
38
- * Serializes a challenge from big int to hex strings.
39
- * @param challenge
40
- */
41
- export declare function serializeNtilde(challenge: DeserializedNtilde): SerializedNtilde;
42
- /**
43
- * Deserializes a challenge and it's proofs from hex strings to bigint
44
- * @param challenge
45
- */
46
- export declare function deserializeNtildeWithProofs(challenge: SerializedNtildeWithProofs): DeserializedNtildeWithProofs;
47
- /**
48
- * Serializes a challenge and it's proofs from big int to hex strings.
49
- * @param challenge
50
- */
51
- export declare function serializeNtildeWithProofs(challenge: DeserializedNtildeWithProofs): SerializedNtildeWithProofs;
52
- declare type PaillierChallenge<T> = {
53
- p: T[];
54
- };
55
- declare type PaillierChallengeProof<T> = {
56
- sigma: T[];
57
- };
58
- export declare type DeserializedPaillierChallenge = PaillierChallenge<bigint>;
59
- export declare type SerializedPaillierChallenge = PaillierChallenge<string>;
60
- export declare type DeserializedPaillierChallengeProofs = PaillierChallengeProof<bigint>;
61
- export declare type SerializedPaillierChallengeProofs = PaillierChallengeProof<string>;
62
- /**
63
- * The paillier proofs are done interactively between two parties.
64
- * If party A is completing a paillier proof $sigma$ with party B, then $p$ refers to
65
- * a challenge given to A by B, and $sigma$ represents the proof to the challenge
66
- */
67
- export declare type DeserializedPaillierChallengeWithProofs = DeserializedPaillierChallenge & DeserializedPaillierChallengeProofs;
68
- export declare type SerializedPaillierChallengeWithProofs = SerializedPaillierChallenge & SerializedPaillierChallengeProofs;
69
- /**
70
- * Deserializes a paillier challenge to hex strings.
71
- * @param challenge
72
- */
73
- export declare function deserializePaillierChallenge(challenge: SerializedPaillierChallenge): DeserializedPaillierChallenge;
74
- /**
75
- * Deserializes a paillier challenge proof to hex strings.
76
- * @param challenge
77
- */
78
- export declare function deserializePaillierChallengeProofs(challenge: SerializedPaillierChallengeProofs): DeserializedPaillierChallengeProofs;
79
- /**
80
- * Deserializes a paillier challenge and its proof to hex strings.
81
- * @param challengeWithProofs
82
- */
83
- export declare function deserializePaillierChallengeWithProofs(challengeWithProofs: SerializedPaillierChallengeWithProofs): DeserializedPaillierChallengeWithProofs;
84
- /**
85
- * Serializes a paillier challenge to hex strings.
86
- * @param challenge
87
- */
88
- export declare function serializePaillierChallenge(challenge: DeserializedPaillierChallenge): SerializedPaillierChallenge;
89
- /**
90
- * Serializes a paillier challenge proof to hex strings.
91
- * @param challenge
92
- */
93
- export declare function serializePaillierChallengeProofs(challenge: DeserializedPaillierChallengeProofs): SerializedPaillierChallengeProofs;
94
- /**
95
- * Serializes a paillier challenge and its proof to hex strings.
96
- * @param challengeWithProofs
97
- */
98
- export declare function serializePaillierChallengeWithProofs(challengeWithProofs: DeserializedPaillierChallengeWithProofs): SerializedPaillierChallengeWithProofs;
99
- declare type paillierBlumProof<T> = {
100
- w: T;
101
- x: T[];
102
- z: T[];
103
- };
104
- export declare type SerializedPaillierBlumProof = paillierBlumProof<string>;
105
- export declare type DeserializedPaillierBlumProof = paillierBlumProof<bigint>;
106
- /**
107
- * Deserializes a paillier challenge and its proof from hex strings to big ints.
108
- * @param paillierBlumProof
109
- */
110
- export declare function deserializePaillierBlumProof(paillierBlumProof: SerializedPaillierBlumProof): DeserializedPaillierBlumProof;
111
- /**
112
- * Serializes a paillier challenge and its proof to hex strings.
113
- * @param paillierBlumProof
114
- */
115
- export declare function serializePaillierBlumProof(paillierBlumProof: DeserializedPaillierBlumProof): SerializedPaillierBlumProof;
116
- export declare type RawPaillierKey = {
117
- n: bigint;
118
- lambda: bigint;
119
- mu: bigint;
120
- p: bigint;
121
- q: bigint;
122
- };
123
- export declare type DeserializedKeyPairWithPaillierBlumProof = DeserializedPaillierBlumProof & RawPaillierKey;
124
- export interface RSAModulus {
125
- n: bigint;
126
- q1: bigint;
127
- q2: bigint;
128
- }
129
- export interface RangeProof {
130
- z: bigint;
131
- u: bigint;
132
- w: bigint;
133
- s: bigint;
134
- s1: bigint;
135
- s2: bigint;
136
- }
137
- export interface RangeProofWithCheck {
138
- z: bigint;
139
- zprm: bigint;
140
- t: bigint;
141
- v: bigint;
142
- w: bigint;
143
- s: bigint;
144
- s1: bigint;
145
- s2: bigint;
146
- t1: bigint;
147
- t2: bigint;
148
- u: bigint;
149
- }
150
- export interface ZkVProof {
151
- Alpha: bigint;
152
- t: bigint;
153
- u: bigint;
154
- }
155
- declare type noSmallFactorsProof<T> = {
156
- P: T;
157
- Q: T;
158
- A: T;
159
- B: T;
160
- T: T;
161
- rho: T;
162
- z1: T;
163
- z2: T;
164
- w1: T;
165
- w2: T;
166
- v: T;
167
- nonce: T;
168
- };
169
- export declare type SerializedNoSmallFactorsProof = noSmallFactorsProof<string>;
170
- export declare type DeserializedNoSmallFactorsProof = noSmallFactorsProof<bigint>;
171
- /**
172
- * Deserializes a Pi^fac proof from hex strings to big ints.
173
- * @param noSmallFactorsProof
174
- */
175
- export declare function deserializeNoSmallFactorsProof(noSmallFactorsProof: SerializedNoSmallFactorsProof): DeserializedNoSmallFactorsProof;
176
- /**
177
- * Serializes a Pi^fac proof to hex strings.
178
- * @param noSmallFactorsProof
179
- */
180
- export declare function serializeNoSmallFactorsProof(noSmallFactorsProof: DeserializedNoSmallFactorsProof): SerializedNoSmallFactorsProof;
181
- export {};
182
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/types.ts"],"names":[],"mappings":"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"}
@@ -1,197 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serializeNoSmallFactorsProof = exports.deserializeNoSmallFactorsProof = exports.serializePaillierBlumProof = exports.deserializePaillierBlumProof = exports.serializePaillierChallengeWithProofs = exports.serializePaillierChallengeProofs = exports.serializePaillierChallenge = exports.deserializePaillierChallengeWithProofs = exports.deserializePaillierChallengeProofs = exports.deserializePaillierChallenge = exports.serializeNtildeWithProofs = exports.deserializeNtildeWithProofs = exports.serializeNtilde = exports.deserializeNtilde = void 0;
4
- const util_1 = require("../../util");
5
- /**
6
- * Deserializes a challenge from hex strings to bigint
7
- * @param challenge
8
- */
9
- function deserializeNtilde(challenge) {
10
- return {
11
- ntilde: util_1.hexToBigInt(challenge.ntilde),
12
- h1: util_1.hexToBigInt(challenge.h1),
13
- h2: util_1.hexToBigInt(challenge.h2),
14
- };
15
- }
16
- exports.deserializeNtilde = deserializeNtilde;
17
- /**
18
- * Serializes a challenge from big int to hex strings.
19
- * @param challenge
20
- */
21
- function serializeNtilde(challenge) {
22
- return {
23
- ntilde: util_1.bigIntToHex(challenge.ntilde),
24
- h1: util_1.bigIntToHex(challenge.h1),
25
- h2: util_1.bigIntToHex(challenge.h2),
26
- };
27
- }
28
- exports.serializeNtilde = serializeNtilde;
29
- /**
30
- * Deserializes a challenge and it's proofs from hex strings to bigint
31
- * @param challenge
32
- */
33
- function deserializeNtildeWithProofs(challenge) {
34
- return {
35
- ...deserializeNtilde(challenge),
36
- ntildeProof: {
37
- h1WrtH2: {
38
- alpha: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h1WrtH2.alpha),
39
- t: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h1WrtH2.t),
40
- },
41
- h2WrtH1: {
42
- alpha: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h2WrtH1.alpha),
43
- t: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h2WrtH1.t),
44
- },
45
- },
46
- };
47
- }
48
- exports.deserializeNtildeWithProofs = deserializeNtildeWithProofs;
49
- /**
50
- * Serializes a challenge and it's proofs from big int to hex strings.
51
- * @param challenge
52
- */
53
- function serializeNtildeWithProofs(challenge) {
54
- return {
55
- ...serializeNtilde(challenge),
56
- ntildeProof: {
57
- h1WrtH2: {
58
- alpha: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h1WrtH2.alpha),
59
- t: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h1WrtH2.t),
60
- },
61
- h2WrtH1: {
62
- alpha: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h2WrtH1.alpha),
63
- t: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h2WrtH1.t),
64
- },
65
- },
66
- };
67
- }
68
- exports.serializeNtildeWithProofs = serializeNtildeWithProofs;
69
- /**
70
- * Deserializes a paillier challenge to hex strings.
71
- * @param challenge
72
- */
73
- function deserializePaillierChallenge(challenge) {
74
- return {
75
- p: util_1.convertHexArrToBigIntArr(challenge.p),
76
- };
77
- }
78
- exports.deserializePaillierChallenge = deserializePaillierChallenge;
79
- /**
80
- * Deserializes a paillier challenge proof to hex strings.
81
- * @param challenge
82
- */
83
- function deserializePaillierChallengeProofs(challenge) {
84
- return {
85
- sigma: util_1.convertHexArrToBigIntArr(challenge.sigma),
86
- };
87
- }
88
- exports.deserializePaillierChallengeProofs = deserializePaillierChallengeProofs;
89
- /**
90
- * Deserializes a paillier challenge and its proof to hex strings.
91
- * @param challengeWithProofs
92
- */
93
- function deserializePaillierChallengeWithProofs(challengeWithProofs) {
94
- return {
95
- ...deserializePaillierChallenge(challengeWithProofs),
96
- ...deserializePaillierChallengeProofs(challengeWithProofs),
97
- };
98
- }
99
- exports.deserializePaillierChallengeWithProofs = deserializePaillierChallengeWithProofs;
100
- /**
101
- * Serializes a paillier challenge to hex strings.
102
- * @param challenge
103
- */
104
- function serializePaillierChallenge(challenge) {
105
- return {
106
- p: util_1.convertBigIntArrToHexArr(challenge.p, 768),
107
- };
108
- }
109
- exports.serializePaillierChallenge = serializePaillierChallenge;
110
- /**
111
- * Serializes a paillier challenge proof to hex strings.
112
- * @param challenge
113
- */
114
- function serializePaillierChallengeProofs(challenge) {
115
- return {
116
- sigma: util_1.convertBigIntArrToHexArr(challenge.sigma, 768),
117
- };
118
- }
119
- exports.serializePaillierChallengeProofs = serializePaillierChallengeProofs;
120
- /**
121
- * Serializes a paillier challenge and its proof to hex strings.
122
- * @param challengeWithProofs
123
- */
124
- function serializePaillierChallengeWithProofs(challengeWithProofs) {
125
- return {
126
- ...serializePaillierChallenge(challengeWithProofs),
127
- ...serializePaillierChallengeProofs(challengeWithProofs),
128
- };
129
- }
130
- exports.serializePaillierChallengeWithProofs = serializePaillierChallengeWithProofs;
131
- /**
132
- * Deserializes a paillier challenge and its proof from hex strings to big ints.
133
- * @param paillierBlumProof
134
- */
135
- function deserializePaillierBlumProof(paillierBlumProof) {
136
- return {
137
- w: util_1.hexToBigInt(paillierBlumProof.w),
138
- x: util_1.convertHexArrToBigIntArr(paillierBlumProof.x),
139
- z: util_1.convertHexArrToBigIntArr(paillierBlumProof.z),
140
- };
141
- }
142
- exports.deserializePaillierBlumProof = deserializePaillierBlumProof;
143
- /**
144
- * Serializes a paillier challenge and its proof to hex strings.
145
- * @param paillierBlumProof
146
- */
147
- function serializePaillierBlumProof(paillierBlumProof) {
148
- return {
149
- w: util_1.bigIntToHex(paillierBlumProof.w, 768),
150
- x: util_1.convertBigIntArrToHexArr(paillierBlumProof.x, 768),
151
- z: util_1.convertBigIntArrToHexArr(paillierBlumProof.z, 768),
152
- };
153
- }
154
- exports.serializePaillierBlumProof = serializePaillierBlumProof;
155
- /**
156
- * Deserializes a Pi^fac proof from hex strings to big ints.
157
- * @param noSmallFactorsProof
158
- */
159
- function deserializeNoSmallFactorsProof(noSmallFactorsProof) {
160
- return {
161
- P: util_1.hexToSignedBigInt(noSmallFactorsProof.P),
162
- Q: util_1.hexToSignedBigInt(noSmallFactorsProof.Q),
163
- A: util_1.hexToSignedBigInt(noSmallFactorsProof.A),
164
- B: util_1.hexToSignedBigInt(noSmallFactorsProof.B),
165
- T: util_1.hexToSignedBigInt(noSmallFactorsProof.T),
166
- rho: util_1.hexToSignedBigInt(noSmallFactorsProof.rho),
167
- z1: util_1.hexToSignedBigInt(noSmallFactorsProof.z1),
168
- z2: util_1.hexToSignedBigInt(noSmallFactorsProof.z2),
169
- w1: util_1.hexToSignedBigInt(noSmallFactorsProof.w1),
170
- w2: util_1.hexToSignedBigInt(noSmallFactorsProof.w2),
171
- v: util_1.hexToSignedBigInt(noSmallFactorsProof.v),
172
- nonce: util_1.hexToBigInt(noSmallFactorsProof.nonce),
173
- };
174
- }
175
- exports.deserializeNoSmallFactorsProof = deserializeNoSmallFactorsProof;
176
- /**
177
- * Serializes a Pi^fac proof to hex strings.
178
- * @param noSmallFactorsProof
179
- */
180
- function serializeNoSmallFactorsProof(noSmallFactorsProof) {
181
- return {
182
- P: util_1.signedBigIntToHex(noSmallFactorsProof.P, 2 * (1 + 384)),
183
- Q: util_1.signedBigIntToHex(noSmallFactorsProof.Q, 2 * (1 + 384)),
184
- A: util_1.signedBigIntToHex(noSmallFactorsProof.A, 2 * (1 + 384)),
185
- B: util_1.signedBigIntToHex(noSmallFactorsProof.B, 2 * (1 + 384)),
186
- T: util_1.signedBigIntToHex(noSmallFactorsProof.T, 2 * (1 + 384)),
187
- rho: util_1.signedBigIntToHex(noSmallFactorsProof.rho, 2 * (2 * 384 + 256 / 8)),
188
- z1: util_1.signedBigIntToHex(noSmallFactorsProof.z1, 2 * (1 + 384 / 2 + (256 + 2 * 256) / 8)),
189
- z2: util_1.signedBigIntToHex(noSmallFactorsProof.z2, 2 * (1 + 384 / 2 + (256 + 2 * 256) / 8)),
190
- w1: util_1.signedBigIntToHex(noSmallFactorsProof.w1, 2 * (1 + (256 + 2 * 256) / 8)),
191
- w2: util_1.signedBigIntToHex(noSmallFactorsProof.w2, 2 * (1 + (256 + 2 * 256) / 8)),
192
- v: util_1.signedBigIntToHex(noSmallFactorsProof.v, 2 * (1 + 384 * 2 + (256 + 2 * 256) / 8)),
193
- nonce: util_1.bigIntToHex(noSmallFactorsProof.nonce, 2 * 33),
194
- };
195
- }
196
- exports.serializeNoSmallFactorsProof = serializeNoSmallFactorsProof;
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQU9vQjtBQTBDcEI7OztHQUdHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsU0FBMkI7SUFDM0QsT0FBTztRQUNMLE1BQU0sRUFBRSxrQkFBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDckMsRUFBRSxFQUFFLGtCQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM3QixFQUFFLEVBQUUsa0JBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBTkQsOENBTUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQUMsU0FBNkI7SUFDM0QsT0FBTztRQUNMLE1BQU0sRUFBRSxrQkFBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDckMsRUFBRSxFQUFFLGtCQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM3QixFQUFFLEVBQUUsa0JBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUM7QUFDSixDQUFDO0FBTkQsMENBTUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxTQUFxQztJQUMvRSxPQUFPO1FBQ0wsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7UUFDL0IsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BFLENBQUMsRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDN0Q7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLCtCQUF3QixDQUFDLFNBQVMsQ0FBQyxXQUFXLENB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QixDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFFLHdCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFFLHdCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFFLHdCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxFQUFFLHdCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUQsR0FBRyxFQUFFLHdCQUFpQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RSxFQUFFLEVBQUUsd0JBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RixFQUFFLEVBQUUsd0JBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RixFQUFFLEVBQUUsd0JBQWlCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUUsRUFBRSxFQUFFLHdCQUFpQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsRUFBRSx3QkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLEtBQUssRUFBRSxrQkFBVyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ3RELENBQUM7QUFDSixDQUFDO0FBakJELG9FQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJpZ0ludFRvSGV4LFxuICBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIsXG4gIGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycixcbiAgaGV4VG9CaWdJbnQsXG4gIGhleFRvU2lnbmVkQmlnSW50LFxuICBzaWduZWRCaWdJbnRUb0hleCxcbn0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8vIE50aWxkZSBQcm9vZiB3aGVyZSBib3RoIGFscGhhIGFuZCB0IGFyZSBhIHNldCBvZiAxMjggcHJvb2ZzIGVhY2guXG5pbnRlcmZhY2UgTnRpbGRlUHJvb2Y8VD4ge1xuICBhbHBoYTogVFtdO1xuICB0OiBUW107XG59XG5cbi8vIE50aWxkZSBQcm9vZlxuaW50ZXJmYWNlIE50aWxkZVByb29mczxUPiB7XG4gIGgxV3J0SDI6IE50aWxkZVByb29mPFQ+O1xuICBoMldydEgxOiBOdGlsZGVQcm9vZjxUPjtcbn1cblxuLy8gTnRpbGRlIGNoYWxsZW5nZSB2YWx1ZXNcbmludGVyZmFjZSBOdGlsZGU8VD4ge1xuICBudGlsZGU6IFQ7XG4gIGgxOiBUO1xuICBoMjogVDtcbn1cblxuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlID0gTnRpbGRlPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlID0gTnRpbGRlPHN0cmluZz47XG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGVQcm9vZiA9IE50aWxkZVByb29mPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlUHJvb2YgPSBOdGlsZGVQcm9vZjxzdHJpbmc+O1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gTnRpbGRlUHJvb2ZzPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gTnRpbGRlUHJvb2ZzPHN0cmluZz47XG5cbi8qKlxuICogVGhlIG50aWxkZSBwcm9vZnMgYXJlIGRvbmUgbm9uLWludGVyYWN0aXZlbHksXG4gKiB0aGVyZWZvcmUgYSBwYXJ0eSBnZW5lcmF0ZXMgYm90aCBudGlsZGUsIGgxLCBoMiBhbmQgdGhlIHByb29mcyB3aXRob3V0XG4gKiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBvdGhlciBwYXJ0eS5cbiAqL1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IERlc2VyaWFsaXplZE50aWxkZSAmIHtcbiAgbnRpbGRlUHJvb2Y6IERlc2VyaWFsaXplZE50aWxkZVByb29mcztcbn07XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IFNlcmlhbGl6ZWROdGlsZGUgJiB7XG4gIG50aWxkZVByb29mOiBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzO1xufTtcblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZEVjZHNhQ2hhbGxlbmdlcyA9IFNlcmlhbGl6ZWROdGlsZGUgJiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2U7XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgY2hhbGxlbmdlIGZyb20gaGV4IHN0cmluZ3MgdG8gYmlnaW50XG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGUpOiBEZXNlcmlhbGl6ZWROdGlsZGUge1xuICByZXR1cm4ge1xuICAgIG50aWxkZTogaGV4VG9CaWdJbnQoY2hhbGxlbmdlLm50aWxkZSksXG4gICAgaDE6IGhleFRvQmlnSW50KGNoYWxsZW5nZS5oMSksXG4gICAgaDI6IGhleFRvQmlnSW50KGNoYWxsZW5nZS5oMiksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIGNoYWxsZW5nZSBmcm9tIGJpZyBpbnQgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVOdGlsZGUoY2hhbGxlbmdlOiBEZXNlcmlhbGl6ZWROdGlsZGUpOiBTZXJpYWxpemVkTnRpbGRlIHtcbiAgcmV0dXJuIHtcbiAgICBudGlsZGU6IGJpZ0ludFRvSGV4KGNoYWxsZW5nZS5udGlsZGUpLFxuICAgIGgxOiBiaWdJbnRUb0hleChjaGFsbGVuZ2UuaDEpLFxuICAgIGgyOiBiaWdJbnRUb0hleChjaGFsbGVuZ2UuaDIpLFxuICB9O1xufVxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBhIGNoYWxsZW5nZSBhbmQgaXQncyBwcm9vZnMgZnJvbSBoZXggc3RyaW5ncyB0byBiaWdpbnRcbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplTnRpbGRlV2l0aFByb29mcyhjaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzKTogRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyB7XG4gIHJldHVybiB7XG4gICAgLi4uZGVzZXJpYWxpemVOdGlsZGUoY2hhbGxlbmdlKSxcbiAgICBudGlsZGVQcm9vZjoge1xuICAgICAgaDFXcnRIMjoge1xuICAgICAgICBhbHBoYTogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLnQpLFxuICAgICAgfSxcbiAgICAgIGgyV3J0SDE6IHtcbiAgICAgICAgYWxwaGE6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS5hbHBoYSksXG4gICAgICAgIHQ6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS50KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgY2hhbGxlbmdlIGFuZCBpdCdzIHByb29mcyBmcm9tIGJpZyBpbnQgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKGNoYWxsZW5nZTogRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyk6IFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zZXJpYWxpemVOdGlsZGUoY2hhbGxlbmdlKSxcbiAgICBudGlsZGVQcm9vZjoge1xuICAgICAgaDFXcnRIMjoge1xuICAgICAgICBhbHBoYTogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLnQpLFxuICAgICAgfSxcbiAgICAgIGgyV3J0SDE6IHtcbiAgICAgICAgYWxwaGE6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS5hbHBoYSksXG4gICAgICAgIHQ6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS50KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxudHlwZSBQYWlsbGllckNoYWxsZW5nZTxUPiA9IHtcbiAgcDogVFtdO1xufTtcblxudHlwZSBQYWlsbGllckNoYWxsZW5nZVByb29mPFQ+ID0ge1xuICBzaWdtYTogVFtdO1xufTtcblxuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UgPSBQYWlsbGllckNoYWxsZW5nZTxiaWdpbnQ+O1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlID0gUGFpbGxpZXJDaGFsbGVuZ2U8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzID0gUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZjxiaWdpbnQ+O1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzID0gUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZjxzdHJpbmc+O1xuLyoqXG4gKiBUaGUgcGFpbGxpZXIgcHJvb2ZzIGFyZSBkb25lIGludGVyYWN0aXZlbHkgYmV0d2VlbiB0d28gcGFydGllcy5cbiAqIElmIHBhcnR5IEEgaXMgY29tcGxldGluZyBhIHBhaWxsaWVyIHByb29mICRzaWdtYSQgd2l0aCBwYXJ0eSBCLCB0aGVuICRwJCByZWZlcnMgdG9cbiAqIGEgY2hhbGxlbmdlIGdpdmVuIHRvIEEgYnkgQiwgYW5kICRzaWdtYSQgcmVwcmVzZW50cyB0aGUgcHJvb2YgdG8gdGhlIGNoYWxsZW5nZVxuICovXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnMgPSBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSAmXG4gIERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzO1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyA9IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSAmIFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVByb29mcztcblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKGNoYWxsZW5nZTogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlKTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2Uge1xuICByZXR1cm4ge1xuICAgIHA6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihjaGFsbGVuZ2UucCksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIHByb29mIHRvIGhleCBzdHJpbmdzLlxuICogQHBhcmFtIGNoYWxsZW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVByb29mcyhcbiAgY2hhbGxlbmdlOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnNcbik6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICBzaWdtYTogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5zaWdtYSksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIGFuZCBpdHMgcHJvb2YgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlV2l0aFByb29mc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnMoXG4gIGNoYWxsZW5nZVdpdGhQcm9vZnM6IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnNcbik6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyB7XG4gIHJldHVybiB7XG4gICAgLi4uZGVzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZShjaGFsbGVuZ2VXaXRoUHJvb2ZzKSxcbiAgICAuLi5kZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzKGNoYWxsZW5nZVdpdGhQcm9vZnMpLFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZShjaGFsbGVuZ2U6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlKTogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlIHtcbiAgcmV0dXJuIHtcbiAgICBwOiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLnAsIDc2OCksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSBwcm9vZiB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzKFxuICBjaGFsbGVuZ2U6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzXG4pOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMge1xuICByZXR1cm4ge1xuICAgIHNpZ21hOiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLnNpZ21hLCA3NjgpLFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgYW5kIGl0cyBwcm9vZiB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VXaXRoUHJvb2ZzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnMoXG4gIGNoYWxsZW5nZVdpdGhQcm9vZnM6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mc1xuKTogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyB7XG4gIHJldHVybiB7XG4gICAgLi4uc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoY2hhbGxlbmdlV2l0aFByb29mcyksXG4gICAgLi4uc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMoY2hhbGxlbmdlV2l0aFByb29mcyksXG4gIH07XG59XG5cbnR5cGUgcGFpbGxpZXJCbHVtUHJvb2Y8VD4gPSB7XG4gIHc6IFQ7XG4gIHg6IFRbXTtcbiAgejogVFtdO1xufTtcblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQmx1bVByb29mID0gcGFpbGxpZXJCbHVtUHJvb2Y8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFBhaWxsaWVyQmx1bVByb29mID0gcGFpbGxpZXJCbHVtUHJvb2Y8YmlnaW50PjtcblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgYW5kIGl0cyBwcm9vZiBmcm9tIGhleCBzdHJpbmdzIHRvIGJpZyBpbnRzLlxuICogQHBhcmFtIHBhaWxsaWVyQmx1bVByb29mXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQmx1bVByb29mKFxuICBwYWlsbGllckJsdW1Qcm9vZjogU2VyaWFsaXplZFBhaWxsaWVyQmx1bVByb29mXG4pOiBEZXNlcmlhbGl6ZWRQYWlsbGllckJsdW1Qcm9vZiB7XG4gIHJldHVybiB7XG4gICAgdzogaGV4VG9CaWdJbnQocGFpbGxpZXJCbHVtUHJvb2YudyksXG4gICAgeDogY29udmVydEhleEFyclRvQmlnSW50QXJyKHBhaWxsaWVyQmx1bVByb29mLngpLFxuICAgIHo6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihwYWlsbGllckJsdW1Qcm9vZi56KSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIGFuZCBpdHMgcHJvb2YgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gcGFpbGxpZXJCbHVtUHJvb2ZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQmx1bVByb29mKFxuICBwYWlsbGllckJsdW1Qcm9vZjogRGVzZXJpYWxpemVkUGFpbGxpZXJCbHVtUHJvb2Zcbik6IFNlcmlhbGl6ZWRQYWlsbGllckJsdW1Qcm9vZiB7XG4gIHJldHVybiB7XG4gICAgdzogYmlnSW50VG9IZXgocGFpbGxpZXJCbHVtUHJvb2YudywgNzY4KSxcbiAgICB4OiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIocGFpbGxpZXJCbHVtUHJvb2YueCwgNzY4KSxcbiAgICB6OiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIocGFpbGxpZXJCbHVtUHJvb2YueiwgNzY4KSxcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgUmF3UGFpbGxpZXJLZXkgPSB7XG4gIC8vIHB1YmxpYyBtb2R1bHVzXG4gIG46IGJpZ2ludDtcbiAgLy8gcHJpdmF0ZSBmaWVsZHNcbiAgbGFtYmRhOiBiaWdpbnQ7XG4gIG11OiBiaWdpbnQ7XG4gIHA6IGJpZ2ludDtcbiAgcTogYmlnaW50O1xufTtcblxuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkS2V5UGFpcldpdGhQYWlsbGllckJsdW1Qcm9vZiA9IERlc2VyaWFsaXplZFBhaWxsaWVyQmx1bVByb29mICYgUmF3UGFpbGxpZXJLZXk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUlNBTW9kdWx1cyB7XG4gIG46IGJpZ2ludDtcbiAgLy8gU29waGllIEdlcm1haW4gcHJpbWVzLlxuICBxMTogYmlnaW50O1xuICBxMjogYmlnaW50O1xufVxuXG4vLyBSYW5nZSBwcm9vZiB2YWx1ZXNcbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VQcm9vZiB7XG4gIHo6IGJpZ2ludDtcbiAgdTogYmlnaW50O1xuICB3OiBiaWdpbnQ7XG4gIHM6IGJpZ2ludDtcbiAgczE6IGJpZ2ludDtcbiAgczI6IGJpZ2ludDtcbn1cblxuLy8gUmFuZ2UgcHJvb2YgdmFsdWVzXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlUHJvb2ZXaXRoQ2hlY2sge1xuICB6OiBiaWdpbnQ7XG4gIHpwcm06IGJpZ2ludDtcbiAgdDogYmlnaW50O1xuICB2OiBiaWdpbnQ7XG4gIHc6IGJpZ2ludDtcbiAgczogYmlnaW50O1xuICBzMTogYmlnaW50O1xuICBzMjogYmlnaW50O1xuICB0MTogYmlnaW50O1xuICB0MjogYmlnaW50O1xuICB1OiBiaWdpbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWmtWUHJvb2Yge1xuICBBbHBoYTogYmlnaW50O1xuICB0OiBiaWdpbnQ7XG4gIHU6IGJpZ2ludDtcbn1cblxudHlwZSBub1NtYWxsRmFjdG9yc1Byb29mPFQ+ID0ge1xuICBQOiBUO1xuICBROiBUO1xuICBBOiBUO1xuICBCOiBUO1xuICBUOiBUO1xuICByaG86IFQ7XG4gIHoxOiBUO1xuICB6MjogVDtcbiAgdzE6IFQ7XG4gIHcyOiBUO1xuICB2OiBUO1xuICBub25jZTogVDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROb1NtYWxsRmFjdG9yc1Byb29mID0gbm9TbWFsbEZhY3RvcnNQcm9vZjxzdHJpbmc+O1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTm9TbWFsbEZhY3RvcnNQcm9vZiA9IG5vU21hbGxGYWN0b3JzUHJvb2Y8YmlnaW50PjtcblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBQaV5mYWMgcHJvb2YgZnJvbSBoZXggc3RyaW5ncyB0byBiaWcgaW50cy5cbiAqIEBwYXJhbSBub1NtYWxsRmFjdG9yc1Byb29mXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZU5vU21hbGxGYWN0b3JzUHJvb2YoXG4gIG5vU21hbGxGYWN0b3JzUHJvb2Y6IFNlcmlhbGl6ZWROb1NtYWxsRmFjdG9yc1Byb29mXG4pOiBEZXNlcmlhbGl6ZWROb1NtYWxsRmFjdG9yc1Byb29mIHtcbiAgcmV0dXJuIHtcbiAgICBQOiBoZXhUb1NpZ25lZEJpZ0ludChub1NtYWxsRmFjdG9yc1Byb29mLlApLFxuICAgIFE6IGhleFRvU2lnbmVkQmlnSW50KG5vU21hbGxGYWN0b3JzUHJvb2YuUSksXG4gICAgQTogaGV4VG9TaWduZWRCaWdJbnQobm9TbWFsbEZhY3RvcnNQcm9vZi5BKSxcbiAgICBCOiBoZXhUb1NpZ25lZEJpZ0ludChub1NtYWxsRmFjdG9yc1Byb29mLkIpLFxuICAgIFQ6IGhleFRvU2lnbmVkQmlnSW50KG5vU21hbGxGYWN0b3JzUHJvb2YuVCksXG4gICAgcmhvOiBoZXhUb1NpZ25lZEJpZ0ludChub1NtYWxsRmFjdG9yc1Byb29mLnJobyksXG4gICAgejE6IGhleFRvU2lnbmVkQmlnSW50KG5vU21hbGxGYWN0b3JzUHJvb2YuejEpLFxuICAgIHoyOiBoZXhUb1NpZ25lZEJpZ0ludChub1NtYWxsRmFjdG9yc1Byb29mLnoyKSxcbiAgICB3MTogaGV4VG9TaWduZWRCaWdJbnQobm9TbWFsbEZhY3RvcnNQcm9vZi53MSksXG4gICAgdzI6IGhleFRvU2lnbmVkQmlnSW50KG5vU21hbGxGYWN0b3JzUHJvb2YudzIpLFxuICAgIHY6IGhleFRvU2lnbmVkQmlnSW50KG5vU21hbGxGYWN0b3JzUHJvb2YudiksXG4gICAgbm9uY2U6IGhleFRvQmlnSW50KG5vU21hbGxGYWN0b3JzUHJvb2Yubm9uY2UpLFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBQaV5mYWMgcHJvb2YgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gbm9TbWFsbEZhY3RvcnNQcm9vZlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplTm9TbWFsbEZhY3RvcnNQcm9vZihcbiAgbm9TbWFsbEZhY3RvcnNQcm9vZjogRGVzZXJpYWxpemVkTm9TbWFsbEZhY3RvcnNQcm9vZlxuKTogU2VyaWFsaXplZE5vU21hbGxGYWN0b3JzUHJvb2Yge1xuICByZXR1cm4ge1xuICAgIFA6IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YuUCwgMiAqICgxICsgMzg0KSksXG4gICAgUTogc2lnbmVkQmlnSW50VG9IZXgobm9TbWFsbEZhY3RvcnNQcm9vZi5RLCAyICogKDEgKyAzODQpKSxcbiAgICBBOiBzaWduZWRCaWdJbnRUb0hleChub1NtYWxsRmFjdG9yc1Byb29mLkEsIDIgKiAoMSArIDM4NCkpLFxuICAgIEI6IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YuQiwgMiAqICgxICsgMzg0KSksXG4gICAgVDogc2lnbmVkQmlnSW50VG9IZXgobm9TbWFsbEZhY3RvcnNQcm9vZi5ULCAyICogKDEgKyAzODQpKSxcbiAgICByaG86IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YucmhvLCAyICogKDIgKiAzODQgKyAyNTYgLyA4KSksXG4gICAgejE6IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YuejEsIDIgKiAoMSArIDM4NCAvIDIgKyAoMjU2ICsgMiAqIDI1NikgLyA4KSksXG4gICAgejI6IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YuejIsIDIgKiAoMSArIDM4NCAvIDIgKyAoMjU2ICsgMiAqIDI1NikgLyA4KSksXG4gICAgdzE6IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YudzEsIDIgKiAoMSArICgyNTYgKyAyICogMjU2KSAvIDgpKSxcbiAgICB3Mjogc2lnbmVkQmlnSW50VG9IZXgobm9TbWFsbEZhY3RvcnNQcm9vZi53MiwgMiAqICgxICsgKDI1NiArIDIgKiAyNTYpIC8gOCkpLFxuICAgIHY6IHNpZ25lZEJpZ0ludFRvSGV4KG5vU21hbGxGYWN0b3JzUHJvb2YudiwgMiAqICgxICsgMzg0ICogMiArICgyNTYgKyAyICogMjU2KSAvIDgpKSxcbiAgICBub25jZTogYmlnSW50VG9IZXgobm9TbWFsbEZhY3RvcnNQcm9vZi5ub25jZSwgMiAqIDMzKSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- /// <reference types="node" />
2
- import { BaseCurve as Curve } from '../../curves';
3
- import { ZkVProof } from './types';
4
- /**
5
- * Create a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
6
- * @param V The curve point V.
7
- * @param s The s that multiplies R.
8
- * @param l The l that multiplies the curve genreator G.
9
- * @param R The curve point R shared by all participants.
10
- * @param curve The elliptic curve.
11
- * @param additionalCtx Additional contextual information to associate with the proof.
12
- * @returns The created proof.
13
- */
14
- export declare function createZkVProof(V: bigint, s: bigint, l: bigint, R: bigint, curve: Curve, additionalCtx?: Buffer): ZkVProof;
15
- /**
16
- * Verify a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
17
- * @param V The curve point V.
18
- * @param proof The ZK proof.
19
- * @param R The curve point R shared by all participants.
20
- * @param curve The elliptic curve.
21
- * @param additionalCtx Additional contextual information that is supposed to associate with the proof.
22
- * @returns True if the proof checks out.
23
- */
24
- export declare function verifyZkVProof(V: bigint, proof: ZkVProof, R: bigint, curve: Curve, additionalCtx?: Buffer): boolean;
25
- //# sourceMappingURL=zkVProof.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zkVProof.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/zkVProof.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,KAAK,EACZ,aAAa,GAAE,MAAwB,GACtC,QAAQ,CAeV;AAyBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,QAAQ,EACf,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,KAAK,EACZ,aAAa,GAAE,MAAwB,GACtC,OAAO,CAOT"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyZkVProof = exports.createZkVProof = void 0;
4
- /**
5
- * Zero Knowledge Proof of knowledge of the s and l that are behind the public value V = sR + lG.
6
- * The V value is calculated in step 5A and the proof is created in step 5B of the GG18 signing protocol.
7
- * @see {@link https://eprint.iacr.org/2019/114.pdf} section 4.3 for reference.
8
- */
9
- const crypto_1 = require("crypto");
10
- const util_1 = require("../../util");
11
- /**
12
- * Create a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
13
- * @param V The curve point V.
14
- * @param s The s that multiplies R.
15
- * @param l The l that multiplies the curve genreator G.
16
- * @param R The curve point R shared by all participants.
17
- * @param curve The elliptic curve.
18
- * @param additionalCtx Additional contextual information to associate with the proof.
19
- * @returns The created proof.
20
- */
21
- function createZkVProof(V, s, l, R, curve, additionalCtx = Buffer.from('')) {
22
- const a = curve.scalarRandom();
23
- const b = curve.scalarRandom();
24
- const Alpha = curve.pointAdd(curve.pointMultiply(R, a), curve.basePointMult(b));
25
- const c = nonInteractiveChallenge(V, R, Alpha, curve, additionalCtx);
26
- const t = curve.scalarAdd(a, curve.scalarMult(c, s));
27
- const u = curve.scalarAdd(b, curve.scalarMult(c, l));
28
- return {
29
- Alpha: Alpha,
30
- t: t,
31
- u: u,
32
- };
33
- }
34
- exports.createZkVProof = createZkVProof;
35
- /**
36
- * Calculate challenge for NIZK proof of V using Fiat-Shamir transform.
37
- *
38
- * @param V The point to be proven.
39
- * @param R The point R shared by all participants in the ECDSA signing protocol.
40
- * @param Alpha The point/public value corresponding to the random scalar values a and b chosen by the prover.
41
- * @param curve The elliptic curve.
42
- * @param additionalCtx Additional contextual information to associate with the proof.
43
- * @returns The calculated challenge.
44
- */
45
- function nonInteractiveChallenge(V, R, Alpha, curve, additionalCtx) {
46
- const G = curve.basePointMult(BigInt(1));
47
- const hash = crypto_1.createHash('sha256');
48
- hash.update(util_1.bigIntToBufferBE(G, curve.pointBytes));
49
- hash.update(util_1.bigIntToBufferBE(R, curve.pointBytes));
50
- hash.update(util_1.bigIntToBufferBE(V, curve.pointBytes));
51
- hash.update(util_1.bigIntToBufferBE(Alpha, curve.pointBytes));
52
- hash.update(additionalCtx);
53
- return util_1.bigIntFromBufferBE(hash.digest());
54
- }
55
- /**
56
- * Verify a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
57
- * @param V The curve point V.
58
- * @param proof The ZK proof.
59
- * @param R The curve point R shared by all participants.
60
- * @param curve The elliptic curve.
61
- * @param additionalCtx Additional contextual information that is supposed to associate with the proof.
62
- * @returns True if the proof checks out.
63
- */
64
- function verifyZkVProof(V, proof, R, curve, additionalCtx = Buffer.from('')) {
65
- const c = nonInteractiveChallenge(V, R, proof.Alpha, curve, additionalCtx);
66
- const lhs = curve.pointAdd(curve.pointMultiply(R, proof.t), curve.basePointMult(proof.u));
67
- const rhs = curve.pointAdd(proof.Alpha, curve.pointMultiply(V, curve.scalarReduce(c)));
68
- return lhs === rhs;
69
- }
70
- exports.verifyZkVProof = verifyZkVProof;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtWUHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3prVlByb29mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxtQ0FBb0M7QUFHcEMscUNBQWtFO0FBRWxFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNULEtBQVksRUFDWixnQkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdkMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRixNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFckUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxLQUFLLEVBQUUsS0FBSztRQUNaLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDTCxDQUFDO0FBQ0osQ0FBQztBQXRCRCx3Q0FzQkM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLEtBQVksRUFBRSxhQUFxQjtJQUN2RyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sSUFBSSxHQUFHLG1CQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUzQixPQUFPLHlCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULEtBQWUsRUFDZixDQUFTLEVBQ1QsS0FBWSxFQUNaLGdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZGLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQztBQUNyQixDQUFDO0FBYkQsd0NBYUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFplcm8gS25vd2xlZGdlIFByb29mIG9mIGtub3dsZWRnZSBvZiB0aGUgcyBhbmQgbCB0aGF0IGFyZSBiZWhpbmQgdGhlIHB1YmxpYyB2YWx1ZSBWID0gc1IgKyBsRy5cbiAqIFRoZSBWIHZhbHVlIGlzIGNhbGN1bGF0ZWQgaW4gc3RlcCA1QSBhbmQgdGhlIHByb29mIGlzIGNyZWF0ZWQgaW4gc3RlcCA1QiBvZiB0aGUgR0cxOCBzaWduaW5nIHByb3RvY29sLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAxOS8xMTQucGRmfSBzZWN0aW9uIDQuMyBmb3IgcmVmZXJlbmNlLlxuICovXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEJhc2VDdXJ2ZSBhcyBDdXJ2ZSB9IGZyb20gJy4uLy4uL2N1cnZlcyc7XG5pbXBvcnQgeyBaa1ZQcm9vZiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckJFLCBiaWdJbnRUb0J1ZmZlckJFIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8qKlxuICogQ3JlYXRlIGEgWksgUHJvb2Ygb2Yga25vd2xlZGdlIG9mIHRoZSBzIGFuZCBsIHRoYXQgYXJlIGJlaGluZCB0aGUgcHVibGljIHZhbHVlIFYgPSBzUiArIGxHLlxuICogQHBhcmFtIFYgVGhlIGN1cnZlIHBvaW50IFYuXG4gKiBAcGFyYW0gcyBUaGUgcyB0aGF0IG11bHRpcGxpZXMgUi5cbiAqIEBwYXJhbSBsIFRoZSBsIHRoYXQgbXVsdGlwbGllcyB0aGUgY3VydmUgZ2VucmVhdG9yIEcuXG4gKiBAcGFyYW0gUiBUaGUgY3VydmUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgcHJvb2YuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVaa1ZQcm9vZihcbiAgVjogYmlnaW50LFxuICBzOiBiaWdpbnQsXG4gIGw6IGJpZ2ludCxcbiAgUjogYmlnaW50LFxuICBjdXJ2ZTogQ3VydmUsXG4gIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCcnKVxuKTogWmtWUHJvb2Yge1xuICBjb25zdCBhID0gY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gIGNvbnN0IGIgPSBjdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgY29uc3QgQWxwaGEgPSBjdXJ2ZS5wb2ludEFkZChjdXJ2ZS5wb2ludE11bHRpcGx5KFIsIGEpLCBjdXJ2ZS5iYXNlUG9pbnRNdWx0KGIpKTtcblxuICBjb25zdCBjID0gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoViwgUiwgQWxwaGEsIGN1cnZlLCBhZGRpdGlvbmFsQ3R4KTtcblxuICBjb25zdCB0ID0gY3VydmUuc2NhbGFyQWRkKGEsIGN1cnZlLnNjYWxhck11bHQoYywgcykpO1xuICBjb25zdCB1ID0gY3VydmUuc2NhbGFyQWRkKGIsIGN1cnZlLnNjYWxhck11bHQoYywgbCkpO1xuXG4gIHJldHVybiB7XG4gICAgQWxwaGE6IEFscGhhLFxuICAgIHQ6IHQsXG4gICAgdTogdSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY2hhbGxlbmdlIGZvciBOSVpLIHByb29mIG9mIFYgdXNpbmcgRmlhdC1TaGFtaXIgdHJhbnNmb3JtLlxuICpcbiAqIEBwYXJhbSBWIFRoZSBwb2ludCB0byBiZSBwcm92ZW4uXG4gKiBAcGFyYW0gUiBUaGUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cyBpbiB0aGUgRUNEU0Egc2lnbmluZyBwcm90b2NvbC5cbiAqIEBwYXJhbSBBbHBoYSBUaGUgcG9pbnQvcHVibGljIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJhbmRvbSBzY2FsYXIgdmFsdWVzIGEgYW5kIGIgY2hvc2VuIGJ5IHRoZSBwcm92ZXIuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRoZSBjYWxjdWxhdGVkIGNoYWxsZW5nZS5cbiAqL1xuZnVuY3Rpb24gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoVjogYmlnaW50LCBSOiBiaWdpbnQsIEFscGhhOiBiaWdpbnQsIGN1cnZlOiBDdXJ2ZSwgYWRkaXRpb25hbEN0eDogQnVmZmVyKTogYmlnaW50IHtcbiAgY29uc3QgRyA9IGN1cnZlLmJhc2VQb2ludE11bHQoQmlnSW50KDEpKTtcblxuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoRywgY3VydmUucG9pbnRCeXRlcykpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKFIsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShWLCBjdXJ2ZS5wb2ludEJ5dGVzKSk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoQWxwaGEsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYWRkaXRpb25hbEN0eCk7XG5cbiAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJCRShoYXNoLmRpZ2VzdCgpKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgYSBaSyBQcm9vZiBvZiBrbm93bGVkZ2Ugb2YgdGhlIHMgYW5kIGwgdGhhdCBhcmUgYmVoaW5kIHRoZSBwdWJsaWMgdmFsdWUgViA9IHNSICsgbEcuXG4gKiBAcGFyYW0gViBUaGUgY3VydmUgcG9pbnQgVi5cbiAqIEBwYXJhbSBwcm9vZiBUaGUgWksgcHJvb2YuXG4gKiBAcGFyYW0gUiBUaGUgY3VydmUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdGhhdCBpcyBzdXBwb3NlZCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBwcm9vZiBjaGVja3Mgb3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5WmtWUHJvb2YoXG4gIFY6IGJpZ2ludCxcbiAgcHJvb2Y6IFprVlByb29mLFxuICBSOiBiaWdpbnQsXG4gIGN1cnZlOiBDdXJ2ZSxcbiAgYWRkaXRpb25hbEN0eDogQnVmZmVyID0gQnVmZmVyLmZyb20oJycpXG4pOiBib29sZWFuIHtcbiAgY29uc3QgYyA9IG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFYsIFIsIHByb29mLkFscGhhLCBjdXJ2ZSwgYWRkaXRpb25hbEN0eCk7XG5cbiAgY29uc3QgbGhzID0gY3VydmUucG9pbnRBZGQoY3VydmUucG9pbnRNdWx0aXBseShSLCBwcm9vZi50KSwgY3VydmUuYmFzZVBvaW50TXVsdChwcm9vZi51KSk7XG4gIGNvbnN0IHJocyA9IGN1cnZlLnBvaW50QWRkKHByb29mLkFscGhhLCBjdXJ2ZS5wb2ludE11bHRpcGx5KFYsIGN1cnZlLnNjYWxhclJlZHVjZShjKSkpO1xuXG4gIHJldHVybiBsaHMgPT09IHJocztcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './ecdsa';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tss/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./ecdsa"), exports);
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZWNkc2EnO1xuIl19
@@ -1,14 +0,0 @@
1
- /// <reference types="node" />
2
- export interface HashCommitDecommit {
3
- commitment: Buffer;
4
- decommitment: HashDecommitment;
5
- }
6
- export interface HashDecommitment {
7
- secret: Buffer;
8
- blindingFactor: Buffer;
9
- }
10
- export interface SchnorrProof {
11
- vPoint: bigint;
12
- r: bigint;
13
- }
14
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;CACX"}
package/dist/src/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSGFzaENvbW1pdERlY29tbWl0IHtcbiAgY29tbWl0bWVudDogQnVmZmVyO1xuICBkZWNvbW1pdG1lbnQ6IEhhc2hEZWNvbW1pdG1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGFzaERlY29tbWl0bWVudCB7XG4gIHNlY3JldDogQnVmZmVyO1xuICBibGluZGluZ0ZhY3RvcjogQnVmZmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaG5vcnJQcm9vZiB7XG4gIHZQb2ludDogYmlnaW50O1xuICByOiBiaWdpbnQ7XG59XG4iXX0=
@@ -1,61 +0,0 @@
1
- /// <reference types="node" />
2
- import { PublicKey } from 'paillier-bigint';
3
- /**
4
- * Returns a bigint array from a hex string array
5
- * @param values
6
- */
7
- export declare function convertHexArrToBigIntArr(values: string[]): bigint[];
8
- /**
9
- * Returns a hex string array from a bigint array
10
- * @param values
11
- * @param hexLength - length to pad each big int number too
12
- */
13
- export declare function convertBigIntArrToHexArr(values: bigint[], hexLength?: number): string[];
14
- export declare function hexToBigInt(hex: string): bigint;
15
- export declare function hexToSignedBigInt(hex: string): bigint;
16
- /**
17
- * Returns an hex string of the given bigint
18
- *
19
- * @param {bigint} bigint - the bigint to be converted to hex
20
- * @param hexLength
21
- * @returns {string} - the hex value
22
- */
23
- export declare function bigIntToHex(bigint: bigint, hexLength?: number): string;
24
- export declare function signedBigIntToHex(bigint: bigint, hexLength?: number): string;
25
- export declare function bigIntToBufferLE(n: bigint, minBytes?: number): Buffer;
26
- export declare function bigIntFromBufferLE(buf: Buffer): bigint;
27
- export declare function bigIntToBufferBE(n: bigint, minBytes?: number): Buffer;
28
- export declare function bigIntFromBufferBE(buf: Buffer): bigint;
29
- export declare function bigIntFromU8ABE(buf: Uint8Array): bigint;
30
- export declare function clamp(u: bigint): bigint;
31
- /**
32
- * Function get paillier public key simple varient
33
- * @param {bigint} n
34
- * @returns {bigint}
35
- */
36
- export declare function getPaillierPublicKey(n: bigint): PublicKey;
37
- /**
38
- * Generate a random positive integer co-prime to x
39
- * @param x
40
- * @returns {Promise<bigint>}
41
- */
42
- export declare function randomPositiveCoPrimeTo(x: bigint): Promise<bigint>;
43
- /**
44
- * Generate a random positive integer coprime less than x with the same bit depth.
45
- * @param x
46
- * @returns {Promise<bigint>}
47
- */
48
- export declare function randomPositiveCoPrimeLessThan(x: bigint): Promise<bigint>;
49
- /**
50
- * Generate a random number of a given bitlength
51
- * @param bitlength
52
- * @returns {Promise<bigint>}
53
- */
54
- export declare function randomBigInt(bitlength: number): Promise<bigint>;
55
- /**
56
- * @param seed - used to construct derivation path deterministically
57
- * @param isMaster - if set, path starts with prefix `m/`
58
- * @return path `(m/)/999999/a/b` where `a` and `b` are 7-byte pseudorandom numbers based on seed
59
- */
60
- export declare function getDerivationPath(seed: string, isMaster?: boolean): string;
61
- //# sourceMappingURL=util.d.ts.map