@reclaimprotocol/attestor-core 3.1.1 → 4.0.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 (110) hide show
  1. package/lib/avs/contracts/index.js +18 -8
  2. package/lib/avs/tests/test.operator.js +4 -4
  3. package/lib/avs/utils/tasks.d.ts +1 -1
  4. package/lib/client/create-claim.d.ts +2 -2
  5. package/lib/client/create-claim.js +100 -34
  6. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +3 -3
  7. package/lib/client/tunnels/make-rpc-tls-tunnel.js +3 -3
  8. package/lib/client/utils/client-socket.d.ts +3 -1
  9. package/lib/client/utils/client-socket.js +25 -8
  10. package/lib/client/utils/message-handler.js +2 -2
  11. package/lib/config/index.d.ts +9 -2
  12. package/lib/config/index.js +10 -4
  13. package/lib/index.js +18 -8
  14. package/lib/proto/api.d.ts +81 -2
  15. package/lib/proto/api.js +859 -101
  16. package/lib/providers/http/index.js +220 -116
  17. package/lib/providers/http/utils.d.ts +3 -6
  18. package/lib/providers/http/utils.js +13 -11
  19. package/lib/providers/index.js +1 -3
  20. package/lib/scripts/check-avs-registration.js +2 -2
  21. package/lib/scripts/generate-provider-types.js +2 -2
  22. package/lib/scripts/generate-receipt.js +6 -3
  23. package/lib/scripts/generate-toprf-keys.d.ts +1 -0
  24. package/lib/scripts/generate-toprf-keys.js +23 -0
  25. package/lib/scripts/register-avs-operator.js +2 -2
  26. package/lib/scripts/start-server.js +10 -3
  27. package/lib/scripts/update-avs-metadata.js +2 -2
  28. package/lib/scripts/verify-root-ca.js +2 -2
  29. package/lib/scripts/whitelist-operator.js +2 -2
  30. package/lib/server/create-server.js +14 -7
  31. package/lib/server/handlers/claimTunnel.js +34 -11
  32. package/lib/server/handlers/createTunnel.js +45 -9
  33. package/lib/server/handlers/disconnectTunnel.js +2 -2
  34. package/lib/server/handlers/index.js +4 -2
  35. package/lib/server/handlers/init.js +17 -2
  36. package/lib/server/handlers/toprf.d.ts +2 -0
  37. package/lib/server/handlers/toprf.js +21 -0
  38. package/lib/server/socket.d.ts +5 -3
  39. package/lib/server/socket.js +28 -8
  40. package/lib/server/tunnels/make-tcp-tunnel.js +22 -29
  41. package/lib/server/utils/apm.js +9 -5
  42. package/lib/server/utils/assert-valid-claim-request.d.ts +3 -3
  43. package/lib/server/utils/assert-valid-claim-request.js +27 -16
  44. package/lib/server/utils/dns.d.ts +1 -0
  45. package/lib/server/utils/dns.js +22 -0
  46. package/lib/server/utils/generics.d.ts +1 -1
  47. package/lib/tests/describe-with-server.d.ts +0 -2
  48. package/lib/tests/describe-with-server.js +1 -4
  49. package/lib/tests/mock-provider-server.d.ts +1 -1
  50. package/lib/tests/test.auth.d.ts +1 -0
  51. package/lib/tests/test.auth.js +75 -0
  52. package/lib/tests/test.bgp-listener.d.ts +1 -0
  53. package/lib/tests/test.bgp-listener.js +169 -0
  54. package/lib/tests/test.claim-creation.js +101 -8
  55. package/lib/tests/test.http-parser.d.ts +1 -1
  56. package/lib/tests/test.http-parser.js +7 -5
  57. package/lib/tests/test.http-provider-utils.js +489 -211
  58. package/lib/tests/test.http-provider.js +77 -6
  59. package/lib/tests/test.rpc-tunnel.js +10 -6
  60. package/lib/tests/test.zk.d.ts +1 -1
  61. package/lib/tests/test.zk.js +180 -12
  62. package/lib/tests/utils.d.ts +6 -0
  63. package/lib/tests/utils.js +16 -1
  64. package/lib/types/bgp.d.ts +11 -0
  65. package/lib/types/bgp.js +3 -0
  66. package/lib/types/claims.d.ts +14 -5
  67. package/lib/types/client.d.ts +30 -3
  68. package/lib/types/general.d.ts +12 -0
  69. package/lib/types/handlers.d.ts +4 -4
  70. package/lib/types/index.d.ts +1 -0
  71. package/lib/types/index.js +2 -1
  72. package/lib/types/providers.d.ts +25 -10
  73. package/lib/types/providers.gen.d.ts +14 -155
  74. package/lib/types/providers.gen.js +2 -6
  75. package/lib/types/tunnel.d.ts +2 -2
  76. package/lib/types/zk.d.ts +11 -3
  77. package/lib/utils/auth.d.ts +7 -0
  78. package/lib/utils/auth.js +64 -0
  79. package/lib/utils/b64-json.d.ts +2 -0
  80. package/lib/utils/b64-json.js +23 -0
  81. package/lib/utils/bgp-listener.d.ts +7 -0
  82. package/lib/utils/bgp-listener.js +126 -0
  83. package/lib/utils/claims.js +3 -3
  84. package/lib/utils/generics.d.ts +5 -5
  85. package/lib/utils/generics.js +3 -3
  86. package/lib/utils/http-parser.d.ts +4 -0
  87. package/lib/utils/http-parser.js +4 -2
  88. package/lib/utils/index.d.ts +2 -0
  89. package/lib/utils/index.js +3 -1
  90. package/lib/utils/redactions.d.ts +19 -6
  91. package/lib/utils/redactions.js +41 -4
  92. package/lib/utils/socket-base.d.ts +3 -2
  93. package/lib/utils/socket-base.js +7 -2
  94. package/lib/utils/ws.d.ts +5 -5
  95. package/lib/utils/ws.js +27 -10
  96. package/lib/utils/zk.d.ts +12 -7
  97. package/lib/utils/zk.js +261 -67
  98. package/lib/window-rpc/setup-window-rpc.js +29 -8
  99. package/lib/window-rpc/types.d.ts +16 -21
  100. package/lib/window-rpc/utils.d.ts +2 -1
  101. package/lib/window-rpc/utils.js +28 -2
  102. package/lib/window-rpc/window-rpc-zk.d.ts +8 -3
  103. package/lib/window-rpc/window-rpc-zk.js +58 -45
  104. package/package.json +25 -22
  105. package/lib/providers/httpb64/index.d.ts +0 -3
  106. package/lib/providers/httpb64/index.js +0 -209
  107. package/lib/providers/httpb64/utils.d.ts +0 -77
  108. package/lib/providers/httpb64/utils.js +0 -358
  109. package/lib/server/utils/verify-server-certificates.d.ts +0 -7
  110. package/lib/server/utils/verify-server-certificates.js +0 -101
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_1 = require("../client");
4
4
  const describe_with_server_1 = require("../tests/describe-with-server");
5
5
  const utils_1 = require("../tests/utils");
6
+ const utils_2 = require("../utils");
6
7
  jest.setTimeout(300000);
7
8
  (0, describe_with_server_1.describeWithServer)('HTTP Provider', opts => {
8
9
  afterEach(async () => {
@@ -13,19 +14,89 @@ jest.setTimeout(300000);
13
14
  const resp = await (0, client_1.createClaimOnAttestor)({
14
15
  name: 'http',
15
16
  params: {
16
- url: 'https://example.{{param1}}/',
17
+ url: 'https://news.ycombinator.{{param1}}/{{param6}}?token={{param4}}&token1={{param5}}',
17
18
  method: 'GET',
18
19
  responseMatches: [{
19
20
  type: 'regex',
20
- value: '<title.*?(?<domain>{{param2}} Domain)<\\/title>',
21
+ value: '<title.*?(?<domain>{{param2}})<\\/title>',
21
22
  }],
22
23
  responseRedactions: [{
23
24
  xPath: './html/head/{{param3}}',
24
25
  }],
25
26
  paramValues: {
26
27
  param1: 'com',
27
- param2: 'Example',
28
- param3: 'title'
28
+ param2: 'Top Links | Hacker News',
29
+ param3: 'title',
30
+ }
31
+ },
32
+ secretParams: {
33
+ cookieStr: '<cookie-str>',
34
+ paramValues: {
35
+ param4: 'quhrfqiuherfqlireufh',
36
+ param5: 'sssbbbbr123',
37
+ param6: 'best',
38
+ }
39
+ },
40
+ ownerPrivateKey: opts.privateKeyHex,
41
+ client: opts.client,
42
+ zkEngine: 'gnark'
43
+ });
44
+ expect(resp.error).toBeUndefined();
45
+ expect((_a = resp.claim) === null || _a === void 0 ? void 0 : _a.context)
46
+ .toContain('0x5e3e976476ded7b58120d606b33b75be52adb8345a7979c181764f00763e7b2a');
47
+ });
48
+ it('should create claim with OPRF template params', async () => {
49
+ const resp = await (0, client_1.createClaimOnAttestor)({
50
+ name: 'http',
51
+ params: {
52
+ url: 'https://example.com/',
53
+ method: 'GET',
54
+ responseMatches: [
55
+ {
56
+ type: 'contains',
57
+ value: '<title>{{domain}}</title>',
58
+ }
59
+ ],
60
+ responseRedactions: [
61
+ {
62
+ xPath: '/html/head/title',
63
+ regex: '<title>(?<domain>.*?)<\\/title>',
64
+ hash: 'oprf'
65
+ }
66
+ ],
67
+ paramValues: { domain: 'Example Domain' }
68
+ },
69
+ secretParams: {
70
+ cookieStr: '<cookie-str>'
71
+ },
72
+ ownerPrivateKey: opts.privateKeyHex,
73
+ client: opts.client,
74
+ zkEngine: 'gnark',
75
+ });
76
+ expect(resp.error).toBeUndefined();
77
+ const ctx = JSON.parse(resp.claim.context);
78
+ const domainStr = ctx.extractedParameters.domain;
79
+ const toprf = (0, utils_1.getFirstTOprfBlock)(resp.request);
80
+ expect(toprf).toBeTruthy();
81
+ const toprfStr = (0, utils_2.binaryHashToStr)(toprf.nullifier, toprf.dataLocation.length);
82
+ expect(domainStr).toEqual(toprfStr.slice(0, domainStr.length));
83
+ });
84
+ it('should create claim with non 200 response', async () => {
85
+ var _a;
86
+ const resp = await (0, client_1.createClaimOnAttestor)({
87
+ name: 'http',
88
+ params: {
89
+ url: 'https://httpstat.us/201',
90
+ method: 'GET',
91
+ responseMatches: [{
92
+ type: 'contains',
93
+ value: 'Created',
94
+ }],
95
+ responseRedactions: [{
96
+ jsonPath: '$.description',
97
+ }],
98
+ headers: {
99
+ accept: 'application/json, text/plain, */*'
29
100
  }
30
101
  },
31
102
  secretParams: {
@@ -37,7 +108,7 @@ jest.setTimeout(300000);
37
108
  });
38
109
  expect(resp.error).toBeUndefined();
39
110
  expect((_a = resp.claim) === null || _a === void 0 ? void 0 : _a.context)
40
- .toContain('0x3bfcf3bf17b83b9c37756d9becf87f76cad712304a23d3335f78e1cc96e83d1f');
111
+ .toContain('0xd18ff964dfce6a3074791ec6a6c358f7f122c838b01c3e0565b33eac29515bc6');
41
112
  });
42
113
  });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5odHRwLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuaHR0cC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUFrRDtBQUNsRCx5RUFBbUU7QUFDbkUsMkNBQTJEO0FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTyxDQUFDLENBQUE7QUFFeEIsSUFBQSx5Q0FBa0IsRUFBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUU7SUFFMUMsU0FBUyxDQUFDLEtBQUssSUFBRyxFQUFFO1FBQ25CLE1BQU0sSUFBQSxpQ0FBeUIsR0FBRSxDQUFBO0lBQ2xDLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssSUFBRyxFQUFFOztRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsOEJBQXFCLEVBQUM7WUFDeEMsSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUU7Z0JBQ1AsR0FBRyxFQUFFLDZCQUE2QjtnQkFDbEMsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsZUFBZSxFQUFFLENBQUM7d0JBQ2pCLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxpREFBaUQ7cUJBQ3hELENBQUM7Z0JBQ0Ysa0JBQWtCLEVBQUUsQ0FBQzt3QkFDcEIsS0FBSyxFQUFFLHdCQUF3QjtxQkFDL0IsQ0FBQztnQkFDRixXQUFXLEVBQUU7b0JBQ1osTUFBTSxFQUFFLEtBQUs7b0JBQ2IsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLE1BQU0sRUFBRSxPQUFPO2lCQUNmO2FBQ0Q7WUFDRCxZQUFZLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLGNBQWM7YUFDekI7WUFDRCxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDbkMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBQyxPQUFPO1NBQ2hCLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDbEMsTUFBTSxDQUFDLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsT0FBTyxDQUFDO2FBQ3pCLFNBQVMsQ0FBQyxvRUFBb0UsQ0FBQyxDQUFBO0lBQ2xGLENBQUMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUEifQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5odHRwLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuaHR0cC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUFrRDtBQUNsRCx5RUFBbUU7QUFDbkUsMkNBQStFO0FBQy9FLHFDQUEyQztBQUUzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU8sQ0FBQyxDQUFBO0FBRXhCLElBQUEseUNBQWtCLEVBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFO0lBRTFDLFNBQVMsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNuQixNQUFNLElBQUEsaUNBQXlCLEdBQUUsQ0FBQTtJQUNsQyxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUcsRUFBRTs7UUFDeEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLDhCQUFxQixFQUFDO1lBQ3hDLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFO2dCQUNQLEdBQUcsRUFBRSxtRkFBbUY7Z0JBQ3hGLE1BQU0sRUFBRSxLQUFLO2dCQUNiLGVBQWUsRUFBRSxDQUFDO3dCQUNqQixJQUFJLEVBQUUsT0FBTzt3QkFDYixLQUFLLEVBQUUsMENBQTBDO3FCQUNqRCxDQUFDO2dCQUNGLGtCQUFrQixFQUFFLENBQUM7d0JBQ3BCLEtBQUssRUFBRSx3QkFBd0I7cUJBQy9CLENBQUM7Z0JBQ0YsV0FBVyxFQUFFO29CQUNaLE1BQU0sRUFBRSxLQUFLO29CQUNiLE1BQU0sRUFBRSx5QkFBeUI7b0JBQ2pDLE1BQU0sRUFBRSxPQUFPO2lCQUVmO2FBQ0Q7WUFDRCxZQUFZLEVBQUU7Z0JBQ2IsU0FBUyxFQUFFLGNBQWM7Z0JBQ3pCLFdBQVcsRUFBRTtvQkFDWixNQUFNLEVBQUUsc0JBQXNCO29CQUM5QixNQUFNLEVBQUUsYUFBYTtvQkFDckIsTUFBTSxFQUFFLE1BQU07aUJBQ2Q7YUFDRDtZQUNELGVBQWUs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
@@ -32,7 +32,7 @@ const utils_2 = require("../utils");
32
32
  // check that the server actually closed the tunnel
33
33
  // upon our request
34
34
  await expect(socketTunnel === null || socketTunnel === void 0 ? void 0 : socketTunnel.write(Buffer.from('hello'))).rejects.toMatchObject({
35
- code: 'ERR_STREAM_WRITE_AFTER_END'
35
+ code: 'ERR_STREAM_DESTROYED'
36
36
  });
37
37
  });
38
38
  describe('TLS', () => {
@@ -49,7 +49,8 @@ const utils_2 = require("../utils");
49
49
  },
50
50
  logger: client.logger,
51
51
  connect(initMessages) {
52
- client.sendMessage(...initMessages);
52
+ client.sendMessage(...initMessages)
53
+ .catch(() => { });
53
54
  // ensure that the client hello message
54
55
  // was sent to the server along the
55
56
  // "createTunnel" request -- that saves
@@ -103,7 +104,8 @@ const utils_2 = require("../utils");
103
104
  },
104
105
  logger: client.logger,
105
106
  connect(initMessages) {
106
- client.sendMessage(...initMessages);
107
+ client.sendMessage(...initMessages)
108
+ .catch(() => { });
107
109
  return client;
108
110
  },
109
111
  onClose(err) {
@@ -133,7 +135,8 @@ const utils_2 = require("../utils");
133
135
  },
134
136
  logger: client.logger,
135
137
  connect(initMessages) {
136
- client.sendMessage(...initMessages);
138
+ client.sendMessage(...initMessages)
139
+ .catch(() => { });
137
140
  return client;
138
141
  },
139
142
  })).rejects.toMatchObject({
@@ -156,7 +159,8 @@ const utils_2 = require("../utils");
156
159
  },
157
160
  logger: client.logger,
158
161
  connect(initMessages) {
159
- client.sendMessage(...initMessages);
162
+ client.sendMessage(...initMessages)
163
+ .catch(() => { });
160
164
  return client;
161
165
  },
162
166
  })).rejects.toMatchObject({
@@ -165,4 +169,4 @@ const utils_2 = require("../utils");
165
169
  });
166
170
  });
167
171
  });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5ycGMtdHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QucnBjLXR1bm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUEyQztBQUMzQyxnRkFBeUU7QUFDekUsZ0ZBQXlFO0FBQ3pFLHlFQUFtRTtBQUNuRSwyQ0FBdUM7QUFDdkMscUNBQWtDO0FBR2xDLElBQUEseUNBQWtCLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO0lBRXZDLE1BQU0sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUE7SUFFbkQsSUFBSSxNQUFzQixDQUFBO0lBQzFCLFVBQVUsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNwQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNyQixDQUFDLENBQUMsQ0FBQTtJQUVGLFNBQVMsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNuQixNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQ25DLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEtBQUssSUFBRyxFQUFFO1FBQ3pELG9DQUFvQztRQUNwQyx3QkFBd0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLHNDQUFnQixFQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQzlELE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDZixjQUFjLEVBQ2Q7WUFDQyxFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzlCLFdBQVcsRUFBRSxFQUFFO1NBQ2YsQ0FDRCxDQUFBO1FBRUQsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQTtRQUM5QixNQUFNLFlBQVksR0FBRyxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENB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
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5ycGMtdHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QucnBjLXR1bm5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVDQUEyQztBQUMzQyxnRkFBeUU7QUFDekUsZ0ZBQXlFO0FBQ3pFLHlFQUFtRTtBQUNuRSwyQ0FBdUM7QUFDdkMscUNBQWtDO0FBR2xDLElBQUEseUNBQWtCLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO0lBRXZDLE1BQU0sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUE7SUFFbkQsSUFBSSxNQUFzQixDQUFBO0lBQzFCLFVBQVUsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNwQixNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNyQixDQUFDLENBQUMsQ0FBQTtJQUVGLFNBQVMsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNuQixNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQ25DLENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEtBQUssSUFBRyxFQUFFO1FBQ3pELG9DQUFvQztRQUNwQyx3QkFBd0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLHNDQUFnQixFQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQzlELE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDZixjQUFjLEVBQ2Q7WUFDQyxFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksRUFBRSxXQUFXO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzlCLFdBQVcsRUFBRSxFQUFFO1NBQ2YsQ0FDRCxDQUFBO1FBRUQsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQTtRQUM5QixNQUFNLFlBQVksR0FBRyxFQUFFLGFBQUYsRUFBRSx1QkFBRixFQUFFLENB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
@@ -1 +1 @@
1
- export {};
1
+ import '../server/utils/config-env';
@@ -1,7 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const tls_1 = require("@reclaimprotocol/tls");
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const config_1 = require("../config");
9
+ const api_1 = require("../proto/api");
10
+ const toprf_1 = require("../server/handlers/toprf");
4
11
  const utils_1 = require("../utils");
12
+ require("../server/utils/config-env");
5
13
  const ZK_CIPHER_SUITES = [
6
14
  'TLS_CHACHA20_POLY1305_SHA256',
7
15
  'TLS_AES_128_GCM_SHA256',
@@ -12,8 +20,8 @@ const ZK_ENGINES = [
12
20
  'snarkjs'
13
21
  ];
14
22
  jest.setTimeout(90000); // 90s
15
- describe('ZK Tests', () => {
16
- it('should correctly redact blocks', () => {
23
+ describe('Redaction Tests', () => {
24
+ it('should correctly redact blocks', async () => {
17
25
  const vectors = [
18
26
  {
19
27
  input: [
@@ -65,7 +73,9 @@ describe('ZK Tests', () => {
65
73
  }
66
74
  ];
67
75
  for (const { input, output, redactions } of vectors) {
68
- const realOutput = (0, utils_1.getBlocksToReveal)(input.map(i => ({ plaintext: Buffer.from(i) })), () => redactions);
76
+ const realOutput = await (0, utils_1.getBlocksToReveal)(input.map(i => ({ plaintext: Buffer.from(i) })), () => redactions, () => {
77
+ throw new Error('should not call this');
78
+ });
69
79
  if (realOutput === 'all') {
70
80
  fail('should not return "all"');
71
81
  continue;
@@ -76,9 +86,171 @@ describe('ZK Tests', () => {
76
86
  }
77
87
  }
78
88
  });
89
+ it('should correctly hash blocks', async () => {
90
+ const nullifer = (0, tls_1.strToUint8Array)('abcdefg');
91
+ const base64Nullifier = Buffer.from(nullifer).toString('base64');
92
+ const vectors = [
93
+ {
94
+ input: [
95
+ 'hell',
96
+ 'o world'
97
+ ],
98
+ output: [
99
+ 'h' + base64Nullifier.slice(0, 3),
100
+ base64Nullifier.slice(3, 4) + ' world'
101
+ ],
102
+ redactions: [
103
+ { fromIndex: 1, toIndex: 5, hash: 'oprf' }
104
+ ]
105
+ },
106
+ {
107
+ input: [
108
+ 'hell',
109
+ 'o world'
110
+ ],
111
+ output: [
112
+ base64Nullifier.slice(0, 4),
113
+ base64Nullifier.slice(4, 5) + ' world'
114
+ ],
115
+ redactions: [
116
+ { fromIndex: 0, toIndex: 5, hash: 'oprf' }
117
+ ]
118
+ },
119
+ ];
120
+ for (const { input, output, redactions } of vectors) {
121
+ const realOutput = await (0, utils_1.getBlocksToReveal)(input.map(i => ({ plaintext: Buffer.from(i) })), () => redactions, async () => ({
122
+ dataLocation: undefined,
123
+ nullifier: nullifer,
124
+ responses: [],
125
+ mask: (0, tls_1.strToUint8Array)('mask'),
126
+ plaintext: (0, tls_1.strToUint8Array)('abcdefg')
127
+ }));
128
+ if (realOutput === 'all') {
129
+ fail('should not return "all"');
130
+ }
131
+ expect(realOutput).toHaveLength(output.length);
132
+ for (const [i, element] of output.entries()) {
133
+ expect((0, utils_1.uint8ArrayToStr)(realOutput[i].redactedPlaintext)).toEqual(element);
134
+ }
135
+ }
136
+ });
137
+ });
138
+ describe('OPRF Slicing Tests', () => {
139
+ const cipherSuite = 'TLS_CHACHA20_POLY1305_SHA256';
140
+ const alg = 'CHACHA20-POLY1305';
141
+ const zkEngine = 'gnark';
142
+ const keylength = 32;
143
+ it('should correctly demarcate blocks for OPRF', async () => {
144
+ var _a, _b;
145
+ const plaintext = `lorem ipsum dolor sit amet, consectetur adipiscing elit,
146
+ sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
147
+ Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
148
+ nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
149
+ cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
150
+ cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
151
+ id est laborum`;
152
+ const vectors = [
153
+ {
154
+ plaintext: plaintext,
155
+ redactions: [
156
+ { fromIndex: 0, toIndex: 35, hash: 'oprf' },
157
+ ]
158
+ },
159
+ {
160
+ plaintext: plaintext,
161
+ redactions: [
162
+ { fromIndex: 128, toIndex: 138, hash: 'oprf' },
163
+ ]
164
+ },
165
+ {
166
+ plaintext: plaintext,
167
+ redactions: [
168
+ { fromIndex: 125, toIndex: 135, hash: 'oprf' },
169
+ ]
170
+ }
171
+ ];
172
+ const key = Buffer.alloc(keylength, 0);
173
+ key[0] = 1;
174
+ key[3] = 4;
175
+ const { ivLength: fixedIvLength, } = tls_1.SUPPORTED_CIPHER_SUITE_MAP[cipherSuite];
176
+ const fixedIv = Buffer.alloc(fixedIvLength, 0);
177
+ fixedIv[0] = 1;
178
+ fixedIv[3] = 4;
179
+ const encKey = await tls_1.crypto.importKey(alg, key);
180
+ for (const [i, { plaintext, redactions }] of vectors.entries()) {
181
+ const plaintextArr = Buffer.from(plaintext);
182
+ const { ciphertext, iv } = await (0, tls_1.encryptWrappedRecord)(plaintextArr, {
183
+ key: encKey,
184
+ iv: fixedIv,
185
+ recordNumber: 1234,
186
+ recordHeaderOpts: { type: 'WRAPPED_RECORD' },
187
+ cipherSuite,
188
+ version: cipherSuite.includes('ECDHE_')
189
+ ? 'TLS1_2'
190
+ : 'TLS1_3',
191
+ });
192
+ const packet = {
193
+ type: 'ciphertext',
194
+ encKey,
195
+ iv,
196
+ recordNumber: 1234,
197
+ plaintext: plaintextArr,
198
+ ciphertext,
199
+ fixedIv: fixedIv,
200
+ data: ciphertext
201
+ };
202
+ const blocksToReveal = await (0, utils_1.getBlocksToReveal)([packet], () => redactions, performOprf);
203
+ (0, assert_1.default)(blocksToReveal !== 'all');
204
+ expect(blocksToReveal).toHaveLength(1);
205
+ expect(blocksToReveal[0].toprfs).toBeTruthy();
206
+ const revealsMap = new Map();
207
+ revealsMap.set(packet, {
208
+ type: 'zk',
209
+ redactedPlaintext: blocksToReveal[0].redactedPlaintext,
210
+ toprfs: blocksToReveal[0].toprfs
211
+ });
212
+ const revealedMessages = await (0, utils_1.preparePacketsForReveal)([{ sender: 'server', message: packet }], revealsMap, {
213
+ logger: utils_1.logger,
214
+ cipherSuite: cipherSuite,
215
+ zkEngine: zkEngine,
216
+ });
217
+ const proofs = (_b = (_a = revealedMessages[0].reveal) === null || _a === void 0 ? void 0 : _a.zkReveal) === null || _b === void 0 ? void 0 : _b.proofs;
218
+ expect(proofs === null || proofs === void 0 ? void 0 : proofs.length).toBeTruthy();
219
+ const x = await (0, utils_1.verifyZkPacket)({
220
+ ciphertext,
221
+ zkReveal: { proofs: proofs },
222
+ logger: utils_1.logger,
223
+ cipherSuite,
224
+ zkEngine: zkEngine,
225
+ recordNumber: 1234,
226
+ iv: fixedIv
227
+ });
228
+ expect(x.redactedPlaintext).toEqual(blocksToReveal[0].redactedPlaintext);
229
+ console.log(`done: ${i + 1}/${vectors.length}`);
230
+ }
231
+ });
232
+ async function performOprf(plaintext) {
233
+ utils_1.logger.info({ length: plaintext.length }, 'generating OPRF...');
234
+ const oprfOperator = (0, utils_1.makeDefaultOPRFOperator)('chacha20', zkEngine, utils_1.logger);
235
+ const reqData = await oprfOperator.generateOPRFRequestData(plaintext, config_1.TOPRF_DOMAIN_SEPARATOR, utils_1.logger);
236
+ const res = await (0, toprf_1.toprf)({
237
+ maskedData: reqData.maskedData,
238
+ engine: api_1.ZKProofEngine.ZK_ENGINE_GNARK
239
+ }, { logger: utils_1.logger });
240
+ const nullifier = await oprfOperator.finaliseOPRF(res.publicKeyShare, reqData, [res]);
241
+ const data = {
242
+ nullifier,
243
+ responses: [res],
244
+ mask: reqData.mask,
245
+ dataLocation: undefined,
246
+ plaintext
247
+ };
248
+ return data;
249
+ }
79
250
  });
80
251
  describe.each(ZK_CIPHER_SUITES)('[%s] should generate ZK proof for some ciphertext', (cipherSuite) => {
81
252
  describe.each(ZK_ENGINES)('[%s]', (zkEngine) => {
253
+ const zkProofConcurrency = zkEngine === 'snarkjs' ? 1 : undefined;
82
254
  it(zkEngine + '-' + cipherSuite, async () => {
83
255
  const alg = cipherSuite.includes('CHACHA20')
84
256
  ? 'CHACHA20-POLY1305'
@@ -117,7 +289,8 @@ describe.each(ZK_CIPHER_SUITES)('[%s] should generate ZK proof for some cipherte
117
289
  const proofGenerator = await (0, utils_1.makeZkProofGenerator)({
118
290
  logger: utils_1.logger,
119
291
  cipherSuite,
120
- zkEngine: zkEngine
292
+ zkEngine,
293
+ zkProofConcurrency,
121
294
  });
122
295
  for (const { plaintext, redactions } of vectors) {
123
296
  const plaintextArr = Buffer.from(plaintext);
@@ -128,9 +301,7 @@ describe.each(ZK_CIPHER_SUITES)('[%s] should generate ZK proof for some cipherte
128
301
  key: encKey,
129
302
  iv: fixedIv,
130
303
  recordNumber: 1234,
131
- recordHeaderOpts: {
132
- type: 'WRAPPED_RECORD'
133
- },
304
+ recordHeaderOpts: { type: 'WRAPPED_RECORD' },
134
305
  cipherSuite,
135
306
  version: cipherSuite.includes('ECDHE_')
136
307
  ? 'TLS1_2'
@@ -147,10 +318,7 @@ describe.each(ZK_CIPHER_SUITES)('[%s] should generate ZK proof for some cipherte
147
318
  data: ciphertext
148
319
  };
149
320
  let proofs;
150
- await proofGenerator.addPacketToProve(packet, {
151
- type: 'zk',
152
- redactedPlaintext,
153
- }, p => proofs = p);
321
+ await proofGenerator.addPacketToProve(packet, { type: 'zk', redactedPlaintext }, p => proofs = p);
154
322
  await proofGenerator.generateProofs();
155
323
  const x = await (0, utils_1.verifyZkPacket)({
156
324
  ciphertext,
@@ -166,4 +334,4 @@ describe.each(ZK_CIPHER_SUITES)('[%s] should generate ZK proof for some cipherte
166
334
  });
167
335
  });
168
336
  });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC56ay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy90ZXN0LnprLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOENBQTRHO0FBSTVHLHFDQU9rQjtBQUVsQixNQUFNLGdCQUFnQixHQUFrQjtJQUN2Qyw4QkFBOEI7SUFDOUIsd0JBQXdCO0lBQ3hCLHlDQUF5QztDQUN6QyxDQUFBO0FBRUQsTUFBTSxVQUFVLEdBQWU7SUFDOUIsT0FBTztJQUNQLFNBQVM7Q0FDVCxDQUFBO0FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFNLENBQUMsQ0FBQSxDQUFDLE1BQU07QUFFOUIsUUFBUSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7SUFFekIsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN6QyxNQUFNLE9BQU8sR0FBRztZQUNmO2dCQUNDLEtBQUssRUFBRTtvQkFDTixNQUFNO29CQUNOLFNBQVM7aUJBQ1Q7Z0JBQ0QsTUFBTSxFQUFFO29CQUNQLE1BQU07b0JBQ04sU0FBUztpQkFDVDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1gsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7aUJBQzVCO2FBQ0Q7WUFDRDtnQkFDQyxLQUFLLEVBQUU7b0JBQ04sTUFBTTtvQkFDTixTQUFTO2lCQUNUO2dCQUNELE1BQU0sRUFBRTtvQkFDUCw0QkFBNEI7b0JBQzVCLG9DQUFvQztvQkFDcEMsU0FBUztpQkFDVDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1gsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUU7aUJBQzVCO2FBQ0Q7WUFDRDtnQkFDQyxLQUFLLEVBQUU7b0JBQ04sT0FBTztvQkFDUCxLQUFLO29CQUNMLElBQUk7b0JBQ0osS0FBSztvQkFDTCxJQUFJO2lCQUNKO2dCQUNELE1BQU0sRUFBRTtvQkFDUCxPQUFPO29CQUNQLElBQUk7b0JBQ0osS0FB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
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC56ay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy90ZXN0LnprLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQTZIO0FBRTdILG9EQUEyQjtBQUMzQix1Q0FBbUQ7QUFDbkQsdUNBQStFO0FBQy9FLHFEQUFpRDtBQUVqRCxxQ0FTa0I7QUFDbEIsdUNBQW9DO0FBRXBDLE1BQU0sZ0JBQWdCLEdBQWtCO0lBQ3ZDLDhCQUE4QjtJQUM5Qix3QkFBd0I7SUFDeEIseUNBQXlDO0NBQ3pDLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBZTtJQUM5QixPQUFPO0lBQ1AsU0FBUztDQUNULENBQUE7QUFRRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQU0sQ0FBQyxDQUFBLENBQUMsTUFBTTtBQUU5QixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBRWhDLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUM5QyxNQUFNLE9BQU8sR0FBMEI7WUFDdEM7Z0JBQ0MsS0FBSyxFQUFFO29CQUNOLE1BQU07b0JBQ04sU0FBUztpQkFDVDtnQkFDRCxNQUFNLEVBQUU7b0JBQ1AsTUFBTTtvQkFDTixTQUFTO2lCQUNUO2dCQUNELFVBQVUsRUFBRTtvQkFDWCxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtpQkFDNUI7YUFDRDtZQUNEO2dCQUNDLEtBQUssRUFBRTtvQkFDTixNQUFNO29CQUNOLFNBQVM7aUJBQ1Q7Z0JBQ0QsTUFBTSxFQUFFO29CQUNQLDRCQUE0QjtvQkFDNUIsb0NBQW9DO29CQUNwQyxTQUFTO2lCQUNUO2dCQUNELFVBQVUsRUFBRTtvQkFDWCxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtpQkFDNUI7YUFDRDtZQUNEO2dCQUNDLEtBQUssRUFBRTtvQkFDTixPQUFPO29CQUNQLEtBQUs7b0JBQ0wsSUFB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
@@ -1,3 +1,4 @@
1
+ import { ClaimTunnelRequest } from '../proto/api';
1
2
  export declare function delay(ms: number): Promise<unknown>;
2
3
  export declare function randomPrivateKey(): string;
3
4
  export declare function getRandomPort(): number;
@@ -10,3 +11,8 @@ export declare function getRandomPort(): number;
10
11
  * tls transcript and reveals map that was used.
11
12
  */
12
13
  export declare function verifyNoDirectRevealLeaks(): void;
14
+ /**
15
+ * Gets the first TOPRF block from the transcript.
16
+ * Returns undefined if no TOPRF block is found.
17
+ */
18
+ export declare function getFirstTOprfBlock({ transcript }: ClaimTunnelRequest): import("../proto/api").TOPRFPayload | undefined;
@@ -4,6 +4,7 @@ exports.delay = delay;
4
4
  exports.randomPrivateKey = randomPrivateKey;
5
5
  exports.getRandomPort = getRandomPort;
6
6
  exports.verifyNoDirectRevealLeaks = verifyNoDirectRevealLeaks;
7
+ exports.getFirstTOprfBlock = getFirstTOprfBlock;
7
8
  const crypto_1 = require("crypto");
8
9
  const mocks_1 = require("../tests/mocks");
9
10
  function delay(ms) {
@@ -46,4 +47,18 @@ function verifyNoDirectRevealLeaks() {
46
47
  expect(otherPacketsWKey).toHaveLength(0);
47
48
  }
48
49
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxzQkFFQztBQUVELDRDQUVDO0FBRUQsc0NBRUM7QUFVRCw4REEyQkM7QUFsREQsbUNBQW9DO0FBQ3BDLDJDQUE4QztBQUU5QyxTQUFnQixLQUFLLENBQUMsRUFBVTtJQUMvQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDekQsQ0FBQztBQUVELFNBQWdCLGdCQUFnQjtJQUMvQixPQUFPLElBQUksR0FBRyxJQUFBLG9CQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzlDLENBQUM7QUFFRCxTQUFnQixhQUFhO0lBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IseUJBQXlCO0lBQ3hDLElBQUcsQ0FBQyxvQkFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEMsT0FBTTtJQUNQLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxHQUFHLG9CQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM5RCxLQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDcEQsSUFBRyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQy9CLFNBQVE7UUFDVCxDQUFDO1FBRUQsSUFBRyxNQUFNLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLFNBQVE7UUFDVCxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLHFEQUFxRDtRQUNyRCxnREFBZ0Q7UUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQ3hCLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWTtlQUMxQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2VBQ3hCLE9BQU8sQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU07ZUFDaEMsT0FBTyxDQUFDLFdBQVcsS0FBSyxrQkFBa0IsQ0FDN0MsQ0FBQyxDQUFBO1FBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7QUFDRixDQUFDIn0=
50
+ /**
51
+ * Gets the first TOPRF block from the transcript.
52
+ * Returns undefined if no TOPRF block is found.
53
+ */
54
+ function getFirstTOprfBlock({ transcript }) {
55
+ var _a;
56
+ for (const { reveal } of transcript) {
57
+ for (const proof of ((_a = reveal === null || reveal === void 0 ? void 0 : reveal.zkReveal) === null || _a === void 0 ? void 0 : _a.proofs) || []) {
58
+ if (proof.toprf) {
59
+ return proof.toprf;
60
+ }
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzQkFFQztBQUVELDRDQUVDO0FBRUQsc0NBRUM7QUFVRCw4REEyQkM7QUFNRCxnREFRQztBQWpFRCxtQ0FBb0M7QUFFcEMsMkNBQThDO0FBRTlDLFNBQWdCLEtBQUssQ0FBQyxFQUFVO0lBQy9CLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCO0lBQy9CLE9BQU8sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDOUMsQ0FBQztBQUVELFNBQWdCLGFBQWE7SUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUE7QUFDL0MsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQix5QkFBeUI7SUFDeEMsSUFBRyxDQUFDLG9CQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQyxPQUFNO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLEdBQUcsb0JBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlELEtBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNwRCxJQUFHLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDL0IsU0FBUTtRQUNULENBQUM7UUFFRCxJQUFHLE1BQU0sQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDaEMsU0FBUTtRQUNULENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MscURBQXFEO1FBQ3JELGdEQUFnRDtRQUNoRCxNQUFNLGdCQUFnQixHQUFHLGFBQWE7YUFDcEMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDeEIsT0FBTyxDQUFDLElBQUksS0FBSyxZQUFZO2VBQzFCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7ZUFDeEIsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTTtlQUNoQyxPQUFPLENBQUMsV0FBVyxLQUFLLGtCQUFrQixDQUM3QyxDQUFDLENBQUE7UUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekMsQ0FBQztBQUNGLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxFQUFFLFVBQVUsRUFBc0I7O0lBQ3BFLEtBQUksTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLEtBQUksTUFBTSxLQUFLLElBQUksQ0FBQSxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLDBDQUFFLE1BQU0sS0FBSSxFQUFFLEVBQUUsQ0FBQztZQUNuRCxJQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFBO1lBQ25CLENBQUM7UUFDRixDQUFDO0lBQ0YsQ0FBQztBQUNGLENBQUMifQ==
@@ -0,0 +1,11 @@
1
+ export type BGPAnnouncementOverlapData = {
2
+ prefix: string;
3
+ };
4
+ export type BGPListener = {
5
+ /**
6
+ * Add an IP to listen for overlap,
7
+ * @returns a function to remove the IP from the listener
8
+ */
9
+ onOverlap(ips: string[], callback: (event: BGPAnnouncementOverlapData) => void): (() => void);
10
+ close(): void;
11
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmdwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2JncC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,8 +1,8 @@
1
1
  import type { ProviderClaimData } from '../proto/api';
2
- import type { IAttestorClient } from '../types/client';
2
+ import type { IAttestorClient, IAttestorClientInitParams } from '../types/client';
3
3
  import type { CompleteTLSPacket, Logger } from '../types/general';
4
4
  import type { ProofGenerationStep, ProviderName, ProviderParams, ProviderSecretParams } from '../types/providers';
5
- import { Transcript } from '../types/tunnel';
5
+ import type { Transcript } from '../types/tunnel';
6
6
  import type { PrepareZKProofsBaseOpts } from '../types/zk';
7
7
  /**
8
8
  * Uniquely identifies a claim.
@@ -43,9 +43,7 @@ export type CreateClaimOnAttestorOpts<N extends ProviderName> = {
43
43
  *
44
44
  * The created client will go into the global client pool.
45
45
  */
46
- client: IAttestorClient | {
47
- url: string | URL;
48
- };
46
+ client: IAttestorClient | IAttestorClientInitParams;
49
47
  /**
50
48
  * Optionally set the timestamp of the claim
51
49
  * in unix seconds. If not provided, the current
@@ -53,6 +51,11 @@ export type CreateClaimOnAttestorOpts<N extends ProviderName> = {
53
51
  */
54
52
  timestampS?: number;
55
53
  logger?: Logger;
54
+ /**
55
+ * Maximum number of retries to attempt
56
+ * @default 3
57
+ */
58
+ maxRetries?: number;
56
59
  /**
57
60
  * Optionally update the provider parameters
58
61
  * based on the transcript
@@ -61,4 +64,10 @@ export type CreateClaimOnAttestorOpts<N extends ProviderName> = {
61
64
  params: Partial<ProviderParams<N>>;
62
65
  secretParams: Partial<ProviderSecretParams<N>>;
63
66
  }>;
67
+ /**
68
+ * Replaces paramValue with corresponding OPRF hash before proof is made
69
+ * Only if there's matching redaction exists
70
+ * For example: "domain.com" -> "dv4Nrgtr"
71
+ */
72
+ updateParametersFromOprfData?: boolean;
64
73
  } & PrepareZKProofsBaseOpts;