use libslug::slugcrypt::internals::signature::ml_dsa::{SlugMLDSA3, MLDSA3Keypair, MLDSA3PublicKey, MLDSA3SecretKey, MLDSA3Signature};
fn main() {
let keypair: MLDSA3Keypair = SlugMLDSA3::generate();
println!("Public Key: {:?}", keypair.public_key().pk);
println!("Secret Key: {:?}", keypair.secret_key().sk);
let message = "Hello, ML_DSA3!";
let ctx = "Context";
let signature: MLDSA3Signature = keypair.sign(message, ctx).unwrap();
println!("Signature: {:?}", signature.signature);
let is_valid = keypair.verify(message, ctx, &signature).unwrap();
println!("Is the signature valid? {}", is_valid);
}