xHyroM
04/07/2023, 1:34 PMxHyroM
04/07/2023, 1:34 PMHardAtWork
04/07/2023, 1:38 PMxHyroM
04/07/2023, 1:46 PMxHyroM
04/07/2023, 1:46 PMbot:dev: [mf:err] POST /: NotSupportedError: Unrecognized name.
bot:dev: at new DOMException (node:internal/per_context/domexception:53:5)
bot:dev: at __node_internal_ (node:internal/util:609:10)
bot:dev: at normalizeAlgorithm (node:internal/crypto/util:203:15)
bot:dev: at signVerify (node:internal/crypto/webcrypto:636:15)
bot:dev: at SubtleCrypto.verify (node:internal/crypto/webcrypto:682:10)
bot:dev: at Proxy.verify (C:\Users\Jozef Steinhübl\Workspace\TypeScript\roles-bot\node_modules\.pnpm\@miniflare+core@2.10.0\node_modules\@miniflare\core\src\standards\crypto.ts:193:27)
bot:dev: at processTicksAndRejections (node:internal/process/task_queues:95:5)
bot:dev: at oi (C:\Users\Jozef Steinhübl\Workspace\TypeScript\roles-bot\packages\bot\dist\worker.mjs:1:67473)
bot:dev: at Object.fetch (C:\Users\Jozef Steinhübl\Workspace\TypeScript\roles-bot\packages\bot\dist\worker.mjs:1:67710)
bot:dev: at ServiceWorkerGlobalScope.[kDispatchFetch] (C:\Users\Jozef Steinhübl\Workspace\TypeScript\roles-bot\node_modules\.pnpm\@miniflare+core@2.10.0\node_modules\@miniflare\core\src\standards\event.ts:385:13)
xHyroM
04/07/2023, 1:46 PMjs
// from https://gist.github.com/devsnek/77275f6e3f810a9545440931ed314dc1
"use strict";
function hex2bin(hex: string) {
const buf = new Uint8Array(Math.ceil(hex.length / 2));
for (let i = 0; i < buf.length; i++) {
buf[i] = parseInt(hex.substring(i * 2, i * 2 + 2), 16);
}
return buf;
}
const encoder = new TextEncoder();
export async function verify(request: Request, env: Env) {
const subtle = await crypto.subtle.importKey(
"raw",
hex2bin(env.publicKey),
{
name: "NODE-ED25519",
namedCurve: "NODE-ED25519",
},
true,
["verify"],
);
// rome-ignore lint/style/noNonNullAssertion: its fine
const signature = hex2bin(request.headers.get("X-Signature-Ed25519")!);
const timestamp = request.headers.get("X-Signature-Timestamp");
const unknown = await request.clone().text();
return await crypto.subtle.verify(
"NODE-ED25519",
subtle,
signature,
encoder.encode(timestamp + unknown),
);
}
HardAtWork
04/07/2023, 1:50 PMxHyroM
04/07/2023, 1:50 PMHardAtWork
04/07/2023, 1:51 PMWalshy | Pages
04/07/2023, 1:51 PMHardAtWork
04/07/2023, 1:51 PMxHyroM
04/07/2023, 1:53 PMEd25519
Walshy | Pages
04/07/2023, 1:53 PMxHyroM
04/07/2023, 1:53 PMxHyroM
04/07/2023, 1:54 PMxHyroM
04/07/2023, 1:54 PMWalshy | Pages
04/07/2023, 1:55 PMkulotskinakalbo
04/07/2023, 2:47 PMsteeldragon
04/07/2023, 3:52 PMFabian
04/07/2023, 4:12 PMChaika
04/07/2023, 4:15 PMUnsmart | Tech debt
04/07/2023, 4:16 PMFabian
04/07/2023, 4:16 PMUnsmart | Tech debt
04/07/2023, 4:17 PMFabian
04/07/2023, 4:17 PMadvaith
04/07/2023, 7:32 PMSkye
04/07/2023, 7:37 PMCyb3r-Jok3
04/07/2023, 7:38 PMadvaith
04/07/2023, 7:38 PM