@reclaimprotocol/attestor-core 3.1.0 → 4.0.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/lib/avs/contracts/index.js +18 -8
- package/lib/avs/utils/tasks.d.ts +1 -1
- package/lib/client/create-claim.d.ts +2 -2
- package/lib/client/create-claim.js +89 -33
- package/lib/client/utils/client-socket.d.ts +3 -1
- package/lib/client/utils/client-socket.js +25 -8
- package/lib/config/index.d.ts +4 -0
- package/lib/config/index.js +8 -3
- package/lib/index.js +18 -8
- package/lib/proto/api.d.ts +80 -2
- package/lib/proto/api.js +853 -101
- package/lib/providers/http/index.js +221 -128
- package/lib/providers/http/utils.d.ts +3 -6
- package/lib/providers/http/utils.js +13 -11
- package/lib/providers/index.js +1 -3
- package/lib/scripts/generate-receipt.js +6 -3
- package/lib/scripts/generate-toprf-keys.d.ts +1 -0
- package/lib/scripts/generate-toprf-keys.js +23 -0
- package/lib/server/create-server.js +14 -7
- package/lib/server/handlers/claimTunnel.js +33 -10
- package/lib/server/handlers/createTunnel.js +44 -8
- package/lib/server/handlers/disconnectTunnel.js +2 -2
- package/lib/server/handlers/index.js +4 -2
- package/lib/server/handlers/init.js +17 -2
- package/lib/server/handlers/toprf.d.ts +2 -0
- package/lib/server/handlers/toprf.js +21 -0
- package/lib/server/socket.d.ts +5 -3
- package/lib/server/socket.js +25 -5
- package/lib/server/tunnels/make-tcp-tunnel.js +10 -24
- package/lib/server/utils/apm.js +1 -1
- package/lib/server/utils/assert-valid-claim-request.d.ts +2 -2
- package/lib/server/utils/assert-valid-claim-request.js +17 -9
- package/lib/server/utils/dns.d.ts +1 -0
- package/lib/server/utils/dns.js +22 -0
- package/lib/server/utils/generics.d.ts +1 -1
- package/lib/tests/describe-with-server.d.ts +0 -2
- package/lib/tests/describe-with-server.js +1 -4
- package/lib/tests/mock-provider-server.d.ts +1 -1
- package/lib/tests/test.auth.d.ts +1 -0
- package/lib/tests/test.auth.js +75 -0
- package/lib/tests/test.bgp-listener.d.ts +1 -0
- package/lib/tests/test.bgp-listener.js +169 -0
- package/lib/tests/test.claim-creation.js +100 -7
- package/lib/tests/test.http-parser.d.ts +1 -1
- package/lib/tests/test.http-parser.js +7 -5
- package/lib/tests/test.http-provider-utils.js +155 -30
- package/lib/tests/test.http-provider.js +50 -7
- package/lib/tests/test.zk.js +54 -4
- package/lib/tests/utils.d.ts +6 -0
- package/lib/tests/utils.js +16 -1
- package/lib/types/bgp.d.ts +11 -0
- package/lib/types/bgp.js +3 -0
- package/lib/types/claims.d.ts +14 -5
- package/lib/types/client.d.ts +30 -3
- package/lib/types/general.d.ts +12 -0
- package/lib/types/handlers.d.ts +4 -4
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +2 -1
- package/lib/types/providers.d.ts +9 -9
- package/lib/types/providers.gen.d.ts +12 -152
- package/lib/types/providers.gen.js +2 -6
- package/lib/types/zk.d.ts +11 -2
- package/lib/utils/auth.d.ts +7 -0
- package/lib/utils/auth.js +64 -0
- package/lib/utils/b64-json.d.ts +2 -0
- package/lib/utils/b64-json.js +23 -0
- package/lib/utils/bgp-listener.d.ts +7 -0
- package/lib/utils/bgp-listener.js +126 -0
- package/lib/utils/claims.js +3 -3
- package/lib/utils/generics.d.ts +5 -5
- package/lib/utils/generics.js +3 -3
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +3 -1
- package/lib/utils/redactions.d.ts +19 -6
- package/lib/utils/redactions.js +41 -4
- package/lib/utils/socket-base.d.ts +3 -2
- package/lib/utils/socket-base.js +7 -2
- package/lib/utils/ws.d.ts +5 -5
- package/lib/utils/ws.js +27 -10
- package/lib/utils/zk.d.ts +12 -7
- package/lib/utils/zk.js +197 -42
- package/lib/window-rpc/setup-window-rpc.js +29 -8
- package/lib/window-rpc/types.d.ts +16 -21
- package/lib/window-rpc/utils.d.ts +2 -1
- package/lib/window-rpc/utils.js +27 -1
- package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
- package/lib/window-rpc/window-rpc-zk.js +58 -45
- package/package.json +24 -22
|
@@ -233,19 +233,21 @@ function convertResponsePosToAbsolutePos(pos, bodyStartIdx, chunks) {
|
|
|
233
233
|
return bodyStartIdx + pos;
|
|
234
234
|
}
|
|
235
235
|
/**
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
* @param from
|
|
239
|
-
* @param to
|
|
240
|
-
* @param chunks
|
|
236
|
+
* If this reveal spans the boundary of two chunks, we'll
|
|
237
|
+
*
|
|
241
238
|
*/
|
|
242
239
|
function getRedactionsForChunkHeaders(from, to, chunks) {
|
|
243
240
|
const res = [];
|
|
244
|
-
if (chunks === null || chunks === void 0 ? void 0 : chunks.length) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
241
|
+
if (!(chunks === null || chunks === void 0 ? void 0 : chunks.length)) {
|
|
242
|
+
return res;
|
|
243
|
+
}
|
|
244
|
+
for (let i = 1; i < (chunks === null || chunks === void 0 ? void 0 : chunks.length); i++) {
|
|
245
|
+
const chunk = chunks[i];
|
|
246
|
+
if (chunk.fromIndex > from && chunk.fromIndex < to) {
|
|
247
|
+
res.push({
|
|
248
|
+
fromIndex: chunks[i - 1].toIndex,
|
|
249
|
+
toIndex: chunk.fromIndex,
|
|
250
|
+
});
|
|
249
251
|
}
|
|
250
252
|
}
|
|
251
253
|
return res;
|
|
@@ -355,4 +357,4 @@ function generateRequstAndResponseFromTranscript(transcript, tlsVersion) {
|
|
|
355
357
|
const res = parseHttpResponse(responsePackets);
|
|
356
358
|
return { req, res };
|
|
357
359
|
}
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHAvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdDQUF3Qzs7QUFpRHhDLGdEQU9DO0FBUUQsa0RBWUM7QUFRRCwwREFNQztBQVFELGdFQTRDQztBQUVELHNEQUVDO0FBRUQsMERBa0NDO0FBaUZELG9DQVFDO0FBUUQsMEVBa0JDO0FBU0Qsb0VBV0M7QUFFRCw4Q0FLQztBQUVELDhCQU1DO0FBU0Qsb0RBNEVDO0FBRUQsMEZBMEJDO0FBM2JELDhDQUE2RDtBQUM3RCwrQ0FRcUI7QUFDckIsaURBQXdDO0FBRXhDLHFDQUF1SjtBQVN2SixJQUFJLEdBQUcsQ0FBQTtBQUNQLElBQUksQ0FBQztJQUNKLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsSUFBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsR0FBRyxHQUFHLFNBQVMsQ0FBQTtRQUNmLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0FBQ0YsQ0FBQztBQUFDLFdBQUssQ0FBQztJQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRUQsSUFBSSxHQUFHLENBQUE7QUFFUCxJQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLGFBQWE7SUFDYixHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQTtBQUNuQixDQUFDO0tBQU0sQ0FBQztJQUNQLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdkIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQ2pDLElBQVksRUFDWixlQUF1QixFQUN2QixZQUFxQjtJQUVyQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcs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
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2h0dHAvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdDQUF3Qzs7QUFpRHhDLGdEQU9DO0FBUUQsa0RBWUM7QUFRRCwwREFNQztBQVFELGdFQTRDQztBQUVELHNEQUVDO0FBRUQsMERBa0NDO0FBaUZELG9DQVFDO0FBUUQsMEVBa0JDO0FBTUQsb0VBbUJDO0FBRUQsOENBS0M7QUFFRCw4QkFNQztBQVNELG9EQTRFQztBQUVELDBGQTBCQztBQWhjRCw4Q0FBNkQ7QUFDN0QsK0NBUXFCO0FBQ3JCLGlEQUF3QztBQUV4QyxxQ0FBdUo7QUFTdkosSUFBSSxHQUFHLENBQUE7QUFDUCxJQUFJLENBQUM7SUFDSixHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BCLElBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLEdBQUcsR0FBRyxTQUFTLENBQUE7UUFDZixNQUFNLElBQUksS0FBSyxFQUFFLENBQUE7SUFDbEIsQ0FBQztBQUNGLENBQUM7QUFBQyxXQUFLLENBQUM7SUFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFDbkQsQ0FBQztBQUVELElBQUksR0FBRyxDQUFBO0FBRVAsSUFBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxhQUFhO0lBQ2IsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7QUFDbkIsQ0FBQztLQUFNLENBQUM7SUFDUCxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGtCQUFrQixDQUNqQyxJQUFZLEVBQ1osZUFBdUIsRUFDdkIsWUFBcUI7SUFFckIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFH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
|
package/lib/providers/index.js
CHANGED
|
@@ -5,9 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.providers = void 0;
|
|
7
7
|
const http_1 = __importDefault(require("../providers/http"));
|
|
8
|
-
const httpb64_1 = __importDefault(require("../providers/httpb64"));
|
|
9
8
|
exports.providers = {
|
|
10
9
|
http: http_1.default,
|
|
11
|
-
httpb64: httpb64_1.default
|
|
12
10
|
};
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFxQztBQUd4QixRQUFBLFNBQVMsR0FFbEI7SUFDSCxJQUFJLEVBQUosY0FBSTtDQUNKLENBQUEifQ==
|
|
@@ -8,10 +8,12 @@ const utils_2 = require("../utils");
|
|
|
8
8
|
const env_1 = require("../utils/env");
|
|
9
9
|
require("../server/utils/config-env");
|
|
10
10
|
const __1 = require("..");
|
|
11
|
+
// tmp change till we move OPRF attestor to prod
|
|
11
12
|
const DEFAULT_ATTESTOR_HOST_PORT = 'wss://attestor.reclaimprotocol.org/ws';
|
|
12
13
|
const PRIVATE_KEY_HEX = (0, env_1.getEnvVariable)('PRIVATE_KEY_HEX')
|
|
13
14
|
// demo private key
|
|
14
15
|
|| '0x0123788edad59d7c013cdc85e4372f350f828e2cec62d9a2de4560e69aec7f89';
|
|
16
|
+
let server;
|
|
15
17
|
async function main(receiptParams) {
|
|
16
18
|
var _a, _b, _c, _d;
|
|
17
19
|
const paramsJson = receiptParams !== null && receiptParams !== void 0 ? receiptParams : (await getInputParameters());
|
|
@@ -21,7 +23,6 @@ async function main(receiptParams) {
|
|
|
21
23
|
(0, utils_2.assertValidateProviderParams)(paramsJson.name, paramsJson.params);
|
|
22
24
|
let attestorHostPort = (0, utils_1.getCliArgument)('attestor')
|
|
23
25
|
|| DEFAULT_ATTESTOR_HOST_PORT;
|
|
24
|
-
let server;
|
|
25
26
|
if (attestorHostPort === 'local') {
|
|
26
27
|
console.log('starting local attestor server...');
|
|
27
28
|
server = await (0, server_1.createServer)();
|
|
@@ -54,7 +55,6 @@ async function main(receiptParams) {
|
|
|
54
55
|
console.log('receipt:\n', transcriptStr);
|
|
55
56
|
const client = (0, __1.getAttestorClientFromPool)(attestorHostPort);
|
|
56
57
|
await client.terminateConnection();
|
|
57
|
-
server === null || server === void 0 ? void 0 : server.close();
|
|
58
58
|
}
|
|
59
59
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
60
|
async function getInputParameters() {
|
|
@@ -82,6 +82,9 @@ if (require.main === module) {
|
|
|
82
82
|
main()
|
|
83
83
|
.catch(err => {
|
|
84
84
|
console.error('error in receipt gen', err);
|
|
85
|
+
})
|
|
86
|
+
.finally(() => {
|
|
87
|
+
server === null || server === void 0 ? void 0 : server.close();
|
|
85
88
|
});
|
|
86
89
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVjZWlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dlbmVyYXRlLXJlY2VpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQ0Esb0JBc0RDO0FBeEZELDBDQUFzQztBQUN0Qyw2Q0FBa0Q7QUFDbEQsdUNBQTREO0FBQzVELHFDQUF3RDtBQUN4RCx1Q0FBOEM7QUFFOUMsdUNBQW9DO0FBQ3BDLDBCQVdXO0FBUVgsZ0RBQWdEO0FBQ2hELE1BQU0sMEJBQTBCLEdBQUcsdUNBQXVDLENBQUE7QUFDMUUsTUFBTSxlQUFlLEdBQUcsSUFBQSxvQkFBYyxFQUFDLGlCQUFpQixDQUFDO0lBQ3hELG1CQUFtQjtPQUNoQixvRUFBb0UsQ0FBQTtBQUV4RSxJQUFJLE1BQW1DLENBQUE7QUFFaEMsS0FBSyxVQUFVLElBQUksQ0FDekIsYUFBa0Q7O0lBRWxELE1BQU0sVUFBVSxHQUFHLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLENBQUMsTUFBTSxrQkFBa0IsRUFBRSxDQUFDLENBQUE7SUFDaEUsSUFBRyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxhQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ3pELENBQUM7SUFFRCxJQUFBLG9DQUE0QixFQUFTLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBRXhFLElBQUksZ0JBQWdCLEdBQUcsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQztXQUN2QywwQkFBMEIsQ0FBQTtJQUNwQyxJQUFHLGdCQUFnQixLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUNoRCxNQUFNLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtRQUM3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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const ethers_1 = require("ethers");
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const ENGINE = 'gnark';
|
|
6
|
+
const TOTAL_KEYS = 10;
|
|
7
|
+
const THRESHOLD = 1;
|
|
8
|
+
async function main() {
|
|
9
|
+
const op = (0, utils_1.makeDefaultOPRFOperator)('chacha20', ENGINE, utils_1.logger);
|
|
10
|
+
const { publicKey, privateKey, shares } = await op.generateThresholdKeys(TOTAL_KEYS, THRESHOLD);
|
|
11
|
+
logEnvValue('TOPRF_PUBLIC_KEY', publicKey);
|
|
12
|
+
logEnvValue('TOPRF_PRIVATE_KEY', privateKey);
|
|
13
|
+
for (const [i, share] of shares.entries()) {
|
|
14
|
+
console.log(`# Share ${i}`);
|
|
15
|
+
logEnvValue('TOPRF_SHARE_PUBLIC_KEY', share.publicKey);
|
|
16
|
+
logEnvValue('TOPRF_SHARE_PRIVATE_KEY', share.privateKey);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function logEnvValue(name, value) {
|
|
20
|
+
console.log(`${name}=${ethers_1.ethers.utils.hexlify(value)}`);
|
|
21
|
+
}
|
|
22
|
+
main();
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdG9wcmYta2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dlbmVyYXRlLXRvcHJmLWtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBK0I7QUFDL0IscUNBQTJEO0FBRTNELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQTtBQUN0QixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUE7QUFDckIsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFBO0FBRW5CLEtBQUssVUFBVSxJQUFJO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLElBQUEsK0JBQXVCLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFNLENBQUMsQ0FBQTtJQUM5RCxNQUFNLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxNQUFNLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDekQsV0FBVyxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUU1QyxLQUFJLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDM0IsV0FBVyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0RCxXQUFXLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pELENBQUM7QUFDRixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWlCO0lBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3RELENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQSJ9
|
|
@@ -11,10 +11,13 @@ const socket_1 = require("../server/socket");
|
|
|
11
11
|
const generics_1 = require("../server/utils/generics");
|
|
12
12
|
const keep_alive_1 = require("../server/utils/keep-alive");
|
|
13
13
|
const utils_1 = require("../utils");
|
|
14
|
+
const bgp_listener_1 = require("../utils/bgp-listener");
|
|
14
15
|
const env_1 = require("../utils/env");
|
|
15
16
|
const signatures_1 = require("../utils/signatures");
|
|
16
|
-
const ws_1 = require("ws");
|
|
17
|
+
const ws_1 = require("../utils/ws");
|
|
18
|
+
const ws_2 = require("ws");
|
|
17
19
|
const PORT = +((0, env_1.getEnvVariable)('PORT') || config_1.API_SERVER_PORT);
|
|
20
|
+
const DISABLE_BGP_CHECKS = (0, env_1.getEnvVariable)('DISABLE_BGP_CHECKS') === '1';
|
|
18
21
|
/**
|
|
19
22
|
* Creates the WebSocket API server,
|
|
20
23
|
* creates a fileserver to serve the browser RPC client,
|
|
@@ -23,7 +26,10 @@ const PORT = +((0, env_1.getEnvVariable)('PORT') || config_1.API_SERVER_PORT);
|
|
|
23
26
|
async function createServer(port = PORT) {
|
|
24
27
|
const http = (0, http_1.createServer)();
|
|
25
28
|
const serveBrowserRpc = (0, serve_static_1.default)('browser', { index: ['index.html'] });
|
|
26
|
-
const
|
|
29
|
+
const bgpListener = !DISABLE_BGP_CHECKS
|
|
30
|
+
? (0, bgp_listener_1.createBgpListener)(utils_1.logger.child({ service: 'bgp-listener' }))
|
|
31
|
+
: undefined;
|
|
32
|
+
const wss = new ws_2.WebSocketServer({ noServer: true });
|
|
27
33
|
http.on('upgrade', handleUpgrade.bind(wss));
|
|
28
34
|
http.on('request', (req, res) => {
|
|
29
35
|
var _a;
|
|
@@ -49,7 +55,7 @@ async function createServer(port = PORT) {
|
|
|
49
55
|
http.once('listening', () => resolve());
|
|
50
56
|
http.once('error', reject);
|
|
51
57
|
});
|
|
52
|
-
wss.on('connection', handleNewClient);
|
|
58
|
+
wss.on('connection', (ws, req) => handleNewClient(ws, req, bgpListener));
|
|
53
59
|
utils_1.logger.info({
|
|
54
60
|
port,
|
|
55
61
|
apiPath: config_1.WS_PATHNAME,
|
|
@@ -59,12 +65,13 @@ async function createServer(port = PORT) {
|
|
|
59
65
|
const wssClose = wss.close.bind(wss);
|
|
60
66
|
wss.close = (cb) => {
|
|
61
67
|
wssClose(() => http.close(cb));
|
|
68
|
+
bgpListener === null || bgpListener === void 0 ? void 0 : bgpListener.close();
|
|
62
69
|
};
|
|
63
70
|
return wss;
|
|
64
71
|
}
|
|
65
|
-
async function handleNewClient(ws, req) {
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
async function handleNewClient(ws, req, bgpListener) {
|
|
73
|
+
(0, ws_1.promisifySend)(ws);
|
|
74
|
+
const client = await socket_1.AttestorServerSocket.acceptConnection(ws, { req, bgpListener, logger: utils_1.logger });
|
|
68
75
|
// if initialisation fails, don't store the client
|
|
69
76
|
if (!client) {
|
|
70
77
|
return;
|
|
@@ -82,4 +89,4 @@ function handleUpgrade(request, socket, head) {
|
|
|
82
89
|
}
|
|
83
90
|
socket.destroy();
|
|
84
91
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2ZXIvY3JlYXRlLXNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVCQSxvQ0ErREM7QUF0RkQsK0JBQXdFO0FBQ3hFLGdFQUFzQztBQUN0Qyx1Q0FBK0U7QUFDL0UsOENBQXdEO0FBQ3hELHdEQUE4RDtBQUM5RCw0REFBMEQ7QUFFMUQscUNBQTRDO0FBQzVDLHlEQUEwRDtBQUMxRCx1Q0FBOEM7QUFDOUMscURBQW1FO0FBQ25FLHFDQUE0QztBQUU1QywyQkFBK0M7QUFFL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUEsb0JBQWMsRUFBQyxNQUFNLENBQUMsSUFBSSx3QkFBZSxDQUFDLENBQUE7QUFDekQsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLG9CQUFjLEVBQUMsb0JBQW9CLENBQUMsS0FBSyxHQUFHLENBQUE7QUFFdkU7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUk7SUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQkFBZ0IsR0FBRSxDQUFBO0lBQy9CLE1BQU0sZUFBZSxHQUFHLElBQUEsc0JBQVcsRUFDbEMsU0FBUyxFQUNULEVBQUUsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FDekIsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLENBQUMsa0JBQWtCO1FBQ3RDLENBQUMsQ0FBQyxJQUFBLGdDQUFpQixFQUFDLGNBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsU0FBUyxDQUFBO0lBRVosTUFBTSxHQUFHLEdBQUcsSUFBSSxvQkFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDbkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFOztRQUMvQixvREFBb0Q7UUFDcEQsSUFBRyxDQUFDLENBQUEsTUFBQSxHQUFHLENBQUMsR0FBRywwQ0FBRSxVQUFVLENBQUMsNkJBQW9CLENBQUMsQ0FBQSxFQUFFLENBQUM7WUFDL0MsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUE7WUFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUNwQixPQUFNO1FBQ1AsQ0FBQztRQUVELEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsNkJBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFBO1FBRTNELGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7O1lBQ2pDLElBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ1IsY0FBTSxDQUFDLEtBQUssQ0FDWCxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUNyQixzQkFBc0IsQ0FDdEIsQ0FBQTtZQUNGLENBQUM7WUFFRCxHQUFHLENBQUMsVUFBVSxHQUFHLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFVBQVUsbUNBQUksR0FBRyxDQUFBO1lBQ3ZDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsT0FBTyxtQ0FBSSxXQUFXLENBQUMsQ0FBQTtRQUNyQyxDQUFDLENBQUMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDakIsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLENBQUMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO0lBRXhFLGNBQU0sQ0FBQyxJQUFJLENBQ1Y7UUFDQyxJQUFJO1FBQ0osT0FBTyxFQUFFLG9CQUFXO1FBQ3BCLGNBQWMsRUFBRSw2QkFBb0I7UUFDcEMsYUFBYSxFQUFFLElBQUEsNkJBQWtCLEVBQ2hDLHlDQUE0QixDQUM1QjtLQUNELEVBQ0QscUJBQXFCLENBQ3JCLENBQUE7SUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNwQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDbEIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5QixXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQyxDQUFBO0lBRUQsT0FBTyxHQUFHLENBQUE7QUFDWCxDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FDN0IsRUFBYSxFQUNiLEdBQW9CLEVBQ3BCLFdBQW9DO0lBRXBDLElBQUEsa0JBQWEsRUFBQyxFQUFFLENBQUMsQ0FBQTtJQUNqQixNQUFNLE1BQU0sR0FBRyxNQUFNLDZCQUFvQixDQUFDLGdCQUFnQixDQUN6RCxFQUFFLEVBQ0YsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxjQUFNLEVBQUUsQ0FDcEMsQ0FBQTtJQUNELGtEQUFrRDtJQUNsRCxJQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFNO0lBQ1AsQ0FBQztJQUVELEVBQUUsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFBO0lBQ3hCLElBQUEseUJBQVksRUFBQyxFQUFFLEVBQUUsY0FBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FFckIsT0FBd0IsRUFDeEIsTUFBYyxFQUNkLElBQVk7SUFFWixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTVELElBQUcsUUFBUSxLQUFLLG9CQUFXLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ3JDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDakIsQ0FBQyJ9
|
|
@@ -3,13 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.claimTunnel = void 0;
|
|
4
4
|
const config_1 = require("../../config");
|
|
5
5
|
const api_1 = require("../../proto/api");
|
|
6
|
+
const apm_1 = require("../../server/utils/apm");
|
|
6
7
|
const assert_valid_claim_request_1 = require("../../server/utils/assert-valid-claim-request");
|
|
7
8
|
const generics_1 = require("../../server/utils/generics");
|
|
8
9
|
const utils_1 = require("../../utils");
|
|
9
|
-
const claimTunnel = async (claimRequest, { logger, client }) => {
|
|
10
|
-
var _a, _b, _c;
|
|
10
|
+
const claimTunnel = async (claimRequest, { tx, logger, client }) => {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
11
12
|
const { request, data: { timestampS } = {}, } = claimRequest;
|
|
12
13
|
const tunnel = client.getTunnel(request === null || request === void 0 ? void 0 : request.id);
|
|
14
|
+
try {
|
|
15
|
+
await tunnel.close();
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
logger.debug({ err }, 'error closing tunnel');
|
|
19
|
+
}
|
|
20
|
+
if (tx) {
|
|
21
|
+
const transcriptBytes = tunnel.transcript.reduce((acc, { message }) => acc + message.length, 0);
|
|
22
|
+
tx === null || tx === void 0 ? void 0 : tx.setLabel('transcriptBytes', transcriptBytes.toString());
|
|
23
|
+
}
|
|
13
24
|
// we throw an error for cases where the attestor cannot prove
|
|
14
25
|
// the user's request is faulty. For eg. if the user sends a
|
|
15
26
|
// "createRequest" that does not match the tunnel's actual
|
|
@@ -28,13 +39,23 @@ const claimTunnel = async (claimRequest, { logger, client }) => {
|
|
|
28
39
|
if (Math.floor(timestampS - now) > config_1.MAX_CLAIM_TIMESTAMP_DIFF_S) {
|
|
29
40
|
throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', `Timestamp provided ${timestampS} is too far off. Current time is ${now}`);
|
|
30
41
|
}
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
const assertTx = (_d = (0, apm_1.getApm)()) === null || _d === void 0 ? void 0 : _d.startTransaction('assertValidClaimRequest', { childOf: tx });
|
|
43
|
+
try {
|
|
44
|
+
const claim = await (0, assert_valid_claim_request_1.assertValidClaimRequest)(claimRequest, client.metadata, logger);
|
|
45
|
+
res.claim = {
|
|
46
|
+
...claim,
|
|
47
|
+
identifier: (0, utils_1.getIdentifierFromClaimInfo)(claim),
|
|
48
|
+
// hardcode for compatibility with V1 claims
|
|
49
|
+
epoch: 1
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
assertTx === null || assertTx === void 0 ? void 0 : assertTx.setOutcome('failure');
|
|
54
|
+
throw err;
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
assertTx === null || assertTx === void 0 ? void 0 : assertTx.end();
|
|
58
|
+
}
|
|
38
59
|
}
|
|
39
60
|
catch (err) {
|
|
40
61
|
logger.error({ err }, 'invalid claim request');
|
|
@@ -49,7 +70,9 @@ const claimTunnel = async (claimRequest, { logger, client }) => {
|
|
|
49
70
|
: new Uint8Array(),
|
|
50
71
|
resultSignature: await (0, generics_1.signAsAttestor)(api_1.ClaimTunnelResponse.encode(res).finish(), client.metadata.signatureType)
|
|
51
72
|
};
|
|
73
|
+
// remove tunnel from client -- to free up our mem
|
|
74
|
+
client.removeTunnel(request.id);
|
|
52
75
|
return res;
|
|
53
76
|
};
|
|
54
77
|
exports.claimTunnel = claimTunnel;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1UdW5uZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL2NsYWltVHVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1RDtBQUN2RCx1Q0FBbUQ7QUFDbkQsOENBQTZDO0FBQzdDLDRGQUE2RztBQUM3Ryx3REFBOEU7QUFFOUUscUNBQW1IO0FBRTVHLE1BQU0sV0FBVyxHQUE4QixLQUFLLEVBQzFELFlBQVksRUFDWixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLEVBQUU7O0lBQ0gsTUFBTSxFQUNMLE9BQU8sRUFDUCxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQ3pCLEdBQUcsWUFBWSxDQUFBO0lBQ2hCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUcsQ0FBQyxDQUFBO0lBQzdDLElBQUksQ0FBQztRQUNKLE1BQU0sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3JCLENBQUM7SUFBQyxPQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLHNCQUFzQixDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUVELElBQUcsRUFBRSxFQUFFLENBQUM7UUFDUCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDL0MsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQzFDLENBQUMsQ0FDRCxDQUFBO1FBQ0QsRUFBRSxhQUFGLEVBQUUsdUJBQUYsRUFBRSxDQUFFLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lB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
|
|
@@ -3,14 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createTunnel = void 0;
|
|
4
4
|
const make_tcp_tunnel_1 = require("../../server/tunnels/make-tcp-tunnel");
|
|
5
5
|
const apm_1 = require("../../server/utils/apm");
|
|
6
|
+
const dns_1 = require("../../server/utils/dns");
|
|
6
7
|
const utils_1 = require("../../utils");
|
|
7
8
|
const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
|
|
8
|
-
|
|
9
|
-
const sessionTx = (apm === null || apm === void 0 ? void 0 : apm.startTransaction('tunnel', { childOf: tx })) || undefined;
|
|
10
|
-
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.addLabels({ tunnelId: id, ...opts });
|
|
9
|
+
var _a, _b, _c;
|
|
11
10
|
if (client.tunnels[id]) {
|
|
12
11
|
throw utils_1.AttestorError.badRequest(`Tunnel "${id}" already exists`);
|
|
13
12
|
}
|
|
13
|
+
const allowedHosts = (_c = (_b = (_a = client.metadata) === null || _a === void 0 ? void 0 : _a.auth) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.hostWhitelist;
|
|
14
|
+
if ((allowedHosts === null || allowedHosts === void 0 ? void 0 : allowedHosts.length) && !allowedHosts.includes(opts.host)) {
|
|
15
|
+
throw utils_1.AttestorError.badRequest(`Host "${opts.host}" not allowed by auth request`);
|
|
16
|
+
}
|
|
17
|
+
let cancelBgp;
|
|
18
|
+
const apm = (0, apm_1.getApm)();
|
|
19
|
+
const sessionTx = apm === null || apm === void 0 ? void 0 : apm.startTransaction('tunnelConnection', { childOf: tx });
|
|
20
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('tunnelId', id.toString());
|
|
21
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('hostPort', `${opts.host}:${opts.port}`);
|
|
22
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setLabel('geoLocation', opts.geoLocation);
|
|
14
23
|
try {
|
|
15
24
|
const tunnel = await (0, make_tcp_tunnel_1.makeTcpTunnel)({
|
|
16
25
|
...opts,
|
|
@@ -28,11 +37,15 @@ const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
|
|
|
28
37
|
});
|
|
29
38
|
},
|
|
30
39
|
onClose(err) {
|
|
40
|
+
cancelBgp === null || cancelBgp === void 0 ? void 0 : cancelBgp();
|
|
31
41
|
if (err) {
|
|
32
42
|
apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: sessionTx });
|
|
33
|
-
|
|
43
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('failure');
|
|
34
44
|
}
|
|
35
|
-
|
|
45
|
+
else {
|
|
46
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('success');
|
|
47
|
+
}
|
|
48
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.end();
|
|
36
49
|
if (!client.isOpen) {
|
|
37
50
|
return;
|
|
38
51
|
}
|
|
@@ -51,15 +64,38 @@ const createTunnel = async ({ id, ...opts }, { tx, logger, client }) => {
|
|
|
51
64
|
});
|
|
52
65
|
},
|
|
53
66
|
});
|
|
67
|
+
try {
|
|
68
|
+
await checkForBgp(tunnel);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
logger.warn({ err, host: opts.host }, 'failed to start BGP overlap check');
|
|
72
|
+
}
|
|
54
73
|
client.tunnels[id] = tunnel;
|
|
55
74
|
return {};
|
|
56
75
|
}
|
|
57
76
|
catch (err) {
|
|
58
77
|
apm === null || apm === void 0 ? void 0 : apm.captureError(err, { parent: sessionTx });
|
|
59
|
-
|
|
60
|
-
|
|
78
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.setOutcome('failure');
|
|
79
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.end();
|
|
80
|
+
cancelBgp === null || cancelBgp === void 0 ? void 0 : cancelBgp();
|
|
61
81
|
throw err;
|
|
62
82
|
}
|
|
83
|
+
async function checkForBgp(tunnel) {
|
|
84
|
+
if (!client.bgpListener) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// listen to all IPs for the host -- in case any of them
|
|
88
|
+
// has a BGP announcement overlap, we'll close the tunnel
|
|
89
|
+
// so the user can retry
|
|
90
|
+
const ips = await (0, dns_1.resolveHostnames)(opts.host);
|
|
91
|
+
cancelBgp = client.bgpListener.onOverlap(ips, (info) => {
|
|
92
|
+
logger.warn({ info, host: opts.host }, 'BGP announcement overlap detected');
|
|
93
|
+
// track how many times we've seen a BGP overlap
|
|
94
|
+
sessionTx === null || sessionTx === void 0 ? void 0 : sessionTx.addLabels({ bgpOverlap: true, ...info });
|
|
95
|
+
tunnel === null || tunnel === void 0 ? void 0 : tunnel.close(new utils_1.AttestorError('ERROR_BGP_ANNOUNCEMENT_OVERLAP', `BGP announcement overlap detected for ${opts.host}`));
|
|
96
|
+
});
|
|
97
|
+
logger.debug({ ips }, 'checking for BGP overlap');
|
|
98
|
+
}
|
|
63
99
|
};
|
|
64
100
|
exports.createTunnel = createTunnel;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci9oYW5kbGVycy9jcmVhdGVUdW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0VBQWtFO0FBQ2xFLDhDQUE2QztBQUM3Qyw4Q0FBdUQ7QUFFdkQscUNBQXlDO0FBRWxDLE1BQU0sWUFBWSxHQUErQixLQUFLLEVBQzVELEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQ2YsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNyQixFQUFFOztJQUNILElBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxNQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLElBQUksMENBQUUsSUFBSSwwQ0FBRSxhQUFhLENBQUE7SUFDL0QsSUFBRyxDQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlELE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQzdCLFNBQVMsSUFBSSxDQUFDLElBQUksK0JBQStCLENBQ2pELENBQUE7SUFDRixDQUFDO0lBRUQsSUFBSSxTQUFtQyxDQUFBO0lBRXZDLE1BQU0sR0FBRyxHQUFHLElBQUEsWUFBTSxHQUFFLENBQUE7SUFDcEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDNUUsU0FBUyxhQUFULFNBQVMs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
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.disconnectTunnel = void 0;
|
|
4
4
|
const disconnectTunnel = async ({ id }, { client }) => {
|
|
5
5
|
const tunnel = client.getTunnel(id);
|
|
6
|
-
await tunnel.close(
|
|
6
|
+
await tunnel.close();
|
|
7
7
|
return {};
|
|
8
8
|
};
|
|
9
9
|
exports.disconnectTunnel = disconnectTunnel;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY29ubmVjdFR1bm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvaGFuZGxlcnMvZGlzY29ubmVjdFR1bm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLGdCQUFnQixHQUFtQyxLQUFLLEVBQ3BFLEVBQUUsRUFBRSxFQUFFLEVBQ04sRUFBRSxNQUFNLEVBQUUsRUFDVCxFQUFFO0lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNuQyxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUVwQixPQUFPLEVBQUUsQ0FBQTtBQUNWLENBQUMsQ0FBQTtBQVJZLFFBQUEsZ0JBQWdCLG9CQVE1QiJ9
|
|
@@ -7,12 +7,14 @@ const createClaimOnChain_1 = require("../../server/handlers/createClaimOnChain")
|
|
|
7
7
|
const createTunnel_1 = require("../../server/handlers/createTunnel");
|
|
8
8
|
const disconnectTunnel_1 = require("../../server/handlers/disconnectTunnel");
|
|
9
9
|
const init_1 = require("../../server/handlers/init");
|
|
10
|
+
const toprf_1 = require("../../server/handlers/toprf");
|
|
10
11
|
exports.HANDLERS = {
|
|
11
12
|
createTunnel: createTunnel_1.createTunnel,
|
|
12
13
|
disconnectTunnel: disconnectTunnel_1.disconnectTunnel,
|
|
13
14
|
claimTunnel: claimTunnel_1.claimTunnel,
|
|
14
15
|
init: init_1.init,
|
|
15
16
|
createClaimOnChain: createClaimOnChain_1.createClaimOnChain,
|
|
16
|
-
completeClaimOnChain: completeClaimOnChain_1.completeClaimOnChain
|
|
17
|
+
completeClaimOnChain: completeClaimOnChain_1.completeClaimOnChain,
|
|
18
|
+
toprf: toprf_1.toprf,
|
|
17
19
|
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlFQUE2RDtBQUM3RCxtRkFBK0U7QUFDL0UsK0VBQTJFO0FBQzNFLG1FQUErRDtBQUMvRCwyRUFBdUU7QUFDdkUsbURBQStDO0FBQy9DLHFEQUFpRDtBQUdwQyxRQUFBLFFBQVEsR0FBc0M7SUFDMUQsWUFBWSxFQUFaLDJCQUFZO0lBQ1osZ0JBQWdCLEVBQWhCLG1DQUFnQjtJQUNoQixXQUFXLEVBQVgseUJBQVc7SUFDWCxJQUFJLEVBQUosV0FBSTtJQUNKLGtCQUFrQixFQUFsQix1Q0FBa0I7SUFDbEIsb0JBQW9CLEVBQXBCLDJDQUFvQjtJQUNwQixLQUFLLEVBQUwsYUFBSztDQUNMLENBQUEifQ==
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.init = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
4
5
|
const utils_1 = require("../../utils");
|
|
6
|
+
const auth_1 = require("../../utils/auth");
|
|
7
|
+
const env_1 = require("../../utils/env");
|
|
5
8
|
const signatures_1 = require("../../utils/signatures");
|
|
9
|
+
const TOPRF_PUBLIC_KEY = (0, env_1.getEnvVariable)('TOPRF_PUBLIC_KEY');
|
|
6
10
|
const init = async (initRequest, { client }) => {
|
|
11
|
+
var _a;
|
|
7
12
|
if (client.isInitialised) {
|
|
8
13
|
throw utils_1.AttestorError.badRequest('Client already initialised');
|
|
9
14
|
}
|
|
@@ -13,9 +18,19 @@ const init = async (initRequest, { client }) => {
|
|
|
13
18
|
if (initRequest.clientVersion <= 0) {
|
|
14
19
|
throw utils_1.AttestorError.badRequest('Unsupported client version');
|
|
15
20
|
}
|
|
21
|
+
await (0, auth_1.assertValidAuthRequest)(initRequest.auth, initRequest.signatureType);
|
|
22
|
+
if ((_a = initRequest.auth) === null || _a === void 0 ? void 0 : _a.data) {
|
|
23
|
+
client.logger = client.logger.child({
|
|
24
|
+
userId: initRequest.auth.data.id
|
|
25
|
+
});
|
|
26
|
+
}
|
|
16
27
|
client.metadata = initRequest;
|
|
17
28
|
client.isInitialised = true;
|
|
18
|
-
return {
|
|
29
|
+
return {
|
|
30
|
+
toprfPublicKey: TOPRF_PUBLIC_KEY
|
|
31
|
+
? ethers_1.ethers.utils.arrayify(TOPRF_PUBLIC_KEY)
|
|
32
|
+
: new Uint8Array()
|
|
33
|
+
};
|
|
19
34
|
};
|
|
20
35
|
exports.init = init;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvaGFuZGxlcnMvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBK0I7QUFFL0IscUNBQXlDO0FBQ3pDLHlDQUF1RDtBQUN2RCx1Q0FBOEM7QUFDOUMscURBQWlEO0FBRWpELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSxvQkFBYyxFQUFDLGtCQUFrQixDQUFDLENBQUE7QUFFcEQsTUFBTSxJQUFJLEdBQXVCLEtBQUssRUFDNUMsV0FBVyxFQUNYLEVBQUUsTUFBTSxFQUFFLEVBQ1QsRUFBRTs7SUFDSCxJQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixNQUFNLHFCQUFhLENBQUMsVUFBVSxDQUFDLDRCQUE0QixDQUFDLENBQUE7SUFDN0QsQ0FBQztJQUVELElBQUcsQ0FBQyx1QkFBVSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsSUFBRyxXQUFXLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0scUJBQWEsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsTUFBTSxJQUFBLDZCQUFzQixFQUMzQixXQUFXLENBQUMsSUFBSSxFQUNoQixXQUFXLENBQUMsYUFBYSxDQUN6QixDQUFBO0lBRUQsSUFBRyxNQUFBLFdBQVcsQ0FBQyxJQUFJLDBDQUFFLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDbkMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDaEMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFBO0lBQzdCLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO0lBRTNCLE9BQU87UUFDTixjQUFjLEVBQUUsZ0JBQWdCO1lBQy9CLENBQUMsQ0FBQyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN6QyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUU7S0FDbkIsQ0FBQTtBQUNGLENBQUMsQ0FBQTtBQW5DWSxRQUFBLElBQUksUUFtQ2hCIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toprf = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const env_1 = require("../../utils/env");
|
|
7
|
+
const toprf = async ({ maskedData, engine }, { logger }) => {
|
|
8
|
+
const PRIVATE_KEY_STR = (0, env_1.getEnvVariable)('TOPRF_SHARE_PRIVATE_KEY');
|
|
9
|
+
const PUBLIC_KEY_STR = (0, env_1.getEnvVariable)('TOPRF_SHARE_PUBLIC_KEY');
|
|
10
|
+
if (!PRIVATE_KEY_STR || !PUBLIC_KEY_STR) {
|
|
11
|
+
throw new Error('private/public keys not set. Cannot execute OPRF');
|
|
12
|
+
}
|
|
13
|
+
const PRIVATE_KEY = ethers_1.ethers.utils.arrayify(PRIVATE_KEY_STR);
|
|
14
|
+
const PUBLIC_KEY = ethers_1.ethers.utils.arrayify(PUBLIC_KEY_STR);
|
|
15
|
+
const engineStr = (0, utils_1.getEngineString)(engine);
|
|
16
|
+
const operator = (0, utils_1.makeDefaultOPRFOperator)('chacha20', engineStr, logger);
|
|
17
|
+
const res = await operator.evaluateOPRF(PRIVATE_KEY, maskedData);
|
|
18
|
+
return { ...res, publicKeyShare: PUBLIC_KEY };
|
|
19
|
+
};
|
|
20
|
+
exports.toprf = toprf;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wcmYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL2hhbmRsZXJzL3RvcHJmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUErQjtBQUUvQixxQ0FBb0U7QUFDcEUsdUNBQThDO0FBRXZDLE1BQU0sS0FBSyxHQUF3QixLQUFLLEVBQzlDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUN0QixFQUFFLE1BQU0sRUFBRSxFQUNULEVBQUU7SUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFBLG9CQUFjLEVBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFBLG9CQUFjLEVBQUMsd0JBQXdCLENBQUMsQ0FBQTtJQUMvRCxJQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMxRCxNQUFNLFVBQVUsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUV4RCxNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFlLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBQSwrQkFBdUIsRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZFLE1BQU0sR0FBRyxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFFaEUsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsQ0FBQTtBQUM5QyxDQUFDLENBQUE7QUFsQlksUUFBQSxLQUFLLFNBa0JqQiJ9
|
package/lib/server/socket.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { TunnelMessage } from '../proto/api';
|
|
2
|
+
import { AcceptNewConnectionOpts, BGPListener, IAttestorServerSocket } from '../types';
|
|
3
3
|
import { AttestorSocket } from '../utils/socket-base';
|
|
4
4
|
import { WebSocket as WS } from 'ws';
|
|
5
5
|
export declare class AttestorServerSocket extends AttestorSocket implements IAttestorServerSocket {
|
|
6
6
|
sessionId: number;
|
|
7
|
+
bgpListener: BGPListener | undefined;
|
|
7
8
|
tunnels: IAttestorServerSocket['tunnels'];
|
|
8
9
|
private constructor();
|
|
9
10
|
getTunnel(tunnelId: number): import("../types").Tunnel<import("../types").TCPSocketProperties>;
|
|
10
|
-
|
|
11
|
+
removeTunnel(tunnelId: TunnelMessage['tunnelId']): void;
|
|
12
|
+
static acceptConnection(socket: WS, { req, logger, bgpListener }: AcceptNewConnectionOpts): Promise<AttestorServerSocket | undefined>;
|
|
11
13
|
}
|