{"_id":"@0xsequence/tee-verifier","_rev":"3-9bb03f12698221fe1d7657c2198c7264","name":"@0xsequence/tee-verifier","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@0xsequence/tee-verifier","version":"0.1.0","keywords":["tee","attestation","nitro","enclave"],"license":"Apache-2.0","_id":"@0xsequence/tee-verifier@0.1.0","maintainers":[{"name":"naivesheep","email":"wh@horizongames.net"},{"name":"pkieltyka","email":"pk@horizon.io"},{"name":"agusx1211","email":"agusxrun@gmail.com"},{"name":"taylanpince","email":"taylan@hipolabs.com"},{"name":"milkytaste","email":"screaminghawk@gmail.com"}],"homepage":"https://github.com/0xsequence/tee-verifier.js#readme","bugs":{"url":"https://github.com/0xsequence/tee-verifier.js/issues"},"dist":{"shasum":"c2b588d27662d0c56a12c9019af5f3ab80222dd5","tarball":"https://registry.npmjs.org/@0xsequence/tee-verifier/-/tee-verifier-0.1.0.tgz","fileCount":5,"integrity":"sha512-uSN5MHfxCfFL6Ig5IRF88G/xK189IYz2zi1DZeTcRykBIGgtSQJMXmCrdQS3tZXYJCOFd1Q+ew5nWoRuB0RhFg==","signatures":[{"sig":"MEUCIQCconrQcvNJHr4mOlUSio8vxAdKd2sig241bKwSSUzYNAIgMuAT0+81CZeXegNUwKDwU86IHFYVdDhtfChj0AnZSvo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13146},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["lefthook"]},"type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"76d1587e567ddbefab67bf96e99ea92fbe4bb464","scripts":{"test":"vitest run","build":"tsc","format":"prettier --list-different --write \"src/**/*.{ts,tsx,md}\"","postinstall":"lefthook install"},"_npmUser":{"name":"taylanpince","email":"taylan@hipolabs.com"},"repository":{"url":"git+https://github.com/0xsequence/tee-verifier.js.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for verifying TEE enclave attestation","directories":{},"_nodeVersion":"18.20.6","dependencies":{"cbor2":"^1.12.0","pkijs":"^3.2.5"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.2","lefthook":"^1.11.11","prettier":"^3.5.3","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/tee-verifier_0.1.0_1745440553031_0.08422410613610332","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@0xsequence/tee-verifier","version":"0.1.1","keywords":["tee","attestation","nitro","enclave"],"license":"Apache-2.0","_id":"@0xsequence/tee-verifier@0.1.1","maintainers":[{"name":"naivesheep","email":"wh@horizongames.net"},{"name":"pkieltyka","email":"pk@horizon.io"},{"name":"agusx1211","email":"agusxrun@gmail.com"},{"name":"taylanpince","email":"taylan@hipolabs.com"},{"name":"milkytaste","email":"screaminghawk@gmail.com"}],"homepage":"https://github.com/0xsequence/tee-verifier.js#readme","bugs":{"url":"https://github.com/0xsequence/tee-verifier.js/issues"},"dist":{"shasum":"9e1206fbf90e2c93b99928365a33319507c138d0","tarball":"https://registry.npmjs.org/@0xsequence/tee-verifier/-/tee-verifier-0.1.1.tgz","fileCount":5,"integrity":"sha512-tBWy/P4reDHzw1dUHL7ydCKI1FKMLVBgLi6gi3b1bTl5zTaV6IZkOzTBCEsOGarfjQ4TQtXqhmoWIlvli0AMqQ==","signatures":[{"sig":"MEUCIHVkUQE1LylJAEYFU44Ix0QtNaK/7StbfqB5O4LEABYuAiEA5ooxW1GcE2Ud1BbqE3V9eU2N3VL9Ha188kZH2v78S0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13300},"main":"dist/index.js","type":"module","_from":"file:0xsequence-tee-verifier-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"private":false,"scripts":{"test":"vitest run","build":"tsc","format":"prettier --list-different --write \"src/**/*.{ts,tsx,md}\""},"_npmUser":{"name":"taylanpince","email":"taylan@hipolabs.com"},"_resolved":"/private/var/folders/g6/0nm7fcp56d12by2dwrqvsvww0000gn/T/6e8c77dd55e6d8202390f27f0637612c/0xsequence-tee-verifier-0.1.1.tgz","_integrity":"sha512-tBWy/P4reDHzw1dUHL7ydCKI1FKMLVBgLi6gi3b1bTl5zTaV6IZkOzTBCEsOGarfjQ4TQtXqhmoWIlvli0AMqQ==","repository":{"url":"git+https://github.com/0xsequence/tee-verifier.js.git","type":"git"},"_npmVersion":"10.8.2","description":"A library for verifying TEE enclave attestation","directories":{},"_nodeVersion":"18.20.6","dependencies":{"cbor2":"^1.12.0","pkijs":"^3.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.2","lefthook":"^1.11.11","prettier":"^3.5.3","typescript":"^5.7.3","@changesets/cli":"^2.29.4"},"_npmOperationalInternal":{"tmp":"tmp/tee-verifier_0.1.1_1748009562321_0.5503122894251593","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@0xsequence/tee-verifier","version":"0.1.2","license":"Apache-2.0","type":"module","description":"A library for verifying TEE enclave attestation","main":"dist/index.js","publishConfig":{"access":"public"},"private":false,"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"keywords":["tee","attestation","nitro","enclave"],"repository":{"type":"git","url":"git+https://github.com/0xsequence/tee-verifier.js.git"},"bugs":{"url":"https://github.com/0xsequence/tee-verifier.js/issues"},"homepage":"https://github.com/0xsequence/tee-verifier.js#readme","devDependencies":{"@changesets/cli":"^2.29.4","lefthook":"^1.11.11","prettier":"^3.5.3","typescript":"^5.7.3","vitest":"^3.1.2"},"dependencies":{"cbor2":"^1.12.0","pkijs":"^3.2.5"},"scripts":{"build":"tsc","test":"vitest run","format":"prettier --list-different --write \"src/**/*.{ts,tsx,md}\""},"_id":"@0xsequence/tee-verifier@0.1.2","types":"./dist/index.d.ts","_integrity":"sha512-7sKr8/T4newknx6LAukjlRI3siGiGhBnZohz2Z3jX0zb0EBQdKUq0L//A7CPSckHFPxTg/QvQU2v8e9x9GfkDw==","_resolved":"/private/var/folders/g6/0nm7fcp56d12by2dwrqvsvww0000gn/T/6aaf650080800589234788685a08330c/0xsequence-tee-verifier-0.1.2.tgz","_from":"file:0xsequence-tee-verifier-0.1.2.tgz","_nodeVersion":"18.20.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-7sKr8/T4newknx6LAukjlRI3siGiGhBnZohz2Z3jX0zb0EBQdKUq0L//A7CPSckHFPxTg/QvQU2v8e9x9GfkDw==","shasum":"cc2002a374b4766a274fee4e871c928bd3eaa288","tarball":"https://registry.npmjs.org/@0xsequence/tee-verifier/-/tee-verifier-0.1.2.tgz","fileCount":5,"unpackedSize":13200,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICM/CeNzQR4MCORG137MSW2bf4JJrSTXX4t693BLfwscAiEAswmM1l3b4dxP5m4Wvdfu2cMX0EHi7W8iNRjzfVFyjIw="}]},"_npmUser":{"name":"taylanpince","email":"taylan@hipolabs.com"},"directories":{},"maintainers":[{"name":"naivesheep","email":"wh@horizongames.net"},{"name":"pkieltyka","email":"pk@horizon.io"},{"name":"agusx1211","email":"agusxrun@gmail.com"},{"name":"taylanpince","email":"taylan@hipolabs.com"},{"name":"milkytaste","email":"screaminghawk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tee-verifier_0.1.2_1749217169116_0.8190074350945884"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-23T20:35:52.976Z","modified":"2025-06-06T13:39:29.575Z","0.1.0":"2025-04-23T20:35:53.219Z","0.1.1":"2025-05-23T14:12:42.503Z","0.1.2":"2025-06-06T13:39:29.324Z"},"bugs":{"url":"https://github.com/0xsequence/tee-verifier.js/issues"},"license":"Apache-2.0","homepage":"https://github.com/0xsequence/tee-verifier.js#readme","keywords":["tee","attestation","nitro","enclave"],"repository":{"type":"git","url":"git+https://github.com/0xsequence/tee-verifier.js.git"},"description":"A library for verifying TEE enclave attestation","maintainers":[{"name":"naivesheep","email":"wh@horizongames.net"},{"name":"pkieltyka","email":"pk@horizon.io"},{"name":"agusx1211","email":"agusxrun@gmail.com"},{"name":"taylanpince","email":"taylan@hipolabs.com"},{"name":"milkytaste","email":"screaminghawk@gmail.com"}],"readme":"# tee-verifier\n\nTypeScript/JavaScript library for verifying TEE (Trusted Execution Environment) enclave attestations. Currently, only AWS Nitro Enclaves is supported.\n\n## Install\n\n```\nnpm install @0xsequence/tee-verifier\n```\n\n## Usage\n\nIf you're verifying a Sequence enclave that responds with an `X-Attestation-Document` HTTP header, you can simply use `createAttestationVerifyingFetch` like so:\n\n```typescript\nimport { createAttestationVerifyingFetch } from 'tee-verifier'\n\nconst verifyingFetch = createAttestationVerifyingFetch({ /* options */ })\ntry {\n  const res = await verifyingFetch('https://waas.sequence.app/health')\n  console.log('Success!')\n} catch (error) {\n  console.error('Verification unsuccessful:', error)\n}\n```\n\nThe following options are available:\n\n- `rootCertFingerprint` - use a different root certificate fingerprint. By default, tee-verifier uses the AWS root certificate from https://docs.aws.amazon.com/enclaves/latest/user/verify-root.html#validation-process\n- `checkDate` - use a different Date to verify the certificates (current date by default)\n- `expectedPCRs` - if provided, the PCRs from the attestation are compared against these\n- `verifyRootOfTrust` - whether the certificate chain should be verified\n- `verifySignature` - whether the attestation signature should be verified\n- `verifyNonce` - whether the nonce in the attestation should be compared against the nonce sent in the request\n- `verifyContentHash` - whether the hash in the attestation should be compared against the calculated hash of the request/response\n- `logTiming` - whether the debug timing should be logged to the console\n\nOtherwise, you can also verify it manually:\n\n```typescript\nconst document = /* base64-encoded attestation returned by the NSM */\nconst attestation = SignedAttestation.fromDocument(document)\nconst isSignatureValid = await attestation.verifySignature()\nconst isRootOfTrustValid = await attestation.verifyRootOfTrust(new Date())\nconst isRootCertValid = (await attestation.rootCertFingerprint()) === expectedFingerprint\nconst isNonceValid = attestation.nonce === expectedNonce\nconst isUserDataValid = attestation.userData === expectedUserData\nconst isPCR0Valid = attestation.pcrs[0] === expectedPCR0\n```\n","readmeFilename":"README.md"}