@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,259 +0,0 @@
1
- const countries = {
2
- AF: "Afghanistan",
3
- AX: "\xC5land Islands",
4
- AL: "Albania",
5
- DZ: "Algeria",
6
- AS: "American Samoa",
7
- AD: "Andorra",
8
- AO: "Angola",
9
- AI: "Anguilla",
10
- AQ: "Antarctica",
11
- AG: "Antigua and Barbuda",
12
- AR: "Argentina",
13
- AM: "Armenia",
14
- AW: "Aruba",
15
- AU: "Australia",
16
- AT: "Austria",
17
- AZ: "Azerbaijan",
18
- BS: "Bahamas",
19
- BH: "Bahrain",
20
- BD: "Bangladesh",
21
- BB: "Barbados",
22
- BY: "Belarus",
23
- BE: "Belgium",
24
- BZ: "Belize",
25
- BJ: "Benin",
26
- BM: "Bermuda",
27
- BT: "Bhutan",
28
- BO: "Bolivia, Plurinational State of",
29
- BQ: "Bonaire, Sint Eustatius and Saba",
30
- BA: "Bosnia and Herzegovina",
31
- BW: "Botswana",
32
- BV: "Bouvet Island",
33
- BR: "Brazil",
34
- IO: "British Indian Ocean Territory",
35
- BN: "Brunei Darussalam",
36
- BG: "Bulgaria",
37
- BF: "Burkina Faso",
38
- BI: "Burundi",
39
- KH: "Cambodia",
40
- CM: "Cameroon",
41
- CA: "Canada",
42
- CV: "Cape Verde",
43
- KY: "Cayman Islands",
44
- CF: "Central African Republic",
45
- TD: "Chad",
46
- CL: "Chile",
47
- CN: "China",
48
- CX: "Christmas Island",
49
- CC: "Cocos (Keeling) Islands",
50
- CO: "Colombia",
51
- KM: "Comoros",
52
- CG: "Congo",
53
- CD: "Congo, the Democratic Republic of the",
54
- CK: "Cook Islands",
55
- CR: "Costa Rica",
56
- CI: "C\xF4te d'Ivoire",
57
- HR: "Croatia",
58
- CU: "Cuba",
59
- CW: "Cura\xE7ao",
60
- CY: "Cyprus",
61
- CZ: "Czech Republic",
62
- DK: "Denmark",
63
- DJ: "Djibouti",
64
- DM: "Dominica",
65
- DO: "Dominican Republic",
66
- EC: "Ecuador",
67
- EG: "Egypt",
68
- SV: "El Salvador",
69
- GQ: "Equatorial Guinea",
70
- ER: "Eritrea",
71
- EE: "Estonia",
72
- ET: "Ethiopia",
73
- FK: "Falkland Islands (Malvinas)",
74
- FO: "Faroe Islands",
75
- FJ: "Fiji",
76
- FI: "Finland",
77
- FR: "France",
78
- GF: "French Guiana",
79
- PF: "French Polynesia",
80
- TF: "French Southern Territories",
81
- GA: "Gabon",
82
- GM: "Gambia",
83
- GE: "Georgia",
84
- DE: "Germany",
85
- GH: "Ghana",
86
- GI: "Gibraltar",
87
- GR: "Greece",
88
- GL: "Greenland",
89
- GD: "Grenada",
90
- GP: "Guadeloupe",
91
- GU: "Guam",
92
- GT: "Guatemala",
93
- GG: "Guernsey",
94
- GN: "Guinea",
95
- GW: "Guinea-Bissau",
96
- GY: "Guyana",
97
- HT: "Haiti",
98
- HM: "Heard Island and McDonald Mcdonald Islands",
99
- VA: "Holy See (Vatican City State)",
100
- HN: "Honduras",
101
- HK: "Hong Kong",
102
- HU: "Hungary",
103
- IS: "Iceland",
104
- IN: "India",
105
- ID: "Indonesia",
106
- IR: "Iran, Islamic Republic of",
107
- IQ: "Iraq",
108
- IE: "Ireland",
109
- IM: "Isle of Man",
110
- IL: "Israel",
111
- IT: "Italy",
112
- JM: "Jamaica",
113
- JP: "Japan",
114
- JE: "Jersey",
115
- JO: "Jordan",
116
- KZ: "Kazakhstan",
117
- KE: "Kenya",
118
- KI: "Kiribati",
119
- XK: "Kosovo",
120
- KP: "Korea, Democratic People's Republic of",
121
- KR: "Korea, Republic of",
122
- KW: "Kuwait",
123
- KG: "Kyrgyzstan",
124
- LA: "Lao People's Democratic Republic",
125
- LV: "Latvia",
126
- LB: "Lebanon",
127
- LS: "Lesotho",
128
- LR: "Liberia",
129
- LY: "Libya",
130
- LI: "Liechtenstein",
131
- LT: "Lithuania",
132
- LU: "Luxembourg",
133
- MO: "Macao",
134
- MK: "North Macedonia",
135
- MG: "Madagascar",
136
- MW: "Malawi",
137
- MY: "Malaysia",
138
- MV: "Maldives",
139
- ML: "Mali",
140
- MT: "Malta",
141
- MH: "Marshall Islands",
142
- MQ: "Martinique",
143
- MR: "Mauritania",
144
- MU: "Mauritius",
145
- YT: "Mayotte",
146
- MX: "Mexico",
147
- FM: "Micronesia, Federated States of",
148
- MD: "Moldova, Republic of",
149
- MC: "Monaco",
150
- MN: "Mongolia",
151
- ME: "Montenegro",
152
- MS: "Montserrat",
153
- MA: "Morocco",
154
- MZ: "Mozambique",
155
- MM: "Myanmar",
156
- NA: "Namibia",
157
- NR: "Nauru",
158
- NP: "Nepal",
159
- NL: "Netherlands",
160
- AN: "Netherlands Antilles",
161
- NC: "New Caledonia",
162
- NZ: "New Zealand",
163
- NI: "Nicaragua",
164
- NE: "Niger",
165
- NG: "Nigeria",
166
- NU: "Niue",
167
- NF: "Norfolk Island",
168
- MP: "Northern Mariana Islands",
169
- NO: "Norway",
170
- OM: "Oman",
171
- PK: "Pakistan",
172
- PW: "Palau",
173
- PS: "Palestine, State of",
174
- PA: "Panama",
175
- PG: "Papua New Guinea",
176
- PY: "Paraguay",
177
- PE: "Peru",
178
- PH: "Philippines",
179
- PN: "Pitcairn",
180
- PL: "Poland",
181
- PT: "Portugal",
182
- PR: "Puerto Rico",
183
- QA: "Qatar",
184
- RE: "R\xE9union",
185
- RO: "Romania",
186
- RU: "Russian Federation",
187
- RW: "Rwanda",
188
- BL: "Saint Barth\xE9lemy",
189
- SH: "Saint Helena, Ascension and Tristan da Cunha",
190
- KN: "Saint Kitts and Nevis",
191
- LC: "Saint Lucia",
192
- MF: "Saint Martin (French part)",
193
- PM: "Saint Pierre and Miquelon",
194
- VC: "Saint Vincent and the Grenadines",
195
- WS: "Samoa",
196
- SM: "San Marino",
197
- ST: "Sao Tome and Principe",
198
- SA: "Saudi Arabia",
199
- SN: "Senegal",
200
- RS: "Serbia",
201
- SC: "Seychelles",
202
- SL: "Sierra Leone",
203
- SG: "Singapore",
204
- SX: "Sint Maarten (Dutch part)",
205
- SK: "Slovakia",
206
- SI: "Slovenia",
207
- SB: "Solomon Islands",
208
- SO: "Somalia",
209
- ZA: "South Africa",
210
- GS: "South Georgia and the South Sandwich Islands",
211
- SS: "South Sudan",
212
- ES: "Spain",
213
- LK: "Sri Lanka",
214
- SD: "Sudan",
215
- SR: "Suriname",
216
- SJ: "Svalbard and Jan Mayen",
217
- SZ: "Swaziland",
218
- SE: "Sweden",
219
- CH: "Switzerland",
220
- SY: "Syrian Arab Republic",
221
- TW: "Taiwan, Province of China",
222
- TJ: "Tajikistan",
223
- TZ: "Tanzania, United Republic of",
224
- TH: "Thailand",
225
- TL: "Timor-Leste",
226
- TG: "Togo",
227
- TK: "Tokelau",
228
- TO: "Tonga",
229
- TT: "Trinidad and Tobago",
230
- TN: "Tunisia",
231
- TR: "Turkey",
232
- TM: "Turkmenistan",
233
- TC: "Turks and Caicos Islands",
234
- TV: "Tuvalu",
235
- UG: "Uganda",
236
- UA: "Ukraine",
237
- AE: "United Arab Emirates",
238
- GB: "United Kingdom",
239
- US: "United States",
240
- UM: "United States Minor Outlying Islands",
241
- UY: "Uruguay",
242
- UZ: "Uzbekistan",
243
- VU: "Vanuatu",
244
- VE: "Venezuela, Bolivarian Republic of",
245
- VN: "Viet Nam",
246
- VG: "Virgin Islands, British",
247
- VI: "Virgin Islands, U.S.",
248
- WF: "Wallis and Futuna",
249
- EH: "Western Sahara",
250
- YE: "Yemen",
251
- ZM: "Zambia",
252
- ZW: "Zimbabwe"
253
- };
254
- function isValidCountryCode(countryCode) {
255
- return countryCode.toUpperCase() in countries;
256
- }
257
- export {
258
- isValidCountryCode
259
- };
@@ -1,38 +0,0 @@
1
- import { MAX_NO_DATA_INTERVAL_MS, PING_INTERVAL_MS } from "../../config/index.js";
2
- function addKeepAlive(ws, logger) {
3
- let sendTimeout;
4
- let killTimeout;
5
- ws.on("message", () => {
6
- logger.trace("data recv, resetting timer");
7
- resetTimer();
8
- });
9
- ws.on("pong", () => {
10
- logger.trace("pong received, resetting timer");
11
- resetTimer();
12
- });
13
- ws.on("error", cleanup);
14
- ws.on("close", cleanup);
15
- function resetTimer() {
16
- cleanup();
17
- resetSendTimeout();
18
- killTimeout = setTimeout(() => {
19
- logger.warn(
20
- "no data received in a while, closing connection"
21
- );
22
- ws.close();
23
- }, MAX_NO_DATA_INTERVAL_MS);
24
- }
25
- function resetSendTimeout() {
26
- sendTimeout = setTimeout(() => {
27
- ws.ping();
28
- resetSendTimeout();
29
- }, PING_INTERVAL_MS);
30
- }
31
- function cleanup() {
32
- clearTimeout(killTimeout);
33
- clearTimeout(sendTimeout);
34
- }
35
- }
36
- export {
37
- addKeepAlive
38
- };
@@ -1,249 +0,0 @@
1
- import { AsnParser } from "@peculiar/asn1-schema";
2
- import { SubjectPublicKeyInfo } from "@peculiar/asn1-x509";
3
- import { Crypto } from "@peculiar/webcrypto";
4
- import { X509Certificate, X509ChainBuilder } from "@peculiar/x509";
5
- import { sign } from "cose-js";
6
- async function getCborDecode() {
7
- const { decode } = await import("cbor-x");
8
- return decode;
9
- }
10
- const AWS_NITRO_ROOT_CERT = `-----BEGIN CERTIFICATE-----
11
- MIICETCCAZagAwIBAgIRAPkxdWgbkK/hHUbMtOTn+FYwCgYIKoZIzj0EAwMwSTEL
12
- MAkGA1UEBhMCVVMxDzANBgNVBAoMBkFtYXpvbjEMMAoGA1UECwwDQVdTMRswGQYD
13
- VQQDDBJhd3Mubml0cm8tZW5jbGF2ZXMwHhcNMTkxMDI4MTMyODA1WhcNNDkxMDI4
14
- MTQyODA1WjBJMQswCQYDVQQGEwJVUzEPMA0GA1UECgwGQW1hem9uMQwwCgYDVQQL
15
- DANBV1MxGzAZBgNVBAMMEmF3cy5uaXRyby1lbmNsYXZlczB2MBAGByqGSM49AgEG
16
- BSuBBAAiA2IABPwCVOumCMHzaHDimtqQvkY4MpJzbolL//Zy2YlES1BR5TSksfbb
17
- 48C8WBoyt7F2Bw7eEtaaP+ohG2bnUs990d0JX28TcPQXCEPZ3BABIeTPYwEoCWZE
18
- h8l5YoQwTcU/9KNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUkCW1DdkF
19
- R+eWw5b6cp3PmanfS5YwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2kAMGYC
20
- MQCjfy+Rocm9Xue4YnwWmNJVA44fA0P5W2OpYow9OYCVRaEevL8uO1XYru5xtMPW
21
- rfMCMQCi85sWBbJwKKXdS6BptQFuZbT73o/gBh1qUxl/nNr12UO8Yfwr6wPLb+6N
22
- IwLz3/Y=
23
- -----END CERTIFICATE-----`;
24
- async function validateCertificateChain(targetCert, intermediateCerts, rootCert, crypto) {
25
- const errors = [];
26
- try {
27
- const rootSubject = rootCert.subject;
28
- const rootIssuer = rootCert.issuer;
29
- if (rootSubject !== rootIssuer) {
30
- errors.push("Root certificate is not self-signed");
31
- }
32
- try {
33
- const isRootValid = await rootCert.verify(void 0, crypto);
34
- if (!isRootValid) {
35
- errors.push("Root certificate signature verification failed");
36
- }
37
- } catch (error) {
38
- errors.push(`Root certificate verification failed: ${error.message}`);
39
- }
40
- const chainBuilder = new X509ChainBuilder({
41
- certificates: [rootCert, ...intermediateCerts]
42
- });
43
- let chain;
44
- try {
45
- chain = await chainBuilder.build(targetCert, crypto);
46
- } catch (error) {
47
- errors.push(`Certificate chain building failed: ${error.message}`);
48
- return { isValid: false, errors, chain: [] };
49
- }
50
- if (!chain || chain.length === 0) {
51
- errors.push("No valid certificate chain could be built");
52
- return { isValid: false, errors, chain: [] };
53
- }
54
- const now = /* @__PURE__ */ new Date();
55
- for (let i = 0; i < chain.length; i++) {
56
- const cert = chain[i];
57
- if (now < cert.notBefore) {
58
- errors.push(`Certificate ${i} (${cert.subject}) is not yet valid`);
59
- }
60
- if (now > cert.notAfter) {
61
- errors.push(`Certificate ${i} (${cert.subject}) has expired`);
62
- }
63
- if (i < chain.length - 1) {
64
- try {
65
- const issuer = chain[i + 1];
66
- const isValid = await cert.verify(issuer, crypto);
67
- if (!isValid) {
68
- errors.push(`Certificate ${i} signature verification failed`);
69
- }
70
- } catch (error) {
71
- errors.push(`Certificate ${i} verification failed: ${error.message}`);
72
- }
73
- }
74
- }
75
- return {
76
- isValid: errors.length === 0,
77
- errors,
78
- chain
79
- };
80
- } catch (error) {
81
- errors.push(`Certificate chain validation error: ${error.message}`);
82
- return { isValid: false, errors, chain: [] };
83
- }
84
- }
85
- function extractPublicKeyFromUserData(userDataBuffer) {
86
- try {
87
- const userDataString = userDataBuffer.toString("utf-8");
88
- const teeKMatch = userDataString.match(/^tee_k_public_key:(0x[0-9a-fA-F]{40})$/);
89
- const teeTMatch = userDataString.match(/^tee_t_public_key:(0x[0-9a-fA-F]{40})$/);
90
- if (teeKMatch) {
91
- return {
92
- teeType: "tee_k",
93
- ethAddress: teeKMatch[1],
94
- // Store the full ETH address with 0x prefix
95
- pcr0: ""
96
- };
97
- }
98
- if (teeTMatch) {
99
- return {
100
- teeType: "tee_t",
101
- ethAddress: teeTMatch[1],
102
- // Store the full ETH address with 0x prefix
103
- pcr0: ""
104
- };
105
- }
106
- return null;
107
- } catch {
108
- return null;
109
- }
110
- }
111
- async function validateNitroAttestationAndExtractKey(attestationBytes) {
112
- const errors = [];
113
- const warnings = [];
114
- try {
115
- const crypto = new Crypto();
116
- const decode = await getCborDecode();
117
- let decoded;
118
- try {
119
- decoded = decode(Buffer.from(attestationBytes));
120
- } catch (error) {
121
- errors.push(`CBOR decoding failed: ${error.message}`);
122
- return { isValid: false, errors, warnings, pcr0: "" };
123
- }
124
- if (!Array.isArray(decoded) || decoded.length < 4) {
125
- errors.push("Invalid COSE_Sign1 structure: expected array with 4 elements");
126
- return { isValid: false, errors, warnings, pcr0: "" };
127
- }
128
- const [, , payload] = decoded;
129
- if (!payload || payload.length === 0) {
130
- errors.push("Empty or missing payload in COSE_Sign1 structure");
131
- return { isValid: false, errors, warnings, pcr0: "" };
132
- }
133
- let doc;
134
- try {
135
- doc = decode(payload);
136
- } catch (error) {
137
- errors.push(`Payload decoding failed: ${error.message}`);
138
- return { isValid: false, errors, warnings, pcr0: "" };
139
- }
140
- if (doc.module_id.length === 0) {
141
- errors.push("Missing or invalid module_id");
142
- }
143
- if (doc.digest.length === 0) {
144
- errors.push("Missing or invalid digest");
145
- }
146
- if (!doc.pcrs || typeof doc.pcrs !== "object") {
147
- errors.push("Missing or invalid pcrs");
148
- }
149
- if (!Buffer.isBuffer(doc.certificate) || doc.certificate.length === 0) {
150
- errors.push("Missing or invalid certificate");
151
- }
152
- if (!Array.isArray(doc.cabundle) || doc.cabundle.length === 0) {
153
- errors.push("Missing or invalid cabundle");
154
- }
155
- if (errors.length > 0) {
156
- return { isValid: false, errors, warnings, pcr0: "" };
157
- }
158
- const pcr0 = doc.pcrs[0].toString("hex");
159
- const intermediateCerts = [];
160
- for (let i = 0; i < doc.cabundle.length; i++) {
161
- try {
162
- const cert = new X509Certificate(doc.cabundle[i].toString("base64"));
163
- intermediateCerts.push(cert);
164
- } catch (error) {
165
- errors.push(`Failed to parse cabundle certificate ${i}: ${error.message}`);
166
- }
167
- }
168
- let targetCert;
169
- try {
170
- targetCert = new X509Certificate(doc.certificate.toString("base64"));
171
- } catch (error) {
172
- errors.push(`Failed to parse target certificate: ${error.message}`);
173
- return { isValid: false, errors, warnings, pcr0: "" };
174
- }
175
- let rootCert;
176
- try {
177
- rootCert = new X509Certificate(AWS_NITRO_ROOT_CERT);
178
- } catch (error) {
179
- errors.push(`Failed to parse AWS Nitro root certificate: ${error.message}`);
180
- return { isValid: false, errors, warnings, pcr0: "" };
181
- }
182
- const chainResult = await validateCertificateChain(targetCert, intermediateCerts, rootCert, crypto);
183
- if (!chainResult.isValid) {
184
- errors.push(...chainResult.errors);
185
- return { isValid: false, errors, warnings, pcr0: "" };
186
- }
187
- let publicKeyRaw;
188
- try {
189
- publicKeyRaw = Buffer.from(targetCert.publicKey.rawData);
190
- } catch (error) {
191
- errors.push(`Failed to extract public key: ${error.message}`);
192
- return { isValid: false, errors, warnings, pcr0: "" };
193
- }
194
- if (publicKeyRaw.length !== 120 || publicKeyRaw[0] !== 48) {
195
- errors.push(`Invalid public key format: expected 120-byte DER-encoded key, got ${publicKeyRaw.length} bytes`);
196
- return { isValid: false, errors, warnings, pcr0: "" };
197
- }
198
- let spki;
199
- try {
200
- spki = AsnParser.parse(publicKeyRaw, SubjectPublicKeyInfo);
201
- } catch (error) {
202
- errors.push(`Failed to parse SubjectPublicKeyInfo: ${error.message}`);
203
- return { isValid: false, errors, warnings, pcr0: "" };
204
- }
205
- const ecPoint = Buffer.from(spki.subjectPublicKey);
206
- if (ecPoint.length !== 97 || ecPoint[0] !== 4) {
207
- errors.push("Invalid EC point: expected 97-byte uncompressed P-384 key");
208
- return { isValid: false, errors, warnings, pcr0: "" };
209
- }
210
- const x = ecPoint.subarray(1, 49);
211
- const y = ecPoint.subarray(49, 97);
212
- try {
213
- const verifier = {
214
- key: {
215
- x,
216
- y
217
- }
218
- };
219
- const options = { defaultType: 18 };
220
- await sign.verify(Buffer.from(attestationBytes), verifier, options);
221
- } catch (error) {
222
- errors.push(`COSE signature verification failed: ${error.message}`);
223
- return { isValid: false, errors, warnings, pcr0: "" };
224
- }
225
- let userDataType;
226
- let ethAddress;
227
- if (doc.user_data) {
228
- const keyInfo = extractPublicKeyFromUserData(doc.user_data);
229
- if (keyInfo) {
230
- userDataType = keyInfo.teeType;
231
- ethAddress = keyInfo.ethAddress;
232
- }
233
- }
234
- return {
235
- isValid: errors.length === 0,
236
- errors,
237
- warnings,
238
- userDataType,
239
- ethAddress,
240
- pcr0
241
- };
242
- } catch (error) {
243
- errors.push(`Unexpected error during validation: ${error.message}`);
244
- return { isValid: false, errors, warnings, pcr0: "" };
245
- }
246
- }
247
- export {
248
- validateNitroAttestationAndExtractKey
249
- };
@@ -1,61 +0,0 @@
1
- import { getBytes } from "ethers";
2
- import { TOPRF_DOMAIN_SEPARATOR } from "../../config/index.js";
3
- import { getEnvVariable } from "../../utils/env.js";
4
- import { makeDefaultOPRFOperator } from "../../utils/zk.js";
5
- async function computeOPRFRaw(plaintext, markers, logger) {
6
- if (!markers.length) {
7
- return [];
8
- }
9
- const PRIVATE_KEY_STR = getEnvVariable("TOPRF_SHARE_PRIVATE_KEY");
10
- const PUBLIC_KEY_STR = getEnvVariable("TOPRF_SHARE_PUBLIC_KEY");
11
- if (!PRIVATE_KEY_STR || !PUBLIC_KEY_STR) {
12
- throw new Error("TOPRF keys not configured. Cannot compute oprf-raw.");
13
- }
14
- const privateKey = getBytes(PRIVATE_KEY_STR);
15
- const publicKey = getBytes(PUBLIC_KEY_STR);
16
- const operator = makeDefaultOPRFOperator("chacha20", "gnark", logger);
17
- const results = [];
18
- for (const marker of markers) {
19
- const { dataLocation } = marker;
20
- if (!dataLocation) {
21
- logger.warn("oprf-raw marker missing dataLocation, skipping");
22
- continue;
23
- }
24
- const { fromIndex, length } = dataLocation;
25
- const endIndex = fromIndex + length;
26
- if (endIndex > plaintext.length) {
27
- throw new Error(
28
- `oprf-raw marker out of bounds: fromIndex=${fromIndex}, length=${length}, plaintextLength=${plaintext.length}`
29
- );
30
- }
31
- const data = plaintext.slice(fromIndex, endIndex);
32
- const request = await operator.generateOPRFRequestData(
33
- data,
34
- TOPRF_DOMAIN_SEPARATOR,
35
- logger
36
- );
37
- const response = await operator.evaluateOPRF(
38
- privateKey,
39
- request.maskedData,
40
- logger
41
- );
42
- const nullifier = await operator.finaliseOPRF(
43
- publicKey,
44
- request,
45
- [{ ...response, publicKeyShare: publicKey }],
46
- logger
47
- );
48
- results.push({
49
- dataLocation: { fromIndex, length },
50
- nullifier
51
- });
52
- logger.debug(
53
- { fromIndex, length, nullifierHex: Buffer.from(nullifier).toString("hex").slice(0, 16) + "..." },
54
- "computed oprf-raw nullifier"
55
- );
56
- }
57
- return results;
58
- }
59
- export {
60
- computeOPRFRaw
61
- };