@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.359 → 8.2.1-alpha.360
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/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/src/curves/constant.d.ts +0 -2
- package/dist/src/curves/constant.d.ts.map +0 -1
- package/dist/src/curves/constant.js +0 -6
- package/dist/src/curves/ed25519.d.ts +0 -20
- package/dist/src/curves/ed25519.d.ts.map +0 -1
- package/dist/src/curves/ed25519.js +0 -72
- package/dist/src/curves/ed25519Bip32HdTree.d.ts +0 -10
- package/dist/src/curves/ed25519Bip32HdTree.d.ts.map +0 -1
- package/dist/src/curves/ed25519Bip32HdTree.js +0 -85
- package/dist/src/curves/index.d.ts +0 -8
- package/dist/src/curves/index.d.ts.map +0 -1
- package/dist/src/curves/index.js +0 -24
- package/dist/src/curves/secp256k1.d.ts +0 -18
- package/dist/src/curves/secp256k1.d.ts.map +0 -1
- package/dist/src/curves/secp256k1.js +0 -61
- package/dist/src/curves/secp256k1Bip32HdTree.d.ts +0 -8
- package/dist/src/curves/secp256k1Bip32HdTree.d.ts.map +0 -1
- package/dist/src/curves/secp256k1Bip32HdTree.js +0 -54
- package/dist/src/curves/types.d.ts +0 -35
- package/dist/src/curves/types.d.ts.map +0 -1
- package/dist/src/curves/types.js +0 -3
- package/dist/src/curves/util.d.ts +0 -4
- package/dist/src/curves/util.d.ts.map +0 -1
- package/dist/src/curves/util.js +0 -42
- package/dist/src/hashCommitment.d.ts +0 -16
- package/dist/src/hashCommitment.d.ts.map +0 -1
- package/dist/src/hashCommitment.js +0 -44
- package/dist/src/index.d.ts +0 -9
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -48
- package/dist/src/openssl/index.d.ts +0 -2
- package/dist/src/openssl/index.d.ts.map +0 -1
- package/dist/src/openssl/index.js +0 -18
- package/dist/src/openssl/openssl.d.ts +0 -8
- package/dist/src/openssl/openssl.d.ts.map +0 -1
- package/dist/src/openssl/openssl.js +0 -37
- package/dist/src/safePrime.d.ts +0 -3
- package/dist/src/safePrime.d.ts.map +0 -1
- package/dist/src/safePrime.js +0 -19
- package/dist/src/schnorrProof.d.ts +0 -21
- package/dist/src/schnorrProof.d.ts.map +0 -1
- package/dist/src/schnorrProof.js +0 -61
- package/dist/src/shamir/index.d.ts +0 -3
- package/dist/src/shamir/index.d.ts.map +0 -1
- package/dist/src/shamir/index.js +0 -19
- package/dist/src/shamir/shamir.d.ts +0 -38
- package/dist/src/shamir/shamir.d.ts.map +0 -1
- package/dist/src/shamir/shamir.js +0 -136
- package/dist/src/shamir/types.d.ts +0 -5
- package/dist/src/shamir/types.d.ts.map +0 -1
- package/dist/src/shamir/types.js +0 -3
- package/dist/src/tss/ecdsa/index.d.ts +0 -6
- package/dist/src/tss/ecdsa/index.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/index.js +0 -42
- package/dist/src/tss/ecdsa/paillierproof.d.ts +0 -24
- package/dist/src/tss/ecdsa/paillierproof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/paillierproof.js +0 -86
- package/dist/src/tss/ecdsa/primes.d.ts +0 -2
- package/dist/src/tss/ecdsa/primes.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/primes.js +0 -1846
- package/dist/src/tss/ecdsa/rangeproof.d.ts +0 -79
- package/dist/src/tss/ecdsa/rangeproof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/rangeproof.js +0 -394
- package/dist/src/tss/ecdsa/types.d.ts +0 -142
- package/dist/src/tss/ecdsa/types.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/types.js +0 -130
- package/dist/src/tss/ecdsa/zkVProof.d.ts +0 -24
- package/dist/src/tss/ecdsa/zkVProof.d.ts.map +0 -1
- package/dist/src/tss/ecdsa/zkVProof.js +0 -70
- package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts +0 -42
- package/dist/src/tss/ecdsa-dkls/commsLayer.d.ts.map +0 -1
- package/dist/src/tss/ecdsa-dkls/commsLayer.js +0 -235
- package/dist/src/tss/ecdsa-dkls/dkg.d.ts +0 -57
- package/dist/src/tss/ecdsa-dkls/dkg.d.ts.map +0 -1
- package/dist/src/tss/ecdsa-dkls/dkg.js +0 -321
- package/dist/src/tss/ecdsa-dkls/dsg.d.ts +0 -47
- package/dist/src/tss/ecdsa-dkls/dsg.d.ts.map +0 -1
- package/dist/src/tss/ecdsa-dkls/dsg.js +0 -266
- package/dist/src/tss/ecdsa-dkls/index.d.ts +0 -6
- package/dist/src/tss/ecdsa-dkls/index.d.ts.map +0 -1
- package/dist/src/tss/ecdsa-dkls/index.js +0 -42
- package/dist/src/tss/ecdsa-dkls/types.d.ts +0 -118
- package/dist/src/tss/ecdsa-dkls/types.d.ts.map +0 -1
- package/dist/src/tss/ecdsa-dkls/types.js +0 -165
- package/dist/src/tss/ecdsa-dkls/util.d.ts +0 -26
- package/dist/src/tss/ecdsa-dkls/util.d.ts.map +0 -1
- package/dist/src/tss/ecdsa-dkls/util.js +0 -276
- package/dist/src/tss/index.d.ts +0 -3
- package/dist/src/tss/index.d.ts.map +0 -1
- package/dist/src/tss/index.js +0 -19
- package/dist/src/types.d.ts +0 -13
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -3
- package/dist/src/util.d.ts +0 -58
- package/dist/src/util.d.ts.map +0 -1
- package/dist/src/util.js +0 -164
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hashCommitment.d.ts","sourceRoot":"","sources":["../../src/hashCommitment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAK/D;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAE,MAAyC,GAAG,kBAAkB,CAWjH;AAaD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAE7F"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCommitment = createCommitment;
|
|
4
|
-
exports.verifyCommitment = verifyCommitment;
|
|
5
|
-
const crypto_1 = require("crypto");
|
|
6
|
-
const util_1 = require("./util");
|
|
7
|
-
const minRandomnessLength = 32;
|
|
8
|
-
/**
|
|
9
|
-
* Create hash commitment and decommietment of a secret value.
|
|
10
|
-
* @param secret The secret value/message.
|
|
11
|
-
* @param r The randomness/nonce to be added to the commmitment.
|
|
12
|
-
* @returns The created commitment and decommitment.
|
|
13
|
-
*/
|
|
14
|
-
function createCommitment(secret, r = (0, crypto_1.randomBytes)(minRandomnessLength)) {
|
|
15
|
-
if (r.length < minRandomnessLength) {
|
|
16
|
-
throw new Error(`randomness must be at least ${minRandomnessLength} bytes long`);
|
|
17
|
-
}
|
|
18
|
-
return {
|
|
19
|
-
commitment: hash(secret, r),
|
|
20
|
-
decommitment: {
|
|
21
|
-
blindingFactor: r,
|
|
22
|
-
secret: secret,
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const bytesPerUint32 = 4;
|
|
27
|
-
function hash(secret, r) {
|
|
28
|
-
return (0, crypto_1.createHash)('sha256')
|
|
29
|
-
.update((0, util_1.bigIntToBufferBE)(BigInt(secret.length), bytesPerUint32))
|
|
30
|
-
.update(secret)
|
|
31
|
-
.update((0, util_1.bigIntToBufferBE)(BigInt(r.length), bytesPerUint32))
|
|
32
|
-
.update(r)
|
|
33
|
-
.digest();
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Verify hash commitment and decommietment of a secret value.
|
|
37
|
-
* @param commitment The commitment.
|
|
38
|
-
* @param decommietment The decommitment.
|
|
39
|
-
* @returns True if verification succeeds.
|
|
40
|
-
*/
|
|
41
|
-
function verifyCommitment(commitment, decommietment) {
|
|
42
|
-
return hash(decommietment.secret, decommietment.blindingFactor).compare(commitment) === 0;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaENvbW1pdG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFzaENvbW1pdG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSw0Q0FXQztBQW1CRCw0Q0FFQztBQTVDRCxtQ0FBaUQ7QUFFakQsaUNBQTBDO0FBRTFDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBRS9COzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLElBQVksSUFBQSxvQkFBVyxFQUFDLG1CQUFtQixDQUFDO0lBQzNGLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLG1CQUFtQixhQUFhLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsT0FBTztRQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMzQixZQUFZLEVBQUU7WUFDWixjQUFjLEVBQUUsQ0FBQztZQUNqQixNQUFNLEVBQUUsTUFBTTtTQUNmO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFFekIsU0FBUyxJQUFJLENBQUMsTUFBYyxFQUFFLENBQVM7SUFDckMsT0FBTyxJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDO1NBQ3hCLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDL0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUNkLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDMUQsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNULE1BQU0sRUFBRSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBa0IsRUFBRSxhQUErQjtJQUNsRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoLCByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBIYXNoQ29tbWl0RGVjb21taXQsIEhhc2hEZWNvbW1pdG1lbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGJpZ0ludFRvQnVmZmVyQkUgfSBmcm9tICcuL3V0aWwnO1xuXG5jb25zdCBtaW5SYW5kb21uZXNzTGVuZ3RoID0gMzI7XG5cbi8qKlxuICogQ3JlYXRlIGhhc2ggY29tbWl0bWVudCBhbmQgZGVjb21taWV0bWVudCBvZiBhIHNlY3JldCB2YWx1ZS5cbiAqIEBwYXJhbSBzZWNyZXQgVGhlIHNlY3JldCB2YWx1ZS9tZXNzYWdlLlxuICogQHBhcmFtIHIgVGhlIHJhbmRvbW5lc3Mvbm9uY2UgdG8gYmUgYWRkZWQgdG8gdGhlIGNvbW1taXRtZW50LlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgY29tbWl0bWVudCBhbmQgZGVjb21taXRtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tbWl0bWVudChzZWNyZXQ6IEJ1ZmZlciwgcjogQnVmZmVyID0gcmFuZG9tQnl0ZXMobWluUmFuZG9tbmVzc0xlbmd0aCkpOiBIYXNoQ29tbWl0RGVjb21taXQge1xuICBpZiAoci5sZW5ndGggPCBtaW5SYW5kb21uZXNzTGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByYW5kb21uZXNzIG11c3QgYmUgYXQgbGVhc3QgJHttaW5SYW5kb21uZXNzTGVuZ3RofSBieXRlcyBsb25nYCk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjb21taXRtZW50OiBoYXNoKHNlY3JldCwgciksXG4gICAgZGVjb21taXRtZW50OiB7XG4gICAgICBibGluZGluZ0ZhY3RvcjogcixcbiAgICAgIHNlY3JldDogc2VjcmV0LFxuICAgIH0sXG4gIH07XG59XG5cbmNvbnN0IGJ5dGVzUGVyVWludDMyID0gNDtcblxuZnVuY3Rpb24gaGFzaChzZWNyZXQ6IEJ1ZmZlciwgcjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goJ3NoYTI1NicpXG4gICAgLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKEJpZ0ludChzZWNyZXQubGVuZ3RoKSwgYnl0ZXNQZXJVaW50MzIpKVxuICAgIC51cGRhdGUoc2VjcmV0KVxuICAgIC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShCaWdJbnQoci5sZW5ndGgpLCBieXRlc1BlclVpbnQzMikpXG4gICAgLnVwZGF0ZShyKVxuICAgIC5kaWdlc3QoKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgaGFzaCBjb21taXRtZW50IGFuZCBkZWNvbW1pZXRtZW50IG9mIGEgc2VjcmV0IHZhbHVlLlxuICogQHBhcmFtIGNvbW1pdG1lbnQgVGhlIGNvbW1pdG1lbnQuXG4gKiBAcGFyYW0gZGVjb21taWV0bWVudCBUaGUgZGVjb21taXRtZW50LlxuICogQHJldHVybnMgVHJ1ZSBpZiB2ZXJpZmljYXRpb24gc3VjY2VlZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlDb21taXRtZW50KGNvbW1pdG1lbnQ6IEJ1ZmZlciwgZGVjb21taWV0bWVudDogSGFzaERlY29tbWl0bWVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gaGFzaChkZWNvbW1pZXRtZW50LnNlY3JldCwgZGVjb21taWV0bWVudC5ibGluZGluZ0ZhY3RvcikuY29tcGFyZShjb21taXRtZW50KSA9PT0gMDtcbn1cbiJdfQ==
|
package/dist/src/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './curves';
|
|
2
|
-
export * from './safePrime';
|
|
3
|
-
export * from './shamir';
|
|
4
|
-
export * from './tss';
|
|
5
|
-
export * as HashCommitment from './hashCommitment';
|
|
6
|
-
export * as Schnorr from './schnorrProof';
|
|
7
|
-
export * from './types';
|
|
8
|
-
export * from './util';
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AAEtB,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
|
package/dist/src/index.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.Schnorr = exports.HashCommitment = void 0;
|
|
40
|
-
__exportStar(require("./curves"), exports);
|
|
41
|
-
__exportStar(require("./safePrime"), exports);
|
|
42
|
-
__exportStar(require("./shamir"), exports);
|
|
43
|
-
__exportStar(require("./tss"), exports);
|
|
44
|
-
exports.HashCommitment = __importStar(require("./hashCommitment"));
|
|
45
|
-
exports.Schnorr = __importStar(require("./schnorrProof"));
|
|
46
|
-
__exportStar(require("./types"), exports);
|
|
47
|
-
__exportStar(require("./util"), exports);
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDhDQUE0QjtBQUM1QiwyQ0FBeUI7QUFDekIsd0NBQXNCO0FBRXRCLG1FQUFtRDtBQUNuRCwwREFBMEM7QUFDMUMsMENBQXdCO0FBQ3hCLHlDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3VydmVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2FmZVByaW1lJztcbmV4cG9ydCAqIGZyb20gJy4vc2hhbWlyJztcbmV4cG9ydCAqIGZyb20gJy4vdHNzJztcblxuZXhwb3J0ICogYXMgSGFzaENvbW1pdG1lbnQgZnJvbSAnLi9oYXNoQ29tbWl0bWVudCc7XG5leHBvcnQgKiBhcyBTY2hub3JyIGZyb20gJy4vc2Nobm9yclByb29mJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/openssl/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
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==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openssl.d.ts","sourceRoot":"","sources":["../../../src/openssl/openssl.ts"],"names":[],"mappings":"AACA,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAS;IAExB,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAI7C,UAAU;CAkBzB"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OpenSSL = void 0;
|
|
4
|
-
const wasi_1 = require("@wasmer/wasi");
|
|
5
|
-
class OpenSSL {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.isInitialized = false;
|
|
8
|
-
}
|
|
9
|
-
async init(openSSLBytes) {
|
|
10
|
-
await (0, wasi_1.init)();
|
|
11
|
-
this.waModule = await WebAssembly.compile(openSSLBytes);
|
|
12
|
-
this.isInitialized = true;
|
|
13
|
-
}
|
|
14
|
-
async generateSafePrime(bitLength) {
|
|
15
|
-
const bigIntString = await this.runCommand(`prime -bits ${bitLength} -generate -safe`);
|
|
16
|
-
return BigInt(bigIntString);
|
|
17
|
-
}
|
|
18
|
-
async runCommand(openSslCommand) {
|
|
19
|
-
if (!this.isInitialized) {
|
|
20
|
-
throw new Error('The OpenSSl class is not initialized! Please call OpenSSL.init().');
|
|
21
|
-
}
|
|
22
|
-
const command = Array.isArray(openSslCommand) ? openSslCommand : openSslCommand.split(/[\s]{1,}/g).filter(Boolean);
|
|
23
|
-
const wasi = new wasi_1.WASI({
|
|
24
|
-
args: command,
|
|
25
|
-
});
|
|
26
|
-
// Instantiate the WASI module
|
|
27
|
-
// cannot use wasi.instantiate(module, {}); due to the size of the module
|
|
28
|
-
const instance = await WebAssembly.instantiate(this.waModule, {
|
|
29
|
-
...wasi.getImports(this.waModule),
|
|
30
|
-
});
|
|
31
|
-
// Run the start function
|
|
32
|
-
wasi.start(instance);
|
|
33
|
-
return wasi.getStdoutString();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.OpenSSL = OpenSSL;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbnNzbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVuc3NsL29wZW5zc2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQTBDO0FBQzFDLE1BQWEsT0FBTztJQUFwQjtRQUVVLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBOEJoQyxDQUFDO0lBNUJDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBd0I7UUFDakMsTUFBTSxJQUFBLFdBQUksR0FBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxTQUFTLGtCQUFrQixDQUFDLENBQUM7UUFDdkYsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNPLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBaUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkgsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUM7UUFFSCw4QkFBOEI7UUFDOUIseUVBQXlFO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQzVELEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUMsQ0FBQztRQUNILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQWhDRCwwQkFnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbml0LCBXQVNJIH0gZnJvbSAnQHdhc21lci93YXNpJztcbmV4cG9ydCBjbGFzcyBPcGVuU1NMIHtcbiAgcHJpdmF0ZSB3YU1vZHVsZTogV2ViQXNzZW1ibHkuTW9kdWxlO1xuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBhc3luYyBpbml0KG9wZW5TU0xCeXRlczogVWludDhBcnJheSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGluaXQoKTtcbiAgICB0aGlzLndhTW9kdWxlID0gYXdhaXQgV2ViQXNzZW1ibHkuY29tcGlsZShvcGVuU1NMQnl0ZXMpO1xuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZVNhZmVQcmltZShiaXRMZW5ndGg6IG51bWJlcik6IFByb21pc2U8YmlnaW50PiB7XG4gICAgY29uc3QgYmlnSW50U3RyaW5nID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKGBwcmltZSAtYml0cyAke2JpdExlbmd0aH0gLWdlbmVyYXRlIC1zYWZlYCk7XG4gICAgcmV0dXJuIEJpZ0ludChiaWdJbnRTdHJpbmcpO1xuICB9XG4gIHByaXZhdGUgYXN5bmMgcnVuQ29tbWFuZChvcGVuU3NsQ29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBPcGVuU1NsIGNsYXNzIGlzIG5vdCBpbml0aWFsaXplZCEgUGxlYXNlIGNhbGwgT3BlblNTTC5pbml0KCkuJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbW1hbmQgPSBBcnJheS5pc0FycmF5KG9wZW5Tc2xDb21tYW5kKSA/IG9wZW5Tc2xDb21tYW5kIDogb3BlblNzbENvbW1hbmQuc3BsaXQoL1tcXHNdezEsfS9nKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgY29uc3Qgd2FzaSA9IG5ldyBXQVNJKHtcbiAgICAgIGFyZ3M6IGNvbW1hbmQsXG4gICAgfSk7XG5cbiAgICAvLyBJbnN0YW50aWF0ZSB0aGUgV0FTSSBtb2R1bGVcbiAgICAvLyBjYW5ub3QgdXNlIHdhc2kuaW5zdGFudGlhdGUobW9kdWxlLCB7fSk7IGR1ZSB0byB0aGUgc2l6ZSBvZiB0aGUgbW9kdWxlXG4gICAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0aGlzLndhTW9kdWxlLCB7XG4gICAgICAuLi53YXNpLmdldEltcG9ydHModGhpcy53YU1vZHVsZSksXG4gICAgfSk7XG4gICAgLy8gUnVuIHRoZSBzdGFydCBmdW5jdGlvblxuICAgIHdhc2kuc3RhcnQoaW5zdGFuY2UpO1xuICAgIHJldHVybiB3YXNpLmdldFN0ZG91dFN0cmluZygpO1xuICB9XG59XG4iXX0=
|
package/dist/src/safePrime.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safePrime.d.ts","sourceRoot":"","sources":["../../src/safePrime.ts"],"names":[],"mappings":"AAEA,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpG;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAO1G"}
|
package/dist/src/safePrime.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateSafePrime = generateSafePrime;
|
|
4
|
-
exports.generateSafePrimes = generateSafePrimes;
|
|
5
|
-
const openssl_1 = require("./openssl");
|
|
6
|
-
async function generateSafePrime(bitlength, openSSLBytes) {
|
|
7
|
-
const openSSL = new openssl_1.OpenSSL();
|
|
8
|
-
await openSSL.init(openSSLBytes);
|
|
9
|
-
return openSSL.generateSafePrime(bitlength);
|
|
10
|
-
}
|
|
11
|
-
async function generateSafePrimes(bitLengths, openSSLBytes) {
|
|
12
|
-
const openSSL = new openssl_1.OpenSSL();
|
|
13
|
-
await openSSL.init(openSSLBytes);
|
|
14
|
-
const promises = bitLengths.map((bitlength) => {
|
|
15
|
-
return openSSL.generateSafePrime(bitlength);
|
|
16
|
-
});
|
|
17
|
-
return await Promise.all(promises);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZVByaW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NhZmVQcmltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDhDQUlDO0FBRUQsZ0RBT0M7QUFmRCx1Q0FBb0M7QUFFN0IsS0FBSyxVQUFVLGlCQUFpQixDQUFDLFNBQWlCLEVBQUUsWUFBd0I7SUFDakYsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxFQUFFLENBQUM7SUFDOUIsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsVUFBb0IsRUFBRSxZQUF3QjtJQUNyRixNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztJQUM5QixNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsTUFBTSxRQUFRLEdBQXNCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUU7UUFDdkUsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3BlblNTTCB9IGZyb20gJy4vb3BlbnNzbCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVNhZmVQcmltZShiaXRsZW5ndGg6IG51bWJlciwgb3BlblNTTEJ5dGVzOiBVaW50OEFycmF5KTogUHJvbWlzZTxiaWdpbnQ+IHtcbiAgY29uc3Qgb3BlblNTTCA9IG5ldyBPcGVuU1NMKCk7XG4gIGF3YWl0IG9wZW5TU0wuaW5pdChvcGVuU1NMQnl0ZXMpO1xuICByZXR1cm4gb3BlblNTTC5nZW5lcmF0ZVNhZmVQcmltZShiaXRsZW5ndGgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVTYWZlUHJpbWVzKGJpdExlbmd0aHM6IG51bWJlcltdLCBvcGVuU1NMQnl0ZXM6IFVpbnQ4QXJyYXkpOiBQcm9taXNlPGJpZ2ludFtdPiB7XG4gIGNvbnN0IG9wZW5TU0wgPSBuZXcgT3BlblNTTCgpO1xuICBhd2FpdCBvcGVuU1NMLmluaXQob3BlblNTTEJ5dGVzKTtcbiAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YmlnaW50PltdID0gYml0TGVuZ3Rocy5tYXAoKGJpdGxlbmd0aDogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIG9wZW5TU0wuZ2VuZXJhdGVTYWZlUHJpbWUoYml0bGVuZ3RoKTtcbiAgfSk7XG4gIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59XG4iXX0=
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { BaseCurve as Curve } from './curves';
|
|
2
|
-
import { SchnorrProof } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Create a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
|
|
5
|
-
* @param A The curve point.
|
|
6
|
-
* @param a The discrete log of the curve point.
|
|
7
|
-
* @param curve The elliptic curve.
|
|
8
|
-
* @param additionalCtx Additional contextual information to associate with the proof.
|
|
9
|
-
* @returns The created proof.
|
|
10
|
-
*/
|
|
11
|
-
export declare function createSchnorrProof(A: bigint, a: bigint, curve: Curve, additionalCtx?: Buffer): SchnorrProof;
|
|
12
|
-
/**
|
|
13
|
-
* Verify a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
|
|
14
|
-
* @param A The curve point.
|
|
15
|
-
* @param proof The schnorr proof.
|
|
16
|
-
* @param curve The elliptic curve.
|
|
17
|
-
* @param additionalCtx Additional contextual information that is supposed to associate with the proof.
|
|
18
|
-
* @returns True if the proof checks out.
|
|
19
|
-
*/
|
|
20
|
-
export declare function verifySchnorrProof(A: bigint, proof: SchnorrProof, curve: Curve, additionalCtx?: Buffer): boolean;
|
|
21
|
-
//# sourceMappingURL=schnorrProof.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schnorrProof.d.ts","sourceRoot":"","sources":["../../src/schnorrProof.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,KAAK,EACZ,aAAa,GAAE,MAAwB,GACtC,YAAY,CAYd;AAuBD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,KAAK,EACZ,aAAa,GAAE,MAAwB,GACtC,OAAO,CAQT"}
|
package/dist/src/schnorrProof.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createSchnorrProof = createSchnorrProof;
|
|
4
|
-
exports.verifySchnorrProof = verifySchnorrProof;
|
|
5
|
-
/**
|
|
6
|
-
* Implementation of Schnorr Non-interactive Zero-Knowledge Proof.
|
|
7
|
-
* @see {@link https://datatracker.ietf.org/doc/rfc8235/}
|
|
8
|
-
*/
|
|
9
|
-
const crypto_1 = require("crypto");
|
|
10
|
-
const util_1 = require("./util");
|
|
11
|
-
/**
|
|
12
|
-
* Create a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
|
|
13
|
-
* @param A The curve point.
|
|
14
|
-
* @param a The discrete log of the curve point.
|
|
15
|
-
* @param curve The elliptic curve.
|
|
16
|
-
* @param additionalCtx Additional contextual information to associate with the proof.
|
|
17
|
-
* @returns The created proof.
|
|
18
|
-
*/
|
|
19
|
-
function createSchnorrProof(A, a, curve, additionalCtx = Buffer.from('')) {
|
|
20
|
-
const v = curve.scalarRandom();
|
|
21
|
-
const V = curve.basePointMult(v);
|
|
22
|
-
const c = nonInteractiveChallenge(V, A, curve, additionalCtx);
|
|
23
|
-
const r = curve.scalarSub(v, curve.scalarMult(a, c));
|
|
24
|
-
return {
|
|
25
|
-
vPoint: V,
|
|
26
|
-
r: r,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Calculate challenge for NIZK schnorr proof using Fiat-Shamir transform.
|
|
31
|
-
*
|
|
32
|
-
* @param V The point/public value corresponding to the random scalar value v chosen by the prover.
|
|
33
|
-
* @param A The point to be proved.
|
|
34
|
-
* @param curve The elliptic curve.
|
|
35
|
-
* @param additionalCtx Additional contextual information to associate with the proof.
|
|
36
|
-
* @returns The calculated challenge.
|
|
37
|
-
*/
|
|
38
|
-
function nonInteractiveChallenge(V, A, curve, additionalCtx) {
|
|
39
|
-
const G = curve.basePointMult(BigInt(1));
|
|
40
|
-
const hash = (0, crypto_1.createHash)('sha256');
|
|
41
|
-
hash.update((0, util_1.bigIntToBufferBE)(G, 32));
|
|
42
|
-
hash.update((0, util_1.bigIntToBufferBE)(V, 32));
|
|
43
|
-
hash.update((0, util_1.bigIntToBufferBE)(A, 32));
|
|
44
|
-
hash.update(additionalCtx);
|
|
45
|
-
return (0, util_1.bigIntFromBufferBE)(hash.digest());
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Verify a Schnorr Proof of knowledge of the discrete log of an Elliptic-curve point.
|
|
49
|
-
* @param A The curve point.
|
|
50
|
-
* @param proof The schnorr proof.
|
|
51
|
-
* @param curve The elliptic curve.
|
|
52
|
-
* @param additionalCtx Additional contextual information that is supposed to associate with the proof.
|
|
53
|
-
* @returns True if the proof checks out.
|
|
54
|
-
*/
|
|
55
|
-
function verifySchnorrProof(A, proof, curve, additionalCtx = Buffer.from('')) {
|
|
56
|
-
const c = nonInteractiveChallenge(proof.vPoint, A, curve, additionalCtx);
|
|
57
|
-
const rG = curve.basePointMult(proof.r);
|
|
58
|
-
const cA = curve.pointMultiply(A, curve.scalarReduce(c));
|
|
59
|
-
return proof.vPoint === curve.pointAdd(rG, cA);
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nobm9yclByb29mLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaG5vcnJQcm9vZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxnREFpQkM7QUErQkQsZ0RBYUM7QUE5RUQ7OztHQUdHO0FBQ0gsbUNBQW9DO0FBR3BDLGlDQUE4RDtBQUU5RDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2hDLENBQVMsRUFDVCxDQUFTLEVBQ1QsS0FBWSxFQUNaLGdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqQyxNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUU5RCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxNQUFNLEVBQUUsQ0FBQztRQUNULENBQUMsRUFBRSxDQUFDO0tBQ0wsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsdUJBQXVCLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFZLEVBQUUsYUFBcUI7SUFDeEYsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6QyxNQUFNLElBQUksR0FBRyxJQUFBLG1CQUFVLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSx1QkFBZ0IsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsdUJBQWdCLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUzQixPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsQ0FBUyxFQUNULEtBQW1CLEVBQ25CLEtBQVksRUFDWixnQkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdkMsTUFBTSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXpFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV6RCxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgU2Nobm9yciBOb24taW50ZXJhY3RpdmUgWmVyby1Lbm93bGVkZ2UgUHJvb2YuXG4gKiBAc2VlIHtAbGluayBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9yZmM4MjM1L31cbiAqL1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBCYXNlQ3VydmUgYXMgQ3VydmUgfSBmcm9tICcuL2N1cnZlcyc7XG5pbXBvcnQgeyBTY2hub3JyUHJvb2YgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJCRSwgYmlnSW50VG9CdWZmZXJCRSB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQ3JlYXRlIGEgU2Nobm9yciBQcm9vZiBvZiBrbm93bGVkZ2Ugb2YgdGhlIGRpc2NyZXRlIGxvZyBvZiBhbiBFbGxpcHRpYy1jdXJ2ZSBwb2ludC5cbiAqIEBwYXJhbSBBIFRoZSBjdXJ2ZSBwb2ludC5cbiAqIEBwYXJhbSBhIFRoZSBkaXNjcmV0ZSBsb2cgb2YgdGhlIGN1cnZlIHBvaW50LlxuICogQHBhcmFtIGN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZS5cbiAqIEBwYXJhbSBhZGRpdGlvbmFsQ3R4IEFkZGl0aW9uYWwgY29udGV4dHVhbCBpbmZvcm1hdGlvbiB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBwcm9vZi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjaG5vcnJQcm9vZihcbiAgQTogYmlnaW50LFxuICBhOiBiaWdpbnQsXG4gIGN1cnZlOiBDdXJ2ZSxcbiAgYWRkaXRpb25hbEN0eDogQnVmZmVyID0gQnVmZmVyLmZyb20oJycpXG4pOiBTY2hub3JyUHJvb2Yge1xuICBjb25zdCB2ID0gY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gIGNvbnN0IFYgPSBjdXJ2ZS5iYXNlUG9pbnRNdWx0KHYpO1xuXG4gIGNvbnN0IGMgPSBub25JbnRlcmFjdGl2ZUNoYWxsZW5nZShWLCBBLCBjdXJ2ZSwgYWRkaXRpb25hbEN0eCk7XG5cbiAgY29uc3QgciA9IGN1cnZlLnNjYWxhclN1Yih2LCBjdXJ2ZS5zY2FsYXJNdWx0KGEsIGMpKTtcblxuICByZXR1cm4ge1xuICAgIHZQb2ludDogVixcbiAgICByOiByLFxuICB9O1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBjaGFsbGVuZ2UgZm9yIE5JWksgc2Nobm9yciBwcm9vZiB1c2luZyBGaWF0LVNoYW1pciB0cmFuc2Zvcm0uXG4gKlxuICogQHBhcmFtIFYgVGhlIHBvaW50L3B1YmxpYyB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSByYW5kb20gc2NhbGFyIHZhbHVlIHYgY2hvc2VuIGJ5IHRoZSBwcm92ZXIuXG4gKiBAcGFyYW0gQSBUaGUgcG9pbnQgdG8gYmUgcHJvdmVkLlxuICogQHBhcmFtIGN1cnZlIFRoZSBlbGxpcHRpYyBjdXJ2ZS5cbiAqIEBwYXJhbSBhZGRpdGlvbmFsQ3R4IEFkZGl0aW9uYWwgY29udGV4dHVhbCBpbmZvcm1hdGlvbiB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUaGUgY2FsY3VsYXRlZCBjaGFsbGVuZ2UuXG4gKi9cbmZ1bmN0aW9uIG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFY6IGJpZ2ludCwgQTogYmlnaW50LCBjdXJ2ZTogQ3VydmUsIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlcik6IGJpZ2ludCB7XG4gIGNvbnN0IEcgPSBjdXJ2ZS5iYXNlUG9pbnRNdWx0KEJpZ0ludCgxKSk7XG5cbiAgY29uc3QgaGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKEcsIDMyKSk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoViwgMzIpKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShBLCAzMikpO1xuICBoYXNoLnVwZGF0ZShhZGRpdGlvbmFsQ3R4KTtcblxuICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckJFKGhhc2guZGlnZXN0KCkpO1xufVxuXG4vKipcbiAqIFZlcmlmeSBhIFNjaG5vcnIgUHJvb2Ygb2Yga25vd2xlZGdlIG9mIHRoZSBkaXNjcmV0ZSBsb2cgb2YgYW4gRWxsaXB0aWMtY3VydmUgcG9pbnQuXG4gKiBAcGFyYW0gQSBUaGUgY3VydmUgcG9pbnQuXG4gKiBAcGFyYW0gcHJvb2YgVGhlIHNjaG5vcnIgcHJvb2YuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRoYXQgaXMgc3VwcG9zZWQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcHJvb2YgY2hlY2tzIG91dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNjaG5vcnJQcm9vZihcbiAgQTogYmlnaW50LFxuICBwcm9vZjogU2Nobm9yclByb29mLFxuICBjdXJ2ZTogQ3VydmUsXG4gIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCcnKVxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IGMgPSBub25JbnRlcmFjdGl2ZUNoYWxsZW5nZShwcm9vZi52UG9pbnQsIEEsIGN1cnZlLCBhZGRpdGlvbmFsQ3R4KTtcblxuICBjb25zdCByRyA9IGN1cnZlLmJhc2VQb2ludE11bHQocHJvb2Yucik7XG5cbiAgY29uc3QgY0EgPSBjdXJ2ZS5wb2ludE11bHRpcGx5KEEsIGN1cnZlLnNjYWxhclJlZHVjZShjKSk7XG5cbiAgcmV0dXJuIHByb29mLnZQb2ludCA9PT0gY3VydmUucG9pbnRBZGQockcsIGNBKTtcbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shamir/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
package/dist/src/shamir/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
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("./types"), exports);
|
|
18
|
-
__exportStar(require("./shamir"), exports);
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhbWlyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYW1pcic7XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { BaseCurve } from '../curves';
|
|
2
|
-
import { SplitSecret } from './types';
|
|
3
|
-
export declare class Shamir {
|
|
4
|
-
curve: BaseCurve;
|
|
5
|
-
constructor(curve: BaseCurve);
|
|
6
|
-
/**
|
|
7
|
-
* Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
|
|
8
|
-
* ways. The split secret requires `threshold` shares to be reconstructed.
|
|
9
|
-
*
|
|
10
|
-
* @param secret secret to split
|
|
11
|
-
* @param threshold share threshold required to reconstruct secret
|
|
12
|
-
* @param numShares total number of shares to split secret into
|
|
13
|
-
* @param indices optional indices which can be used while generating the shares
|
|
14
|
-
* @param salt optional salt which could be used while generating the shares
|
|
15
|
-
* @returns Dictionary containing `shares`, a dictionary where each key is an int
|
|
16
|
-
* in the range 1<=x<=numShares representing that share's free term, and `v`, an
|
|
17
|
-
* array of proofs to be shared with all participants.
|
|
18
|
-
*/
|
|
19
|
-
split(secret: bigint, threshold: number, numShares: number, indices?: Array<number>, salt?: bigint): SplitSecret;
|
|
20
|
-
/**
|
|
21
|
-
* Verify a VSS share.
|
|
22
|
-
*
|
|
23
|
-
* @param u Secret share received from other party.
|
|
24
|
-
* @param v Verification values received from other party.
|
|
25
|
-
* @param index Verifier's index.
|
|
26
|
-
* @returns True on success; otherwise throws Error.
|
|
27
|
-
*/
|
|
28
|
-
verify(u: bigint, v: Array<bigint>, index: number): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Reconstitute a secret from a dictionary of shares. The number of shares must
|
|
31
|
-
* be equal to `t` to reconstitute the original secret.
|
|
32
|
-
*
|
|
33
|
-
* @param shares dictionary of shares. each key is the free term of the share
|
|
34
|
-
* @returns secret
|
|
35
|
-
*/
|
|
36
|
-
combine(shares: Record<number, bigint>): bigint;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=shamir.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shamir.d.ts","sourceRoot":"","sources":["../../../src/shamir/shamir.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,qBAAa,MAAM;IACjB,KAAK,EAAE,SAAS,CAAC;gBAEL,KAAK,EAAE,SAAS;IAI5B;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,SAAY,GAAG,WAAW;IA8CnH;;;;;;;OAOG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAsB3D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;CA+BhD"}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Shamir = void 0;
|
|
7
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
-
const util_1 = require("../util");
|
|
9
|
-
class Shamir {
|
|
10
|
-
constructor(curve) {
|
|
11
|
-
this.curve = curve;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Perform Shamir sharing on the secret `secret` to the degree `threshold - 1` split `numShares`
|
|
15
|
-
* ways. The split secret requires `threshold` shares to be reconstructed.
|
|
16
|
-
*
|
|
17
|
-
* @param secret secret to split
|
|
18
|
-
* @param threshold share threshold required to reconstruct secret
|
|
19
|
-
* @param numShares total number of shares to split secret into
|
|
20
|
-
* @param indices optional indices which can be used while generating the shares
|
|
21
|
-
* @param salt optional salt which could be used while generating the shares
|
|
22
|
-
* @returns Dictionary containing `shares`, a dictionary where each key is an int
|
|
23
|
-
* in the range 1<=x<=numShares representing that share's free term, and `v`, an
|
|
24
|
-
* array of proofs to be shared with all participants.
|
|
25
|
-
*/
|
|
26
|
-
split(secret, threshold, numShares, indices, salt = BigInt(0)) {
|
|
27
|
-
let bigIndices;
|
|
28
|
-
if (indices) {
|
|
29
|
-
bigIndices = indices.map((i) => {
|
|
30
|
-
if (i < 1) {
|
|
31
|
-
throw new Error('Invalid value supplied for indices');
|
|
32
|
-
}
|
|
33
|
-
return BigInt(i);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
// make range(1, n + 1)
|
|
38
|
-
bigIndices = Array(numShares)
|
|
39
|
-
.fill(null)
|
|
40
|
-
.map((_, i) => BigInt(i + 1));
|
|
41
|
-
}
|
|
42
|
-
if (threshold < 2) {
|
|
43
|
-
throw new Error('Threshold cannot be less than two');
|
|
44
|
-
}
|
|
45
|
-
if (threshold > numShares) {
|
|
46
|
-
throw new Error('Threshold cannot be greater than the total number of shares');
|
|
47
|
-
}
|
|
48
|
-
const coefs = [];
|
|
49
|
-
const v = [];
|
|
50
|
-
for (let ind = 0; ind < threshold - 1; ind++) {
|
|
51
|
-
const coeff = (0, util_1.clamp)((0, util_1.bigIntFromBufferLE)(crypto_1.default.createHmac('sha256', ind.toString(10)).update((0, util_1.bigIntToBufferLE)(secret, 32)).digest()));
|
|
52
|
-
coefs.push(coeff);
|
|
53
|
-
v.unshift(this.curve.basePointMult(coeff));
|
|
54
|
-
}
|
|
55
|
-
coefs.push(secret);
|
|
56
|
-
const shares = {};
|
|
57
|
-
for (let ind = 0; ind < bigIndices.length; ind++) {
|
|
58
|
-
const x = bigIndices[ind];
|
|
59
|
-
let partial = coefs[0];
|
|
60
|
-
for (let other = 1; other < coefs.length; other++) {
|
|
61
|
-
partial = this.curve.scalarAdd(coefs[other], this.curve.scalarMult(partial, x));
|
|
62
|
-
}
|
|
63
|
-
shares[parseInt(x.toString(), 10)] = partial;
|
|
64
|
-
}
|
|
65
|
-
return { shares, v };
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Verify a VSS share.
|
|
69
|
-
*
|
|
70
|
-
* @param u Secret share received from other party.
|
|
71
|
-
* @param v Verification values received from other party.
|
|
72
|
-
* @param index Verifier's index.
|
|
73
|
-
* @returns True on success; otherwise throws Error.
|
|
74
|
-
*/
|
|
75
|
-
verify(u, v, index) {
|
|
76
|
-
if (v.length < 2) {
|
|
77
|
-
throw new Error('Threshold cannot be less than two');
|
|
78
|
-
}
|
|
79
|
-
if (index < 1) {
|
|
80
|
-
throw new Error('Invalid value supplied for index');
|
|
81
|
-
}
|
|
82
|
-
const i = BigInt(index);
|
|
83
|
-
let x = v[0];
|
|
84
|
-
let t = BigInt(1);
|
|
85
|
-
for (const vsj of v.slice(1)) {
|
|
86
|
-
t = this.curve.scalarMult(t, i);
|
|
87
|
-
const vjt = this.curve.pointMultiply(vsj, t);
|
|
88
|
-
x = this.curve.pointAdd(x, vjt);
|
|
89
|
-
}
|
|
90
|
-
const sigmaG = this.curve.basePointMult(u);
|
|
91
|
-
if (x !== sigmaG) {
|
|
92
|
-
throw new Error('Could not verify share');
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Reconstitute a secret from a dictionary of shares. The number of shares must
|
|
98
|
-
* be equal to `t` to reconstitute the original secret.
|
|
99
|
-
*
|
|
100
|
-
* @param shares dictionary of shares. each key is the free term of the share
|
|
101
|
-
* @returns secret
|
|
102
|
-
*/
|
|
103
|
-
combine(shares) {
|
|
104
|
-
try {
|
|
105
|
-
let s = BigInt(0);
|
|
106
|
-
for (const i in shares) {
|
|
107
|
-
const yi = shares[i];
|
|
108
|
-
const xi = BigInt(i);
|
|
109
|
-
let num = BigInt(1);
|
|
110
|
-
let denum = BigInt(1);
|
|
111
|
-
for (const j in shares) {
|
|
112
|
-
const xj = BigInt(j);
|
|
113
|
-
if (xi !== xj) {
|
|
114
|
-
num = this.curve.scalarMult(num, xj);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
for (const j in shares) {
|
|
118
|
-
const xj = BigInt(j);
|
|
119
|
-
if (xi !== xj) {
|
|
120
|
-
denum = this.curve.scalarMult(denum, this.curve.scalarSub(xj, xi));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
const inverted = this.curve.scalarInvert(denum);
|
|
124
|
-
const innerMultiplied = this.curve.scalarMult(num, inverted);
|
|
125
|
-
const multiplied = this.curve.scalarMult(innerMultiplied, yi);
|
|
126
|
-
s = this.curve.scalarAdd(multiplied, s);
|
|
127
|
-
}
|
|
128
|
-
return s;
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
131
|
-
throw new Error('Failed to combine Shamir shares , ' + error);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
exports.Shamir = Shamir;
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhbWlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NoYW1pci9zaGFtaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRzVCLGtDQUFzRTtBQUV0RSxNQUFhLE1BQU07SUFHakIsWUFBWSxLQUFnQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsS0FBSyxDQUFDLE1BQWMsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsT0FBdUIsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQXlCLENBQUM7UUFDOUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztnQkFDRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sdUJBQXVCO1lBQ3ZCLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO2lCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxJQUFJLFNBQVMsR0FBRyxTQUFTLEVB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QUNkLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3JFLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzlELENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF0SUQsd0JBc0lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgQmFzZUN1cnZlIH0gZnJvbSAnLi4vY3VydmVzJztcbmltcG9ydCB7IFNwbGl0U2VjcmV0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBiaWdJbnRGcm9tQnVmZmVyTEUsIGJpZ0ludFRvQnVmZmVyTEUsIGNsYW1wIH0gZnJvbSAnLi4vdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBTaGFtaXIge1xuICBjdXJ2ZTogQmFzZUN1cnZlO1xuXG4gIGNvbnN0cnVjdG9yKGN1cnZlOiBCYXNlQ3VydmUpIHtcbiAgICB0aGlzLmN1cnZlID0gY3VydmU7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBTaGFtaXIgc2hhcmluZyBvbiB0aGUgc2VjcmV0IGBzZWNyZXRgIHRvIHRoZSBkZWdyZWUgYHRocmVzaG9sZCAtIDFgIHNwbGl0IGBudW1TaGFyZXNgXG4gICAqIHdheXMuIFRoZSBzcGxpdCBzZWNyZXQgcmVxdWlyZXMgYHRocmVzaG9sZGAgc2hhcmVzIHRvIGJlIHJlY29uc3RydWN0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBzZWNyZXQgc2VjcmV0IHRvIHNwbGl0XG4gICAqIEBwYXJhbSB0aHJlc2hvbGQgc2hhcmUgdGhyZXNob2xkIHJlcXVpcmVkIHRvIHJlY29uc3RydWN0IHNlY3JldFxuICAgKiBAcGFyYW0gbnVtU2hhcmVzIHRvdGFsIG51bWJlciBvZiBzaGFyZXMgdG8gc3BsaXQgc2VjcmV0IGludG9cbiAgICogQHBhcmFtIGluZGljZXMgb3B0aW9uYWwgaW5kaWNlcyB3aGljaCBjYW4gYmUgdXNlZCB3aGlsZSBnZW5lcmF0aW5nIHRoZSBzaGFyZXNcbiAgICogQHBhcmFtIHNhbHQgb3B0aW9uYWwgc2FsdCB3aGljaCBjb3VsZCBiZSB1c2VkIHdoaWxlIGdlbmVyYXRpbmcgdGhlIHNoYXJlc1xuICAgKiBAcmV0dXJucyBEaWN0aW9uYXJ5IGNvbnRhaW5pbmcgYHNoYXJlc2AsIGEgZGljdGlvbmFyeSB3aGVyZSBlYWNoIGtleSBpcyBhbiBpbnRcbiAgICogaW4gdGhlIHJhbmdlIDE8PXg8PW51bVNoYXJlcyByZXByZXNlbnRpbmcgdGhhdCBzaGFyZSdzIGZyZWUgdGVybSwgYW5kIGB2YCwgYW5cbiAgICogYXJyYXkgb2YgcHJvb2ZzIHRvIGJlIHNoYXJlZCB3aXRoIGFsbCBwYXJ0aWNpcGFudHMuXG4gICAqL1xuICBzcGxpdChzZWNyZXQ6IGJpZ2ludCwgdGhyZXNob2xkOiBudW1iZXIsIG51bVNoYXJlczogbnVtYmVyLCBpbmRpY2VzPzogQXJyYXk8bnVtYmVyPiwgc2FsdCA9IEJpZ0ludCgwKSk6IFNwbGl0U2VjcmV0IHtcbiAgICBsZXQgYmlnSW5kaWNlczogQXJyYXk8YmlnaW50PjtcbiAgICBpZiAoaW5kaWNlcykge1xuICAgICAgYmlnSW5kaWNlcyA9IGluZGljZXMubWFwKChpKSA9PiB7XG4gICAgICAgIGlmIChpIDwgMSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBzdXBwbGllZCBmb3IgaW5kaWNlcycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBCaWdJbnQoaSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbWFrZSByYW5nZSgxLCBuICsgMSlcbiAgICAgIGJpZ0luZGljZXMgPSBBcnJheShudW1TaGFyZXMpXG4gICAgICAgIC5maWxsKG51bGwpXG4gICAgICAgIC5tYXAoKF8sIGkpID0+IEJpZ0ludChpICsgMSkpO1xuICAgIH1cbiAgICBpZiAodGhyZXNob2xkIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaHJlc2hvbGQgY2Fubm90IGJlIGxlc3MgdGhhbiB0d28nKTtcbiAgICB9XG5cbiAgICBpZiAodGhyZXNob2xkID4gbnVtU2hhcmVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RocmVzaG9sZCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2hhcmVzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29lZnM6IGJpZ2ludFtdID0gW107XG4gICAgY29uc3QgdjogQXJyYXk8YmlnaW50PiA9IFtdO1xuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IHRocmVzaG9sZCAtIDE7IGluZCsrKSB7XG4gICAgICBjb25zdCBjb2VmZiA9IGNsYW1wKFxuICAgICAgICBiaWdJbnRGcm9tQnVmZmVyTEUoY3J5cHRvLmNyZWF0ZUhtYWMoJ3NoYTI1NicsIGluZC50b1N0cmluZygxMCkpLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckxFKHNlY3JldCwgMzIpKS5kaWdlc3QoKSlcbiAgICAgICk7XG4gICAgICBjb2Vmcy5wdXNoKGNvZWZmKTtcbiAgICAgIHYudW5zaGlmdCh0aGlzLmN1cnZlLmJhc2VQb2ludE11bHQoY29lZmYpKTtcbiAgICB9XG4gICAgY29lZnMucHVzaChzZWNyZXQpO1xuXG4gICAgY29uc3Qgc2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBiaWdpbnQ+ID0ge307XG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgYmlnSW5kaWNlcy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICBjb25zdCB4ID0gYmlnSW5kaWNlc1tpbmRdO1xuICAgICAgbGV0IHBhcnRpYWwgPSBjb2Vmc1swXTtcbiAgICAgIGZvciAobGV0IG90aGVyID0gMTsgb3RoZXIgPCBjb2Vmcy5sZW5ndGg7IG90aGVyKyspIHtcbiAgICAgICAgcGFydGlhbCA9IHRoaXMuY3VydmUuc2NhbGFyQWRkKGNvZWZzW290aGVyXSwgdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KHBhcnRpYWwsIHgpKTtcbiAgICAgIH1cbiAgICAgIHNoYXJlc1twYXJzZUludCh4LnRvU3RyaW5nKCksIDEwKV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgICByZXR1cm4geyBzaGFyZXMsIHYgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgYSBWU1Mgc2hhcmUuXG4gICAqXG4gICAqIEBwYXJhbSB1IFNlY3JldCBzaGFyZSByZWNlaXZlZCBmcm9tIG90aGVyIHBhcnR5LlxuICAgKiBAcGFyYW0gdiBWZXJpZmljYXRpb24gdmFsdWVzIHJlY2VpdmVkIGZyb20gb3RoZXIgcGFydHkuXG4gICAqIEBwYXJhbSBpbmRleCBWZXJpZmllcidzIGluZGV4LlxuICAgKiBAcmV0dXJucyBUcnVlIG9uIHN1Y2Nlc3M7IG90aGVyd2lzZSB0aHJvd3MgRXJyb3IuXG4gICAqL1xuICB2ZXJpZnkodTogYmlnaW50LCB2OiBBcnJheTxiaWdpbnQ+LCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHYubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaHJlc2hvbGQgY2Fubm90IGJlIGxlc3MgdGhhbiB0d28nKTtcbiAgICB9XG4gICAgaWYgKGluZGV4IDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIHN1cHBsaWVkIGZvciBpbmRleCcpO1xuICAgIH1cbiAgICBjb25zdCBpID0gQmlnSW50KGluZGV4KTtcbiAgICBsZXQgeCA9IHZbMF07XG4gICAgbGV0IHQgPSBCaWdJbnQoMSk7XG4gICAgZm9yIChjb25zdCB2c2ogb2Ygdi5zbGljZSgxKSkge1xuICAgICAgdCA9IHRoaXMuY3VydmUuc2NhbGFyTXVsdCh0LCBpKTtcbiAgICAgIGNvbnN0IHZqdCA9IHRoaXMuY3VydmUucG9pbnRNdWx0aXBseSh2c2osIHQpO1xuICAgICAgeCA9IHRoaXMuY3VydmUucG9pbnRBZGQoeCwgdmp0KTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbWFHID0gdGhpcy5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHUpO1xuICAgIGlmICh4ICE9PSBzaWdtYUcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHZlcmlmeSBzaGFyZScpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvbnN0aXR1dGUgYSBzZWNyZXQgZnJvbSBhIGRpY3Rpb25hcnkgb2Ygc2hhcmVzLiBUaGUgbnVtYmVyIG9mIHNoYXJlcyBtdXN0XG4gICAqIGJlIGVxdWFsIHRvIGB0YCB0byByZWNvbnN0aXR1dGUgdGhlIG9yaWdpbmFsIHNlY3JldC5cbiAgICpcbiAgICogQHBhcmFtIHNoYXJlcyBkaWN0aW9uYXJ5IG9mIHNoYXJlcy4gZWFjaCBrZXkgaXMgdGhlIGZyZWUgdGVybSBvZiB0aGUgc2hhcmVcbiAgICogQHJldHVybnMgc2VjcmV0XG4gICAqL1xuICBjb21iaW5lKHNoYXJlczogUmVjb3JkPG51bWJlciwgYmlnaW50Pik6IGJpZ2ludCB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBzID0gQmlnSW50KDApO1xuICAgICAgZm9yIChjb25zdCBpIGluIHNoYXJlcykge1xuICAgICAgICBjb25zdCB5aSA9IHNoYXJlc1tpXTtcbiAgICAgICAgY29uc3QgeGkgPSBCaWdJbnQoaSk7XG4gICAgICAgIGxldCBudW0gPSBCaWdJbnQoMSk7XG4gICAgICAgIGxldCBkZW51bSA9IEJpZ0ludCgxKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGogaW4gc2hhcmVzKSB7XG4gICAgICAgICAgY29uc3QgeGogPSBCaWdJbnQoaik7XG4gICAgICAgICAgaWYgKHhpICE9PSB4aikge1xuICAgICAgICAgICAgbnVtID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KG51bSwgeGopO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGogaW4gc2hhcmVzKSB7XG4gICAgICAgICAgY29uc3QgeGogPSBCaWdJbnQoaik7XG4gICAgICAgICAgaWYgKHhpICE9PSB4aikge1xuICAgICAgICAgICAgZGVudW0gPSB0aGlzLmN1cnZlLnNjYWxhck11bHQoZGVudW0sIHRoaXMuY3VydmUuc2NhbGFyU3ViKHhqLCB4aSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnZlcnRlZCA9IHRoaXMuY3VydmUuc2NhbGFySW52ZXJ0KGRlbnVtKTtcbiAgICAgICAgY29uc3QgaW5uZXJNdWx0aXBsaWVkID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KG51bSwgaW52ZXJ0ZWQpO1xuICAgICAgICBjb25zdCBtdWx0aXBsaWVkID0gdGhpcy5jdXJ2ZS5zY2FsYXJNdWx0KGlubmVyTXVsdGlwbGllZCwgeWkpO1xuICAgICAgICBzID0gdGhpcy5jdXJ2ZS5zY2FsYXJBZGQobXVsdGlwbGllZCwgcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY29tYmluZSBTaGFtaXIgc2hhcmVzICwgJyArIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shamir/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,EAAE,MAAM,EAAE,CAAC;CACb,CAAC"}
|
package/dist/src/shamir/types.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2hhbWlyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTcGxpdFNlY3JldCA9IHtcbiAgc2hhcmVzOiBSZWNvcmQ8bnVtYmVyLCBiaWdpbnQ+O1xuICB2OiBiaWdpbnRbXTtcbn07XG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * as EcdsaTypes from './types';
|
|
2
|
-
export * as EcdsaRangeProof from './rangeproof';
|
|
3
|
-
export * as EcdsaPaillierProof from './paillierproof';
|
|
4
|
-
export * as EcdsaZkVProof from './zkVProof';
|
|
5
|
-
export declare const minModulusBitLength = 3072;
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tss/ecdsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,kBAAkB,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
|