UNPKG

@dooor-ai/trust

Version:

TEE Attestation and Confidential Computing utilities for Dooor OS

59 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createHandler = createHandler; const attestation_1 = require("./attestation"); function readBody(req) { return new Promise((resolve, reject) => { let data = ''; req.on('data', (chunk) => (data += chunk)); req.on('end', () => { try { resolve(JSON.parse(data || '{}')); } catch (e) { reject(e); } }); req.on('error', (err) => reject(err)); }); } function createHandler(opts) { return async function handleRequest(req, res) { const ip = (req.socket?.remoteAddress || '').replace('::ffff:', ''); if ((opts.requireLoopback ?? true) && ip !== '127.0.0.1' && ip !== '::1') { res.statusCode = 403; res.end(JSON.stringify({ error: 'forbidden', message: 'Request must originate from loopback address' })); return; } try { const body = await readBody(req); if (req.url?.endsWith('/health')) { res.statusCode = 200; res.setHeader('Content-Type', 'application/json'); console.log('🚀 [TEE-HANDLER] Health check requested'); res.end(JSON.stringify({ status: 'ok123', ts: new Date().toISOString() })); return; } if (req.url?.endsWith('/token')) { const tokenOptions = { audience: body?.audience ?? opts.audience, tokenType: body?.token_type ?? opts.tokenType ?? 'PKI', nonces: body?.nonces, }; const token = await (0, attestation_1.getAttestationToken)(tokenOptions); res.statusCode = 200; res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ token })); return; } res.statusCode = 404; res.end(JSON.stringify({ error: 'not_found' })); } catch (error) { console.error('[dooor-trust-handler] Error:', error); res.statusCode = 500; res.end(JSON.stringify({ error: 'internal_server_error' })); } }; } //# sourceMappingURL=handler.js.map