Sifa professional network API (Fastify, AT Protocol, Jetstream) sifa.id/
at main 24 lines 772 B view raw
1import * as jose from 'jose'; 2import { writeFileSync, mkdirSync } from 'node:fs'; 3 4async function generateKeys() { 5 mkdirSync('./keys', { recursive: true }); 6 const { publicKey, privateKey } = await jose.generateKeyPair('ES256', { extractable: true }); 7 const publicJwk = await jose.exportJWK(publicKey); 8 const privateJwk = await jose.exportJWK(privateKey); 9 const kid = await jose.calculateJwkThumbprint(publicJwk); 10 11 const jwks = { 12 keys: [{ ...publicJwk, kid, use: 'sig', alg: 'ES256' }], 13 }; 14 15 writeFileSync('./keys/jwks.json', JSON.stringify(jwks, null, 2)); 16 writeFileSync( 17 './keys/private-key.json', 18 JSON.stringify({ ...privateJwk, kid, use: 'sig', alg: 'ES256' }, null, 2), 19 ); 20 21 console.log('Keys generated in ./keys/'); 22} 23 24generateKeys();