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");
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());
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());
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),
}
}