import { createHash, timingSafeEqual } from "node:crypto"; import { config } from "../config"; function sha256(value: string): Buffer { return createHash("sha256").update(value).digest(); } /** Validate a raw API key token string */ export function validateApiKey(token: string | undefined): boolean { if (!token) return false; const tokenHash = sha256(token); return config.apiKeys.some((key) => timingSafeEqual(tokenHash, sha256(key))); } export function hashApiKey(key: string): string { return createHash("sha256").update(key).digest("hex"); }