@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.361 → 8.2.1-alpha.363
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/dist/src/curves/constant.d.ts +2 -0
- package/dist/src/curves/constant.d.ts.map +1 -0
- package/dist/src/curves/constant.js +6 -0
- package/dist/src/curves/ed25519.d.ts +20 -0
- package/dist/src/curves/ed25519.d.ts.map +1 -0
- package/dist/src/curves/ed25519.js +72 -0
- package/dist/src/curves/ed25519Bip32HdTree.d.ts +10 -0
- package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +1 -0
- package/dist/src/curves/ed25519Bip32HdTree.js +85 -0
- package/dist/src/curves/index.d.ts +8 -0
- package/dist/src/curves/index.d.ts.map +1 -0
- package/dist/src/curves/index.js +24 -0
- package/dist/src/curves/secp256k1.d.ts +18 -0
- package/dist/src/curves/secp256k1.d.ts.map +1 -0
- package/dist/src/curves/secp256k1.js +61 -0
- package/dist/src/curves/secp256k1Bip32HdTree.d.ts +8 -0
- package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +1 -0
- package/dist/src/curves/secp256k1Bip32HdTree.js +54 -0
- package/dist/src/curves/types.d.ts +35 -0
- package/dist/src/curves/types.d.ts.map +1 -0
- package/dist/src/curves/types.js +3 -0
- package/dist/src/curves/util.d.ts +4 -0
- package/dist/src/curves/util.d.ts.map +1 -0
- package/dist/src/curves/util.js +42 -0
- package/dist/src/hashCommitment.d.ts +16 -0
- package/dist/src/hashCommitment.d.ts.map +1 -0
- package/dist/src/hashCommitment.js +44 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +48 -0
- package/dist/src/openssl/index.d.ts +2 -0
- package/dist/src/openssl/index.d.ts.map +1 -0
- package/dist/src/openssl/index.js +18 -0
- package/dist/src/openssl/openssl.d.ts +8 -0
- package/dist/src/openssl/openssl.d.ts.map +1 -0
- package/dist/src/openssl/openssl.js +37 -0
- package/dist/src/safePrime.d.ts +3 -0
- package/dist/src/safePrime.d.ts.map +1 -0
- package/dist/src/safePrime.js +19 -0
- package/dist/src/schnorrProof.d.ts +21 -0
- package/dist/src/schnorrProof.d.ts.map +1 -0
- package/dist/src/schnorrProof.js +61 -0
- package/dist/src/shamir/index.d.ts +3 -0
- package/dist/src/shamir/index.d.ts.map +1 -0
- package/dist/src/shamir/index.js +19 -0
- package/dist/src/shamir/shamir.d.ts +38 -0
- package/dist/src/shamir/shamir.d.ts.map +1 -0
- package/dist/src/shamir/shamir.js +136 -0
- package/dist/src/shamir/types.d.ts +5 -0
- package/dist/src/shamir/types.d.ts.map +1 -0
- package/dist/src/shamir/types.js +3 -0
- package/dist/src/tss/ecdsa/index.d.ts +6 -0
- package/dist/src/tss/ecdsa/index.d.ts.map +1 -0
- package/dist/src/tss/ecdsa/index.js +42 -0
- package/dist/src/tss/ecdsa/paillierproof.d.ts +24 -0
- package/dist/src/tss/ecdsa/paillierproof.d.ts.map +1 -0
- package/dist/src/tss/ecdsa/paillierproof.js +86 -0
- package/dist/src/tss/ecdsa/primes.d.ts +2 -0
- package/dist/src/tss/ecdsa/primes.d.ts.map +1 -0
- package/dist/src/tss/ecdsa/primes.js +1846 -0
- package/dist/src/tss/ecdsa/rangeproof.d.ts +79 -0
- package/dist/src/tss/ecdsa/rangeproof.d.ts.map +1 -0
- package/dist/src/tss/ecdsa/rangeproof.js +394 -0
- package/dist/src/tss/ecdsa/types.d.ts +142 -0
- package/dist/src/tss/ecdsa/types.d.ts.map +1 -0
- package/dist/src/tss/ecdsa/types.js +130 -0
- package/dist/src/tss/ecdsa/zkVProof.d.ts +24 -0
- package/dist/src/tss/ecdsa/zkVProof.d.ts.map +1 -0
- package/dist/src/tss/ecdsa/zkVProof.js +70 -0
- package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts +42 -0
- package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts.map +1 -0
- package/dist/src/tss/ecdsa-dkls/commsLayer.js +235 -0
- package/dist/src/tss/ecdsa-dkls/dkg.d.ts +57 -0
- package/dist/src/tss/ecdsa-dkls/dkg.d.ts.map +1 -0
- package/dist/src/tss/ecdsa-dkls/dkg.js +321 -0
- package/dist/src/tss/ecdsa-dkls/dsg.d.ts +47 -0
- package/dist/src/tss/ecdsa-dkls/dsg.d.ts.map +1 -0
- package/dist/src/tss/ecdsa-dkls/dsg.js +266 -0
- package/dist/src/tss/ecdsa-dkls/index.d.ts +6 -0
- package/dist/src/tss/ecdsa-dkls/index.d.ts.map +1 -0
- package/dist/src/tss/ecdsa-dkls/index.js +42 -0
- package/dist/src/tss/ecdsa-dkls/types.d.ts +118 -0
- package/dist/src/tss/ecdsa-dkls/types.d.ts.map +1 -0
- package/dist/src/tss/ecdsa-dkls/types.js +165 -0
- package/dist/src/tss/ecdsa-dkls/util.d.ts +26 -0
- package/dist/src/tss/ecdsa-dkls/util.d.ts.map +1 -0
- package/dist/src/tss/ecdsa-dkls/util.js +276 -0
- package/dist/src/tss/index.d.ts +3 -0
- package/dist/src/tss/index.d.ts.map +1 -0
- package/dist/src/tss/index.js +19 -0
- package/dist/src/types.d.ts +13 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/util.d.ts +58 -0
- package/dist/src/util.d.ts.map +1 -0
- package/dist/src/util.js +164 -0
- package/package.json +6 -3
- package/.eslintignore +0 -5
- package/CHANGELOG.md +0 -667
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { SchnorrProof } from '../../types';
|
|
2
|
+
export type XShare = {
|
|
3
|
+
i: number;
|
|
4
|
+
l: string;
|
|
5
|
+
m: string;
|
|
6
|
+
n: string;
|
|
7
|
+
y: string;
|
|
8
|
+
x: string;
|
|
9
|
+
schnorrProofX: SchnorrProof;
|
|
10
|
+
chaincode: string;
|
|
11
|
+
};
|
|
12
|
+
interface NtildeProof<T> {
|
|
13
|
+
alpha: T[];
|
|
14
|
+
t: T[];
|
|
15
|
+
}
|
|
16
|
+
interface NtildeProofs<T> {
|
|
17
|
+
h1WrtH2: NtildeProof<T>;
|
|
18
|
+
h2WrtH1: NtildeProof<T>;
|
|
19
|
+
}
|
|
20
|
+
interface Ntilde<T> {
|
|
21
|
+
ntilde: T;
|
|
22
|
+
h1: T;
|
|
23
|
+
h2: T;
|
|
24
|
+
}
|
|
25
|
+
export type DeserializedNtilde = Ntilde<bigint>;
|
|
26
|
+
export type SerializedNtilde = Ntilde<string>;
|
|
27
|
+
export type DeserializedNtildeProof = NtildeProof<bigint>;
|
|
28
|
+
export type SerializedNtildeProof = NtildeProof<string>;
|
|
29
|
+
export type DeserializedNtildeProofs = NtildeProofs<bigint>;
|
|
30
|
+
export type SerializedNtildeProofs = NtildeProofs<string>;
|
|
31
|
+
/**
|
|
32
|
+
* The ntilde proofs are done non-interactively,
|
|
33
|
+
* therefore a party generates both ntilde, h1, h2 and the proofs without
|
|
34
|
+
* interaction with the other party.
|
|
35
|
+
*/
|
|
36
|
+
export type DeserializedNtildeWithProofs = DeserializedNtilde & {
|
|
37
|
+
ntildeProof: DeserializedNtildeProofs;
|
|
38
|
+
};
|
|
39
|
+
export type SerializedNtildeWithProofs = SerializedNtilde & {
|
|
40
|
+
ntildeProof: SerializedNtildeProofs;
|
|
41
|
+
};
|
|
42
|
+
export type SerializedEcdsaChallenges = SerializedNtilde & SerializedPaillierChallenge;
|
|
43
|
+
/**
|
|
44
|
+
* Deserializes a challenge from hex strings to bigint
|
|
45
|
+
* @param challenge
|
|
46
|
+
*/
|
|
47
|
+
export declare function deserializeNtilde(challenge: SerializedNtilde): DeserializedNtilde;
|
|
48
|
+
/**
|
|
49
|
+
* Serializes a challenge from big int to hex strings.
|
|
50
|
+
* @param challenge
|
|
51
|
+
*/
|
|
52
|
+
export declare function serializeNtilde(challenge: DeserializedNtilde): SerializedNtilde;
|
|
53
|
+
/**
|
|
54
|
+
* Deserializes a challenge and it's proofs from hex strings to bigint
|
|
55
|
+
* @param challenge
|
|
56
|
+
*/
|
|
57
|
+
export declare function deserializeNtildeWithProofs(challenge: SerializedNtildeWithProofs): DeserializedNtildeWithProofs;
|
|
58
|
+
/**
|
|
59
|
+
* Serializes a challenge and it's proofs from big int to hex strings.
|
|
60
|
+
* @param challenge
|
|
61
|
+
*/
|
|
62
|
+
export declare function serializeNtildeWithProofs(challenge: DeserializedNtildeWithProofs): SerializedNtildeWithProofs;
|
|
63
|
+
type PaillierChallenge<T> = {
|
|
64
|
+
p: T[];
|
|
65
|
+
};
|
|
66
|
+
type PaillierChallengeProof<T> = {
|
|
67
|
+
sigma: T[];
|
|
68
|
+
};
|
|
69
|
+
export type DeserializedPaillierChallenge = PaillierChallenge<bigint>;
|
|
70
|
+
export type SerializedPaillierChallenge = PaillierChallenge<string>;
|
|
71
|
+
export type DeserializedPaillierChallengeProofs = PaillierChallengeProof<bigint>;
|
|
72
|
+
export type SerializedPaillierChallengeProofs = PaillierChallengeProof<string>;
|
|
73
|
+
/**
|
|
74
|
+
* The paillier proofs are done interactively between two parties.
|
|
75
|
+
* If party A is completing a paillier proof $sigma$ with party B, then $p$ refers to
|
|
76
|
+
* a challenge given to A by B, and $sigma$ represents the proof to the challenge
|
|
77
|
+
*/
|
|
78
|
+
export type DeserializedPaillierChallengeWithProofs = DeserializedPaillierChallenge & DeserializedPaillierChallengeProofs;
|
|
79
|
+
export type SerializedPaillierChallengeWithProofs = SerializedPaillierChallenge & SerializedPaillierChallengeProofs;
|
|
80
|
+
/**
|
|
81
|
+
* Deserializes a paillier challenge to hex strings.
|
|
82
|
+
* @param challenge
|
|
83
|
+
*/
|
|
84
|
+
export declare function deserializePaillierChallenge(challenge: SerializedPaillierChallenge): DeserializedPaillierChallenge;
|
|
85
|
+
/**
|
|
86
|
+
* Deserializes a paillier challenge proof to hex strings.
|
|
87
|
+
* @param challenge
|
|
88
|
+
*/
|
|
89
|
+
export declare function deserializePaillierChallengeProofs(challenge: SerializedPaillierChallengeProofs): DeserializedPaillierChallengeProofs;
|
|
90
|
+
/**
|
|
91
|
+
* Deserializes a paillier challenge and its proof to hex strings.
|
|
92
|
+
* @param challengeWithProofs
|
|
93
|
+
*/
|
|
94
|
+
export declare function deserializePaillierChallengeWithProofs(challengeWithProofs: SerializedPaillierChallengeWithProofs): DeserializedPaillierChallengeWithProofs;
|
|
95
|
+
/**
|
|
96
|
+
* Serializes a paillier challenge to hex strings.
|
|
97
|
+
* @param challenge
|
|
98
|
+
*/
|
|
99
|
+
export declare function serializePaillierChallenge(challenge: DeserializedPaillierChallenge): SerializedPaillierChallenge;
|
|
100
|
+
/**
|
|
101
|
+
* Serializes a paillier challenge proof to hex strings.
|
|
102
|
+
* @param challenge
|
|
103
|
+
*/
|
|
104
|
+
export declare function serializePaillierChallengeProofs(challenge: DeserializedPaillierChallengeProofs): SerializedPaillierChallengeProofs;
|
|
105
|
+
/**
|
|
106
|
+
* Serializes a paillier challenge and its proof to hex strings.
|
|
107
|
+
* @param challengeWithProofs
|
|
108
|
+
*/
|
|
109
|
+
export declare function serializePaillierChallengeWithProofs(challengeWithProofs: DeserializedPaillierChallengeWithProofs): SerializedPaillierChallengeWithProofs;
|
|
110
|
+
export interface RSAModulus {
|
|
111
|
+
n: bigint;
|
|
112
|
+
q1: bigint;
|
|
113
|
+
q2: bigint;
|
|
114
|
+
}
|
|
115
|
+
export interface RangeProof {
|
|
116
|
+
z: bigint;
|
|
117
|
+
u: bigint;
|
|
118
|
+
w: bigint;
|
|
119
|
+
s: bigint;
|
|
120
|
+
s1: bigint;
|
|
121
|
+
s2: bigint;
|
|
122
|
+
}
|
|
123
|
+
export interface RangeProofWithCheck {
|
|
124
|
+
z: bigint;
|
|
125
|
+
zprm: bigint;
|
|
126
|
+
t: bigint;
|
|
127
|
+
v: bigint;
|
|
128
|
+
w: bigint;
|
|
129
|
+
s: bigint;
|
|
130
|
+
s1: bigint;
|
|
131
|
+
s2: bigint;
|
|
132
|
+
t1: bigint;
|
|
133
|
+
t2: bigint;
|
|
134
|
+
u: bigint;
|
|
135
|
+
}
|
|
136
|
+
export interface ZkVProof {
|
|
137
|
+
Alpha: bigint;
|
|
138
|
+
t: bigint;
|
|
139
|
+
u: bigint;
|
|
140
|
+
}
|
|
141
|
+
export {};
|
|
142
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deserializeNtilde = deserializeNtilde;
|
|
4
|
+
exports.serializeNtilde = serializeNtilde;
|
|
5
|
+
exports.deserializeNtildeWithProofs = deserializeNtildeWithProofs;
|
|
6
|
+
exports.serializeNtildeWithProofs = serializeNtildeWithProofs;
|
|
7
|
+
exports.deserializePaillierChallenge = deserializePaillierChallenge;
|
|
8
|
+
exports.deserializePaillierChallengeProofs = deserializePaillierChallengeProofs;
|
|
9
|
+
exports.deserializePaillierChallengeWithProofs = deserializePaillierChallengeWithProofs;
|
|
10
|
+
exports.serializePaillierChallenge = serializePaillierChallenge;
|
|
11
|
+
exports.serializePaillierChallengeProofs = serializePaillierChallengeProofs;
|
|
12
|
+
exports.serializePaillierChallengeWithProofs = serializePaillierChallengeWithProofs;
|
|
13
|
+
const util_1 = require("../../util");
|
|
14
|
+
/**
|
|
15
|
+
* Deserializes a challenge from hex strings to bigint
|
|
16
|
+
* @param challenge
|
|
17
|
+
*/
|
|
18
|
+
function deserializeNtilde(challenge) {
|
|
19
|
+
return {
|
|
20
|
+
ntilde: (0, util_1.hexToBigInt)(challenge.ntilde),
|
|
21
|
+
h1: (0, util_1.hexToBigInt)(challenge.h1),
|
|
22
|
+
h2: (0, util_1.hexToBigInt)(challenge.h2),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Serializes a challenge from big int to hex strings.
|
|
27
|
+
* @param challenge
|
|
28
|
+
*/
|
|
29
|
+
function serializeNtilde(challenge) {
|
|
30
|
+
return {
|
|
31
|
+
ntilde: (0, util_1.bigIntToHex)(challenge.ntilde),
|
|
32
|
+
h1: (0, util_1.bigIntToHex)(challenge.h1),
|
|
33
|
+
h2: (0, util_1.bigIntToHex)(challenge.h2),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Deserializes a challenge and it's proofs from hex strings to bigint
|
|
38
|
+
* @param challenge
|
|
39
|
+
*/
|
|
40
|
+
function deserializeNtildeWithProofs(challenge) {
|
|
41
|
+
return {
|
|
42
|
+
...deserializeNtilde(challenge),
|
|
43
|
+
ntildeProof: {
|
|
44
|
+
h1WrtH2: {
|
|
45
|
+
alpha: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h1WrtH2.alpha),
|
|
46
|
+
t: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h1WrtH2.t),
|
|
47
|
+
},
|
|
48
|
+
h2WrtH1: {
|
|
49
|
+
alpha: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h2WrtH1.alpha),
|
|
50
|
+
t: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h2WrtH1.t),
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Serializes a challenge and it's proofs from big int to hex strings.
|
|
57
|
+
* @param challenge
|
|
58
|
+
*/
|
|
59
|
+
function serializeNtildeWithProofs(challenge) {
|
|
60
|
+
return {
|
|
61
|
+
...serializeNtilde(challenge),
|
|
62
|
+
ntildeProof: {
|
|
63
|
+
h1WrtH2: {
|
|
64
|
+
alpha: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h1WrtH2.alpha),
|
|
65
|
+
t: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h1WrtH2.t),
|
|
66
|
+
},
|
|
67
|
+
h2WrtH1: {
|
|
68
|
+
alpha: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h2WrtH1.alpha),
|
|
69
|
+
t: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h2WrtH1.t),
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Deserializes a paillier challenge to hex strings.
|
|
76
|
+
* @param challenge
|
|
77
|
+
*/
|
|
78
|
+
function deserializePaillierChallenge(challenge) {
|
|
79
|
+
return {
|
|
80
|
+
p: (0, util_1.convertHexArrToBigIntArr)(challenge.p),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Deserializes a paillier challenge proof to hex strings.
|
|
85
|
+
* @param challenge
|
|
86
|
+
*/
|
|
87
|
+
function deserializePaillierChallengeProofs(challenge) {
|
|
88
|
+
return {
|
|
89
|
+
sigma: (0, util_1.convertHexArrToBigIntArr)(challenge.sigma),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Deserializes a paillier challenge and its proof to hex strings.
|
|
94
|
+
* @param challengeWithProofs
|
|
95
|
+
*/
|
|
96
|
+
function deserializePaillierChallengeWithProofs(challengeWithProofs) {
|
|
97
|
+
return {
|
|
98
|
+
...deserializePaillierChallenge(challengeWithProofs),
|
|
99
|
+
...deserializePaillierChallengeProofs(challengeWithProofs),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Serializes a paillier challenge to hex strings.
|
|
104
|
+
* @param challenge
|
|
105
|
+
*/
|
|
106
|
+
function serializePaillierChallenge(challenge) {
|
|
107
|
+
return {
|
|
108
|
+
p: (0, util_1.convertBigIntArrToHexArr)(challenge.p, 768),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Serializes a paillier challenge proof to hex strings.
|
|
113
|
+
* @param challenge
|
|
114
|
+
*/
|
|
115
|
+
function serializePaillierChallengeProofs(challenge) {
|
|
116
|
+
return {
|
|
117
|
+
sigma: (0, util_1.convertBigIntArrToHexArr)(challenge.sigma, 768),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMkRBLDhDQU1DO0FBTUQsMENBTUM7QUFNRCxrRUFjQztBQU1ELDhEQWNDO0FBMkJELG9FQUlDO0FBTUQsZ0ZBTUM7QUFNRCx3RkFPQztBQU1ELGdFQUlDO0FBTUQsNEVBTUM7QUFNRCxvRkFPQztBQTlNRCxxQ0FBMEc7QUFxRDFHOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFNBQTJCO0lBQzNELE9BQU87UUFDTCxNQUFNLEVBQUUsSUFBQSxrQkFBVyxFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDckMsRUFBRSxFQUFFLElBQUEsa0JBQVcsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzdCLEVBQUUsRUFBRSxJQUFBLGtCQUFXLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxTQUE2QjtJQUMzRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLElBQUEsa0JBQVcsRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxJQUFBLGtCQUFXLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM3QixFQUFFLEVBQUUsSUFBQSxrQkFBVyxFQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQiwyQkFBMkIsQ0FBQyxTQUFxQztJQUMvRSxPQUFPO1FBQ0wsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7UUFDL0IsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLFNBQXVDO0lBQy9FLE9BQU87UUFDTCxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFDN0IsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXVCRDs7O0dBR0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FBQyxTQUFzQztJQUNqRixPQUFPO1FBQ0wsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN6QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGtDQUFrQyxDQUNoRCxTQUE0QztJQUU1QyxPQUFPO1FBQ0wsS0FBSyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHNDQUFzQyxDQUNwRCxtQkFBMEQ7SUFFMUQsT0FBTztRQUNMLEdBQUcsNEJBQTRCLENBQUMsbUJBQW1CLENBQUM7UUFDcEQsR0FBRyxrQ0FBa0MsQ0FBQyxtQkFBbUIsQ0FBQztLQUMzRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLFNBQXdDO0lBQ2pGLE9BQU87UUFDTCxDQUFDLEVBQUUsSUFBQSwrQkFBd0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztLQUM5QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGdDQUFnQyxDQUM5QyxTQUE4QztJQUU5QyxPQUFPO1FBQ0wsS0FBSyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7S0FDdEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQ0FBb0MsQ0FDbEQsbUJBQTREO0lBRTVELE9BQU87UUFDTCxHQUFHLDBCQUEwQixDQUFDLG1CQUFtQixDQUFDO1FBQ2xELEdBQUcsZ0NBQWdDLENBQUMsbUJBQW1CLENBQUM7S0FDekQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOdGlsZGUgUHJvb2Ygd2hlcmUgYm90aCBhbHBoYSBhbmQgdCBhcmUgYSBzZXQgb2YgMTI4IHByb29mcyBlYWNoLlxuaW1wb3J0IHsgU2Nobm9yclByb29mIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgYmlnSW50VG9IZXgsIGNvbnZlcnRCaWdJbnRBcnJUb0hleEFyciwgY29udmVydEhleEFyclRvQmlnSW50QXJyLCBoZXhUb0JpZ0ludCB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG4vLyBQcml2YXRlIFhTaGFyZSBvZiB0aGUgY3VycmVudCBwYXJ0aWNpcGFudFxuZXhwb3J0IHR5cGUgWFNoYXJlID0ge1xuICBpOiBudW1iZXI7XG4gIGw6IHN0cmluZztcbiAgbTogc3RyaW5nO1xuICBuOiBzdHJpbmc7XG4gIHk6IHN0cmluZzsgLy8gY29tYmluZWQgcHVibGljIGtleVxuICB4OiBzdHJpbmc7IC8vIGNvbWJpbmVkIHNlY3JldFxuICBzY2hub3JyUHJvb2ZYOiBTY2hub3JyUHJvb2Y7IC8vIHNjaG5vcnIgcHJvb2Ygb2Yga25vd2xlZGdlIG9mIHhcbiAgY2hhaW5jb2RlOiBzdHJpbmc7XG59O1xuXG5pbnRlcmZhY2UgTnRpbGRlUHJvb2Y8VD4ge1xuICBhbHBoYTogVFtdO1xuICB0OiBUW107XG59XG5cbi8vIE50aWxkZSBQcm9vZlxuaW50ZXJmYWNlIE50aWxkZVByb29mczxUPiB7XG4gIGgxV3J0SDI6IE50aWxkZVByb29mPFQ+O1xuICBoMldydEgxOiBOdGlsZGVQcm9vZjxUPjtcbn1cblxuLy8gTnRpbGRlIGNoYWxsZW5nZSB2YWx1ZXNcbmludGVyZmFjZSBOdGlsZGU8VD4ge1xuICBudGlsZGU6IFQ7XG4gIGgxOiBUO1xuICBoMjogVDtcbn1cblxuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlID0gTnRpbGRlPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlID0gTnRpbGRlPHN0cmluZz47XG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGVQcm9vZiA9IE50aWxkZVByb29mPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlUHJvb2YgPSBOdGlsZGVQcm9vZjxzdHJpbmc+O1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gTnRpbGRlUHJvb2ZzPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzID0gTnRpbGRlUHJvb2ZzPHN0cmluZz47XG5cbi8qKlxuICogVGhlIG50aWxkZSBwcm9vZnMgYXJlIGRvbmUgbm9uLWludGVyYWN0aXZlbHksXG4gKiB0aGVyZWZvcmUgYSBwYXJ0eSBnZW5lcmF0ZXMgYm90aCBudGlsZGUsIGgxLCBoMiBhbmQgdGhlIHByb29mcyB3aXRob3V0XG4gKiBpbnRlcmFjdGlvbiB3aXRoIHRoZSBvdGhlciBwYXJ0eS5cbiAqL1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IERlc2VyaWFsaXplZE50aWxkZSAmIHtcbiAgbnRpbGRlUHJvb2Y6IERlc2VyaWFsaXplZE50aWxkZVByb29mcztcbn07XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyA9IFNlcmlhbGl6ZWROdGlsZGUgJiB7XG4gIG50aWxkZVByb29mOiBTZXJpYWxpemVkTnRpbGRlUHJvb2ZzO1xufTtcblxuZXhwb3J0IHR5cGUgU2VyaWFsaXplZEVjZHNhQ2hhbGxlbmdlcyA9IFNlcmlhbGl6ZWROdGlsZGUgJiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2U7XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgY2hhbGxlbmdlIGZyb20gaGV4IHN0cmluZ3MgdG8gYmlnaW50XG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGUpOiBEZXNlcmlhbGl6ZWROdGlsZGUge1xuICByZXR1cm4ge1xuICAgIG50aWxkZTogaGV4VG9CaWdJbnQoY2hhbGxlbmdlLm50aWxkZSksXG4gICAgaDE6IGhleFRvQmlnSW50KGNoYWxsZW5nZS5oMSksXG4gICAgaDI6IGhleFRvQmlnSW50KGNoYWxsZW5nZS5oMiksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIGNoYWxsZW5nZSBmcm9tIGJpZyBpbnQgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVOdGlsZGUoY2hhbGxlbmdlOiBEZXNlcmlhbGl6ZWROdGlsZGUpOiBTZXJpYWxpemVkTnRpbGRlIHtcbiAgcmV0dXJuIHtcbiAgICBudGlsZGU6IGJpZ0ludFRvSGV4KGNoYWxsZW5nZS5udGlsZGUpLFxuICAgIGgxOiBiaWdJbnRUb0hleChjaGFsbGVuZ2UuaDEpLFxuICAgIGgyOiBiaWdJbnRUb0hleChjaGFsbGVuZ2UuaDIpLFxuICB9O1xufVxuXG4vKipcbiAqIERlc2VyaWFsaXplcyBhIGNoYWxsZW5nZSBhbmQgaXQncyBwcm9vZnMgZnJvbSBoZXggc3RyaW5ncyB0byBiaWdpbnRcbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplTnRpbGRlV2l0aFByb29mcyhjaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzKTogRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyB7XG4gIHJldHVybiB7XG4gICAgLi4uZGVzZXJpYWxpemVOdGlsZGUoY2hhbGxlbmdlKSxcbiAgICBudGlsZGVQcm9vZjoge1xuICAgICAgaDFXcnRIMjoge1xuICAgICAgICBhbHBoYTogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLnQpLFxuICAgICAgfSxcbiAgICAgIGgyV3J0SDE6IHtcbiAgICAgICAgYWxwaGE6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS5hbHBoYSksXG4gICAgICAgIHQ6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS50KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgY2hhbGxlbmdlIGFuZCBpdCdzIHByb29mcyBmcm9tIGJpZyBpbnQgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKGNoYWxsZW5nZTogRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcyk6IFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zZXJpYWxpemVOdGlsZGUoY2hhbGxlbmdlKSxcbiAgICBudGlsZGVQcm9vZjoge1xuICAgICAgaDFXcnRIMjoge1xuICAgICAgICBhbHBoYTogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMVdydEgyLnQpLFxuICAgICAgfSxcbiAgICAgIGgyV3J0SDE6IHtcbiAgICAgICAgYWxwaGE6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS5hbHBoYSksXG4gICAgICAgIHQ6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2UubnRpbGRlUHJvb2YuaDJXcnRIMS50KSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxudHlwZSBQYWlsbGllckNoYWxsZW5nZTxUPiA9IHtcbiAgcDogVFtdO1xufTtcblxudHlwZSBQYWlsbGllckNoYWxsZW5nZVByb29mPFQ+ID0ge1xuICBzaWdtYTogVFtdO1xufTtcblxuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UgPSBQYWlsbGllckNoYWxsZW5nZTxiaWdpbnQ+O1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlID0gUGFpbGxpZXJDaGFsbGVuZ2U8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzID0gUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZjxiaWdpbnQ+O1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzID0gUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZjxzdHJpbmc+O1xuLyoqXG4gKiBUaGUgcGFpbGxpZXIgcHJvb2ZzIGFyZSBkb25lIGludGVyYWN0aXZlbHkgYmV0d2VlbiB0d28gcGFydGllcy5cbiAqIElmIHBhcnR5IEEgaXMgY29tcGxldGluZyBhIHBhaWxsaWVyIHByb29mICRzaWdtYSQgd2l0aCBwYXJ0eSBCLCB0aGVuICRwJCByZWZlcnMgdG9cbiAqIGEgY2hhbGxlbmdlIGdpdmVuIHRvIEEgYnkgQiwgYW5kICRzaWdtYSQgcmVwcmVzZW50cyB0aGUgcHJvb2YgdG8gdGhlIGNoYWxsZW5nZVxuICovXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnMgPSBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSAmXG4gIERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzO1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyA9IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSAmIFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVByb29mcztcblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKGNoYWxsZW5nZTogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlKTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2Uge1xuICByZXR1cm4ge1xuICAgIHA6IGNvbnZlcnRIZXhBcnJUb0JpZ0ludEFycihjaGFsbGVuZ2UucCksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIHByb29mIHRvIGhleCBzdHJpbmdzLlxuICogQHBhcmFtIGNoYWxsZW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVByb29mcyhcbiAgY2hhbGxlbmdlOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnNcbik6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICBzaWdtYTogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5zaWdtYSksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIGFuZCBpdHMgcHJvb2YgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlV2l0aFByb29mc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnMoXG4gIGNoYWxsZW5nZVdpdGhQcm9vZnM6IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnNcbik6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyB7XG4gIHJldHVybiB7XG4gICAgLi4uZGVzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZShjaGFsbGVuZ2VXaXRoUHJvb2ZzKSxcbiAgICAuLi5kZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzKGNoYWxsZW5nZVdpdGhQcm9vZnMpLFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZShjaGFsbGVuZ2U6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlKTogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlIHtcbiAgcmV0dXJuIHtcbiAgICBwOiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLnAsIDc2OCksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSBwcm9vZiB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzKFxuICBjaGFsbGVuZ2U6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzXG4pOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMge1xuICByZXR1cm4ge1xuICAgIHNpZ21hOiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLnNpZ21hLCA3NjgpLFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgYW5kIGl0cyBwcm9vZiB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VXaXRoUHJvb2ZzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVdpdGhQcm9vZnMoXG4gIGNoYWxsZW5nZVdpdGhQcm9vZnM6IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mc1xuKTogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyB7XG4gIHJldHVybiB7XG4gICAgLi4uc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoY2hhbGxlbmdlV2l0aFByb29mcyksXG4gICAgLi4uc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMoY2hhbGxlbmdlV2l0aFByb29mcyksXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUlNBTW9kdWx1cyB7XG4gIG46IGJpZ2ludDtcbiAgLy8gU29waGllIEdlcm1haW4gcHJpbWVzLlxuICBxMTogYmlnaW50O1xuICBxMjogYmlnaW50O1xufVxuXG4vLyBSYW5nZSBwcm9vZiB2YWx1ZXNcbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VQcm9vZiB7XG4gIHo6IGJpZ2ludDtcbiAgdTogYmlnaW50O1xuICB3OiBiaWdpbnQ7XG4gIHM6IGJpZ2ludDtcbiAgczE6IGJpZ2ludDtcbiAgczI6IGJpZ2ludDtcbn1cblxuLy8gUmFuZ2UgcHJvb2YgdmFsdWVzXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlUHJvb2ZXaXRoQ2hlY2sge1xuICB6OiBiaWdpbnQ7XG4gIHpwcm06IGJpZ2ludDtcbiAgdDogYmlnaW50O1xuICB2OiBiaWdpbnQ7XG4gIHc6IGJpZ2ludDtcbiAgczogYmlnaW50O1xuICBzMTogYmlnaW50O1xuICBzMjogYmlnaW50O1xuICB0MTogYmlnaW50O1xuICB0MjogYmlnaW50O1xuICB1OiBiaWdpbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWmtWUHJvb2Yge1xuICBBbHBoYTogYmlnaW50O1xuICB0OiBiaWdpbnQ7XG4gIHU6IGJpZ2ludDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BaseCurve as Curve } from '../../curves';
|
|
2
|
+
import { ZkVProof } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Create a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
|
|
5
|
+
* @param V The curve point V.
|
|
6
|
+
* @param s The s that multiplies R.
|
|
7
|
+
* @param l The l that multiplies the curve genreator G.
|
|
8
|
+
* @param R The curve point R shared by all participants.
|
|
9
|
+
* @param curve The elliptic curve.
|
|
10
|
+
* @param additionalCtx Additional contextual information to associate with the proof.
|
|
11
|
+
* @returns The created proof.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createZkVProof(V: bigint, s: bigint, l: bigint, R: bigint, curve: Curve, additionalCtx?: Buffer): ZkVProof;
|
|
14
|
+
/**
|
|
15
|
+
* Verify a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
|
|
16
|
+
* @param V The curve point V.
|
|
17
|
+
* @param proof The ZK proof.
|
|
18
|
+
* @param R The curve point R shared by all participants.
|
|
19
|
+
* @param curve The elliptic curve.
|
|
20
|
+
* @param additionalCtx Additional contextual information that is supposed to associate with the proof.
|
|
21
|
+
* @returns True if the proof checks out.
|
|
22
|
+
*/
|
|
23
|
+
export declare function verifyZkVProof(V: bigint, proof: ZkVProof, R: bigint, curve: Curve, additionalCtx?: Buffer): boolean;
|
|
24
|
+
//# sourceMappingURL=zkVProof.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createZkVProof = createZkVProof;
|
|
4
|
+
exports.verifyZkVProof = verifyZkVProof;
|
|
5
|
+
/**
|
|
6
|
+
* Zero Knowledge Proof of knowledge of the s and l that are behind the public value V = sR + lG.
|
|
7
|
+
* The V value is calculated in step 5A and the proof is created in step 5B of the GG18 signing protocol.
|
|
8
|
+
* @see {@link https://eprint.iacr.org/2019/114.pdf} section 4.3 for reference.
|
|
9
|
+
*/
|
|
10
|
+
const crypto_1 = require("crypto");
|
|
11
|
+
const util_1 = require("../../util");
|
|
12
|
+
/**
|
|
13
|
+
* Create a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
|
|
14
|
+
* @param V The curve point V.
|
|
15
|
+
* @param s The s that multiplies R.
|
|
16
|
+
* @param l The l that multiplies the curve genreator G.
|
|
17
|
+
* @param R The curve point R shared by all participants.
|
|
18
|
+
* @param curve The elliptic curve.
|
|
19
|
+
* @param additionalCtx Additional contextual information to associate with the proof.
|
|
20
|
+
* @returns The created proof.
|
|
21
|
+
*/
|
|
22
|
+
function createZkVProof(V, s, l, R, curve, additionalCtx = Buffer.from('')) {
|
|
23
|
+
const a = curve.scalarRandom();
|
|
24
|
+
const b = curve.scalarRandom();
|
|
25
|
+
const Alpha = curve.pointAdd(curve.pointMultiply(R, a), curve.basePointMult(b));
|
|
26
|
+
const c = nonInteractiveChallenge(V, R, Alpha, curve, additionalCtx);
|
|
27
|
+
const t = curve.scalarAdd(a, curve.scalarMult(c, s));
|
|
28
|
+
const u = curve.scalarAdd(b, curve.scalarMult(c, l));
|
|
29
|
+
return {
|
|
30
|
+
Alpha: Alpha,
|
|
31
|
+
t: t,
|
|
32
|
+
u: u,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
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 = (0, crypto_1.createHash)('sha256');
|
|
48
|
+
hash.update((0, util_1.bigIntToBufferBE)(G, curve.pointBytes));
|
|
49
|
+
hash.update((0, util_1.bigIntToBufferBE)(R, curve.pointBytes));
|
|
50
|
+
hash.update((0, util_1.bigIntToBufferBE)(V, curve.pointBytes));
|
|
51
|
+
hash.update((0, util_1.bigIntToBufferBE)(Alpha, curve.pointBytes));
|
|
52
|
+
hash.update(additionalCtx);
|
|
53
|
+
return (0, 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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtWUHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3prVlByb29mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0JBLHdDQXNCQztBQWtDRCx3Q0FhQztBQXpGRDs7OztHQUlHO0FBQ0gsbUNBQW9DO0FBR3BDLHFDQUFrRTtBQUVsRTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixjQUFjLENBQzVCLENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNULENBQVMsRUFDVCxLQUFZLEVBQ1osZ0JBQXdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRXZDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEYsTUFBTSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRCxPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUs7UUFDWixDQUFDLEVBQUUsQ0FBQztRQUNKLENBQUMsRUFBRSxDQUFDO0tBQ0wsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLEtBQVksRUFBRSxhQUFxQjtJQUN2RyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsdUJBQWdCLEVBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSx1QkFBZ0IsRUFBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsdUJBQWdCLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFM0IsT0FBTyxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULEtBQWUsRUFDZixDQUFTLEVBQ1QsS0FBWSxFQUNaLGdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZGLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBaZXJvIEtub3dsZWRnZSBQcm9vZiBvZiBrbm93bGVkZ2Ugb2YgdGhlIHMgYW5kIGwgdGhhdCBhcmUgYmVoaW5kIHRoZSBwdWJsaWMgdmFsdWUgViA9IHNSICsgbEcuXG4gKiBUaGUgViB2YWx1ZSBpcyBjYWxjdWxhdGVkIGluIHN0ZXAgNUEgYW5kIHRoZSBwcm9vZiBpcyBjcmVhdGVkIGluIHN0ZXAgNUIgb2YgdGhlIEdHMTggc2lnbmluZyBwcm90b2NvbC5cbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZXByaW50LmlhY3Iub3JnLzIwMTkvMTE0LnBkZn0gc2VjdGlvbiA0LjMgZm9yIHJlZmVyZW5jZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlQ3VydmUgYXMgQ3VydmUgfSBmcm9tICcuLi8uLi9jdXJ2ZXMnO1xuaW1wb3J0IHsgWmtWUHJvb2YgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJCRSwgYmlnSW50VG9CdWZmZXJCRSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG4vKipcbiAqIENyZWF0ZSBhIFpLIFByb29mIG9mIGtub3dsZWRnZSBvZiB0aGUgcyBhbmQgbCB0aGF0IGFyZSBiZWhpbmQgdGhlIHB1YmxpYyB2YWx1ZSBWID0gc1IgKyBsRy5cbiAqIEBwYXJhbSBWIFRoZSBjdXJ2ZSBwb2ludCBWLlxuICogQHBhcmFtIHMgVGhlIHMgdGhhdCBtdWx0aXBsaWVzIFIuXG4gKiBAcGFyYW0gbCBUaGUgbCB0aGF0IG11bHRpcGxpZXMgdGhlIGN1cnZlIGdlbnJlYXRvciBHLlxuICogQHBhcmFtIFIgVGhlIGN1cnZlIHBvaW50IFIgc2hhcmVkIGJ5IGFsbCBwYXJ0aWNpcGFudHMuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIHByb29mLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlWmtWUHJvb2YoXG4gIFY6IGJpZ2ludCxcbiAgczogYmlnaW50LFxuICBsOiBiaWdpbnQsXG4gIFI6IGJpZ2ludCxcbiAgY3VydmU6IEN1cnZlLFxuICBhZGRpdGlvbmFsQ3R4OiBCdWZmZXIgPSBCdWZmZXIuZnJvbSgnJylcbik6IFprVlByb29mIHtcbiAgY29uc3QgYSA9IGN1cnZlLnNjYWxhclJhbmRvbSgpO1xuICBjb25zdCBiID0gY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gIGNvbnN0IEFscGhhID0gY3VydmUucG9pbnRBZGQoY3VydmUucG9pbnRNdWx0aXBseShSLCBhKSwgY3VydmUuYmFzZVBvaW50TXVsdChiKSk7XG5cbiAgY29uc3QgYyA9IG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFYsIFIsIEFscGhhLCBjdXJ2ZSwgYWRkaXRpb25hbEN0eCk7XG5cbiAgY29uc3QgdCA9IGN1cnZlLnNjYWxhckFkZChhLCBjdXJ2ZS5zY2FsYXJNdWx0KGMsIHMpKTtcbiAgY29uc3QgdSA9IGN1cnZlLnNjYWxhckFkZChiLCBjdXJ2ZS5zY2FsYXJNdWx0KGMsIGwpKTtcblxuICByZXR1cm4ge1xuICAgIEFscGhhOiBBbHBoYSxcbiAgICB0OiB0LFxuICAgIHU6IHUsXG4gIH07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIGNoYWxsZW5nZSBmb3IgTklaSyBwcm9vZiBvZiBWIHVzaW5nIEZpYXQtU2hhbWlyIHRyYW5zZm9ybS5cbiAqXG4gKiBAcGFyYW0gViBUaGUgcG9pbnQgdG8gYmUgcHJvdmVuLlxuICogQHBhcmFtIFIgVGhlIHBvaW50IFIgc2hhcmVkIGJ5IGFsbCBwYXJ0aWNpcGFudHMgaW4gdGhlIEVDRFNBIHNpZ25pbmcgcHJvdG9jb2wuXG4gKiBAcGFyYW0gQWxwaGEgVGhlIHBvaW50L3B1YmxpYyB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSByYW5kb20gc2NhbGFyIHZhbHVlcyBhIGFuZCBiIGNob3NlbiBieSB0aGUgcHJvdmVyLlxuICogQHBhcmFtIGN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZS5cbiAqIEBwYXJhbSBhZGRpdGlvbmFsQ3R4IEFkZGl0aW9uYWwgY29udGV4dHVhbCBpbmZvcm1hdGlvbiB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUaGUgY2FsY3VsYXRlZCBjaGFsbGVuZ2UuXG4gKi9cbmZ1bmN0aW9uIG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFY6IGJpZ2ludCwgUjogYmlnaW50LCBBbHBoYTogYmlnaW50LCBjdXJ2ZTogQ3VydmUsIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlcik6IGJpZ2ludCB7XG4gIGNvbnN0IEcgPSBjdXJ2ZS5iYXNlUG9pbnRNdWx0KEJpZ0ludCgxKSk7XG5cbiAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKEcsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShSLCBjdXJ2ZS5wb2ludEJ5dGVzKSk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoViwgY3VydmUucG9pbnRCeXRlcykpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKEFscGhhLCBjdXJ2ZS5wb2ludEJ5dGVzKSk7XG4gIGhhc2gudXBkYXRlKGFkZGl0aW9uYWxDdHgpO1xuXG4gIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyQkUoaGFzaC5kaWdlc3QoKSk7XG59XG5cbi8qKlxuICogVmVyaWZ5IGEgWksgUHJvb2Ygb2Yga25vd2xlZGdlIG9mIHRoZSBzIGFuZCBsIHRoYXQgYXJlIGJlaGluZCB0aGUgcHVibGljIHZhbHVlIFYgPSBzUiArIGxHLlxuICogQHBhcmFtIFYgVGhlIGN1cnZlIHBvaW50IFYuXG4gKiBAcGFyYW0gcHJvb2YgVGhlIFpLIHByb29mLlxuICogQHBhcmFtIFIgVGhlIGN1cnZlIHBvaW50IFIgc2hhcmVkIGJ5IGFsbCBwYXJ0aWNpcGFudHMuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRoYXQgaXMgc3VwcG9zZWQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcHJvb2YgY2hlY2tzIG91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVprVlByb29mKFxuICBWOiBiaWdpbnQsXG4gIHByb29mOiBaa1ZQcm9vZixcbiAgUjogYmlnaW50LFxuICBjdXJ2ZTogQ3VydmUsXG4gIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCcnKVxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGMgPSBub25JbnRlcmFjdGl2ZUNoYWxsZW5nZShWLCBSLCBwcm9vZi5BbHBoYSwgY3VydmUsIGFkZGl0aW9uYWxDdHgpO1xuXG4gIGNvbnN0IGxocyA9IGN1cnZlLnBvaW50QWRkKGN1cnZlLnBvaW50TXVsdGlwbHkoUiwgcHJvb2YudCksIGN1cnZlLmJhc2VQb2ludE11bHQocHJvb2YudSkpO1xuICBjb25zdCByaHMgPSBjdXJ2ZS5wb2ludEFkZChwcm9vZi5BbHBoYSwgY3VydmUucG9pbnRNdWx0aXBseShWLCBjdXJ2ZS5zY2FsYXJSZWR1Y2UoYykpKTtcblxuICByZXR1cm4gbGhzID09PSByaHM7XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { SerializedMessages, AuthEncMessage, AuthEncMessages, PartyGpgKey, AuthMessage } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Detach signs a binary and encodes it in base64
|
|
4
|
+
* @param data binary to encode in base64 and sign
|
|
5
|
+
* @param privateArmor private key to sign with
|
|
6
|
+
*/
|
|
7
|
+
export declare function detachSignData(data: Buffer, privateArmor: string): Promise<AuthMessage>;
|
|
8
|
+
/**
|
|
9
|
+
* Encrypts and detach signs a binary
|
|
10
|
+
* @param data binary to encrypt and sign
|
|
11
|
+
* @param publicArmor public key to encrypt with
|
|
12
|
+
* @param privateArmor private key to sign with
|
|
13
|
+
*/
|
|
14
|
+
export declare function encryptAndDetachSignData(data: Buffer, publicArmor: string, privateArmor: string): Promise<AuthEncMessage>;
|
|
15
|
+
/**
|
|
16
|
+
* Decrypts and verifies signature on a binary
|
|
17
|
+
* @param encryptedAndSignedMessage message to decrypt and verify
|
|
18
|
+
* @param publicArmor public key to verify signature with
|
|
19
|
+
* @param privateArmor private key to decrypt with
|
|
20
|
+
*/
|
|
21
|
+
export declare function decryptAndVerifySignedData(encryptedAndSignedMessage: AuthEncMessage, publicArmor: string, privateArmor: string): Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Verifies signature on a binary (message passed should be encoded in base64).
|
|
24
|
+
* @param signedMessage message to verify
|
|
25
|
+
* @param publicArmor public key to verify signature with
|
|
26
|
+
*/
|
|
27
|
+
export declare function verifySignedData(signedMessage: AuthMessage, publicArmor: string): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Decrypts and verifies p2p messages + verifies broadcast messages
|
|
30
|
+
* @param messages message to decrypt and verify
|
|
31
|
+
* @param pubVerificationGpgKeys public keys to verify signatures with
|
|
32
|
+
* @param prvDecryptionGpgKeys private keys to decrypt with
|
|
33
|
+
*/
|
|
34
|
+
export declare function decryptAndVerifyIncomingMessages(messages: AuthEncMessages, pubVerificationGpgKeys: PartyGpgKey[], prvDecryptionGpgKeys: PartyGpgKey[]): Promise<SerializedMessages>;
|
|
35
|
+
/**
|
|
36
|
+
* Encrypts and signs p2p messages + signs broadcast messages
|
|
37
|
+
* @param messages messages to encrypt and sign
|
|
38
|
+
* @param pubEncryptionGpgKey public keys to encrypt data to
|
|
39
|
+
* @param prvAuthenticationGpgKey private keys to sign with
|
|
40
|
+
*/
|
|
41
|
+
export declare function encryptAndAuthOutgoingMessages(messages: SerializedMessages, pubEncryptionGpgKeys: PartyGpgKey[], prvAuthenticationGpgKeys: PartyGpgKey[]): Promise<AuthEncMessages>;
|
|
42
|
+
//# sourceMappingURL=commsLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commsLayer.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa-dkls/commsLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxG;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkB7F;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CA8BzB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,yBAAyB,EAAE,cAAc,EACzC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAcxG;AAED;;;;;GAKG;AACH,wBAAsB,gCAAgC,CACpD,QAAQ,EAAE,eAAe,EACzB,sBAAsB,EAAE,WAAW,EAAE,EACrC,oBAAoB,EAAE,WAAW,EAAE,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAoC7B;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,kBAAkB,EAC5B,oBAAoB,EAAE,WAAW,EAAE,EACnC,wBAAwB,EAAE,WAAW,EAAE,GACtC,OAAO,CAAC,eAAe,CAAC,CAuC1B"}
|