@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.361 → 8.2.1-alpha.362

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/src/curves/constant.d.ts +2 -0
  2. package/dist/src/curves/constant.d.ts.map +1 -0
  3. package/dist/src/curves/constant.js +6 -0
  4. package/dist/src/curves/ed25519.d.ts +20 -0
  5. package/dist/src/curves/ed25519.d.ts.map +1 -0
  6. package/dist/src/curves/ed25519.js +72 -0
  7. package/dist/src/curves/ed25519Bip32HdTree.d.ts +10 -0
  8. package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +1 -0
  9. package/dist/src/curves/ed25519Bip32HdTree.js +85 -0
  10. package/dist/src/curves/index.d.ts +8 -0
  11. package/dist/src/curves/index.d.ts.map +1 -0
  12. package/dist/src/curves/index.js +24 -0
  13. package/dist/src/curves/secp256k1.d.ts +18 -0
  14. package/dist/src/curves/secp256k1.d.ts.map +1 -0
  15. package/dist/src/curves/secp256k1.js +61 -0
  16. package/dist/src/curves/secp256k1Bip32HdTree.d.ts +8 -0
  17. package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +1 -0
  18. package/dist/src/curves/secp256k1Bip32HdTree.js +54 -0
  19. package/dist/src/curves/types.d.ts +35 -0
  20. package/dist/src/curves/types.d.ts.map +1 -0
  21. package/dist/src/curves/types.js +3 -0
  22. package/dist/src/curves/util.d.ts +4 -0
  23. package/dist/src/curves/util.d.ts.map +1 -0
  24. package/dist/src/curves/util.js +42 -0
  25. package/dist/src/hashCommitment.d.ts +16 -0
  26. package/dist/src/hashCommitment.d.ts.map +1 -0
  27. package/dist/src/hashCommitment.js +44 -0
  28. package/dist/src/index.d.ts +9 -0
  29. package/dist/src/index.d.ts.map +1 -0
  30. package/dist/src/index.js +48 -0
  31. package/dist/src/openssl/index.d.ts +2 -0
  32. package/dist/src/openssl/index.d.ts.map +1 -0
  33. package/dist/src/openssl/index.js +18 -0
  34. package/dist/src/openssl/openssl.d.ts +8 -0
  35. package/dist/src/openssl/openssl.d.ts.map +1 -0
  36. package/dist/src/openssl/openssl.js +37 -0
  37. package/dist/src/safePrime.d.ts +3 -0
  38. package/dist/src/safePrime.d.ts.map +1 -0
  39. package/dist/src/safePrime.js +19 -0
  40. package/dist/src/schnorrProof.d.ts +21 -0
  41. package/dist/src/schnorrProof.d.ts.map +1 -0
  42. package/dist/src/schnorrProof.js +61 -0
  43. package/dist/src/shamir/index.d.ts +3 -0
  44. package/dist/src/shamir/index.d.ts.map +1 -0
  45. package/dist/src/shamir/index.js +19 -0
  46. package/dist/src/shamir/shamir.d.ts +38 -0
  47. package/dist/src/shamir/shamir.d.ts.map +1 -0
  48. package/dist/src/shamir/shamir.js +136 -0
  49. package/dist/src/shamir/types.d.ts +5 -0
  50. package/dist/src/shamir/types.d.ts.map +1 -0
  51. package/dist/src/shamir/types.js +3 -0
  52. package/dist/src/tss/ecdsa/index.d.ts +6 -0
  53. package/dist/src/tss/ecdsa/index.d.ts.map +1 -0
  54. package/dist/src/tss/ecdsa/index.js +42 -0
  55. package/dist/src/tss/ecdsa/paillierproof.d.ts +24 -0
  56. package/dist/src/tss/ecdsa/paillierproof.d.ts.map +1 -0
  57. package/dist/src/tss/ecdsa/paillierproof.js +86 -0
  58. package/dist/src/tss/ecdsa/primes.d.ts +2 -0
  59. package/dist/src/tss/ecdsa/primes.d.ts.map +1 -0
  60. package/dist/src/tss/ecdsa/primes.js +1846 -0
  61. package/dist/src/tss/ecdsa/rangeproof.d.ts +79 -0
  62. package/dist/src/tss/ecdsa/rangeproof.d.ts.map +1 -0
  63. package/dist/src/tss/ecdsa/rangeproof.js +394 -0
  64. package/dist/src/tss/ecdsa/types.d.ts +142 -0
  65. package/dist/src/tss/ecdsa/types.d.ts.map +1 -0
  66. package/dist/src/tss/ecdsa/types.js +130 -0
  67. package/dist/src/tss/ecdsa/zkVProof.d.ts +24 -0
  68. package/dist/src/tss/ecdsa/zkVProof.d.ts.map +1 -0
  69. package/dist/src/tss/ecdsa/zkVProof.js +70 -0
  70. package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts +42 -0
  71. package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts.map +1 -0
  72. package/dist/src/tss/ecdsa-dkls/commsLayer.js +235 -0
  73. package/dist/src/tss/ecdsa-dkls/dkg.d.ts +57 -0
  74. package/dist/src/tss/ecdsa-dkls/dkg.d.ts.map +1 -0
  75. package/dist/src/tss/ecdsa-dkls/dkg.js +321 -0
  76. package/dist/src/tss/ecdsa-dkls/dsg.d.ts +47 -0
  77. package/dist/src/tss/ecdsa-dkls/dsg.d.ts.map +1 -0
  78. package/dist/src/tss/ecdsa-dkls/dsg.js +266 -0
  79. package/dist/src/tss/ecdsa-dkls/index.d.ts +6 -0
  80. package/dist/src/tss/ecdsa-dkls/index.d.ts.map +1 -0
  81. package/dist/src/tss/ecdsa-dkls/index.js +42 -0
  82. package/dist/src/tss/ecdsa-dkls/types.d.ts +118 -0
  83. package/dist/src/tss/ecdsa-dkls/types.d.ts.map +1 -0
  84. package/dist/src/tss/ecdsa-dkls/types.js +165 -0
  85. package/dist/src/tss/ecdsa-dkls/util.d.ts +26 -0
  86. package/dist/src/tss/ecdsa-dkls/util.d.ts.map +1 -0
  87. package/dist/src/tss/ecdsa-dkls/util.js +276 -0
  88. package/dist/src/tss/index.d.ts +3 -0
  89. package/dist/src/tss/index.d.ts.map +1 -0
  90. package/dist/src/tss/index.js +19 -0
  91. package/dist/src/types.d.ts +13 -0
  92. package/dist/src/types.d.ts.map +1 -0
  93. package/dist/src/types.js +3 -0
  94. package/dist/src/util.d.ts +58 -0
  95. package/dist/src/util.d.ts.map +1 -0
  96. package/dist/src/util.js +164 -0
  97. package/package.json +6 -3
  98. package/.eslintignore +0 -5
  99. 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"}