krona-staff/scripts/generate-vapid-keys.mjs
Ochenstarik 3e2054480c
Some checks are pending
ci / verify (push) Waiting to run
fix(push): isolate employee data and preserve platform outbox
2026-09-26 12:31:10 +07:00

21 lines
676 B
JavaScript

import crypto from 'node:crypto';
const { publicKey, privateKey } = crypto.generateKeyPairSync('ec', {
namedCurve: 'prime256v1',
});
const publicJwk = publicKey.export({ format: 'jwk' });
const privateJwk = privateKey.export({ format: 'jwk' });
if (!publicJwk.x || !publicJwk.y || !privateJwk.d) {
throw new Error('Failed to generate VAPID P-256 key pair');
}
const rawPublicKey = Buffer.concat([
Buffer.from([0x04]),
Buffer.from(publicJwk.x, 'base64url'),
Buffer.from(publicJwk.y, 'base64url'),
]).toString('base64url');
process.stdout.write(
`VAPID_PUBLIC_KEY=${rawPublicKey}\nVAPID_PRIVATE_KEY=${privateJwk.d}\nVAPID_SUBJECT=mailto:admin@krona.local\n`,
);