@bitgo/sdk-core 38.22.0 → 39.0.0

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 (54) hide show
  1. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +37 -3
  2. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  3. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  4. package/dist/src/bitgo/errors.d.ts +8 -1
  5. package/dist/src/bitgo/errors.d.ts.map +1 -1
  6. package/dist/src/bitgo/errors.js +13 -3
  7. package/dist/src/bitgo/keychain/iKeychains.d.ts +20 -0
  8. package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
  9. package/dist/src/bitgo/keychain/iKeychains.js +1 -1
  10. package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
  11. package/dist/src/bitgo/keychain/keychains.js +31 -1
  12. package/dist/src/bitgo/safe/index.d.ts +1 -0
  13. package/dist/src/bitgo/safe/index.d.ts.map +1 -1
  14. package/dist/src/bitgo/safe/index.js +2 -1
  15. package/dist/src/bitgo/safe/recovery.d.ts +92 -0
  16. package/dist/src/bitgo/safe/recovery.d.ts.map +1 -0
  17. package/dist/src/bitgo/safe/recovery.js +148 -0
  18. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +27 -0
  19. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
  20. package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +91 -1
  21. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +1 -3
  22. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -1
  23. package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +42 -70
  24. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts +40 -21
  25. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.d.ts.map +1 -1
  26. package/dist/src/bitgo/utils/tss/eddsa/typesEddsaMPCv2.js +2 -13
  27. package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
  28. package/dist/src/bitgo/utils/tss/recipientUtils.js +12 -1
  29. package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -1
  30. package/dist/src/bitgo/wallet/BuildParams.d.ts +1 -0
  31. package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
  32. package/dist/src/bitgo/wallet/BuildParams.js +5 -1
  33. package/dist/src/bitgo/wallet/iWallet.d.ts +7 -0
  34. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  35. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  36. package/dist/src/bitgo/wallet/iWallets.d.ts +1 -0
  37. package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
  38. package/dist/src/bitgo/wallet/iWallets.js +1 -1
  39. package/dist/src/bitgo/wallet/wallet.d.ts +32 -1
  40. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  41. package/dist/src/bitgo/wallet/wallet.js +199 -81
  42. package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
  43. package/dist/src/bitgo/wallet/wallets.js +23 -9
  44. package/dist/test/unit/bitgo/recovery/initiate.js +1 -30
  45. package/dist/test/unit/bitgo/safe/recovery.d.ts +2 -0
  46. package/dist/test/unit/bitgo/safe/recovery.d.ts.map +1 -0
  47. package/dist/test/unit/bitgo/safe/recovery.js +313 -0
  48. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +422 -5
  49. package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +192 -23
  50. package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +37 -1
  51. package/dist/test/unit/bitgo/wallet/BuildParams.js +14 -1
  52. package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +180 -2
  53. package/dist/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +6 -6
@@ -0,0 +1,92 @@
1
+ /**
2
+ * @prettier
3
+ *
4
+ * @experimental WRW-facing safe recovery entry points.
5
+ */
6
+ import { Buffer } from 'buffer';
7
+ import type { RootKeyType } from '@bitgo/public-types';
8
+ import { BitGoBase } from '../bitgoBase';
9
+ export type DecryptedMpcSafeRoot = {
10
+ signing: Buffer;
11
+ vrf: Buffer;
12
+ };
13
+ export type OnchainSafeRoot = {
14
+ user: string;
15
+ backup: string;
16
+ bitgo: string;
17
+ };
18
+ export type MpcSafeRoot = {
19
+ user: DecryptedMpcSafeRoot;
20
+ backup: DecryptedMpcSafeRoot;
21
+ bitgo: string;
22
+ };
23
+ export type Secp256k1MultisigChildKeys = {
24
+ user: {
25
+ prv: string;
26
+ pub: string;
27
+ };
28
+ backup: {
29
+ prv: string;
30
+ pub: string;
31
+ };
32
+ bitgo: {
33
+ pub: string;
34
+ };
35
+ };
36
+ export type EcdsaMpcChildKeys = {
37
+ commonKeychain: string;
38
+ user: string;
39
+ backup: string;
40
+ };
41
+ export type DerivedSafeWalletKeys = {
42
+ slot: 'secp256k1Multisig';
43
+ path: string;
44
+ keys: Secp256k1MultisigChildKeys;
45
+ } | {
46
+ slot: 'ecdsaMpc';
47
+ path: string;
48
+ keys: EcdsaMpcChildKeys;
49
+ };
50
+ export type SafeRecoverKeyParams = {
51
+ userKey: string;
52
+ backupKey: string;
53
+ bitgoKey: string;
54
+ walletPassphrase?: string;
55
+ };
56
+ export type DecryptedSafeRoots = {
57
+ secp256k1Multisig: OnchainSafeRoot;
58
+ ed25519Multisig: OnchainSafeRoot;
59
+ ecdsaMpc: MpcSafeRoot;
60
+ eddsaMpc: MpcSafeRoot;
61
+ };
62
+ export declare function decryptSafeKeycard(params: {
63
+ bitgo: BitGoBase;
64
+ userKeyBox: string;
65
+ backupKeyBox: string;
66
+ bitgoKeyBox: string;
67
+ password: string;
68
+ }): Promise<DecryptedSafeRoots>;
69
+ /**
70
+ * Derives a Safe wallet's child keys at the BIP44 path for a given slot and account.
71
+ * Only `secp256k1Multisig` (slot 1) is supported for now; the remaining slots throw
72
+ * until their derivation arms land (WCN-2736/WCN-2737/WCN-2894).
73
+ */
74
+ export declare function deriveSafeWalletKeys(params: {
75
+ coin: string;
76
+ slot: RootKeyType;
77
+ account: number;
78
+ roots: DecryptedSafeRoots;
79
+ }): Promise<DerivedSafeWalletKeys>;
80
+ /**
81
+ * Builds the key fields `coin.recover()` expects from derived Safe child keys.
82
+ * Only `secp256k1Multisig` (slot 1) is supported for now. Signed mode re-encrypts the
83
+ * child xprvs under a fresh ephemeral passphrase (v1/SJCL); unsigned mode returns pubs.
84
+ */
85
+ export declare function buildSafeRecoverKeyParams(params: {
86
+ bitgo: BitGoBase;
87
+ coin: string;
88
+ slot: RootKeyType;
89
+ keys: Secp256k1MultisigChildKeys;
90
+ mode: 'signed' | 'unsigned';
91
+ }): Promise<SafeRecoverKeyParams>;
92
+ //# sourceMappingURL=recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/recovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,MAAM,MAAM,oBAAoB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9E,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,0BAA0B,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,EAAE,eAAe,CAAC;IACnC,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6C9B;AAUD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,kBAAkB,CAAC;CAC3B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmDjC;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC7B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgChC"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decryptSafeKeycard = decryptSafeKeycard;
4
+ exports.deriveSafeWalletKeys = deriveSafeWalletKeys;
5
+ exports.buildSafeRecoverKeyParams = buildSafeRecoverKeyParams;
6
+ const crypto_1 = require("crypto");
7
+ const utxo_lib_1 = require("@bitgo/utxo-lib");
8
+ const statics_1 = require("@bitgo/statics");
9
+ const sdk_lib_safes_1 = require("@bitgo/sdk-lib-safes");
10
+ const sdk_lib_mpc_1 = require("@bitgo/sdk-lib-mpc");
11
+ const errors_1 = require("../errors");
12
+ const keyShareEnvelope_1 = require("../utils/tss/keyShareEnvelope");
13
+ async function decryptSafeKeycard(params) {
14
+ const { bitgo, userKeyBox, backupKeyBox, bitgoKeyBox, password } = params;
15
+ const userRoots = (0, sdk_lib_safes_1.parseSafeKeycardBox)(userKeyBox);
16
+ const backupRoots = (0, sdk_lib_safes_1.parseSafeKeycardBox)(backupKeyBox);
17
+ const bitgoRoots = (0, sdk_lib_safes_1.parseSafeKeycardBox)(bitgoKeyBox);
18
+ const decryptRoot = async (root) => {
19
+ try {
20
+ return await bitgo.decrypt({ input: root, password });
21
+ }
22
+ catch (e) {
23
+ throw new errors_1.IncorrectPasswordError('unable to decrypt the safe keycard with the provided password', e);
24
+ }
25
+ };
26
+ const unwrapMpcRoot = (decrypted) => {
27
+ try {
28
+ return (0, keyShareEnvelope_1.parseSafeMpcKeyEnvelopes)(decrypted);
29
+ }
30
+ catch (e) {
31
+ throw new errors_1.IncorrectPasswordError('unable to decrypt the safe keycard with the provided password', e);
32
+ }
33
+ };
34
+ return {
35
+ secp256k1Multisig: {
36
+ user: await decryptRoot(userRoots.secp256k1Multisig),
37
+ backup: await decryptRoot(backupRoots.secp256k1Multisig),
38
+ bitgo: bitgoRoots.secp256k1Multisig,
39
+ },
40
+ ed25519Multisig: {
41
+ user: await decryptRoot(userRoots.ed25519Multisig),
42
+ backup: await decryptRoot(backupRoots.ed25519Multisig),
43
+ bitgo: bitgoRoots.ed25519Multisig,
44
+ },
45
+ ecdsaMpc: {
46
+ user: unwrapMpcRoot(await decryptRoot(userRoots.ecdsaMpc)),
47
+ backup: unwrapMpcRoot(await decryptRoot(backupRoots.ecdsaMpc)),
48
+ bitgo: bitgoRoots.ecdsaMpc,
49
+ },
50
+ eddsaMpc: {
51
+ user: unwrapMpcRoot(await decryptRoot(userRoots.eddsaMpc)),
52
+ backup: unwrapMpcRoot(await decryptRoot(backupRoots.eddsaMpc)),
53
+ bitgo: bitgoRoots.eddsaMpc,
54
+ },
55
+ };
56
+ }
57
+ function buildSafeUserPath(coinType, slotOrdinal, account) {
58
+ return `m/44'/${coinType}'/${slotOrdinal}'/${account}'`;
59
+ }
60
+ function buildSafeCosignerPath(coinType, slotOrdinal, account) {
61
+ return `m/44/${coinType}/${slotOrdinal}/${account}`;
62
+ }
63
+ /**
64
+ * Derives a Safe wallet's child keys at the BIP44 path for a given slot and account.
65
+ * Only `secp256k1Multisig` (slot 1) is supported for now; the remaining slots throw
66
+ * until their derivation arms land (WCN-2736/WCN-2737/WCN-2894).
67
+ */
68
+ async function deriveSafeWalletKeys(params) {
69
+ if (!Number.isInteger(params.account) || params.account < 0 || params.account > statics_1.MAX_BIP32_INDEX) {
70
+ throw new Error(`deriveSafeWalletKeys: invalid account '${params.account}'`);
71
+ }
72
+ const coinType = statics_1.coins.get(params.coin).bip44CoinType;
73
+ if (coinType === undefined) {
74
+ throw new Error(`Coin '${params.coin}' has no BIP44 coin type and cannot derive a safe child`);
75
+ }
76
+ const slotOrdinal = statics_1.SAFE_ROOT_SLOT_ORDINALS[params.slot];
77
+ const { account, roots } = params;
78
+ if (params.slot === 'secp256k1Multisig') {
79
+ const root = roots.secp256k1Multisig;
80
+ const user = utxo_lib_1.bip32.fromBase58(root.user).derivePath(buildSafeUserPath(coinType, slotOrdinal, account));
81
+ const backup = utxo_lib_1.bip32.fromBase58(root.backup).derivePath(buildSafeCosignerPath(coinType, slotOrdinal, account));
82
+ const bitgo = utxo_lib_1.bip32.fromBase58(root.bitgo).derivePath(buildSafeCosignerPath(coinType, slotOrdinal, account));
83
+ if (!user.privateKey || !backup.privateKey) {
84
+ throw new Error('deriveSafeWalletKeys: user and backup roots must be private (xprv)');
85
+ }
86
+ if (bitgo.privateKey) {
87
+ throw new Error('deriveSafeWalletKeys: bitgo root must be public (xpub)');
88
+ }
89
+ return {
90
+ slot: 'secp256k1Multisig',
91
+ path: buildSafeUserPath(coinType, slotOrdinal, account),
92
+ keys: {
93
+ user: { prv: user.toBase58(), pub: user.neutered().toBase58() },
94
+ backup: { prv: backup.toBase58(), pub: backup.neutered().toBase58() },
95
+ bitgo: { pub: bitgo.neutered().toBase58() },
96
+ },
97
+ };
98
+ }
99
+ if (params.slot === 'ecdsaMpc') {
100
+ const { commonKeychain, userChild, backupChild } = await sdk_lib_mpc_1.DklsVrfUtils.deriveSafeEcdsaMpcChild({
101
+ userRoot: roots.ecdsaMpc.user,
102
+ backupRoot: roots.ecdsaMpc.backup,
103
+ account,
104
+ coinType,
105
+ });
106
+ return {
107
+ slot: 'ecdsaMpc',
108
+ path: buildSafeUserPath(coinType, slotOrdinal, account),
109
+ keys: { commonKeychain, user: userChild, backup: backupChild },
110
+ };
111
+ }
112
+ throw new Error(`deriveSafeWalletKeys: slot '${params.slot}' is not supported yet`);
113
+ }
114
+ /**
115
+ * Builds the key fields `coin.recover()` expects from derived Safe child keys.
116
+ * Only `secp256k1Multisig` (slot 1) is supported for now. Signed mode re-encrypts the
117
+ * child xprvs under a fresh ephemeral passphrase (v1/SJCL); unsigned mode returns pubs.
118
+ */
119
+ async function buildSafeRecoverKeyParams(params) {
120
+ if (params.slot !== 'secp256k1Multisig') {
121
+ throw new Error(`buildSafeRecoverKeyParams: slot '${params.slot}' is not supported yet`);
122
+ }
123
+ const { bitgo, keys, mode } = params;
124
+ if (mode === 'unsigned') {
125
+ return {
126
+ userKey: keys.user.pub,
127
+ backupKey: keys.backup.pub,
128
+ bitgoKey: keys.bitgo.pub,
129
+ };
130
+ }
131
+ const userPrv = utxo_lib_1.bip32.fromBase58(keys.user.prv);
132
+ const backupPrv = utxo_lib_1.bip32.fromBase58(keys.backup.prv);
133
+ if (!userPrv.privateKey || !backupPrv.privateKey) {
134
+ throw new Error('buildSafeRecoverKeyParams: keys.user.prv and keys.backup.prv must be private xprvs');
135
+ }
136
+ const walletPassphrase = (0, crypto_1.randomBytes)(32).toString('hex');
137
+ const [userKey, backupKey] = await Promise.all([
138
+ bitgo.encrypt({ input: keys.user.prv, password: walletPassphrase, encryptionVersion: 1 }),
139
+ bitgo.encrypt({ input: keys.backup.prv, password: walletPassphrase, encryptionVersion: 1 }),
140
+ ]);
141
+ return {
142
+ userKey,
143
+ backupKey,
144
+ bitgoKey: keys.bitgo.pub,
145
+ walletPassphrase,
146
+ };
147
+ }
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3ZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc2FmZS9yZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSxnREFtREM7QUFlRCxvREF3REM7QUFPRCw4REFzQ0M7QUFwTkQsbUNBQXFDO0FBQ3JDLDhDQUF3QztBQUN4Qyw0Q0FBaUY7QUFFakYsd0RBQTJEO0FBQzNELG9EQUFrRDtBQUVsRCxzQ0FBbUQ7QUFDbkQsb0VBQXlFO0FBcUNsRSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFNeEM7SUFDQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUUxRSxNQUFNLFNBQVMsR0FBRyxJQUFBLG1DQUFtQixFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUEsbUNBQW1CLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBQSxtQ0FBbUIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUVwRCxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFtQixFQUFFO1FBQzFELElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLCtCQUFzQixDQUFDLCtEQUErRCxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLFNBQWlCLEVBQXdCLEVBQUU7UUFDaEUsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFBLDJDQUF3QixFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7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RCxNQUFNLE9BQU8sR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHLGdCQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRkFBb0YsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsb0JBQVcsRUFBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDekYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUM7S0FDNUYsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLE9BQU87UUFDUCxTQUFTO1FBQ1QsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztRQUN4QixnQkFBZ0I7S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICpcbiAqIEBleHBlcmltZW50YWwgV1JXLWZhY2luZyBzYWZlIHJlY292ZXJ5IGVudHJ5IHBvaW50cy5cbiAqL1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGNvaW5zLCBNQVhfQklQMzJfSU5ERVgsIFNBRkVfUk9PVF9TTE9UX09SRElOQUxTIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHR5cGUgeyBSb290S2V5VHlwZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgcGFyc2VTYWZlS2V5Y2FyZEJveCB9IGZyb20gJ0BiaXRnby9zZGstbGliLXNhZmVzJztcbmltcG9ydCB7IERrbHNWcmZVdGlscyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSW5jb3JyZWN0UGFzc3dvcmRFcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBwYXJzZVNhZmVNcGNLZXlFbnZlbG9wZXMgfSBmcm9tICcuLi91dGlscy90c3Mva2V5U2hhcmVFbnZlbG9wZSc7XG5cbmV4cG9ydCB0eXBlIERlY3J5cHRlZE1wY1NhZmVSb290ID0geyBzaWduaW5nOiBCdWZmZXI7IHZyZjogQnVmZmVyIH07XG5cbmV4cG9ydCB0eXBlIE9uY2hhaW5TYWZlUm9vdCA9IHsgdXNlcjogc3RyaW5nOyBiYWNrdXA6IHN0cmluZzsgYml0Z286IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgTXBjU2FmZVJvb3QgPSB7IHVzZXI6IERlY3J5cHRlZE1wY1NhZmVSb290OyBiYWNrdXA6IERlY3J5cHRlZE1wY1NhZmVSb290OyBiaXRnbzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIFNlY3AyNTZrMU11bHRpc2lnQ2hpbGRLZXlzID0ge1xuICB1c2VyOiB7IHBydjogc3RyaW5nOyBwdWI6IHN0cmluZyB9O1xuICBiYWNrdXA6IHsgcHJ2OiBzdHJpbmc7IHB1Yjogc3RyaW5nIH07XG4gIGJpdGdvOiB7IHB1Yjogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBFY2RzYU1wY0NoaWxkS2V5cyA9IHtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgdXNlcjogc3RyaW5nO1xuICBiYWNrdXA6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERlcml2ZWRTYWZlV2FsbGV0S2V5cyA9XG4gIHwgeyBzbG90OiAnc2VjcDI1NmsxTXVsdGlzaWcnOyBwYXRoOiBzdHJpbmc7IGtleXM6IFNlY3AyNTZrMU11bHRpc2lnQ2hpbGRLZXlzIH1cbiAgfCB7IHNsb3Q6ICdlY2RzYU1wYyc7IHBhdGg6IHN0cmluZzsga2V5czogRWNkc2FNcGNDaGlsZEtleXMgfTtcblxuZXhwb3J0IHR5cGUgU2FmZVJlY292ZXJLZXlQYXJhbXMgPSB7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIGJpdGdvS2V5OiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWNyeXB0ZWRTYWZlUm9vdHMgPSB7XG4gIHNlY3AyNTZrMU11bHRpc2lnOiBPbmNoYWluU2FmZVJvb3Q7XG4gIGVkMjU1MTlNdWx0aXNpZzogT25jaGFpblNhZmVSb290O1xuICBlY2RzYU1wYzogTXBjU2FmZVJvb3Q7XG4gIGVkZHNhTXBjOiBNcGNTYWZlUm9vdDtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWNyeXB0U2FmZUtleWNhcmQocGFyYW1zOiB7XG4gIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHVzZXJLZXlCb3g6IHN0cmluZztcbiAgYmFja3VwS2V5Qm94OiBzdHJpbmc7XG4gIGJpdGdvS2V5Qm94OiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59KTogUHJvbWlzZTxEZWNyeXB0ZWRTYWZlUm9vdHM+IHtcbiAgY29uc3QgeyBiaXRnbywgdXNlcktleUJveCwgYmFja3VwS2V5Qm94LCBiaXRnb0tleUJveCwgcGFzc3dvcmQgfSA9IHBhcmFtcztcblxuICBjb25zdCB1c2VyUm9vdHMgPSBwYXJzZVNhZmVLZXljYXJkQm94KHVzZXJLZXlCb3gpO1xuICBjb25zdCBiYWNrdXBSb290cyA9IHBhcnNlU2FmZUtleWNhcmRCb3goYmFja3VwS2V5Qm94KTtcbiAgY29uc3QgYml0Z29Sb290cyA9IHBhcnNlU2FmZUtleWNhcmRCb3goYml0Z29LZXlCb3gpO1xuXG4gIGNvbnN0IGRlY3J5cHRSb290ID0gYXN5bmMgKHJvb3Q6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBiaXRnby5kZWNyeXB0KHsgaW5wdXQ6IHJvb3QsIHBhc3N3b3JkIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbmNvcnJlY3RQYXNzd29yZEVycm9yKCd1bmFibGUgdG8gZGVjcnlwdCB0aGUgc2FmZSBrZXljYXJkIHdpdGggdGhlIHByb3ZpZGVkIHBhc3N3b3JkJywgZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHVud3JhcE1wY1Jvb3QgPSAoZGVjcnlwdGVkOiBzdHJpbmcpOiBEZWNyeXB0ZWRNcGNTYWZlUm9vdCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBwYXJzZVNhZmVNcGNLZXlFbnZlbG9wZXMoZGVjcnlwdGVkKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW5jb3JyZWN0UGFzc3dvcmRFcnJvcigndW5hYmxlIHRvIGRlY3J5cHQgdGhlIHNhZmUga2V5Y2FyZCB3aXRoIHRoZSBwcm92aWRlZCBwYXNzd29yZCcsIGUpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHNlY3AyNTZrMU11bHRpc2lnOiB7XG4gICAgICB1c2VyOiBhd2FpdCBkZWNyeXB0Um9vdCh1c2VyUm9vdHMuc2VjcDI1NmsxTXVsdGlzaWcpLFxuICAgICAgYmFja3VwOiBhd2FpdCBkZWNyeXB0Um9vdChiYWNrdXBSb290cy5zZWNwMjU2azFNdWx0aXNpZyksXG4gICAgICBiaXRnbzogYml0Z29Sb290cy5zZWNwMjU2azFNdWx0aXNpZyxcbiAgICB9LFxuICAgIGVkMjU1MTlNdWx0aXNpZzoge1xuICAgICAgdXNlcjogYXdhaXQgZGVjcnlwdFJvb3QodXNlclJvb3RzLmVkMjU1MTlNdWx0aXNpZyksXG4gICAgICBiYWNrdXA6IGF3YWl0IGRlY3J5cHRSb290KGJhY2t1cFJvb3RzLmVkMjU1MTlNdWx0aXNpZyksXG4gICAgICBiaXRnbzogYml0Z29Sb290cy5lZDI1NTE5TXVsdGlzaWcsXG4gICAgfSxcbiAgICBlY2RzYU1wYzoge1xuICAgICAgdXNlcjogdW53cmFwTXBjUm9vdChhd2FpdCBkZWNyeXB0Um9vdCh1c2VyUm9vdHMuZWNkc2FNcGMpKSxcbiAgICAgIGJhY2t1cDogdW53cmFwTXBjUm9vdChhd2FpdCBkZWNyeXB0Um9vdChiYWNrdXBSb290cy5lY2RzYU1wYykpLFxuICAgICAgYml0Z286IGJpdGdvUm9vdHMuZWNkc2FNcGMsXG4gICAgfSxcbiAgICBlZGRzYU1wYzoge1xuICAgICAgdXNlcjogdW53cmFwTXBjUm9vdChhd2FpdCBkZWNyeXB0Um9vdCh1c2VyUm9vdHMuZWRkc2FNcGMpKSxcbiAgICAgIGJhY2t1cDogdW53cmFwTXBjUm9vdChhd2FpdCBkZWNyeXB0Um9vdChiYWNrdXBSb290cy5lZGRzYU1wYykpLFxuICAgICAgYml0Z286IGJpdGdvUm9vdHMuZWRkc2FNcGMsXG4gICAgfSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRTYWZlVXNlclBhdGgoY29pblR5cGU6IG51bWJlciwgc2xvdE9yZGluYWw6IG51bWJlciwgYWNjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBtLzQ0Jy8ke2NvaW5UeXBlfScvJHtzbG90T3JkaW5hbH0nLyR7YWNjb3VudH0nYDtcbn1cblxuZnVuY3Rpb24gYnVpbGRTYWZlQ29zaWduZXJQYXRoKGNvaW5UeXBlOiBudW1iZXIsIHNsb3RPcmRpbmFsOiBudW1iZXIsIGFjY291bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgbS80NC8ke2NvaW5UeXBlfS8ke3Nsb3RPcmRpbmFsfS8ke2FjY291bnR9YDtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIGEgU2FmZSB3YWxsZXQncyBjaGlsZCBrZXlzIGF0IHRoZSBCSVA0NCBwYXRoIGZvciBhIGdpdmVuIHNsb3QgYW5kIGFjY291bnQuXG4gKiBPbmx5IGBzZWNwMjU2azFNdWx0aXNpZ2AgKHNsb3QgMSkgaXMgc3VwcG9ydGVkIGZvciBub3c7IHRoZSByZW1haW5pbmcgc2xvdHMgdGhyb3dcbiAqIHVudGlsIHRoZWlyIGRlcml2YXRpb24gYXJtcyBsYW5kIChXQ04tMjczNi9XQ04tMjczNy9XQ04tMjg5NCkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXJpdmVTYWZlV2FsbGV0S2V5cyhwYXJhbXM6IHtcbiAgY29pbjogc3RyaW5nO1xuICBzbG90OiBSb290S2V5VHlwZTtcbiAgYWNjb3VudDogbnVtYmVyO1xuICByb290czogRGVjcnlwdGVkU2FmZVJvb3RzO1xufSk6IFByb21pc2U8RGVyaXZlZFNhZmVXYWxsZXRLZXlzPiB7XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihwYXJhbXMuYWNjb3VudCkgfHwgcGFyYW1zLmFjY291bnQgPCAwIHx8IHBhcmFtcy5hY2NvdW50ID4gTUFYX0JJUDMyX0lOREVYKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBkZXJpdmVTYWZlV2FsbGV0S2V5czogaW52YWxpZCBhY2NvdW50ICcke3BhcmFtcy5hY2NvdW50fSdgKTtcbiAgfVxuXG4gIGNvbnN0IGNvaW5UeXBlID0gY29pbnMuZ2V0KHBhcmFtcy5jb2luKS5iaXA0NENvaW5UeXBlO1xuICBpZiAoY29pblR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29pbiAnJHtwYXJhbXMuY29pbn0nIGhhcyBubyBCSVA0NCBjb2luIHR5cGUgYW5kIGNhbm5vdCBkZXJpdmUgYSBzYWZlIGNoaWxkYCk7XG4gIH1cbiAgY29uc3Qgc2xvdE9yZGluYWwgPSBTQUZFX1JPT1RfU0xPVF9PUkRJTkFMU1twYXJhbXMuc2xvdF07XG4gIGNvbnN0IHsgYWNjb3VudCwgcm9vdHMgfSA9IHBhcmFtcztcblxuICBpZiAocGFyYW1zLnNsb3QgPT09ICdzZWNwMjU2azFNdWx0aXNpZycpIHtcbiAgICBjb25zdCByb290ID0gcm9vdHMuc2VjcDI1NmsxTXVsdGlzaWc7XG4gICAgY29uc3QgdXNlciA9IGJpcDMyLmZyb21CYXNlNTgocm9vdC51c2VyKS5kZXJpdmVQYXRoKGJ1aWxkU2FmZVVzZXJQYXRoKGNvaW5UeXBlLCBzbG90T3JkaW5hbCwgYWNjb3VudCkpO1xuICAgIGNvbnN0IGJhY2t1cCA9IGJpcDMyLmZyb21CYXNlNTgocm9vdC5iYWNrdXApLmRlcml2ZVBhdGgoYnVpbGRTYWZlQ29zaWduZXJQYXRoKGNvaW5UeXBlLCBzbG90T3JkaW5hbCwgYWNjb3VudCkpO1xuICAgIGNvbnN0IGJpdGdvID0gYmlwMzIuZnJvbUJhc2U1OChyb290LmJpdGdvKS5kZXJpdmVQYXRoKGJ1aWxkU2FmZUNvc2lnbmVyUGF0aChjb2luVHlwZSwgc2xvdE9yZGluYWwsIGFjY291bnQpKTtcblxuICAgIGlmICghdXNlci5wcml2YXRlS2V5IHx8ICFiYWNrdXAucHJpdmF0ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZXJpdmVTYWZlV2FsbGV0S2V5czogdXNlciBhbmQgYmFja3VwIHJvb3RzIG11c3QgYmUgcHJpdmF0ZSAoeHBydiknKTtcbiAgICB9XG4gICAgaWYgKGJpdGdvLnByaXZhdGVLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZGVyaXZlU2FmZVdhbGxldEtleXM6IGJpdGdvIHJvb3QgbXVzdCBiZSBwdWJsaWMgKHhwdWIpJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNsb3Q6ICdzZWNwMjU2azFNdWx0aXNpZycsXG4gICAgICBwYXRoOiBidWlsZFNhZmVVc2VyUGF0aChjb2luVHlwZSwgc2xvdE9yZGluYWwsIGFjY291bnQpLFxuICAgICAga2V5czoge1xuICAgICAgICB1c2VyOiB7IHBydjogdXNlci50b0Jhc2U1OCgpLCBwdWI6IHVzZXIubmV1dGVyZWQoKS50b0Jhc2U1OCgpIH0sXG4gICAgICAgIGJhY2t1cDogeyBwcnY6IGJhY2t1cC50b0Jhc2U1OCgpLCBwdWI6IGJhY2t1cC5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkgfSxcbiAgICAgICAgYml0Z286IHsgcHViOiBiaXRnby5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2xvdCA9PT0gJ2VjZHNhTXBjJykge1xuICAgIGNvbnN0IHsgY29tbW9uS2V5Y2hhaW4sIHVzZXJDaGlsZCwgYmFja3VwQ2hpbGQgfSA9IGF3YWl0IERrbHNWcmZVdGlscy5kZXJpdmVTYWZlRWNkc2FNcGNDaGlsZCh7XG4gICAgICB1c2VyUm9vdDogcm9vdHMuZWNkc2FNcGMudXNlcixcbiAgICAgIGJhY2t1cFJvb3Q6IHJvb3RzLmVjZHNhTXBjLmJhY2t1cCxcbiAgICAgIGFjY291bnQsXG4gICAgICBjb2luVHlwZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgc2xvdDogJ2VjZHNhTXBjJyxcbiAgICAgIHBhdGg6IGJ1aWxkU2FmZVVzZXJQYXRoKGNvaW5UeXBlLCBzbG90T3JkaW5hbCwgYWNjb3VudCksXG4gICAgICBrZXlzOiB7IGNvbW1vbktleWNoYWluLCB1c2VyOiB1c2VyQ2hpbGQsIGJhY2t1cDogYmFja3VwQ2hpbGQgfSxcbiAgICB9O1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBkZXJpdmVTYWZlV2FsbGV0S2V5czogc2xvdCAnJHtwYXJhbXMuc2xvdH0nIGlzIG5vdCBzdXBwb3J0ZWQgeWV0YCk7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBrZXkgZmllbGRzIGBjb2luLnJlY292ZXIoKWAgZXhwZWN0cyBmcm9tIGRlcml2ZWQgU2FmZSBjaGlsZCBrZXlzLlxuICogT25seSBgc2VjcDI1NmsxTXVsdGlzaWdgIChzbG90IDEpIGlzIHN1cHBvcnRlZCBmb3Igbm93LiBTaWduZWQgbW9kZSByZS1lbmNyeXB0cyB0aGVcbiAqIGNoaWxkIHhwcnZzIHVuZGVyIGEgZnJlc2ggZXBoZW1lcmFsIHBhc3NwaHJhc2UgKHYxL1NKQ0wpOyB1bnNpZ25lZCBtb2RlIHJldHVybnMgcHVicy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkU2FmZVJlY292ZXJLZXlQYXJhbXMocGFyYW1zOiB7XG4gIGJpdGdvOiBCaXRHb0Jhc2U7XG4gIGNvaW46IHN0cmluZztcbiAgc2xvdDogUm9vdEtleVR5cGU7XG4gIGtleXM6IFNlY3AyNTZrMU11bHRpc2lnQ2hpbGRLZXlzO1xuICBtb2RlOiAnc2lnbmVkJyB8ICd1bnNpZ25lZCc7XG59KTogUHJvbWlzZTxTYWZlUmVjb3ZlcktleVBhcmFtcz4ge1xuICBpZiAocGFyYW1zLnNsb3QgIT09ICdzZWNwMjU2azFNdWx0aXNpZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGJ1aWxkU2FmZVJlY292ZXJLZXlQYXJhbXM6IHNsb3QgJyR7cGFyYW1zLnNsb3R9JyBpcyBub3Qgc3VwcG9ydGVkIHlldGApO1xuICB9XG4gIGNvbnN0IHsgYml0Z28sIGtleXMsIG1vZGUgfSA9IHBhcmFtcztcblxuICBpZiAobW9kZSA9PT0gJ3Vuc2lnbmVkJykge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyS2V5OiBrZXlzLnVzZXIucHViLFxuICAgICAgYmFja3VwS2V5OiBrZXlzLmJhY2t1cC5wdWIsXG4gICAgICBiaXRnb0tleToga2V5cy5iaXRnby5wdWIsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHVzZXJQcnYgPSBiaXAzMi5mcm9tQmFzZTU4KGtleXMudXNlci5wcnYpO1xuICBjb25zdCBiYWNrdXBQcnYgPSBiaXAzMi5mcm9tQmFzZTU4KGtleXMuYmFja3VwLnBydik7XG4gIGlmICghdXNlclBydi5wcml2YXRlS2V5IHx8ICFiYWNrdXBQcnYucHJpdmF0ZUtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcignYnVpbGRTYWZlUmVjb3ZlcktleVBhcmFtczoga2V5cy51c2VyLnBydiBhbmQga2V5cy5iYWNrdXAucHJ2IG11c3QgYmUgcHJpdmF0ZSB4cHJ2cycpO1xuICB9XG5cbiAgY29uc3Qgd2FsbGV0UGFzc3BocmFzZSA9IHJhbmRvbUJ5dGVzKDMyKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IFt1c2VyS2V5LCBiYWNrdXBLZXldID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGJpdGdvLmVuY3J5cHQoeyBpbnB1dDoga2V5cy51c2VyLnBydiwgcGFzc3dvcmQ6IHdhbGxldFBhc3NwaHJhc2UsIGVuY3J5cHRpb25WZXJzaW9uOiAxIH0pLFxuICAgIGJpdGdvLmVuY3J5cHQoeyBpbnB1dDoga2V5cy5iYWNrdXAucHJ2LCBwYXNzd29yZDogd2FsbGV0UGFzc3BocmFzZSwgZW5jcnlwdGlvblZlcnNpb246IDEgfSksXG4gIF0pO1xuXG4gIHJldHVybiB7XG4gICAgdXNlcktleSxcbiAgICBiYWNrdXBLZXksXG4gICAgYml0Z29LZXk6IGtleXMuYml0Z28ucHViLFxuICAgIHdhbGxldFBhc3NwaHJhc2UsXG4gIH07XG59XG4iXX0=
@@ -15,6 +15,7 @@ export declare class EddsaMPCv2Utils extends BaseEddsaUtils {
15
15
  private static readonly MPS_DSG_SIGNING_ROUND1_STATE;
16
16
  private static readonly MPS_DSG_SIGNING_ROUND2_STATE;
17
17
  private static readonly MPS_DKG_KEYGEN_ROUND1_STATE;
18
+ private static readonly MPS_DKG_KEYGEN_ROUND2_STATE;
18
19
  /** @inheritdoc */
19
20
  createKeychains(params: {
20
21
  passphrase: string;
@@ -91,6 +92,32 @@ export declare class EddsaMPCv2Utils extends BaseEddsaUtils {
91
92
  signedMsg1: MPSTypes.MPSSignedMessage;
92
93
  encryptedRound1Session: string;
93
94
  }>;
95
+ createOfflineKeyGenRound2Share(params: {
96
+ walletPassphrase: string;
97
+ encryptedUserGpgPrvKey: string;
98
+ encryptedRound1Session: string;
99
+ bitgoGpgPubKey: string;
100
+ counterPartyGpgPubKey: string;
101
+ bitgoMsg1: MPSTypes.MPSSignedMessage;
102
+ counterPartyMsg1: MPSTypes.MPSSignedMessage;
103
+ partyId?: MPCv2PartiesEnum.USER | MPCv2PartiesEnum.BACKUP;
104
+ }): Promise<{
105
+ signedMsg2: MPSTypes.MPSSignedMessage;
106
+ encryptedRound2Session: string;
107
+ }>;
108
+ createOfflineKeyGenFinalizeShare(params: {
109
+ walletPassphrase: string;
110
+ encryptedRound2Session: string;
111
+ bitgoGpgPubKey: string;
112
+ counterPartyGpgPubKey: string;
113
+ bitgoMsg2: MPSTypes.MPSSignedMessage;
114
+ counterPartyMsg2: MPSTypes.MPSSignedMessage;
115
+ bitgoCommonKeychain: string;
116
+ partyId?: MPCv2PartiesEnum.USER | MPCv2PartiesEnum.BACKUP;
117
+ }): Promise<{
118
+ commonKeychain: string;
119
+ keyShare: string;
120
+ }>;
94
121
  createOfflineRound1Share(params: {
95
122
  txRequest: TxRequest;
96
123
  prv: string;
@@ -1 +1 @@
1
- {"version":3,"file":"eddsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaMPCv2.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAI9B,4BAA4B,EAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,WAAW,EAAyB,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AAE3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAEL,wBAAwB,EACxB,QAAQ,EAER,yBAAyB,EAC1B,MAAM,mBAAmB,CAAC;AAa3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,+CAA+C,EAC/C,+CAA+C,EAC/C,+CAA+C,EAC/C,WAAW,EACX,oBAAoB,EAEpB,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,SAAS,EAEV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAItD,qBAAa,eAAgB,SAAQ,cAAc;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAkC;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAkC;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAkC;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAiC;IAEpF,kBAAkB;IACZ,eAAe,CAAC,MAAM,EAAE;QAC5B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;QACpC,YAAY,CAAC,EAAE,yBAAyB,CAAC;QACzC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QAEtC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+JvB,iCAAiC,CAAC,MAAM,EAAE;QAC9C,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,yBAAyB,CAAC;KACtC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuFvB,yBAAyB,CAC7B,gBAAgB,EAAE,4BAA4B,EAC9C,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,EACxB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,8BAA8B,CAAC,EAAE,MAAM,EACvC,YAAY,CAAC,EAAE,yBAAyB,EACxC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,QAAQ,CAAC;cA0FJ,eAAe,CAC7B,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,sBAAsB,EAAE,MAAM,EAC9B,UAAU,EAAE,MAAM,EAClB,8BAA8B,CAAC,EAAE,MAAM,EACvC,YAAY,CAAC,EAAE,yBAAyB,EACxC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,QAAQ,CAAC;cAgBJ,iBAAiB,CAC/B,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,sBAAsB,EAAE,MAAM,GAAG,SAAS,EAC1C,UAAU,EAAE,MAAM,EAClB,8BAA8B,CAAC,EAAE,MAAM,EACvC,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,QAAQ,CAAC;cAgBJ,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,QAAQ,CAAC;IAiBd,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,6BAA6B,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9D,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,8BAA8B,CAAC;IAIpC,+BAA+B,CACnC,QAAQ,EAAE,sBAAsB,CAAC,8BAA8B,CAAC,EAChE,OAAO,EAAE,6BAA6B,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,8BAA8B,CAAC;IAIpC,uBAAuB,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAIpC,+BAA+B,CACnC,QAAQ,EAAE,sBAAsB,CAAC,8BAA8B,CAAC,EAChE,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,8BAA8B,CAAC;IAQ1C;;;;;;OAMG;IACG,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAKjE;;;;;;OAMG;IACG,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,SAAS,CAAC;IAKrF;;;;;;;;;;OAUG;YACW,eAAe;IA0JvB,8BAA8B,CAAC,MAAM,EAAE;QAC3C,gBAAgB,EAAE,MAAM,CAAC;QACzB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC;KAC3D,GAAG,OAAO,CAAC;QACV,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC;QACtC,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;IA2CI,wBAAwB,CAAC,MAAM,EAAE;QACrC,SAAS,EAAE,SAAS,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC;QACV,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,aAAa,EAAE,MAAM,CAAC;QACtB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;IA0DI,wBAAwB,CAAC,MAAM,EAAE;QACrC,SAAS,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sBAAsB,EAAE,MAAM,CAAC;KAChC,GAAG,OAAO,CAAC;QACV,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;IA0FI,wBAAwB,CAAC,MAAM,EAAE;QACrC,SAAS,EAAE,SAAS,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sBAAsB,EAAE,MAAM,CAAC;KAChC,GAAG,OAAO,CAAC;QACV,oBAAoB,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IAgEF,kBAAkB;IACZ,oCAAoC,CACxC,MAAM,EAAE,SAAS,GAAG,mBAAmB,EACvC,8CAA8C,EAAE,+CAA+C,EAC/F,8CAA8C,EAAE,+CAA+C,EAC/F,8CAA8C,EAAE,+CAA+C,EAC/F,WAAW,GAAE,WAA4B,GACxC,OAAO,CAAC,SAAS,CAAC;cA6FL,uBAAuB,CAAC,QAAQ,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC;QACpF,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;QACzB,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC;KAC5B,CAAC;IAiBI,iCAAiC,CAAC,MAAM,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACnH,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QAC7C,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB,CAAC;KAChD,CAAC;IAyBF;;;;;;;;;;OAUG;WACU,qBAAqB,CAChC,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,GACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAKtC,OAAO,CAAC,MAAM,CAAC,gCAAgC;CAqChD;AA+BD,wBAAsB,2BAA2B,CAC/C,iBAAiB,EAAE,MAAM,EACzB,gBAAgB,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,4CAA4C,CAChE,gBAAgB,EAAE,MAAM,EACxB,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,CAAC,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAAC,2BAA2B,CAAC,CAsDtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpH;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,SAAS,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAY/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAcpF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED,eAAO,MAAM,2BAA2B;;;;;;;CAOvC,CAAC"}
1
+ {"version":3,"file":"eddsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/eddsa/eddsaMPCv2.ts"],"names":[],"mappings":"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"}