OverviewFilesCommitsIssuesDocsReleasesPeers

pear-git / test / test-anproto-simple.js

56 lines · javascript ref:
#!/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!')