@joclaim/attestor-core 0.2.0 → 0.2.3
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/README.md +21 -15
- package/lib/avs/abis/avsDirectoryABI.d.ts +60 -0
- package/lib/avs/abis/avsDirectoryABI.js +340 -0
- package/lib/avs/abis/delegationABI.d.ts +126 -0
- package/lib/avs/abis/delegationABI.js +1 -0
- package/lib/avs/abis/registryABI.d.ts +136 -0
- package/lib/avs/abis/registryABI.js +725 -0
- package/lib/avs/client/create-claim-on-avs.d.ts +12 -0
- package/lib/avs/client/create-claim-on-avs.js +138 -0
- package/lib/avs/config.d.ts +7 -0
- package/lib/avs/config.js +20 -0
- package/lib/avs/contracts/ReclaimServiceManager.d.ts +697 -0
- package/lib/avs/contracts/ReclaimServiceManager.js +1 -0
- package/lib/avs/contracts/common.d.ts +21 -0
- package/lib/avs/contracts/common.js +1 -0
- package/lib/avs/contracts/factories/ReclaimServiceManager__factory.d.ts +888 -0
- package/lib/avs/contracts/factories/ReclaimServiceManager__factory.js +1169 -0
- package/lib/avs/contracts/factories/index.d.ts +1 -0
- package/{src/avs/contracts/factories/index.ts → lib/avs/contracts/factories/index.js} +1 -1
- package/{src/avs/contracts/index.ts → lib/avs/contracts/index.d.ts} +0 -3
- package/lib/avs/contracts/index.js +2 -0
- package/lib/avs/types/index.d.ts +55 -0
- package/lib/avs/types/index.js +1 -0
- package/lib/avs/utils/contracts.d.ts +21 -0
- package/lib/avs/utils/contracts.js +33 -0
- package/lib/avs/utils/register.d.ts +27 -0
- package/lib/avs/utils/register.js +78 -0
- package/lib/avs/utils/tasks.d.ts +22 -0
- package/lib/avs/utils/tasks.js +40 -0
- package/lib/client/create-claim.d.ts +5 -0
- package/lib/client/create-claim.js +437 -0
- package/lib/client/index.d.ts +3 -0
- package/lib/client/index.js +3 -0
- package/lib/client/tunnels/make-rpc-tcp-tunnel.d.ts +16 -0
- package/lib/client/tunnels/make-rpc-tcp-tunnel.js +51 -0
- package/lib/client/tunnels/make-rpc-tls-tunnel.d.ts +26 -0
- package/lib/client/tunnels/make-rpc-tls-tunnel.js +131 -0
- package/lib/client/utils/attestor-pool.d.ts +8 -0
- package/lib/client/utils/attestor-pool.js +25 -0
- package/lib/client/utils/client-socket.d.ts +11 -0
- package/lib/client/utils/client-socket.js +98 -0
- package/lib/client/utils/message-handler.d.ts +4 -0
- package/lib/client/utils/message-handler.js +87 -0
- package/lib/config/index.d.ts +30 -0
- package/lib/config/index.js +43 -0
- package/lib/external-rpc/benchmark.d.ts +1 -0
- package/lib/external-rpc/benchmark.js +69 -0
- package/lib/external-rpc/event-bus.d.ts +7 -0
- package/lib/external-rpc/event-bus.js +14 -0
- package/lib/external-rpc/handle-incoming-msg.d.ts +2 -0
- package/lib/external-rpc/handle-incoming-msg.js +233 -0
- package/lib/external-rpc/index.d.ts +3 -0
- package/lib/external-rpc/index.js +3 -0
- package/lib/external-rpc/jsc-polyfills/1.d.ts +14 -0
- package/lib/external-rpc/jsc-polyfills/1.js +82 -0
- package/lib/external-rpc/jsc-polyfills/2.d.ts +1 -0
- package/lib/external-rpc/jsc-polyfills/2.js +20 -0
- package/lib/external-rpc/jsc-polyfills/event.d.ts +10 -0
- package/lib/external-rpc/jsc-polyfills/event.js +14 -0
- package/lib/external-rpc/jsc-polyfills/index.d.ts +2 -0
- package/lib/external-rpc/jsc-polyfills/index.js +2 -0
- package/lib/external-rpc/jsc-polyfills/ws.d.ts +21 -0
- package/lib/external-rpc/jsc-polyfills/ws.js +81 -0
- package/lib/external-rpc/setup-browser.d.ts +6 -0
- package/lib/external-rpc/setup-browser.js +33 -0
- package/lib/external-rpc/setup-jsc.d.ts +24 -0
- package/lib/external-rpc/setup-jsc.js +22 -0
- package/lib/external-rpc/types.d.ts +213 -0
- package/lib/external-rpc/types.js +1 -0
- package/lib/external-rpc/utils.d.ts +20 -0
- package/lib/external-rpc/utils.js +100 -0
- package/lib/external-rpc/zk.d.ts +14 -0
- package/lib/external-rpc/zk.js +63 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.js +9 -0
- package/lib/mechain/abis/governanceABI.d.ts +50 -0
- package/lib/mechain/abis/governanceABI.js +458 -0
- package/lib/mechain/abis/taskABI.d.ts +157 -0
- package/lib/mechain/abis/taskABI.js +509 -0
- package/lib/mechain/client/create-claim-on-mechain.d.ts +10 -0
- package/lib/mechain/client/create-claim-on-mechain.js +28 -0
- package/lib/mechain/client/index.d.ts +1 -0
- package/lib/mechain/client/index.js +1 -0
- package/lib/mechain/constants/index.d.ts +3 -0
- package/{src/mechain/constants/index.ts → lib/mechain/constants/index.js} +3 -5
- package/lib/mechain/index.d.ts +2 -0
- package/lib/mechain/index.js +2 -0
- package/lib/mechain/types/index.d.ts +23 -0
- package/lib/mechain/types/index.js +1 -0
- package/lib/proto/api.d.ts +633 -0
- package/lib/proto/api.js +4258 -0
- package/lib/proto/tee-bundle.d.ts +135 -0
- package/lib/proto/tee-bundle.js +1161 -0
- package/lib/providers/http/index.d.ts +18 -0
- package/lib/providers/http/index.js +658 -0
- package/lib/providers/http/patch-parse5-tree.d.ts +6 -0
- package/lib/providers/http/patch-parse5-tree.js +33 -0
- package/lib/providers/http/utils.d.ts +77 -0
- package/lib/providers/http/utils.js +324 -0
- package/lib/providers/index.d.ts +4 -0
- package/lib/providers/index.js +4 -0
- package/lib/scripts/build-browser.d.ts +1 -0
- package/lib/scripts/build-browser.js +37 -0
- package/lib/scripts/build-jsc.d.ts +1 -0
- package/lib/scripts/build-jsc.js +49 -0
- package/lib/scripts/check-avs-registration.d.ts +1 -0
- package/lib/scripts/check-avs-registration.js +26 -0
- package/lib/scripts/fallbacks/crypto.d.ts +1 -0
- package/lib/scripts/fallbacks/crypto.js +1 -0
- package/lib/scripts/fallbacks/empty.d.ts +3 -0
- package/lib/scripts/fallbacks/empty.js +1 -0
- package/lib/scripts/fallbacks/re2.d.ts +1 -0
- package/lib/scripts/fallbacks/re2.js +4 -0
- package/lib/scripts/fallbacks/snarkjs.d.ts +1 -0
- package/lib/scripts/fallbacks/snarkjs.js +1 -0
- package/lib/scripts/generate-provider-types.d.ts +5 -0
- package/lib/scripts/generate-provider-types.js +78 -0
- package/lib/scripts/generate-receipt.d.ts +9 -0
- package/lib/scripts/generate-receipt.js +90 -0
- package/lib/scripts/generate-toprf-keys.d.ts +1 -0
- package/lib/scripts/generate-toprf-keys.js +20 -0
- package/lib/scripts/jsc-cli-rpc.d.ts +1 -0
- package/lib/scripts/jsc-cli-rpc.js +37 -0
- package/lib/scripts/register-avs-operator.d.ts +1 -0
- package/lib/scripts/register-avs-operator.js +4 -0
- package/lib/scripts/start-server.d.ts +1 -0
- package/lib/scripts/start-server.js +13 -0
- package/lib/scripts/update-avs-metadata.d.ts +1 -0
- package/lib/scripts/update-avs-metadata.js +19 -0
- package/lib/scripts/utils.d.ts +1 -0
- package/lib/scripts/utils.js +7 -0
- package/lib/scripts/whitelist-operator.d.ts +1 -0
- package/lib/scripts/whitelist-operator.js +15 -0
- package/lib/server/create-server.d.ts +7 -0
- package/lib/server/create-server.js +122 -0
- package/lib/server/handlers/claimTeeBundle.d.ts +6 -0
- package/lib/server/handlers/claimTeeBundle.js +206 -0
- package/lib/server/handlers/claimTunnel.d.ts +2 -0
- package/lib/server/handlers/claimTunnel.js +73 -0
- package/lib/server/handlers/completeClaimOnChain.d.ts +2 -0
- package/lib/server/handlers/completeClaimOnChain.js +22 -0
- package/lib/server/handlers/createClaimOnChain.d.ts +2 -0
- package/lib/server/handlers/createClaimOnChain.js +26 -0
- package/lib/server/handlers/createTaskOnMechain.d.ts +2 -0
- package/lib/server/handlers/createTaskOnMechain.js +47 -0
- package/lib/server/handlers/createTunnel.d.ts +2 -0
- package/lib/server/handlers/createTunnel.js +93 -0
- package/lib/server/handlers/disconnectTunnel.d.ts +2 -0
- package/lib/server/handlers/disconnectTunnel.js +5 -0
- package/lib/server/handlers/fetchCertificateBytes.d.ts +2 -0
- package/lib/server/handlers/fetchCertificateBytes.js +41 -0
- package/lib/server/handlers/index.d.ts +4 -0
- package/lib/server/handlers/index.js +22 -0
- package/lib/server/handlers/init.d.ts +2 -0
- package/lib/server/handlers/init.js +30 -0
- package/lib/server/handlers/toprf.d.ts +2 -0
- package/lib/server/handlers/toprf.js +16 -0
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.js +4 -0
- package/lib/server/provider-api.d.ts +9 -0
- package/lib/server/provider-api.js +98 -0
- package/lib/server/provider-store.d.ts +53 -0
- package/lib/server/provider-store.js +80 -0
- package/lib/server/session-api.d.ts +9 -0
- package/lib/server/session-api.js +95 -0
- package/lib/server/session-store.d.ts +14 -0
- package/lib/server/session-store.js +36 -0
- package/lib/server/socket.d.ts +13 -0
- package/lib/server/socket.js +109 -0
- package/lib/server/tunnels/make-tcp-tunnel.d.ts +22 -0
- package/lib/server/tunnels/make-tcp-tunnel.js +177 -0
- package/lib/server/utils/apm.d.ts +11 -0
- package/lib/server/utils/apm.js +36 -0
- package/lib/server/utils/assert-valid-claim-request.d.ts +31 -0
- package/lib/server/utils/assert-valid-claim-request.js +229 -0
- package/lib/server/utils/config-env.d.ts +1 -0
- package/lib/server/utils/config-env.js +4 -0
- package/lib/server/utils/dns.d.ts +1 -0
- package/lib/server/utils/dns.js +18 -0
- package/lib/server/utils/gcp-attestation.d.ts +17 -0
- package/lib/server/utils/gcp-attestation.js +289 -0
- package/lib/server/utils/generics.d.ts +22 -0
- package/lib/server/utils/generics.js +51 -0
- package/lib/server/utils/iso.d.ts +1 -0
- package/lib/server/utils/iso.js +256 -0
- package/lib/server/utils/keep-alive.d.ts +7 -0
- package/lib/server/utils/keep-alive.js +38 -0
- package/lib/server/utils/nitro-attestation.d.ts +33 -0
- package/lib/server/utils/nitro-attestation.js +325 -0
- package/lib/server/utils/process-handshake.d.ts +13 -0
- package/lib/server/utils/process-handshake.js +214 -0
- package/lib/server/utils/proxy-session.d.ts +1 -0
- package/lib/server/utils/proxy-session.js +6 -0
- package/lib/server/utils/tee-oprf-verification.d.ts +22 -0
- package/lib/server/utils/tee-oprf-verification.js +160 -0
- package/lib/server/utils/tee-transcript-reconstruction.d.ts +24 -0
- package/lib/server/utils/tee-transcript-reconstruction.js +187 -0
- package/lib/server/utils/tee-verification.d.ts +27 -0
- package/lib/server/utils/tee-verification.js +365 -0
- package/lib/server/utils/validation.d.ts +2 -0
- package/lib/server/utils/validation.js +38 -0
- package/lib/types/bgp.d.ts +11 -0
- package/lib/types/bgp.js +1 -0
- package/lib/types/claims.d.ts +73 -0
- package/lib/types/claims.js +1 -0
- package/lib/types/client.d.ts +163 -0
- package/lib/types/client.js +1 -0
- package/lib/types/general.d.ts +54 -0
- package/lib/types/general.js +1 -0
- package/lib/types/handlers.d.ts +10 -0
- package/lib/types/handlers.js +1 -0
- package/lib/types/index.d.ts +10 -0
- package/lib/types/index.js +10 -0
- package/lib/types/providers.d.ts +161 -0
- package/lib/types/providers.gen.d.ts +443 -0
- package/lib/types/providers.gen.js +10 -0
- package/lib/types/providers.js +1 -0
- package/lib/types/rpc.d.ts +35 -0
- package/lib/types/rpc.js +1 -0
- package/lib/types/signatures.d.ts +28 -0
- package/lib/types/signatures.js +1 -0
- package/lib/types/tunnel.d.ts +18 -0
- package/lib/types/tunnel.js +1 -0
- package/lib/types/zk.d.ts +28 -0
- package/lib/types/zk.js +1 -0
- package/lib/utils/auth.d.ts +8 -0
- package/lib/utils/auth.js +59 -0
- package/lib/utils/b64-json.d.ts +2 -0
- package/lib/utils/b64-json.js +17 -0
- package/lib/utils/bgp-listener.d.ts +7 -0
- package/lib/utils/bgp-listener.js +119 -0
- package/lib/utils/claims.d.ts +33 -0
- package/lib/utils/claims.js +101 -0
- package/lib/utils/env.d.ts +3 -0
- package/lib/utils/env.js +15 -0
- package/lib/utils/error.d.ts +26 -0
- package/lib/utils/error.js +50 -0
- package/lib/utils/generics.d.ts +114 -0
- package/lib/utils/generics.js +317 -0
- package/lib/utils/http-parser.d.ts +59 -0
- package/lib/utils/http-parser.js +246 -0
- package/lib/utils/index.d.ts +13 -0
- package/lib/utils/index.js +13 -0
- package/lib/utils/logger.d.ts +13 -0
- package/lib/utils/logger.js +91 -0
- package/lib/utils/prepare-packets.d.ts +16 -0
- package/lib/utils/prepare-packets.js +62 -0
- package/lib/utils/redactions.d.ts +62 -0
- package/lib/utils/redactions.js +148 -0
- package/lib/utils/retries.d.ts +12 -0
- package/lib/utils/retries.js +24 -0
- package/lib/utils/signatures/eth.d.ts +2 -0
- package/lib/utils/signatures/eth.js +29 -0
- package/lib/utils/signatures/index.d.ts +5 -0
- package/lib/utils/signatures/index.js +7 -0
- package/lib/utils/socket-base.d.ts +23 -0
- package/lib/utils/socket-base.js +90 -0
- package/lib/utils/tls.d.ts +2 -0
- package/{src/utils/tls.ts → lib/utils/tls.js} +28 -35
- package/lib/utils/ws.d.ts +7 -0
- package/lib/utils/ws.js +22 -0
- package/lib/utils/zk.d.ts +70 -0
- package/lib/utils/zk.js +572 -0
- package/package.json +19 -12
- package/src/avs/abis/avsDirectoryABI.ts +0 -340
- package/src/avs/abis/delegationABI.ts +0 -1
- package/src/avs/abis/registryABI.ts +0 -725
- package/src/avs/client/create-claim-on-avs.ts +0 -206
- package/src/avs/config.ts +0 -25
- package/src/avs/contracts/ReclaimServiceManager.ts +0 -1457
- package/src/avs/contracts/common.ts +0 -44
- package/src/avs/contracts/factories/ReclaimServiceManager__factory.ts +0 -1213
- package/src/avs/tests/test.operator.ts +0 -413
- package/src/avs/tests/utils.ts +0 -51
- package/src/avs/types/index.ts +0 -60
- package/src/avs/utils/contracts.ts +0 -66
- package/src/avs/utils/register.ts +0 -125
- package/src/avs/utils/tasks.ts +0 -76
- package/src/client/create-claim.ts +0 -626
- package/src/client/index.ts +0 -3
- package/src/client/tunnels/make-rpc-tcp-tunnel.ts +0 -78
- package/src/client/tunnels/make-rpc-tls-tunnel.ts +0 -172
- package/src/client/utils/attestor-pool.ts +0 -35
- package/src/client/utils/client-socket.ts +0 -160
- package/src/client/utils/message-handler.ts +0 -116
- package/src/config/index.ts +0 -65
- package/src/external-rpc/benchmark.ts +0 -102
- package/src/external-rpc/event-bus.ts +0 -19
- package/src/external-rpc/global.d.ts +0 -20
- package/src/external-rpc/handle-incoming-msg.ts +0 -308
- package/src/external-rpc/index.ts +0 -3
- package/src/external-rpc/jsc-polyfills/1.ts +0 -117
- package/src/external-rpc/jsc-polyfills/2.ts +0 -24
- package/src/external-rpc/jsc-polyfills/event.ts +0 -16
- package/src/external-rpc/jsc-polyfills/index.ts +0 -2
- package/src/external-rpc/jsc-polyfills/ws.ts +0 -105
- package/src/external-rpc/setup-browser.ts +0 -42
- package/src/external-rpc/setup-jsc.ts +0 -48
- package/src/external-rpc/types.ts +0 -289
- package/src/external-rpc/utils.ts +0 -126
- package/src/external-rpc/zk.ts +0 -79
- package/src/index.ts +0 -9
- package/src/mechain/abis/governanceABI.ts +0 -458
- package/src/mechain/abis/taskABI.ts +0 -509
- package/src/mechain/client/create-claim-on-mechain.ts +0 -52
- package/src/mechain/client/index.ts +0 -1
- package/src/mechain/index.ts +0 -2
- package/src/mechain/types/index.ts +0 -29
- package/src/proto/api.ts +0 -5285
- package/src/proto/tee-bundle.ts +0 -1413
- package/src/providers/http/index.ts +0 -873
- package/src/providers/http/patch-parse5-tree.ts +0 -49
- package/src/providers/http/utils.ts +0 -439
- package/src/providers/index.ts +0 -8
- package/src/scripts/build-browser.sh +0 -9
- package/src/scripts/build-browser.ts +0 -40
- package/src/scripts/build-jsc.ts +0 -55
- package/src/scripts/check-avs-registration.ts +0 -38
- package/src/scripts/contract-data-gen.sh +0 -8
- package/src/scripts/fallbacks/crypto.ts +0 -1
- package/src/scripts/fallbacks/empty.ts +0 -2
- package/src/scripts/fallbacks/re2.ts +0 -5
- package/src/scripts/fallbacks/snarkjs.ts +0 -5
- package/src/scripts/generate-certs.sh +0 -11
- package/src/scripts/generate-proto.sh +0 -5
- package/src/scripts/generate-provider-types.ts +0 -121
- package/src/scripts/generate-receipt.ts +0 -138
- package/src/scripts/generate-toprf-keys.ts +0 -30
- package/src/scripts/jsc-cli-rpc.ts +0 -48
- package/src/scripts/register-avs-operator.ts +0 -5
- package/src/scripts/start-server.ts +0 -17
- package/src/scripts/update-avs-metadata.ts +0 -26
- package/src/scripts/utils.ts +0 -8
- package/src/scripts/whitelist-operator.ts +0 -22
- package/src/server/create-server.ts +0 -169
- package/src/server/handlers/claimTeeBundle.ts +0 -308
- package/src/server/handlers/claimTunnel.ts +0 -106
- package/src/server/handlers/completeClaimOnChain.ts +0 -36
- package/src/server/handlers/createClaimOnChain.ts +0 -39
- package/src/server/handlers/createTaskOnMechain.ts +0 -80
- package/src/server/handlers/createTunnel.ts +0 -128
- package/src/server/handlers/disconnectTunnel.ts +0 -11
- package/src/server/handlers/fetchCertificateBytes.ts +0 -66
- package/src/server/handlers/index.ts +0 -24
- package/src/server/handlers/init.ts +0 -46
- package/src/server/handlers/toprf.ts +0 -25
- package/src/server/index.ts +0 -4
- package/src/server/provider-api.ts +0 -118
- package/src/server/provider-store.ts +0 -117
- package/src/server/session-api.ts +0 -115
- package/src/server/session-store.ts +0 -60
- package/src/server/socket.ts +0 -156
- package/src/server/tunnels/make-tcp-tunnel.ts +0 -275
- package/src/server/utils/apm.ts +0 -49
- package/src/server/utils/assert-valid-claim-request.ts +0 -375
- package/src/server/utils/config-env.ts +0 -6
- package/src/server/utils/dns.ts +0 -25
- package/src/server/utils/gcp-attestation.ts +0 -415
- package/src/server/utils/generics.ts +0 -68
- package/src/server/utils/iso.ts +0 -258
- package/src/server/utils/keep-alive.ts +0 -50
- package/src/server/utils/nitro-attestation.ts +0 -396
- package/src/server/utils/process-handshake.ts +0 -311
- package/src/server/utils/proxy-session.ts +0 -6
- package/src/server/utils/tee-oprf-verification.ts +0 -231
- package/src/server/utils/tee-transcript-reconstruction.ts +0 -254
- package/src/server/utils/tee-verification.ts +0 -513
- package/src/server/utils/validation.ts +0 -57
- package/src/tests/auth.test.ts +0 -105
- package/src/tests/bgp-listener.test.ts +0 -193
- package/src/tests/claim-creation.test.ts +0 -415
- package/src/tests/describe-with-server.ts +0 -94
- package/src/tests/gcp-attestation.test.ts +0 -206
- package/src/tests/http-parser.test.ts +0 -135
- package/src/tests/http-provider-utils.test.ts +0 -3306
- package/src/tests/http-provider.test.ts +0 -125
- package/src/tests/jsc.test_mac.ts +0 -296
- package/src/tests/mock-provider-server.ts +0 -106
- package/src/tests/mocks.ts +0 -25
- package/src/tests/proof_bundle.bin +0 -0
- package/src/tests/rpc-communication.test.ts +0 -115
- package/src/tests/rpc-tunnel.test.ts +0 -239
- package/src/tests/signatures.test.ts +0 -37
- package/src/tests/tcp-tunnel.test.ts +0 -154
- package/src/tests/tee-bundle.test.ts +0 -321
- package/src/tests/tee-signatures.test.ts +0 -81
- package/src/tests/utils.ts +0 -108
- package/src/tests/verification_bundle.pb +0 -0
- package/src/tests/verification_bundle_tee.pb +0 -0
- package/src/tests/zk.test.ts +0 -453
- package/src/types/bgp.ts +0 -17
- package/src/types/claims.ts +0 -79
- package/src/types/client.ts +0 -205
- package/src/types/general.ts +0 -61
- package/src/types/handlers.ts +0 -16
- package/src/types/index.ts +0 -10
- package/src/types/providers.gen.ts +0 -135
- package/src/types/providers.ts +0 -203
- package/src/types/rpc.ts +0 -46
- package/src/types/signatures.ts +0 -29
- package/src/types/tunnel.ts +0 -25
- package/src/types/zk.ts +0 -31
- package/src/utils/auth.ts +0 -92
- package/src/utils/b64-json.ts +0 -25
- package/src/utils/bgp-listener.ts +0 -159
- package/src/utils/claims.ts +0 -132
- package/src/utils/env.ts +0 -21
- package/src/utils/error.ts +0 -76
- package/src/utils/generics.ts +0 -429
- package/src/utils/http-parser.ts +0 -312
- package/src/utils/index.ts +0 -13
- package/src/utils/logger.ts +0 -114
- package/src/utils/prepare-packets.ts +0 -98
- package/src/utils/redactions.ts +0 -203
- package/src/utils/retries.ts +0 -41
- package/src/utils/signatures/eth.ts +0 -35
- package/src/utils/signatures/index.ts +0 -11
- package/src/utils/socket-base.ts +0 -132
- package/src/utils/ws.ts +0 -30
- package/src/utils/zk.ts +0 -908
package/src/tests/zk.test.ts
DELETED
|
@@ -1,453 +0,0 @@
|
|
|
1
|
-
import type { CipherSuite } from '@joclaim/tls'
|
|
2
|
-
import { crypto, encryptWrappedRecord, SUPPORTED_CIPHER_SUITE_MAP } from '@joclaim/tls'
|
|
3
|
-
import type { ZKEngine } from '@joclaim/zk-symmetric-crypto'
|
|
4
|
-
import assert from 'node:assert'
|
|
5
|
-
import { describe, it } from 'node:test'
|
|
6
|
-
import '#src/server/utils/config-env.ts'
|
|
7
|
-
|
|
8
|
-
import { TOPRF_DOMAIN_SEPARATOR } from '#src/config/index.ts'
|
|
9
|
-
import type { MessageReveal_ZKProof as ZKProof } from '#src/proto/api.ts'
|
|
10
|
-
import { ZKProofEngine } from '#src/proto/api.ts'
|
|
11
|
-
import { toprf } from '#src/server/handlers/toprf.ts'
|
|
12
|
-
import type { CompleteTLSPacket, MessageRevealInfo, RedactedOrHashedArraySlice, TOPRFProofParams } from '#src/types/index.ts'
|
|
13
|
-
import {
|
|
14
|
-
getBlocksToReveal,
|
|
15
|
-
isTls13Suite,
|
|
16
|
-
logger,
|
|
17
|
-
makeDefaultOPRFOperator,
|
|
18
|
-
makeZkProofGenerator,
|
|
19
|
-
preparePacketsForReveal,
|
|
20
|
-
redactSlices,
|
|
21
|
-
strToUint8Array,
|
|
22
|
-
uint8ArrayToStr,
|
|
23
|
-
verifyZkPacket
|
|
24
|
-
} from '#src/utils/index.ts'
|
|
25
|
-
|
|
26
|
-
const ZK_CIPHER_SUITES: CipherSuite[] = [
|
|
27
|
-
'TLS_CHACHA20_POLY1305_SHA256',
|
|
28
|
-
'TLS_AES_128_GCM_SHA256',
|
|
29
|
-
'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',
|
|
30
|
-
]
|
|
31
|
-
|
|
32
|
-
const ZK_ENGINES: ZKEngine[] = [
|
|
33
|
-
'gnark',
|
|
34
|
-
'snarkjs'
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
type RedactionTestVector = {
|
|
38
|
-
input: string[]
|
|
39
|
-
output: string[]
|
|
40
|
-
redactions: RedactedOrHashedArraySlice[]
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
describe('Redaction Tests', () => {
|
|
44
|
-
|
|
45
|
-
it('should correctly redact blocks', async() => {
|
|
46
|
-
const vectors: RedactionTestVector[] = [
|
|
47
|
-
{
|
|
48
|
-
input: [
|
|
49
|
-
'hell',
|
|
50
|
-
'o world'
|
|
51
|
-
],
|
|
52
|
-
output: [
|
|
53
|
-
'h***',
|
|
54
|
-
'* world'
|
|
55
|
-
],
|
|
56
|
-
redactions: [
|
|
57
|
-
{ fromIndex: 1, toIndex: 5 }
|
|
58
|
-
]
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
input: [
|
|
62
|
-
'hell',
|
|
63
|
-
'o world'
|
|
64
|
-
],
|
|
65
|
-
output: [
|
|
66
|
-
// first block is completely
|
|
67
|
-
// redacted, so it won't be included
|
|
68
|
-
'* world'
|
|
69
|
-
],
|
|
70
|
-
redactions: [
|
|
71
|
-
{ fromIndex: 0, toIndex: 5 }
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
input: [
|
|
76
|
-
'hello',
|
|
77
|
-
'how',
|
|
78
|
-
'do',
|
|
79
|
-
'you',
|
|
80
|
-
'do'
|
|
81
|
-
],
|
|
82
|
-
output: [
|
|
83
|
-
'he**o',
|
|
84
|
-
'd*',
|
|
85
|
-
'y*u',
|
|
86
|
-
'do'
|
|
87
|
-
],
|
|
88
|
-
redactions: [
|
|
89
|
-
{ fromIndex: 2, toIndex: 4 },
|
|
90
|
-
{ fromIndex: 5, toIndex: 8 },
|
|
91
|
-
{ fromIndex: 9, toIndex: 10 },
|
|
92
|
-
{ fromIndex: 11, toIndex: 12 }
|
|
93
|
-
]
|
|
94
|
-
}
|
|
95
|
-
]
|
|
96
|
-
|
|
97
|
-
for(const { input, output, redactions } of vectors) {
|
|
98
|
-
const realOutput = await getBlocksToReveal(
|
|
99
|
-
input.map(i => ({ plaintext: Buffer.from(i) })),
|
|
100
|
-
() => redactions,
|
|
101
|
-
() => {
|
|
102
|
-
throw new Error('should not call this')
|
|
103
|
-
}
|
|
104
|
-
)
|
|
105
|
-
assert(realOutput !== 'all', 'should not return "all"')
|
|
106
|
-
|
|
107
|
-
assert.equal(realOutput.length, output.length)
|
|
108
|
-
for(const [i, element] of output.entries()) {
|
|
109
|
-
assert.equal(
|
|
110
|
-
uint8ArrayToStr(realOutput[i].redactedPlaintext),
|
|
111
|
-
element
|
|
112
|
-
)
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
it('should correctly hash blocks', async() => {
|
|
118
|
-
const nullifer = strToUint8Array('abcdefg')
|
|
119
|
-
const base64Nullifier = Buffer.from(nullifer).toString('base64')
|
|
120
|
-
const vectors: RedactionTestVector[] = [
|
|
121
|
-
{
|
|
122
|
-
input: [
|
|
123
|
-
'hell',
|
|
124
|
-
'o world'
|
|
125
|
-
],
|
|
126
|
-
output: [
|
|
127
|
-
'h' + base64Nullifier.slice(0, 3),
|
|
128
|
-
base64Nullifier.slice(3, 4) + ' world'
|
|
129
|
-
],
|
|
130
|
-
redactions: [
|
|
131
|
-
{ fromIndex: 1, toIndex: 5, hash: 'oprf' }
|
|
132
|
-
]
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
input: [
|
|
136
|
-
'hell',
|
|
137
|
-
'o world'
|
|
138
|
-
],
|
|
139
|
-
output: [
|
|
140
|
-
base64Nullifier.slice(0, 4),
|
|
141
|
-
base64Nullifier.slice(4, 5) + ' world'
|
|
142
|
-
],
|
|
143
|
-
redactions: [
|
|
144
|
-
{ fromIndex: 0, toIndex: 5, hash: 'oprf' }
|
|
145
|
-
]
|
|
146
|
-
},
|
|
147
|
-
]
|
|
148
|
-
|
|
149
|
-
for(const { input, output, redactions } of vectors) {
|
|
150
|
-
const realOutput = await getBlocksToReveal(
|
|
151
|
-
input.map(i => ({ plaintext: Buffer.from(i) })),
|
|
152
|
-
() => redactions,
|
|
153
|
-
async() => ({
|
|
154
|
-
dataLocation: undefined,
|
|
155
|
-
nullifier: nullifer,
|
|
156
|
-
responses: [],
|
|
157
|
-
mask: strToUint8Array('mask'),
|
|
158
|
-
plaintext: strToUint8Array('abcdefg')
|
|
159
|
-
})
|
|
160
|
-
)
|
|
161
|
-
assert(realOutput !== 'all', 'should not return "all"')
|
|
162
|
-
|
|
163
|
-
assert.equal(realOutput.length, output.length)
|
|
164
|
-
for(const [i, element] of output.entries()) {
|
|
165
|
-
assert.equal(
|
|
166
|
-
uint8ArrayToStr(realOutput[i].redactedPlaintext),
|
|
167
|
-
element
|
|
168
|
-
)
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
})
|
|
172
|
-
})
|
|
173
|
-
|
|
174
|
-
describe('OPRF Slicing Tests', () => {
|
|
175
|
-
|
|
176
|
-
const cipherSuite: CipherSuite = 'TLS_CHACHA20_POLY1305_SHA256'
|
|
177
|
-
const alg = 'CHACHA20-POLY1305'
|
|
178
|
-
const zkEngine = 'gnark'
|
|
179
|
-
const keylength = 32
|
|
180
|
-
|
|
181
|
-
it('should correctly demarcate blocks for OPRF', async() => {
|
|
182
|
-
const plaintext = `lorem ipsum dolor sit amet, consectetur adipiscing elit,
|
|
183
|
-
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
184
|
-
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
185
|
-
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
|
186
|
-
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
|
|
187
|
-
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
|
|
188
|
-
id est laborum`
|
|
189
|
-
const vectors = [
|
|
190
|
-
{
|
|
191
|
-
plaintext: plaintext,
|
|
192
|
-
redactions: [
|
|
193
|
-
{ fromIndex: 0, toIndex: 35, hash: 'oprf' as const },
|
|
194
|
-
]
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
plaintext: plaintext,
|
|
198
|
-
redactions: [
|
|
199
|
-
{ fromIndex: 128, toIndex: 138, hash: 'oprf' as const },
|
|
200
|
-
]
|
|
201
|
-
},
|
|
202
|
-
{
|
|
203
|
-
plaintext: plaintext,
|
|
204
|
-
redactions: [
|
|
205
|
-
{ fromIndex: 125, toIndex: 135, hash: 'oprf' as const },
|
|
206
|
-
]
|
|
207
|
-
}
|
|
208
|
-
]
|
|
209
|
-
|
|
210
|
-
const key = Buffer.alloc(keylength, 0)
|
|
211
|
-
key[0] = 1
|
|
212
|
-
key[3] = 4
|
|
213
|
-
const {
|
|
214
|
-
ivLength: fixedIvLength,
|
|
215
|
-
} = SUPPORTED_CIPHER_SUITE_MAP[cipherSuite]
|
|
216
|
-
const fixedIv = Buffer.alloc(fixedIvLength, 0)
|
|
217
|
-
fixedIv[0] = 1
|
|
218
|
-
fixedIv[3] = 4
|
|
219
|
-
|
|
220
|
-
const encKey = await crypto.importKey(alg, key)
|
|
221
|
-
|
|
222
|
-
for(const [i, { plaintext, redactions }] of vectors.entries()) {
|
|
223
|
-
const plaintextArr = Buffer.from(plaintext)
|
|
224
|
-
const { ciphertext, iv } = await encryptWrappedRecord(
|
|
225
|
-
plaintextArr,
|
|
226
|
-
{
|
|
227
|
-
key: encKey,
|
|
228
|
-
iv: fixedIv,
|
|
229
|
-
recordNumber: 1234,
|
|
230
|
-
recordHeaderOpts: { type: 'WRAPPED_RECORD' },
|
|
231
|
-
cipherSuite,
|
|
232
|
-
version: isTls13Suite(cipherSuite) ? 'TLS1_3' : 'TLS1_2',
|
|
233
|
-
}
|
|
234
|
-
)
|
|
235
|
-
|
|
236
|
-
const packet: CompleteTLSPacket = {
|
|
237
|
-
type: 'ciphertext',
|
|
238
|
-
encKey,
|
|
239
|
-
iv,
|
|
240
|
-
recordNumber: 1234,
|
|
241
|
-
plaintext: plaintextArr,
|
|
242
|
-
ciphertext,
|
|
243
|
-
fixedIv: fixedIv,
|
|
244
|
-
data: ciphertext
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
const blocksToReveal
|
|
248
|
-
= await getBlocksToReveal([packet], () => redactions, performOprf)
|
|
249
|
-
assert(blocksToReveal !== 'all')
|
|
250
|
-
assert.equal(blocksToReveal.length, 1)
|
|
251
|
-
assert.ok(blocksToReveal[0].toprfs)
|
|
252
|
-
|
|
253
|
-
const revealsMap: Map<CompleteTLSPacket, MessageRevealInfo> = new Map()
|
|
254
|
-
revealsMap.set(packet, {
|
|
255
|
-
type: 'zk',
|
|
256
|
-
redactedPlaintext: blocksToReveal[0].redactedPlaintext,
|
|
257
|
-
toprfs: blocksToReveal[0].toprfs
|
|
258
|
-
})
|
|
259
|
-
|
|
260
|
-
const revealedMessages = await preparePacketsForReveal(
|
|
261
|
-
[{ sender: 'server', message: packet }],
|
|
262
|
-
revealsMap,
|
|
263
|
-
{
|
|
264
|
-
logger,
|
|
265
|
-
cipherSuite: cipherSuite,
|
|
266
|
-
zkEngine: zkEngine,
|
|
267
|
-
}
|
|
268
|
-
)
|
|
269
|
-
|
|
270
|
-
const zkReveal = revealedMessages[0].reveal?.zkReveal
|
|
271
|
-
assert.ok(zkReveal?.proofs?.length)
|
|
272
|
-
assert.ok(zkReveal?.toprfs?.length)
|
|
273
|
-
|
|
274
|
-
const x = await verifyZkPacket(
|
|
275
|
-
{
|
|
276
|
-
ciphertext,
|
|
277
|
-
zkReveal,
|
|
278
|
-
logger,
|
|
279
|
-
cipherSuite,
|
|
280
|
-
zkEngine,
|
|
281
|
-
recordNumber: 1234,
|
|
282
|
-
iv: fixedIv,
|
|
283
|
-
getNextPacket() {
|
|
284
|
-
throw new Error('should not be called in this test')
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
)
|
|
288
|
-
|
|
289
|
-
assert.deepEqual(
|
|
290
|
-
uint8ArrayToStr(x.redactedPlaintext),
|
|
291
|
-
uint8ArrayToStr(blocksToReveal[0].redactedPlaintext)
|
|
292
|
-
)
|
|
293
|
-
|
|
294
|
-
console.log(`done: ${i + 1}/${vectors.length}`)
|
|
295
|
-
}
|
|
296
|
-
})
|
|
297
|
-
|
|
298
|
-
async function performOprf(plaintext: Uint8Array) {
|
|
299
|
-
logger.info({ length: plaintext.length }, 'generating OPRF...')
|
|
300
|
-
|
|
301
|
-
const oprfOperator = makeDefaultOPRFOperator(
|
|
302
|
-
'chacha20',
|
|
303
|
-
zkEngine,
|
|
304
|
-
logger
|
|
305
|
-
)
|
|
306
|
-
const reqData = await oprfOperator.generateOPRFRequestData(
|
|
307
|
-
plaintext,
|
|
308
|
-
TOPRF_DOMAIN_SEPARATOR,
|
|
309
|
-
logger
|
|
310
|
-
)
|
|
311
|
-
const res = await toprf(
|
|
312
|
-
{
|
|
313
|
-
maskedData: reqData.maskedData,
|
|
314
|
-
engine: ZKProofEngine.ZK_ENGINE_GNARK
|
|
315
|
-
},
|
|
316
|
-
{ logger } as any
|
|
317
|
-
)
|
|
318
|
-
const nullifier = await oprfOperator.finaliseOPRF(
|
|
319
|
-
res.publicKeyShare,
|
|
320
|
-
reqData,
|
|
321
|
-
[res]
|
|
322
|
-
)
|
|
323
|
-
|
|
324
|
-
const data: TOPRFProofParams = {
|
|
325
|
-
nullifier,
|
|
326
|
-
responses: [res],
|
|
327
|
-
mask: reqData.mask,
|
|
328
|
-
dataLocation: undefined,
|
|
329
|
-
plaintext
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
return data
|
|
333
|
-
}
|
|
334
|
-
})
|
|
335
|
-
|
|
336
|
-
const ZK_TEST_MATRIX = ZK_CIPHER_SUITES.flatMap(cipherSuite => (
|
|
337
|
-
ZK_ENGINES.map(zkEngine => ({ cipherSuite, zkEngine }))
|
|
338
|
-
))
|
|
339
|
-
|
|
340
|
-
for(const { cipherSuite, zkEngine } of ZK_TEST_MATRIX) {
|
|
341
|
-
describe(`[${cipherSuite}]-[${zkEngine}] should generate ZK proof for ciphertext`, () => {
|
|
342
|
-
const zkProofConcurrency = zkEngine === 'snarkjs' ? 1 : undefined
|
|
343
|
-
|
|
344
|
-
it(zkEngine + '-' + cipherSuite, async() => {
|
|
345
|
-
const alg = cipherSuite.includes('CHACHA20')
|
|
346
|
-
? 'CHACHA20-POLY1305'
|
|
347
|
-
: (
|
|
348
|
-
cipherSuite.includes('AES_256_GCM')
|
|
349
|
-
? 'AES-256-GCM'
|
|
350
|
-
: 'AES-128-GCM'
|
|
351
|
-
)
|
|
352
|
-
const keylength = alg === 'AES-128-GCM' ? 16 : 32
|
|
353
|
-
const key = Buffer.alloc(keylength, 0)
|
|
354
|
-
key[0] = 1
|
|
355
|
-
key[3] = 4
|
|
356
|
-
const {
|
|
357
|
-
ivLength: fixedIvLength,
|
|
358
|
-
} = SUPPORTED_CIPHER_SUITE_MAP[cipherSuite]
|
|
359
|
-
const fixedIv = Buffer.alloc(fixedIvLength, 0)
|
|
360
|
-
fixedIv[0] = 1
|
|
361
|
-
fixedIv[3] = 4
|
|
362
|
-
|
|
363
|
-
const encKey = await crypto.importKey(alg, key)
|
|
364
|
-
const vectors = [
|
|
365
|
-
{
|
|
366
|
-
plaintext:
|
|
367
|
-
'My cool API secret is "my name jeff". Please don\'t reveal it',
|
|
368
|
-
redactions: [
|
|
369
|
-
{ fromIndex: 23, toIndex: 35 }
|
|
370
|
-
]
|
|
371
|
-
},
|
|
372
|
-
{
|
|
373
|
-
plaintext: `lorem ipsum dolor sit amet, consectetur adipiscing elit,
|
|
374
|
-
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
375
|
-
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
376
|
-
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
|
377
|
-
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
|
|
378
|
-
cupidatat non proident, sunt in culpa qui officia deserunt mollit anim
|
|
379
|
-
id est laborum`,
|
|
380
|
-
redactions: [
|
|
381
|
-
{ fromIndex: 5, toIndex: 15 },
|
|
382
|
-
]
|
|
383
|
-
}
|
|
384
|
-
]
|
|
385
|
-
|
|
386
|
-
const proofGenerator = await makeZkProofGenerator({
|
|
387
|
-
logger,
|
|
388
|
-
cipherSuite,
|
|
389
|
-
zkEngine,
|
|
390
|
-
zkProofConcurrency,
|
|
391
|
-
})
|
|
392
|
-
for(const { plaintext, redactions } of vectors) {
|
|
393
|
-
const plaintextArr = Buffer.from(plaintext)
|
|
394
|
-
const redactedPlaintext = redactSlices(plaintextArr, redactions)
|
|
395
|
-
// ensure redaction fn kinda works at least
|
|
396
|
-
assert.notEqual(redactedPlaintext, plaintextArr)
|
|
397
|
-
|
|
398
|
-
const { ciphertext, iv } = await encryptWrappedRecord(
|
|
399
|
-
plaintextArr,
|
|
400
|
-
{
|
|
401
|
-
key: encKey,
|
|
402
|
-
iv: fixedIv,
|
|
403
|
-
recordNumber: 1234,
|
|
404
|
-
recordHeaderOpts: { type: 'WRAPPED_RECORD' },
|
|
405
|
-
cipherSuite,
|
|
406
|
-
version: cipherSuite.includes('ECDHE_')
|
|
407
|
-
? 'TLS1_2'
|
|
408
|
-
: 'TLS1_3',
|
|
409
|
-
}
|
|
410
|
-
)
|
|
411
|
-
|
|
412
|
-
const packet: CompleteTLSPacket = {
|
|
413
|
-
type: 'ciphertext',
|
|
414
|
-
encKey,
|
|
415
|
-
iv,
|
|
416
|
-
recordNumber: 1234,
|
|
417
|
-
plaintext: plaintextArr,
|
|
418
|
-
ciphertext,
|
|
419
|
-
fixedIv: fixedIv,
|
|
420
|
-
data: ciphertext
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
let proofs: ZKProof[] | undefined
|
|
424
|
-
await proofGenerator.addPacketToProve(
|
|
425
|
-
packet,
|
|
426
|
-
{ type: 'zk', redactedPlaintext },
|
|
427
|
-
p => proofs = p,
|
|
428
|
-
() => {
|
|
429
|
-
throw new Error('should not be called in this test')
|
|
430
|
-
}
|
|
431
|
-
)
|
|
432
|
-
await proofGenerator.generateProofs()
|
|
433
|
-
|
|
434
|
-
const x = await verifyZkPacket(
|
|
435
|
-
{
|
|
436
|
-
ciphertext,
|
|
437
|
-
zkReveal: { proofs: proofs!, toprfs: [] },
|
|
438
|
-
logger,
|
|
439
|
-
cipherSuite,
|
|
440
|
-
zkEngine: zkEngine,
|
|
441
|
-
recordNumber: 1234,
|
|
442
|
-
iv: fixedIv,
|
|
443
|
-
getNextPacket() {
|
|
444
|
-
throw new Error('should not be called in this test')
|
|
445
|
-
}
|
|
446
|
-
},
|
|
447
|
-
)
|
|
448
|
-
|
|
449
|
-
assert.deepEqual(redactedPlaintext, x.redactedPlaintext)
|
|
450
|
-
}
|
|
451
|
-
})
|
|
452
|
-
})
|
|
453
|
-
}
|
package/src/types/bgp.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export type BGPAnnouncementOverlapData = {
|
|
3
|
-
prefix: string
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export type BGPListener = {
|
|
7
|
-
/**
|
|
8
|
-
* Add an IP to listen for overlap,
|
|
9
|
-
* @returns a function to remove the IP from the listener
|
|
10
|
-
*/
|
|
11
|
-
onOverlap(
|
|
12
|
-
ips: string[],
|
|
13
|
-
callback: (event: BGPAnnouncementOverlapData) => void
|
|
14
|
-
): (() => void)
|
|
15
|
-
|
|
16
|
-
close(): void
|
|
17
|
-
}
|
package/src/types/claims.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import type { ProviderClaimData } from '#src/proto/api.ts'
|
|
2
|
-
import type { IAttestorClient, IAttestorClientInitParams } from '#src/types/client.ts'
|
|
3
|
-
import type { CompleteTLSPacket, Logger } from '#src/types/general.ts'
|
|
4
|
-
import type { ProofGenerationStep, ProviderName, ProviderParams, ProviderSecretParams } from '#src/types/providers.ts'
|
|
5
|
-
import type { Transcript } from '#src/types/tunnel.ts'
|
|
6
|
-
import type { PrepareZKProofsBaseOpts } from '#src/types/zk.ts'
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Uniquely identifies a claim.
|
|
10
|
-
* Hash of claim info.
|
|
11
|
-
* Utilise `getIdentifierFromClaimInfo` to obtain this.
|
|
12
|
-
*/
|
|
13
|
-
export type ClaimID = ProviderClaimData['identifier']
|
|
14
|
-
|
|
15
|
-
export type ClaimInfo = Pick<ProviderClaimData, 'context' | 'provider' | 'parameters'>
|
|
16
|
-
|
|
17
|
-
export type AnyClaimInfo = ClaimInfo | { identifier: ClaimID }
|
|
18
|
-
|
|
19
|
-
export type CompleteClaimData = Pick<ProviderClaimData, 'owner' | 'timestampS' | 'epoch'>
|
|
20
|
-
& AnyClaimInfo
|
|
21
|
-
|
|
22
|
-
export type CreateClaimOnAttestorOpts<N extends ProviderName> = {
|
|
23
|
-
/** name of the provider to generate signed receipt for */
|
|
24
|
-
name: N
|
|
25
|
-
/**
|
|
26
|
-
* secrets that are used to make the API request;
|
|
27
|
-
* not included in the receipt & cannot be viewed by anyone
|
|
28
|
-
* outside this client
|
|
29
|
-
*/
|
|
30
|
-
secretParams: ProviderSecretParams<N>
|
|
31
|
-
params: ProviderParams<N>
|
|
32
|
-
/**
|
|
33
|
-
* Some metadata context to be included in the claim
|
|
34
|
-
*/
|
|
35
|
-
context?: { [key: string]: any }
|
|
36
|
-
|
|
37
|
-
onStep?(step: ProofGenerationStep): void
|
|
38
|
-
/**
|
|
39
|
-
* Private key in hex format,
|
|
40
|
-
* prefixed with '0x'
|
|
41
|
-
*/
|
|
42
|
-
ownerPrivateKey: string
|
|
43
|
-
/**
|
|
44
|
-
* Provide either the client or the URL
|
|
45
|
-
* to the server -- so a client can be created internally.
|
|
46
|
-
*
|
|
47
|
-
* The created client will go into the global client pool.
|
|
48
|
-
*/
|
|
49
|
-
client: IAttestorClient | IAttestorClientInitParams
|
|
50
|
-
/**
|
|
51
|
-
* Optionally set the timestamp of the claim
|
|
52
|
-
* in unix seconds. If not provided, the current
|
|
53
|
-
* time will be used.
|
|
54
|
-
*/
|
|
55
|
-
timestampS?: number
|
|
56
|
-
|
|
57
|
-
logger?: Logger
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Maximum number of retries to attempt
|
|
61
|
-
* @default 3
|
|
62
|
-
*/
|
|
63
|
-
maxRetries?: number
|
|
64
|
-
/**
|
|
65
|
-
* Optionally update the provider parameters
|
|
66
|
-
* based on the transcript
|
|
67
|
-
*/
|
|
68
|
-
updateProviderParams? (transcript: Transcript<CompleteTLSPacket>, tlsVersion: string): Promise<{
|
|
69
|
-
params: Partial<ProviderParams<N>>
|
|
70
|
-
secretParams: Partial<ProviderSecretParams<N>>
|
|
71
|
-
}>
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Replaces paramValue with corresponding OPRF hash before proof is made
|
|
75
|
-
* Only if there's matching redaction exists
|
|
76
|
-
* For example: "domain.com" -> "dv4Nrgtr"
|
|
77
|
-
*/
|
|
78
|
-
updateParametersFromOprfData?: boolean
|
|
79
|
-
} & PrepareZKProofsBaseOpts
|