import {test, expect} from 'bun:test' import {signature} from '../index' test('base case', async () => { let keypair = await signature.gen_keypair() let data = new TextEncoder().encode("Message 123 !") const sig = (await signature.sign(keypair[0], data)).expect("Should sign the message") let verification = await signature.verify(keypair[1], data, sig) expect(verification).toBe(true) }) test('inverted keys', async () => { let keypair = await signature.gen_keypair() let data = new TextEncoder().encode("Message 123 !") ;(await signature.sign(keypair[1], data)).expect_err("Shouldn't sign the message with the wrong key") const sig = (await signature.sign(keypair[0], data)).expect("Should sign the message") let verification = await signature.verify(keypair[0], data, sig) expect(verification).toBe(false) }) test('tampered message', async () => { let keypair = await signature.gen_keypair() let data1 = new TextEncoder().encode("Message 123 !") let data2 = new TextEncoder().encode("Message 321 !") expect(data1).not.toEqual(data2) const sig = (await signature.sign(keypair[0], data1)).expect("Should sign the message") let verification = await signature.verify(keypair[1], data2, sig) expect(verification).toBe(false) }) test('different keypair', async () => { const keypair = await signature.gen_keypair() const keypair2 = await signature.gen_keypair() let data = new TextEncoder().encode("Message 123 !") const sig = (await signature.sign(keypair[0], data)).expect("Should sign the message") let verification = await signature.verify(keypair2[1], data, sig) expect(verification).toBe(false) }) test('tampered signature', async () => { let keypair = await signature.gen_keypair() let data = new TextEncoder().encode("Message 123 !") const sig = (await signature.sign(keypair[0], data)).expect("Should sign the message") let verification = await signature.verify(keypair[1], data, sig.slice(0, -1)) expect(verification).toBe(false) })