@reclaimprotocol/attestor-core 5.0.1-beta.7 → 5.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 (307) hide show
  1. package/browser/resources/attestor-browser.min.mjs +4512 -0
  2. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +1 -1
  3. package/lib/external-rpc/index.js +10399 -3
  4. package/lib/index.js +8323 -10
  5. package/lib/server/utils/proxy-session.d.ts +1 -1
  6. package/lib/types/general.d.ts +0 -1
  7. package/lib/utils/generics.d.ts +1 -6
  8. package/lib/utils/index.d.ts +0 -1
  9. package/package.json +8 -7
  10. package/lib/avs/abis/avsDirectoryABI.js +0 -343
  11. package/lib/avs/abis/delegationABI.js +0 -4
  12. package/lib/avs/abis/registryABI.js +0 -728
  13. package/lib/avs/client/create-claim-on-avs.js +0 -168
  14. package/lib/avs/config.js +0 -26
  15. package/lib/avs/contracts/ReclaimServiceManager.js +0 -0
  16. package/lib/avs/contracts/common.js +0 -0
  17. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  18. package/lib/avs/contracts/factories/index.js +0 -4
  19. package/lib/avs/contracts/index.js +0 -6
  20. package/lib/avs/types/index.js +0 -0
  21. package/lib/avs/utils/contracts.js +0 -53
  22. package/lib/avs/utils/register.js +0 -74
  23. package/lib/avs/utils/tasks.js +0 -48
  24. package/lib/browser/avs/abis/avsDirectoryABI.d.ts +0 -60
  25. package/lib/browser/avs/abis/avsDirectoryABI.js +0 -343
  26. package/lib/browser/avs/abis/delegationABI.d.ts +0 -126
  27. package/lib/browser/avs/abis/delegationABI.js +0 -4
  28. package/lib/browser/avs/abis/registryABI.d.ts +0 -136
  29. package/lib/browser/avs/abis/registryABI.js +0 -728
  30. package/lib/browser/avs/client/create-claim-on-avs.d.ts +0 -12
  31. package/lib/browser/avs/client/create-claim-on-avs.js +0 -168
  32. package/lib/browser/avs/config.d.ts +0 -7
  33. package/lib/browser/avs/config.js +0 -26
  34. package/lib/browser/avs/contracts/ReclaimServiceManager.d.ts +0 -601
  35. package/lib/browser/avs/contracts/ReclaimServiceManager.js +0 -0
  36. package/lib/browser/avs/contracts/common.d.ts +0 -50
  37. package/lib/browser/avs/contracts/common.js +0 -0
  38. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -890
  39. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  40. package/lib/browser/avs/contracts/factories/index.d.ts +0 -1
  41. package/lib/browser/avs/contracts/factories/index.js +0 -4
  42. package/lib/browser/avs/contracts/index.d.ts +0 -3
  43. package/lib/browser/avs/contracts/index.js +0 -6
  44. package/lib/browser/avs/types/index.d.ts +0 -55
  45. package/lib/browser/avs/types/index.js +0 -0
  46. package/lib/browser/avs/utils/contracts.d.ts +0 -21
  47. package/lib/browser/avs/utils/contracts.js +0 -53
  48. package/lib/browser/avs/utils/register.d.ts +0 -27
  49. package/lib/browser/avs/utils/register.js +0 -74
  50. package/lib/browser/avs/utils/tasks.d.ts +0 -22
  51. package/lib/browser/avs/utils/tasks.js +0 -48
  52. package/lib/browser/client/create-claim.d.ts +0 -5
  53. package/lib/browser/client/create-claim.js +0 -461
  54. package/lib/browser/client/index.d.ts +0 -3
  55. package/lib/browser/client/index.js +0 -3
  56. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  57. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  58. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -26
  59. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  60. package/lib/browser/client/utils/attestor-pool.d.ts +0 -8
  61. package/lib/browser/client/utils/attestor-pool.js +0 -24
  62. package/lib/browser/client/utils/client-socket.d.ts +0 -11
  63. package/lib/browser/client/utils/client-socket.js +0 -120
  64. package/lib/browser/client/utils/message-handler.d.ts +0 -4
  65. package/lib/browser/client/utils/message-handler.js +0 -97
  66. package/lib/browser/config/index.d.ts +0 -31
  67. package/lib/browser/config/index.js +0 -62
  68. package/lib/browser/external-rpc/benchmark.d.ts +0 -1
  69. package/lib/browser/external-rpc/benchmark.js +0 -82
  70. package/lib/browser/external-rpc/event-bus.d.ts +0 -7
  71. package/lib/browser/external-rpc/event-bus.js +0 -17
  72. package/lib/browser/external-rpc/global.d.js +0 -0
  73. package/lib/browser/external-rpc/handle-incoming-msg.d.ts +0 -2
  74. package/lib/browser/external-rpc/handle-incoming-msg.js +0 -241
  75. package/lib/browser/external-rpc/index.d.ts +0 -3
  76. package/lib/browser/external-rpc/index.js +0 -3
  77. package/lib/browser/external-rpc/jsc-polyfills/1.d.ts +0 -14
  78. package/lib/browser/external-rpc/jsc-polyfills/1.js +0 -80
  79. package/lib/browser/external-rpc/jsc-polyfills/2.d.ts +0 -1
  80. package/lib/browser/external-rpc/jsc-polyfills/2.js +0 -15
  81. package/lib/browser/external-rpc/jsc-polyfills/event.d.ts +0 -10
  82. package/lib/browser/external-rpc/jsc-polyfills/event.js +0 -19
  83. package/lib/browser/external-rpc/jsc-polyfills/index.d.ts +0 -2
  84. package/lib/browser/external-rpc/jsc-polyfills/index.js +0 -2
  85. package/lib/browser/external-rpc/jsc-polyfills/ws.d.ts +0 -21
  86. package/lib/browser/external-rpc/jsc-polyfills/ws.js +0 -83
  87. package/lib/browser/external-rpc/setup-browser.d.ts +0 -6
  88. package/lib/browser/external-rpc/setup-browser.js +0 -33
  89. package/lib/browser/external-rpc/setup-jsc.d.ts +0 -24
  90. package/lib/browser/external-rpc/setup-jsc.js +0 -22
  91. package/lib/browser/external-rpc/types.d.ts +0 -213
  92. package/lib/browser/external-rpc/types.js +0 -0
  93. package/lib/browser/external-rpc/utils.d.ts +0 -20
  94. package/lib/browser/external-rpc/utils.js +0 -100
  95. package/lib/browser/external-rpc/zk.d.ts +0 -14
  96. package/lib/browser/external-rpc/zk.js +0 -58
  97. package/lib/browser/index.browser.js +0 -13
  98. package/lib/browser/index.d.ts +0 -9
  99. package/lib/browser/index.js +0 -13
  100. package/lib/browser/mechain/abis/governanceABI.d.ts +0 -50
  101. package/lib/browser/mechain/abis/governanceABI.js +0 -461
  102. package/lib/browser/mechain/abis/taskABI.d.ts +0 -157
  103. package/lib/browser/mechain/abis/taskABI.js +0 -512
  104. package/lib/browser/mechain/client/create-claim-on-mechain.d.ts +0 -10
  105. package/lib/browser/mechain/client/create-claim-on-mechain.js +0 -33
  106. package/lib/browser/mechain/client/index.d.ts +0 -1
  107. package/lib/browser/mechain/client/index.js +0 -1
  108. package/lib/browser/mechain/constants/index.d.ts +0 -3
  109. package/lib/browser/mechain/constants/index.js +0 -8
  110. package/lib/browser/mechain/index.d.ts +0 -2
  111. package/lib/browser/mechain/index.js +0 -2
  112. package/lib/browser/mechain/types/index.d.ts +0 -23
  113. package/lib/browser/mechain/types/index.js +0 -0
  114. package/lib/browser/proto/api.d.ts +0 -651
  115. package/lib/browser/proto/api.js +0 -4250
  116. package/lib/browser/proto/tee-bundle.d.ts +0 -156
  117. package/lib/browser/proto/tee-bundle.js +0 -1296
  118. package/lib/browser/providers/http/index.d.ts +0 -18
  119. package/lib/browser/providers/http/index.js +0 -640
  120. package/lib/browser/providers/http/patch-parse5-tree.d.ts +0 -6
  121. package/lib/browser/providers/http/patch-parse5-tree.js +0 -34
  122. package/lib/browser/providers/http/utils.d.ts +0 -77
  123. package/lib/browser/providers/http/utils.js +0 -283
  124. package/lib/browser/providers/index.d.ts +0 -4
  125. package/lib/browser/providers/index.js +0 -7
  126. package/lib/browser/types/bgp.d.ts +0 -11
  127. package/lib/browser/types/bgp.js +0 -0
  128. package/lib/browser/types/claims.d.ts +0 -70
  129. package/lib/browser/types/claims.js +0 -0
  130. package/lib/browser/types/client.d.ts +0 -163
  131. package/lib/browser/types/client.js +0 -0
  132. package/lib/browser/types/general.d.ts +0 -77
  133. package/lib/browser/types/general.js +0 -0
  134. package/lib/browser/types/handlers.d.ts +0 -10
  135. package/lib/browser/types/handlers.js +0 -0
  136. package/lib/browser/types/index.d.ts +0 -10
  137. package/lib/browser/types/index.js +0 -10
  138. package/lib/browser/types/providers.d.ts +0 -161
  139. package/lib/browser/types/providers.gen.d.ts +0 -443
  140. package/lib/browser/types/providers.gen.js +0 -16
  141. package/lib/browser/types/providers.js +0 -0
  142. package/lib/browser/types/rpc.d.ts +0 -35
  143. package/lib/browser/types/rpc.js +0 -0
  144. package/lib/browser/types/signatures.d.ts +0 -28
  145. package/lib/browser/types/signatures.js +0 -0
  146. package/lib/browser/types/tunnel.d.ts +0 -18
  147. package/lib/browser/types/tunnel.js +0 -0
  148. package/lib/browser/types/zk.d.ts +0 -38
  149. package/lib/browser/types/zk.js +0 -0
  150. package/lib/browser/utils/auth.d.ts +0 -8
  151. package/lib/browser/utils/auth.js +0 -71
  152. package/lib/browser/utils/b64-json.d.ts +0 -2
  153. package/lib/browser/utils/b64-json.js +0 -17
  154. package/lib/browser/utils/claims.d.ts +0 -33
  155. package/lib/browser/utils/claims.js +0 -89
  156. package/lib/browser/utils/env.d.ts +0 -3
  157. package/lib/browser/utils/env.js +0 -19
  158. package/lib/browser/utils/error.d.ts +0 -26
  159. package/lib/browser/utils/error.js +0 -54
  160. package/lib/browser/utils/generics.d.ts +0 -119
  161. package/lib/browser/utils/generics.js +0 -272
  162. package/lib/browser/utils/http-parser.d.ts +0 -59
  163. package/lib/browser/utils/http-parser.js +0 -201
  164. package/lib/browser/utils/index.browser.js +0 -13
  165. package/lib/browser/utils/index.d.ts +0 -13
  166. package/lib/browser/utils/index.js +0 -13
  167. package/lib/browser/utils/logger.browser.js +0 -88
  168. package/lib/browser/utils/logger.d.ts +0 -14
  169. package/lib/browser/utils/logger.js +0 -88
  170. package/lib/browser/utils/prepare-packets.d.ts +0 -16
  171. package/lib/browser/utils/prepare-packets.js +0 -69
  172. package/lib/browser/utils/redactions.d.ts +0 -73
  173. package/lib/browser/utils/redactions.js +0 -135
  174. package/lib/browser/utils/retries.d.ts +0 -12
  175. package/lib/browser/utils/retries.js +0 -26
  176. package/lib/browser/utils/signatures/eth.d.ts +0 -2
  177. package/lib/browser/utils/signatures/eth.js +0 -31
  178. package/lib/browser/utils/signatures/index.d.ts +0 -5
  179. package/lib/browser/utils/signatures/index.js +0 -12
  180. package/lib/browser/utils/socket-base.d.ts +0 -23
  181. package/lib/browser/utils/socket-base.js +0 -96
  182. package/lib/browser/utils/tls-imports.d.ts +0 -1
  183. package/lib/browser/utils/tls-imports.js +0 -34
  184. package/lib/browser/utils/tls.d.ts +0 -2
  185. package/lib/browser/utils/tls.js +0 -58
  186. package/lib/browser/utils/ws.d.ts +0 -7
  187. package/lib/browser/utils/ws.js +0 -22
  188. package/lib/browser/utils/zk.d.ts +0 -71
  189. package/lib/browser/utils/zk.js +0 -625
  190. package/lib/client/create-claim.js +0 -461
  191. package/lib/client/index.js +0 -3
  192. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  193. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  194. package/lib/client/utils/attestor-pool.js +0 -24
  195. package/lib/client/utils/client-socket.js +0 -120
  196. package/lib/client/utils/message-handler.js +0 -97
  197. package/lib/config/index.js +0 -62
  198. package/lib/external-rpc/benchmark.js +0 -82
  199. package/lib/external-rpc/event-bus.js +0 -17
  200. package/lib/external-rpc/global.d.js +0 -0
  201. package/lib/external-rpc/handle-incoming-msg.js +0 -241
  202. package/lib/external-rpc/jsc-polyfills/1.js +0 -80
  203. package/lib/external-rpc/jsc-polyfills/2.js +0 -15
  204. package/lib/external-rpc/jsc-polyfills/event.js +0 -19
  205. package/lib/external-rpc/jsc-polyfills/index.js +0 -2
  206. package/lib/external-rpc/jsc-polyfills/ws.js +0 -83
  207. package/lib/external-rpc/setup-browser.js +0 -33
  208. package/lib/external-rpc/setup-jsc.js +0 -22
  209. package/lib/external-rpc/types.js +0 -0
  210. package/lib/external-rpc/utils.js +0 -100
  211. package/lib/external-rpc/zk.js +0 -58
  212. package/lib/index.browser.d.ts +0 -9
  213. package/lib/mechain/abis/governanceABI.js +0 -461
  214. package/lib/mechain/abis/taskABI.js +0 -512
  215. package/lib/mechain/client/create-claim-on-mechain.js +0 -33
  216. package/lib/mechain/client/index.js +0 -1
  217. package/lib/mechain/constants/index.js +0 -8
  218. package/lib/mechain/index.js +0 -2
  219. package/lib/mechain/types/index.js +0 -0
  220. package/lib/proto/api.js +0 -4250
  221. package/lib/proto/tee-bundle.js +0 -1296
  222. package/lib/providers/http/index.js +0 -640
  223. package/lib/providers/http/patch-parse5-tree.js +0 -34
  224. package/lib/providers/http/utils.js +0 -283
  225. package/lib/providers/index.js +0 -7
  226. package/lib/scripts/check-avs-registration.js +0 -28
  227. package/lib/scripts/fallbacks/crypto.js +0 -4
  228. package/lib/scripts/fallbacks/empty.js +0 -4
  229. package/lib/scripts/fallbacks/re2.js +0 -7
  230. package/lib/scripts/fallbacks/snarkjs.js +0 -10
  231. package/lib/scripts/fallbacks/stwo.js +0 -159
  232. package/lib/scripts/generate-provider-types.js +0 -101
  233. package/lib/scripts/generate-receipt.js +0 -101
  234. package/lib/scripts/generate-toprf-keys.js +0 -24
  235. package/lib/scripts/jsc-cli-rpc.js +0 -35
  236. package/lib/scripts/register-avs-operator.js +0 -3
  237. package/lib/scripts/start-server.js +0 -11
  238. package/lib/scripts/update-avs-metadata.js +0 -20
  239. package/lib/scripts/utils.js +0 -10
  240. package/lib/scripts/whitelist-operator.js +0 -16
  241. package/lib/server/create-server.js +0 -105
  242. package/lib/server/handlers/claimTeeBundle.js +0 -232
  243. package/lib/server/handlers/claimTunnel.js +0 -80
  244. package/lib/server/handlers/completeClaimOnChain.js +0 -29
  245. package/lib/server/handlers/createClaimOnChain.js +0 -32
  246. package/lib/server/handlers/createTaskOnMechain.js +0 -57
  247. package/lib/server/handlers/createTunnel.js +0 -98
  248. package/lib/server/handlers/disconnectTunnel.js +0 -8
  249. package/lib/server/handlers/fetchCertificateBytes.js +0 -57
  250. package/lib/server/handlers/index.js +0 -25
  251. package/lib/server/handlers/init.js +0 -33
  252. package/lib/server/handlers/toprf.js +0 -19
  253. package/lib/server/index.js +0 -4
  254. package/lib/server/socket.js +0 -112
  255. package/lib/server/tunnels/make-tcp-tunnel.js +0 -202
  256. package/lib/server/utils/apm.js +0 -29
  257. package/lib/server/utils/assert-valid-claim-request.js +0 -354
  258. package/lib/server/utils/config-env.js +0 -4
  259. package/lib/server/utils/dns.js +0 -24
  260. package/lib/server/utils/gcp-attestation.js +0 -237
  261. package/lib/server/utils/generics.js +0 -45
  262. package/lib/server/utils/iso.js +0 -259
  263. package/lib/server/utils/keep-alive.js +0 -38
  264. package/lib/server/utils/nitro-attestation.js +0 -249
  265. package/lib/server/utils/oprf-raw.js +0 -61
  266. package/lib/server/utils/process-handshake.js +0 -233
  267. package/lib/server/utils/proxy-session.js +0 -4
  268. package/lib/server/utils/tee-oprf-mpc-verification.js +0 -86
  269. package/lib/server/utils/tee-oprf-verification.js +0 -151
  270. package/lib/server/utils/tee-transcript-reconstruction.js +0 -140
  271. package/lib/server/utils/tee-verification.js +0 -358
  272. package/lib/server/utils/validation.js +0 -45
  273. package/lib/types/bgp.js +0 -0
  274. package/lib/types/claims.js +0 -0
  275. package/lib/types/client.js +0 -0
  276. package/lib/types/general.js +0 -0
  277. package/lib/types/handlers.js +0 -0
  278. package/lib/types/index.js +0 -10
  279. package/lib/types/providers.gen.js +0 -16
  280. package/lib/types/providers.js +0 -0
  281. package/lib/types/rpc.js +0 -0
  282. package/lib/types/signatures.js +0 -0
  283. package/lib/types/tunnel.js +0 -0
  284. package/lib/types/zk.js +0 -0
  285. package/lib/utils/auth.js +0 -71
  286. package/lib/utils/b64-json.js +0 -17
  287. package/lib/utils/bgp-listener.js +0 -123
  288. package/lib/utils/claims.js +0 -89
  289. package/lib/utils/env.js +0 -19
  290. package/lib/utils/error.js +0 -54
  291. package/lib/utils/generics.js +0 -272
  292. package/lib/utils/http-parser.js +0 -201
  293. package/lib/utils/index.browser.d.ts +0 -13
  294. package/lib/utils/index.js +0 -14
  295. package/lib/utils/logger.browser.d.ts +0 -14
  296. package/lib/utils/logger.js +0 -82
  297. package/lib/utils/prepare-packets.js +0 -69
  298. package/lib/utils/redactions.js +0 -135
  299. package/lib/utils/retries.js +0 -26
  300. package/lib/utils/signatures/eth.js +0 -31
  301. package/lib/utils/signatures/index.js +0 -12
  302. package/lib/utils/socket-base.js +0 -96
  303. package/lib/utils/tls-imports.d.ts +0 -1
  304. package/lib/utils/tls-imports.js +0 -34
  305. package/lib/utils/tls.js +0 -58
  306. package/lib/utils/ws.js +0 -22
  307. package/lib/utils/zk.js +0 -625
@@ -1,135 +0,0 @@
1
- import { base64Encode } from "@bufbuild/protobuf/wire";
2
- import { concatenateUint8Arrays } from "../utils/tls-imports.js";
3
- const REDACTION_CHAR = "*";
4
- const REDACTION_CHAR_CODE = REDACTION_CHAR.charCodeAt(0);
5
- function isRedactionCongruent(redacted, original) {
6
- for (let i = 0; i < redacted.length; i++) {
7
- const element = redacted[i];
8
- const areSame = element === original[i] || typeof element === "string" && element === REDACTION_CHAR || typeof element === "number" && element === REDACTION_CHAR_CODE;
9
- if (!areSame) {
10
- return false;
11
- }
12
- }
13
- return true;
14
- }
15
- function isFullyRedacted(redacted) {
16
- for (const element of redacted) {
17
- if (element !== REDACTION_CHAR && element !== REDACTION_CHAR_CODE) {
18
- return false;
19
- }
20
- }
21
- return true;
22
- }
23
- async function getBlocksToReveal(blocks, redact, performOprf) {
24
- const slicesWithReveal = blocks.map((block) => ({
25
- block,
26
- // copy the plaintext to avoid mutating the original
27
- redactedPlaintext: new Uint8Array(block.plaintext)
28
- }));
29
- const total = concatenateUint8Arrays(blocks.map((b) => b.plaintext));
30
- const redactions = redact(total);
31
- if (!redactions.length) {
32
- return "all";
33
- }
34
- let blockIdx = 0;
35
- let cursorInBlock = 0;
36
- let cursor = 0;
37
- for (const redaction of redactions) {
38
- await redactBlocks(redaction);
39
- }
40
- return slicesWithReveal.filter((s) => !isFullyRedacted(s.redactedPlaintext));
41
- async function redactBlocks(slice) {
42
- while (cursor < slice.fromIndex) {
43
- advance();
44
- }
45
- if (slice.hash === "oprf-raw") {
46
- const startBlockIdx = blockIdx;
47
- const startCursorInBlock = cursorInBlock;
48
- const totalLength = slice.toIndex - slice.fromIndex;
49
- const block = slicesWithReveal[blockIdx];
50
- block.oprfRawMarkers ||= [];
51
- block.oprfRawMarkers.push({
52
- dataLocation: {
53
- fromIndex: startCursorInBlock,
54
- length: totalLength
55
- }
56
- });
57
- let overshootLen = 0;
58
- while (cursor < slice.toIndex) {
59
- if (blockIdx !== startBlockIdx) {
60
- overshootLen += 1;
61
- }
62
- advance();
63
- }
64
- if (overshootLen) {
65
- slicesWithReveal[blockIdx].overshotOprfRawFromPrevBlock = { length: overshootLen };
66
- }
67
- return;
68
- }
69
- if (slice.hash) {
70
- const plaintext = total.slice(slice.fromIndex, slice.toIndex);
71
- const { nullifier, responses, mask } = await performOprf(plaintext);
72
- const toprf = {
73
- nullifier,
74
- responses,
75
- dataLocation: {
76
- fromIndex: cursorInBlock,
77
- length: slice.toIndex - slice.fromIndex
78
- },
79
- mask,
80
- plaintext
81
- };
82
- const startBlockIdx = blockIdx;
83
- const block = slicesWithReveal[blockIdx];
84
- block.toprfs ||= [];
85
- block.toprfs.push(toprf);
86
- const nullifierStr = binaryHashToStr(nullifier, toprf.dataLocation.length);
87
- let i = 0;
88
- let overshootLen = 0;
89
- while (cursor < slice.toIndex) {
90
- if (blockIdx !== startBlockIdx) {
91
- overshootLen += 1;
92
- }
93
- slicesWithReveal[blockIdx].redactedPlaintext[cursorInBlock] = nullifierStr.charCodeAt(i);
94
- advance();
95
- i += 1;
96
- }
97
- if (overshootLen) {
98
- slicesWithReveal[blockIdx].overshotToprfFromPrevBlock = { length: overshootLen };
99
- }
100
- }
101
- while (cursor < slice.toIndex) {
102
- slicesWithReveal[blockIdx].redactedPlaintext[cursorInBlock] = REDACTION_CHAR_CODE;
103
- advance();
104
- }
105
- }
106
- function advance() {
107
- cursor += 1;
108
- cursorInBlock += 1;
109
- if (cursorInBlock >= blocks[blockIdx].plaintext.length) {
110
- blockIdx += 1;
111
- cursorInBlock = 0;
112
- }
113
- }
114
- }
115
- function redactSlices(total, slices) {
116
- const redacted = new Uint8Array(total);
117
- for (const slice of slices) {
118
- for (let i = slice.fromIndex; i < slice.toIndex; i++) {
119
- redacted[i] = REDACTION_CHAR_CODE;
120
- }
121
- }
122
- return redacted;
123
- }
124
- function binaryHashToStr(hash, expLength) {
125
- return base64Encode(hash).padEnd(expLength, "0").slice(0, expLength);
126
- }
127
- export {
128
- REDACTION_CHAR,
129
- REDACTION_CHAR_CODE,
130
- binaryHashToStr,
131
- getBlocksToReveal,
132
- isFullyRedacted,
133
- isRedactionCongruent,
134
- redactSlices
135
- };
@@ -1,12 +0,0 @@
1
- import type { Logger } from '#src/types/index.ts';
2
- type RetryLoopOptions = {
3
- maxRetries?: number;
4
- logger: Logger;
5
- shouldRetry: (error: Error) => boolean;
6
- };
7
- /**
8
- * Execute a function, and upon failure -- retry
9
- * based on specified options.
10
- */
11
- export declare function executeWithRetries<T>(code: (attempt: number) => Promise<T>, { maxRetries, shouldRetry, logger, }: RetryLoopOptions): Promise<T>;
12
- export {};
@@ -1,26 +0,0 @@
1
- async function executeWithRetries(code, {
2
- maxRetries = 3,
3
- shouldRetry,
4
- logger
5
- }) {
6
- let retries = 0;
7
- while (retries < maxRetries) {
8
- try {
9
- const result = await code(retries);
10
- return result;
11
- } catch (err) {
12
- retries += 1;
13
- if (retries >= maxRetries) {
14
- throw err;
15
- }
16
- if (!shouldRetry(err)) {
17
- throw err;
18
- }
19
- logger.info({ err, retries }, "retrying failed operation");
20
- }
21
- }
22
- throw new Error("retries exhausted");
23
- }
24
- export {
25
- executeWithRetries
26
- };
@@ -1,2 +0,0 @@
1
- import type { ServiceSignatureProvider } from '#src/types/index.ts';
2
- export declare const ETH_SIGNATURE_PROVIDER: ServiceSignatureProvider;
@@ -1,31 +0,0 @@
1
- import { computeAddress, getBytes, hexlify, SigningKey, verifyMessage, Wallet } from "ethers";
2
- const ETH_SIGNATURE_PROVIDER = {
3
- getPublicKey(privateKey) {
4
- const pub = SigningKey.computePublicKey(privateKey, true);
5
- return getBytes(pub);
6
- },
7
- getAddress(publicKey) {
8
- const pubKeyHex = typeof publicKey === "string" ? publicKey : hexlify(publicKey);
9
- return computeAddress(pubKeyHex).toLowerCase();
10
- },
11
- async sign(data, privateKey) {
12
- const wallet = getEthWallet(privateKey);
13
- const signature = await wallet.signMessage(data);
14
- return getBytes(signature);
15
- },
16
- async verify(data, signature, addressBytes) {
17
- const address = typeof addressBytes === "string" ? addressBytes : hexlify(addressBytes);
18
- const signatureHex = typeof signature === "string" ? signature : hexlify(signature);
19
- const signerAddress = verifyMessage(data, signatureHex);
20
- return signerAddress.toLowerCase() === address.toLowerCase();
21
- }
22
- };
23
- function getEthWallet(privateKey) {
24
- if (!privateKey) {
25
- throw new Error("Private key missing");
26
- }
27
- return new Wallet(privateKey);
28
- }
29
- export {
30
- ETH_SIGNATURE_PROVIDER
31
- };
@@ -1,5 +0,0 @@
1
- import { ServiceSignatureType } from '#src/proto/api.ts';
2
- import type { ServiceSignatureProvider } from '#src/types/index.ts';
3
- export declare const SIGNATURES: { [key in ServiceSignatureType]: ServiceSignatureProvider; };
4
- export declare const SelectedServiceSignatureType: 1;
5
- export declare const SelectedServiceSignature: ServiceSignatureProvider;
@@ -1,12 +0,0 @@
1
- import { ServiceSignatureType } from "../../proto/api.js";
2
- import { ETH_SIGNATURE_PROVIDER } from "../../utils/signatures/eth.js";
3
- const SIGNATURES = {
4
- [ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH]: ETH_SIGNATURE_PROVIDER
5
- };
6
- const SelectedServiceSignatureType = ServiceSignatureType.SERVICE_SIGNATURE_TYPE_ETH;
7
- const SelectedServiceSignature = SIGNATURES[SelectedServiceSignatureType];
8
- export {
9
- SIGNATURES,
10
- SelectedServiceSignature,
11
- SelectedServiceSignatureType
12
- };
@@ -1,23 +0,0 @@
1
- import type { WebSocket as WSWebSocket } from 'ws';
2
- import type { InitRequest, RPCMessage } from '#src/proto/api.ts';
3
- import { RPCMessages } from '#src/proto/api.ts';
4
- import type { IAttestorSocket, Logger, RPCEvent, RPCEventMap } from '#src/types/index.ts';
5
- /**
6
- * Common AttestorSocket class used on the client & server side as the
7
- * base for their respective socket implementations.
8
- */
9
- export declare class AttestorSocket implements IAttestorSocket {
10
- private eventTarget;
11
- protected socket: WebSocket | WSWebSocket;
12
- readonly logger: Logger;
13
- readonly metadata: InitRequest;
14
- isInitialised: boolean;
15
- constructor(socket: WebSocket | WSWebSocket, metadata: InitRequest, logger: Logger);
16
- get isOpen(): boolean;
17
- get isClosed(): boolean;
18
- sendMessage(...msgs: Partial<RPCMessage>[]): Promise<RPCMessages>;
19
- dispatchRPCEvent<K extends keyof RPCEventMap>(type: K, data: RPCEventMap[K]): void;
20
- addEventListener<K extends keyof RPCEventMap>(type: K, listener: (data: RPCEvent<K>) => void): void;
21
- removeEventListener<K extends keyof RPCEventMap>(type: K, listener: (data: RPCEvent<K>) => void): void;
22
- terminateConnection(err?: Error): Promise<void>;
23
- }
@@ -1,96 +0,0 @@
1
- import { wsMessageHandler } from "../client/utils/message-handler.js";
2
- import { RPCMessages } from "../proto/api.js";
3
- import { AttestorError, makeRpcEvent, packRpcMessages } from "../utils/index.js";
4
- class AttestorSocket {
5
- eventTarget = new EventTarget();
6
- socket;
7
- logger;
8
- metadata;
9
- isInitialised = false;
10
- constructor(socket, metadata, logger) {
11
- this.socket = socket;
12
- this.metadata = metadata;
13
- this.logger = logger;
14
- socket.addEventListener("error", (event) => {
15
- const witErr = AttestorError.fromError(
16
- event.error || new Error(event.message),
17
- "ERROR_NETWORK_ERROR"
18
- );
19
- this.dispatchRPCEvent("connection-terminated", witErr);
20
- });
21
- socket.addEventListener("close", () => this.dispatchRPCEvent(
22
- "connection-terminated",
23
- new AttestorError(
24
- "ERROR_NO_ERROR",
25
- "connection closed"
26
- )
27
- ));
28
- socket.addEventListener("message", async (event) => {
29
- try {
30
- await wsMessageHandler.call(this, event.data);
31
- } catch (err) {
32
- this.logger.error({ err }, "error processing message");
33
- }
34
- });
35
- }
36
- get isOpen() {
37
- return this.socket.readyState === this.socket.OPEN;
38
- }
39
- get isClosed() {
40
- return this.socket.readyState === this.socket.CLOSED || this.socket.readyState === this.socket.CLOSING;
41
- }
42
- async sendMessage(...msgs) {
43
- if (this.isClosed) {
44
- throw new AttestorError(
45
- "ERROR_NETWORK_ERROR",
46
- "Connection closed, cannot send message"
47
- );
48
- }
49
- if (!this.isOpen) {
50
- throw new AttestorError(
51
- "ERROR_NETWORK_ERROR",
52
- "Wait for connection to open before sending message"
53
- );
54
- }
55
- const msg = packRpcMessages(...msgs);
56
- const bytes = RPCMessages.encode(msg).finish();
57
- this.logger.trace({ msg }, "sending messages");
58
- if ("sendPromise" in this.socket && this.socket.sendPromise) {
59
- await this.socket.sendPromise(bytes);
60
- } else {
61
- this.socket.send(bytes);
62
- }
63
- return msg;
64
- }
65
- dispatchRPCEvent(type, data) {
66
- const event = makeRpcEvent(type, data);
67
- this.eventTarget.dispatchEvent(event);
68
- }
69
- addEventListener(type, listener) {
70
- this.eventTarget.addEventListener(type, listener);
71
- }
72
- removeEventListener(type, listener) {
73
- this.eventTarget.removeEventListener(type, listener);
74
- }
75
- async terminateConnection(err) {
76
- if (this.isClosed) {
77
- return;
78
- }
79
- try {
80
- const witErr = err ? AttestorError.fromError(err) : new AttestorError("ERROR_NO_ERROR", "");
81
- this.dispatchRPCEvent("connection-terminated", witErr);
82
- if (this.isOpen) {
83
- await this.sendMessage({
84
- connectionTerminationAlert: witErr.toProto()
85
- });
86
- }
87
- } catch (err2) {
88
- this.logger?.error({ err: err2 }, "error terminating connection");
89
- } finally {
90
- this.socket.close();
91
- }
92
- }
93
- }
94
- export {
95
- AttestorSocket
96
- };
@@ -1 +0,0 @@
1
- export { areUint8ArraysEqual, asciiToUint8Array, concatenateUint8Arrays, crypto, decryptWrappedRecord, encryptWrappedRecord, generateIV, makeTLSClient, setCryptoImplementation, uint8ArrayToBinaryStr, uint8ArrayToDataView, CONTENT_TYPE_MAP, PACKET_TYPE, SUPPORTED_CIPHER_SUITE_MAP, SUPPORTED_NAMED_CURVES, } from '@reclaimprotocol/tls';
@@ -1,34 +0,0 @@
1
- import {
2
- areUint8ArraysEqual,
3
- asciiToUint8Array,
4
- concatenateUint8Arrays,
5
- crypto,
6
- decryptWrappedRecord,
7
- encryptWrappedRecord,
8
- generateIV,
9
- makeTLSClient,
10
- setCryptoImplementation,
11
- uint8ArrayToBinaryStr,
12
- uint8ArrayToDataView,
13
- CONTENT_TYPE_MAP,
14
- PACKET_TYPE,
15
- SUPPORTED_CIPHER_SUITE_MAP,
16
- SUPPORTED_NAMED_CURVES
17
- } from "@reclaimprotocol/tls";
18
- export {
19
- CONTENT_TYPE_MAP,
20
- PACKET_TYPE,
21
- SUPPORTED_CIPHER_SUITE_MAP,
22
- SUPPORTED_NAMED_CURVES,
23
- areUint8ArraysEqual,
24
- asciiToUint8Array,
25
- concatenateUint8Arrays,
26
- crypto,
27
- decryptWrappedRecord,
28
- encryptWrappedRecord,
29
- generateIV,
30
- makeTLSClient,
31
- setCryptoImplementation,
32
- uint8ArrayToBinaryStr,
33
- uint8ArrayToDataView
34
- };
@@ -1,2 +0,0 @@
1
- import type { TLSConnectionOptions } from '@reclaimprotocol/tls';
2
- export declare function getDefaultTlsOptions(): TLSConnectionOptions;
@@ -1,58 +0,0 @@
1
- import { SUPPORTED_NAMED_CURVES } from "../utils/tls-imports.js";
2
- import { detectEnvironment } from "../utils/env.js";
3
- const ZK_CIPHER_SUITES = [
4
- // chacha-20
5
- "TLS_CHACHA20_POLY1305_SHA256",
6
- "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
7
- "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
8
- // aes-256
9
- "TLS_AES_256_GCM_SHA384",
10
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
11
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
12
- // aes-128
13
- "TLS_AES_128_GCM_SHA256",
14
- "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
15
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
16
- "TLS_RSA_WITH_AES_128_GCM_SHA256"
17
- ];
18
- const NAMED_CURVE_LIST = detectEnvironment() === "node" ? SUPPORTED_NAMED_CURVES : SUPPORTED_NAMED_CURVES.filter((c) => c !== "X25519");
19
- TLS_ADDITIONAL_ROOT_CA_LIST.push(
20
- `-----BEGIN CERTIFICATE-----
21
- MIIEszCCA5ugAwIBAgIQCyWUIs7ZgSoVoE6ZUooO+jANBgkqhkiG9w0BAQsFADBh
22
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
23
- d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
24
- MjAeFw0xNzExMDIxMjI0MzNaFw0yNzExMDIxMjI0MzNaMGAxCzAJBgNVBAYTAlVT
25
- MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
26
- b20xHzAdBgNVBAMTFlJhcGlkU1NMIFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3
27
- DQEBAQUAA4IBDwAwggEKAoIBAQC/uVklRBI1FuJdUEkFCuDL/I3aJQiaZ6aibRHj
28
- ap/ap9zy1aYNrphe7YcaNwMoPsZvXDR+hNJOo9gbgOYVTPq8gXc84I75YKOHiVA4
29
- NrJJQZ6p2sJQyqx60HkEIjzIN+1LQLfXTlpuznToOa1hyTD0yyitFyOYwURM+/CI
30
- 8FNFMpBhw22hpeAQkOOLmsqT5QZJYeik7qlvn8gfD+XdDnk3kkuuu0eG+vuyrSGr
31
- 5uX5LRhFWlv1zFQDch/EKmd163m6z/ycx/qLa9zyvILc7cQpb+k7TLra9WE17YPS
32
- n9ANjG+ECo9PDW3N9lwhKQCNvw1gGoguyCQu7HE7BnW8eSSFAgMBAAGjggFmMIIB
33
- YjAdBgNVHQ4EFgQUDNtsgkkPSmcKuBTuesRIUojrVjgwHwYDVR0jBBgwFoAUTiJU
34
- IBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG
35
- AQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB
36
- BCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud
37
- HwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds
38
- b2JhbFJvb3RHMi5jcmwwYwYDVR0gBFwwWjA3BglghkgBhv1sAQEwKjAoBggrBgEF
39
- BQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw
40
- CAYGZ4EMAQIBMAgGBmeBDAECAjANBgkqhkiG9w0BAQsFAAOCAQEAGUSlOb4K3Wtm
41
- SlbmE50UYBHXM0SKXPqHMzk6XQUpCheF/4qU8aOhajsyRQFDV1ih/uPIg7YHRtFi
42
- CTq4G+zb43X1T77nJgSOI9pq/TqCwtukZ7u9VLL3JAq3Wdy2moKLvvC8tVmRzkAe
43
- 0xQCkRKIjbBG80MSyDX/R4uYgj6ZiNT/Zg6GI6RofgqgpDdssLc0XIRQEotxIZcK
44
- zP3pGJ9FCbMHmMLLyuBd+uCWvVcF2ogYAawufChS/PT61D9rqzPRS5I2uqa3tmIT
45
- 44JhJgWhBnFMb7AGQkvNq9KNS9dd3GWc17H/dXa1enoxzWjE0hBdFjxPhUb0W3wi
46
- 8o34/m8Fxw==
47
- -----END CERTIFICATE-----`
48
- //RapidSSL TLS RSA CA G1
49
- );
50
- function getDefaultTlsOptions() {
51
- return {
52
- cipherSuites: ZK_CIPHER_SUITES,
53
- namedCurves: NAMED_CURVE_LIST
54
- };
55
- }
56
- export {
57
- getDefaultTlsOptions
58
- };
@@ -1,7 +0,0 @@
1
- import type { WebSocket as WSWebSocket } from 'ws';
2
- export declare function makeWebSocket(url: string): WebSocket;
3
- /**
4
- * Adds the "sendPromise" fn to the given WebSocket instance,
5
- * if not already present.
6
- */
7
- export declare function promisifySend(ws: WSWebSocket): WSWebSocket;
@@ -1,22 +0,0 @@
1
- function makeWebSocket(url) {
2
- return new WebSocket(url);
3
- }
4
- function promisifySend(ws) {
5
- if (ws.sendPromise) {
6
- return ws;
7
- }
8
- ws.sendPromise = (data) => new Promise((resolve, reject) => {
9
- ws.send(data, (err) => {
10
- if (err) {
11
- reject(err);
12
- return;
13
- }
14
- resolve();
15
- });
16
- });
17
- return ws;
18
- }
19
- export {
20
- makeWebSocket,
21
- promisifySend
22
- };
@@ -1,71 +0,0 @@
1
- import type { CipherSuite } from '@reclaimprotocol/tls';
2
- import type { EncryptionAlgorithm, OPRFOperator, PrivateInput, PublicInput, ZKEngine, ZKOperator } from '@reclaimprotocol/zk-symmetric-crypto';
3
- import type { MessageReveal_MessageRevealZk as ZKReveal, MessageReveal_TOPRFProof as TOPRFProof, MessageReveal_ZKProof as ZKProof } from '#src/proto/api.ts';
4
- import { ZKProofEngine } from '#src/proto/api.ts';
5
- import type { CompleteTLSPacket, Logger, OPRFOperators, PrepareZKProofsBaseOpts, TOPRFProofParams, ZKOperators, ZKRevealInfo } from '#src/types/index.ts';
6
- type PrepareZKProofsOpts = {
7
- logger?: Logger;
8
- cipherSuite: CipherSuite;
9
- } & PrepareZKProofsBaseOpts;
10
- type ZKVerifyOpts = {
11
- cipherSuite: CipherSuite;
12
- ciphertext: Uint8Array;
13
- zkReveal: ZKReveal;
14
- iv: Uint8Array;
15
- recordNumber: number;
16
- toprfOvershotNullifier?: Uint8Array;
17
- /**
18
- * Get the ciphertext of the next packet.
19
- * @param overshotNullifier The TOPRF nullifier that overshoots into
20
- * the next packet. This should be passed into the verifyZkPacket function
21
- * of the next packet.
22
- */
23
- getNextPacket: (overshotNullifier: Uint8Array) => (Uint8Array | undefined);
24
- logger?: Logger;
25
- /** get ZK operator for specified algorithm */
26
- zkOperators?: ZKOperators;
27
- oprfOperators?: OPRFOperators;
28
- zkEngine?: ZKEngine;
29
- };
30
- type ZKProofToGenerate = {
31
- startIdx: number;
32
- redactedPlaintext: Uint8Array;
33
- privateInput: PrivateInput;
34
- publicInput: PublicInput;
35
- };
36
- type TOPRFProofToGenerate = {
37
- privateInput: PrivateInput;
38
- publicInput: PublicInput;
39
- toprf: TOPRFProofParams;
40
- startIdx: number;
41
- };
42
- type ZKPacketToProve = {
43
- onGeneratedProofs(proofs: ZKProof[], toprfs: TOPRFProof[]): void;
44
- algorithm: EncryptionAlgorithm;
45
- proofsToGenerate: ZKProofToGenerate[];
46
- toprfsToGenerate: TOPRFProofToGenerate[];
47
- iv: Uint8Array;
48
- };
49
- export declare function makeZkProofGenerator({ zkOperators, oprfOperators, logger, zkProofConcurrency, cipherSuite, zkEngine }: PrepareZKProofsOpts): Promise<{
50
- /**
51
- * Adds the given packet to the list of packets to
52
- * generate ZK proofs for.
53
- *
54
- * Call `generateProofs()` to finally generate the proofs
55
- */
56
- addPacketToProve(packet: CompleteTLSPacket, { redactedPlaintext, toprfs, overshotToprfFromPrevBlock }: ZKRevealInfo, onGeneratedProofs: ZKPacketToProve["onGeneratedProofs"], getNextPacket: () => CompleteTLSPacket | undefined): Promise<void>;
57
- getTotalChunksToProve(): number;
58
- generateProofs(onChunkDone?: () => void): Promise<void>;
59
- }>;
60
- /**
61
- * Verify the given ZK proof
62
- */
63
- export declare function verifyZkPacket({ cipherSuite, ciphertext, zkReveal, zkOperators, oprfOperators, logger, zkEngine, iv, recordNumber, toprfOvershotNullifier, getNextPacket }: ZKVerifyOpts): Promise<{
64
- redactedPlaintext: Uint8Array<ArrayBuffer>;
65
- oprfRawMarkers: import("#src/proto/api.ts").MessageReveal_OPRFRawMarker[];
66
- }>;
67
- export declare function makeDefaultZkOperator(algorithm: EncryptionAlgorithm, zkEngine: ZKEngine, logger: Logger): ZKOperator;
68
- export declare function makeDefaultOPRFOperator(algorithm: EncryptionAlgorithm, zkEngine: ZKEngine, logger: Logger): OPRFOperator;
69
- export declare function getEngineString(engine: ZKProofEngine): "snarkjs" | "gnark" | "stwo";
70
- export declare function getEngineProto(engine: ZKEngine): 0 | 1 | 2;
71
- export {};