#!/usr/bin/env node
/**
* Simple test of ANProto sign/verify functions
*/
import { ANProto } from './lib/anproto.js'
console.log('Testing ANProto sign/verify...\n')
// Generate keypair
console.log('1. Generating keypair...')
const identity = ANProto.gen()
console.log('✓ Generated')
console.log(' Public key:', identity.publicKey.toString('base64').substring(0, 12) + '...')
console.log(' Keypair length:', identity.keypair.length)
// Test challenge
const challenge = 'test challenge 12345'
console.log('\n2. Signing challenge...')
console.log(' Challenge:', challenge)
const signature = ANProto.sign(challenge, {
publicKey: identity.publicKey,
secretKey: identity.secretKey
})
console.log('✓ Signature created')
console.log(' Signature:', signature.substring(0, 20) + '...')
console.log(' Length:', signature.length)
// Verify
console.log('\n3. Verifying signature...')
const publicKeyB64 = identity.publicKey.toString('base64')
const isValid = ANProto.verify(challenge, signature, publicKeyB64)
if (isValid) {
console.log('✅ Signature verification PASSED!')
} else {
console.log('❌ Signature verification FAILED!')
process.exit(1)
}
// Test with wrong challenge
console.log('\n4. Testing with wrong challenge...')
const isInvalid = ANProto.verify('wrong challenge', signature, publicKeyB64)
if (!isInvalid) {
console.log('✅ Correctly rejected invalid signature')
} else {
console.log('❌ Incorrectly accepted invalid signature!')
process.exit(1)
}
console.log('\n✅ ANProto sign/verify working correctly!')