@bitgo-beta/sdk-core 8.2.1-beta.1821 → 8.2.1-beta.1823
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts +14 -1
- package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/baseCoin.js +16 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +57 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/utils/tss/addressVerification.d.ts +25 -0
- package/dist/src/bitgo/utils/tss/addressVerification.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/addressVerification.js +31 -13
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +7 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +23 -32
- package/dist/src/bitgo/utils/tss/index.d.ts +1 -0
- package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/index.js +2 -1
- package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts +23 -0
- package/dist/src/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/preHashedSignable.js +26 -0
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +6 -3
- package/dist/test/unit/bitgo/utils/tss/addressVerification.js +45 -1
- package/dist/test/unit/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +4 -1
- package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/preHashedSignable.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/preHashedSignable.js +55 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts +2 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.d.ts.map +1 -0
- package/dist/test/unit/bitgo/wallet/ofcWalletAddressCreation.js +141 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -20,6 +20,31 @@ export declare function extractCommonKeychain(keychains: TssVerifyAddressOptions
|
|
|
20
20
|
* @throws {Error} if required parameters are missing or invalid
|
|
21
21
|
*/
|
|
22
22
|
export declare function verifyEddsaTssWalletAddress(params: TssVerifyAddressOptions, isValidAddress: (address: string) => boolean, getAddressFromPublicKey: (publicKey: string) => string): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Options for deriving an MPC wallet address. This is the subset of
|
|
25
|
+
* {@link TssVerifyAddressOptions} needed to *produce* an address (no `address` to check),
|
|
26
|
+
* plus the key curve.
|
|
27
|
+
*/
|
|
28
|
+
export type DeriveMPCWalletAddressOptions = Pick<TssVerifyAddressOptions, 'keychains' | 'index' | 'derivedFromParentWithSeed' | 'multisigTypeVersion'> & {
|
|
29
|
+
keyCurve: 'secp256k1' | 'ed25519';
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Derives a wallet address using TSS/MPC HD derivation from the commonKeychain,
|
|
33
|
+
* using public key material only (no private keys, no network access).
|
|
34
|
+
* Shared by EdDSA- and ECDSA-based MPC coins.
|
|
35
|
+
*
|
|
36
|
+
* This is the derivation half of {@link verifyMPCWalletAddress}: it *produces* the address
|
|
37
|
+
* rather than comparing it against a candidate, so the two can never diverge.
|
|
38
|
+
*
|
|
39
|
+
* @param params - keychains (commonKeychain), derivation index, optional seed/version, and keyCurve
|
|
40
|
+
* @param getAddressFromPublicKey - Coin-specific function to convert public key to address
|
|
41
|
+
* @returns the derived address and the HD derivation path used to derive it
|
|
42
|
+
* @throws {Error} if required parameters are missing or invalid
|
|
43
|
+
*/
|
|
44
|
+
export declare function deriveMPCWalletAddress(params: DeriveMPCWalletAddressOptions, getAddressFromPublicKey: (publicKey: string) => string): Promise<{
|
|
45
|
+
address: string;
|
|
46
|
+
derivationPath: string;
|
|
47
|
+
}>;
|
|
23
48
|
/**
|
|
24
49
|
* Verifies if an address belongs to a wallet using ECDSA TSS MPC derivation.
|
|
25
50
|
* This is a common implementation for ECDSA-based MPC coins (ETH, BTC, etc.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressVerification.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/addressVerification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,CAe7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,uBAAuB,GAAG;IAChC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"addressVerification.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/addressVerification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAInE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,CAe7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,uBAAuB,EAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,uBAAuB,EACvB,WAAW,GAAG,OAAO,GAAG,2BAA2B,GAAG,qBAAqB,CAC5E,GAAG;IACF,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,6BAA6B,EACrC,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBtD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,uBAAuB,GAAG;IAChC,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;CACnC,EACD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,EAC5C,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GACrD,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extractCommonKeychain = extractCommonKeychain;
|
|
4
4
|
exports.verifyEddsaTssWalletAddress = verifyEddsaTssWalletAddress;
|
|
5
|
+
exports.deriveMPCWalletAddress = deriveMPCWalletAddress;
|
|
5
6
|
exports.verifyMPCWalletAddress = verifyMPCWalletAddress;
|
|
6
7
|
const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
|
|
7
8
|
const mpc_1 = require("../../../account-lib/mpc");
|
|
@@ -43,21 +44,20 @@ async function verifyEddsaTssWalletAddress(params, isValidAddress, getAddressFro
|
|
|
43
44
|
return verifyMPCWalletAddress({ ...params, keyCurve: 'ed25519' }, isValidAddress, getAddressFromPublicKey);
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
47
|
+
* Derives a wallet address using TSS/MPC HD derivation from the commonKeychain,
|
|
48
|
+
* using public key material only (no private keys, no network access).
|
|
49
|
+
* Shared by EdDSA- and ECDSA-based MPC coins.
|
|
48
50
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
+
* This is the derivation half of {@link verifyMPCWalletAddress}: it *produces* the address
|
|
52
|
+
* rather than comparing it against a candidate, so the two can never diverge.
|
|
53
|
+
*
|
|
54
|
+
* @param params - keychains (commonKeychain), derivation index, optional seed/version, and keyCurve
|
|
51
55
|
* @param getAddressFromPublicKey - Coin-specific function to convert public key to address
|
|
52
|
-
* @returns
|
|
53
|
-
* @throws {InvalidAddressError} if the address is invalid
|
|
56
|
+
* @returns the derived address and the HD derivation path used to derive it
|
|
54
57
|
* @throws {Error} if required parameters are missing or invalid
|
|
55
58
|
*/
|
|
56
|
-
async function
|
|
57
|
-
const { keychains,
|
|
58
|
-
if (!isValidAddress(address)) {
|
|
59
|
-
throw new errors_1.InvalidAddressError(`invalid address: ${address}`);
|
|
60
|
-
}
|
|
59
|
+
async function deriveMPCWalletAddress(params, getAddressFromPublicKey) {
|
|
60
|
+
const { keychains, index, derivedFromParentWithSeed } = params;
|
|
61
61
|
const commonKeychain = extractCommonKeychain(keychains);
|
|
62
62
|
// Compute derivation path:
|
|
63
63
|
// - For SMC wallets with derivedFromParentWithSeed, compute prefix and use: {prefix}/{index}
|
|
@@ -76,7 +76,25 @@ async function verifyMPCWalletAddress(params, isValidAddress, getAddressFromPubl
|
|
|
76
76
|
// secp256k1 expects 33 bytes; ed25519 expects 32 bytes
|
|
77
77
|
const publicKeySize = params.keyCurve === 'secp256k1' ? 33 : 32;
|
|
78
78
|
const publicKeyOnly = Buffer.from(derivedPublicKey, 'hex').subarray(0, publicKeySize).toString('hex');
|
|
79
|
-
|
|
79
|
+
return { address: getAddressFromPublicKey(publicKeyOnly), derivationPath };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Verifies if an address belongs to a wallet using ECDSA TSS MPC derivation.
|
|
83
|
+
* This is a common implementation for ECDSA-based MPC coins (ETH, BTC, etc.)
|
|
84
|
+
*
|
|
85
|
+
* @param params - Verification options including keychains, address, and derivation index
|
|
86
|
+
* @param isValidAddress - Coin-specific function to validate address format
|
|
87
|
+
* @param getAddressFromPublicKey - Coin-specific function to convert public key to address
|
|
88
|
+
* @returns true if the address matches the derived address, false otherwise
|
|
89
|
+
* @throws {InvalidAddressError} if the address is invalid
|
|
90
|
+
* @throws {Error} if required parameters are missing or invalid
|
|
91
|
+
*/
|
|
92
|
+
async function verifyMPCWalletAddress(params, isValidAddress, getAddressFromPublicKey) {
|
|
93
|
+
const { address } = params;
|
|
94
|
+
if (!isValidAddress(address)) {
|
|
95
|
+
throw new errors_1.InvalidAddressError(`invalid address: ${address}`);
|
|
96
|
+
}
|
|
97
|
+
const { address: expectedAddress } = await deriveMPCWalletAddress(params, getAddressFromPublicKey);
|
|
80
98
|
return address === expectedAddress;
|
|
81
99
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc1ZlcmlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvYWRkcmVzc1ZlcmlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLHNEQWVDO0FBYUQsa0VBTUM7QUFhRCx3REFxQ0M7QUFsR0QseURBQWlGO0FBQ2pGLGtEQUFpRDtBQUVqRCx5Q0FBbUQ7QUFDbkQsbUNBQXlDO0FBRXpDOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxTQUErQztJQUNuRixJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxLQUFLLGNBQWMsQ0FBQztRQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFFbkYsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSSxLQUFLLFVBQVUsMkJBQTJCLENBQy9DLE1BQStCLEVBQy9CLGNBQTRDLEVBQzVDLHVCQUFzRDtJQUV0RCxPQUFPLHNCQUFzQixDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBQzdHLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxNQUVDLEVBQ0QsY0FBNEMsRUFDNUMsdUJBQXNEO0lBRXRELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV4RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLDRCQUFtQixDQUFDLG9CQUFvQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4RCwyQkFBMkI7SUFDM0IsNkZBQTZGO0lBQzdGLGtEQUFrRDtJQUNsRCxNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBQSwrQkFBaUIsRUFBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDL0csTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUVwRSwyRkFBMkY7SUFDM0YsSUFBSSxnQkFBd0IsQ0FBQztJQUM3QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUM1RSxnQkFBZ0IsR0FBRyxJQUFBLGlDQUFtQixFQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLGtCQUFZLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMzRyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hFLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFdEcsTUFBTSxlQUFlLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFL0QsT0FBTyxPQUFPLEtBQUssZUFBZSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREZXJpdmF0aW9uUGF0aCwgZGVyaXZlVW5oYXJkZW5lZE1wcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEVjZHNhIH0gZnJvbSAnLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjJztcbmltcG9ydCB7IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4vaUJhc2VDb2luJztcbmltcG9ydCB7IEludmFsaWRBZGRyZXNzRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHsgRUREU0FNZXRob2RzIH0gZnJvbSAnLi4vLi4vdHNzJztcblxuLyoqXG4gKiBFeHRyYWN0cyBhbmQgdmFsaWRhdGVzIHRoZSBjb21tb25LZXljaGFpbiBmcm9tIGtleWNoYWlucyBhcnJheS5cbiAqIEZvciBNUEMgd2FsbGV0cywgYWxsIGtleWNoYWlucyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBjb21tb25LZXljaGFpbi5cbiAqXG4gKiBAcGFyYW0ga2V5Y2hhaW5zIC0gQXJyYXkgb2Yga2V5Y2hhaW5zIGNvbnRhaW5pbmcgY29tbW9uS2V5Y2hhaW5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgY29tbW9uS2V5Y2hhaW5cbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBrZXljaGFpbnMgYXJlIG1pc3NpbmcsIGVtcHR5LCBvciBoYXZlIG1pc21hdGNoZWQgY29tbW9uS2V5Y2hhaW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q29tbW9uS2V5Y2hhaW4oa2V5Y2hhaW5zOiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9uc1sna2V5Y2hhaW5zJ10pOiBzdHJpbmcge1xuICBpZiAoIWtleWNoYWlucz8ubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtIGtleWNoYWlucycpO1xuICB9XG5cbiAgY29uc3QgY29tbW9uS2V5Y2hhaW4gPSBrZXljaGFpbnNbMF0uY29tbW9uS2V5Y2hhaW47XG4gIGlmICghY29tbW9uS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgcGFyYW0gY29tbW9uS2V5Y2hhaW4nKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSBhbGwga2V5Y2hhaW5zIGhhdmUgdGhlIHNhbWUgY29tbW9uS2V5Y2hhaW5cbiAgaWYgKGtleWNoYWlucy5maW5kKChrYykgPT4ga2MuY29tbW9uS2V5Y2hhaW4gIT09IGNvbW1vbktleWNoYWluKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbCBrZXljaGFpbnMgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbW1vbktleWNoYWluIGZvciBNUEMgY29pbnMnKTtcblxuICByZXR1cm4gY29tbW9uS2V5Y2hhaW47XG59XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgd2FsbGV0IHVzaW5nIEVkRFNBIFRTUyBNUEMgZGVyaXZhdGlvbi5cbiAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gZm9yIEVkRFNBLWJhc2VkIE1QQyBjb2lucyAoU09MLCBET1QsIFNVSSwgVE9OLCBJT1RBLCBldGMuKVxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBWZXJpZmljYXRpb24gb3B0aW9ucyBpbmNsdWRpbmcga2V5Y2hhaW5zLCBhZGRyZXNzLCBhbmQgZGVyaXZhdGlvbiBpbmRleFxuICogQHBhcmFtIGlzVmFsaWRBZGRyZXNzIC0gQ29pbi1zcGVjaWZpYyBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhZGRyZXNzIGZvcm1hdFxuICogQHBhcmFtIGdldEFkZHJlc3NGcm9tUHVibGljS2V5IC0gQ29pbi1zcGVjaWZpYyBmdW5jdGlvbiB0byBjb252ZXJ0IHB1YmxpYyBrZXkgdG8gYWRkcmVzc1xuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgYWRkcmVzcyBtYXRjaGVzIHRoZSBkZXJpdmVkIGFkZHJlc3MsIGZhbHNlIG90aGVyd2lzZVxuICogQHRocm93cyB7SW52YWxpZEFkZHJlc3NFcnJvcn0gaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZFxuICogQHRocm93cyB7RXJyb3J9IGlmIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIG1pc3Npbmcgb3IgaW52YWxpZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5RWRkc2FUc3NXYWxsZXRBZGRyZXNzKFxuICBwYXJhbXM6IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zLFxuICBpc1ZhbGlkQWRkcmVzczogKGFkZHJlc3M6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXk6IChwdWJsaWNLZXk6IHN0cmluZykgPT4gc3RyaW5nXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MoeyAuLi5wYXJhbXMsIGtleUN1cnZlOiAnZWQyNTUxOScgfSwgaXNWYWxpZEFkZHJlc3MsIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyBpZiBhbiBhZGRyZXNzIGJlbG9uZ3MgdG8gYSB3YWxsZXQgdXNpbmcgRUNEU0EgVFNTIE1QQyBkZXJpdmF0aW9uLlxuICogVGhpcyBpcyBhIGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBmb3IgRUNEU0EtYmFzZWQgTVBDIGNvaW5zIChFVEgsIEJUQywgZXRjLilcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVmVyaWZpY2F0aW9uIG9wdGlvbnMgaW5jbHVkaW5nIGtleWNoYWlucywgYWRkcmVzcywgYW5kIGRlcml2YXRpb24gaW5kZXhcbiAqIEBwYXJhbSBpc1ZhbGlkQWRkcmVzcyAtIENvaW4tc3BlY2lmaWMgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYWRkcmVzcyBmb3JtYXRcbiAqIEBwYXJhbSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleSAtIENvaW4tc3BlY2lmaWMgZnVuY3Rpb24gdG8gY29udmVydCBwdWJsaWMga2V5IHRvIGFkZHJlc3NcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGFkZHJlc3MgbWF0Y2hlcyB0aGUgZGVyaXZlZCBhZGRyZXNzLCBmYWxzZSBvdGhlcndpc2VcbiAqIEB0aHJvd3Mge0ludmFsaWRBZGRyZXNzRXJyb3J9IGlmIHRoZSBhZGRyZXNzIGlzIGludmFsaWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZSBtaXNzaW5nIG9yIGludmFsaWRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MoXG4gIHBhcmFtczogVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMgJiB7XG4gICAga2V5Q3VydmU6ICdzZWNwMjU2azEnIHwgJ2VkMjU1MTknO1xuICB9LFxuICBpc1ZhbGlkQWRkcmVzczogKGFkZHJlc3M6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXk6IChwdWJsaWNLZXk6IHN0cmluZykgPT4gc3RyaW5nXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyBrZXljaGFpbnMsIGFkZHJlc3MsIGluZGV4LCBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkIH0gPSBwYXJhbXM7XG5cbiAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vbktleWNoYWluID0gZXh0cmFjdENvbW1vbktleWNoYWluKGtleWNoYWlucyk7XG5cbiAgLy8gQ29tcHV0ZSBkZXJpdmF0aW9uIHBhdGg6XG4gIC8vIC0gRm9yIFNNQyB3YWxsZXRzIHdpdGggZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCwgY29tcHV0ZSBwcmVmaXggYW5kIHVzZToge3ByZWZpeH0ve2luZGV4fVxuICAvLyAtIEZvciBvdGhlciB3YWxsZXRzLCB1c2Ugc2ltcGxlIHBhdGg6IG0ve2luZGV4fVxuICBjb25zdCBwcmVmaXggPSBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkID8gZ2V0RGVyaXZhdGlvblBhdGgoZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZC50b1N0cmluZygpKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZGVyaXZhdGlvblBhdGggPSBwcmVmaXggPyBgJHtwcmVmaXh9LyR7aW5kZXh9YCA6IGBtLyR7aW5kZXh9YDtcblxuICAvLyBNUEN2MiBFZERTQSB3YWxsZXRzIHVzZSBhIGRpZmZlcmVudCBCSVAzMi1FZDI1NTE5IGRlcml2YXRpb24gZm9ybXVsYSB0aGFuIE1QQ3YxIHdhbGxldHMuXG4gIGxldCBkZXJpdmVkUHVibGljS2V5OiBzdHJpbmc7XG4gIGlmIChwYXJhbXMua2V5Q3VydmUgPT09ICdlZDI1NTE5JyAmJiBwYXJhbXMubXVsdGlzaWdUeXBlVmVyc2lvbiA9PT0gJ01QQ3YyJykge1xuICAgIGRlcml2ZWRQdWJsaWNLZXkgPSBkZXJpdmVVbmhhcmRlbmVkTXBzKGNvbW1vbktleWNoYWluLCBkZXJpdmF0aW9uUGF0aCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgTVBDID0gcGFyYW1zLmtleUN1cnZlID09PSAnc2VjcDI1NmsxJyA/IG5ldyBFY2RzYSgpIDogYXdhaXQgRUREU0FNZXRob2RzLmdldEluaXRpYWxpemVkTXBjSW5zdGFuY2UoKTtcbiAgICBkZXJpdmVkUHVibGljS2V5ID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sIGRlcml2YXRpb25QYXRoKTtcbiAgfVxuXG4gIC8vIHNlY3AyNTZrMSBleHBlY3RzIDMzIGJ5dGVzOyBlZDI1NTE5IGV4cGVjdHMgMzIgYnl0ZXNcbiAgY29uc3QgcHVibGljS2V5U2l6ZSA9IHBhcmFtcy5rZXlDdXJ2ZSA9PT0gJ3NlY3AyNTZrMScgPyAzMyA6IDMyO1xuICBjb25zdCBwdWJsaWNLZXlPbmx5ID0gQnVmZmVyLmZyb20oZGVyaXZlZFB1YmxpY0tleSwgJ2hleCcpLnN1YmFycmF5KDAsIHB1YmxpY0tleVNpemUpLnRvU3RyaW5nKCdoZXgnKTtcblxuICBjb25zdCBleHBlY3RlZEFkZHJlc3MgPSBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShwdWJsaWNLZXlPbmx5KTtcblxuICByZXR1cm4gYWRkcmVzcyA9PT0gZXhwZWN0ZWRBZGRyZXNzO1xufVxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc1ZlcmlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy90c3MvYWRkcmVzc1ZlcmlmaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLHNEQWVDO0FBYUQsa0VBTUM7QUEyQkQsd0RBNEJDO0FBYUQsd0RBZ0JDO0FBcElELHlEQUFpRjtBQUNqRixrREFBaUQ7QUFFakQseUNBQW1EO0FBQ25ELG1DQUF5QztBQUV6Qzs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsU0FBK0M7SUFDbkYsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDbkQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsS0FBSyxjQUFjLENBQUM7UUFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBRW5GLE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxNQUErQixFQUMvQixjQUE0QyxFQUM1Qyx1QkFBc0Q7SUFFdEQsT0FBTyxzQkFBc0IsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztBQUM3RyxDQUFDO0FBY0Q7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0ksS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxNQUFxQyxFQUNyQyx1QkFBc0Q7SUFFdEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFL0QsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEQsMkJBQTJCO0lBQzNCLDZGQUE2RjtJQUM3RixrREFBa0Q7SUFDbEQsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUEsK0JBQWlCLEVBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQy9HLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7SUFFcEUsMkZBQTJGO0lBQzNGLElBQUksZ0JBQXdCLENBQUM7SUFDN0IsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDNUUsZ0JBQWdCLEdBQUcsSUFBQSxpQ0FBbUIsRUFBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDekUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxrQkFBWSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDM0csZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXRHLE9BQU8sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLENBQUMsYUFBYSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUM7QUFDN0UsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLE1BRUMsRUFDRCxjQUE0QyxFQUM1Qyx1QkFBc0Q7SUFFdEQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUUzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLDRCQUFtQixDQUFDLG9CQUFvQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sc0JBQXNCLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFFbkcsT0FBTyxPQUFPLEtBQUssZUFBZSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXREZXJpdmF0aW9uUGF0aCwgZGVyaXZlVW5oYXJkZW5lZE1wcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEVjZHNhIH0gZnJvbSAnLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjJztcbmltcG9ydCB7IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4vaUJhc2VDb2luJztcbmltcG9ydCB7IEludmFsaWRBZGRyZXNzRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHsgRUREU0FNZXRob2RzIH0gZnJvbSAnLi4vLi4vdHNzJztcblxuLyoqXG4gKiBFeHRyYWN0cyBhbmQgdmFsaWRhdGVzIHRoZSBjb21tb25LZXljaGFpbiBmcm9tIGtleWNoYWlucyBhcnJheS5cbiAqIEZvciBNUEMgd2FsbGV0cywgYWxsIGtleWNoYWlucyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBjb21tb25LZXljaGFpbi5cbiAqXG4gKiBAcGFyYW0ga2V5Y2hhaW5zIC0gQXJyYXkgb2Yga2V5Y2hhaW5zIGNvbnRhaW5pbmcgY29tbW9uS2V5Y2hhaW5cbiAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgY29tbW9uS2V5Y2hhaW5cbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiBrZXljaGFpbnMgYXJlIG1pc3NpbmcsIGVtcHR5LCBvciBoYXZlIG1pc21hdGNoZWQgY29tbW9uS2V5Y2hhaW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q29tbW9uS2V5Y2hhaW4oa2V5Y2hhaW5zOiBUc3NWZXJpZnlBZGRyZXNzT3B0aW9uc1sna2V5Y2hhaW5zJ10pOiBzdHJpbmcge1xuICBpZiAoIWtleWNoYWlucz8ubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtIGtleWNoYWlucycpO1xuICB9XG5cbiAgY29uc3QgY29tbW9uS2V5Y2hhaW4gPSBrZXljaGFpbnNbMF0uY29tbW9uS2V5Y2hhaW47XG4gIGlmICghY29tbW9uS2V5Y2hhaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgcGFyYW0gY29tbW9uS2V5Y2hhaW4nKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSBhbGwga2V5Y2hhaW5zIGhhdmUgdGhlIHNhbWUgY29tbW9uS2V5Y2hhaW5cbiAgaWYgKGtleWNoYWlucy5maW5kKChrYykgPT4ga2MuY29tbW9uS2V5Y2hhaW4gIT09IGNvbW1vbktleWNoYWluKSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbCBrZXljaGFpbnMgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbW1vbktleWNoYWluIGZvciBNUEMgY29pbnMnKTtcblxuICByZXR1cm4gY29tbW9uS2V5Y2hhaW47XG59XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgd2FsbGV0IHVzaW5nIEVkRFNBIFRTUyBNUEMgZGVyaXZhdGlvbi5cbiAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gZm9yIEVkRFNBLWJhc2VkIE1QQyBjb2lucyAoU09MLCBET1QsIFNVSSwgVE9OLCBJT1RBLCBldGMuKVxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBWZXJpZmljYXRpb24gb3B0aW9ucyBpbmNsdWRpbmcga2V5Y2hhaW5zLCBhZGRyZXNzLCBhbmQgZGVyaXZhdGlvbiBpbmRleFxuICogQHBhcmFtIGlzVmFsaWRBZGRyZXNzIC0gQ29pbi1zcGVjaWZpYyBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhZGRyZXNzIGZvcm1hdFxuICogQHBhcmFtIGdldEFkZHJlc3NGcm9tUHVibGljS2V5IC0gQ29pbi1zcGVjaWZpYyBmdW5jdGlvbiB0byBjb252ZXJ0IHB1YmxpYyBrZXkgdG8gYWRkcmVzc1xuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgYWRkcmVzcyBtYXRjaGVzIHRoZSBkZXJpdmVkIGFkZHJlc3MsIGZhbHNlIG90aGVyd2lzZVxuICogQHRocm93cyB7SW52YWxpZEFkZHJlc3NFcnJvcn0gaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZFxuICogQHRocm93cyB7RXJyb3J9IGlmIHJlcXVpcmVkIHBhcmFtZXRlcnMgYXJlIG1pc3Npbmcgb3IgaW52YWxpZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5RWRkc2FUc3NXYWxsZXRBZGRyZXNzKFxuICBwYXJhbXM6IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zLFxuICBpc1ZhbGlkQWRkcmVzczogKGFkZHJlc3M6IHN0cmluZykgPT4gYm9vbGVhbixcbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXk6IChwdWJsaWNLZXk6IHN0cmluZykgPT4gc3RyaW5nXG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgcmV0dXJuIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MoeyAuLi5wYXJhbXMsIGtleUN1cnZlOiAnZWQyNTUxOScgfSwgaXNWYWxpZEFkZHJlc3MsIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZXJpdmluZyBhbiBNUEMgd2FsbGV0IGFkZHJlc3MuIFRoaXMgaXMgdGhlIHN1YnNldCBvZlxuICoge0BsaW5rIFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zfSBuZWVkZWQgdG8gKnByb2R1Y2UqIGFuIGFkZHJlc3MgKG5vIGBhZGRyZXNzYCB0byBjaGVjayksXG4gKiBwbHVzIHRoZSBrZXkgY3VydmUuXG4gKi9cbmV4cG9ydCB0eXBlIERlcml2ZU1QQ1dhbGxldEFkZHJlc3NPcHRpb25zID0gUGljazxcbiAgVHNzVmVyaWZ5QWRkcmVzc09wdGlvbnMsXG4gICdrZXljaGFpbnMnIHwgJ2luZGV4JyB8ICdkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkJyB8ICdtdWx0aXNpZ1R5cGVWZXJzaW9uJ1xuPiAmIHtcbiAga2V5Q3VydmU6ICdzZWNwMjU2azEnIHwgJ2VkMjU1MTknO1xufTtcblxuLyoqXG4gKiBEZXJpdmVzIGEgd2FsbGV0IGFkZHJlc3MgdXNpbmcgVFNTL01QQyBIRCBkZXJpdmF0aW9uIGZyb20gdGhlIGNvbW1vbktleWNoYWluLFxuICogdXNpbmcgcHVibGljIGtleSBtYXRlcmlhbCBvbmx5IChubyBwcml2YXRlIGtleXMsIG5vIG5ldHdvcmsgYWNjZXNzKS5cbiAqIFNoYXJlZCBieSBFZERTQS0gYW5kIEVDRFNBLWJhc2VkIE1QQyBjb2lucy5cbiAqXG4gKiBUaGlzIGlzIHRoZSBkZXJpdmF0aW9uIGhhbGYgb2Yge0BsaW5rIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3N9OiBpdCAqcHJvZHVjZXMqIHRoZSBhZGRyZXNzXG4gKiByYXRoZXIgdGhhbiBjb21wYXJpbmcgaXQgYWdhaW5zdCBhIGNhbmRpZGF0ZSwgc28gdGhlIHR3byBjYW4gbmV2ZXIgZGl2ZXJnZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0ga2V5Y2hhaW5zIChjb21tb25LZXljaGFpbiksIGRlcml2YXRpb24gaW5kZXgsIG9wdGlvbmFsIHNlZWQvdmVyc2lvbiwgYW5kIGtleUN1cnZlXG4gKiBAcGFyYW0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkgLSBDb2luLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGNvbnZlcnQgcHVibGljIGtleSB0byBhZGRyZXNzXG4gKiBAcmV0dXJucyB0aGUgZGVyaXZlZCBhZGRyZXNzIGFuZCB0aGUgSEQgZGVyaXZhdGlvbiBwYXRoIHVzZWQgdG8gZGVyaXZlIGl0XG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgbWlzc2luZyBvciBpbnZhbGlkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXJpdmVNUENXYWxsZXRBZGRyZXNzKFxuICBwYXJhbXM6IERlcml2ZU1QQ1dhbGxldEFkZHJlc3NPcHRpb25zLFxuICBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleTogKHB1YmxpY0tleTogc3RyaW5nKSA9PiBzdHJpbmdcbik6IFByb21pc2U8eyBhZGRyZXNzOiBzdHJpbmc7IGRlcml2YXRpb25QYXRoOiBzdHJpbmcgfT4ge1xuICBjb25zdCB7IGtleWNoYWlucywgaW5kZXgsIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQgfSA9IHBhcmFtcztcblxuICBjb25zdCBjb21tb25LZXljaGFpbiA9IGV4dHJhY3RDb21tb25LZXljaGFpbihrZXljaGFpbnMpO1xuXG4gIC8vIENvbXB1dGUgZGVyaXZhdGlvbiBwYXRoOlxuICAvLyAtIEZvciBTTUMgd2FsbGV0cyB3aXRoIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQsIGNvbXB1dGUgcHJlZml4IGFuZCB1c2U6IHtwcmVmaXh9L3tpbmRleH1cbiAgLy8gLSBGb3Igb3RoZXIgd2FsbGV0cywgdXNlIHNpbXBsZSBwYXRoOiBtL3tpbmRleH1cbiAgY29uc3QgcHJlZml4ID0gZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZCA/IGdldERlcml2YXRpb25QYXRoKGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQudG9TdHJpbmcoKSkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGRlcml2YXRpb25QYXRoID0gcHJlZml4ID8gYCR7cHJlZml4fS8ke2luZGV4fWAgOiBgbS8ke2luZGV4fWA7XG5cbiAgLy8gTVBDdjIgRWREU0Egd2FsbGV0cyB1c2UgYSBkaWZmZXJlbnQgQklQMzItRWQyNTUxOSBkZXJpdmF0aW9uIGZvcm11bGEgdGhhbiBNUEN2MSB3YWxsZXRzLlxuICBsZXQgZGVyaXZlZFB1YmxpY0tleTogc3RyaW5nO1xuICBpZiAocGFyYW1zLmtleUN1cnZlID09PSAnZWQyNTUxOScgJiYgcGFyYW1zLm11bHRpc2lnVHlwZVZlcnNpb24gPT09ICdNUEN2MicpIHtcbiAgICBkZXJpdmVkUHVibGljS2V5ID0gZGVyaXZlVW5oYXJkZW5lZE1wcyhjb21tb25LZXljaGFpbiwgZGVyaXZhdGlvblBhdGgpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IE1QQyA9IHBhcmFtcy5rZXlDdXJ2ZSA9PT0gJ3NlY3AyNTZrMScgPyBuZXcgRWNkc2EoKSA6IGF3YWl0IEVERFNBTWV0aG9kcy5nZXRJbml0aWFsaXplZE1wY0luc3RhbmNlKCk7XG4gICAgZGVyaXZlZFB1YmxpY0tleSA9IE1QQy5kZXJpdmVVbmhhcmRlbmVkKGNvbW1vbktleWNoYWluLCBkZXJpdmF0aW9uUGF0aCk7XG4gIH1cblxuICAvLyBzZWNwMjU2azEgZXhwZWN0cyAzMyBieXRlczsgZWQyNTUxOSBleHBlY3RzIDMyIGJ5dGVzXG4gIGNvbnN0IHB1YmxpY0tleVNpemUgPSBwYXJhbXMua2V5Q3VydmUgPT09ICdzZWNwMjU2azEnID8gMzMgOiAzMjtcbiAgY29uc3QgcHVibGljS2V5T25seSA9IEJ1ZmZlci5mcm9tKGRlcml2ZWRQdWJsaWNLZXksICdoZXgnKS5zdWJhcnJheSgwLCBwdWJsaWNLZXlTaXplKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgcmV0dXJuIHsgYWRkcmVzczogZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5T25seSksIGRlcml2YXRpb25QYXRoIH07XG59XG5cbi8qKlxuICogVmVyaWZpZXMgaWYgYW4gYWRkcmVzcyBiZWxvbmdzIHRvIGEgd2FsbGV0IHVzaW5nIEVDRFNBIFRTUyBNUEMgZGVyaXZhdGlvbi5cbiAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gZm9yIEVDRFNBLWJhc2VkIE1QQyBjb2lucyAoRVRILCBCVEMsIGV0Yy4pXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFZlcmlmaWNhdGlvbiBvcHRpb25zIGluY2x1ZGluZyBrZXljaGFpbnMsIGFkZHJlc3MsIGFuZCBkZXJpdmF0aW9uIGluZGV4XG4gKiBAcGFyYW0gaXNWYWxpZEFkZHJlc3MgLSBDb2luLXNwZWNpZmljIGZ1bmN0aW9uIHRvIHZhbGlkYXRlIGFkZHJlc3MgZm9ybWF0XG4gKiBAcGFyYW0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkgLSBDb2luLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGNvbnZlcnQgcHVibGljIGtleSB0byBhZGRyZXNzXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBhZGRyZXNzIG1hdGNoZXMgdGhlIGRlcml2ZWQgYWRkcmVzcywgZmFsc2Ugb3RoZXJ3aXNlXG4gKiBAdGhyb3dzIHtJbnZhbGlkQWRkcmVzc0Vycm9yfSBpZiB0aGUgYWRkcmVzcyBpcyBpbnZhbGlkXG4gKiBAdGhyb3dzIHtFcnJvcn0gaWYgcmVxdWlyZWQgcGFyYW1ldGVycyBhcmUgbWlzc2luZyBvciBpbnZhbGlkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlNUENXYWxsZXRBZGRyZXNzKFxuICBwYXJhbXM6IFRzc1ZlcmlmeUFkZHJlc3NPcHRpb25zICYge1xuICAgIGtleUN1cnZlOiAnc2VjcDI1NmsxJyB8ICdlZDI1NTE5JztcbiAgfSxcbiAgaXNWYWxpZEFkZHJlc3M6IChhZGRyZXNzOiBzdHJpbmcpID0+IGJvb2xlYW4sXG4gIGdldEFkZHJlc3NGcm9tUHVibGljS2V5OiAocHVibGljS2V5OiBzdHJpbmcpID0+IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsgYWRkcmVzcyB9ID0gcGFyYW1zO1xuXG4gIGlmICghaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gIH1cblxuICBjb25zdCB7IGFkZHJlc3M6IGV4cGVjdGVkQWRkcmVzcyB9ID0gYXdhaXQgZGVyaXZlTVBDV2FsbGV0QWRkcmVzcyhwYXJhbXMsIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KTtcblxuICByZXR1cm4gYWRkcmVzcyA9PT0gZXhwZWN0ZWRBZGRyZXNzO1xufVxuIl19
|
|
@@ -122,6 +122,13 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
122
122
|
* @returns {{ hashBuffer: Buffer; derivationPath: string }} - the hash string and derivation path
|
|
123
123
|
*/
|
|
124
124
|
private getHashStringAndDerivationPath;
|
|
125
|
+
/**
|
|
126
|
+
* Build the DKLS message hash for MPCv2 signing.
|
|
127
|
+
* For pre-hashed signable material (Avalanche atomic txs), signableHex is
|
|
128
|
+
* already SHA-256(txBody) and is used directly. Otherwise the coin hash
|
|
129
|
+
* function is applied (keccak256 for EVM coins by default).
|
|
130
|
+
*/
|
|
131
|
+
private getMpcv2HashBuffer;
|
|
125
132
|
/** @inheritdoc */
|
|
126
133
|
signEcdsaMPCv2TssUsingExternalSigner(params: TSSParams | TSSParamsForMessage, externalSignerMPCv2SigningRound1Generator: CustomMPCv2SigningRound1GeneratingFunction, externalSignerMPCv2SigningRound2Generator: CustomMPCv2SigningRound2GeneratingFunction, externalSignerMPCv2SigningRound3Generator: CustomMPCv2SigningRound3GeneratingFunction, requestType?: RequestType): Promise<TxRequest>;
|
|
127
134
|
createOfflineRound1Share(params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAiD,SAAS,EAAa,MAAM,yBAAyB,CAAC;AAG9G,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EAEzB,eAAe,EACf,4BAA4B,EAG7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAsB,QAAQ,EAAW,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUhD,OAAO,EACL,0CAA0C,EAC1C,0CAA0C,EAC1C,0CAA0C,EAC1C,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAE1B,6BAA6B,EAE7B,SAAS,
|
|
1
|
+
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"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"}
|