@bitgo-beta/sdk-core 8.2.1-beta.2112 → 8.2.1-beta.2114
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/keychain/iKeychains.d.ts +2 -2
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +1 -1
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +18 -0
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -1
- package/dist/src/bitgo/safe/derivableEd25519Pub.js +39 -3
- package/dist/src/bitgo/safe/recovery.d.ts +30 -2
- package/dist/src/bitgo/safe/recovery.d.ts.map +1 -1
- package/dist/src/bitgo/safe/recovery.js +33 -35
- package/dist/src/bitgo/safe/safe.d.ts +5 -5
- package/dist/src/bitgo/safe/safe.d.ts.map +1 -1
- package/dist/src/bitgo/safe/safe.js +24 -16
- package/dist/src/bitgo/tss/common.d.ts +11 -2
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +16 -4
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts +10 -5
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/tss/redpallas/redpallasMPCv2.js +11 -6
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +2 -1
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +6 -0
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +5 -4
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +5 -9
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +4 -9
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +16 -21
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +5 -4
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +2 -3
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +4 -2
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +10 -7
- package/dist/src/bitgo/wallet/iWallet.d.ts +6 -0
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/safeKeychain.d.ts +1 -1
- package/dist/src/bitgo/wallet/safeKeychain.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/safeKeychain.js +4 -3
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +3 -1
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +29 -1
- package/dist/test/unit/bitgo/safe/recovery.js +37 -3
- package/dist/test/unit/bitgo/safe/safe.js +54 -32
- package/dist/test/unit/bitgo/safe/safeDerivation.js +15 -53
- package/dist/test/unit/bitgo/tss/common.js +12 -5
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +24 -22
- package/dist/test/unit/bitgo/wallet/safeGetUserPrv.js +29 -49
- package/dist/test/unit/bitgo/wallet/safeShareWallet.js +5 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -36,7 +36,7 @@ export interface Keychain {
|
|
|
36
36
|
reducedEncryptedPrv?: string;
|
|
37
37
|
derivationPath?: string;
|
|
38
38
|
derivedFromParentWithSeed?: string;
|
|
39
|
-
/**
|
|
39
|
+
/** BIP44 path from the safe parent: `m/44'/<coinType>'/<slot>'/<account>'` (user / MPC children) or its soft twin `m/44/<coinType>/<slot>/<account>` (multisig co-signers). @experimental */
|
|
40
40
|
derivedFromParentWithPath?: string;
|
|
41
41
|
/** Safe root key id this child key was derived from (WCN-1172). */
|
|
42
42
|
parent?: string;
|
|
@@ -171,7 +171,7 @@ export interface AddKeychainOptions {
|
|
|
171
171
|
originalPasscodeEncryptionCode?: string;
|
|
172
172
|
enterprise?: string;
|
|
173
173
|
derivedFromParentWithSeed?: string;
|
|
174
|
-
/**
|
|
174
|
+
/** BIP44 path from the safe parent: `m/44'/<coinType>'/<slot>'/<account>'` (user / MPC children) or its soft twin `m/44/<coinType>/<slot>/<account>` (multisig co-signers). @experimental */
|
|
175
175
|
derivedFromParentWithPath?: string;
|
|
176
176
|
/** Safe user-root key id this child was derived from. @experimental */
|
|
177
177
|
parent?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iKeychains.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/iKeychains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEvE,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,YAAY,EAAE,yBAAyB,EAAE,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,yBAAyB,CAAC;IAE7C,OAAO,EAAE,MAAM,CAAC;IAEhB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"iKeychains.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/keychain/iKeychains.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,4 @@ var KeyIndices;
|
|
|
7
7
|
KeyIndices[KeyIndices["BACKUP"] = 1] = "BACKUP";
|
|
8
8
|
KeyIndices[KeyIndices["BITGO"] = 2] = "BITGO";
|
|
9
9
|
})(KeyIndices || (exports.KeyIndices = KeyIndices = {}));
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUtleWNoYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9rZXljaGFpbi9pS2V5Y2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlVQSxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsMkNBQVEsQ0FBQTtJQUNSLCtDQUFVLENBQUE7SUFDViw2Q0FBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgS2V5QnVsa1VwZGF0ZVJlc3BvbnNlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uVmVyc2lvbiwgSUVuY3J5cHRpb25TZXNzaW9uLCBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0LCBLZXlQYWlyIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0Z29QdWJLZXlUeXBlIH0gZnJvbSAnLi4vdXRpbHMvdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IEJpdEdvS2V5RnJvbU92Y1NoYXJlcywgT3ZjVG9CaXRHb0pTT04gfSBmcm9tICcuL292Y0pzb25Db2RlYyc7XG5cbmV4cG9ydCB0eXBlIEtleVR5cGUgPSAndHNzJyB8ICdpbmRlcGVuZGVudCcgfCAnYmxzZGtnJztcblxuZXhwb3J0IGludGVyZmFjZSBXZWJhdXRobkluZm8ge1xuICBwcmZTYWx0OiBzdHJpbmc7XG4gIG90cERldmljZUlkOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICAvKiogUmVxdWlyZWQgYnkgUE9TVCAva2V5IHRvIHZhbGlkYXRlIHRoZSBQUkYgc2FsdDsgbm90IG5lZWRlZCBvbiB0aGUgUFVUIC9rZXkvOmlkIHVwZGF0ZSBwYXRoLiAqL1xuICBlbnRlcnByaXNlSWQ/OiBzdHJpbmc7XG59XG5cbmltcG9ydCB0eXBlIHsgV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbyB9IGZyb20gJy4uL3dhbGxldC9pV2FsbGV0cyc7XG5leHBvcnQgdHlwZSB7IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm8gfTtcblxuZXhwb3J0IHR5cGUgU291cmNlVHlwZSA9ICdiaXRnbycgfCAnYmFja3VwJyB8ICd1c2VyJyB8ICdjb2xkJztcblxuZXhwb3J0IHR5cGUgV2ViYXV0aG5GbXQgPSAnbm9uZScgfCAncGFja2VkJyB8ICdmaWRvLXUyZic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViYXV0aG5BdXRoZW50aWNhdG9ySW5mbyB7XG4gIGNyZWRJRDogc3RyaW5nO1xuICBmbXQ6IFdlYmF1dGhuRm10O1xuICBwdWJsaWNLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXljaGFpbldlYmF1dGhuRGV2aWNlIHtcbiAgb3RwRGV2aWNlSWQ6IHN0cmluZztcbiAgYXV0aGVudGljYXRvckluZm86IFdlYmF1dGhuQXV0aGVudGljYXRvckluZm87XG4gIC8vIHNhbHQgZm9yIHRoZSB3ZWJhdXRobiBwcmYgZXh0ZW5zaW9uXG4gIHByZlNhbHQ6IHN0cmluZztcbiAgLy8gV2FsbGV0IHByaXZhdGUga2V5IGVuY3J5cHRlZCB0byB3ZWJhdXRobiBkZXJpdmVkIHBhc3N3b3JkXG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleWNoYWluIHtcbiAgaWQ6IHN0cmluZztcbiAgcHViPzogc3RyaW5nO1xuICBwcnY/OiBzdHJpbmc7XG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY/OiBzdHJpbmc7XG4gIC8vIFJlcXVpcmVkIGZvciBNUENWMiBrZXlzIHdoZXJlIHdlIHJlZHVjZSB0aGUgYW1vdW50IG9mIGRhdGEgbmVlZGVkIGZvciB0aGUga2V5Y2FyZC5cbiAgLy8gQ29udGFpbnMgdGhlIHBhcnR5J3MgcHJpdmF0ZSBzY2FsYXIgKHNfaSkgYXMgcHJpdmF0ZSBrZXkgbWF0ZXJpYWwsIENCT1ItZW5jb2RlZFxuICAvLyBhbmQgZW5jcnlwdGVkIHdpdGggdGhlIHdhbGxldCBwYXNzcGhyYXNlLiBUaGlzIGlzIG9ubHkgZ2VuZXJhdGVkIGNsaWVudCBzaWRlIGFuZFxuICAvLyBpcyBub3Qgc2VudCB0byBXUC5cbiAgcmVkdWNlZEVuY3J5cHRlZFBydj86IHN0cmluZztcbiAgZGVyaXZhdGlvblBhdGg/OiBzdHJpbmc7XG4gIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQ/OiBzdHJpbmc7XG4gIC8qKiBIYXJkZW5lZCBwYXRoIGZyb20gdGhlIHNhZmUgcGFyZW50IChgbS88bj4nYCkuIEBleHBlcmltZW50YWwgKi9cbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoUGF0aD86IHN0cmluZztcbiAgLyoqIFNhZmUgcm9vdCBrZXkgaWQgdGhpcyBjaGlsZCBrZXkgd2FzIGRlcml2ZWQgZnJvbSAoV0NOLTExNzIpLiAqL1xuICBwYXJlbnQ/OiBzdHJpbmc7XG4gIGNvbW1vblB1Yj86IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gIGtleVNoYXJlcz86IEFwaUtleVNoYXJlW107XG4gIHdhbGxldEhTTUdQR1B1YmxpY0tleVNpZ3M/OiBzdHJpbmc7XG4gIGhzbVR5cGU/OiBCaXRnb1B1YktleVR5cGU7XG4gIHR5cGU6IEtleVR5cGU7XG4gIHNvdXJjZT86IFNvdXJjZVR5cGU7XG4gIGNvaW5TcGVjaWZpYz86IHsgW2NvaW5OYW1lOiBzdHJpbmddOiB1bmtub3duIH07XG4gIC8vIEFsdGVybmF0aXZlIGVuY3J5cHRlZFBydiB1c2luZyB3ZWJhdXRobiBhbmQgdGhlIHByZiBleHRlbnNpb25cbiAgd2ViYXV0aG5EZXZpY2VzPzogS2V5Y2hhaW5XZWJhdXRobkRldmljZVtdO1xuICAvLyBFdGhlcmV1bSBhZGRyZXNzIGRlcml2ZWQgZnJvbSB4cHViXG4gIGV0aEFkZHJlc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIE9wdGlvbmFsS2V5Y2hhaW5FbmNyeXB0ZWRLZXkgPSBQaWNrPEtleWNoYWluLCAnZW5jcnlwdGVkUHJ2JyB8ICd3ZWJhdXRobkRldmljZXMnPjtcblxuZXhwb3J0IHR5cGUgS2V5Y2hhaW5XaXRoRW5jcnlwdGVkUHJ2ID0gT21pdDxLZXljaGFpbiwgJ2VuY3J5cHRlZFBydic+ICYge1xuICBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlZEtleWNoYWlucyB7XG4gIFtwdWJrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0S2V5Y2hhaW5zUmVzdWx0IHtcbiAga2V5czogS2V5Y2hhaW5bXTtcbiAgbmV4dEJhdGNoUHJldklkPzogc3RyaW5nO1xuICAvKiogVG90YWwgb2YgdGhlIGxpc3RlZCBrZXljaGFpbnMg4oCUIHRoZSBjb3VudCBvZiB0aGUgbGlzdCdzIG93biBxdWVyeSAoV0NOLTIwODQgdG90YWwtY291bnQgc3VwcG9ydCkuICovXG4gIHRvdGFsQ291bnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0S2V5Y2hhaW5PcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgeHB1Yj86IHN0cmluZztcbiAgZXRoQWRkcmVzcz86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0S2V5Y2hhaW5PcHRpb25zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHByZXZJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gcHJlc2VudCwgdGhlIGxpc3RpbmcgaXMgc2NvcGVkIHRvIHRoZSBrZXlzIG9mIHRoZSBzYWZlIHdpdGggdGhpcyBwdWJsaWMgaWQgaW5zdGVhZCBvZlxuICAgKiB0aGUgY2FsbGVyJ3MgY29pbi13aWRlIGtleSBzZXQuIFJlcXVpcmVzIHNhZmUgYWRtaW47IHRoZSByZXNwb25zZSBzdGlsbCBjYXJyaWVzIG9ubHkgdGhlXG4gICAqIGNhbGxlcidzIG93biBgdXNlcnNbXWAgZW52ZWxvcGVzLiBUaGUgcmVzdWx0IHNldCBpcyBjb2luLWluZGVwZW5kZW50ICh0aGUgc2FtZSBzYWZlIHlpZWxkc1xuICAgKiB0aGUgc2FtZSBrZXlzIGZvciBhbnkgY29pbidzIGtleWNoYWlucygpKSwgc28gYW55IGNvaW4gbWF5IGJlIHVzZWQgZm9yIHRoZSB3YWxrLlxuICAgKi9cbiAgc2FmZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBLZXljaGFpblBhc3N3b3JkVXBkYXRlU3RhdHVzID0gJ3VwZGF0ZWQnIHwgJ3NraXBwZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtleWNoYWluUGFzc3dvcmRVcGRhdGVQcm9ncmVzcyB7XG4gIHN0YXR1czogS2V5Y2hhaW5QYXNzd29yZFVwZGF0ZVN0YXR1cztcbiAgY3VycmVudEtleWNoYWluSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUcnV0aGZ1bCB0b3RhbCBvZiB0aGUgbGlzdGVkIGtleWNoYWlucyAoYHRvdGFsQ291bnRgIGZyb20gdGhlIGJhY2tlbmQsIFdDTi0yMDg0KS5cbiAgICogRXZlcnkgbGlzdGVkIHJlY29yZCByZXBvcnRzIGFuIG91dGNvbWUgKHVwZGF0ZWQgfCBza2lwcGVkKSwgc28gYGNvbXBsZXRlZGAgcmVhY2hlc1xuICAgKiB0aGlzIHRvdGFsIGV4YWN0bHkgb24gYW55IGFjY291bnQgY29tcG9zaXRpb24uXG4gICAqL1xuICB0b3RhbD86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgS2V5Y2hhaW5QYXNzd29yZFVwZGF0ZVByb2dyZXNzQ2FsbGJhY2sgPSAocHJvZ3Jlc3M6IEtleWNoYWluUGFzc3dvcmRVcGRhdGVQcm9ncmVzcykgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQYXNzd29yZE9wdGlvbnMge1xuICBvbGRQYXNzd29yZDogc3RyaW5nO1xuICBuZXdQYXNzd29yZDogc3RyaW5nO1xuICAvKipcbiAgICogRW52ZWxvcGUgdmVyc2lvbiB0byBlbWl0IGZvciB0aGUgcmUtZW5jcnlwdGVkIGtleWNoYWlucy4gRGVmYXVsdHMgdG8gcHJlc2VydmluZyBlYWNoXG4gICAqIGtleWNoYWluJ3MgZXhpc3RpbmcgZW52ZWxvcGUgdmVyc2lvbiAobm8gZm9yY2VkIG1pZ3JhdGlvbikuIFBhc3MgYDJgIHRvIG9wdCBpbiB0byB0aGVcbiAgICogQXJnb24yaWQgdXBncmFkZSBmb3IgdjEgKFNKQ0wpIGtleWNoYWlucyBvbmNlIHRoZSBjYWxsZXIgaXMgcmVhZHkgKGUuZy4gYWZ0ZXIgdGhlXG4gICAqIFNlcHQgMTUgYnJlYWtpbmctY2hhbmdlIHdpbmRvdyBjbG9zZXMpLlxuICAgKi9cbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgLyoqIFJldXNlIG9uZSBwYXNzd29yZC1kZXJpdmVkIHNlc3Npb24gYWNyb3NzIGFsbCBtYXRjaGluZyBrZXljaGFpbnMuICovXG4gIGVuY3J5cHRpb25TZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uO1xuICAvKipcbiAgICogUm90YXRlIHRoZSBwYXNzcGhyYXNlIG9mIHRoZSBzYWZlIHdpdGggdGhpcyBwdWJsaWMgaWQgaW5zdGVhZCBvZiB0aGUgY2FsbGVyJ3NcbiAgICogY29pbi13aWRlIGtleSBzZXQuIFRoaXMgZmxpcHMgdGhlIG1ldGhvZCdzIGNvbnRyYWN0IOKAlCB0aGUgdHdvIG1vZGVzIGFyZSBOT1QgaW50ZXJjaGFuZ2VhYmxlOlxuICAgKlxuICAgKiAtIFdJVEhPVVQgYHNhZmVJZGAgKGxlZ2FjeSk6IHdhbGtzIGFsbCBvZiB0aGUgY2FsbGVyJ3MgY29pbi1zY29wZWQga2V5Y2hhaW5zLCBzaWxlbnRseVxuICAgKiAgIHNraXBzIGtleWNoYWlucyB0aGF0IGZhaWwgdG8gZGVjcnlwdCwgcmV0dXJucyBhIGBjaGFuZ2VkS2V5c2AgbWFwLCBhbmQgcGVyc2lzdHMgTk9USElORyDigJRcbiAgICogICBwZXJzaXN0ZW5jZSBpcyB0aGUgY2FsbGVyJ3Mgam9iLlxuICAgKiAtIFdJVEggYHNhZmVJZGAgKHNhZmUgbW9kZSk6IHdhbGtzIG9ubHkgdGhlIHNhZmUncyBrZXljaGFpbnMgKHJlcXVpcmVzIHNhZmUgYWRtaW4pLFxuICAgKiAgIGRlY3J5cHRzIGV2ZXJ5IGVudmVsb3BlIHVwLWZyb250IGFuZCBmYWlscyBGQVNUIHdpdGggYEluY29ycmVjdFBhc3N3b3JkRXJyb3JgIG9uIHRoZVxuICAgKiAgIGZpcnN0IHVuZGVjcnlwdGFibGUgb25lICh6ZXJvIHdyaXRlcyksIHJlLWVuY3J5cHRzIHdpdGggYSBzaW5nbGUgc2hhcmVkIGVuY3J5cHRpb25cbiAgICogICBzZXNzaW9uLCBhbmQgcGVyc2lzdHMgZXZlcnl0aGluZyBBVE9NSUNBTExZIHNlcnZlci1zaWRlIHZpYSB0aGUgYmF0Y2ggZW5kcG9pbnRcbiAgICogICAoYFBVVCAvYXBpL3YyL2tleS9idWxrYCwgcGVyLWtleSBjb21wYXJlLWFuZC1zd2FwIGFnYWluc3QgdGhlIG9sZCBlbnZlbG9wZSkuIFJlc29sdmVzXG4gICAqICAgd2l0aCB0aGUgYmF0Y2ggcmVzcG9uc2UsIG5vdCBhIGBjaGFuZ2VkS2V5c2AgbWFwLiBOb3RlIHRoYXQgaW4gdGhpcyBtb2RlIHRoZSBlbnZlbG9wZXNcbiAgICogICBhcmUgZW1pdHRlZCBhdCB0aGUgc2hhcmVkIHNlc3Npb24ncyB2ZXJzaW9uIChgZW5jcnlwdGlvblZlcnNpb25gLCBkZWZhdWx0IHYyKSwgbm90XG4gICAqICAgcGVyLWtleWNoYWluIHNvdXJjZSB2ZXJzaW9ucy5cbiAgICovXG4gIHNhZmVJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG9ic2VydmVyIGludm9rZWQgb25jZSBwZXIgbGlzdGVkIGtleWNoYWluIHJlY29yZCAoYHVwZGF0ZWRgIG9yIGBza2lwcGVkYCkgZHVyaW5nIHBhc3N3b3JkXG4gICAqIHJvdGF0aW9uLiBMZWdhY3kgbW9kZSAobm8gYHNhZmVJZGApIG9ubHk6IHNhZmUgbW9kZSBwZXJzaXN0cyB0aHJvdWdoIHRoZSBidWxrIGtleSBlbmRwb2ludCBhbmQgbmV2ZXJcbiAgICogaW52b2tlcyBpdC5cbiAgICovXG4gIHByb2dyZXNzQ2FsbGJhY2s/OiBLZXljaGFpblBhc3N3b3JkVXBkYXRlUHJvZ3Jlc3NDYWxsYmFjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTaW5nbGVLZXljaGFpblBhc3N3b3JkT3B0aW9ucyB7XG4gIGtleWNoYWluPzogS2V5Y2hhaW47XG4gIG9sZFBhc3N3b3JkPzogc3RyaW5nO1xuICBuZXdQYXNzd29yZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEVudmVsb3BlIHZlcnNpb24gdG8gZW1pdC4gRGVmYXVsdHMgdG8gcHJlc2VydmluZyB0aGUgc291cmNlIGVudmVsb3BlJ3MgdmVyc2lvbi5cbiAgICogUGFzcyBgMmAgdG8gb3B0IGluIHRvIHRoZSBBcmdvbjJpZCB1cGdyYWRlLlxuICAgKi9cbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgLyoqIFJldXNlIG9uZSBwYXNzd29yZC1kZXJpdmVkIHNlc3Npb24gZm9yIHRoaXMga2V5Y2hhaW4ncyBuZXcgZW52ZWxvcGUuICovXG4gIGVuY3J5cHRpb25TZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSByb3RhdGVLZXljaGFpbiBtZXRob2QgZm9yIG9mYyBtdWx0aS11c2VyLWtleVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGlkIC0gdGhlIHB1YmxpYyBpZCBvZiB0aGUga2V5Y2hhaW5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXNzd29yZCAtIHRoZSB1c2VyIHBhc3N3b3JkIHVzZSB0byBlbmNyeXB0L2RlY3J5cHQgdGhlIHByaXZhdGUga2V5XG4gKiBAcHJvcGVydHkge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIG9wdGlvbmFsIHJlcUlkXG4gKi9cbmV4cG9ydCB0eXBlIFJvdGF0ZUtleWNoYWluT3B0aW9ucyA9XG4gIHwge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICAgICAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgICB9XG4gIHwge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIHB1Yjogc3RyaW5nO1xuICAgICAgZW5jcnlwdGVkUHJ2OiBzdHJpbmc7XG4gICAgICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICAgIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkS2V5Y2hhaW5PcHRpb25zIHtcbiAgcHViPzogc3RyaW5nO1xuICBjb21tb25QdWI/OiBzdHJpbmc7XG4gIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGtleVR5cGU/OiBLZXlUeXBlO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZD86IHN0cmluZztcbiAgLyoqIEhhcmRlbmVkIHBhdGggZnJvbSB0aGUgc2FmZSBwYXJlbnQgKGBtLzxuPidgKS4gQGV4cGVyaW1lbnRhbCAqL1xuICBkZXJpdmVkRnJvbVBhcmVudFdpdGhQYXRoPzogc3RyaW5nO1xuICAvKiogU2FmZSB1c2VyLXJvb3Qga2V5IGlkIHRoaXMgY2hpbGQgd2FzIGRlcml2ZWQgZnJvbS4gQGV4cGVyaW1lbnRhbCAqL1xuICBwYXJlbnQ/OiBzdHJpbmc7XG4gIGRpc2FibGVLUlNFbWFpbD86IGJvb2xlYW47XG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICBrcnNTcGVjaWZpYz86IGFueTtcbiAga2V5U2hhcmVzPzogQXBpS2V5U2hhcmVbXTtcbiAgdXNlckdQR1B1YmxpY0tleT86IHN0cmluZztcbiAgYmFja3VwR1BHUHVibGljS2V5Pzogc3RyaW5nO1xuICBhbGdvVXNlZD86IHN0cmluZztcbiAgaXNEaXN0cmlidXRlZEN1c3RvZHk/OiBib29sZWFuO1xuICAvLyBpbmRpY2F0ZXMgaWYgdGhlIGtleSBpcyBNUEN2MiBvciBub3RcbiAgaXNNUEN2Mj86IGJvb2xlYW47XG4gIGNvaW5TcGVjaWZpYz86IHsgW2NvaW5OYW1lOiBzdHJpbmddOiB1bmtub3duIH07XG4gIC8qKiBXZWJBdXRobiBkZXZpY2VzIHRoYXQgaGF2ZSBhbiBhZGRpdGlvbmFsIGVuY3J5cHRlZCBjb3B5IG9mIHRoZSBwcml2YXRlIGtleSwga2V5ZWQgYnkgUFJGLWRlcml2ZWQgcGFzc3BocmFzZXMuXG4gICAqICBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIHdlYmF1dGhuSW5mb30gaW5zdGVhZCDigJQgdGhlIGJhY2tlbmQgcmVhZHMgYHdlYmF1dGhuSW5mb2AgKHNpbmdsZSBvYmplY3QpLCBub3QgYHdlYmF1dGhuRGV2aWNlc2AuICovXG4gIHdlYmF1dGhuRGV2aWNlcz86IFdlYmF1dGhuSW5mb1tdO1xuICAvKiogU2luZ2xlIHdlYmF1dGhuIGRldmljZSB0byBhdG9taWNhbGx5IGF0dGFjaCBkdXJpbmcga2V5IGNyZWF0aW9uLlxuICAgKiAgU2VudCBhcyBgd2ViYXV0aG5JbmZvYCBpbiB0aGUgUE9TVCAva2V5IGJvZHkgc28gdGhlIGJhY2tlbmQgY2FuIGxpbmtcbiAgICogIHRoZSBwYXNza2V5IHRvIHRoZSBrZXljaGFpbiBpbiB0aGUgc2FtZSByZXF1ZXN0LiAqL1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobkluZm87XG4gIC8qKiBQdWJsaWMgaWQgb2YgdGhlIHNhZmUgdGhpcyBrZXkgaXMgYSByb290IG9mIChXYWxsZXQgU2FmZXMgdjEpLiBXaGVuIHNldCwgdGhlIGJhY2tlbmQgdGFnc1xuICAgKiAgdGhlIGtleSB3aXRoIHRoZSBzYWZlIGFuZCBzdGFtcHMgaXRzIGN1cnZlIHNlcnZlci1zaWRlLiBAZXhwZXJpbWVudGFsICovXG4gIHNhZmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlLZXlTaGFyZSB7XG4gIGZyb206ICd1c2VyJyB8ICdiYWNrdXAnIHwgJ2JpdGdvJztcbiAgdG86ICd1c2VyJyB8ICdiYWNrdXAnIHwgJ2JpdGdvJztcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZVByb29mPzogc3RyaW5nO1xuICBwYWlsbGllclB1YmxpY0tleT86IHN0cmluZztcbiAgbj86IHN0cmluZztcbiAgdnNzUHJvb2Y/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQmFja3VwT3B0aW9ucyB7XG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIGRpc2FibGVLUlNFbWFpbD86IGJvb2xlYW47XG4gIGtyc1NwZWNpZmljPzogYW55O1xuICB0eXBlPzogc3RyaW5nO1xuICBrZXlUeXBlPzogS2V5VHlwZTtcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbiAgY29tbW9uUHViPzogc3RyaW5nO1xuICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAgcHJ2Pzogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY/OiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIC8qKiBQdWJsaWMgaWQgb2YgdGhlIHNhZmUgdGhpcyBiYWNrdXAga2V5IGlzIGEgcm9vdCBvZiAoV2FsbGV0IFNhZmVzIHYxKS4gQGV4cGVyaW1lbnRhbCAqL1xuICBzYWZlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQml0R29PcHRpb25zIHtcbiAgc291cmNlPzogJ2JpdGdvJztcbiAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbiAga2V5VHlwZT86IEtleVR5cGU7XG4gIGlzRGlzdHJpYnV0ZWRDdXN0b2R5PzogYm9vbGVhbjtcbiAgLyoqIFB1YmxpYyBpZCBvZiB0aGUgc2FmZSB0aGlzIEJpdEdvIGtleSBpcyBhIHJvb3Qgb2YgKFdhbGxldCBTYWZlcyB2MSkuIEBleHBlcmltZW50YWwgKi9cbiAgc2FmZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEZWNyeXB0ZWRSZXRyb2ZpdFBheWxvYWQgPSB7XG4gIGRlY3J5cHRlZFVzZXJLZXk6IHN0cmluZztcbiAgZGVjcnlwdGVkQmFja3VwS2V5OiBzdHJpbmc7XG4gIHdhbGxldElkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU1wY09wdGlvbnMge1xuICBtdWx0aXNpZ1R5cGU6ICdvbmNoYWluJyB8ICd0c3MnO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIHJldHJvZml0PzogRGVjcnlwdGVkUmV0cm9maXRQYXlsb2FkO1xuICB3ZWJhdXRobkluZm8/OiBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAvKiogUHVibGljIGlkIG9mIHRoZSBzYWZlIHRoZXNlIE1QQyByb290IGtleXMgYmVsb25nIHRvIChXYWxsZXQgU2FmZXMgdjEpLiBUaHJlYWRlZCB0aHJvdWdoIHRoZVxuICAgKiAgY2VyZW1vbnkgc28gdGhlIHJlc3VsdGluZyB1c2VyL2JhY2t1cC9iaXRnbyBrZXlzIGxhbmQgdGFnZ2VkLiBAZXhwZXJpbWVudGFsICovXG4gIHNhZmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNyZWF0ZU1wY09wdGlvbnMgZXh0ZW5kcyBPbWl0PENyZWF0ZU1wY09wdGlvbnMsICdyZXRyb2ZpdCcgfCAnbXVsdGlzaWdUeXBlJz4ge1xuICBjb2luOiBzdHJpbmc7XG4gIHdhbGxldElkOiBzdHJpbmc7XG4gIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgb3RwOiBzdHJpbmc7XG4gIGVudGVycHJpc2U6IHN0cmluZztcbiAgZW5jcnlwdGVkTWF0ZXJpYWw6IHtcbiAgICBlbmNyeXB0ZWRVc2VyS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkQmFja3VwS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkV2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEtleXNGb3JTaWduaW5nT3B0aW9ucyB7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIHdhbGxldD86IElXYWxsZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0U2lnbmluZ0tleUFwaSB7XG4gIHVzZXJJZDogc3RyaW5nO1xuICB1c2VyRW1haWw6IHN0cmluZztcbiAgZGVyaXZlZFB1YmtleTogc3RyaW5nO1xuICAvLyBUaGVzZSBhcmUgcHJlc2VudCB3aGVuIHVzZXIgZmV0Y2hlcyB0aGVpciBvd24gZWNkaCBrZXljaGFpbiBmb3Igc2lnbmluZy5cbiAgZGVyaXZhdGlvblBhdGg/OiBzdHJpbmc7XG4gIGVjZGhLZXljaGFpbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFY2RoRGVyaXZlZEtleXBhaXIge1xuICBkZXJpdmVkUHViS2V5OiBzdHJpbmc7IC8vIEhleCBzdHJpbmdcbiAgZGVyaXZhdGlvblBhdGg6IHN0cmluZzsgLy8gRGVyaXZhdGlvbiBwYXRoIG9mIHRoZSBrZXlwYWlyXG4gIHhwcnY6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gS2V5SW5kaWNlcyB7XG4gIFVTRVIgPSAwLFxuICBCQUNLVVAgPSAxLFxuICBCSVRHTyA9IDIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUtleWNoYWlucyB7XG4gIGdldChwYXJhbXM6IEdldEtleWNoYWluT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBsaXN0KHBhcmFtcz86IExpc3RLZXljaGFpbk9wdGlvbnMpOiBQcm9taXNlPExpc3RLZXljaGFpbnNSZXN1bHQ+O1xuICB1cGRhdGVQYXNzd29yZChwYXJhbXM6IFVwZGF0ZVBhc3N3b3JkT3B0aW9ucyAmIHsgc2FmZUlkOiBzdHJpbmcgfSk6IFByb21pc2U8S2V5QnVsa1VwZGF0ZVJlc3BvbnNlPjtcbiAgdXBkYXRlUGFzc3dvcmQocGFyYW1zOiBVcGRhdGVQYXNzd29yZE9wdGlvbnMpOiBQcm9taXNlPENoYW5nZWRLZXljaGFpbnM+O1xuICB1cGRhdGVTaW5nbGVLZXljaGFpblBhc3N3b3JkKHBhcmFtcz86IFVwZGF0ZVNpbmdsZUtleWNoYWluUGFzc3dvcmRPcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGdldEVuY3J5cHRpb25WZXJzaW9uKGNpcGhlcnRleHQ6IHN0cmluZyk6IEVuY3J5cHRpb25WZXJzaW9uO1xuICByZWVuY3J5cHRBc1YyKGVuY3J5cHRlZFBydjogc3RyaW5nLCBwYXNzcGhyYXNlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gIGNyZWF0ZShwYXJhbXM/OiB7IHNlZWQ/OiBCdWZmZXI7IGlzUm9vdEtleT86IGJvb2xlYW4gfSk6IEtleVBhaXI7XG4gIGFkZChwYXJhbXM/OiBBZGRLZXljaGFpbk9wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0R28ocGFyYW1zPzogQ3JlYXRlQml0R29PcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGNyZWF0ZUJhY2t1cChwYXJhbXM/OiBDcmVhdGVCYWNrdXBPcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGdldEtleXNGb3JTaWduaW5nKHBhcmFtcz86IEdldEtleXNGb3JTaWduaW5nT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW5bXT47XG4gIGNyZWF0ZU1wYyhwYXJhbXM6IENyZWF0ZU1wY09wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xuICByZWNyZWF0ZU1wYyhwYXJhbXM6IFJlY3JlYXRlTXBjT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG4gIGNyZWF0ZVRzc0JpdEdvS2V5RnJvbU92Y1NoYXJlcyhvdmNPdXRwdXQ6IE92Y1RvQml0R29KU09OLCBlbnRlcnByaXNlPzogc3RyaW5nKTogUHJvbWlzZTxCaXRHb0tleUZyb21PdmNTaGFyZXM+O1xuICBjcmVhdGVVc2VyS2V5Y2hhaW4oXG4gICAgdXNlclBhc3N3b3JkOiBzdHJpbmcsXG4gICAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbixcbiAgICBzZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uXG4gICk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICByb3RhdGVLZXljaGFpbihwYXJhbXM6IFJvdGF0ZUtleWNoYWluT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW4+O1xufVxuIl19
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaUtleWNoYWlucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9rZXljaGFpbi9pS2V5Y2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlVQSxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsMkNBQVEsQ0FBQTtJQUNSLCtDQUFVLENBQUE7SUFDViw2Q0FBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLFVBQVUsMEJBQVYsVUFBVSxRQUlyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgS2V5QnVsa1VwZGF0ZVJlc3BvbnNlIH0gZnJvbSAnQGJpdGdvL3B1YmxpYy10eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uVmVyc2lvbiwgSUVuY3J5cHRpb25TZXNzaW9uLCBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0LCBLZXlQYWlyIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0Z29QdWJLZXlUeXBlIH0gZnJvbSAnLi4vdXRpbHMvdHNzL2Jhc2VUeXBlcyc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IEJpdEdvS2V5RnJvbU92Y1NoYXJlcywgT3ZjVG9CaXRHb0pTT04gfSBmcm9tICcuL292Y0pzb25Db2RlYyc7XG5cbmV4cG9ydCB0eXBlIEtleVR5cGUgPSAndHNzJyB8ICdpbmRlcGVuZGVudCcgfCAnYmxzZGtnJztcblxuZXhwb3J0IGludGVyZmFjZSBXZWJhdXRobkluZm8ge1xuICBwcmZTYWx0OiBzdHJpbmc7XG4gIG90cERldmljZUlkOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICAvKiogUmVxdWlyZWQgYnkgUE9TVCAva2V5IHRvIHZhbGlkYXRlIHRoZSBQUkYgc2FsdDsgbm90IG5lZWRlZCBvbiB0aGUgUFVUIC9rZXkvOmlkIHVwZGF0ZSBwYXRoLiAqL1xuICBlbnRlcnByaXNlSWQ/OiBzdHJpbmc7XG59XG5cbmltcG9ydCB0eXBlIHsgV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbyB9IGZyb20gJy4uL3dhbGxldC9pV2FsbGV0cyc7XG5leHBvcnQgdHlwZSB7IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm8gfTtcblxuZXhwb3J0IHR5cGUgU291cmNlVHlwZSA9ICdiaXRnbycgfCAnYmFja3VwJyB8ICd1c2VyJyB8ICdjb2xkJztcblxuZXhwb3J0IHR5cGUgV2ViYXV0aG5GbXQgPSAnbm9uZScgfCAncGFja2VkJyB8ICdmaWRvLXUyZic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViYXV0aG5BdXRoZW50aWNhdG9ySW5mbyB7XG4gIGNyZWRJRDogc3RyaW5nO1xuICBmbXQ6IFdlYmF1dGhuRm10O1xuICBwdWJsaWNLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLZXljaGFpbldlYmF1dGhuRGV2aWNlIHtcbiAgb3RwRGV2aWNlSWQ6IHN0cmluZztcbiAgYXV0aGVudGljYXRvckluZm86IFdlYmF1dGhuQXV0aGVudGljYXRvckluZm87XG4gIC8vIHNhbHQgZm9yIHRoZSB3ZWJhdXRobiBwcmYgZXh0ZW5zaW9uXG4gIHByZlNhbHQ6IHN0cmluZztcbiAgLy8gV2FsbGV0IHByaXZhdGUga2V5IGVuY3J5cHRlZCB0byB3ZWJhdXRobiBkZXJpdmVkIHBhc3N3b3JkXG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEtleWNoYWluIHtcbiAgaWQ6IHN0cmluZztcbiAgcHViPzogc3RyaW5nO1xuICBwcnY/OiBzdHJpbmc7XG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY/OiBzdHJpbmc7XG4gIC8vIFJlcXVpcmVkIGZvciBNUENWMiBrZXlzIHdoZXJlIHdlIHJlZHVjZSB0aGUgYW1vdW50IG9mIGRhdGEgbmVlZGVkIGZvciB0aGUga2V5Y2FyZC5cbiAgLy8gQ29udGFpbnMgdGhlIHBhcnR5J3MgcHJpdmF0ZSBzY2FsYXIgKHNfaSkgYXMgcHJpdmF0ZSBrZXkgbWF0ZXJpYWwsIENCT1ItZW5jb2RlZFxuICAvLyBhbmQgZW5jcnlwdGVkIHdpdGggdGhlIHdhbGxldCBwYXNzcGhyYXNlLiBUaGlzIGlzIG9ubHkgZ2VuZXJhdGVkIGNsaWVudCBzaWRlIGFuZFxuICAvLyBpcyBub3Qgc2VudCB0byBXUC5cbiAgcmVkdWNlZEVuY3J5cHRlZFBydj86IHN0cmluZztcbiAgZGVyaXZhdGlvblBhdGg/OiBzdHJpbmc7XG4gIGRlcml2ZWRGcm9tUGFyZW50V2l0aFNlZWQ/OiBzdHJpbmc7XG4gIC8qKiBCSVA0NCBwYXRoIGZyb20gdGhlIHNhZmUgcGFyZW50OiBgbS80NCcvPGNvaW5UeXBlPicvPHNsb3Q+Jy88YWNjb3VudD4nYCAodXNlciAvIE1QQyBjaGlsZHJlbikgb3IgaXRzIHNvZnQgdHdpbiBgbS80NC88Y29pblR5cGU+LzxzbG90Pi88YWNjb3VudD5gIChtdWx0aXNpZyBjby1zaWduZXJzKS4gQGV4cGVyaW1lbnRhbCAqL1xuICBkZXJpdmVkRnJvbVBhcmVudFdpdGhQYXRoPzogc3RyaW5nO1xuICAvKiogU2FmZSByb290IGtleSBpZCB0aGlzIGNoaWxkIGtleSB3YXMgZGVyaXZlZCBmcm9tIChXQ04tMTE3MikuICovXG4gIHBhcmVudD86IHN0cmluZztcbiAgY29tbW9uUHViPzogc3RyaW5nO1xuICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAga2V5U2hhcmVzPzogQXBpS2V5U2hhcmVbXTtcbiAgd2FsbGV0SFNNR1BHUHVibGljS2V5U2lncz86IHN0cmluZztcbiAgaHNtVHlwZT86IEJpdGdvUHViS2V5VHlwZTtcbiAgdHlwZTogS2V5VHlwZTtcbiAgc291cmNlPzogU291cmNlVHlwZTtcbiAgY29pblNwZWNpZmljPzogeyBbY29pbk5hbWU6IHN0cmluZ106IHVua25vd24gfTtcbiAgLy8gQWx0ZXJuYXRpdmUgZW5jcnlwdGVkUHJ2IHVzaW5nIHdlYmF1dGhuIGFuZCB0aGUgcHJmIGV4dGVuc2lvblxuICB3ZWJhdXRobkRldmljZXM/OiBLZXljaGFpbldlYmF1dGhuRGV2aWNlW107XG4gIC8vIEV0aGVyZXVtIGFkZHJlc3MgZGVyaXZlZCBmcm9tIHhwdWJcbiAgZXRoQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW9uYWxLZXljaGFpbkVuY3J5cHRlZEtleSA9IFBpY2s8S2V5Y2hhaW4sICdlbmNyeXB0ZWRQcnYnIHwgJ3dlYmF1dGhuRGV2aWNlcyc+O1xuXG5leHBvcnQgdHlwZSBLZXljaGFpbldpdGhFbmNyeXB0ZWRQcnYgPSBPbWl0PEtleWNoYWluLCAnZW5jcnlwdGVkUHJ2Jz4gJiB7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VkS2V5Y2hhaW5zIHtcbiAgW3B1YmtleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RLZXljaGFpbnNSZXN1bHQge1xuICBrZXlzOiBLZXljaGFpbltdO1xuICBuZXh0QmF0Y2hQcmV2SWQ/OiBzdHJpbmc7XG4gIC8qKiBUb3RhbCBvZiB0aGUgbGlzdGVkIGtleWNoYWlucyDigJQgdGhlIGNvdW50IG9mIHRoZSBsaXN0J3Mgb3duIHF1ZXJ5IChXQ04tMjA4NCB0b3RhbC1jb3VudCBzdXBwb3J0KS4gKi9cbiAgdG90YWxDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRLZXljaGFpbk9wdGlvbnMge1xuICBpZDogc3RyaW5nO1xuICB4cHViPzogc3RyaW5nO1xuICBldGhBZGRyZXNzPzogc3RyaW5nO1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RLZXljaGFpbk9wdGlvbnMge1xuICBsaW1pdD86IG51bWJlcjtcbiAgcHJldklkPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiBwcmVzZW50LCB0aGUgbGlzdGluZyBpcyBzY29wZWQgdG8gdGhlIGtleXMgb2YgdGhlIHNhZmUgd2l0aCB0aGlzIHB1YmxpYyBpZCBpbnN0ZWFkIG9mXG4gICAqIHRoZSBjYWxsZXIncyBjb2luLXdpZGUga2V5IHNldC4gUmVxdWlyZXMgc2FmZSBhZG1pbjsgdGhlIHJlc3BvbnNlIHN0aWxsIGNhcnJpZXMgb25seSB0aGVcbiAgICogY2FsbGVyJ3Mgb3duIGB1c2Vyc1tdYCBlbnZlbG9wZXMuIFRoZSByZXN1bHQgc2V0IGlzIGNvaW4taW5kZXBlbmRlbnQgKHRoZSBzYW1lIHNhZmUgeWllbGRzXG4gICAqIHRoZSBzYW1lIGtleXMgZm9yIGFueSBjb2luJ3Mga2V5Y2hhaW5zKCkpLCBzbyBhbnkgY29pbiBtYXkgYmUgdXNlZCBmb3IgdGhlIHdhbGsuXG4gICAqL1xuICBzYWZlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEtleWNoYWluUGFzc3dvcmRVcGRhdGVTdGF0dXMgPSAndXBkYXRlZCcgfCAnc2tpcHBlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Y2hhaW5QYXNzd29yZFVwZGF0ZVByb2dyZXNzIHtcbiAgc3RhdHVzOiBLZXljaGFpblBhc3N3b3JkVXBkYXRlU3RhdHVzO1xuICBjdXJyZW50S2V5Y2hhaW5JZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRydXRoZnVsIHRvdGFsIG9mIHRoZSBsaXN0ZWQga2V5Y2hhaW5zIChgdG90YWxDb3VudGAgZnJvbSB0aGUgYmFja2VuZCwgV0NOLTIwODQpLlxuICAgKiBFdmVyeSBsaXN0ZWQgcmVjb3JkIHJlcG9ydHMgYW4gb3V0Y29tZSAodXBkYXRlZCB8IHNraXBwZWQpLCBzbyBgY29tcGxldGVkYCByZWFjaGVzXG4gICAqIHRoaXMgdG90YWwgZXhhY3RseSBvbiBhbnkgYWNjb3VudCBjb21wb3NpdGlvbi5cbiAgICovXG4gIHRvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBLZXljaGFpblBhc3N3b3JkVXBkYXRlUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogS2V5Y2hhaW5QYXNzd29yZFVwZGF0ZVByb2dyZXNzKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVBhc3N3b3JkT3B0aW9ucyB7XG4gIG9sZFBhc3N3b3JkOiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFbnZlbG9wZSB2ZXJzaW9uIHRvIGVtaXQgZm9yIHRoZSByZS1lbmNyeXB0ZWQga2V5Y2hhaW5zLiBEZWZhdWx0cyB0byBwcmVzZXJ2aW5nIGVhY2hcbiAgICoga2V5Y2hhaW4ncyBleGlzdGluZyBlbnZlbG9wZSB2ZXJzaW9uIChubyBmb3JjZWQgbWlncmF0aW9uKS4gUGFzcyBgMmAgdG8gb3B0IGluIHRvIHRoZVxuICAgKiBBcmdvbjJpZCB1cGdyYWRlIGZvciB2MSAoU0pDTCkga2V5Y2hhaW5zIG9uY2UgdGhlIGNhbGxlciBpcyByZWFkeSAoZS5nLiBhZnRlciB0aGVcbiAgICogU2VwdCAxNSBicmVha2luZy1jaGFuZ2Ugd2luZG93IGNsb3NlcykuXG4gICAqL1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAvKiogUmV1c2Ugb25lIHBhc3N3b3JkLWRlcml2ZWQgc2Vzc2lvbiBhY3Jvc3MgYWxsIG1hdGNoaW5nIGtleWNoYWlucy4gKi9cbiAgZW5jcnlwdGlvblNlc3Npb24/OiBJRW5jcnlwdGlvblNlc3Npb247XG4gIC8qKlxuICAgKiBSb3RhdGUgdGhlIHBhc3NwaHJhc2Ugb2YgdGhlIHNhZmUgd2l0aCB0aGlzIHB1YmxpYyBpZCBpbnN0ZWFkIG9mIHRoZSBjYWxsZXInc1xuICAgKiBjb2luLXdpZGUga2V5IHNldC4gVGhpcyBmbGlwcyB0aGUgbWV0aG9kJ3MgY29udHJhY3Qg4oCUIHRoZSB0d28gbW9kZXMgYXJlIE5PVCBpbnRlcmNoYW5nZWFibGU6XG4gICAqXG4gICAqIC0gV0lUSE9VVCBgc2FmZUlkYCAobGVnYWN5KTogd2Fsa3MgYWxsIG9mIHRoZSBjYWxsZXIncyBjb2luLXNjb3BlZCBrZXljaGFpbnMsIHNpbGVudGx5XG4gICAqICAgc2tpcHMga2V5Y2hhaW5zIHRoYXQgZmFpbCB0byBkZWNyeXB0LCByZXR1cm5zIGEgYGNoYW5nZWRLZXlzYCBtYXAsIGFuZCBwZXJzaXN0cyBOT1RISU5HIOKAlFxuICAgKiAgIHBlcnNpc3RlbmNlIGlzIHRoZSBjYWxsZXIncyBqb2IuXG4gICAqIC0gV0lUSCBgc2FmZUlkYCAoc2FmZSBtb2RlKTogd2Fsa3Mgb25seSB0aGUgc2FmZSdzIGtleWNoYWlucyAocmVxdWlyZXMgc2FmZSBhZG1pbiksXG4gICAqICAgZGVjcnlwdHMgZXZlcnkgZW52ZWxvcGUgdXAtZnJvbnQgYW5kIGZhaWxzIEZBU1Qgd2l0aCBgSW5jb3JyZWN0UGFzc3dvcmRFcnJvcmAgb24gdGhlXG4gICAqICAgZmlyc3QgdW5kZWNyeXB0YWJsZSBvbmUgKHplcm8gd3JpdGVzKSwgcmUtZW5jcnlwdHMgd2l0aCBhIHNpbmdsZSBzaGFyZWQgZW5jcnlwdGlvblxuICAgKiAgIHNlc3Npb24sIGFuZCBwZXJzaXN0cyBldmVyeXRoaW5nIEFUT01JQ0FMTFkgc2VydmVyLXNpZGUgdmlhIHRoZSBiYXRjaCBlbmRwb2ludFxuICAgKiAgIChgUFVUIC9hcGkvdjIva2V5L2J1bGtgLCBwZXIta2V5IGNvbXBhcmUtYW5kLXN3YXAgYWdhaW5zdCB0aGUgb2xkIGVudmVsb3BlKS4gUmVzb2x2ZXNcbiAgICogICB3aXRoIHRoZSBiYXRjaCByZXNwb25zZSwgbm90IGEgYGNoYW5nZWRLZXlzYCBtYXAuIE5vdGUgdGhhdCBpbiB0aGlzIG1vZGUgdGhlIGVudmVsb3Blc1xuICAgKiAgIGFyZSBlbWl0dGVkIGF0IHRoZSBzaGFyZWQgc2Vzc2lvbidzIHZlcnNpb24gKGBlbmNyeXB0aW9uVmVyc2lvbmAsIGRlZmF1bHQgdjIpLCBub3RcbiAgICogICBwZXIta2V5Y2hhaW4gc291cmNlIHZlcnNpb25zLlxuICAgKi9cbiAgc2FmZUlkPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgb2JzZXJ2ZXIgaW52b2tlZCBvbmNlIHBlciBsaXN0ZWQga2V5Y2hhaW4gcmVjb3JkIChgdXBkYXRlZGAgb3IgYHNraXBwZWRgKSBkdXJpbmcgcGFzc3dvcmRcbiAgICogcm90YXRpb24uIExlZ2FjeSBtb2RlIChubyBgc2FmZUlkYCkgb25seTogc2FmZSBtb2RlIHBlcnNpc3RzIHRocm91Z2ggdGhlIGJ1bGsga2V5IGVuZHBvaW50IGFuZCBuZXZlclxuICAgKiBpbnZva2VzIGl0LlxuICAgKi9cbiAgcHJvZ3Jlc3NDYWxsYmFjaz86IEtleWNoYWluUGFzc3dvcmRVcGRhdGVQcm9ncmVzc0NhbGxiYWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNpbmdsZUtleWNoYWluUGFzc3dvcmRPcHRpb25zIHtcbiAga2V5Y2hhaW4/OiBLZXljaGFpbjtcbiAgb2xkUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIG5ld1Bhc3N3b3JkPzogc3RyaW5nO1xuICAvKipcbiAgICogRW52ZWxvcGUgdmVyc2lvbiB0byBlbWl0LiBEZWZhdWx0cyB0byBwcmVzZXJ2aW5nIHRoZSBzb3VyY2UgZW52ZWxvcGUncyB2ZXJzaW9uLlxuICAgKiBQYXNzIGAyYCB0byBvcHQgaW4gdG8gdGhlIEFyZ29uMmlkIHVwZ3JhZGUuXG4gICAqL1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAvKiogUmV1c2Ugb25lIHBhc3N3b3JkLWRlcml2ZWQgc2Vzc2lvbiBmb3IgdGhpcyBrZXljaGFpbidzIG5ldyBlbnZlbG9wZS4gKi9cbiAgZW5jcnlwdGlvblNlc3Npb24/OiBJRW5jcnlwdGlvblNlc3Npb247XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHJvdGF0ZUtleWNoYWluIG1ldGhvZCBmb3Igb2ZjIG11bHRpLXVzZXIta2V5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gaWQgLSB0aGUgcHVibGljIGlkIG9mIHRoZSBrZXljaGFpblxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBhc3N3b3JkIC0gdGhlIHVzZXIgcGFzc3dvcmQgdXNlIHRvIGVuY3J5cHQvZGVjcnlwdCB0aGUgcHJpdmF0ZSBrZXlcbiAqIEBwcm9wZXJ0eSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gb3B0aW9uYWwgcmVxSWRcbiAqL1xuZXhwb3J0IHR5cGUgUm90YXRlS2V5Y2hhaW5PcHRpb25zID1cbiAgfCB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gICAgICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAgIH1cbiAgfCB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgcHViOiBzdHJpbmc7XG4gICAgICBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBBZGRLZXljaGFpbk9wdGlvbnMge1xuICBwdWI/OiBzdHJpbmc7XG4gIGNvbW1vblB1Yj86IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydj86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAga2V5VHlwZT86IEtleVR5cGU7XG4gIHNvdXJjZT86IHN0cmluZztcbiAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkPzogc3RyaW5nO1xuICAvKiogQklQNDQgcGF0aCBmcm9tIHRoZSBzYWZlIHBhcmVudDogYG0vNDQnLzxjb2luVHlwZT4nLzxzbG90PicvPGFjY291bnQ+J2AgKHVzZXIgLyBNUEMgY2hpbGRyZW4pIG9yIGl0cyBzb2Z0IHR3aW4gYG0vNDQvPGNvaW5UeXBlPi88c2xvdD4vPGFjY291bnQ+YCAobXVsdGlzaWcgY28tc2lnbmVycykuIEBleHBlcmltZW50YWwgKi9cbiAgZGVyaXZlZEZyb21QYXJlbnRXaXRoUGF0aD86IHN0cmluZztcbiAgLyoqIFNhZmUgdXNlci1yb290IGtleSBpZCB0aGlzIGNoaWxkIHdhcyBkZXJpdmVkIGZyb20uIEBleHBlcmltZW50YWwgKi9cbiAgcGFyZW50Pzogc3RyaW5nO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBwcm92aWRlcj86IHN0cmluZztcbiAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcjtcbiAga3JzU3BlY2lmaWM/OiBhbnk7XG4gIGtleVNoYXJlcz86IEFwaUtleVNoYXJlW107XG4gIHVzZXJHUEdQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGJhY2t1cEdQR1B1YmxpY0tleT86IHN0cmluZztcbiAgYWxnb1VzZWQ/OiBzdHJpbmc7XG4gIGlzRGlzdHJpYnV0ZWRDdXN0b2R5PzogYm9vbGVhbjtcbiAgLy8gaW5kaWNhdGVzIGlmIHRoZSBrZXkgaXMgTVBDdjIgb3Igbm90XG4gIGlzTVBDdjI/OiBib29sZWFuO1xuICBjb2luU3BlY2lmaWM/OiB7IFtjb2luTmFtZTogc3RyaW5nXTogdW5rbm93biB9O1xuICAvKiogV2ViQXV0aG4gZGV2aWNlcyB0aGF0IGhhdmUgYW4gYWRkaXRpb25hbCBlbmNyeXB0ZWQgY29weSBvZiB0aGUgcHJpdmF0ZSBrZXksIGtleWVkIGJ5IFBSRi1kZXJpdmVkIHBhc3NwaHJhc2VzLlxuICAgKiAgQGRlcHJlY2F0ZWQgVXNlIHtAbGluayB3ZWJhdXRobkluZm99IGluc3RlYWQg4oCUIHRoZSBiYWNrZW5kIHJlYWRzIGB3ZWJhdXRobkluZm9gIChzaW5nbGUgb2JqZWN0KSwgbm90IGB3ZWJhdXRobkRldmljZXNgLiAqL1xuICB3ZWJhdXRobkRldmljZXM/OiBXZWJhdXRobkluZm9bXTtcbiAgLyoqIFNpbmdsZSB3ZWJhdXRobiBkZXZpY2UgdG8gYXRvbWljYWxseSBhdHRhY2ggZHVyaW5nIGtleSBjcmVhdGlvbi5cbiAgICogIFNlbnQgYXMgYHdlYmF1dGhuSW5mb2AgaW4gdGhlIFBPU1QgL2tleSBib2R5IHNvIHRoZSBiYWNrZW5kIGNhbiBsaW5rXG4gICAqICB0aGUgcGFzc2tleSB0byB0aGUga2V5Y2hhaW4gaW4gdGhlIHNhbWUgcmVxdWVzdC4gKi9cbiAgd2ViYXV0aG5JbmZvPzogV2ViYXV0aG5JbmZvO1xuICAvKiogUHVibGljIGlkIG9mIHRoZSBzYWZlIHRoaXMga2V5IGlzIGEgcm9vdCBvZiAoV2FsbGV0IFNhZmVzIHYxKS4gV2hlbiBzZXQsIHRoZSBiYWNrZW5kIHRhZ3NcbiAgICogIHRoZSBrZXkgd2l0aCB0aGUgc2FmZSBhbmQgc3RhbXBzIGl0cyBjdXJ2ZSBzZXJ2ZXItc2lkZS4gQGV4cGVyaW1lbnRhbCAqL1xuICBzYWZlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpS2V5U2hhcmUge1xuICBmcm9tOiAndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbyc7XG4gIHRvOiAndXNlcicgfCAnYmFja3VwJyB8ICdiaXRnbyc7XG4gIHB1YmxpY1NoYXJlOiBzdHJpbmc7XG4gIHByaXZhdGVTaGFyZTogc3RyaW5nO1xuICBwcml2YXRlU2hhcmVQcm9vZj86IHN0cmluZztcbiAgcGFpbGxpZXJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIG4/OiBzdHJpbmc7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUJhY2t1cE9wdGlvbnMge1xuICBwcm92aWRlcj86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xuICBkaXNhYmxlS1JTRW1haWw/OiBib29sZWFuO1xuICBrcnNTcGVjaWZpYz86IGFueTtcbiAgdHlwZT86IHN0cmluZztcbiAga2V5VHlwZT86IEtleVR5cGU7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIGNvbW1vblB1Yj86IHN0cmluZztcbiAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gIHBydj86IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2Pzogc3RyaW5nO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICAvKiogUHVibGljIGlkIG9mIHRoZSBzYWZlIHRoaXMgYmFja3VwIGtleSBpcyBhIHJvb3Qgb2YgKFdhbGxldCBTYWZlcyB2MSkuIEBleHBlcmltZW50YWwgKi9cbiAgc2FmZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUJpdEdvT3B0aW9ucyB7XG4gIHNvdXJjZT86ICdiaXRnbyc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG4gIGtleVR5cGU/OiBLZXlUeXBlO1xuICBpc0Rpc3RyaWJ1dGVkQ3VzdG9keT86IGJvb2xlYW47XG4gIC8qKiBQdWJsaWMgaWQgb2YgdGhlIHNhZmUgdGhpcyBCaXRHbyBrZXkgaXMgYSByb290IG9mIChXYWxsZXQgU2FmZXMgdjEpLiBAZXhwZXJpbWVudGFsICovXG4gIHNhZmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRGVjcnlwdGVkUmV0cm9maXRQYXlsb2FkID0ge1xuICBkZWNyeXB0ZWRVc2VyS2V5OiBzdHJpbmc7XG4gIGRlY3J5cHRlZEJhY2t1cEtleTogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVNcGNPcHRpb25zIHtcbiAgbXVsdGlzaWdUeXBlOiAnb25jaGFpbicgfCAndHNzJztcbiAgcGFzc3BocmFzZT86IHN0cmluZztcbiAgb3JpZ2luYWxQYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICByZXRyb2ZpdD86IERlY3J5cHRlZFJldHJvZml0UGF5bG9hZDtcbiAgd2ViYXV0aG5JbmZvPzogV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbztcbiAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgLyoqIFB1YmxpYyBpZCBvZiB0aGUgc2FmZSB0aGVzZSBNUEMgcm9vdCBrZXlzIGJlbG9uZyB0byAoV2FsbGV0IFNhZmVzIHYxKS4gVGhyZWFkZWQgdGhyb3VnaCB0aGVcbiAgICogIGNlcmVtb255IHNvIHRoZSByZXN1bHRpbmcgdXNlci9iYWNrdXAvYml0Z28ga2V5cyBsYW5kIHRhZ2dlZC4gQGV4cGVyaW1lbnRhbCAqL1xuICBzYWZlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjcmVhdGVNcGNPcHRpb25zIGV4dGVuZHMgT21pdDxDcmVhdGVNcGNPcHRpb25zLCAncmV0cm9maXQnIHwgJ211bHRpc2lnVHlwZSc+IHtcbiAgY29pbjogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gIG90cDogc3RyaW5nO1xuICBlbnRlcnByaXNlOiBzdHJpbmc7XG4gIGVuY3J5cHRlZE1hdGVyaWFsOiB7XG4gICAgZW5jcnlwdGVkVXNlcktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZEJhY2t1cEtleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRLZXlzRm9yU2lnbmluZ09wdGlvbnMge1xuICByZXFJZD86IElSZXF1ZXN0VHJhY2VyO1xuICB3YWxsZXQ/OiBJV2FsbGV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFNpZ25pbmdLZXlBcGkge1xuICB1c2VySWQ6IHN0cmluZztcbiAgdXNlckVtYWlsOiBzdHJpbmc7XG4gIGRlcml2ZWRQdWJrZXk6IHN0cmluZztcbiAgLy8gVGhlc2UgYXJlIHByZXNlbnQgd2hlbiB1c2VyIGZldGNoZXMgdGhlaXIgb3duIGVjZGgga2V5Y2hhaW4gZm9yIHNpZ25pbmcuXG4gIGRlcml2YXRpb25QYXRoPzogc3RyaW5nO1xuICBlY2RoS2V5Y2hhaW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWNkaERlcml2ZWRLZXlwYWlyIHtcbiAgZGVyaXZlZFB1YktleTogc3RyaW5nOyAvLyBIZXggc3RyaW5nXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7IC8vIERlcml2YXRpb24gcGF0aCBvZiB0aGUga2V5cGFpclxuICB4cHJ2OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEtleUluZGljZXMge1xuICBVU0VSID0gMCxcbiAgQkFDS1VQID0gMSxcbiAgQklUR08gPSAyLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElLZXljaGFpbnMge1xuICBnZXQocGFyYW1zOiBHZXRLZXljaGFpbk9wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgbGlzdChwYXJhbXM/OiBMaXN0S2V5Y2hhaW5PcHRpb25zKTogUHJvbWlzZTxMaXN0S2V5Y2hhaW5zUmVzdWx0PjtcbiAgdXBkYXRlUGFzc3dvcmQocGFyYW1zOiBVcGRhdGVQYXNzd29yZE9wdGlvbnMgJiB7IHNhZmVJZDogc3RyaW5nIH0pOiBQcm9taXNlPEtleUJ1bGtVcGRhdGVSZXNwb25zZT47XG4gIHVwZGF0ZVBhc3N3b3JkKHBhcmFtczogVXBkYXRlUGFzc3dvcmRPcHRpb25zKTogUHJvbWlzZTxDaGFuZ2VkS2V5Y2hhaW5zPjtcbiAgdXBkYXRlU2luZ2xlS2V5Y2hhaW5QYXNzd29yZChwYXJhbXM/OiBVcGRhdGVTaW5nbGVLZXljaGFpblBhc3N3b3JkT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBnZXRFbmNyeXB0aW9uVmVyc2lvbihjaXBoZXJ0ZXh0OiBzdHJpbmcpOiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgcmVlbmNyeXB0QXNWMihlbmNyeXB0ZWRQcnY6IHN0cmluZywgcGFzc3BocmFzZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+O1xuICBjcmVhdGUocGFyYW1zPzogeyBzZWVkPzogQnVmZmVyOyBpc1Jvb3RLZXk/OiBib29sZWFuIH0pOiBLZXlQYWlyO1xuICBhZGQocGFyYW1zPzogQWRkS2V5Y2hhaW5PcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGNyZWF0ZUJpdEdvKHBhcmFtcz86IENyZWF0ZUJpdEdvT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCYWNrdXAocGFyYW1zPzogQ3JlYXRlQmFja3VwT3B0aW9ucyk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBnZXRLZXlzRm9yU2lnbmluZyhwYXJhbXM/OiBHZXRLZXlzRm9yU2lnbmluZ09wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluW10+O1xuICBjcmVhdGVNcGMocGFyYW1zOiBDcmVhdGVNcGNPcHRpb25zKTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PjtcbiAgcmVjcmVhdGVNcGMocGFyYW1zOiBSZWNyZWF0ZU1wY09wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xuICBjcmVhdGVUc3NCaXRHb0tleUZyb21PdmNTaGFyZXMob3ZjT3V0cHV0OiBPdmNUb0JpdEdvSlNPTiwgZW50ZXJwcmlzZT86IHN0cmluZyk6IFByb21pc2U8Qml0R29LZXlGcm9tT3ZjU2hhcmVzPjtcbiAgY3JlYXRlVXNlcktleWNoYWluKFxuICAgIHVzZXJQYXNzd29yZDogc3RyaW5nLFxuICAgIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb24sXG4gICAgc2Vzc2lvbj86IElFbmNyeXB0aW9uU2Vzc2lvblxuICApOiBQcm9taXNlPEtleWNoYWluPjtcbiAgcm90YXRlS2V5Y2hhaW4ocGFyYW1zOiBSb3RhdGVLZXljaGFpbk9wdGlvbnMpOiBQcm9taXNlPEtleWNoYWluPjtcbn1cbiJdfQ==
|
|
@@ -8,6 +8,24 @@
|
|
|
8
8
|
* The pure codecs + composite-pub encoding moved to @bitgo-beta/sdk-lib-safes. Only the WASM
|
|
9
9
|
* soft-derivation remains here (it needs Ed25519BIP32/Eddsa, which live in sdk-core).
|
|
10
10
|
*/
|
|
11
|
+
/** Ed25519 extended-key halves + public point, parameterised by encoding (Buffer raw, string hex). */
|
|
12
|
+
export type Ed25519ExtendedKeyParts<T> = {
|
|
13
|
+
readonly kL: T;
|
|
14
|
+
readonly kR: T;
|
|
15
|
+
readonly pub: T;
|
|
16
|
+
};
|
|
17
|
+
/** Soft-derive an unhardened path and return the derived raw 32-byte public key. */
|
|
18
|
+
export declare function softDeriveChildPubEd25519AtPath(compositePub: string, path: string): Promise<Buffer>;
|
|
11
19
|
/** Soft-derive `m/<index>` and return the derived raw 32-byte public key. */
|
|
12
20
|
export declare function softDeriveChildPubEd25519(compositePub: string, index: number): Promise<Buffer>;
|
|
21
|
+
/**
|
|
22
|
+
* Soft-derive an ed25519 co-signer child at an unhardened path, returning the private
|
|
23
|
+
* extended-key material — the clamped scalar `kL`, the nonce prefix `kR`, and the matching
|
|
24
|
+
* public point — from a root secret seed plus the root chain code carried on the keycard.
|
|
25
|
+
*/
|
|
26
|
+
export declare function softDeriveChildPrvEd25519AtPath(params: {
|
|
27
|
+
seedStrKey: string;
|
|
28
|
+
chainCode: string;
|
|
29
|
+
path: string;
|
|
30
|
+
}): Promise<Ed25519ExtendedKeyParts<Buffer>>;
|
|
13
31
|
//# sourceMappingURL=derivableEd25519Pub.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivableEd25519Pub.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/derivableEd25519Pub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"derivableEd25519Pub.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/derivableEd25519Pub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH,sGAAsG;AACtG,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACvC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;CACjB,CAAC;AAaF,oFAAoF;AACpF,wBAAsB,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKzG;AAED,6EAA6E;AAC7E,wBAAsB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAKpG;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CAAC,MAAM,EAAE;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAsB3C"}
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
* soft-derivation remains here (it needs Ed25519BIP32/Eddsa, which live in sdk-core).
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.softDeriveChildPubEd25519AtPath = softDeriveChildPubEd25519AtPath;
|
|
13
14
|
exports.softDeriveChildPubEd25519 = softDeriveChildPubEd25519;
|
|
15
|
+
exports.softDeriveChildPrvEd25519AtPath = softDeriveChildPrvEd25519AtPath;
|
|
16
|
+
const crypto_1 = require("crypto");
|
|
14
17
|
const account_lib_1 = require("../../account-lib");
|
|
15
18
|
const sdk_lib_safes_1 = require("@bitgo-beta/sdk-lib-safes");
|
|
16
19
|
let eddsaPromise;
|
|
@@ -23,13 +26,46 @@ function getEddsa() {
|
|
|
23
26
|
}
|
|
24
27
|
return eddsaPromise;
|
|
25
28
|
}
|
|
29
|
+
/** Soft-derive an unhardened path and return the derived raw 32-byte public key. */
|
|
30
|
+
async function softDeriveChildPubEd25519AtPath(compositePub, path) {
|
|
31
|
+
(0, sdk_lib_safes_1.assertBip32Path)(path, { hardened: false });
|
|
32
|
+
const { pub, chainCode } = (0, sdk_lib_safes_1.decodeDerivableEd25519Pub)(compositePub);
|
|
33
|
+
const eddsa = await getEddsa();
|
|
34
|
+
return Buffer.from(eddsa.deriveUnhardened(Buffer.concat([pub, chainCode]).toString('hex'), path).slice(0, 64), 'hex');
|
|
35
|
+
}
|
|
26
36
|
/** Soft-derive `m/<index>` and return the derived raw 32-byte public key. */
|
|
27
37
|
async function softDeriveChildPubEd25519(compositePub, index) {
|
|
28
38
|
if (!Number.isInteger(index) || index < 0 || index > 0x7fffffff) {
|
|
29
39
|
throw new Error(`ed25519 safe co-signer derivation index must be non-hardened, got ${index}`);
|
|
30
40
|
}
|
|
31
|
-
|
|
41
|
+
return softDeriveChildPubEd25519AtPath(compositePub, `m/${index}`);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Soft-derive an ed25519 co-signer child at an unhardened path, returning the private
|
|
45
|
+
* extended-key material — the clamped scalar `kL`, the nonce prefix `kR`, and the matching
|
|
46
|
+
* public point — from a root secret seed plus the root chain code carried on the keycard.
|
|
47
|
+
*/
|
|
48
|
+
async function softDeriveChildPrvEd25519AtPath(params) {
|
|
49
|
+
const { seedStrKey, chainCode, path } = params;
|
|
50
|
+
(0, sdk_lib_safes_1.assertBip32Path)(path, { hardened: false });
|
|
51
|
+
const seed = (0, sdk_lib_safes_1.decodeEd25519StrKeySecretSeed)(seedStrKey);
|
|
52
|
+
const chainCodeBuf = (0, sdk_lib_safes_1.decodeEd25519ChainCode)(chainCode);
|
|
32
53
|
const eddsa = await getEddsa();
|
|
33
|
-
|
|
54
|
+
const h = (0, crypto_1.createHash)('sha512').update(seed).digest();
|
|
55
|
+
const sk = (0, account_lib_1.clamp)((0, account_lib_1.bigIntFromBufferLE)(h.subarray(0, 32)));
|
|
56
|
+
const prefix = (0, account_lib_1.bigIntFromBufferBE)(h.subarray(32));
|
|
57
|
+
const pk = account_lib_1.Eddsa.curve.basePointMult(sk);
|
|
58
|
+
if (!eddsa.hdTree) {
|
|
59
|
+
throw new Error('Eddsa HD tree is not initialized');
|
|
60
|
+
}
|
|
61
|
+
const derived = eddsa.hdTree.privateDerive({ pk, sk, prefix, chaincode: (0, account_lib_1.bigIntFromBufferBE)(chainCodeBuf) }, path);
|
|
62
|
+
if (derived.prefix === undefined) {
|
|
63
|
+
throw new Error('soft derivation did not produce a nonce prefix');
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
kL: (0, account_lib_1.bigIntToBufferLE)(derived.sk, 32),
|
|
67
|
+
kR: (0, account_lib_1.bigIntToBufferBE)(derived.prefix, 32),
|
|
68
|
+
pub: (0, account_lib_1.bigIntToBufferLE)(derived.pk, 32),
|
|
69
|
+
};
|
|
34
70
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhYmxlRWQyNTUxOVB1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9zYWZlL2Rlcml2YWJsZUVkMjU1MTlQdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7QUFzQ0gsMEVBS0M7QUFHRCw4REFLQztBQU9ELDBFQTBCQztBQWxGRCxtQ0FBb0M7QUFDcEMsbURBUTJCO0FBQzNCLDZEQUttQztBQVNuQyxJQUFJLFlBQXdDLENBQUM7QUFDN0MsU0FBUyxRQUFRO0lBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLFlBQVksR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsbUJBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSwwQkFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pGLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ3RCLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELG9GQUFvRjtBQUM3RSxLQUFLLFVBQVUsK0JBQStCLENBQUMsWUFBb0IsRUFBRSxJQUFZO0lBQ3RGLElBQUEsK0JBQWUsRUFBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEseUNBQXlCLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkUsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4SCxDQUFDO0FBRUQsNkVBQTZFO0FBQ3RFLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxZQUFvQixFQUFFLEtBQWE7SUFDakYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ0QsT0FBTywrQkFBK0IsQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLCtCQUErQixDQUFDLE1BSXJEO0lBQ0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQy9DLElBQUEsK0JBQWUsRUFBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzQyxNQUFNLElBQUksR0FBRyxJQUFBLDZDQUE2QixFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLElBQUEsc0NBQXNCLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztJQUMvQixNQUFNLENBQUMsR0FBRyxJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JELE1BQU0sRUFBRSxHQUFHLElBQUEsbUJBQUssRUFBQyxJQUFBLGdDQUFrQixFQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFBLGdDQUFrQixFQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRCxNQUFNLEVBQUUsR0FBRyxtQkFBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUEsZ0NBQWtCLEVBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsSCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxPQUFPO1FBQ0wsRUFBRSxFQUFFLElBQUEsOEJBQWdCLEVBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDcEMsRUFBRSxFQUFFLElBQUEsOEJBQWdCLEVBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDeEMsR0FBRyxFQUFFLElBQUEsOEJBQWdCLEVBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7S0FDdEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVkMjU1MTkgc2FmZS1yb290IHB1YmxpYyBkZXJpdmF0aW9uIG1hdGVyaWFsIGFuZCBTdGVsbGFyIHVzZXIta2V5IGNvZGVjcy5cbiAqXG4gKiBTYWZlIGJhY2t1cCBhbmQgQml0R28gcm9vdHMgc3RvcmUgcmF3IHB1YmxpYyBrZXkgKDMyIGJ5dGVzKSB8fCByYXcgY2hhaW4gY29kZSAoMzIgYnl0ZXMpLFxuICogZW5jb2RlZCB0b2dldGhlciBhcyBjYW5vbmljYWwgdW5wYWRkZWQgUkZDIDQ2NDggYmFzZTMyLiBDb2luLXNwZWNpZmljIHB1YmxpYy1rZXkgZW5jb2RpbmdzIGFyZVxuICogYXBwbGllZCBvbmx5IHRvIGRlcml2ZWQgd2FsbGV0IGNoaWxkcmVuLlxuICpcbiAqIFRoZSBwdXJlIGNvZGVjcyArIGNvbXBvc2l0ZS1wdWIgZW5jb2RpbmcgbW92ZWQgdG8gQGJpdGdvLWJldGEvc2RrLWxpYi1zYWZlcy4gT25seSB0aGUgV0FTTVxuICogc29mdC1kZXJpdmF0aW9uIHJlbWFpbnMgaGVyZSAoaXQgbmVlZHMgRWQyNTUxOUJJUDMyL0VkZHNhLCB3aGljaCBsaXZlIGluIHNkay1jb3JlKS5cbiAqL1xuXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7XG4gIEVkMjU1MTlCSVAzMixcbiAgRWRkc2EsXG4gIGJpZ0ludEZyb21CdWZmZXJCRSxcbiAgYmlnSW50RnJvbUJ1ZmZlckxFLFxuICBiaWdJbnRUb0J1ZmZlckJFLFxuICBiaWdJbnRUb0J1ZmZlckxFLFxuICBjbGFtcCxcbn0gZnJvbSAnLi4vLi4vYWNjb3VudC1saWInO1xuaW1wb3J0IHtcbiAgYXNzZXJ0QmlwMzJQYXRoLFxuICBkZWNvZGVEZXJpdmFibGVFZDI1NTE5UHViLFxuICBkZWNvZGVFZDI1NTE5Q2hhaW5Db2RlLFxuICBkZWNvZGVFZDI1NTE5U3RyS2V5U2VjcmV0U2VlZCxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1zYWZlcyc7XG5cbi8qKiBFZDI1NTE5IGV4dGVuZGVkLWtleSBoYWx2ZXMgKyBwdWJsaWMgcG9pbnQsIHBhcmFtZXRlcmlzZWQgYnkgZW5jb2RpbmcgKEJ1ZmZlciByYXcsIHN0cmluZyBoZXgpLiAqL1xuZXhwb3J0IHR5cGUgRWQyNTUxOUV4dGVuZGVkS2V5UGFydHM8VD4gPSB7XG4gIHJlYWRvbmx5IGtMOiBUOyAvLyBjbGFtcGVkIHNpZ25pbmcgc2NhbGFyXG4gIHJlYWRvbmx5IGtSOiBUOyAvLyBub25jZSBwcmVmaXhcbiAgcmVhZG9ubHkgcHViOiBUOyAvLyAzMi1ieXRlIHB1YmxpYyBrZXlcbn07XG5cbmxldCBlZGRzYVByb21pc2U6IFByb21pc2U8RWRkc2E+IHwgdW5kZWZpbmVkO1xuZnVuY3Rpb24gZ2V0RWRkc2EoKTogUHJvbWlzZTxFZGRzYT4ge1xuICBpZiAoIWVkZHNhUHJvbWlzZSkge1xuICAgIGVkZHNhUHJvbWlzZSA9IChhc3luYyAoKSA9PiBFZGRzYS5pbml0aWFsaXplKGF3YWl0IEVkMjU1MTlCSVAzMi5pbml0aWFsaXplKCkpKSgpO1xuICAgIGVkZHNhUHJvbWlzZS5jYXRjaCgoKSA9PiB7XG4gICAgICBlZGRzYVByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGVkZHNhUHJvbWlzZTtcbn1cblxuLyoqIFNvZnQtZGVyaXZlIGFuIHVuaGFyZGVuZWQgcGF0aCBhbmQgcmV0dXJuIHRoZSBkZXJpdmVkIHJhdyAzMi1ieXRlIHB1YmxpYyBrZXkuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc29mdERlcml2ZUNoaWxkUHViRWQyNTUxOUF0UGF0aChjb21wb3NpdGVQdWI6IHN0cmluZywgcGF0aDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgYXNzZXJ0QmlwMzJQYXRoKHBhdGgsIHsgaGFyZGVuZWQ6IGZhbHNlIH0pO1xuICBjb25zdCB7IHB1YiwgY2hhaW5Db2RlIH0gPSBkZWNvZGVEZXJpdmFibGVFZDI1NTE5UHViKGNvbXBvc2l0ZVB1Yik7XG4gIGNvbnN0IGVkZHNhID0gYXdhaXQgZ2V0RWRkc2EoKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGVkZHNhLmRlcml2ZVVuaGFyZGVuZWQoQnVmZmVyLmNvbmNhdChbcHViLCBjaGFpbkNvZGVdKS50b1N0cmluZygnaGV4JyksIHBhdGgpLnNsaWNlKDAsIDY0KSwgJ2hleCcpO1xufVxuXG4vKiogU29mdC1kZXJpdmUgYG0vPGluZGV4PmAgYW5kIHJldHVybiB0aGUgZGVyaXZlZCByYXcgMzItYnl0ZSBwdWJsaWMga2V5LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNvZnREZXJpdmVDaGlsZFB1YkVkMjU1MTkoY29tcG9zaXRlUHViOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICBpZiAoIU51bWJlci5pc0ludGVnZXIoaW5kZXgpIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+IDB4N2ZmZmZmZmYpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGVkMjU1MTkgc2FmZSBjby1zaWduZXIgZGVyaXZhdGlvbiBpbmRleCBtdXN0IGJlIG5vbi1oYXJkZW5lZCwgZ290ICR7aW5kZXh9YCk7XG4gIH1cbiAgcmV0dXJuIHNvZnREZXJpdmVDaGlsZFB1YkVkMjU1MTlBdFBhdGgoY29tcG9zaXRlUHViLCBgbS8ke2luZGV4fWApO1xufVxuXG4vKipcbiAqIFNvZnQtZGVyaXZlIGFuIGVkMjU1MTkgY28tc2lnbmVyIGNoaWxkIGF0IGFuIHVuaGFyZGVuZWQgcGF0aCwgcmV0dXJuaW5nIHRoZSBwcml2YXRlXG4gKiBleHRlbmRlZC1rZXkgbWF0ZXJpYWwg4oCUIHRoZSBjbGFtcGVkIHNjYWxhciBga0xgLCB0aGUgbm9uY2UgcHJlZml4IGBrUmAsIGFuZCB0aGUgbWF0Y2hpbmdcbiAqIHB1YmxpYyBwb2ludCDigJQgZnJvbSBhIHJvb3Qgc2VjcmV0IHNlZWQgcGx1cyB0aGUgcm9vdCBjaGFpbiBjb2RlIGNhcnJpZWQgb24gdGhlIGtleWNhcmQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzb2Z0RGVyaXZlQ2hpbGRQcnZFZDI1NTE5QXRQYXRoKHBhcmFtczoge1xuICBzZWVkU3RyS2V5OiBzdHJpbmc7XG4gIGNoYWluQ29kZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG59KTogUHJvbWlzZTxFZDI1NTE5RXh0ZW5kZWRLZXlQYXJ0czxCdWZmZXI+PiB7XG4gIGNvbnN0IHsgc2VlZFN0cktleSwgY2hhaW5Db2RlLCBwYXRoIH0gPSBwYXJhbXM7XG4gIGFzc2VydEJpcDMyUGF0aChwYXRoLCB7IGhhcmRlbmVkOiBmYWxzZSB9KTtcbiAgY29uc3Qgc2VlZCA9IGRlY29kZUVkMjU1MTlTdHJLZXlTZWNyZXRTZWVkKHNlZWRTdHJLZXkpO1xuICBjb25zdCBjaGFpbkNvZGVCdWYgPSBkZWNvZGVFZDI1NTE5Q2hhaW5Db2RlKGNoYWluQ29kZSk7XG4gIGNvbnN0IGVkZHNhID0gYXdhaXQgZ2V0RWRkc2EoKTtcbiAgY29uc3QgaCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShzZWVkKS5kaWdlc3QoKTtcbiAgY29uc3Qgc2sgPSBjbGFtcChiaWdJbnRGcm9tQnVmZmVyTEUoaC5zdWJhcnJheSgwLCAzMikpKTtcbiAgY29uc3QgcHJlZml4ID0gYmlnSW50RnJvbUJ1ZmZlckJFKGguc3ViYXJyYXkoMzIpKTtcbiAgY29uc3QgcGsgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHNrKTtcbiAgaWYgKCFlZGRzYS5oZFRyZWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VkZHNhIEhEIHRyZWUgaXMgbm90IGluaXRpYWxpemVkJyk7XG4gIH1cbiAgY29uc3QgZGVyaXZlZCA9IGVkZHNhLmhkVHJlZS5wcml2YXRlRGVyaXZlKHsgcGssIHNrLCBwcmVmaXgsIGNoYWluY29kZTogYmlnSW50RnJvbUJ1ZmZlckJFKGNoYWluQ29kZUJ1ZikgfSwgcGF0aCk7XG4gIGlmIChkZXJpdmVkLnByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzb2Z0IGRlcml2YXRpb24gZGlkIG5vdCBwcm9kdWNlIGEgbm9uY2UgcHJlZml4Jyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBrTDogYmlnSW50VG9CdWZmZXJMRShkZXJpdmVkLnNrLCAzMiksXG4gICAga1I6IGJpZ0ludFRvQnVmZmVyQkUoZGVyaXZlZC5wcmVmaXgsIDMyKSxcbiAgICBwdWI6IGJpZ0ludFRvQnVmZmVyTEUoZGVyaXZlZC5waywgMzIpLFxuICB9O1xufVxuIl19
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Buffer } from 'buffer';
|
|
7
7
|
import type { RootKeyType } from '@bitgo/public-types';
|
|
8
|
+
import { type Ed25519ExtendedKeyParts } from './derivableEd25519Pub';
|
|
8
9
|
import { BitGoBase } from '../bitgoBase';
|
|
9
10
|
export type DecryptedMpcSafeRoot = {
|
|
10
11
|
signing: Buffer;
|
|
@@ -47,6 +48,30 @@ export type EcdsaMpcChildKeys = {
|
|
|
47
48
|
backup: string;
|
|
48
49
|
};
|
|
49
50
|
export type EddsaMpcChildKeys = EcdsaMpcChildKeys;
|
|
51
|
+
/**
|
|
52
|
+
* A hardened (SLIP-0010) ed25519 child. The `kind` discriminator prevents a raw seed from being
|
|
53
|
+
* mistaken for an extended key downstream — both are 32-byte values that `isValidPub` would accept.
|
|
54
|
+
*/
|
|
55
|
+
export type SafeEd25519SeedKey = {
|
|
56
|
+
readonly kind: 'seed';
|
|
57
|
+
readonly seed: string;
|
|
58
|
+
readonly pub: string;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* A soft (BIP32-Ed25519) ed25519 child. No 32-byte seed maps back to a soft-derived child, so the
|
|
62
|
+
* signer needs both halves directly: `kL` (the clamped scalar) and `kR` (the nonce prefix).
|
|
63
|
+
*/
|
|
64
|
+
export type SafeEd25519ExtendedKey = {
|
|
65
|
+
readonly kind: 'extended';
|
|
66
|
+
} & Ed25519ExtendedKeyParts<string>;
|
|
67
|
+
/** The three ed25519 co-signer children. BitGo is pub-only: its private key stays in the HSM. */
|
|
68
|
+
export type Ed25519MultisigChildKeys = {
|
|
69
|
+
user: SafeEd25519SeedKey;
|
|
70
|
+
backup: SafeEd25519ExtendedKey;
|
|
71
|
+
bitgo: {
|
|
72
|
+
readonly pub: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
50
75
|
export type DerivedSafeWalletKeys = {
|
|
51
76
|
slot: 'secp256k1Multisig';
|
|
52
77
|
path: string;
|
|
@@ -59,6 +84,10 @@ export type DerivedSafeWalletKeys = {
|
|
|
59
84
|
slot: 'eddsaMpc';
|
|
60
85
|
path: string;
|
|
61
86
|
keys: EddsaMpcChildKeys;
|
|
87
|
+
} | {
|
|
88
|
+
slot: 'ed25519Multisig';
|
|
89
|
+
path: string;
|
|
90
|
+
keys: Ed25519MultisigChildKeys;
|
|
62
91
|
};
|
|
63
92
|
export type SafeRecoverKeyParams = {
|
|
64
93
|
userKey: string;
|
|
@@ -81,8 +110,7 @@ export declare function decryptSafeKeycard(params: {
|
|
|
81
110
|
}): Promise<DecryptedSafeRoots>;
|
|
82
111
|
/**
|
|
83
112
|
* Derives a Safe wallet's child keys at the BIP44 path for a given slot and account.
|
|
84
|
-
* Supports `secp256k1Multisig`, `ecdsaMpc`, and `eddsaMpc
|
|
85
|
-
* unsupported until its derivation arm lands (WCN-2894).
|
|
113
|
+
* Supports all four slots: `secp256k1Multisig`, `ed25519Multisig`, `ecdsaMpc`, and `eddsaMpc`.
|
|
86
114
|
*/
|
|
87
115
|
export declare function deriveSafeWalletKeys(params: {
|
|
88
116
|
coin: string;
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ const crypto_1 = require("crypto");
|
|
|
7
7
|
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
8
8
|
const statics_1 = require("@bitgo-beta/statics");
|
|
9
9
|
const sdk_lib_safes_1 = require("@bitgo-beta/sdk-lib-safes");
|
|
10
|
+
const derivableEd25519Pub_1 = require("./derivableEd25519Pub");
|
|
10
11
|
const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
|
|
11
12
|
const errors_1 = require("../errors");
|
|
12
13
|
const keyShareEnvelope_1 = require("../utils/tss/keyShareEnvelope");
|
|
@@ -69,47 +70,19 @@ async function decryptSafeKeycard(params) {
|
|
|
69
70
|
},
|
|
70
71
|
};
|
|
71
72
|
}
|
|
72
|
-
function buildSafeUserPath(coinType, slotOrdinal, account) {
|
|
73
|
-
return `m/44'/${coinType}'/${slotOrdinal}'/${account}'`;
|
|
74
|
-
}
|
|
75
|
-
function buildSafeCosignerPath(coinType, slotOrdinal, account) {
|
|
76
|
-
return `m/44/${coinType}/${slotOrdinal}/${account}`;
|
|
77
|
-
}
|
|
78
73
|
/**
|
|
79
74
|
* Derives a Safe wallet's child keys at the BIP44 path for a given slot and account.
|
|
80
|
-
* Supports `secp256k1Multisig`, `ecdsaMpc`, and `eddsaMpc
|
|
81
|
-
* unsupported until its derivation arm lands (WCN-2894).
|
|
75
|
+
* Supports all four slots: `secp256k1Multisig`, `ed25519Multisig`, `ecdsaMpc`, and `eddsaMpc`.
|
|
82
76
|
*/
|
|
83
77
|
async function deriveSafeWalletKeys(params) {
|
|
84
78
|
if (!Number.isInteger(params.account) || params.account < 0 || params.account > statics_1.MAX_BIP32_INDEX) {
|
|
85
79
|
throw new Error(`deriveSafeWalletKeys: invalid account '${params.account}'`);
|
|
86
80
|
}
|
|
87
|
-
const coinType = statics_1.coins.get(params.coin).bip44CoinType;
|
|
88
|
-
if (coinType === undefined) {
|
|
89
|
-
throw new Error(`Coin '${params.coin}' has no BIP44 coin type and cannot derive a safe child`);
|
|
90
|
-
}
|
|
91
|
-
const slotOrdinal = statics_1.SAFE_ROOT_SLOT_ORDINALS[params.slot];
|
|
92
81
|
const { account, roots } = params;
|
|
82
|
+
const path = (0, sdk_lib_safes_1.buildSafeBip44Path)((0, sdk_lib_safes_1.getSafeBip44CoinType)(params.coin), params.slot, account);
|
|
83
|
+
const { coinType, slotOrdinal } = (0, sdk_lib_safes_1.parseSafeBip44Path)(path);
|
|
93
84
|
if (params.slot === 'secp256k1Multisig') {
|
|
94
|
-
|
|
95
|
-
const user = utxo_lib_1.bip32.fromBase58(root.user).derivePath(buildSafeUserPath(coinType, slotOrdinal, account));
|
|
96
|
-
const backup = utxo_lib_1.bip32.fromBase58(root.backup).derivePath(buildSafeCosignerPath(coinType, slotOrdinal, account));
|
|
97
|
-
const bitgo = utxo_lib_1.bip32.fromBase58(root.bitgo).derivePath(buildSafeCosignerPath(coinType, slotOrdinal, account));
|
|
98
|
-
if (!user.privateKey || !backup.privateKey) {
|
|
99
|
-
throw new Error('deriveSafeWalletKeys: user and backup roots must be private (xprv)');
|
|
100
|
-
}
|
|
101
|
-
if (bitgo.privateKey) {
|
|
102
|
-
throw new Error('deriveSafeWalletKeys: bitgo root must be public (xpub)');
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
slot: 'secp256k1Multisig',
|
|
106
|
-
path: buildSafeUserPath(coinType, slotOrdinal, account),
|
|
107
|
-
keys: {
|
|
108
|
-
user: { prv: user.toBase58(), pub: user.neutered().toBase58() },
|
|
109
|
-
backup: { prv: backup.toBase58(), pub: backup.neutered().toBase58() },
|
|
110
|
-
bitgo: { pub: bitgo.neutered().toBase58() },
|
|
111
|
-
},
|
|
112
|
-
};
|
|
85
|
+
return { slot: 'secp256k1Multisig', path, keys: (0, sdk_lib_safes_1.deriveSafeChildTriplet)(roots.secp256k1Multisig, path) };
|
|
113
86
|
}
|
|
114
87
|
if (params.slot === 'ecdsaMpc') {
|
|
115
88
|
const { commonKeychain, userChild, backupChild } = await sdk_lib_mpc_1.DklsVrfUtils.deriveSafeEcdsaMpcChild({
|
|
@@ -121,7 +94,7 @@ async function deriveSafeWalletKeys(params) {
|
|
|
121
94
|
});
|
|
122
95
|
return {
|
|
123
96
|
slot: 'ecdsaMpc',
|
|
124
|
-
path
|
|
97
|
+
path,
|
|
125
98
|
keys: { commonKeychain, user: userChild, backup: backupChild },
|
|
126
99
|
};
|
|
127
100
|
}
|
|
@@ -135,10 +108,35 @@ async function deriveSafeWalletKeys(params) {
|
|
|
135
108
|
});
|
|
136
109
|
return {
|
|
137
110
|
slot: 'eddsaMpc',
|
|
138
|
-
path
|
|
111
|
+
path,
|
|
139
112
|
keys: { commonKeychain, user: userChild, backup: backupChild },
|
|
140
113
|
};
|
|
141
114
|
}
|
|
115
|
+
if (params.slot === 'ed25519Multisig') {
|
|
116
|
+
const root = roots.ed25519Multisig;
|
|
117
|
+
const cosignerPath = (0, sdk_lib_safes_1.toSoftTwinPath)(path);
|
|
118
|
+
const user = (0, sdk_lib_safes_1.deriveSafeChildEd25519Hardened)(root.user, path);
|
|
119
|
+
const backup = await (0, derivableEd25519Pub_1.softDeriveChildPrvEd25519AtPath)({
|
|
120
|
+
seedStrKey: root.backup.prv,
|
|
121
|
+
chainCode: root.backup.chainCode,
|
|
122
|
+
path: cosignerPath,
|
|
123
|
+
});
|
|
124
|
+
const bitgo = await (0, derivableEd25519Pub_1.softDeriveChildPubEd25519AtPath)(root.bitgo, cosignerPath);
|
|
125
|
+
return {
|
|
126
|
+
slot: 'ed25519Multisig',
|
|
127
|
+
path,
|
|
128
|
+
keys: {
|
|
129
|
+
user: { kind: 'seed', seed: user.prv, pub: (0, sdk_lib_safes_1.decodeEd25519StrKeyPublicKey)(user.pub).toString('hex') },
|
|
130
|
+
backup: {
|
|
131
|
+
kind: 'extended',
|
|
132
|
+
kL: backup.kL.toString('hex'),
|
|
133
|
+
kR: backup.kR.toString('hex'),
|
|
134
|
+
pub: backup.pub.toString('hex'),
|
|
135
|
+
},
|
|
136
|
+
bitgo: { pub: bitgo.toString('hex') },
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
142
140
|
throw new Error(`deriveSafeWalletKeys: slot '${params.slot}' is not supported yet`);
|
|
143
141
|
}
|
|
144
142
|
/**
|
|
@@ -175,4 +173,4 @@ async function buildSafeRecoverKeyParams(params) {
|
|
|
175
173
|
walletPassphrase,
|
|
176
174
|
};
|
|
177
175
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3ZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc2FmZS9yZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJEQSxnREFvRUM7QUFlRCxvREF3RUM7QUFPRCw4REFzQ0M7QUE3UEQsbUNBQXFDO0FBQ3JDLG1EQUE2QztBQUM3QyxpREFBc0Y7QUFFdEYsNkRBQXVIO0FBQ3ZILHlEQUFvRTtBQUVwRSxzQ0FBbUQ7QUFDbkQsb0VBQXlFO0FBNkNsRSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsTUFNeEM7SUFDQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUUxRSxNQUFNLFNBQVMsR0FBRyxJQUFBLG1DQUFtQixFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUEsbUNBQW1CLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBQSxtQ0FBbUIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUVwRCxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFtQixFQUFFO1FBQzFELElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLCtCQUFzQixDQUFDLCtEQUErRCxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLFNBQWlCLEVBQXdCLEVBQUU7UUFDaEUsSUFBSSxDQUFDO1lBQ0gsT0FBTyxJQUFBLDJDQUF3QixFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7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QUUsQ0FBQztLQUM1RixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsT0FBTztRQUNQLFNBQVM7UUFDVCxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO1FBQ3hCLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKlxuICogQGV4cGVyaW1lbnRhbCBXUlctZmFjaW5nIHNhZmUgcmVjb3ZlcnkgZW50cnkgcG9pbnRzLlxuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdidWZmZXInO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBjb2lucywgTUFYX0JJUDMyX0lOREVYLCBTQUZFX1JPT1RfU0xPVF9PUkRJTkFMUyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHR5cGUgeyBSb290S2V5VHlwZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHsgRWQyNTUxOUNoYWluQ29kZUVudHJ5Q29kZWMsIHBhcnNlU2FmZUtleWNhcmRCb3gsIHR5cGUgU2FmZUtleWNhcmRSb290RW50cnkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLXNhZmVzJztcbmltcG9ydCB7IERrbHNWcmZVdGlscywgTXBzVnJmVXRpbHMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgSW5jb3JyZWN0UGFzc3dvcmRFcnJvciB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBwYXJzZVNhZmVNcGNLZXlFbnZlbG9wZXMgfSBmcm9tICcuLi91dGlscy90c3Mva2V5U2hhcmVFbnZlbG9wZSc7XG5cbmV4cG9ydCB0eXBlIERlY3J5cHRlZE1wY1NhZmVSb290ID0geyBzaWduaW5nOiBCdWZmZXI7IHZyZjogQnVmZmVyIH07XG5cbmV4cG9ydCB0eXBlIE9uY2hhaW5TYWZlUm9vdCA9IHsgdXNlcjogc3RyaW5nOyBiYWNrdXA6IHN0cmluZzsgYml0Z286IHN0cmluZyB9O1xuZXhwb3J0IHR5cGUgTXBjU2FmZVJvb3QgPSB7IHVzZXI6IERlY3J5cHRlZE1wY1NhZmVSb290OyBiYWNrdXA6IERlY3J5cHRlZE1wY1NhZmVSb290OyBiaXRnbzogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBFZDI1NTE5TXVsdGlzaWdTYWZlUm9vdCA9IHtcbiAgdXNlcjogc3RyaW5nO1xuICBiYWNrdXA6IHsgcHJ2OiBzdHJpbmc7IGNoYWluQ29kZTogc3RyaW5nIH07XG4gIGJpdGdvOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTZWNwMjU2azFNdWx0aXNpZ0NoaWxkS2V5cyA9IHtcbiAgdXNlcjogeyBwcnY6IHN0cmluZzsgcHViOiBzdHJpbmcgfTtcbiAgYmFja3VwOiB7IHBydjogc3RyaW5nOyBwdWI6IHN0cmluZyB9O1xuICBiaXRnbzogeyBwdWI6IHN0cmluZyB9O1xufTtcblxuZXhwb3J0IHR5cGUgRWNkc2FNcGNDaGlsZEtleXMgPSB7XG4gIGNvbW1vbktleWNoYWluOiBzdHJpbmc7XG4gIHVzZXI6IHN0cmluZztcbiAgYmFja3VwOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBFZGRzYU1wY0NoaWxkS2V5cyA9IEVjZHNhTXBjQ2hpbGRLZXlzO1xuXG5leHBvcnQgdHlwZSBEZXJpdmVkU2FmZVdhbGxldEtleXMgPVxuICB8IHsgc2xvdDogJ3NlY3AyNTZrMU11bHRpc2lnJzsgcGF0aDogc3RyaW5nOyBrZXlzOiBTZWNwMjU2azFNdWx0aXNpZ0NoaWxkS2V5cyB9XG4gIHwgeyBzbG90OiAnZWNkc2FNcGMnOyBwYXRoOiBzdHJpbmc7IGtleXM6IEVjZHNhTXBjQ2hpbGRLZXlzIH1cbiAgfCB7IHNsb3Q6ICdlZGRzYU1wYyc7IHBhdGg6IHN0cmluZzsga2V5czogRWRkc2FNcGNDaGlsZEtleXMgfTtcblxuZXhwb3J0IHR5cGUgU2FmZVJlY292ZXJLZXlQYXJhbXMgPSB7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIGJpdGdvS2V5OiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZWNyeXB0ZWRTYWZlUm9vdHMgPSB7XG4gIHNlY3AyNTZrMU11bHRpc2lnOiBPbmNoYWluU2FmZVJvb3Q7XG4gIGVkMjU1MTlNdWx0aXNpZzogRWQyNTUxOU11bHRpc2lnU2FmZVJvb3Q7XG4gIGVjZHNhTXBjOiBNcGNTYWZlUm9vdDtcbiAgZWRkc2FNcGM6IE1wY1NhZmVSb290O1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHRTYWZlS2V5Y2FyZChwYXJhbXM6IHtcbiAgYml0Z286IEJpdEdvQmFzZTtcbiAgdXNlcktleUJveDogc3RyaW5nO1xuICBiYWNrdXBLZXlCb3g6IHN0cmluZztcbiAgYml0Z29LZXlCb3g6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbn0pOiBQcm9taXNlPERlY3J5cHRlZFNhZmVSb290cz4ge1xuICBjb25zdCB7IGJpdGdvLCB1c2VyS2V5Qm94LCBiYWNrdXBLZXlCb3gsIGJpdGdvS2V5Qm94LCBwYXNzd29yZCB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHVzZXJSb290cyA9IHBhcnNlU2FmZUtleWNhcmRCb3godXNlcktleUJveCk7XG4gIGNvbnN0IGJhY2t1cFJvb3RzID0gcGFyc2VTYWZlS2V5Y2FyZEJveChiYWNrdXBLZXlCb3gpO1xuICBjb25zdCBiaXRnb1Jvb3RzID0gcGFyc2VTYWZlS2V5Y2FyZEJveChiaXRnb0tleUJveCk7XG5cbiAgY29uc3QgZGVjcnlwdFJvb3QgPSBhc3luYyAocm9vdDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJpdGdvLmRlY3J5cHQoeyBpbnB1dDogcm9vdCwgcGFzc3dvcmQgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEluY29ycmVjdFBhc3N3b3JkRXJyb3IoJ3VuYWJsZSB0byBkZWNyeXB0IHRoZSBzYWZlIGtleWNhcmQgd2l0aCB0aGUgcHJvdmlkZWQgcGFzc3dvcmQnLCBlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdW53cmFwTXBjUm9vdCA9IChkZWNyeXB0ZWQ6IHN0cmluZyk6IERlY3J5cHRlZE1wY1NhZmVSb290ID0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHBhcnNlU2FmZU1wY0tleUVudmVsb3BlcyhkZWNyeXB0ZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbmNvcnJlY3RQYXNzd29yZEVycm9yKCd1bmFibGUgdG8gZGVjcnlwdCB0aGUgc2FmZSBrZXljYXJkIHdpdGggdGhlIHByb3ZpZGVkIHBhc3N3b3JkJywgZSk7XG4gICAgfVxuICB9O1xuXG4gIC8vIE9ubHkgYm94IEIncyBlZDI1NTE5TXVsdGlzaWcgc2xvdCBtYXkgY2FycnkgdGhlIGRlcml2YWJsZSBgeyBwcnYsIGNoYWluQ29kZSB9YCBvYmplY3Q7IGV2ZXJ5XG4gIC8vIG90aGVyIGVudHJ5IOKAlCBhbGwgb2YgYm94ZXMgQSBhbmQgQywgYW5kIGV2ZXJ5IG5vbi1lZDI1NTE5IHNsb3QgaW4gYm94IEIg4oCUIGlzIGEgYmFyZSBzdHJpbmcgYW5kXG4gIC8vIGZhaWxzIGNsb3NlZCBpZiBpdCBjYXJyaWVzIHRoZSBvYmplY3QgaW5zdGVhZC5cbiAgY29uc3QgcmVxdWlyZUJhcmVTdHJpbmcgPSAoZW50cnk6IFNhZmVLZXljYXJkUm9vdEVudHJ5KTogc3RyaW5nID0+IHtcbiAgICBpZiAoRWQyNTUxOUNoYWluQ29kZUVudHJ5Q29kZWMuaXMoZW50cnkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuZXhwZWN0ZWQgZWQyNTUxOSBjaGFpbi1jb2RlIGVudHJ5IHdoZXJlIGEgYmFyZSBzdHJpbmcgd2FzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBlbnRyeTtcbiAgfTtcblxuICBjb25zdCBkZWNyeXB0RWQyNTUxOUJhY2t1cCA9IGFzeW5jIChlbnRyeTogU2FmZUtleWNhcmRSb290RW50cnkpOiBQcm9taXNlPHsgcHJ2OiBzdHJpbmc7IGNoYWluQ29kZTogc3RyaW5nIH0+ID0+IHtcbiAgICBpZiAoIUVkMjU1MTlDaGFpbkNvZGVFbnRyeUNvZGVjLmlzKGVudHJ5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdlZDI1NTE5IGJhY2t1cCByb290IG11c3QgY2FycnkgYSBjaGFpbiBjb2RlJyk7XG4gICAgfVxuICAgIHJldHVybiB7IHBydjogYXdhaXQgZGVjcnlwdFJvb3QoZW50cnkucHJ2KSwgY2hhaW5Db2RlOiBlbnRyeS5jaGFpbkNvZGUgfTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHNlY3AyNTZrMU11bHRpc2lnOiB7XG4gICAgICB1c2VyOiBhd2FpdCBkZWNyeXB0Um9vdChyZXF1aXJlQmFyZVN0cmluZyh1c2VyUm9vdHMuc2VjcDI1NmsxTXVsdGlzaWcpKSxcbiAgICAgIGJhY2t1cDogYXdhaXQgZGVjcnlwdFJvb3QocmVxdWlyZUJhcmVTdHJpbmcoYmFja3VwUm9vdHMuc2VjcDI1NmsxTXVsdGlzaWcpKSxcbiAgICAgIGJpdGdvOiByZXF1aXJlQmFyZVN0cmluZyhiaXRnb1Jvb3RzLnNlY3AyNTZrMU11bHRpc2lnKSxcbiAgICB9LFxuICAgIGVkMjU1MTlNdWx0aXNpZzoge1xuICAgICAgdXNlcjogYXdhaXQgZGVjcnlwdFJvb3QocmVxdWlyZUJhcmVTdHJpbmcodXNlclJvb3RzLmVkMjU1MTlNdWx0aXNpZykpLFxuICAgICAgYmFja3VwOiBhd2FpdCBkZWNyeXB0RWQyNTUxOUJhY2t1cChiYWNrdXBSb290cy5lZDI1NTE5TXVsdGlzaWcpLFxuICAgICAgYml0Z286IHJlcXVpcmVCYXJlU3RyaW5nKGJpdGdvUm9vdHMuZWQyNTUxOU11bHRpc2lnKSxcbiAgICB9LFxuICAgIGVjZHNhTXBjOiB7XG4gICAgICB1c2VyOiB1bndyYXBNcGNSb290KGF3YWl0IGRlY3J5cHRSb290KHJlcXVpcmVCYXJlU3RyaW5nKHVzZXJSb290cy5lY2RzYU1wYykpKSxcbiAgICAgIGJhY2t1cDogdW53cmFwTXBjUm9vdChhd2FpdCBkZWNyeXB0Um9vdChyZXF1aXJlQmFyZVN0cmluZyhiYWNrdXBSb290cy5lY2RzYU1wYykpKSxcbiAgICAgIGJpdGdvOiByZXF1aXJlQmFyZVN0cmluZyhiaXRnb1Jvb3RzLmVjZHNhTXBjKSxcbiAgICB9LFxuICAgIGVkZHNhTXBjOiB7XG4gICAgICB1c2VyOiB1bndyYXBNcGNSb290KGF3YWl0IGRlY3J5cHRSb290KHJlcXVpcmVCYXJlU3RyaW5nKHVzZXJSb290cy5lZGRzYU1wYykpKSxcbiAgICAgIGJhY2t1cDogdW53cmFwTXBjUm9vdChhd2FpdCBkZWNyeXB0Um9vdChyZXF1aXJlQmFyZVN0cmluZyhiYWNrdXBSb290cy5lZGRzYU1wYykpKSxcbiAgICAgIGJpdGdvOiByZXF1aXJlQmFyZVN0cmluZyhiaXRnb1Jvb3RzLmVkZHNhTXBjKSxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFNhZmVVc2VyUGF0aChjb2luVHlwZTogbnVtYmVyLCBzbG90T3JkaW5hbDogbnVtYmVyLCBhY2NvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gYG0vNDQnLyR7Y29pblR5cGV9Jy8ke3Nsb3RPcmRpbmFsfScvJHthY2NvdW50fSdgO1xufVxuXG5mdW5jdGlvbiBidWlsZFNhZmVDb3NpZ25lclBhdGgoY29pblR5cGU6IG51bWJlciwgc2xvdE9yZGluYWw6IG51bWJlciwgYWNjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBtLzQ0LyR7Y29pblR5cGV9LyR7c2xvdE9yZGluYWx9LyR7YWNjb3VudH1gO1xufVxuXG4vKipcbiAqIERlcml2ZXMgYSBTYWZlIHdhbGxldCdzIGNoaWxkIGtleXMgYXQgdGhlIEJJUDQ0IHBhdGggZm9yIGEgZ2l2ZW4gc2xvdCBhbmQgYWNjb3VudC5cbiAqIFN1cHBvcnRzIGBzZWNwMjU2azFNdWx0aXNpZ2AsIGBlY2RzYU1wY2AsIGFuZCBgZWRkc2FNcGNgOyBgZWQyNTUxOU11bHRpc2lnYCByZW1haW5zXG4gKiB1bnN1cHBvcnRlZCB1bnRpbCBpdHMgZGVyaXZhdGlvbiBhcm0gbGFuZHMgKFdDTi0yODk0KS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlcml2ZVNhZmVXYWxsZXRLZXlzKHBhcmFtczoge1xuICBjb2luOiBzdHJpbmc7XG4gIHNsb3Q6IFJvb3RLZXlUeXBlO1xuICBhY2NvdW50OiBudW1iZXI7XG4gIHJvb3RzOiBEZWNyeXB0ZWRTYWZlUm9vdHM7XG59KTogUHJvbWlzZTxEZXJpdmVkU2FmZVdhbGxldEtleXM+IHtcbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHBhcmFtcy5hY2NvdW50KSB8fCBwYXJhbXMuYWNjb3VudCA8IDAgfHwgcGFyYW1zLmFjY291bnQgPiBNQVhfQklQMzJfSU5ERVgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGRlcml2ZVNhZmVXYWxsZXRLZXlzOiBpbnZhbGlkIGFjY291bnQgJyR7cGFyYW1zLmFjY291bnR9J2ApO1xuICB9XG5cbiAgY29uc3QgY29pblR5cGUgPSBjb2lucy5nZXQocGFyYW1zLmNvaW4pLmJpcDQ0Q29pblR5cGU7XG4gIGlmIChjb2luVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb2luICcke3BhcmFtcy5jb2lufScgaGFzIG5vIEJJUDQ0IGNvaW4gdHlwZSBhbmQgY2Fubm90IGRlcml2ZSBhIHNhZmUgY2hpbGRgKTtcbiAgfVxuICBjb25zdCBzbG90T3JkaW5hbCA9IFNBRkVfUk9PVF9TTE9UX09SRElOQUxTW3BhcmFtcy5zbG90XTtcbiAgY29uc3QgeyBhY2NvdW50LCByb290cyB9ID0gcGFyYW1zO1xuXG4gIGlmIChwYXJhbXMuc2xvdCA9PT0gJ3NlY3AyNTZrMU11bHRpc2lnJykge1xuICAgIGNvbnN0IHJvb3QgPSByb290cy5zZWNwMjU2azFNdWx0aXNpZztcbiAgICBjb25zdCB1c2VyID0gYmlwMzIuZnJvbUJhc2U1OChyb290LnVzZXIpLmRlcml2ZVBhdGgoYnVpbGRTYWZlVXNlclBhdGgoY29pblR5cGUsIHNsb3RPcmRpbmFsLCBhY2NvdW50KSk7XG4gICAgY29uc3QgYmFja3VwID0gYmlwMzIuZnJvbUJhc2U1OChyb290LmJhY2t1cCkuZGVyaXZlUGF0aChidWlsZFNhZmVDb3NpZ25lclBhdGgoY29pblR5cGUsIHNsb3RPcmRpbmFsLCBhY2NvdW50KSk7XG4gICAgY29uc3QgYml0Z28gPSBiaXAzMi5mcm9tQmFzZTU4KHJvb3QuYml0Z28pLmRlcml2ZVBhdGgoYnVpbGRTYWZlQ29zaWduZXJQYXRoKGNvaW5UeXBlLCBzbG90T3JkaW5hbCwgYWNjb3VudCkpO1xuXG4gICAgaWYgKCF1c2VyLnByaXZhdGVLZXkgfHwgIWJhY2t1cC5wcml2YXRlS2V5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Rlcml2ZVNhZmVXYWxsZXRLZXlzOiB1c2VyIGFuZCBiYWNrdXAgcm9vdHMgbXVzdCBiZSBwcml2YXRlICh4cHJ2KScpO1xuICAgIH1cbiAgICBpZiAoYml0Z28ucHJpdmF0ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdkZXJpdmVTYWZlV2FsbGV0S2V5czogYml0Z28gcm9vdCBtdXN0IGJlIHB1YmxpYyAoeHB1YiknKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2xvdDogJ3NlY3AyNTZrMU11bHRpc2lnJyxcbiAgICAgIHBhdGg6IGJ1aWxkU2FmZVVzZXJQYXRoKGNvaW5UeXBlLCBzbG90T3JkaW5hbCwgYWNjb3VudCksXG4gICAgICBrZXlzOiB7XG4gICAgICAgIHVzZXI6IHsgcHJ2OiB1c2VyLnRvQmFzZTU4KCksIHB1YjogdXNlci5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkgfSxcbiAgICAgICAgYmFja3VwOiB7IHBydjogYmFja3VwLnRvQmFzZTU4KCksIHB1YjogYmFja3VwLm5ldXRlcmVkKCkudG9CYXNlNTgoKSB9LFxuICAgICAgICBiaXRnbzogeyBwdWI6IGJpdGdvLm5ldXRlcmVkKCkudG9CYXNlNTgoKSB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHBhcmFtcy5zbG90ID09PSAnZWNkc2FNcGMnKSB7XG4gICAgY29uc3QgeyBjb21tb25LZXljaGFpbiwgdXNlckNoaWxkLCBiYWNrdXBDaGlsZCB9ID0gYXdhaXQgRGtsc1ZyZlV0aWxzLmRlcml2ZVNhZmVFY2RzYU1wY0NoaWxkKHtcbiAgICAgIHVzZXJSb290OiByb290cy5lY2RzYU1wYy51c2VyLFxuICAgICAgYmFja3VwUm9vdDogcm9vdHMuZWNkc2FNcGMuYmFja3VwLFxuICAgICAgYWNjb3VudCxcbiAgICAgIGNvaW5UeXBlLFxuICAgICAgc2FmZVNsb3RPcmRpbmFsOiBzbG90T3JkaW5hbCxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgc2xvdDogJ2VjZHNhTXBjJyxcbiAgICAgIHBhdGg6IGJ1aWxkU2FmZVVzZXJQYXRoKGNvaW5UeXBlLCBzbG90T3JkaW5hbCwgYWNjb3VudCksXG4gICAgICBrZXlzOiB7IGNvbW1vbktleWNoYWluLCB1c2VyOiB1c2VyQ2hpbGQsIGJhY2t1cDogYmFja3VwQ2hpbGQgfSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHBhcmFtcy5zbG90ID09PSAnZWRkc2FNcGMnKSB7XG4gICAgY29uc3QgeyBjb21tb25LZXljaGFpbiwgdXNlckNoaWxkLCBiYWNrdXBDaGlsZCB9ID0gYXdhaXQgTXBzVnJmVXRpbHMuZGVyaXZlU2FmZUVkZHNhTXBjQ2hpbGQoe1xuICAgICAgdXNlclJvb3Q6IHJvb3RzLmVkZHNhTXBjLnVzZXIsXG4gICAgICBiYWNrdXBSb290OiByb290cy5lZGRzYU1wYy5iYWNrdXAsXG4gICAgICBhY2NvdW50LFxuICAgICAgY29pblR5cGUsXG4gICAgICBzYWZlU2xvdE9yZGluYWw6IHNsb3RPcmRpbmFsLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBzbG90OiAnZWRkc2FNcGMnLFxuICAgICAgcGF0aDogYnVpbGRTYWZlVXNlclBhdGgoY29pblR5cGUsIHNsb3RPcmRpbmFsLCBhY2NvdW50KSxcbiAgICAgIGtleXM6IHsgY29tbW9uS2V5Y2hhaW4sIHVzZXI6IHVzZXJDaGlsZCwgYmFja3VwOiBiYWNrdXBDaGlsZCB9LFxuICAgIH07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGRlcml2ZVNhZmVXYWxsZXRLZXlzOiBzbG90ICcke3BhcmFtcy5zbG90fScgaXMgbm90IHN1cHBvcnRlZCB5ZXRgKTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGtleSBmaWVsZHMgYGNvaW4ucmVjb3ZlcigpYCBleHBlY3RzIGZyb20gZGVyaXZlZCBTYWZlIGNoaWxkIGtleXMuXG4gKiBPbmx5IGBzZWNwMjU2azFNdWx0aXNpZ2AgKHNsb3QgMSkgaXMgc3VwcG9ydGVkIGZvciBub3cuIFNpZ25lZCBtb2RlIHJlLWVuY3J5cHRzIHRoZVxuICogY2hpbGQgeHBydnMgdW5kZXIgYSBmcmVzaCBlcGhlbWVyYWwgcGFzc3BocmFzZSAodjEvU0pDTCk7IHVuc2lnbmVkIG1vZGUgcmV0dXJucyBwdWJzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRTYWZlUmVjb3ZlcktleVBhcmFtcyhwYXJhbXM6IHtcbiAgYml0Z286IEJpdEdvQmFzZTtcbiAgY29pbjogc3RyaW5nO1xuICBzbG90OiBSb290S2V5VHlwZTtcbiAga2V5czogU2VjcDI1NmsxTXVsdGlzaWdDaGlsZEtleXM7XG4gIG1vZGU6ICdzaWduZWQnIHwgJ3Vuc2lnbmVkJztcbn0pOiBQcm9taXNlPFNhZmVSZWNvdmVyS2V5UGFyYW1zPiB7XG4gIGlmIChwYXJhbXMuc2xvdCAhPT0gJ3NlY3AyNTZrMU11bHRpc2lnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgYnVpbGRTYWZlUmVjb3ZlcktleVBhcmFtczogc2xvdCAnJHtwYXJhbXMuc2xvdH0nIGlzIG5vdCBzdXBwb3J0ZWQgeWV0YCk7XG4gIH1cbiAgY29uc3QgeyBiaXRnbywga2V5cywgbW9kZSB9ID0gcGFyYW1zO1xuXG4gIGlmIChtb2RlID09PSAndW5zaWduZWQnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJLZXk6IGtleXMudXNlci5wdWIsXG4gICAgICBiYWNrdXBLZXk6IGtleXMuYmFja3VwLnB1YixcbiAgICAgIGJpdGdvS2V5OiBrZXlzLmJpdGdvLnB1YixcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdXNlclBydiA9IGJpcDMyLmZyb21CYXNlNTgoa2V5cy51c2VyLnBydik7XG4gIGNvbnN0IGJhY2t1cFBydiA9IGJpcDMyLmZyb21CYXNlNTgoa2V5cy5iYWNrdXAucHJ2KTtcbiAgaWYgKCF1c2VyUHJ2LnByaXZhdGVLZXkgfHwgIWJhY2t1cFBydi5wcml2YXRlS2V5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdidWlsZFNhZmVSZWNvdmVyS2V5UGFyYW1zOiBrZXlzLnVzZXIucHJ2IGFuZCBrZXlzLmJhY2t1cC5wcnYgbXVzdCBiZSBwcml2YXRlIHhwcnZzJyk7XG4gIH1cblxuICBjb25zdCB3YWxsZXRQYXNzcGhyYXNlID0gcmFuZG9tQnl0ZXMoMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgY29uc3QgW3VzZXJLZXksIGJhY2t1cEtleV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgYml0Z28uZW5jcnlwdCh7IGlucHV0OiBrZXlzLnVzZXIucHJ2LCBwYXNzd29yZDogd2FsbGV0UGFzc3BocmFzZSwgZW5jcnlwdGlvblZlcnNpb246IDEgfSksXG4gICAgYml0Z28uZW5jcnlwdCh7IGlucHV0OiBrZXlzLmJhY2t1cC5wcnYsIHBhc3N3b3JkOiB3YWxsZXRQYXNzcGhyYXNlLCBlbmNyeXB0aW9uVmVyc2lvbjogMSB9KSxcbiAgXSk7XG5cbiAgcmV0dXJuIHtcbiAgICB1c2VyS2V5LFxuICAgIGJhY2t1cEtleSxcbiAgICBiaXRnb0tleToga2V5cy5iaXRnby5wdWIsXG4gICAgd2FsbGV0UGFzc3BocmFzZSxcbiAgfTtcbn1cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3ZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vc2FmZS9yZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1HQSxnREFvRUM7QUFNRCxvREE2RUM7QUFPRCw4REFzQ0M7QUFqU0QsbUNBQXFDO0FBQ3JDLG1EQUE2QztBQUM3QyxpREFBc0Q7QUFFdEQsNkRBV21DO0FBQ25DLCtEQUkrQjtBQUMvQix5REFBb0U7QUFFcEUsc0NBQW1EO0FBQ25ELG9FQUF5RTtBQXFFbEUsS0FBSyxVQUFVLGtCQUFrQixDQUFDLE1BTXhDO0lBQ0MsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUUsTUFBTSxTQUFTLEdBQUcsSUFBQSxtQ0FBbUIsRUFBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxNQUFNLFdBQVcsR0FBRyxJQUFBLG1DQUFtQixFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUEsbUNBQW1CLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFFcEQsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBbUIsRUFBRTtRQUMxRCxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSwrQkFBc0IsQ0FBQywrREFBK0QsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFpQixFQUF3QixFQUFFO1FBQ2hFLElBQUksQ0FBQztZQUNILE9BQU8sSUFBQSwyQ0FBd0IsRUFBQyxTQUFTLENBQUMsQ0FB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Q0FBQztJQUNoRCxNQUFNLFNBQVMsR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLG9CQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzdDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3pGLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDO0tBQzVGLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxPQUFPO1FBQ1AsU0FBUztRQUNULFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7UUFDeEIsZ0JBQWdCO0tBQ2pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqXG4gKiBAZXhwZXJpbWVudGFsIFdSVy1mYWNpbmcgc2FmZSByZWNvdmVyeSBlbnRyeSBwb2ludHMuXG4gKi9cbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBiaXAzMiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IE1BWF9CSVAzMl9JTkRFWCB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHR5cGUgeyBSb290S2V5VHlwZSB9IGZyb20gJ0BiaXRnby9wdWJsaWMtdHlwZXMnO1xuaW1wb3J0IHtcbiAgYnVpbGRTYWZlQmlwNDRQYXRoLFxuICBkZWNvZGVFZDI1NTE5U3RyS2V5UHVibGljS2V5LFxuICBkZXJpdmVTYWZlQ2hpbGRFZDI1NTE5SGFyZGVuZWQsXG4gIGRlcml2ZVNhZmVDaGlsZFRyaXBsZXQsXG4gIEVkMjU1MTlDaGFpbkNvZGVFbnRyeUNvZGVjLFxuICBnZXRTYWZlQmlwNDRDb2luVHlwZSxcbiAgcGFyc2VTYWZlQmlwNDRQYXRoLFxuICBwYXJzZVNhZmVLZXljYXJkQm94LFxuICB0b1NvZnRUd2luUGF0aCxcbiAgdHlwZSBTYWZlS2V5Y2FyZFJvb3RFbnRyeSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1zYWZlcyc7XG5pbXBvcnQge1xuICBzb2Z0RGVyaXZlQ2hpbGRQdWJFZDI1NTE5QXRQYXRoLFxuICBzb2Z0RGVyaXZlQ2hpbGRQcnZFZDI1NTE5QXRQYXRoLFxuICB0eXBlIEVkMjU1MTlFeHRlbmRlZEtleVBhcnRzLFxufSBmcm9tICcuL2Rlcml2YWJsZUVkMjU1MTlQdWInO1xuaW1wb3J0IHsgRGtsc1ZyZlV0aWxzLCBNcHNWcmZVdGlscyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJbmNvcnJlY3RQYXNzd29yZEVycm9yIH0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7IHBhcnNlU2FmZU1wY0tleUVudmVsb3BlcyB9IGZyb20gJy4uL3V0aWxzL3Rzcy9rZXlTaGFyZUVudmVsb3BlJztcblxuZXhwb3J0IHR5cGUgRGVjcnlwdGVkTXBjU2FmZVJvb3QgPSB7IHNpZ25pbmc6IEJ1ZmZlcjsgdnJmOiBCdWZmZXIgfTtcblxuZXhwb3J0IHR5cGUgT25jaGFpblNhZmVSb290ID0geyB1c2VyOiBzdHJpbmc7IGJhY2t1cDogc3RyaW5nOyBiaXRnbzogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBNcGNTYWZlUm9vdCA9IHsgdXNlcjogRGVjcnlwdGVkTXBjU2FmZVJvb3Q7IGJhY2t1cDogRGVjcnlwdGVkTXBjU2FmZVJvb3Q7IGJpdGdvOiBzdHJpbmcgfTtcbmV4cG9ydCB0eXBlIEVkMjU1MTlNdWx0aXNpZ1NhZmVSb290ID0ge1xuICB1c2VyOiBzdHJpbmc7XG4gIGJhY2t1cDogeyBwcnY6IHN0cmluZzsgY2hhaW5Db2RlOiBzdHJpbmcgfTtcbiAgYml0Z286IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFNlY3AyNTZrMU11bHRpc2lnQ2hpbGRLZXlzID0ge1xuICB1c2VyOiB7IHBydjogc3RyaW5nOyBwdWI6IHN0cmluZyB9O1xuICBiYWNrdXA6IHsgcHJ2OiBzdHJpbmc7IHB1Yjogc3RyaW5nIH07XG4gIGJpdGdvOiB7IHB1Yjogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBFY2RzYU1wY0NoaWxkS2V5cyA9IHtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgdXNlcjogc3RyaW5nO1xuICBiYWNrdXA6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEVkZHNhTXBjQ2hpbGRLZXlzID0gRWNkc2FNcGNDaGlsZEtleXM7XG5cbi8qKlxuICogQSBoYXJkZW5lZCAoU0xJUC0wMDEwKSBlZDI1NTE5IGNoaWxkLiBUaGUgYGtpbmRgIGRpc2NyaW1pbmF0b3IgcHJldmVudHMgYSByYXcgc2VlZCBmcm9tIGJlaW5nXG4gKiBtaXN0YWtlbiBmb3IgYW4gZXh0ZW5kZWQga2V5IGRvd25zdHJlYW0g4oCUIGJvdGggYXJlIDMyLWJ5dGUgdmFsdWVzIHRoYXQgYGlzVmFsaWRQdWJgIHdvdWxkIGFjY2VwdC5cbiAqL1xuZXhwb3J0IHR5cGUgU2FmZUVkMjU1MTlTZWVkS2V5ID0ge1xuICByZWFkb25seSBraW5kOiAnc2VlZCc7XG4gIHJlYWRvbmx5IHNlZWQ6IHN0cmluZzsgLy8gMzItYnl0ZSBjaGlsZCBzZWVkIChoZXgpIOKAlCB0aGUgc2lnbmVyIGlucHV0XG4gIHJlYWRvbmx5IHB1Yjogc3RyaW5nOyAvLyAzMi1ieXRlIHB1YmxpYyBrZXkgKGhleClcbn07XG5cbi8qKlxuICogQSBzb2Z0IChCSVAzMi1FZDI1NTE5KSBlZDI1NTE5IGNoaWxkLiBObyAzMi1ieXRlIHNlZWQgbWFwcyBiYWNrIHRvIGEgc29mdC1kZXJpdmVkIGNoaWxkLCBzbyB0aGVcbiAqIHNpZ25lciBuZWVkcyBib3RoIGhhbHZlcyBkaXJlY3RseTogYGtMYCAodGhlIGNsYW1wZWQgc2NhbGFyKSBhbmQgYGtSYCAodGhlIG5vbmNlIHByZWZpeCkuXG4gKi9cbmV4cG9ydCB0eXBlIFNhZmVFZDI1NTE5RXh0ZW5kZWRLZXkgPSB7IHJlYWRvbmx5IGtpbmQ6ICdleHRlbmRlZCcgfSAmIEVkMjU1MTlFeHRlbmRlZEtleVBhcnRzPHN0cmluZz47IC8vIGhleFxuXG4vKiogVGhlIHRocmVlIGVkMjU1MTkgY28tc2lnbmVyIGNoaWxkcmVuLiBCaXRHbyBpcyBwdWItb25seTogaXRzIHByaXZhdGUga2V5IHN0YXlzIGluIHRoZSBIU00uICovXG5leHBvcnQgdHlwZSBFZDI1NTE5TXVsdGlzaWdDaGlsZEtleXMgPSB7XG4gIHVzZXI6IFNhZmVFZDI1NTE5U2VlZEtleTtcbiAgYmFja3VwOiBTYWZlRWQyNTUxOUV4dGVuZGVkS2V5O1xuICBiaXRnbzogeyByZWFkb25seSBwdWI6IHN0cmluZyB9O1xufTtcblxuZXhwb3J0IHR5cGUgRGVyaXZlZFNhZmVXYWxsZXRLZXlzID1cbiAgfCB7IHNsb3Q6ICdzZWNwMjU2azFNdWx0aXNpZyc7IHBhdGg6IHN0cmluZzsga2V5czogU2VjcDI1NmsxTXVsdGlzaWdDaGlsZEtleXMgfVxuICB8IHsgc2xvdDogJ2VjZHNhTXBjJzsgcGF0aDogc3RyaW5nOyBrZXlzOiBFY2RzYU1wY0NoaWxkS2V5cyB9XG4gIHwgeyBzbG90OiAnZWRkc2FNcGMnOyBwYXRoOiBzdHJpbmc7IGtleXM6IEVkZHNhTXBjQ2hpbGRLZXlzIH1cbiAgfCB7IHNsb3Q6ICdlZDI1NTE5TXVsdGlzaWcnOyBwYXRoOiBzdHJpbmc7IGtleXM6IEVkMjU1MTlNdWx0aXNpZ0NoaWxkS2V5cyB9O1xuXG5leHBvcnQgdHlwZSBTYWZlUmVjb3ZlcktleVBhcmFtcyA9IHtcbiAgdXNlcktleTogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYml0Z29LZXk6IHN0cmluZztcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERlY3J5cHRlZFNhZmVSb290cyA9IHtcbiAgc2VjcDI1NmsxTXVsdGlzaWc6IE9uY2hhaW5TYWZlUm9vdDtcbiAgZWQyNTUxOU11bHRpc2lnOiBFZDI1NTE5TXVsdGlzaWdTYWZlUm9vdDtcbiAgZWNkc2FNcGM6IE1wY1NhZmVSb290O1xuICBlZGRzYU1wYzogTXBjU2FmZVJvb3Q7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdFNhZmVLZXljYXJkKHBhcmFtczoge1xuICBiaXRnbzogQml0R29CYXNlO1xuICB1c2VyS2V5Qm94OiBzdHJpbmc7XG4gIGJhY2t1cEtleUJveDogc3RyaW5nO1xuICBiaXRnb0tleUJveDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufSk6IFByb21pc2U8RGVjcnlwdGVkU2FmZVJvb3RzPiB7XG4gIGNvbnN0IHsgYml0Z28sIHVzZXJLZXlCb3gsIGJhY2t1cEtleUJveCwgYml0Z29LZXlCb3gsIHBhc3N3b3JkIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgdXNlclJvb3RzID0gcGFyc2VTYWZlS2V5Y2FyZEJveCh1c2VyS2V5Qm94KTtcbiAgY29uc3QgYmFja3VwUm9vdHMgPSBwYXJzZVNhZmVLZXljYXJkQm94KGJhY2t1cEtleUJveCk7XG4gIGNvbnN0IGJpdGdvUm9vdHMgPSBwYXJzZVNhZmVLZXljYXJkQm94KGJpdGdvS2V5Qm94KTtcblxuICBjb25zdCBkZWNyeXB0Um9vdCA9IGFzeW5jIChyb290OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYml0Z28uZGVjcnlwdCh7IGlucHV0OiByb290LCBwYXNzd29yZCB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW5jb3JyZWN0UGFzc3dvcmRFcnJvcigndW5hYmxlIHRvIGRlY3J5cHQgdGhlIHNhZmUga2V5Y2FyZCB3aXRoIHRoZSBwcm92aWRlZCBwYXNzd29yZCcsIGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1bndyYXBNcGNSb290ID0gKGRlY3J5cHRlZDogc3RyaW5nKTogRGVjcnlwdGVkTXBjU2FmZVJvb3QgPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcGFyc2VTYWZlTXBjS2V5RW52ZWxvcGVzKGRlY3J5cHRlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEluY29ycmVjdFBhc3N3b3JkRXJyb3IoJ3VuYWJsZSB0byBkZWNyeXB0IHRoZSBzYWZlIGtleWNhcmQgd2l0aCB0aGUgcHJvdmlkZWQgcGFzc3dvcmQnLCBlKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gT25seSBib3ggQidzIGVkMjU1MTlNdWx0aXNpZyBzbG90IG1heSBjYXJyeSB0aGUgZGVyaXZhYmxlIGB7IHBydiwgY2hhaW5Db2RlIH1gIG9iamVjdDsgZXZlcnlcbiAgLy8gb3RoZXIgZW50cnkg4oCUIGFsbCBvZiBib3hlcyBBIGFuZCBDLCBhbmQgZXZlcnkgbm9uLWVkMjU1MTkgc2xvdCBpbiBib3ggQiDigJQgaXMgYSBiYXJlIHN0cmluZyBhbmRcbiAgLy8gZmFpbHMgY2xvc2VkIGlmIGl0IGNhcnJpZXMgdGhlIG9iamVjdCBpbnN0ZWFkLlxuICBjb25zdCByZXF1aXJlQmFyZVN0cmluZyA9IChlbnRyeTogU2FmZUtleWNhcmRSb290RW50cnkpOiBzdHJpbmcgPT4ge1xuICAgIGlmIChFZDI1NTE5Q2hhaW5Db2RlRW50cnlDb2RlYy5pcyhlbnRyeSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlZDI1NTE5IGNoYWluLWNvZGUgZW50cnkgd2hlcmUgYSBiYXJlIHN0cmluZyB3YXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudHJ5O1xuICB9O1xuXG4gIGNvbnN0IGRlY3J5cHRFZDI1NTE5QmFja3VwID0gYXN5bmMgKGVudHJ5OiBTYWZlS2V5Y2FyZFJvb3RFbnRyeSk6IFByb21pc2U8eyBwcnY6IHN0cmluZzsgY2hhaW5Db2RlOiBzdHJpbmcgfT4gPT4ge1xuICAgIGlmICghRWQyNTUxOUNoYWluQ29kZUVudHJ5Q29kZWMuaXMoZW50cnkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2VkMjU1MTkgYmFja3VwIHJvb3QgbXVzdCBjYXJyeSBhIGNoYWluIGNvZGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgcHJ2OiBhd2FpdCBkZWNyeXB0Um9vdChlbnRyeS5wcnYpLCBjaGFpbkNvZGU6IGVudHJ5LmNoYWluQ29kZSB9O1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgc2VjcDI1NmsxTXVsdGlzaWc6IHtcbiAgICAgIHVzZXI6IGF3YWl0IGRlY3J5cHRSb290KHJlcXVpcmVCYXJlU3RyaW5nKHVzZXJSb290cy5zZWNwMjU2azFNdWx0aXNpZykpLFxuICAgICAgYmFja3VwOiBhd2FpdCBkZWNyeXB0Um9vdChyZXF1aXJlQmFyZVN0cmluZyhiYWNrdXBSb290cy5zZWNwMjU2azFNdWx0aXNpZykpLFxuICAgICAgYml0Z286IHJlcXVpcmVCYXJlU3RyaW5nKGJpdGdvUm9vdHMuc2VjcDI1NmsxTXVsdGlzaWcpLFxuICAgIH0sXG4gICAgZWQyNTUxOU11bHRpc2lnOiB7XG4gICAgICB1c2VyOiBhd2FpdCBkZWNyeXB0Um9vdChyZXF1aXJlQmFyZVN0cmluZyh1c2VyUm9vdHMuZWQyNTUxOU11bHRpc2lnKSksXG4gICAgICBiYWNrdXA6IGF3YWl0IGRlY3J5cHRFZDI1NTE5QmFja3VwKGJhY2t1cFJvb3RzLmVkMjU1MTlNdWx0aXNpZyksXG4gICAgICBiaXRnbzogcmVxdWlyZUJhcmVTdHJpbmcoYml0Z29Sb290cy5lZDI1NTE5TXVsdGlzaWcpLFxuICAgIH0sXG4gICAgZWNkc2FNcGM6IHtcbiAgICAgIHVzZXI6IHVud3JhcE1wY1Jvb3QoYXdhaXQgZGVjcnlwdFJvb3QocmVxdWlyZUJhcmVTdHJpbmcodXNlclJvb3RzLmVjZHNhTXBjKSkpLFxuICAgICAgYmFja3VwOiB1bndyYXBNcGNSb290KGF3YWl0IGRlY3J5cHRSb290KHJlcXVpcmVCYXJlU3RyaW5nKGJhY2t1cFJvb3RzLmVjZHNhTXBjKSkpLFxuICAgICAgYml0Z286IHJlcXVpcmVCYXJlU3RyaW5nKGJpdGdvUm9vdHMuZWNkc2FNcGMpLFxuICAgIH0sXG4gICAgZWRkc2FNcGM6IHtcbiAgICAgIHVzZXI6IHVud3JhcE1wY1Jvb3QoYXdhaXQgZGVjcnlwdFJvb3QocmVxdWlyZUJhcmVTdHJpbmcodXNlclJvb3RzLmVkZHNhTXBjKSkpLFxuICAgICAgYmFja3VwOiB1bndyYXBNcGNSb290KGF3YWl0IGRlY3J5cHRSb290KHJlcXVpcmVCYXJlU3RyaW5nKGJhY2t1cFJvb3RzLmVkZHNhTXBjKSkpLFxuICAgICAgYml0Z286IHJlcXVpcmVCYXJlU3RyaW5nKGJpdGdvUm9vdHMuZWRkc2FNcGMpLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogRGVyaXZlcyBhIFNhZmUgd2FsbGV0J3MgY2hpbGQga2V5cyBhdCB0aGUgQklQNDQgcGF0aCBmb3IgYSBnaXZlbiBzbG90IGFuZCBhY2NvdW50LlxuICogU3VwcG9ydHMgYWxsIGZvdXIgc2xvdHM6IGBzZWNwMjU2azFNdWx0aXNpZ2AsIGBlZDI1NTE5TXVsdGlzaWdgLCBgZWNkc2FNcGNgLCBhbmQgYGVkZHNhTXBjYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlcml2ZVNhZmVXYWxsZXRLZXlzKHBhcmFtczoge1xuICBjb2luOiBzdHJpbmc7XG4gIHNsb3Q6IFJvb3RLZXlUeXBlO1xuICBhY2NvdW50OiBudW1iZXI7XG4gIHJvb3RzOiBEZWNyeXB0ZWRTYWZlUm9vdHM7XG59KTogUHJvbWlzZTxEZXJpdmVkU2FmZVdhbGxldEtleXM+IHtcbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHBhcmFtcy5hY2NvdW50KSB8fCBwYXJhbXMuYWNjb3VudCA8IDAgfHwgcGFyYW1zLmFjY291bnQgPiBNQVhfQklQMzJfSU5ERVgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGRlcml2ZVNhZmVXYWxsZXRLZXlzOiBpbnZhbGlkIGFjY291bnQgJyR7cGFyYW1zLmFjY291bnR9J2ApO1xuICB9XG5cbiAgY29uc3QgeyBhY2NvdW50LCByb290cyB9ID0gcGFyYW1zO1xuICBjb25zdCBwYXRoID0gYnVpbGRTYWZlQmlwNDRQYXRoKGdldFNhZmVCaXA0NENvaW5UeXBlKHBhcmFtcy5jb2luKSwgcGFyYW1zLnNsb3QsIGFjY291bnQpO1xuICBjb25zdCB7IGNvaW5UeXBlLCBzbG90T3JkaW5hbCB9ID0gcGFyc2VTYWZlQmlwNDRQYXRoKHBhdGgpO1xuXG4gIGlmIChwYXJhbXMuc2xvdCA9PT0gJ3NlY3AyNTZrMU11bHRpc2lnJykge1xuICAgIHJldHVybiB7IHNsb3Q6ICdzZWNwMjU2azFNdWx0aXNpZycsIHBhdGgsIGtleXM6IGRlcml2ZVNhZmVDaGlsZFRyaXBsZXQocm9vdHMuc2VjcDI1NmsxTXVsdGlzaWcsIHBhdGgpIH07XG4gIH1cblxuICBpZiAocGFyYW1zLnNsb3QgPT09ICdlY2RzYU1wYycpIHtcbiAgICBjb25zdCB7IGNvbW1vbktleWNoYWluLCB1c2VyQ2hpbGQsIGJhY2t1cENoaWxkIH0gPSBhd2FpdCBEa2xzVnJmVXRpbHMuZGVyaXZlU2FmZUVjZHNhTXBjQ2hpbGQoe1xuICAgICAgdXNlclJvb3Q6IHJvb3RzLmVjZHNhTXBjLnVzZXIsXG4gICAgICBiYWNrdXBSb290OiByb290cy5lY2RzYU1wYy5iYWNrdXAsXG4gICAgICBhY2NvdW50LFxuICAgICAgY29pblR5cGUsXG4gICAgICBzYWZlU2xvdE9yZGluYWw6IHNsb3RPcmRpbmFsLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBzbG90OiAnZWNkc2FNcGMnLFxuICAgICAgcGF0aCxcbiAgICAgIGtleXM6IHsgY29tbW9uS2V5Y2hhaW4sIHVzZXI6IHVzZXJDaGlsZCwgYmFja3VwOiBiYWNrdXBDaGlsZCB9LFxuICAgIH07XG4gIH1cblxuICBpZiAocGFyYW1zLnNsb3QgPT09ICdlZGRzYU1wYycpIHtcbiAgICBjb25zdCB7IGNvbW1vbktleWNoYWluLCB1c2VyQ2hpbGQsIGJhY2t1cENoaWxkIH0gPSBhd2FpdCBNcHNWcmZVdGlscy5kZXJpdmVTYWZlRWRkc2FNcGNDaGlsZCh7XG4gICAgICB1c2VyUm9vdDogcm9vdHMuZWRkc2FNcGMudXNlcixcbiAgICAgIGJhY2t1cFJvb3Q6IHJvb3RzLmVkZHNhTXBjLmJhY2t1cCxcbiAgICAgIGFjY291bnQsXG4gICAgICBjb2luVHlwZSxcbiAgICAgIHNhZmVTbG90T3JkaW5hbDogc2xvdE9yZGluYWwsXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNsb3Q6ICdlZGRzYU1wYycsXG4gICAgICBwYXRoLFxuICAgICAga2V5czogeyBjb21tb25LZXljaGFpbiwgdXNlcjogdXNlckNoaWxkLCBiYWNrdXA6IGJhY2t1cENoaWxkIH0sXG4gICAgfTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2xvdCA9PT0gJ2VkMjU1MTlNdWx0aXNpZycpIHtcbiAgICBjb25zdCByb290ID0gcm9vdHMuZWQyNTUxOU11bHRpc2lnO1xuICAgIGNvbnN0IGNvc2lnbmVyUGF0aCA9IHRvU29mdFR3aW5QYXRoKHBhdGgpO1xuXG4gICAgY29uc3QgdXNlciA9IGRlcml2ZVNhZmVDaGlsZEVkMjU1MTlIYXJkZW5lZChyb290LnVzZXIsIHBhdGgpO1xuICAgIGNvbnN0IGJhY2t1cCA9IGF3YWl0IHNvZnREZXJpdmVDaGlsZFBydkVkMjU1MTlBdFBhdGgoe1xuICAgICAgc2VlZFN0cktleTogcm9vdC5iYWNrdXAucHJ2LFxuICAgICAgY2hhaW5Db2RlOiByb290LmJhY2t1cC5jaGFpbkNvZGUsXG4gICAgICBwYXRoOiBjb3NpZ25lclBhdGgsXG4gICAgfSk7XG4gICAgY29uc3QgYml0Z28gPSBhd2FpdCBzb2Z0RGVyaXZlQ2hpbGRQdWJFZDI1NTE5QXRQYXRoKHJvb3QuYml0Z28sIGNvc2lnbmVyUGF0aCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2xvdDogJ2VkMjU1MTlNdWx0aXNpZycsXG4gICAgICBwYXRoLFxuICAgICAga2V5czoge1xuICAgICAgICB1c2VyOiB7IGtpbmQ6ICdzZWVkJywgc2VlZDogdXNlci5wcnYsIHB1YjogZGVjb2RlRWQyNTUxOVN0cktleVB1YmxpY0tleSh1c2VyLnB1YikudG9TdHJpbmcoJ2hleCcpIH0sXG4gICAgICAgIGJhY2t1cDoge1xuICAgICAgICAgIGtpbmQ6ICdleHRlbmRlZCcsXG4gICAgICAgICAga0w6IGJhY2t1cC5rTC50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAga1I6IGJhY2t1cC5rUi50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgcHViOiBiYWNrdXAucHViLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgfSxcbiAgICAgICAgYml0Z286IHsgcHViOiBiaXRnby50b1N0cmluZygnaGV4JykgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgZGVyaXZlU2FmZVdhbGxldEtleXM6IHNsb3QgJyR7cGFyYW1zLnNsb3R9JyBpcyBub3Qgc3VwcG9ydGVkIHlldGApO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUga2V5IGZpZWxkcyBgY29pbi5yZWNvdmVyKClgIGV4cGVjdHMgZnJvbSBkZXJpdmVkIFNhZmUgY2hpbGQga2V5cy5cbiAqIE9ubHkgYHNlY3AyNTZrMU11bHRpc2lnYCAoc2xvdCAxKSBpcyBzdXBwb3J0ZWQgZm9yIG5vdy4gU2lnbmVkIG1vZGUgcmUtZW5jcnlwdHMgdGhlXG4gKiBjaGlsZCB4cHJ2cyB1bmRlciBhIGZyZXNoIGVwaGVtZXJhbCBwYXNzcGhyYXNlICh2MS9TSkNMKTsgdW5zaWduZWQgbW9kZSByZXR1cm5zIHB1YnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZFNhZmVSZWNvdmVyS2V5UGFyYW1zKHBhcmFtczoge1xuICBiaXRnbzogQml0R29CYXNlO1xuICBjb2luOiBzdHJpbmc7XG4gIHNsb3Q6IFJvb3RLZXlUeXBlO1xuICBrZXlzOiBTZWNwMjU2azFNdWx0aXNpZ0NoaWxkS2V5cztcbiAgbW9kZTogJ3NpZ25lZCcgfCAndW5zaWduZWQnO1xufSk6IFByb21pc2U8U2FmZVJlY292ZXJLZXlQYXJhbXM+IHtcbiAgaWYgKHBhcmFtcy5zbG90ICE9PSAnc2VjcDI1NmsxTXVsdGlzaWcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBidWlsZFNhZmVSZWNvdmVyS2V5UGFyYW1zOiBzbG90ICcke3BhcmFtcy5zbG90fScgaXMgbm90IHN1cHBvcnRlZCB5ZXRgKTtcbiAgfVxuICBjb25zdCB7IGJpdGdvLCBrZXlzLCBtb2RlIH0gPSBwYXJhbXM7XG5cbiAgaWYgKG1vZGUgPT09ICd1bnNpZ25lZCcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcktleToga2V5cy51c2VyLnB1YixcbiAgICAgIGJhY2t1cEtleToga2V5cy5iYWNrdXAucHViLFxuICAgICAgYml0Z29LZXk6IGtleXMuYml0Z28ucHViLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB1c2VyUHJ2ID0gYmlwMzIuZnJvbUJhc2U1OChrZXlzLnVzZXIucHJ2KTtcbiAgY29uc3QgYmFja3VwUHJ2ID0gYmlwMzIuZnJvbUJhc2U1OChrZXlzLmJhY2t1cC5wcnYpO1xuICBpZiAoIXVzZXJQcnYucHJpdmF0ZUtleSB8fCAhYmFja3VwUHJ2LnByaXZhdGVLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2J1aWxkU2FmZVJlY292ZXJLZXlQYXJhbXM6IGtleXMudXNlci5wcnYgYW5kIGtleXMuYmFja3VwLnBydiBtdXN0IGJlIHByaXZhdGUgeHBydnMnKTtcbiAgfVxuXG4gIGNvbnN0IHdhbGxldFBhc3NwaHJhc2UgPSByYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCBbdXNlcktleSwgYmFja3VwS2V5XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6IGtleXMudXNlci5wcnYsIHBhc3N3b3JkOiB3YWxsZXRQYXNzcGhyYXNlLCBlbmNyeXB0aW9uVmVyc2lvbjogMSB9KSxcbiAgICBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6IGtleXMuYmFja3VwLnBydiwgcGFzc3dvcmQ6IHdhbGxldFBhc3NwaHJhc2UsIGVuY3J5cHRpb25WZXJzaW9uOiAxIH0pLFxuICBdKTtcblxuICByZXR1cm4ge1xuICAgIHVzZXJLZXksXG4gICAgYmFja3VwS2V5LFxuICAgIGJpdGdvS2V5OiBrZXlzLmJpdGdvLnB1YixcbiAgICB3YWxsZXRQYXNzcGhyYXNlLFxuICB9O1xufVxuIl19
|
|
@@ -19,13 +19,13 @@ export declare class Safe implements ISafe {
|
|
|
19
19
|
*/
|
|
20
20
|
url(extra?: string): string;
|
|
21
21
|
/**
|
|
22
|
-
* Mint a child wallet: peek the
|
|
23
|
-
* them, then mint.
|
|
22
|
+
* Mint a child wallet: peek the next account for (slot, coinType), derive the child keys at
|
|
23
|
+
* `m/44'/<coinType>'/<slot>'/<account>'`, register them, then mint.
|
|
24
24
|
*
|
|
25
|
-
* `onchain`: hardened-derive the user child
|
|
26
|
-
*
|
|
25
|
+
* `onchain`: hardened-derive the user child at that path, register it public-only; backup
|
|
26
|
+
* and BitGo children are soft-derived on the server at its soft twin.
|
|
27
27
|
*
|
|
28
|
-
* `tss`: decrypt the user root blob, run the user/BitGo hard-derive ceremony,
|
|
28
|
+
* `tss`: decrypt the user root blob, run the user/BitGo hard-derive ceremony at that path,
|
|
29
29
|
* register the ordered child documents, then mint.
|
|
30
30
|
*/
|
|
31
31
|
createWallet(params: CreateSafeWalletOptions): Promise<Wallet>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/safe.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AAEhH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/safe/safe.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AAEhH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,EACvB,KAAK,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;AAoEjB;;GAEG;AACH,qBAAa,IAAK,YAAW,KAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAClC,SAAgB,KAAK,EAAE,QAAQ,CAAC;gBAEpB,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAKhD,EAAE,IAAI,MAAM;IAIZ,YAAY,IAAI,MAAM;IAItB,KAAK,IAAI,MAAM;IAIf,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAI5B;;;OAGG;IACH,GAAG,CAAC,KAAK,SAAK,GAAG,MAAM;IAIvB;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqFpE;;;OAGG;YACW,qBAAqB;YAuDrB,aAAa;IAK3B;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIhE;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC;IAIrF;;OAEG;IACG,UAAU,CAAC,MAAM,GAAE;QAAE,KAAK,CAAC,EAAE,cAAc,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAInF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAIzE;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK1D;;;OAGG;IACG,MAAM,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK5D;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAKlC;;;;;;;OAOG;IACG,eAAe,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAqE/F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BpE,MAAM,IAAI,QAAQ;CAGnB"}
|