qssh 0.0.2-alpha

Experimental quantum-safe SSH using post-quantum crypto. Research project - NOT for production. See LIMITATIONS.md
Documentation
use pqcrypto_sphincsplus::sphincssha256128ssimple as sphincs;
use pqcrypto_falcon::falcon512;
use pqcrypto_traits::sign::{PublicKey as SignPublicKeyTrait, SecretKey as SignSecretKeyTrait};

fn main() {
    println!("Testing PQ key sizes...\n");
    
    // Test SPHINCS+ sizes
    let (sphincs_pk, sphincs_sk) = sphincs::keypair();
    println!("SPHINCS+ Public Key size: {} bytes", sphincs_pk.as_bytes().len());
    println!("SPHINCS+ Secret Key size: {} bytes", sphincs_sk.as_bytes().len());
    
    // Test Falcon-512 sizes
    let (falcon_pk, falcon_sk) = falcon512::keypair();
    println!("\nFalcon-512 Public Key size: {} bytes", falcon_pk.as_bytes().len());
    println!("Falcon-512 Secret Key size: {} bytes", falcon_sk.as_bytes().len());
    
    // Test that we can reconstruct keys
    let pk_bytes = sphincs_pk.as_bytes();
    match sphincs::PublicKey::from_bytes(pk_bytes) {
        Ok(_) => println!("\nSPHINCS+ PublicKey reconstruction: SUCCESS"),
        Err(e) => println!("\nSPHINCS+ PublicKey reconstruction: FAILED - {:?}", e),
    }
    
    let pk_bytes = falcon_pk.as_bytes();
    match falcon512::PublicKey::from_bytes(pk_bytes) {
        Ok(_) => println!("Falcon-512 PublicKey reconstruction: SUCCESS"),
        Err(e) => println!("Falcon-512 PublicKey reconstruction: FAILED - {:?}", e),
    }
}