@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.
- package/CHANGELOG.md +519 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +25 -6
- package/dist/src/curves/constant.d.ts +0 -2
- package/dist/src/curves/constant.d.ts.map +0 -1
- package/dist/src/curves/constant.js +0 -6
- package/dist/src/curves/ed25519.d.ts +0 -21
- package/dist/src/curves/ed25519.d.ts.map +0 -1
- package/dist/src/curves/ed25519.js +0 -72
- package/dist/src/curves/ed25519Bip32HdTree.d.ts +0 -10
- package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +0 -1
- package/dist/src/curves/ed25519Bip32HdTree.js +0 -85
- package/dist/src/curves/index.d.ts +0 -8
- package/dist/src/curves/index.d.ts.map +0 -1
- package/dist/src/curves/index.js +0 -20
- package/dist/src/curves/secp256k1.d.ts +0 -19
- package/dist/src/curves/secp256k1.d.ts.map +0 -1
- package/dist/src/curves/secp256k1.js +0 -77
- package/dist/src/curves/secp256k1Bip32HdTree.d.ts +0 -8
- package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +0 -1
- package/dist/src/curves/secp256k1Bip32HdTree.js +0 -54
- package/dist/src/curves/types.d.ts +0 -36
- package/dist/src/curves/types.d.ts.map +0 -1
- package/dist/src/curves/types.js +0 -3
- package/dist/src/curves/util.d.ts +0 -2
- package/dist/src/curves/util.d.ts.map +0 -1
- package/dist/src/curves/util.js +0 -11
- package/dist/src/hashCommitment.d.ts +0 -17
- package/dist/src/hashCommitment.d.ts.map +0 -1
- package/dist/src/hashCommitment.js +0 -45
- package/dist/src/index.d.ts +0 -9
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -34
- package/dist/src/openssl/index.d.ts +0 -2
- package/dist/src/openssl/index.d.ts.map +0 -1
- package/dist/src/openssl/index.js +0 -14
- package/dist/src/openssl/openssl.d.ts +0 -9
- package/dist/src/openssl/openssl.d.ts.map +0 -1
- package/dist/src/openssl/openssl.js +0 -45
- package/dist/src/openssl/opensslbytes.d.ts +0 -4
- package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
- package/dist/src/openssl/opensslbytes.js +0 -20
- package/dist/src/schnorrProof.d.ts +0 -22
- package/dist/src/schnorrProof.d.ts.map +0 -1
- package/dist/src/schnorrProof.js +0 -62
- package/dist/src/shamir/index.d.ts +0 -3
- package/dist/src/shamir/index.d.ts.map +0 -1
- package/dist/src/shamir/index.js +0 -15
- package/dist/src/shamir/shamir.d.ts +0 -38
- package/dist/src/shamir/shamir.d.ts.map +0 -1
- package/dist/src/shamir/shamir.js +0 -136
- package/dist/src/shamir/types.d.ts +0 -5
- package/dist/src/shamir/types.d.ts.map +0 -1
- package/dist/src/shamir/types.js +0 -3
- package/dist/src/tss/ecdsa/generatePaillierKey.d.ts +0 -6
- package/dist/src/tss/ecdsa/generatePaillierKey.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/generatePaillierKey.js +0 -52
- package/dist/src/tss/ecdsa/index.d.ts +0 -8
- package/dist/src/tss/ecdsa/index.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/index.js +0 -33
- package/dist/src/tss/ecdsa/noSmallFactorsProof.d.ts +0 -24
- package/dist/src/tss/ecdsa/noSmallFactorsProof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/noSmallFactorsProof.js +0 -157
- package/dist/src/tss/ecdsa/paillierBlumProof.d.ts +0 -16
- package/dist/src/tss/ecdsa/paillierBlumProof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/paillierBlumProof.js +0 -148
- package/dist/src/tss/ecdsa/paillierProof.d.ts +0 -24
- package/dist/src/tss/ecdsa/paillierProof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/paillierProof.js +0 -86
- package/dist/src/tss/ecdsa/primes.d.ts +0 -2
- package/dist/src/tss/ecdsa/primes.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/primes.js +0 -1846
- package/dist/src/tss/ecdsa/rangeProof.d.ts +0 -80
- package/dist/src/tss/ecdsa/rangeProof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/rangeProof.js +0 -404
- package/dist/src/tss/ecdsa/types.d.ts +0 -182
- package/dist/src/tss/ecdsa/types.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/types.js +0 -197
- package/dist/src/tss/ecdsa/zkVProof.d.ts +0 -25
- package/dist/src/tss/ecdsa/zkVProof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/zkVProof.js +0 -71
- package/dist/src/tss/index.d.ts +0 -2
- package/dist/src/tss/index.d.ts.map +0 -1
- package/dist/src/tss/index.js +0 -14
- package/dist/src/types.d.ts +0 -14
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -3
- package/dist/src/util.d.ts +0 -61
- package/dist/src/util.d.ts.map +0 -1
- 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==
|
package/dist/src/tss/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tss/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
package/dist/src/tss/index.js
DELETED
|
@@ -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
|
package/dist/src/types.d.ts
DELETED
|
@@ -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
|
package/dist/src/types.d.ts.map
DELETED
|
@@ -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=
|
package/dist/src/util.d.ts
DELETED
|
@@ -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
|