import assert from 'node:assert/strict'; import { generateKeyPairSync, verify } from 'node:crypto'; import test from 'node:test'; import { signPayload } from '../lib/signPayload.mjs'; void test('signPayload produces verifiable Ed25519 token', () => { const { privateKey, publicKey } = generateKeyPairSync('ed25519'); const pem = privateKey.export({ type: 'pkcs8', format: 'pem' }); const payload = { v: 1, sub: 's1', pid: 'p', iat: 1, exp: 2, did: 'd1' }; const token = signPayload(payload, pem); const [bodyB64, sigB64] = token.split('.'); assert.ok(bodyB64 && sigB64); const body = Buffer.from(bodyB64, 'base64url'); const sig = Buffer.from(sigB64, 'base64url'); const ok = verify(null, body, publicKey, sig); assert.equal(ok, true); });