@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.81 → 8.2.1-alpha.83

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 CHANGED
@@ -3,6 +3,33 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [9.6.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-lib-mpc@9.5.0...@bitgo/sdk-lib-mpc@9.6.0) (2024-05-01)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **sdk-lib-mpc:** fix mpcv2 sig combine to pad signatures to 64 bytes ([421698d](https://github.com/BitGo/BitGoJS/commit/421698d3ccd8eaab22ba5e0989474421d11bd773))
11
+ - **sdk-lib-mpc:** fix wasm init in mpcv2 wallets ([efbe63a](https://github.com/BitGo/BitGoJS/commit/efbe63a147000f3c0b601f065b70e4fa0e71eb58))
12
+
13
+ ### Features
14
+
15
+ - **sdk-core:** add MPCv2 wallet creation ([3b15e71](https://github.com/BitGo/BitGoJS/commit/3b15e715a5cdb165ce671bd216d1191170ee8980))
16
+
17
+ # [9.5.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-lib-mpc@9.4.0...@bitgo/sdk-lib-mpc@9.5.0) (2024-04-25)
18
+
19
+ ### Features
20
+
21
+ - **sdk-lib-mpc:** add derivation to verify mpcv2 signature ([672b6fb](https://github.com/BitGo/BitGoJS/commit/672b6fbcfca926b2275ec7cc4d9f5b1d5f717f42))
22
+
23
+ # [9.4.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-lib-mpc@9.3.0...@bitgo/sdk-lib-mpc@9.4.0) (2024-04-22)
24
+
25
+ ### Bug Fixes
26
+
27
+ - **sdk-lib-mpc:** fix mpcv2 commitment and signatureR serialization ([89efa0c](https://github.com/BitGo/BitGoJS/commit/89efa0c1dbcc2aa6cb587692e989a0e8a6c7a984))
28
+
29
+ ### Features
30
+
31
+ - **sdk-lib-mpc:** add utility to verify dkls signatures ([eb0824d](https://github.com/BitGo/BitGoJS/commit/eb0824dfaf7e9c2c9bb85df08b2e9012d1bf657b))
32
+
6
33
  # [9.3.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-lib-mpc@9.2.0...@bitgo/sdk-lib-mpc@9.3.0) (2024-04-17)
7
34
 
8
35
  ### Features
@@ -0,0 +1,2 @@
1
+ export * from './openssl';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/openssl/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./openssl"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3BlbnNzbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNENBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vcGVuc3NsJztcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export declare class OpenSSL {
2
+ private waModule;
3
+ private isInitialized;
4
+ init(): Promise<void>;
5
+ generateSafePrime(bitLength: number): Promise<bigint>;
6
+ private runCommand;
7
+ private getWasmBytes;
8
+ }
9
+ //# sourceMappingURL=openssl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openssl.d.ts","sourceRoot":"","sources":["../../../src/openssl/openssl.ts"],"names":[],"mappings":"AAGA,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAS;IAExB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAI7C,UAAU;YAmBV,YAAY;CAO3B"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenSSL = void 0;
4
+ const wasi_1 = require("@wasmer/wasi");
5
+ const opensslbytes_1 = require("./opensslbytes");
6
+ class OpenSSL {
7
+ constructor() {
8
+ this.isInitialized = false;
9
+ }
10
+ async init() {
11
+ await (0, wasi_1.init)();
12
+ this.waModule = await WebAssembly.compile(await this.getWasmBytes());
13
+ this.isInitialized = true;
14
+ }
15
+ async generateSafePrime(bitLength) {
16
+ const bigIntString = await this.runCommand(`prime -bits ${bitLength} -generate -safe`);
17
+ return BigInt(bigIntString);
18
+ }
19
+ async runCommand(openSslCommand) {
20
+ if (!this.isInitialized) {
21
+ throw new Error('The OpenSSl class is not initialized! Please call OpenSSL.init().');
22
+ }
23
+ const command = Array.isArray(openSslCommand) ? openSslCommand : openSslCommand.split(/[\s]{1,}/g).filter(Boolean);
24
+ const wasi = new wasi_1.WASI({
25
+ args: command,
26
+ });
27
+ // Instantiate the WASI module
28
+ // cannot use wasi.instantiate(module, {}); due to the size of the module
29
+ const instance = await WebAssembly.instantiate(this.waModule, {
30
+ ...wasi.getImports(this.waModule),
31
+ });
32
+ // Run the start function
33
+ wasi.start(instance);
34
+ return wasi.getStdoutString();
35
+ }
36
+ async getWasmBytes() {
37
+ const waBuffer = (0, opensslbytes_1.loadWebAssembly)();
38
+ if (!waBuffer) {
39
+ throw new Error('Cannot load openssl web-assembly!');
40
+ }
41
+ return waBuffer.buffer;
42
+ }
43
+ }
44
+ exports.OpenSSL = OpenSSL;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNzbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVuc3NsL29wZW5zc2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQTBDO0FBQzFDLGlEQUFpRDtBQUVqRCxNQUFhLE9BQU87SUFBcEI7UUFFVSxrQkFBYSxHQUFHLEtBQUssQ0FBQztJQXNDaEMsQ0FBQztJQXBDQyxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sSUFBQSxXQUFJLEdBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxTQUFTLGtCQUFrQixDQUFDLENBQUM7UUFDdkYsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNPLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBaUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1NBQ3RGO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuSCxNQUFNLElBQUksR0FBRyxJQUFJLFdBQUksQ0FBQztZQUNwQixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5Qix5RUFBeUU7UUFDekUsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUQsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUEsOEJBQWUsR0FBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7U0FDdEQ7UUFDRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBeENELDBCQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluaXQsIFdBU0kgfSBmcm9tICdAd2FzbWVyL3dhc2knO1xuaW1wb3J0IHsgbG9hZFdlYkFzc2VtYmx5IH0gZnJvbSAnLi9vcGVuc3NsYnl0ZXMnO1xuXG5leHBvcnQgY2xhc3MgT3BlblNTTCB7XG4gIHByaXZhdGUgd2FNb2R1bGU6IFdlYkFzc2VtYmx5Lk1vZHVsZTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgYXN5bmMgaW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBpbml0KCk7XG4gICAgdGhpcy53YU1vZHVsZSA9IGF3YWl0IFdlYkFzc2VtYmx5LmNvbXBpbGUoYXdhaXQgdGhpcy5nZXRXYXNtQnl0ZXMoKSk7XG4gICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlU2FmZVByaW1lKGJpdExlbmd0aDogbnVtYmVyKTogUHJvbWlzZTxiaWdpbnQ+IHtcbiAgICBjb25zdCBiaWdJbnRTdHJpbmcgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQoYHByaW1lIC1iaXRzICR7Yml0TGVuZ3RofSAtZ2VuZXJhdGUgLXNhZmVgKTtcbiAgICByZXR1cm4gQmlnSW50KGJpZ0ludFN0cmluZyk7XG4gIH1cbiAgcHJpdmF0ZSBhc3luYyBydW5Db21tYW5kKG9wZW5Tc2xDb21tYW5kOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIE9wZW5TU2wgY2xhc3MgaXMgbm90IGluaXRpYWxpemVkISBQbGVhc2UgY2FsbCBPcGVuU1NMLmluaXQoKS4nKTtcbiAgICB9XG4gICAgY29uc3QgY29tbWFuZCA9IEFycmF5LmlzQXJyYXkob3BlblNzbENvbW1hbmQpID8gb3BlblNzbENvbW1hbmQgOiBvcGVuU3NsQ29tbWFuZC5zcGxpdCgvW1xcc117MSx9L2cpLmZpbHRlcihCb29sZWFuKTtcbiAgICBjb25zdCB3YXNpID0gbmV3IFdBU0koe1xuICAgICAgYXJnczogY29tbWFuZCxcbiAgICB9KTtcblxuICAgIC8vIEluc3RhbnRpYXRlIHRoZSBXQVNJIG1vZHVsZVxuICAgIC8vIGNhbm5vdCB1c2Ugd2FzaS5pbnN0YW50aWF0ZShtb2R1bGUsIHt9KTsgZHVlIHRvIHRoZSBzaXplIG9mIHRoZSBtb2R1bGVcbiAgICBjb25zdCBpbnN0YW5jZSA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHRoaXMud2FNb2R1bGUsIHtcbiAgICAgIC4uLndhc2kuZ2V0SW1wb3J0cyh0aGlzLndhTW9kdWxlKSxcbiAgICB9KTtcbiAgICAvLyBSdW4gdGhlIHN0YXJ0IGZ1bmN0aW9uXG4gICAgd2FzaS5zdGFydChpbnN0YW5jZSk7XG4gICAgcmV0dXJuIHdhc2kuZ2V0U3Rkb3V0U3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFdhc21CeXRlcygpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCB3YUJ1ZmZlciA9IGxvYWRXZWJBc3NlbWJseSgpO1xuICAgIGlmICghd2FCdWZmZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGxvYWQgb3BlbnNzbCB3ZWItYXNzZW1ibHkhJyk7XG4gICAgfVxuICAgIHJldHVybiB3YUJ1ZmZlci5idWZmZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export declare function loadWebAssembly(): {
2
+ buffer: Uint8Array;
3
+ } | null;
4
+ //# sourceMappingURL=opensslbytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opensslbytes.d.ts","sourceRoot":"","sources":["../../../src/openssl/opensslbytes.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,IAAI;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAU/D"}