Files
Web_FreeCAD_Bitbybit/scripts/release-signature.test.mjs

7 lines
846 B
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import { generateKeyPairSync } from 'node:crypto'
import { signManifest, verifyManifestSignature } from './release-signature.mjs'
test('release signature signs and verifies an Ed25519 manifest payload', () => { const { privateKey, publicKey } = generateKeyPairSync('ed25519'); const privatePem = privateKey.export({ format: 'pem', type: 'pkcs8' }); const publicPem = publicKey.export({ format: 'pem', type: 'spki' }); const payload = '{"release":"fixture"}'; const signature = signManifest(payload, privatePem, 'fixture-key'); assert.equal(signature.status, 'signed'); assert.equal(signature.algorithm, 'Ed25519'); assert.equal(verifyManifestSignature(payload, signature, publicPem), true); assert.equal(verifyManifestSignature(`${payload}x`, signature, publicPem), false) })