@reclaimprotocol/attestor-core 5.0.1-beta.9 → 5.0.2-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 (310) hide show
  1. package/browser/resources/attestor-browser.min.mjs +4513 -0
  2. package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +1 -1
  3. package/lib/external-rpc/index.js +10397 -3
  4. package/lib/index.js +8325 -10
  5. package/lib/server/utils/generics.d.ts +1 -1
  6. package/lib/server/utils/proxy-session.d.ts +1 -1
  7. package/lib/types/general.d.ts +0 -1
  8. package/lib/types/providers.d.ts +3 -2
  9. package/lib/types/signatures.d.ts +1 -2
  10. package/lib/utils/generics.d.ts +1 -6
  11. package/lib/utils/index.d.ts +0 -1
  12. package/package.json +9 -11
  13. package/lib/avs/abis/avsDirectoryABI.js +0 -343
  14. package/lib/avs/abis/delegationABI.js +0 -4
  15. package/lib/avs/abis/registryABI.js +0 -728
  16. package/lib/avs/client/create-claim-on-avs.js +0 -168
  17. package/lib/avs/config.js +0 -26
  18. package/lib/avs/contracts/ReclaimServiceManager.js +0 -0
  19. package/lib/avs/contracts/common.js +0 -0
  20. package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  21. package/lib/avs/contracts/factories/index.js +0 -4
  22. package/lib/avs/contracts/index.js +0 -6
  23. package/lib/avs/types/index.js +0 -0
  24. package/lib/avs/utils/contracts.js +0 -53
  25. package/lib/avs/utils/register.js +0 -74
  26. package/lib/avs/utils/tasks.js +0 -48
  27. package/lib/browser/avs/abis/avsDirectoryABI.d.ts +0 -60
  28. package/lib/browser/avs/abis/avsDirectoryABI.js +0 -343
  29. package/lib/browser/avs/abis/delegationABI.d.ts +0 -126
  30. package/lib/browser/avs/abis/delegationABI.js +0 -4
  31. package/lib/browser/avs/abis/registryABI.d.ts +0 -136
  32. package/lib/browser/avs/abis/registryABI.js +0 -728
  33. package/lib/browser/avs/client/create-claim-on-avs.d.ts +0 -12
  34. package/lib/browser/avs/client/create-claim-on-avs.js +0 -168
  35. package/lib/browser/avs/config.d.ts +0 -7
  36. package/lib/browser/avs/config.js +0 -26
  37. package/lib/browser/avs/contracts/ReclaimServiceManager.d.ts +0 -601
  38. package/lib/browser/avs/contracts/ReclaimServiceManager.js +0 -0
  39. package/lib/browser/avs/contracts/common.d.ts +0 -50
  40. package/lib/browser/avs/contracts/common.js +0 -0
  41. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -890
  42. package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
  43. package/lib/browser/avs/contracts/factories/index.d.ts +0 -1
  44. package/lib/browser/avs/contracts/factories/index.js +0 -4
  45. package/lib/browser/avs/contracts/index.d.ts +0 -3
  46. package/lib/browser/avs/contracts/index.js +0 -6
  47. package/lib/browser/avs/types/index.d.ts +0 -55
  48. package/lib/browser/avs/types/index.js +0 -0
  49. package/lib/browser/avs/utils/contracts.d.ts +0 -21
  50. package/lib/browser/avs/utils/contracts.js +0 -53
  51. package/lib/browser/avs/utils/register.d.ts +0 -27
  52. package/lib/browser/avs/utils/register.js +0 -74
  53. package/lib/browser/avs/utils/tasks.d.ts +0 -22
  54. package/lib/browser/avs/utils/tasks.js +0 -48
  55. package/lib/browser/client/create-claim.d.ts +0 -5
  56. package/lib/browser/client/create-claim.js +0 -461
  57. package/lib/browser/client/index.d.ts +0 -3
  58. package/lib/browser/client/index.js +0 -3
  59. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
  60. package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  61. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -26
  62. package/lib/browser/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  63. package/lib/browser/client/utils/attestor-pool.d.ts +0 -8
  64. package/lib/browser/client/utils/attestor-pool.js +0 -24
  65. package/lib/browser/client/utils/client-socket.d.ts +0 -11
  66. package/lib/browser/client/utils/client-socket.js +0 -120
  67. package/lib/browser/client/utils/message-handler.d.ts +0 -4
  68. package/lib/browser/client/utils/message-handler.js +0 -97
  69. package/lib/browser/config/index.d.ts +0 -31
  70. package/lib/browser/config/index.js +0 -62
  71. package/lib/browser/external-rpc/benchmark.d.ts +0 -1
  72. package/lib/browser/external-rpc/benchmark.js +0 -82
  73. package/lib/browser/external-rpc/event-bus.d.ts +0 -7
  74. package/lib/browser/external-rpc/event-bus.js +0 -17
  75. package/lib/browser/external-rpc/global.d.js +0 -0
  76. package/lib/browser/external-rpc/handle-incoming-msg.d.ts +0 -2
  77. package/lib/browser/external-rpc/handle-incoming-msg.js +0 -241
  78. package/lib/browser/external-rpc/index.d.ts +0 -3
  79. package/lib/browser/external-rpc/index.js +0 -3
  80. package/lib/browser/external-rpc/jsc-polyfills/1.d.ts +0 -14
  81. package/lib/browser/external-rpc/jsc-polyfills/1.js +0 -80
  82. package/lib/browser/external-rpc/jsc-polyfills/2.d.ts +0 -1
  83. package/lib/browser/external-rpc/jsc-polyfills/2.js +0 -15
  84. package/lib/browser/external-rpc/jsc-polyfills/event.d.ts +0 -10
  85. package/lib/browser/external-rpc/jsc-polyfills/event.js +0 -19
  86. package/lib/browser/external-rpc/jsc-polyfills/index.d.ts +0 -2
  87. package/lib/browser/external-rpc/jsc-polyfills/index.js +0 -2
  88. package/lib/browser/external-rpc/jsc-polyfills/ws.d.ts +0 -21
  89. package/lib/browser/external-rpc/jsc-polyfills/ws.js +0 -83
  90. package/lib/browser/external-rpc/setup-browser.d.ts +0 -6
  91. package/lib/browser/external-rpc/setup-browser.js +0 -33
  92. package/lib/browser/external-rpc/setup-jsc.d.ts +0 -24
  93. package/lib/browser/external-rpc/setup-jsc.js +0 -22
  94. package/lib/browser/external-rpc/types.d.ts +0 -213
  95. package/lib/browser/external-rpc/types.js +0 -0
  96. package/lib/browser/external-rpc/utils.d.ts +0 -20
  97. package/lib/browser/external-rpc/utils.js +0 -100
  98. package/lib/browser/external-rpc/zk.d.ts +0 -14
  99. package/lib/browser/external-rpc/zk.js +0 -58
  100. package/lib/browser/index.browser.js +0 -13
  101. package/lib/browser/index.d.ts +0 -9
  102. package/lib/browser/index.js +0 -13
  103. package/lib/browser/mechain/abis/governanceABI.d.ts +0 -50
  104. package/lib/browser/mechain/abis/governanceABI.js +0 -461
  105. package/lib/browser/mechain/abis/taskABI.d.ts +0 -157
  106. package/lib/browser/mechain/abis/taskABI.js +0 -512
  107. package/lib/browser/mechain/client/create-claim-on-mechain.d.ts +0 -10
  108. package/lib/browser/mechain/client/create-claim-on-mechain.js +0 -33
  109. package/lib/browser/mechain/client/index.d.ts +0 -1
  110. package/lib/browser/mechain/client/index.js +0 -1
  111. package/lib/browser/mechain/constants/index.d.ts +0 -3
  112. package/lib/browser/mechain/constants/index.js +0 -8
  113. package/lib/browser/mechain/index.d.ts +0 -2
  114. package/lib/browser/mechain/index.js +0 -2
  115. package/lib/browser/mechain/types/index.d.ts +0 -23
  116. package/lib/browser/mechain/types/index.js +0 -0
  117. package/lib/browser/proto/api.d.ts +0 -651
  118. package/lib/browser/proto/api.js +0 -4250
  119. package/lib/browser/proto/tee-bundle.d.ts +0 -156
  120. package/lib/browser/proto/tee-bundle.js +0 -1296
  121. package/lib/browser/providers/http/index.d.ts +0 -18
  122. package/lib/browser/providers/http/index.js +0 -640
  123. package/lib/browser/providers/http/patch-parse5-tree.d.ts +0 -6
  124. package/lib/browser/providers/http/patch-parse5-tree.js +0 -34
  125. package/lib/browser/providers/http/utils.d.ts +0 -77
  126. package/lib/browser/providers/http/utils.js +0 -283
  127. package/lib/browser/providers/index.d.ts +0 -4
  128. package/lib/browser/providers/index.js +0 -7
  129. package/lib/browser/types/bgp.d.ts +0 -11
  130. package/lib/browser/types/bgp.js +0 -0
  131. package/lib/browser/types/claims.d.ts +0 -70
  132. package/lib/browser/types/claims.js +0 -0
  133. package/lib/browser/types/client.d.ts +0 -163
  134. package/lib/browser/types/client.js +0 -0
  135. package/lib/browser/types/general.d.ts +0 -77
  136. package/lib/browser/types/general.js +0 -0
  137. package/lib/browser/types/handlers.d.ts +0 -10
  138. package/lib/browser/types/handlers.js +0 -0
  139. package/lib/browser/types/index.d.ts +0 -10
  140. package/lib/browser/types/index.js +0 -10
  141. package/lib/browser/types/providers.d.ts +0 -161
  142. package/lib/browser/types/providers.gen.d.ts +0 -443
  143. package/lib/browser/types/providers.gen.js +0 -16
  144. package/lib/browser/types/providers.js +0 -0
  145. package/lib/browser/types/rpc.d.ts +0 -35
  146. package/lib/browser/types/rpc.js +0 -0
  147. package/lib/browser/types/signatures.d.ts +0 -28
  148. package/lib/browser/types/signatures.js +0 -0
  149. package/lib/browser/types/tunnel.d.ts +0 -18
  150. package/lib/browser/types/tunnel.js +0 -0
  151. package/lib/browser/types/zk.d.ts +0 -38
  152. package/lib/browser/types/zk.js +0 -0
  153. package/lib/browser/utils/auth.d.ts +0 -8
  154. package/lib/browser/utils/auth.js +0 -71
  155. package/lib/browser/utils/b64-json.d.ts +0 -2
  156. package/lib/browser/utils/b64-json.js +0 -17
  157. package/lib/browser/utils/claims.d.ts +0 -33
  158. package/lib/browser/utils/claims.js +0 -89
  159. package/lib/browser/utils/env.d.ts +0 -3
  160. package/lib/browser/utils/env.js +0 -19
  161. package/lib/browser/utils/error.d.ts +0 -26
  162. package/lib/browser/utils/error.js +0 -54
  163. package/lib/browser/utils/generics.d.ts +0 -119
  164. package/lib/browser/utils/generics.js +0 -272
  165. package/lib/browser/utils/http-parser.d.ts +0 -59
  166. package/lib/browser/utils/http-parser.js +0 -201
  167. package/lib/browser/utils/index.browser.js +0 -13
  168. package/lib/browser/utils/index.d.ts +0 -13
  169. package/lib/browser/utils/index.js +0 -13
  170. package/lib/browser/utils/logger.browser.js +0 -88
  171. package/lib/browser/utils/logger.d.ts +0 -14
  172. package/lib/browser/utils/logger.js +0 -88
  173. package/lib/browser/utils/prepare-packets.d.ts +0 -16
  174. package/lib/browser/utils/prepare-packets.js +0 -69
  175. package/lib/browser/utils/redactions.d.ts +0 -73
  176. package/lib/browser/utils/redactions.js +0 -135
  177. package/lib/browser/utils/retries.d.ts +0 -12
  178. package/lib/browser/utils/retries.js +0 -26
  179. package/lib/browser/utils/signatures/eth.d.ts +0 -2
  180. package/lib/browser/utils/signatures/eth.js +0 -31
  181. package/lib/browser/utils/signatures/index.d.ts +0 -5
  182. package/lib/browser/utils/signatures/index.js +0 -12
  183. package/lib/browser/utils/socket-base.d.ts +0 -23
  184. package/lib/browser/utils/socket-base.js +0 -96
  185. package/lib/browser/utils/tls-imports.d.ts +0 -21
  186. package/lib/browser/utils/tls-imports.js +0 -71
  187. package/lib/browser/utils/tls.d.ts +0 -2
  188. package/lib/browser/utils/tls.js +0 -58
  189. package/lib/browser/utils/ws.d.ts +0 -7
  190. package/lib/browser/utils/ws.js +0 -22
  191. package/lib/browser/utils/zk.d.ts +0 -71
  192. package/lib/browser/utils/zk.js +0 -625
  193. package/lib/client/create-claim.js +0 -461
  194. package/lib/client/index.js +0 -3
  195. package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
  196. package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -127
  197. package/lib/client/utils/attestor-pool.js +0 -24
  198. package/lib/client/utils/client-socket.js +0 -120
  199. package/lib/client/utils/message-handler.js +0 -97
  200. package/lib/config/index.js +0 -62
  201. package/lib/external-rpc/benchmark.js +0 -82
  202. package/lib/external-rpc/event-bus.js +0 -17
  203. package/lib/external-rpc/global.d.js +0 -0
  204. package/lib/external-rpc/handle-incoming-msg.js +0 -241
  205. package/lib/external-rpc/jsc-polyfills/1.js +0 -80
  206. package/lib/external-rpc/jsc-polyfills/2.js +0 -15
  207. package/lib/external-rpc/jsc-polyfills/event.js +0 -19
  208. package/lib/external-rpc/jsc-polyfills/index.js +0 -2
  209. package/lib/external-rpc/jsc-polyfills/ws.js +0 -83
  210. package/lib/external-rpc/setup-browser.js +0 -33
  211. package/lib/external-rpc/setup-jsc.js +0 -22
  212. package/lib/external-rpc/types.js +0 -0
  213. package/lib/external-rpc/utils.js +0 -100
  214. package/lib/external-rpc/zk.js +0 -58
  215. package/lib/index.browser.d.ts +0 -9
  216. package/lib/mechain/abis/governanceABI.js +0 -461
  217. package/lib/mechain/abis/taskABI.js +0 -512
  218. package/lib/mechain/client/create-claim-on-mechain.js +0 -33
  219. package/lib/mechain/client/index.js +0 -1
  220. package/lib/mechain/constants/index.js +0 -8
  221. package/lib/mechain/index.js +0 -2
  222. package/lib/mechain/types/index.js +0 -0
  223. package/lib/proto/api.js +0 -4250
  224. package/lib/proto/tee-bundle.js +0 -1296
  225. package/lib/providers/http/index.js +0 -640
  226. package/lib/providers/http/patch-parse5-tree.js +0 -34
  227. package/lib/providers/http/utils.js +0 -283
  228. package/lib/providers/index.js +0 -7
  229. package/lib/scripts/check-avs-registration.js +0 -28
  230. package/lib/scripts/fallbacks/crypto.js +0 -4
  231. package/lib/scripts/fallbacks/empty.js +0 -4
  232. package/lib/scripts/fallbacks/re2.js +0 -7
  233. package/lib/scripts/fallbacks/snarkjs.js +0 -10
  234. package/lib/scripts/fallbacks/stwo.js +0 -159
  235. package/lib/scripts/generate-provider-types.js +0 -101
  236. package/lib/scripts/generate-receipt.js +0 -101
  237. package/lib/scripts/generate-toprf-keys.js +0 -24
  238. package/lib/scripts/jsc-cli-rpc.js +0 -35
  239. package/lib/scripts/register-avs-operator.js +0 -3
  240. package/lib/scripts/start-server.js +0 -11
  241. package/lib/scripts/update-avs-metadata.js +0 -20
  242. package/lib/scripts/utils.js +0 -10
  243. package/lib/scripts/whitelist-operator.js +0 -16
  244. package/lib/server/create-server.js +0 -105
  245. package/lib/server/handlers/claimTeeBundle.js +0 -232
  246. package/lib/server/handlers/claimTunnel.js +0 -80
  247. package/lib/server/handlers/completeClaimOnChain.js +0 -29
  248. package/lib/server/handlers/createClaimOnChain.js +0 -32
  249. package/lib/server/handlers/createTaskOnMechain.js +0 -57
  250. package/lib/server/handlers/createTunnel.js +0 -98
  251. package/lib/server/handlers/disconnectTunnel.js +0 -8
  252. package/lib/server/handlers/fetchCertificateBytes.js +0 -57
  253. package/lib/server/handlers/index.js +0 -25
  254. package/lib/server/handlers/init.js +0 -33
  255. package/lib/server/handlers/toprf.js +0 -19
  256. package/lib/server/index.js +0 -4
  257. package/lib/server/socket.js +0 -112
  258. package/lib/server/tunnels/make-tcp-tunnel.js +0 -202
  259. package/lib/server/utils/apm.js +0 -29
  260. package/lib/server/utils/assert-valid-claim-request.js +0 -354
  261. package/lib/server/utils/config-env.js +0 -4
  262. package/lib/server/utils/dns.js +0 -24
  263. package/lib/server/utils/gcp-attestation.js +0 -237
  264. package/lib/server/utils/generics.js +0 -45
  265. package/lib/server/utils/iso.js +0 -259
  266. package/lib/server/utils/keep-alive.js +0 -38
  267. package/lib/server/utils/nitro-attestation.js +0 -249
  268. package/lib/server/utils/oprf-raw.js +0 -61
  269. package/lib/server/utils/process-handshake.js +0 -233
  270. package/lib/server/utils/proxy-session.js +0 -4
  271. package/lib/server/utils/tee-oprf-mpc-verification.js +0 -86
  272. package/lib/server/utils/tee-oprf-verification.js +0 -151
  273. package/lib/server/utils/tee-transcript-reconstruction.js +0 -140
  274. package/lib/server/utils/tee-verification.js +0 -358
  275. package/lib/server/utils/validation.js +0 -45
  276. package/lib/types/bgp.js +0 -0
  277. package/lib/types/claims.js +0 -0
  278. package/lib/types/client.js +0 -0
  279. package/lib/types/general.js +0 -0
  280. package/lib/types/handlers.js +0 -0
  281. package/lib/types/index.js +0 -10
  282. package/lib/types/providers.gen.js +0 -16
  283. package/lib/types/providers.js +0 -0
  284. package/lib/types/rpc.js +0 -0
  285. package/lib/types/signatures.js +0 -0
  286. package/lib/types/tunnel.js +0 -0
  287. package/lib/types/zk.js +0 -0
  288. package/lib/utils/auth.js +0 -71
  289. package/lib/utils/b64-json.js +0 -17
  290. package/lib/utils/bgp-listener.js +0 -123
  291. package/lib/utils/claims.js +0 -89
  292. package/lib/utils/env.js +0 -19
  293. package/lib/utils/error.js +0 -54
  294. package/lib/utils/generics.js +0 -272
  295. package/lib/utils/http-parser.js +0 -201
  296. package/lib/utils/index.browser.d.ts +0 -13
  297. package/lib/utils/index.js +0 -14
  298. package/lib/utils/logger.browser.d.ts +0 -14
  299. package/lib/utils/logger.js +0 -82
  300. package/lib/utils/prepare-packets.js +0 -69
  301. package/lib/utils/redactions.js +0 -135
  302. package/lib/utils/retries.js +0 -26
  303. package/lib/utils/signatures/eth.js +0 -31
  304. package/lib/utils/signatures/index.js +0 -12
  305. package/lib/utils/socket-base.js +0 -96
  306. package/lib/utils/tls-imports.d.ts +0 -21
  307. package/lib/utils/tls-imports.js +0 -71
  308. package/lib/utils/tls.js +0 -58
  309. package/lib/utils/ws.js +0 -22
  310. package/lib/utils/zk.js +0 -625
@@ -1,82 +0,0 @@
1
- import { pino, stdTimeFunctions } from "pino";
2
- import { getEnvVariable } from "../utils/env.js";
3
- const PII_PROPERTIES = ["ownerPrivateKey", "secretParams"];
4
- const redactedText = "[REDACTED]";
5
- const envLevel = getEnvVariable("LOG_LEVEL");
6
- let logger = pino();
7
- makeLogger(false, envLevel);
8
- function makeLogger(redactPii, level, onLog) {
9
- const opts = {
10
- // Log human readable time stamps instead of epoch time
11
- timestamp: stdTimeFunctions.isoTime
12
- };
13
- if (redactPii) {
14
- opts.formatters = { log: redact };
15
- opts.serializers = { redact };
16
- opts.browser = {
17
- write: {
18
- fatal: (log) => writeLog("fatal", log),
19
- error: (log) => writeLog("error", log),
20
- warn: (log) => writeLog("warn", log),
21
- info: (log) => writeLog("info", log),
22
- debug: (log) => writeLog("debug", log),
23
- trace: (log) => writeLog("trace", log)
24
- }
25
- };
26
- }
27
- const pLogger = pino(opts);
28
- pLogger.level = level || "info";
29
- logger = pLogger;
30
- return pLogger;
31
- function writeLog(level2, log) {
32
- log = redact(log);
33
- const { msg, ...obj } = log;
34
- if (console[level2]) {
35
- console[level2](obj, msg);
36
- } else {
37
- console.log(obj, msg);
38
- }
39
- onLog?.(level2, log);
40
- }
41
- }
42
- function isObjectProperty(property) {
43
- return typeof property === "object" && !Array.isArray(property) && property !== null;
44
- }
45
- function getReplacer() {
46
- const references = /* @__PURE__ */ new WeakSet();
47
- return function(key, value) {
48
- const isObject = typeof value === "object" && value !== null;
49
- if (isObject) {
50
- if (references.has(value)) {
51
- return "[CIRCULAR]";
52
- }
53
- references.add(value);
54
- }
55
- return value;
56
- };
57
- }
58
- function redact(json) {
59
- const isObject = isObjectProperty(json);
60
- if (!isObject && !Array.isArray(json)) {
61
- return json;
62
- }
63
- const redacted = JSON.parse(JSON.stringify(json, getReplacer()));
64
- for (const prop in redacted) {
65
- if (PII_PROPERTIES.includes(prop)) {
66
- redacted[prop] = redactedText;
67
- }
68
- if (Array.isArray(redacted[prop])) {
69
- for (const [index, value] of redacted[prop].entries()) {
70
- redacted[prop][index] = redact(value);
71
- }
72
- } else if (isObjectProperty(redacted[prop])) {
73
- redacted[prop] = redact(redacted[prop]);
74
- }
75
- }
76
- return redacted;
77
- }
78
- export {
79
- logger,
80
- makeLogger,
81
- redact
82
- };
@@ -1,69 +0,0 @@
1
- import { concatenateUint8Arrays, crypto } from "../utils/tls-imports.js";
2
- import {
3
- TranscriptMessageSenderType
4
- } from "../proto/api.js";
5
- import { makeZkProofGenerator } from "../utils/zk.js";
6
- async function preparePacketsForReveal(tlsTranscript, reveals, { onZkProgress, ...opts }) {
7
- const transcript = [];
8
- const proofGenerator = await makeZkProofGenerator(opts);
9
- let zkPacketsDone = 0;
10
- await Promise.all(tlsTranscript.map(async ({ message, sender }, i) => {
11
- const msg = {
12
- sender: sender === "client" ? TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_CLIENT : TranscriptMessageSenderType.TRANSCRIPT_MESSAGE_SENDER_TYPE_SERVER,
13
- message: message.data,
14
- reveal: void 0
15
- };
16
- transcript.push(msg);
17
- const reveal = reveals.get(message);
18
- if (!reveal || message.type === "plaintext") {
19
- return;
20
- }
21
- switch (reveal?.type) {
22
- case "complete":
23
- msg.reveal = {
24
- directReveal: {
25
- key: await crypto.exportKey(message.encKey),
26
- iv: message.fixedIv,
27
- recordNumber: message.recordNumber
28
- }
29
- };
30
- break;
31
- case "zk": {
32
- reveal.redactedPlaintext = concatenateUint8Arrays([
33
- reveal.redactedPlaintext,
34
- message.plaintext.slice(reveal.redactedPlaintext.length)
35
- ]);
36
- const oprfRawMarkers = reveal.oprfRawMarkers?.map((m) => ({
37
- dataLocation: m.dataLocation
38
- })) || [];
39
- const overshotOprfRawLength = reveal.overshotOprfRawFromPrevBlock?.length ?? 0;
40
- await proofGenerator.addPacketToProve(
41
- message,
42
- reveal,
43
- (proofs, toprfs) => msg.reveal = {
44
- zkReveal: { proofs, toprfs, oprfRawMarkers, overshotOprfRawLength }
45
- },
46
- () => {
47
- const next = tlsTranscript.slice(i + 1).find((t) => t.sender === sender);
48
- return next?.message;
49
- }
50
- );
51
- break;
52
- }
53
- default:
54
- break;
55
- }
56
- }));
57
- const zkPacketsTotal = proofGenerator.getTotalChunksToProve();
58
- onZkProgress?.(zkPacketsDone, zkPacketsTotal);
59
- await proofGenerator.generateProofs(
60
- () => {
61
- zkPacketsDone += 1;
62
- onZkProgress?.(zkPacketsDone, zkPacketsTotal);
63
- }
64
- );
65
- return transcript;
66
- }
67
- export {
68
- preparePacketsForReveal
69
- };
@@ -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,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,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,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,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,21 +0,0 @@
1
- /**
2
- * Convert ASCII string to Uint8Array
3
- */
4
- export declare function asciiToUint8Array(str: string): Uint8Array;
5
- /**
6
- * Concatenate multiple Uint8Arrays into one
7
- */
8
- export declare function concatenateUint8Arrays(arrays: Uint8Array[]): Uint8Array;
9
- /**
10
- * Check if two Uint8Arrays are equal
11
- */
12
- export declare function areUint8ArraysEqual(a: Uint8Array, b: Uint8Array): boolean;
13
- /**
14
- * Convert Uint8Array to binary string
15
- */
16
- export declare function uint8ArrayToBinaryStr(arr: Uint8Array): string;
17
- /**
18
- * Convert Uint8Array to DataView
19
- */
20
- export declare function uint8ArrayToDataView(arr: Uint8Array): DataView;
21
- export { crypto, decryptWrappedRecord, encryptWrappedRecord, generateIV, makeTLSClient, setCryptoImplementation, CONTENT_TYPE_MAP, PACKET_TYPE, SUPPORTED_CIPHER_SUITE_MAP, SUPPORTED_NAMED_CURVES, } from '@reclaimprotocol/tls';
@@ -1,71 +0,0 @@
1
- function asciiToUint8Array(str) {
2
- const bytes = new Uint8Array(str.length);
3
- for (let i = 0; i < str.length; i++) {
4
- const charCode = str.charCodeAt(i);
5
- if (charCode < 0 || charCode > 255) {
6
- throw new Error(`Invalid ASCII character at index ${i}: ${str[i]}`);
7
- }
8
- bytes[i] = charCode;
9
- }
10
- return bytes;
11
- }
12
- function concatenateUint8Arrays(arrays) {
13
- const totalLength = arrays.reduce((acc, curr) => acc + curr.length, 0);
14
- const result = new Uint8Array(totalLength);
15
- let offset = 0;
16
- for (const arr of arrays) {
17
- result.set(arr, offset);
18
- offset += arr.length;
19
- }
20
- return result;
21
- }
22
- function areUint8ArraysEqual(a, b) {
23
- if (a.length !== b.length) {
24
- return false;
25
- }
26
- for (let i = 0; i < a.length; i++) {
27
- if (a[i] !== b[i]) {
28
- return false;
29
- }
30
- }
31
- return true;
32
- }
33
- function uint8ArrayToBinaryStr(arr) {
34
- let str = "";
35
- for (const byte of arr) {
36
- str += String.fromCharCode(byte);
37
- }
38
- return str;
39
- }
40
- function uint8ArrayToDataView(arr) {
41
- return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
42
- }
43
- import {
44
- crypto,
45
- decryptWrappedRecord,
46
- encryptWrappedRecord,
47
- generateIV,
48
- makeTLSClient,
49
- setCryptoImplementation,
50
- CONTENT_TYPE_MAP,
51
- PACKET_TYPE,
52
- SUPPORTED_CIPHER_SUITE_MAP,
53
- SUPPORTED_NAMED_CURVES
54
- } from "@reclaimprotocol/tls";
55
- export {
56
- CONTENT_TYPE_MAP,
57
- PACKET_TYPE,
58
- SUPPORTED_CIPHER_SUITE_MAP,
59
- SUPPORTED_NAMED_CURVES,
60
- areUint8ArraysEqual,
61
- asciiToUint8Array,
62
- concatenateUint8Arrays,
63
- crypto,
64
- decryptWrappedRecord,
65
- encryptWrappedRecord,
66
- generateIV,
67
- makeTLSClient,
68
- setCryptoImplementation,
69
- uint8ArrayToBinaryStr,
70
- uint8ArrayToDataView
71
- };
package/lib/utils/tls.js DELETED
@@ -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
- };
package/lib/utils/ws.js DELETED
@@ -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
- };