@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,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
- };