import { NextResponse } from "next/server"; import { RechteFehler, rechtErforderlich } from "@/server/auth/sitzungspflicht"; import { publicKeyExport } from "@/server/queries/schluessel"; /** * Public Key als Datei `.pub` (#012). Ein Public Key ist kein Geheimnis – jede * angemeldete Rolle darf ihn holen. Der Slug passt per DB-CHECK in einen Dateinamen. */ export async function GET(_anfrage: Request, { params }: { params: Promise<{ id: string }> }) { try { await rechtErforderlich("lesen"); } catch (fehler) { if (fehler instanceof RechteFehler) return NextResponse.json({ fehler: fehler.message }, { status: 403 }); throw fehler; } const schluessel = await publicKeyExport((await params).id); if (!schluessel) return NextResponse.json({ fehler: "Unbekannter Schlüssel." }, { status: 404 }); return new NextResponse(`${schluessel.publicKey}\n`, { headers: { "Content-Type": "text/plain; charset=utf-8", "Content-Disposition": `attachment; filename="${schluessel.slug}.pub"`, "Cache-Control": "no-store", }, }); }