export async function generateSecretKey() { const key = await crypto.subtle.generateKey( { name: "HMAC", hash: "SHA-512" }, true, ["sign", "verify"], ); return key; } export async function prepareSecretKey() { const key = Deno.env.get("SECRET_KEY"); if (key) { const jwk = JSON.parse(key) as JsonWebKey; { const key = await crypto.subtle.importKey( "jwk", jwk, { name: "HMAC", hash: "SHA-512" }, true, ["sign", "verify"], ); return key; } } else { const key = await generateSecretKey(); const out = await crypto.subtle.exportKey("jwk", key); Deno.env.set("SECRET_KEY", JSON.stringify(out)); return key; } }