7 lines
846 B
JavaScript
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) })
|