@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.
- package/browser/resources/attestor-browser.min.mjs +4513 -0
- package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +1 -1
- package/lib/external-rpc/index.js +10397 -3
- package/lib/index.js +8325 -10
- package/lib/server/utils/generics.d.ts +1 -1
- package/lib/server/utils/proxy-session.d.ts +1 -1
- package/lib/types/general.d.ts +0 -1
- package/lib/types/providers.d.ts +3 -2
- package/lib/types/signatures.d.ts +1 -2
- package/lib/utils/generics.d.ts +1 -6
- package/lib/utils/index.d.ts +0 -1
- package/package.json +9 -11
- package/lib/avs/abis/avsDirectoryABI.js +0 -343
- package/lib/avs/abis/delegationABI.js +0 -4
- package/lib/avs/abis/registryABI.js +0 -728
- package/lib/avs/client/create-claim-on-avs.js +0 -168
- package/lib/avs/config.js +0 -26
- package/lib/avs/contracts/ReclaimServiceManager.js +0 -0
- package/lib/avs/contracts/common.js +0 -0
- package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
- package/lib/avs/contracts/factories/index.js +0 -4
- package/lib/avs/contracts/index.js +0 -6
- package/lib/avs/types/index.js +0 -0
- package/lib/avs/utils/contracts.js +0 -53
- package/lib/avs/utils/register.js +0 -74
- package/lib/avs/utils/tasks.js +0 -48
- package/lib/browser/avs/abis/avsDirectoryABI.d.ts +0 -60
- package/lib/browser/avs/abis/avsDirectoryABI.js +0 -343
- package/lib/browser/avs/abis/delegationABI.d.ts +0 -126
- package/lib/browser/avs/abis/delegationABI.js +0 -4
- package/lib/browser/avs/abis/registryABI.d.ts +0 -136
- package/lib/browser/avs/abis/registryABI.js +0 -728
- package/lib/browser/avs/client/create-claim-on-avs.d.ts +0 -12
- package/lib/browser/avs/client/create-claim-on-avs.js +0 -168
- package/lib/browser/avs/config.d.ts +0 -7
- package/lib/browser/avs/config.js +0 -26
- package/lib/browser/avs/contracts/ReclaimServiceManager.d.ts +0 -601
- package/lib/browser/avs/contracts/ReclaimServiceManager.js +0 -0
- package/lib/browser/avs/contracts/common.d.ts +0 -50
- package/lib/browser/avs/contracts/common.js +0 -0
- package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +0 -890
- package/lib/browser/avs/contracts/factories/ReclaimServiceManager__factory.js +0 -1183
- package/lib/browser/avs/contracts/factories/index.d.ts +0 -1
- package/lib/browser/avs/contracts/factories/index.js +0 -4
- package/lib/browser/avs/contracts/index.d.ts +0 -3
- package/lib/browser/avs/contracts/index.js +0 -6
- package/lib/browser/avs/types/index.d.ts +0 -55
- package/lib/browser/avs/types/index.js +0 -0
- package/lib/browser/avs/utils/contracts.d.ts +0 -21
- package/lib/browser/avs/utils/contracts.js +0 -53
- package/lib/browser/avs/utils/register.d.ts +0 -27
- package/lib/browser/avs/utils/register.js +0 -74
- package/lib/browser/avs/utils/tasks.d.ts +0 -22
- package/lib/browser/avs/utils/tasks.js +0 -48
- package/lib/browser/client/create-claim.d.ts +0 -5
- package/lib/browser/client/create-claim.js +0 -461
- package/lib/browser/client/index.d.ts +0 -3
- package/lib/browser/client/index.js +0 -3
- package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.d.ts +0 -16
- package/lib/browser/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
- package/lib/browser/client/tunnels/make-rpc-tls-tunnel.d.ts +0 -26
- package/lib/browser/client/tunnels/make-rpc-tls-tunnel.js +0 -127
- package/lib/browser/client/utils/attestor-pool.d.ts +0 -8
- package/lib/browser/client/utils/attestor-pool.js +0 -24
- package/lib/browser/client/utils/client-socket.d.ts +0 -11
- package/lib/browser/client/utils/client-socket.js +0 -120
- package/lib/browser/client/utils/message-handler.d.ts +0 -4
- package/lib/browser/client/utils/message-handler.js +0 -97
- package/lib/browser/config/index.d.ts +0 -31
- package/lib/browser/config/index.js +0 -62
- package/lib/browser/external-rpc/benchmark.d.ts +0 -1
- package/lib/browser/external-rpc/benchmark.js +0 -82
- package/lib/browser/external-rpc/event-bus.d.ts +0 -7
- package/lib/browser/external-rpc/event-bus.js +0 -17
- package/lib/browser/external-rpc/global.d.js +0 -0
- package/lib/browser/external-rpc/handle-incoming-msg.d.ts +0 -2
- package/lib/browser/external-rpc/handle-incoming-msg.js +0 -241
- package/lib/browser/external-rpc/index.d.ts +0 -3
- package/lib/browser/external-rpc/index.js +0 -3
- package/lib/browser/external-rpc/jsc-polyfills/1.d.ts +0 -14
- package/lib/browser/external-rpc/jsc-polyfills/1.js +0 -80
- package/lib/browser/external-rpc/jsc-polyfills/2.d.ts +0 -1
- package/lib/browser/external-rpc/jsc-polyfills/2.js +0 -15
- package/lib/browser/external-rpc/jsc-polyfills/event.d.ts +0 -10
- package/lib/browser/external-rpc/jsc-polyfills/event.js +0 -19
- package/lib/browser/external-rpc/jsc-polyfills/index.d.ts +0 -2
- package/lib/browser/external-rpc/jsc-polyfills/index.js +0 -2
- package/lib/browser/external-rpc/jsc-polyfills/ws.d.ts +0 -21
- package/lib/browser/external-rpc/jsc-polyfills/ws.js +0 -83
- package/lib/browser/external-rpc/setup-browser.d.ts +0 -6
- package/lib/browser/external-rpc/setup-browser.js +0 -33
- package/lib/browser/external-rpc/setup-jsc.d.ts +0 -24
- package/lib/browser/external-rpc/setup-jsc.js +0 -22
- package/lib/browser/external-rpc/types.d.ts +0 -213
- package/lib/browser/external-rpc/types.js +0 -0
- package/lib/browser/external-rpc/utils.d.ts +0 -20
- package/lib/browser/external-rpc/utils.js +0 -100
- package/lib/browser/external-rpc/zk.d.ts +0 -14
- package/lib/browser/external-rpc/zk.js +0 -58
- package/lib/browser/index.browser.js +0 -13
- package/lib/browser/index.d.ts +0 -9
- package/lib/browser/index.js +0 -13
- package/lib/browser/mechain/abis/governanceABI.d.ts +0 -50
- package/lib/browser/mechain/abis/governanceABI.js +0 -461
- package/lib/browser/mechain/abis/taskABI.d.ts +0 -157
- package/lib/browser/mechain/abis/taskABI.js +0 -512
- package/lib/browser/mechain/client/create-claim-on-mechain.d.ts +0 -10
- package/lib/browser/mechain/client/create-claim-on-mechain.js +0 -33
- package/lib/browser/mechain/client/index.d.ts +0 -1
- package/lib/browser/mechain/client/index.js +0 -1
- package/lib/browser/mechain/constants/index.d.ts +0 -3
- package/lib/browser/mechain/constants/index.js +0 -8
- package/lib/browser/mechain/index.d.ts +0 -2
- package/lib/browser/mechain/index.js +0 -2
- package/lib/browser/mechain/types/index.d.ts +0 -23
- package/lib/browser/mechain/types/index.js +0 -0
- package/lib/browser/proto/api.d.ts +0 -651
- package/lib/browser/proto/api.js +0 -4250
- package/lib/browser/proto/tee-bundle.d.ts +0 -156
- package/lib/browser/proto/tee-bundle.js +0 -1296
- package/lib/browser/providers/http/index.d.ts +0 -18
- package/lib/browser/providers/http/index.js +0 -640
- package/lib/browser/providers/http/patch-parse5-tree.d.ts +0 -6
- package/lib/browser/providers/http/patch-parse5-tree.js +0 -34
- package/lib/browser/providers/http/utils.d.ts +0 -77
- package/lib/browser/providers/http/utils.js +0 -283
- package/lib/browser/providers/index.d.ts +0 -4
- package/lib/browser/providers/index.js +0 -7
- package/lib/browser/types/bgp.d.ts +0 -11
- package/lib/browser/types/bgp.js +0 -0
- package/lib/browser/types/claims.d.ts +0 -70
- package/lib/browser/types/claims.js +0 -0
- package/lib/browser/types/client.d.ts +0 -163
- package/lib/browser/types/client.js +0 -0
- package/lib/browser/types/general.d.ts +0 -77
- package/lib/browser/types/general.js +0 -0
- package/lib/browser/types/handlers.d.ts +0 -10
- package/lib/browser/types/handlers.js +0 -0
- package/lib/browser/types/index.d.ts +0 -10
- package/lib/browser/types/index.js +0 -10
- package/lib/browser/types/providers.d.ts +0 -161
- package/lib/browser/types/providers.gen.d.ts +0 -443
- package/lib/browser/types/providers.gen.js +0 -16
- package/lib/browser/types/providers.js +0 -0
- package/lib/browser/types/rpc.d.ts +0 -35
- package/lib/browser/types/rpc.js +0 -0
- package/lib/browser/types/signatures.d.ts +0 -28
- package/lib/browser/types/signatures.js +0 -0
- package/lib/browser/types/tunnel.d.ts +0 -18
- package/lib/browser/types/tunnel.js +0 -0
- package/lib/browser/types/zk.d.ts +0 -38
- package/lib/browser/types/zk.js +0 -0
- package/lib/browser/utils/auth.d.ts +0 -8
- package/lib/browser/utils/auth.js +0 -71
- package/lib/browser/utils/b64-json.d.ts +0 -2
- package/lib/browser/utils/b64-json.js +0 -17
- package/lib/browser/utils/claims.d.ts +0 -33
- package/lib/browser/utils/claims.js +0 -89
- package/lib/browser/utils/env.d.ts +0 -3
- package/lib/browser/utils/env.js +0 -19
- package/lib/browser/utils/error.d.ts +0 -26
- package/lib/browser/utils/error.js +0 -54
- package/lib/browser/utils/generics.d.ts +0 -119
- package/lib/browser/utils/generics.js +0 -272
- package/lib/browser/utils/http-parser.d.ts +0 -59
- package/lib/browser/utils/http-parser.js +0 -201
- package/lib/browser/utils/index.browser.js +0 -13
- package/lib/browser/utils/index.d.ts +0 -13
- package/lib/browser/utils/index.js +0 -13
- package/lib/browser/utils/logger.browser.js +0 -88
- package/lib/browser/utils/logger.d.ts +0 -14
- package/lib/browser/utils/logger.js +0 -88
- package/lib/browser/utils/prepare-packets.d.ts +0 -16
- package/lib/browser/utils/prepare-packets.js +0 -69
- package/lib/browser/utils/redactions.d.ts +0 -73
- package/lib/browser/utils/redactions.js +0 -135
- package/lib/browser/utils/retries.d.ts +0 -12
- package/lib/browser/utils/retries.js +0 -26
- package/lib/browser/utils/signatures/eth.d.ts +0 -2
- package/lib/browser/utils/signatures/eth.js +0 -31
- package/lib/browser/utils/signatures/index.d.ts +0 -5
- package/lib/browser/utils/signatures/index.js +0 -12
- package/lib/browser/utils/socket-base.d.ts +0 -23
- package/lib/browser/utils/socket-base.js +0 -96
- package/lib/browser/utils/tls-imports.d.ts +0 -21
- package/lib/browser/utils/tls-imports.js +0 -71
- package/lib/browser/utils/tls.d.ts +0 -2
- package/lib/browser/utils/tls.js +0 -58
- package/lib/browser/utils/ws.d.ts +0 -7
- package/lib/browser/utils/ws.js +0 -22
- package/lib/browser/utils/zk.d.ts +0 -71
- package/lib/browser/utils/zk.js +0 -625
- package/lib/client/create-claim.js +0 -461
- package/lib/client/index.js +0 -3
- package/lib/client/tunnels/make-rpc-tcp-tunnel.js +0 -53
- package/lib/client/tunnels/make-rpc-tls-tunnel.js +0 -127
- package/lib/client/utils/attestor-pool.js +0 -24
- package/lib/client/utils/client-socket.js +0 -120
- package/lib/client/utils/message-handler.js +0 -97
- package/lib/config/index.js +0 -62
- package/lib/external-rpc/benchmark.js +0 -82
- package/lib/external-rpc/event-bus.js +0 -17
- package/lib/external-rpc/global.d.js +0 -0
- package/lib/external-rpc/handle-incoming-msg.js +0 -241
- package/lib/external-rpc/jsc-polyfills/1.js +0 -80
- package/lib/external-rpc/jsc-polyfills/2.js +0 -15
- package/lib/external-rpc/jsc-polyfills/event.js +0 -19
- package/lib/external-rpc/jsc-polyfills/index.js +0 -2
- package/lib/external-rpc/jsc-polyfills/ws.js +0 -83
- package/lib/external-rpc/setup-browser.js +0 -33
- package/lib/external-rpc/setup-jsc.js +0 -22
- package/lib/external-rpc/types.js +0 -0
- package/lib/external-rpc/utils.js +0 -100
- package/lib/external-rpc/zk.js +0 -58
- package/lib/index.browser.d.ts +0 -9
- package/lib/mechain/abis/governanceABI.js +0 -461
- package/lib/mechain/abis/taskABI.js +0 -512
- package/lib/mechain/client/create-claim-on-mechain.js +0 -33
- package/lib/mechain/client/index.js +0 -1
- package/lib/mechain/constants/index.js +0 -8
- package/lib/mechain/index.js +0 -2
- package/lib/mechain/types/index.js +0 -0
- package/lib/proto/api.js +0 -4250
- package/lib/proto/tee-bundle.js +0 -1296
- package/lib/providers/http/index.js +0 -640
- package/lib/providers/http/patch-parse5-tree.js +0 -34
- package/lib/providers/http/utils.js +0 -283
- package/lib/providers/index.js +0 -7
- package/lib/scripts/check-avs-registration.js +0 -28
- package/lib/scripts/fallbacks/crypto.js +0 -4
- package/lib/scripts/fallbacks/empty.js +0 -4
- package/lib/scripts/fallbacks/re2.js +0 -7
- package/lib/scripts/fallbacks/snarkjs.js +0 -10
- package/lib/scripts/fallbacks/stwo.js +0 -159
- package/lib/scripts/generate-provider-types.js +0 -101
- package/lib/scripts/generate-receipt.js +0 -101
- package/lib/scripts/generate-toprf-keys.js +0 -24
- package/lib/scripts/jsc-cli-rpc.js +0 -35
- package/lib/scripts/register-avs-operator.js +0 -3
- package/lib/scripts/start-server.js +0 -11
- package/lib/scripts/update-avs-metadata.js +0 -20
- package/lib/scripts/utils.js +0 -10
- package/lib/scripts/whitelist-operator.js +0 -16
- package/lib/server/create-server.js +0 -105
- package/lib/server/handlers/claimTeeBundle.js +0 -232
- package/lib/server/handlers/claimTunnel.js +0 -80
- package/lib/server/handlers/completeClaimOnChain.js +0 -29
- package/lib/server/handlers/createClaimOnChain.js +0 -32
- package/lib/server/handlers/createTaskOnMechain.js +0 -57
- package/lib/server/handlers/createTunnel.js +0 -98
- package/lib/server/handlers/disconnectTunnel.js +0 -8
- package/lib/server/handlers/fetchCertificateBytes.js +0 -57
- package/lib/server/handlers/index.js +0 -25
- package/lib/server/handlers/init.js +0 -33
- package/lib/server/handlers/toprf.js +0 -19
- package/lib/server/index.js +0 -4
- package/lib/server/socket.js +0 -112
- package/lib/server/tunnels/make-tcp-tunnel.js +0 -202
- package/lib/server/utils/apm.js +0 -29
- package/lib/server/utils/assert-valid-claim-request.js +0 -354
- package/lib/server/utils/config-env.js +0 -4
- package/lib/server/utils/dns.js +0 -24
- package/lib/server/utils/gcp-attestation.js +0 -237
- package/lib/server/utils/generics.js +0 -45
- package/lib/server/utils/iso.js +0 -259
- package/lib/server/utils/keep-alive.js +0 -38
- package/lib/server/utils/nitro-attestation.js +0 -249
- package/lib/server/utils/oprf-raw.js +0 -61
- package/lib/server/utils/process-handshake.js +0 -233
- package/lib/server/utils/proxy-session.js +0 -4
- package/lib/server/utils/tee-oprf-mpc-verification.js +0 -86
- package/lib/server/utils/tee-oprf-verification.js +0 -151
- package/lib/server/utils/tee-transcript-reconstruction.js +0 -140
- package/lib/server/utils/tee-verification.js +0 -358
- package/lib/server/utils/validation.js +0 -45
- package/lib/types/bgp.js +0 -0
- package/lib/types/claims.js +0 -0
- package/lib/types/client.js +0 -0
- package/lib/types/general.js +0 -0
- package/lib/types/handlers.js +0 -0
- package/lib/types/index.js +0 -10
- package/lib/types/providers.gen.js +0 -16
- package/lib/types/providers.js +0 -0
- package/lib/types/rpc.js +0 -0
- package/lib/types/signatures.js +0 -0
- package/lib/types/tunnel.js +0 -0
- package/lib/types/zk.js +0 -0
- package/lib/utils/auth.js +0 -71
- package/lib/utils/b64-json.js +0 -17
- package/lib/utils/bgp-listener.js +0 -123
- package/lib/utils/claims.js +0 -89
- package/lib/utils/env.js +0 -19
- package/lib/utils/error.js +0 -54
- package/lib/utils/generics.js +0 -272
- package/lib/utils/http-parser.js +0 -201
- package/lib/utils/index.browser.d.ts +0 -13
- package/lib/utils/index.js +0 -14
- package/lib/utils/logger.browser.d.ts +0 -14
- package/lib/utils/logger.js +0 -82
- package/lib/utils/prepare-packets.js +0 -69
- package/lib/utils/redactions.js +0 -135
- package/lib/utils/retries.js +0 -26
- package/lib/utils/signatures/eth.js +0 -31
- package/lib/utils/signatures/index.js +0 -12
- package/lib/utils/socket-base.js +0 -96
- package/lib/utils/tls-imports.d.ts +0 -21
- package/lib/utils/tls-imports.js +0 -71
- package/lib/utils/tls.js +0 -58
- package/lib/utils/ws.js +0 -22
- package/lib/utils/zk.js +0 -625
package/lib/server/utils/iso.js
DELETED
|
@@ -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
|
-
};
|