@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.11 → 8.2.1-alpha.111

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 (92) hide show
  1. package/CHANGELOG.md +531 -0
  2. package/dist/src/curves/constant.d.ts +2 -0
  3. package/dist/src/curves/constant.d.ts.map +1 -0
  4. package/dist/src/curves/constant.js +6 -0
  5. package/dist/src/curves/{baseCurve.d.ts → ed25519.d.ts} +9 -7
  6. package/dist/src/curves/ed25519.d.ts.map +1 -0
  7. package/dist/src/curves/ed25519.js +72 -0
  8. package/dist/src/curves/ed25519Bip32HdTree.d.ts +10 -0
  9. package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +1 -0
  10. package/dist/src/curves/ed25519Bip32HdTree.js +85 -0
  11. package/dist/src/curves/index.d.ts +6 -1
  12. package/dist/src/curves/index.d.ts.map +1 -1
  13. package/dist/src/curves/index.js +12 -3
  14. package/dist/src/curves/secp256k1.d.ts +3 -1
  15. package/dist/src/curves/secp256k1.d.ts.map +1 -1
  16. package/dist/src/curves/secp256k1.js +29 -38
  17. package/dist/src/curves/secp256k1Bip32HdTree.d.ts +8 -0
  18. package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +1 -0
  19. package/dist/src/curves/secp256k1Bip32HdTree.js +54 -0
  20. package/dist/src/curves/types.d.ts +36 -0
  21. package/dist/src/curves/types.d.ts.map +1 -0
  22. package/dist/src/curves/types.js +3 -0
  23. package/dist/src/curves/util.d.ts +2 -0
  24. package/dist/src/curves/util.d.ts.map +1 -0
  25. package/dist/src/curves/util.js +11 -0
  26. package/dist/src/hashCommitment.d.ts +17 -0
  27. package/dist/src/hashCommitment.d.ts.map +1 -0
  28. package/dist/src/hashCommitment.js +45 -0
  29. package/dist/src/index.d.ts +6 -2
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +25 -4
  32. package/dist/src/openssl/index.js +6 -2
  33. package/dist/src/openssl/openssl.js +3 -3
  34. package/dist/src/safePrime.d.ts +3 -0
  35. package/dist/src/safePrime.d.ts.map +1 -0
  36. package/dist/src/safePrime.js +20 -0
  37. package/dist/src/schnorrProof.d.ts +22 -0
  38. package/dist/src/schnorrProof.d.ts.map +1 -0
  39. package/dist/src/schnorrProof.js +62 -0
  40. package/dist/src/shamir/index.d.ts +3 -0
  41. package/dist/src/shamir/index.d.ts.map +1 -0
  42. package/dist/src/shamir/index.js +19 -0
  43. package/dist/src/shamir/shamir.d.ts +38 -0
  44. package/dist/src/shamir/shamir.d.ts.map +1 -0
  45. package/dist/src/shamir/shamir.js +136 -0
  46. package/dist/src/shamir/types.d.ts +5 -0
  47. package/dist/src/shamir/types.d.ts.map +1 -0
  48. package/dist/src/shamir/types.js +3 -0
  49. package/dist/src/tss/ecdsa/index.d.ts +1 -0
  50. package/dist/src/tss/ecdsa/index.d.ts.map +1 -1
  51. package/dist/src/tss/ecdsa/index.js +8 -3
  52. package/dist/src/tss/ecdsa/paillierproof.js +6 -6
  53. package/dist/src/tss/ecdsa/rangeproof.d.ts +0 -1
  54. package/dist/src/tss/ecdsa/rangeproof.d.ts.map +1 -1
  55. package/dist/src/tss/ecdsa/rangeproof.js +102 -108
  56. package/dist/src/tss/ecdsa/types.d.ts +16 -0
  57. package/dist/src/tss/ecdsa/types.d.ts.map +1 -1
  58. package/dist/src/tss/ecdsa/types.js +19 -20
  59. package/dist/src/tss/ecdsa/zkVProof.d.ts +25 -0
  60. package/dist/src/tss/ecdsa/zkVProof.d.ts.map +1 -0
  61. package/dist/src/tss/ecdsa/zkVProof.js +71 -0
  62. package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts +43 -0
  63. package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts.map +1 -0
  64. package/dist/src/tss/ecdsa-dkls/commsLayer.js +222 -0
  65. package/dist/src/tss/ecdsa-dkls/dkg.d.ts +26 -0
  66. package/dist/src/tss/ecdsa-dkls/dkg.d.ts.map +1 -0
  67. package/dist/src/tss/ecdsa-dkls/dkg.js +222 -0
  68. package/dist/src/tss/ecdsa-dkls/dsg.d.ts +40 -0
  69. package/dist/src/tss/ecdsa-dkls/dsg.d.ts.map +1 -0
  70. package/dist/src/tss/ecdsa-dkls/dsg.js +210 -0
  71. package/dist/src/tss/ecdsa-dkls/index.d.ts +6 -0
  72. package/dist/src/tss/ecdsa-dkls/index.d.ts.map +1 -0
  73. package/dist/src/tss/ecdsa-dkls/index.js +32 -0
  74. package/dist/src/tss/ecdsa-dkls/types.d.ts +119 -0
  75. package/dist/src/tss/ecdsa-dkls/types.d.ts.map +1 -0
  76. package/dist/src/tss/ecdsa-dkls/types.js +155 -0
  77. package/dist/src/tss/ecdsa-dkls/util.d.ts +28 -0
  78. package/dist/src/tss/ecdsa-dkls/util.d.ts.map +1 -0
  79. package/dist/src/tss/ecdsa-dkls/util.js +267 -0
  80. package/dist/src/tss/index.d.ts +1 -0
  81. package/dist/src/tss/index.d.ts.map +1 -1
  82. package/dist/src/tss/index.js +7 -2
  83. package/dist/src/types.d.ts +14 -0
  84. package/dist/src/types.d.ts.map +1 -0
  85. package/dist/src/types.js +3 -0
  86. package/dist/src/util.d.ts +8 -2
  87. package/dist/src/util.d.ts.map +1 -1
  88. package/dist/src/util.js +35 -13
  89. package/dist/tsconfig.tsbuildinfo +1 -3645
  90. package/package.json +17 -7
  91. package/dist/src/curves/baseCurve.d.ts.map +0 -1
  92. package/dist/src/curves/baseCurve.js +0 -6
@@ -0,0 +1,119 @@
1
+ /// <reference types="node" />
2
+ import * as t from 'io-ts';
3
+ import { XShare } from '../ecdsa/types';
4
+ interface BroadcastMessage<T> {
5
+ payload: T;
6
+ from: number;
7
+ signatureR?: T;
8
+ }
9
+ interface P2PMessage<T, G> {
10
+ payload: T;
11
+ from: number;
12
+ commitment?: G;
13
+ to: number;
14
+ }
15
+ export declare enum DkgState {
16
+ Uninitialized = 0,
17
+ Round1 = 1,
18
+ Round2 = 2,
19
+ Round3 = 3,
20
+ Round4 = 4,
21
+ Complete = 5,
22
+ InvalidState = 6
23
+ }
24
+ export declare enum DsgState {
25
+ Uninitialized = 0,
26
+ Round1 = 1,
27
+ Round2 = 2,
28
+ Round3 = 3,
29
+ Round4 = 4,
30
+ Complete = 5,
31
+ InvalidState = 6
32
+ }
33
+ export declare type AuthEncMessage = {
34
+ encryptedMessage: string;
35
+ signature: string;
36
+ };
37
+ export declare type AuthMessage = {
38
+ message: string;
39
+ signature: string;
40
+ };
41
+ export declare type PartyGpgKey = {
42
+ partyId: number;
43
+ gpgKey: string;
44
+ };
45
+ export declare type DklsSignature<T> = {
46
+ R: T;
47
+ S: T;
48
+ };
49
+ export declare type RetrofitData = {
50
+ xShare: Partial<XShare>;
51
+ xiList?: number[][];
52
+ };
53
+ export declare const ReducedKeyShareType: t.TypeC<{
54
+ bigSList: t.ArrayC<t.ArrayC<t.NumberC>>;
55
+ xList: t.ArrayC<t.ArrayC<t.NumberC>>;
56
+ rootChainCode: t.ArrayC<t.NumberC>;
57
+ prv: t.ArrayC<t.NumberC>;
58
+ pub: t.ArrayC<t.NumberC>;
59
+ }>;
60
+ export declare type ReducedKeyShare = t.TypeOf<typeof ReducedKeyShareType>;
61
+ export declare type SerializedBroadcastMessage = BroadcastMessage<string>;
62
+ export declare type DeserializedBroadcastMessage = BroadcastMessage<Uint8Array>;
63
+ export declare type SerializedP2PMessage = P2PMessage<string, string>;
64
+ export declare type DeserializedP2PMessage = P2PMessage<Uint8Array, Uint8Array>;
65
+ export declare type SerializedDklsSignature = DklsSignature<string>;
66
+ export declare type DeserializedDklsSignature = DklsSignature<Uint8Array>;
67
+ export declare type AuthEncP2PMessage = P2PMessage<AuthEncMessage, string>;
68
+ export declare type AuthBroadcastMessage = BroadcastMessage<AuthMessage>;
69
+ export declare type SerializedMessages = {
70
+ p2pMessages: SerializedP2PMessage[];
71
+ broadcastMessages: SerializedBroadcastMessage[];
72
+ };
73
+ export declare type AuthEncMessages = {
74
+ p2pMessages: AuthEncP2PMessage[];
75
+ broadcastMessages: AuthBroadcastMessage[];
76
+ };
77
+ export declare type DeserializedMessages = {
78
+ p2pMessages: DeserializedP2PMessage[];
79
+ broadcastMessages: DeserializedBroadcastMessage[];
80
+ };
81
+ /**
82
+ * Serializes messages payloads to base64 strings.
83
+ * @param messages
84
+ */
85
+ export declare function serializeMessages(messages: DeserializedMessages): SerializedMessages;
86
+ /**
87
+ * Deserialize messages payloads to Uint8Array.
88
+ * @param messages
89
+ */
90
+ export declare function deserializeMessages(messages: SerializedMessages): DeserializedMessages;
91
+ /**
92
+ * Deserializes a P2P message.
93
+ * @param message
94
+ */
95
+ export declare function deserializeP2PMessage(message: SerializedP2PMessage): DeserializedP2PMessage;
96
+ /**
97
+ * Deserializes a Broadcast message.
98
+ * @param message
99
+ */
100
+ export declare function deserializeBroadcastMessage(message: SerializedBroadcastMessage): DeserializedBroadcastMessage;
101
+ /**
102
+ * Serializes a P2P message.
103
+ * @param message
104
+ */
105
+ export declare function serializeP2PMessage(message: DeserializedP2PMessage): SerializedP2PMessage;
106
+ /**
107
+ * Serializes a Broadcast message.
108
+ * @param message
109
+ */
110
+ export declare function serializeBroadcastMessage(message: DeserializedBroadcastMessage): SerializedBroadcastMessage;
111
+ /**
112
+ * Gets commonkeyChain from DKLS keyShare
113
+ * @param {Buffer} keyShare - DKLS keyShare
114
+ * @returns {string} commonKeychain in hex format
115
+ */
116
+ export declare function getCommonKeychain(keyShare: Buffer): string;
117
+ export declare function getDecodedReducedKeyShare(reducedKeyShare: Buffer | Uint8Array): ReducedKeyShare;
118
+ export {};
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa-dkls/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.getDecodedReducedKeyShare = exports.getCommonKeychain = exports.serializeBroadcastMessage = exports.serializeP2PMessage = exports.deserializeBroadcastMessage = exports.deserializeP2PMessage = exports.deserializeMessages = exports.serializeMessages = exports.ReducedKeyShareType = exports.DsgState = exports.DkgState = void 0;
30
+ const assert_1 = __importDefault(require("assert"));
31
+ const cbor_x_1 = require("cbor-x");
32
+ const t = __importStar(require("io-ts"));
33
+ const Either_1 = require("fp-ts/Either");
34
+ var DkgState;
35
+ (function (DkgState) {
36
+ DkgState[DkgState["Uninitialized"] = 0] = "Uninitialized";
37
+ DkgState[DkgState["Round1"] = 1] = "Round1";
38
+ DkgState[DkgState["Round2"] = 2] = "Round2";
39
+ DkgState[DkgState["Round3"] = 3] = "Round3";
40
+ DkgState[DkgState["Round4"] = 4] = "Round4";
41
+ DkgState[DkgState["Complete"] = 5] = "Complete";
42
+ DkgState[DkgState["InvalidState"] = 6] = "InvalidState";
43
+ })(DkgState = exports.DkgState || (exports.DkgState = {}));
44
+ var DsgState;
45
+ (function (DsgState) {
46
+ DsgState[DsgState["Uninitialized"] = 0] = "Uninitialized";
47
+ DsgState[DsgState["Round1"] = 1] = "Round1";
48
+ DsgState[DsgState["Round2"] = 2] = "Round2";
49
+ DsgState[DsgState["Round3"] = 3] = "Round3";
50
+ DsgState[DsgState["Round4"] = 4] = "Round4";
51
+ DsgState[DsgState["Complete"] = 5] = "Complete";
52
+ DsgState[DsgState["InvalidState"] = 6] = "InvalidState";
53
+ })(DsgState = exports.DsgState || (exports.DsgState = {}));
54
+ exports.ReducedKeyShareType = t.type({
55
+ bigSList: t.array(t.array(t.number)),
56
+ xList: t.array(t.array(t.number)),
57
+ rootChainCode: t.array(t.number),
58
+ prv: t.array(t.number),
59
+ pub: t.array(t.number),
60
+ });
61
+ /**
62
+ * Serializes messages payloads to base64 strings.
63
+ * @param messages
64
+ */
65
+ function serializeMessages(messages) {
66
+ return {
67
+ p2pMessages: messages.p2pMessages.map(serializeP2PMessage),
68
+ broadcastMessages: messages.broadcastMessages.map(serializeBroadcastMessage),
69
+ };
70
+ }
71
+ exports.serializeMessages = serializeMessages;
72
+ /**
73
+ * Deserialize messages payloads to Uint8Array.
74
+ * @param messages
75
+ */
76
+ function deserializeMessages(messages) {
77
+ return {
78
+ p2pMessages: messages.p2pMessages.map(deserializeP2PMessage),
79
+ broadcastMessages: messages.broadcastMessages.map(deserializeBroadcastMessage),
80
+ };
81
+ }
82
+ exports.deserializeMessages = deserializeMessages;
83
+ /**
84
+ * Deserializes a P2P message.
85
+ * @param message
86
+ */
87
+ function deserializeP2PMessage(message) {
88
+ return {
89
+ to: message.to,
90
+ from: message.from,
91
+ payload: new Uint8Array(Buffer.from(message.payload, 'base64')),
92
+ commitment: message.commitment ? new Uint8Array(Buffer.from(message.commitment, 'hex')) : undefined,
93
+ };
94
+ }
95
+ exports.deserializeP2PMessage = deserializeP2PMessage;
96
+ /**
97
+ * Deserializes a Broadcast message.
98
+ * @param message
99
+ */
100
+ function deserializeBroadcastMessage(message) {
101
+ return {
102
+ from: message.from,
103
+ payload: new Uint8Array(Buffer.from(message.payload, 'base64')),
104
+ signatureR: message.signatureR ? new Uint8Array(Buffer.from(message.signatureR, 'base64')) : undefined,
105
+ };
106
+ }
107
+ exports.deserializeBroadcastMessage = deserializeBroadcastMessage;
108
+ /**
109
+ * Serializes a P2P message.
110
+ * @param message
111
+ */
112
+ function serializeP2PMessage(message) {
113
+ return {
114
+ to: message.to,
115
+ from: message.from,
116
+ payload: Buffer.from(message.payload).toString('base64'),
117
+ commitment: message.commitment ? Buffer.from(message.commitment).toString('hex') : undefined,
118
+ };
119
+ }
120
+ exports.serializeP2PMessage = serializeP2PMessage;
121
+ /**
122
+ * Serializes a Broadcast message.
123
+ * @param message
124
+ */
125
+ function serializeBroadcastMessage(message) {
126
+ return {
127
+ from: message.from,
128
+ payload: Buffer.from(message.payload).toString('base64'),
129
+ signatureR: message.signatureR ? Buffer.from(message.signatureR).toString('base64') : undefined,
130
+ };
131
+ }
132
+ exports.serializeBroadcastMessage = serializeBroadcastMessage;
133
+ /**
134
+ * Gets commonkeyChain from DKLS keyShare
135
+ * @param {Buffer} keyShare - DKLS keyShare
136
+ * @returns {string} commonKeychain in hex format
137
+ */
138
+ function getCommonKeychain(keyShare) {
139
+ const parsedKeyShare = (0, cbor_x_1.decode)(keyShare);
140
+ (0, assert_1.default)(parsedKeyShare.public_key, 'public_key not found in keyShare');
141
+ (0, assert_1.default)(parsedKeyShare.root_chain_code, 'root_chain_code not found in public_key');
142
+ const publicKey = Buffer.from(parsedKeyShare.public_key).toString('hex');
143
+ const rootChainCode = Buffer.from(parsedKeyShare.root_chain_code).toString('hex');
144
+ return publicKey + rootChainCode;
145
+ }
146
+ exports.getCommonKeychain = getCommonKeychain;
147
+ function getDecodedReducedKeyShare(reducedKeyShare) {
148
+ const decoded = exports.ReducedKeyShareType.decode((0, cbor_x_1.decode)(reducedKeyShare));
149
+ if ((0, Either_1.isLeft)(decoded)) {
150
+ throw new Error(`Unable to parse reducedKeyShare: ${decoded.left}`);
151
+ }
152
+ return decoded.right;
153
+ }
154
+ exports.getDecodedReducedKeyShare = getDecodedReducedKeyShare;
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhLWRrbHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWdDO0FBQ2hDLHlDQUEyQjtBQUUzQix5Q0FBc0M7QUFpQnRDLElBQVksUUFRWDtBQVJELFdBQVksUUFBUTtJQUNsQix5REFBaUIsQ0FBQTtJQUNqQiwyQ0FBTSxDQUFBO0lBQ04sMkNBQU0sQ0FBQTtJQUNOLDJDQUFNLENBQUE7SUFDTiwyQ0FBTSxDQUFBO0lBQ04sK0NBQVEsQ0FBQTtJQUNSLHVEQUFZLENBQUE7QUFDZCxDQUFDLEVBUlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFRbkI7QUFFRCxJQUFZLFFBUVg7QUFSRCxXQUFZLFFBQVE7SUFDbEIseURBQWEsQ0FBQTtJQUNiLDJDQUFNLENBQUE7SUFDTiwyQ0FBTSxDQUFBO0lBQ04sMkNBQU0sQ0FBQTtJQUNOLDJDQUFNLENBQUE7SUFDTiwrQ0FBUSxDQUFBO0lBQ1IsdURBQVksQ0FBQTtBQUNkLENBQUMsRUFSVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQVFuQjtBQXVCWSxRQUFBLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsYUFBYSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFB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QVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUNoRyxDQUFDO0FBQ0osQ0FBQztBQU5ELDhEQU1DO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFFBQWdCO0lBQ2hELE1BQU0sY0FBYyxHQUFHLElBQUEsZUFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLElBQUEsZ0JBQU0sRUFBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDdEUsSUFBQSxnQkFBTSxFQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUseUNBQXlDLENBQUMsQ0FBQztJQUNsRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sU0FBUyxHQUFHLGFBQWEsQ0FBQztBQUNuQyxDQUFDO0FBUEQsOENBT0M7QUFFRCxTQUFnQix5QkFBeUIsQ0FBQyxlQUFvQztJQUM1RSxNQUFNLE9BQU8sR0FBRywyQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBQSxlQUFNLEVBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNwRSxJQUFJLElBQUEsZUFBTSxFQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ3JFO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUM7QUFORCw4REFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGRlY29kZSB9IGZyb20gJ2Nib3IteCc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IFhTaGFyZSB9IGZyb20gJy4uL2VjZHNhL3R5cGVzJztcbmltcG9ydCB7IGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5cbi8vIEJyb2FkY2FzdCBtZXNzYWdlIG1lYW50IHRvIGJlIHNlbnQgdG8gbXVsdGlwbGUgcGFydGllc1xuaW50ZXJmYWNlIEJyb2FkY2FzdE1lc3NhZ2U8VD4ge1xuICBwYXlsb2FkOiBUO1xuICBmcm9tOiBudW1iZXI7XG4gIHNpZ25hdHVyZVI/OiBUO1xufVxuXG4vLyBQMlAgbWVzc2FnZSBtZWFudCB0byBiZSBzZW50IHRvIGEgc3BlY2lmaWMgcGFydHlcbmludGVyZmFjZSBQMlBNZXNzYWdlPFQsIEc+IHtcbiAgcGF5bG9hZDogVDtcbiAgZnJvbTogbnVtYmVyO1xuICBjb21taXRtZW50PzogRztcbiAgdG86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gRGtnU3RhdGUge1xuICBVbmluaXRpYWxpemVkID0gMCxcbiAgUm91bmQxLFxuICBSb3VuZDIsXG4gIFJvdW5kMyxcbiAgUm91bmQ0LFxuICBDb21wbGV0ZSxcbiAgSW52YWxpZFN0YXRlLFxufVxuXG5leHBvcnQgZW51bSBEc2dTdGF0ZSB7XG4gIFVuaW5pdGlhbGl6ZWQsXG4gIFJvdW5kMSxcbiAgUm91bmQyLFxuICBSb3VuZDMsXG4gIFJvdW5kNCxcbiAgQ29tcGxldGUsXG4gIEludmFsaWRTdGF0ZSxcbn1cblxuZXhwb3J0IHR5cGUgQXV0aEVuY01lc3NhZ2UgPSB7XG4gIGVuY3J5cHRlZE1lc3NhZ2U6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQXV0aE1lc3NhZ2UgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgc2lnbmF0dXJlOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgUGFydHlHcGdLZXkgPSB7XG4gIHBhcnR5SWQ6IG51bWJlcjtcbiAgZ3BnS2V5OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRGtsc1NpZ25hdHVyZTxUPiA9IHtcbiAgUjogVDtcbiAgUzogVDtcbn07XG5leHBvcnQgdHlwZSBSZXRyb2ZpdERhdGEgPSB7XG4gIHhTaGFyZTogUGFydGlhbDxYU2hhcmU+O1xuICB4aUxpc3Q/OiBudW1iZXJbXVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IFJlZHVjZWRLZXlTaGFyZVR5cGUgPSB0LnR5cGUoe1xuICBiaWdTTGlzdDogdC5hcnJheSh0LmFycmF5KHQubnVtYmVyKSksXG4gIHhMaXN0OiB0LmFycmF5KHQuYXJyYXkodC5udW1iZXIpKSxcbiAgcm9vdENoYWluQ29kZTogdC5hcnJheSh0Lm51bWJlciksXG4gIHBydjogdC5hcnJheSh0Lm51bWJlciksXG4gIHB1YjogdC5hcnJheSh0Lm51bWJlciksXG59KTtcblxuZXhwb3J0IHR5cGUgUmVkdWNlZEtleVNoYXJlID0gdC5UeXBlT2Y8dHlwZW9mIFJlZHVjZWRLZXlTaGFyZVR5cGU+O1xuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkQnJvYWRjYXN0TWVzc2FnZSA9IEJyb2FkY2FzdE1lc3NhZ2U8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2UgPSBCcm9hZGNhc3RNZXNzYWdlPFVpbnQ4QXJyYXk+O1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFAyUE1lc3NhZ2UgPSBQMlBNZXNzYWdlPHN0cmluZywgc3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFAyUE1lc3NhZ2UgPSBQMlBNZXNzYWdlPFVpbnQ4QXJyYXksIFVpbnQ4QXJyYXk+O1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZERrbHNTaWduYXR1cmUgPSBEa2xzU2lnbmF0dXJlPHN0cmluZz47XG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWREa2xzU2lnbmF0dXJlID0gRGtsc1NpZ25hdHVyZTxVaW50OEFycmF5PjtcbmV4cG9ydCB0eXBlIEF1dGhFbmNQMlBNZXNzYWdlID0gUDJQTWVzc2FnZTxBdXRoRW5jTWVzc2FnZSwgc3RyaW5nPjtcbmV4cG9ydCB0eXBlIEF1dGhCcm9hZGNhc3RNZXNzYWdlID0gQnJvYWRjYXN0TWVzc2FnZTxBdXRoTWVzc2FnZT47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkTWVzc2FnZXMgPSB7XG4gIHAycE1lc3NhZ2VzOiBTZXJpYWxpemVkUDJQTWVzc2FnZVtdO1xuICBicm9hZGNhc3RNZXNzYWdlczogU2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2VbXTtcbn07XG5leHBvcnQgdHlwZSBBdXRoRW5jTWVzc2FnZXMgPSB7XG4gIHAycE1lc3NhZ2VzOiBBdXRoRW5jUDJQTWVzc2FnZVtdO1xuICBicm9hZGNhc3RNZXNzYWdlczogQXV0aEJyb2FkY2FzdE1lc3NhZ2VbXTtcbn07XG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWRNZXNzYWdlcyA9IHtcbiAgcDJwTWVzc2FnZXM6IERlc2VyaWFsaXplZFAyUE1lc3NhZ2VbXTtcbiAgYnJvYWRjYXN0TWVzc2FnZXM6IERlc2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2VbXTtcbn07XG5cbi8qKlxuICogU2VyaWFsaXplcyBtZXNzYWdlcyBwYXlsb2FkcyB0byBiYXNlNjQgc3RyaW5ncy5cbiAqIEBwYXJhbSBtZXNzYWdlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplTWVzc2FnZXMobWVzc2FnZXM6IERlc2VyaWFsaXplZE1lc3NhZ2VzKTogU2VyaWFsaXplZE1lc3NhZ2VzIHtcbiAgcmV0dXJuIHtcbiAgICBwMnBNZXNzYWdlczogbWVzc2FnZXMucDJwTWVzc2FnZXMubWFwKHNlcmlhbGl6ZVAyUE1lc3NhZ2UpLFxuICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBtZXNzYWdlcy5icm9hZGNhc3RNZXNzYWdlcy5tYXAoc2VyaWFsaXplQnJvYWRjYXN0TWVzc2FnZSksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemUgbWVzc2FnZXMgcGF5bG9hZHMgdG8gVWludDhBcnJheS5cbiAqIEBwYXJhbSBtZXNzYWdlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVNZXNzYWdlcyhtZXNzYWdlczogU2VyaWFsaXplZE1lc3NhZ2VzKTogRGVzZXJpYWxpemVkTWVzc2FnZXMge1xuICByZXR1cm4ge1xuICAgIHAycE1lc3NhZ2VzOiBtZXNzYWdlcy5wMnBNZXNzYWdlcy5tYXAoZGVzZXJpYWxpemVQMlBNZXNzYWdlKSxcbiAgICBicm9hZGNhc3RNZXNzYWdlczogbWVzc2FnZXMuYnJvYWRjYXN0TWVzc2FnZXMubWFwKGRlc2VyaWFsaXplQnJvYWRjYXN0TWVzc2FnZSksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgUDJQIG1lc3NhZ2UuXG4gKiBAcGFyYW0gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVQMlBNZXNzYWdlKG1lc3NhZ2U6IFNlcmlhbGl6ZWRQMlBNZXNzYWdlKTogRGVzZXJpYWxpemVkUDJQTWVzc2FnZSB7XG4gIHJldHVybiB7XG4gICAgdG86IG1lc3NhZ2UudG8sXG4gICAgZnJvbTogbWVzc2FnZS5mcm9tLFxuICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKG1lc3NhZ2UucGF5bG9hZCwgJ2Jhc2U2NCcpKSxcbiAgICBjb21taXRtZW50OiBtZXNzYWdlLmNvbW1pdG1lbnQgPyBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShtZXNzYWdlLmNvbW1pdG1lbnQsICdoZXgnKSkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgQnJvYWRjYXN0IG1lc3NhZ2UuXG4gKiBAcGFyYW0gbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVCcm9hZGNhc3RNZXNzYWdlKG1lc3NhZ2U6IFNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlKTogRGVzZXJpYWxpemVkQnJvYWRjYXN0TWVzc2FnZSB7XG4gIHJldHVybiB7XG4gICAgZnJvbTogbWVzc2FnZS5mcm9tLFxuICAgIHBheWxvYWQ6IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKG1lc3NhZ2UucGF5bG9hZCwgJ2Jhc2U2NCcpKSxcbiAgICBzaWduYXR1cmVSOiBtZXNzYWdlLnNpZ25hdHVyZVIgPyBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShtZXNzYWdlLnNpZ25hdHVyZVIsICdiYXNlNjQnKSkgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIFAyUCBtZXNzYWdlLlxuICogQHBhcmFtIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVAyUE1lc3NhZ2UobWVzc2FnZTogRGVzZXJpYWxpemVkUDJQTWVzc2FnZSk6IFNlcmlhbGl6ZWRQMlBNZXNzYWdlIHtcbiAgcmV0dXJuIHtcbiAgICB0bzogbWVzc2FnZS50byxcbiAgICBmcm9tOiBtZXNzYWdlLmZyb20sXG4gICAgcGF5bG9hZDogQnVmZmVyLmZyb20obWVzc2FnZS5wYXlsb2FkKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgY29tbWl0bWVudDogbWVzc2FnZS5jb21taXRtZW50ID8gQnVmZmVyLmZyb20obWVzc2FnZS5jb21taXRtZW50KS50b1N0cmluZygnaGV4JykgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIEJyb2FkY2FzdCBtZXNzYWdlLlxuICogQHBhcmFtIG1lc3NhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZUJyb2FkY2FzdE1lc3NhZ2UobWVzc2FnZTogRGVzZXJpYWxpemVkQnJvYWRjYXN0TWVzc2FnZSk6IFNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlIHtcbiAgcmV0dXJuIHtcbiAgICBmcm9tOiBtZXNzYWdlLmZyb20sXG4gICAgcGF5bG9hZDogQnVmZmVyLmZyb20obWVzc2FnZS5wYXlsb2FkKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgc2lnbmF0dXJlUjogbWVzc2FnZS5zaWduYXR1cmVSID8gQnVmZmVyLmZyb20obWVzc2FnZS5zaWduYXR1cmVSKS50b1N0cmluZygnYmFzZTY0JykgOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbi8qKlxuICogR2V0cyBjb21tb25rZXlDaGFpbiBmcm9tIERLTFMga2V5U2hhcmVcbiAqIEBwYXJhbSB7QnVmZmVyfSBrZXlTaGFyZSAtIERLTFMga2V5U2hhcmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGNvbW1vbktleWNoYWluIGluIGhleCBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1vbktleWNoYWluKGtleVNoYXJlOiBCdWZmZXIpOiBzdHJpbmcge1xuICBjb25zdCBwYXJzZWRLZXlTaGFyZSA9IGRlY29kZShrZXlTaGFyZSk7XG4gIGFzc2VydChwYXJzZWRLZXlTaGFyZS5wdWJsaWNfa2V5LCAncHVibGljX2tleSBub3QgZm91bmQgaW4ga2V5U2hhcmUnKTtcbiAgYXNzZXJ0KHBhcnNlZEtleVNoYXJlLnJvb3RfY2hhaW5fY29kZSwgJ3Jvb3RfY2hhaW5fY29kZSBub3QgZm91bmQgaW4gcHVibGljX2tleScpO1xuICBjb25zdCBwdWJsaWNLZXkgPSBCdWZmZXIuZnJvbShwYXJzZWRLZXlTaGFyZS5wdWJsaWNfa2V5KS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IHJvb3RDaGFpbkNvZGUgPSBCdWZmZXIuZnJvbShwYXJzZWRLZXlTaGFyZS5yb290X2NoYWluX2NvZGUpLnRvU3RyaW5nKCdoZXgnKTtcbiAgcmV0dXJuIHB1YmxpY0tleSArIHJvb3RDaGFpbkNvZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWNvZGVkUmVkdWNlZEtleVNoYXJlKHJlZHVjZWRLZXlTaGFyZTogQnVmZmVyIHwgVWludDhBcnJheSk6IFJlZHVjZWRLZXlTaGFyZSB7XG4gIGNvbnN0IGRlY29kZWQgPSBSZWR1Y2VkS2V5U2hhcmVUeXBlLmRlY29kZShkZWNvZGUocmVkdWNlZEtleVNoYXJlKSk7XG4gIGlmIChpc0xlZnQoZGVjb2RlZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSByZWR1Y2VkS2V5U2hhcmU6ICR7ZGVjb2RlZC5sZWZ0fWApO1xuICB9XG4gIHJldHVybiBkZWNvZGVkLnJpZ2h0O1xufVxuIl19
@@ -0,0 +1,28 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { DeserializedDklsSignature, DeserializedMessages, RetrofitData } from './types';
4
+ import { Hash } from 'crypto';
5
+ import { Dsg } from './dsg';
6
+ import { Dkg } from './dkg';
7
+ /**
8
+ * Combines partial signatures from parties participating in DSG.
9
+ * @param round4MessagePayloads - round 4 message payloads from participating parties
10
+ * @param rHex - hex representation of the r value in the signature
11
+ * @returns {DeserializedMessages} - messages to send to other parties for the next round
12
+ */
13
+ export declare function combinePartialSignatures(round4MessagePayloads: Uint8Array[], rHex: string): DeserializedDklsSignature;
14
+ /**
15
+ * Verify a DKLs Signature and serialize it to recid:r:s:publickey format.
16
+ * @param message - message that was signed.
17
+ * @param dklsSignature - R and S values of the ECDSA signature.
18
+ * @param commonKeychain - public key appended to chaincode in hex.
19
+ * @param derivationPath - optional derivation path to derive on the commonkeychain before verification.
20
+ * @param hash - optional hash function to apply on message before verifying. Default is sha256.
21
+ * @param shouldHash - flag to determine whether message should be hashed before verifying.
22
+ * @returns {string} - serialized signature in `recid:r:s:publickey` format
23
+ */
24
+ export declare function verifyAndConvertDklsSignature(message: Buffer, dklsSignature: DeserializedDklsSignature, commonKeychain: string, derivationPath?: string, hash?: Hash, shouldHash?: boolean): string;
25
+ export declare function executeTillRound(round: number, party1Dsg: Dsg, party2Dsg: Dsg): Promise<DeserializedMessages[] | DeserializedDklsSignature>;
26
+ export declare function generateDKGKeyShares(retrofitDataA?: RetrofitData, retrofitDataB?: RetrofitData, retrofitDataC?: RetrofitData, seedUser?: Buffer, seedBackup?: Buffer, seedBitgo?: Buffer): Promise<[Dkg, Dkg, Dkg]>;
27
+ export declare function generate2of2KeyShares(retrofitDataA?: RetrofitData, retrofitDataB?: RetrofitData): Promise<[Dkg, Dkg]>;
28
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa-dkls/util.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxF,OAAO,EAAc,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAK5B;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,qBAAqB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,yBAAyB,CAgBrH;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,yBAAyB,EACxC,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,IAAI,EACX,UAAU,UAAO,GAChB,MAAM,CA6BR;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,oBAAoB,EAAE,GAAG,yBAAyB,CAAC,CAgD7D;AAED,wBAAsB,oBAAoB,CACxC,aAAa,CAAC,EAAE,YAAY,EAC5B,aAAa,CAAC,EAAE,YAAY,EAC5B,aAAa,CAAC,EAAE,YAAY,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CA6E1B;AAED,wBAAsB,qBAAqB,CACzC,aAAa,CAAC,EAAE,YAAY,EAC5B,aAAa,CAAC,EAAE,YAAY,GAC3B,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAsCrB"}