@reclaimprotocol/attestor-core 4.0.2 → 5.0.1-beta.1

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.
Files changed (243) hide show
  1. package/LICENSE +660 -660
  2. package/README.md +1 -2
  3. package/package.json +72 -60
  4. package/lib/avs/abis/avsDirectoryABI.d.ts +0 -60
  5. package/lib/avs/abis/avsDirectoryABI.js +0 -344
  6. package/lib/avs/abis/delegationABI.d.ts +0 -126
  7. package/lib/avs/abis/delegationABI.js +0 -5
  8. package/lib/avs/abis/registryABI.d.ts +0 -136
  9. package/lib/avs/abis/registryABI.js +0 -729
  10. package/lib/avs/client/create-claim-on-avs.d.ts +0 -12
  11. package/lib/avs/client/create-claim-on-avs.js +0 -147
  12. package/lib/avs/config.d.ts +0 -7
  13. package/lib/avs/config.js +0 -24
  14. package/lib/avs/contracts/ReclaimServiceManager.d.ts +0 -697
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -3
  16. package/lib/avs/contracts/common.d.ts +0 -21
  17. package/lib/avs/contracts/common.js +0 -3
  18. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -888
  19. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1174
  20. package/lib/avs/contracts/factories/index.d.ts +0 -1
  21. package/lib/avs/contracts/factories/index.js +0 -9
  22. package/lib/avs/contracts/index.d.ts +0 -3
  23. package/lib/avs/contracts/index.js +0 -40
  24. package/lib/avs/tests/test.operator.d.ts +0 -11
  25. package/lib/avs/tests/test.operator.js +0 -313
  26. package/lib/avs/tests/utils.d.ts +0 -2
  27. package/lib/avs/tests/utils.js +0 -50
  28. package/lib/avs/types/index.d.ts +0 -55
  29. package/lib/avs/types/index.js +0 -3
  30. package/lib/avs/utils/contracts.d.ts +0 -21
  31. package/lib/avs/utils/contracts.js +0 -38
  32. package/lib/avs/utils/register.d.ts +0 -27
  33. package/lib/avs/utils/register.js +0 -82
  34. package/lib/avs/utils/tasks.d.ts +0 -22
  35. package/lib/avs/utils/tasks.js +0 -45
  36. package/lib/client/create-claim.d.ts +0 -5
  37. package/lib/client/create-claim.js +0 -424
  38. package/lib/client/index.d.ts +0 -3
  39. package/lib/client/index.js +0 -20
  40. package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  41. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -60
  42. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -25
  43. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -135
  44. package/lib/client/utils/attestor-pool.d.ts +0 -6
  45. package/lib/client/utils/attestor-pool.js +0 -28
  46. package/lib/client/utils/client-socket.d.ts +0 -11
  47. package/lib/client/utils/client-socket.js +0 -100
  48. package/lib/client/utils/message-handler.d.ts +0 -4
  49. package/lib/client/utils/message-handler.js +0 -94
  50. package/lib/config/index.d.ts +0 -28
  51. package/lib/config/index.js +0 -39
  52. package/lib/index.d.ts +0 -10
  53. package/lib/index.js +0 -50
  54. package/lib/mechain/abis/governanceABI.d.ts +0 -50
  55. package/lib/mechain/abis/governanceABI.js +0 -462
  56. package/lib/mechain/abis/taskABI.d.ts +0 -157
  57. package/lib/mechain/abis/taskABI.js +0 -513
  58. package/lib/mechain/client/create-claim-on-mechain.d.ts +0 -10
  59. package/lib/mechain/client/create-claim-on-mechain.js +0 -32
  60. package/lib/mechain/client/index.d.ts +0 -1
  61. package/lib/mechain/client/index.js +0 -18
  62. package/lib/mechain/constants/index.d.ts +0 -3
  63. package/lib/mechain/constants/index.js +0 -7
  64. package/lib/mechain/index.d.ts +0 -2
  65. package/lib/mechain/index.js +0 -19
  66. package/lib/mechain/types/index.d.ts +0 -23
  67. package/lib/mechain/types/index.js +0 -3
  68. package/lib/proto/api.d.ts +0 -508
  69. package/lib/proto/api.js +0 -3700
  70. package/lib/providers/http/index.d.ts +0 -3
  71. package/lib/providers/http/index.js +0 -613
  72. package/lib/providers/http/utils.d.ts +0 -74
  73. package/lib/providers/http/utils.js +0 -360
  74. package/lib/providers/index.d.ts +0 -4
  75. package/lib/providers/index.js +0 -11
  76. package/lib/scripts/check-avs-registration.d.ts +0 -1
  77. package/lib/scripts/check-avs-registration.js +0 -29
  78. package/lib/scripts/generate-provider-types.d.ts +0 -5
  79. package/lib/scripts/generate-provider-types.js +0 -82
  80. package/lib/scripts/generate-receipt.d.ts +0 -9
  81. package/lib/scripts/generate-receipt.js +0 -90
  82. package/lib/scripts/generate-toprf-keys.d.ts +0 -1
  83. package/lib/scripts/generate-toprf-keys.js +0 -23
  84. package/lib/scripts/register-avs-operator.d.ts +0 -1
  85. package/lib/scripts/register-avs-operator.js +0 -7
  86. package/lib/scripts/start-server.d.ts +0 -1
  87. package/lib/scripts/start-server.js +0 -13
  88. package/lib/scripts/update-avs-metadata.d.ts +0 -1
  89. package/lib/scripts/update-avs-metadata.js +0 -22
  90. package/lib/scripts/utils.d.ts +0 -1
  91. package/lib/scripts/utils.js +0 -11
  92. package/lib/scripts/verify-root-ca.d.ts +0 -1
  93. package/lib/scripts/verify-root-ca.js +0 -51
  94. package/lib/scripts/whitelist-operator.d.ts +0 -1
  95. package/lib/scripts/whitelist-operator.js +0 -18
  96. package/lib/server/create-server.d.ts +0 -7
  97. package/lib/server/create-server.js +0 -92
  98. package/lib/server/handlers/claimTunnel.d.ts +0 -2
  99. package/lib/server/handlers/claimTunnel.js +0 -78
  100. package/lib/server/handlers/completeClaimOnChain.d.ts +0 -2
  101. package/lib/server/handlers/completeClaimOnChain.js +0 -28
  102. package/lib/server/handlers/createClaimOnChain.d.ts +0 -2
  103. package/lib/server/handlers/createClaimOnChain.js +0 -31
  104. package/lib/server/handlers/createTaskOnMechain.d.ts +0 -2
  105. package/lib/server/handlers/createTaskOnMechain.js +0 -52
  106. package/lib/server/handlers/createTunnel.d.ts +0 -2
  107. package/lib/server/handlers/createTunnel.js +0 -101
  108. package/lib/server/handlers/disconnectTunnel.d.ts +0 -2
  109. package/lib/server/handlers/disconnectTunnel.js +0 -10
  110. package/lib/server/handlers/index.d.ts +0 -4
  111. package/lib/server/handlers/index.js +0 -22
  112. package/lib/server/handlers/init.d.ts +0 -2
  113. package/lib/server/handlers/init.js +0 -36
  114. package/lib/server/handlers/toprf.d.ts +0 -2
  115. package/lib/server/handlers/toprf.js +0 -21
  116. package/lib/server/index.d.ts +0 -4
  117. package/lib/server/index.js +0 -21
  118. package/lib/server/socket.d.ts +0 -13
  119. package/lib/server/socket.js +0 -114
  120. package/lib/server/tunnels/make-tcp-tunnel.d.ts +0 -20
  121. package/lib/server/tunnels/make-tcp-tunnel.js +0 -175
  122. package/lib/server/utils/apm.d.ts +0 -11
  123. package/lib/server/utils/apm.js +0 -43
  124. package/lib/server/utils/assert-valid-claim-request.d.ts +0 -30
  125. package/lib/server/utils/assert-valid-claim-request.js +0 -200
  126. package/lib/server/utils/config-env.d.ts +0 -1
  127. package/lib/server/utils/config-env.js +0 -7
  128. package/lib/server/utils/dns.d.ts +0 -1
  129. package/lib/server/utils/dns.js +0 -22
  130. package/lib/server/utils/generics.d.ts +0 -22
  131. package/lib/server/utils/generics.js +0 -59
  132. package/lib/server/utils/iso.d.ts +0 -1
  133. package/lib/server/utils/iso.js +0 -260
  134. package/lib/server/utils/keep-alive.d.ts +0 -7
  135. package/lib/server/utils/keep-alive.js +0 -42
  136. package/lib/server/utils/process-handshake.d.ts +0 -13
  137. package/lib/server/utils/process-handshake.js +0 -191
  138. package/lib/tests/describe-with-server.d.ts +0 -20
  139. package/lib/tests/describe-with-server.js +0 -64
  140. package/lib/tests/mock-provider-server.d.ts +0 -13
  141. package/lib/tests/mock-provider-server.js +0 -65
  142. package/lib/tests/mocks.d.ts +0 -4
  143. package/lib/tests/mocks.js +0 -23
  144. package/lib/tests/test.auth.d.ts +0 -1
  145. package/lib/tests/test.auth.js +0 -75
  146. package/lib/tests/test.bgp-listener.d.ts +0 -1
  147. package/lib/tests/test.bgp-listener.js +0 -169
  148. package/lib/tests/test.claim-creation.d.ts +0 -1
  149. package/lib/tests/test.claim-creation.js +0 -280
  150. package/lib/tests/test.http-parser.d.ts +0 -1
  151. package/lib/tests/test.http-parser.js +0 -120
  152. package/lib/tests/test.http-provider-utils.d.ts +0 -1
  153. package/lib/tests/test.http-provider-utils.js +0 -2416
  154. package/lib/tests/test.http-provider.d.ts +0 -1
  155. package/lib/tests/test.http-provider.js +0 -114
  156. package/lib/tests/test.rpc-communication.d.ts +0 -1
  157. package/lib/tests/test.rpc-communication.js +0 -64
  158. package/lib/tests/test.rpc-tunnel.d.ts +0 -1
  159. package/lib/tests/test.rpc-tunnel.js +0 -172
  160. package/lib/tests/test.signatures.d.ts +0 -1
  161. package/lib/tests/test.signatures.js +0 -24
  162. package/lib/tests/test.tcp-tunnel.d.ts +0 -1
  163. package/lib/tests/test.tcp-tunnel.js +0 -64
  164. package/lib/tests/test.zk.d.ts +0 -1
  165. package/lib/tests/test.zk.js +0 -337
  166. package/lib/tests/utils.d.ts +0 -18
  167. package/lib/tests/utils.js +0 -64
  168. package/lib/types/bgp.d.ts +0 -11
  169. package/lib/types/bgp.js +0 -3
  170. package/lib/types/claims.d.ts +0 -73
  171. package/lib/types/claims.js +0 -3
  172. package/lib/types/client.d.ts +0 -163
  173. package/lib/types/client.js +0 -3
  174. package/lib/types/general.d.ts +0 -51
  175. package/lib/types/general.js +0 -3
  176. package/lib/types/handlers.d.ts +0 -10
  177. package/lib/types/handlers.js +0 -3
  178. package/lib/types/index.d.ts +0 -10
  179. package/lib/types/index.js +0 -27
  180. package/lib/types/providers.d.ts +0 -150
  181. package/lib/types/providers.gen.d.ts +0 -429
  182. package/lib/types/providers.gen.js +0 -14
  183. package/lib/types/providers.js +0 -3
  184. package/lib/types/rpc.d.ts +0 -35
  185. package/lib/types/rpc.js +0 -3
  186. package/lib/types/signatures.d.ts +0 -28
  187. package/lib/types/signatures.js +0 -3
  188. package/lib/types/tunnel.d.ts +0 -18
  189. package/lib/types/tunnel.js +0 -3
  190. package/lib/types/zk.d.ts +0 -23
  191. package/lib/types/zk.js +0 -3
  192. package/lib/utils/auth.d.ts +0 -7
  193. package/lib/utils/auth.js +0 -64
  194. package/lib/utils/b64-json.d.ts +0 -2
  195. package/lib/utils/b64-json.js +0 -23
  196. package/lib/utils/benchmark.d.ts +0 -1
  197. package/lib/utils/benchmark.js +0 -70
  198. package/lib/utils/bgp-listener.d.ts +0 -7
  199. package/lib/utils/bgp-listener.js +0 -126
  200. package/lib/utils/claims.d.ts +0 -33
  201. package/lib/utils/claims.js +0 -112
  202. package/lib/utils/env.d.ts +0 -3
  203. package/lib/utils/env.js +0 -20
  204. package/lib/utils/error.d.ts +0 -27
  205. package/lib/utils/error.js +0 -43
  206. package/lib/utils/generics.d.ts +0 -112
  207. package/lib/utils/generics.js +0 -348
  208. package/lib/utils/http-parser.d.ts +0 -59
  209. package/lib/utils/http-parser.js +0 -252
  210. package/lib/utils/index.d.ts +0 -12
  211. package/lib/utils/index.js +0 -29
  212. package/lib/utils/logger.d.ts +0 -13
  213. package/lib/utils/logger.js +0 -100
  214. package/lib/utils/prepare-packets.d.ts +0 -16
  215. package/lib/utils/prepare-packets.js +0 -61
  216. package/lib/utils/redactions.d.ts +0 -54
  217. package/lib/utils/redactions.js +0 -148
  218. package/lib/utils/retries.d.ts +0 -12
  219. package/lib/utils/retries.js +0 -28
  220. package/lib/utils/signatures/eth.d.ts +0 -2
  221. package/lib/utils/signatures/eth.js +0 -33
  222. package/lib/utils/signatures/index.d.ts +0 -5
  223. package/lib/utils/signatures/index.js +0 -11
  224. package/lib/utils/socket-base.d.ts +0 -22
  225. package/lib/utils/socket-base.js +0 -95
  226. package/lib/utils/tls.d.ts +0 -2
  227. package/lib/utils/tls.js +0 -32
  228. package/lib/utils/validation.d.ts +0 -2
  229. package/lib/utils/validation.js +0 -46
  230. package/lib/utils/ws.d.ts +0 -12
  231. package/lib/utils/ws.js +0 -38
  232. package/lib/utils/zk.d.ts +0 -55
  233. package/lib/utils/zk.js +0 -444
  234. package/lib/window-rpc/index.d.ts +0 -3
  235. package/lib/window-rpc/index.js +0 -20
  236. package/lib/window-rpc/setup-window-rpc.d.ts +0 -5
  237. package/lib/window-rpc/setup-window-rpc.js +0 -291
  238. package/lib/window-rpc/types.d.ts +0 -192
  239. package/lib/window-rpc/types.js +0 -3
  240. package/lib/window-rpc/utils.d.ts +0 -14
  241. package/lib/window-rpc/utils.js +0 -102
  242. package/lib/window-rpc/window-rpc-zk.d.ts +0 -15
  243. package/lib/window-rpc/window-rpc-zk.js +0 -85
@@ -1,43 +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.getApm = getApm;
7
- const elastic_apm_node_1 = __importDefault(require("elastic-apm-node"));
8
- const env_1 = require("../../utils/env");
9
- const logger_1 = require("../../utils/logger");
10
- let apm;
11
- /**
12
- * Initialises the APM agent if required,
13
- * and returns it.
14
- * If ELASTIC_APM_SERVER_URL & ELASTIC_APM_SECRET_TOKEN
15
- * are not set will return undefined
16
- *
17
- * Utilises the standard env variables mentioned
18
- * here: https://www.elastic.co/guide/en/apm/agent/nodejs/current/custom-stack.html#custom-stack-advanced-configuration
19
- */
20
- function getApm() {
21
- if (!(0, env_1.getEnvVariable)('ELASTIC_APM_SERVER_URL')
22
- || !(0, env_1.getEnvVariable)('ELASTIC_APM_SECRET_TOKEN')) {
23
- logger_1.logger.info('ELASTIC_APM_SERVER_URL or ELASTIC_APM_SECRET_TOKEN not found'
24
- + ' in env, APM agent not initialised');
25
- return undefined;
26
- }
27
- if (!apm) {
28
- const sampleRate = +((0, env_1.getEnvVariable)('ELASTIC_APM_SAMPLE_RATE')
29
- || '0.1');
30
- apm = elastic_apm_node_1.default.start({
31
- serviceName: 'reclaim_attestor',
32
- serviceVersion: '4.0.0',
33
- transactionSampleRate: sampleRate,
34
- instrumentIncomingHTTPRequests: true,
35
- usePathAsTransactionName: true,
36
- instrument: true,
37
- captureHeaders: true,
38
- });
39
- logger_1.logger.info('initialised APM agent');
40
- }
41
- return apm;
42
- }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci91dGlscy9hcG0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFlQSx3QkE4QkM7QUE3Q0Qsd0VBQW9EO0FBQ3BELHVDQUE4QztBQUM5Qyw2Q0FBeUM7QUFFekMsSUFBSSxHQUFzQixDQUFBO0FBRTFCOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsTUFBTTtJQUNyQixJQUNDLENBQUMsSUFBQSxvQkFBYyxFQUFDLHdCQUF3QixDQUFDO1dBQ3RDLENBQUMsSUFBQSxvQkFBYyxFQUFDLDBCQUEwQixDQUFDLEVBQzdDLENBQUM7UUFDRixlQUFNLENBQUMsSUFBSSxDQUNWLDhEQUE4RDtjQUM1RCxvQ0FBb0MsQ0FDdEMsQ0FBQTtRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxJQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQ25CLElBQUEsb0JBQWMsRUFBQyx5QkFBeUIsQ0FBQztlQUN0QyxLQUFLLENBQ1IsQ0FBQTtRQUNELEdBQUcsR0FBRywwQkFBVSxDQUFDLEtBQUssQ0FBQztZQUN0QixXQUFXLEVBQUUsa0JBQWtCO1lBQy9CLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLHFCQUFxQixFQUFFLFVBQVU7WUFDakMsOEJBQThCLEVBQUUsSUFBSTtZQUNwQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGNBQWMsRUFBRSxJQUFJO1NBQ3BCLENBQUMsQ0FBQTtRQUNGLGVBQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUE7QUFDWCxDQUFDIn0=
@@ -1,30 +0,0 @@
1
- import { ZKEngine } from '@reclaimprotocol/zk-symmetric-crypto';
2
- import { ClaimTunnelRequest, InitRequest, ProviderClaimInfo } from '../../proto/api';
3
- import { IDecryptedTranscript, Logger, ProviderCtx, TCPSocketProperties, Transcript } from '../../types';
4
- /**
5
- * Asserts that the claim request is valid.
6
- *
7
- * 1. We begin by verifying the signature of the claim request.
8
- * 2. Next, we produce the transcript of the TLS exchange
9
- * from the proofs provided by the client.
10
- * 3. We then pull the provider the client is trying to claim
11
- * from
12
- * 4. We then use the provider's verification function to verify
13
- * whether the claim is valid.
14
- *
15
- * If any of these steps fail, we throw an error.
16
- */
17
- export declare function assertValidClaimRequest(request: ClaimTunnelRequest, metadata: InitRequest, logger: Logger): Promise<import("../../proto/api").ClaimRequestData>;
18
- /**
19
- * Verify that the transcript contains a valid claim
20
- * for the provider.
21
- */
22
- export declare function assertValidProviderTranscript<T extends ProviderClaimInfo>(applData: Transcript<Uint8Array>, info: T, logger: Logger, providerCtx: ProviderCtx): Promise<T>;
23
- /**
24
- * Verify that the transcript provided by the client
25
- * matches the transcript of the tunnel, the server
26
- * has created.
27
- */
28
- export declare function assertTranscriptsMatch(clientTranscript: ClaimTunnelRequest['transcript'], tunnelTranscript: TCPSocketProperties['transcript']): void;
29
- export declare function decryptTranscript(transcript: ClaimTunnelRequest['transcript'], logger: Logger, zkEngine: ZKEngine, serverIV: Uint8Array, clientIV: Uint8Array): Promise<IDecryptedTranscript>;
30
- export declare function getWithoutHeader(message: Uint8Array): Uint8Array<ArrayBuffer>;
@@ -1,200 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertValidClaimRequest = assertValidClaimRequest;
4
- exports.assertValidProviderTranscript = assertValidProviderTranscript;
5
- exports.assertTranscriptsMatch = assertTranscriptsMatch;
6
- exports.decryptTranscript = decryptTranscript;
7
- exports.getWithoutHeader = getWithoutHeader;
8
- const tls_1 = require("@reclaimprotocol/tls");
9
- const api_1 = require("../../proto/api");
10
- const providers_1 = require("../../providers");
11
- const generics_1 = require("../../server/utils/generics");
12
- const process_handshake_1 = require("../../server/utils/process-handshake");
13
- const utils_1 = require("../../utils");
14
- const signatures_1 = require("../../utils/signatures");
15
- /**
16
- * Asserts that the claim request is valid.
17
- *
18
- * 1. We begin by verifying the signature of the claim request.
19
- * 2. Next, we produce the transcript of the TLS exchange
20
- * from the proofs provided by the client.
21
- * 3. We then pull the provider the client is trying to claim
22
- * from
23
- * 4. We then use the provider's verification function to verify
24
- * whether the claim is valid.
25
- *
26
- * If any of these steps fail, we throw an error.
27
- */
28
- async function assertValidClaimRequest(request, metadata, logger) {
29
- var _a;
30
- const { data, signatures: { requestSignature } = {}, zkEngine, fixedServerIV, fixedClientIV } = request;
31
- if (!data) {
32
- throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', 'No info provided on claim request');
33
- }
34
- if (!(requestSignature === null || requestSignature === void 0 ? void 0 : requestSignature.length)) {
35
- throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', 'No signature provided on claim request');
36
- }
37
- // verify request signature
38
- const serialisedReq = api_1.ClaimTunnelRequest
39
- .encode({ ...request, signatures: undefined })
40
- .finish();
41
- const { verify: verifySig } = signatures_1.SIGNATURES[metadata.signatureType];
42
- const verified = await verifySig(serialisedReq, requestSignature, data.owner);
43
- if (!verified) {
44
- throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', 'Invalid signature on claim request');
45
- }
46
- const receipt = await decryptTranscript(request.transcript, logger, zkEngine === api_1.ZKProofEngine.ZK_ENGINE_GNARK ? 'gnark' : 'snarkjs', fixedServerIV, fixedClientIV);
47
- const reqHost = (_a = request.request) === null || _a === void 0 ? void 0 : _a.host;
48
- if (receipt.hostname !== reqHost) {
49
- throw new Error(`Expected server name ${reqHost}, got ${receipt.hostname}`);
50
- }
51
- // get all application data messages
52
- const applData = (0, utils_1.extractApplicationDataFromTranscript)(receipt);
53
- const newData = await assertValidProviderTranscript(applData, data, logger, { version: metadata.clientVersion });
54
- if (newData !== data) {
55
- logger.info({ newData }, 'updated claim info');
56
- }
57
- return newData;
58
- }
59
- /**
60
- * Verify that the transcript contains a valid claim
61
- * for the provider.
62
- */
63
- async function assertValidProviderTranscript(applData, info, logger, providerCtx) {
64
- var _a;
65
- const providerName = info.provider;
66
- const provider = providers_1.providers[providerName];
67
- if (!provider) {
68
- throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', `Unsupported provider: ${providerName}`);
69
- }
70
- const params = (0, generics_1.niceParseJsonObject)(info.parameters, 'params');
71
- const ctx = (0, generics_1.niceParseJsonObject)(info.context, 'context');
72
- (0, utils_1.assertValidateProviderParams)(providerName, params);
73
- const rslt = await provider.assertValidProviderReceipt({
74
- receipt: applData,
75
- params,
76
- logger,
77
- ctx: providerCtx
78
- });
79
- ctx.providerHash = (0, utils_1.hashProviderParams)(params);
80
- const extractedParameters = (rslt === null || rslt === void 0 ? void 0 : rslt.extractedParameters) || {};
81
- if (Object.keys(extractedParameters).length) {
82
- ctx.extractedParameters = extractedParameters;
83
- }
84
- info.context = (_a = (0, utils_1.canonicalStringify)(ctx)) !== null && _a !== void 0 ? _a : '';
85
- return info;
86
- }
87
- /**
88
- * Verify that the transcript provided by the client
89
- * matches the transcript of the tunnel, the server
90
- * has created.
91
- */
92
- function assertTranscriptsMatch(clientTranscript, tunnelTranscript) {
93
- const clientSends = (0, tls_1.concatenateUint8Arrays)(clientTranscript
94
- .filter(m => m.sender === api_1.TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT)
95
- .map(m => m.message));
96
- const tunnelSends = (0, tls_1.concatenateUint8Arrays)(tunnelTranscript
97
- .filter(m => m.sender === 'client')
98
- .map(m => m.message));
99
- if (!(0, tls_1.areUint8ArraysEqual)(clientSends, tunnelSends)) {
100
- throw utils_1.AttestorError.badRequest('Outgoing messages from client do not match the tunnel transcript');
101
- }
102
- const clientRecvs = (0, tls_1.concatenateUint8Arrays)(clientTranscript
103
- .filter(m => m.sender === api_1.TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER)
104
- .map(m => m.message));
105
- const tunnelRecvs = (0, tls_1.concatenateUint8Arrays)(tunnelTranscript
106
- .filter(m => m.sender === 'server')
107
- .map(m => m.message))
108
- // We only need to compare the first N messages
109
- // that the client claims to have received
110
- // the rest are not relevant -- so even if they're
111
- // not present in the tunnel transcript, it's fine
112
- .slice(0, clientRecvs.length);
113
- if (!(0, tls_1.areUint8ArraysEqual)(clientRecvs, tunnelRecvs)) {
114
- throw utils_1.AttestorError.badRequest('Incoming messages from server do not match the tunnel transcript');
115
- }
116
- }
117
- async function decryptTranscript(transcript, logger, zkEngine, serverIV, clientIV) {
118
- const { tlsVersion, cipherSuite, hostname, nextMsgIndex } = await (0, process_handshake_1.processHandshake)(transcript, logger);
119
- let clientRecordNumber = tlsVersion === 'TLS1_3' ? -1 : 0; // TLS 1.3 has already one record encrypted at this point
120
- let serverRecordNumber = clientRecordNumber;
121
- transcript = transcript.slice(nextMsgIndex);
122
- const decryptedTranscript = [];
123
- for (const [i, { sender, message, reveal: { zkReveal, directReveal } = {} }] of transcript.entries()) {
124
- //start with first message after last handshake message
125
- await getDecryptedMessage(sender, message, directReveal, zkReveal, i);
126
- }
127
- return {
128
- transcript: decryptedTranscript,
129
- hostname: hostname,
130
- tlsVersion: tlsVersion,
131
- };
132
- async function getDecryptedMessage(sender, message, directReveal, zkReveal, i) {
133
- var _a, _b;
134
- try {
135
- const isServer = sender === api_1.TranscriptMessageSenderType
136
- .TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER;
137
- const recordHeader = message.slice(0, 5);
138
- const content = getWithoutHeader(message);
139
- if (isServer) {
140
- serverRecordNumber++;
141
- }
142
- else {
143
- clientRecordNumber++;
144
- }
145
- let redacted = true;
146
- let plaintext = undefined;
147
- let plaintextLength;
148
- if ((_a = directReveal === null || directReveal === void 0 ? void 0 : directReveal.key) === null || _a === void 0 ? void 0 : _a.length) {
149
- const result = await (0, utils_1.decryptDirect)(directReveal, cipherSuite, recordHeader, tlsVersion, content);
150
- plaintext = result.plaintext;
151
- redacted = false;
152
- plaintextLength = plaintext.length;
153
- }
154
- else if ((_b = zkReveal === null || zkReveal === void 0 ? void 0 : zkReveal.proofs) === null || _b === void 0 ? void 0 : _b.length) {
155
- const result = await (0, utils_1.verifyZkPacket)({
156
- ciphertext: content,
157
- zkReveal,
158
- logger,
159
- cipherSuite,
160
- zkEngine: zkEngine,
161
- iv: sender === api_1.TranscriptMessageSenderType
162
- .TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER
163
- ? serverIV
164
- : clientIV,
165
- recordNumber: isServer
166
- ? serverRecordNumber
167
- : clientRecordNumber
168
- });
169
- plaintext = result.redactedPlaintext;
170
- redacted = false;
171
- plaintextLength = plaintext.length;
172
- }
173
- else {
174
- plaintext = content;
175
- plaintextLength = plaintext.length;
176
- }
177
- decryptedTranscript.push({
178
- sender: sender === api_1.TranscriptMessageSenderType
179
- .TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT
180
- ? 'client'
181
- : 'server',
182
- redacted,
183
- message: plaintext,
184
- recordHeader,
185
- plaintextLength,
186
- });
187
- }
188
- catch (error) {
189
- throw new utils_1.AttestorError('ERROR_INVALID_CLAIM', `error in handling packet at idx ${i}: ${error}`, {
190
- packetIdx: i,
191
- error: error,
192
- });
193
- }
194
- }
195
- }
196
- function getWithoutHeader(message) {
197
- // strip the record header (xx 03 03 xx xx)
198
- return message.slice(5);
199
- }
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LXZhbGlkLWNsYWltLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL3V0aWxzL2Fzc2VydC12YWxpZC1jbGFpbS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0NBLDBEQW9FQztBQU1ELHNFQXFDQztBQU9ELHdEQTJDQztBQUVELDhDQTZHQztBQUVELDRDQUdDO0FBcFVELDhDQUc2QjtBQUU3Qix1Q0FRc0I7QUFDdEIsNkNBQXlDO0FBQ3pDLHdEQUErRDtBQUMvRCwwRUFBcUU7QUFTckUscUNBTWtCO0FBQ2xCLHFEQUFpRDtBQUVqRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSSxLQUFLLFVBQVUsdUJBQXVCLENBQzVDLE9BQTJCLEVBQzNCLFFBQXFCLEVBQ3JCLE1BQWM7O0lBRWQsTUFBTSxFQUNMLElBQUksRUFDSixVQUFVLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsRUFDckMsUUFBUSxFQUNSLGFBQWEsRUFDYixhQUFhLEVBQ2IsR0FBRyxPQUFPLENBQUE7SUFDWCxJQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUkscUJBQWEsQ0FDdEIscUJBQXFCLEVBQ3JCLG1DQUFtQyxDQUNuQyxDQUFBO0lBQ0YsQ0FBQztJQUVELElBQUcsQ0FBQyxDQUFBLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLE1BQU0sQ0FBQSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLHFCQUFhLENBQ3RCLHFCQUFxQixFQUNyQix3Q0FBd0MsQ0FDeEMsQ0FBQTtJQUNGLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsTUFBTSxhQUFhLEdBQUcsd0JBQWtCO1NBQ3RDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztTQUM3QyxNQUFNLEVBQUUsQ0FBQTtJQUNWLE1BQU0sRUFBRSxNQUFNLEVBQUUs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
@@ -1 +0,0 @@
1
- export {};
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const dotenv_1 = require("dotenv");
4
- const env_1 = require("../../utils/env");
5
- const nodeEnv = (0, env_1.getEnvVariable)('NODE_ENV') || 'development';
6
- (0, dotenv_1.config)({ path: `.env.${nodeEnv}` });
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWVudi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdXRpbHMvY29uZmlnLWVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUErQjtBQUMvQix1Q0FBOEM7QUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBQSxvQkFBYyxFQUFDLFVBQVUsQ0FBQyxJQUFJLGFBQWEsQ0FBQTtBQUMzRCxJQUFBLGVBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQSJ9
@@ -1 +0,0 @@
1
- export declare function resolveHostnames(hostname: string): Promise<string[]>;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveHostnames = resolveHostnames;
4
- const dns_1 = require("dns");
5
- const config_1 = require("../../config");
6
- setDnsServers();
7
- async function resolveHostnames(hostname) {
8
- return new Promise((_resolve, reject) => {
9
- (0, dns_1.resolve)(hostname, (err, addresses) => {
10
- if (err) {
11
- reject(new Error(`Could not resolve hostname: ${hostname}, ${err.message}`));
12
- }
13
- else {
14
- _resolve(addresses);
15
- }
16
- });
17
- });
18
- }
19
- function setDnsServers() {
20
- (0, dns_1.setServers)(config_1.DNS_SERVERS);
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci91dGlscy9kbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0Q0FjQztBQW5CRCw2QkFBeUM7QUFDekMsdUNBQXdDO0FBRXhDLGFBQWEsRUFBRSxDQUFBO0FBRVIsS0FBSyxVQUFVLGdCQUFnQixDQUFDLFFBQWdCO0lBQ3RELE9BQU8sSUFBSSxPQUFPLENBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDakQsSUFBQSxhQUFPLEVBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ3BDLElBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxDQUNMLElBQUksS0FBSyxDQUNSLCtCQUErQixRQUFRLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUN6RCxDQUNELENBQUE7WUFDRixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ3BCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQVMsYUFBYTtJQUNyQixJQUFBLGdCQUFVLEVBQUMsb0JBQVcsQ0FBQyxDQUFBO0FBQ3hCLENBQUMifQ==
@@ -1,22 +0,0 @@
1
- import { IncomingMessage } from 'http';
2
- import { ServiceSignatureType } from '../../proto/api';
3
- /**
4
- * Sign message using the PRIVATE_KEY env var.
5
- */
6
- export declare function signAsAttestor(data: Uint8Array | string, scheme: ServiceSignatureType): Uint8Array<ArrayBufferLike> | Promise<Uint8Array<ArrayBufferLike>>;
7
- /**
8
- * Obtain the address on chain, from the PRIVATE_KEY env var.
9
- */
10
- export declare function getAttestorAddress(scheme: ServiceSignatureType): string;
11
- /**
12
- * Nice parse JSON with a key.
13
- * If the data is empty, returns an empty object.
14
- * And if the JSON is invalid, throws a bad request error,
15
- * with the key in the error message.
16
- */
17
- export declare function niceParseJsonObject(data: string, key: string): any;
18
- /**
19
- * Extract any initial messages sent via the query string,
20
- * in the `messages` parameter.
21
- */
22
- export declare function getInitialMessagesFromQuery(req: IncomingMessage): import("../../proto/api").RPCMessage[];
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signAsAttestor = signAsAttestor;
4
- exports.getAttestorAddress = getAttestorAddress;
5
- exports.niceParseJsonObject = niceParseJsonObject;
6
- exports.getInitialMessagesFromQuery = getInitialMessagesFromQuery;
7
- const tls_1 = require("@reclaimprotocol/tls");
8
- const api_1 = require("../../proto/api");
9
- const utils_1 = require("../../utils");
10
- const env_1 = require("../../utils/env");
11
- const signatures_1 = require("../../utils/signatures");
12
- const PRIVATE_KEY = (0, env_1.getEnvVariable)('PRIVATE_KEY');
13
- /**
14
- * Sign message using the PRIVATE_KEY env var.
15
- */
16
- function signAsAttestor(data, scheme) {
17
- const { sign } = signatures_1.SIGNATURES[scheme];
18
- return sign(typeof data === 'string' ? (0, tls_1.strToUint8Array)(data) : data, PRIVATE_KEY);
19
- }
20
- /**
21
- * Obtain the address on chain, from the PRIVATE_KEY env var.
22
- */
23
- function getAttestorAddress(scheme) {
24
- const { getAddress, getPublicKey } = signatures_1.SIGNATURES[scheme];
25
- const publicKey = getPublicKey(PRIVATE_KEY);
26
- return getAddress(publicKey);
27
- }
28
- /**
29
- * Nice parse JSON with a key.
30
- * If the data is empty, returns an empty object.
31
- * And if the JSON is invalid, throws a bad request error,
32
- * with the key in the error message.
33
- */
34
- function niceParseJsonObject(data, key) {
35
- if (!data) {
36
- return {};
37
- }
38
- try {
39
- return JSON.parse(data);
40
- }
41
- catch (e) {
42
- throw utils_1.AttestorError.badRequest(`Invalid JSON in ${key}: ${e.message}`);
43
- }
44
- }
45
- /**
46
- * Extract any initial messages sent via the query string,
47
- * in the `messages` parameter.
48
- */
49
- function getInitialMessagesFromQuery(req) {
50
- const url = new URL(req.url, 'http://localhost');
51
- const messagesB64 = url.searchParams.get('messages');
52
- if (!(messagesB64 === null || messagesB64 === void 0 ? void 0 : messagesB64.length)) {
53
- return [];
54
- }
55
- const msgsBytes = Buffer.from(messagesB64, 'base64');
56
- const msgs = api_1.RPCMessages.decode(msgsBytes);
57
- return msgs.messages;
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL3V0aWxzL2dlbmVyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsd0NBU0M7QUFLRCxnREFJQztBQVFELGtEQVlDO0FBTUQsa0VBVUM7QUFsRUQsOENBQXNEO0FBRXRELHVDQUFpRTtBQUNqRSxxQ0FBeUM7QUFDekMsdUNBQThDO0FBQzlDLHFEQUFpRDtBQUVqRCxNQUFNLFdBQVcsR0FBRyxJQUFBLG9CQUFjLEVBQUMsYUFBYSxDQUFFLENBQUE7QUFFbEQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQzdCLElBQXlCLEVBQ3pCLE1BQTRCO0lBRTVCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyx1QkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ25DLE9BQU8sSUFBSSxDQUNWLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBQSxxQkFBZSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ3ZELFdBQVcsQ0FDWCxDQUFBO0FBQ0YsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsTUFBNEI7SUFDOUQsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsR0FBRyx1QkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUMzQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsR0FBVztJQUM1RCxJQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQTtJQUNWLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUFDLE9BQU0sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLHFCQUFhLENBQUMsVUFBVSxDQUM3QixtQkFBbUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FDdEMsQ0FBQTtJQUNGLENBQUM7QUFDRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsR0FBb0I7SUFDL0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3BELElBQUcsQ0FBQyxDQUFBLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxNQUFNLENBQUEsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFBO0lBQ1YsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3BELE1BQU0sSUFBSSxHQUFHLGlCQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQTtBQUNyQixDQUFDIn0=
@@ -1 +0,0 @@
1
- export declare function isValidCountryCode(countryCode: string): boolean;