@bitgo/sdk-core 8.1.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +15 -5
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +60 -13
- package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts +28 -11
- package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/rangeproof.js +124 -14
- package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts +36 -14
- package/dist/src/account-lib/mpc/tss/ecdsa/types.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/tss/ecdsa/types.js +1 -1
- package/dist/src/account-lib/util/crypto.d.ts +10 -0
- package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
- package/dist/src/account-lib/util/crypto.js +22 -2
- package/dist/src/bitgo/bitgoBase.d.ts +3 -1
- package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
- package/dist/src/bitgo/bitgoBase.js +1 -1
- package/dist/src/bitgo/ecdh.d.ts +11 -0
- package/dist/src/bitgo/ecdh.d.ts.map +1 -1
- package/dist/src/bitgo/ecdh.js +21 -2
- package/dist/src/bitgo/enterprise/enterprise.d.ts +32 -5
- package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/enterprise.js +53 -2
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts +13 -0
- package/dist/src/bitgo/enterprise/iEnterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/iEnterprise.js +1 -1
- package/dist/src/bitgo/keychain/iKeychains.d.ts +7 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +1 -1
- package/dist/src/bitgo/tss/common.d.ts +14 -13
- package/dist/src/bitgo/tss/common.d.ts.map +1 -1
- package/dist/src/bitgo/tss/common.js +30 -30
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts +3 -3
- package/dist/src/bitgo/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsa.js +2 -2
- package/dist/src/bitgo/tss/ecdsa/types.d.ts +2 -2
- package/dist/src/bitgo/tss/ecdsa/types.js +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +0 -5
- 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/ecdsa.d.ts +73 -3
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +264 -37
- package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts +9 -0
- package/dist/src/bitgo/utils/tss/ecdsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/types.js +1 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +13 -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/iWallets.d.ts +1 -1
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts +9 -1
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +13 -1
- package/dist/src/bitgo/wallet/wallets.js +2 -2
- package/dist/tsconfig.tsbuildinfo +910 -744
- package/package.json +4 -4
- package/LICENSE +0 -191
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import * as openpgp from 'openpgp';
|
|
2
3
|
import { Key, SerializedKeyPair } from 'openpgp';
|
|
3
4
|
import { ApiKeyShare, Keychain } from '../../../keychain';
|
|
4
5
|
import { IBaseCoin, KeychainsTriplet } from '../../../baseCoin';
|
|
5
6
|
import baseTSSUtils from '../baseTSSUtils';
|
|
6
|
-
import { CreateEcdsaBitGoKeychainParams, CreateEcdsaKeychainParams, KeyShare } from './types';
|
|
7
|
-
import { BackupGpgKey, BackupKeyShare, BitgoHeldBackupKeyShare, TSSParams, TSSParamsForMessage, TxRequest } from '../baseTypes';
|
|
7
|
+
import { BitGoProofSignatures, CreateEcdsaBitGoKeychainParams, CreateEcdsaKeychainParams, GetBitGoChallengesApi, KeyShare } from './types';
|
|
8
|
+
import { BackupGpgKey, BackupKeyShare, BitgoHeldBackupKeyShare, RequestType, TSSParams, TSSParamsForMessage, TxRequest } from '../baseTypes';
|
|
8
9
|
import { EncryptedNShare } from '../../../tss/ecdsa/types';
|
|
9
10
|
import { BitGoBase } from '../../../bitgoBase';
|
|
10
11
|
import { BackupProvider, IWallet } from '../../../wallet';
|
|
12
|
+
import { DeserializedNtilde, SerializedNtilde } from '../../../../account-lib/mpc/tss/ecdsa/types';
|
|
11
13
|
/** @inheritdoc */
|
|
12
14
|
export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
13
15
|
private bitgoPublicGpgKey;
|
|
@@ -66,7 +68,7 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
66
68
|
* @param {string | TxRequest} params.txRequest - transaction request object or id
|
|
67
69
|
* @param {string} params.prv - decrypted private key
|
|
68
70
|
* @param { string} params.reqId - request id
|
|
69
|
-
* @returns {Promise<
|
|
71
|
+
* @returns {Promise<TxRequest>}
|
|
70
72
|
*/
|
|
71
73
|
private signRequestBase;
|
|
72
74
|
/**
|
|
@@ -85,6 +87,17 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
85
87
|
* @returns {Promise<TxRequest>} fully signed TxRequest object
|
|
86
88
|
*/
|
|
87
89
|
signTxRequestForMessage(params: TSSParamsForMessage): Promise<TxRequest>;
|
|
90
|
+
/**
|
|
91
|
+
* Get the challenge values for enterprise and BitGo in ECDSA signing
|
|
92
|
+
* Only returns the challenges if they are verified by the user's enterprise admin's ecdh key
|
|
93
|
+
* @param {string} txRequestId - transaction request id
|
|
94
|
+
* @param {RequestType} requestType - (0 for tx, 1 for message)
|
|
95
|
+
* @param {number} index - index of the requestType
|
|
96
|
+
*/
|
|
97
|
+
getEcdsaSigningChallenges(txRequestId: string, requestType: RequestType, index?: number): Promise<{
|
|
98
|
+
enterpriseChallenge: SerializedNtilde;
|
|
99
|
+
bitgoChallenge: SerializedNtilde;
|
|
100
|
+
}>;
|
|
88
101
|
/**
|
|
89
102
|
* Verifies the u-value proofs and GPG keys used in generating a TSS ECDSA wallet.
|
|
90
103
|
* @param userGpgPub The user's public GPG key for encryption between user/server
|
|
@@ -94,5 +107,62 @@ export declare class EcdsaUtils extends baseTSSUtils<KeyShare> {
|
|
|
94
107
|
* @param verifierIndex The index of the party to verify: 1 = user, 2 = backup
|
|
95
108
|
*/
|
|
96
109
|
verifyWalletSignatures(userGpgPub: string, backupGpgPub: string, bitgoKeychain: Keychain, decryptedShare: string, verifierIndex: 1 | 2): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Signs a challenge with the provided v1 ecdh key at a derived path
|
|
112
|
+
* @param challenge challenge to sign
|
|
113
|
+
* @param ecdhXprv xprv of the ecdh key
|
|
114
|
+
* @param derivationPath the derived path at which the ecdh key will sign
|
|
115
|
+
*/
|
|
116
|
+
static signChallenge(challenge: SerializedNtilde, ecdhXprv: string, derivationPath: string): Buffer;
|
|
117
|
+
/**
|
|
118
|
+
* Converts challenge to a common message format which can be signed.
|
|
119
|
+
* @param challenge
|
|
120
|
+
*/
|
|
121
|
+
static getMessageToSignFromChallenge(challenge: SerializedNtilde): string;
|
|
122
|
+
/**
|
|
123
|
+
Verifies ZK proofs of BitGo's challenges for both nitro and institutional HSMs
|
|
124
|
+
which are fetched from the WP API.
|
|
125
|
+
*/
|
|
126
|
+
static verifyBitGoChallenges(bitgoChallenges: GetBitGoChallengesApi): Promise<boolean>;
|
|
127
|
+
/**
|
|
128
|
+
* Verifies ZK proof for a single BitGo challenge
|
|
129
|
+
* @param bitgoChallenge
|
|
130
|
+
*/
|
|
131
|
+
static verifyBitGoChallenge(bitgoChallenge: SerializedNtilde): Promise<boolean>;
|
|
132
|
+
/**
|
|
133
|
+
* Gets the bitgo challenges for both nitro and institutional HSMs from WP API.
|
|
134
|
+
* @param bitgo
|
|
135
|
+
*/
|
|
136
|
+
static getBitGoChallenges(bitgo: BitGoBase): Promise<GetBitGoChallengesApi>;
|
|
137
|
+
/**
|
|
138
|
+
* Gets BitGo's proofs from API and signs them if the proofs are valid.
|
|
139
|
+
* @param bitgo
|
|
140
|
+
* @param enterpriseId
|
|
141
|
+
* @param userPassword
|
|
142
|
+
*/
|
|
143
|
+
static getVerifyAndSignBitGoChallenges(bitgo: BitGoBase, enterpriseId: string, userPassword: string): Promise<BitGoProofSignatures>;
|
|
144
|
+
/**
|
|
145
|
+
* This is needed to enable ecdsa signing on the enterprise.
|
|
146
|
+
* It receives the enterprise challenge and signatures of verified bitgo proofs
|
|
147
|
+
* and uploads them on the enterprise.
|
|
148
|
+
* @param bitgo
|
|
149
|
+
* @param entId - enterprise id to enable ecdsa signing on
|
|
150
|
+
* @param userPassword - enterprise admin's login pw
|
|
151
|
+
* @param bitgoInstChallengeProofSignature - signature on bitgo's institutional HSM challenge after verification
|
|
152
|
+
* @param bitgoNitroChallengeProofSignature - signature on bitgo's nitro HSM challenge after verification
|
|
153
|
+
* @param challenge - optionally use the challenge for enterprise challenge
|
|
154
|
+
*/
|
|
155
|
+
static initiateChallengesForEnterprise(bitgo: BitGoBase, entId: string, userPassword: string, bitgoInstChallengeProofSignature: Buffer, bitgoNitroChallengeProofSignature: Buffer, challenge?: DeserializedNtilde): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Uploads the signed challenges and their proofs on the enterprise.
|
|
158
|
+
* This initiates ecdsa signing for the enterprise users.
|
|
159
|
+
* @param bitgo
|
|
160
|
+
* @param entId - enterprise to enable ecdsa signing on
|
|
161
|
+
* @param entChallengeWithProofs - client side generated ent challenge with ZK proofs
|
|
162
|
+
* @param entChallengeSignature - signature on enterprise challenge
|
|
163
|
+
* @param bitgoIntChallengeSignature - signature on BitGo's institutional HSM challenge
|
|
164
|
+
* @param bitgoNitroChallengeSignature - signature on BitGo's nitro HSM challenge
|
|
165
|
+
*/
|
|
166
|
+
static uploadChallengesToEnterprise(bitgo: BitGoBase, entId: string, entChallengeWithProofs: SerializedNtilde, entChallengeSignature: string, bitgoIntChallengeSignature: string, bitgoNitroChallengeSignature: string): Promise<void>;
|
|
97
167
|
}
|
|
98
168
|
//# sourceMappingURL=ecdsa.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAsB,WAAW,EAAuB,QAAQ,EAAW,MAAM,mBAAmB,CAAC;AAE5G,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
|