@dooor-ai/trust
Version:
TEE Attestation and Confidential Computing utilities for Dooor OS
59 lines • 2.33 kB
JavaScript
;
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