use pqc_binary_format::{Algorithm, EncParameters, PqcBinaryFormat, PqcMetadata};
use std::collections::HashMap;
fn main() {
println!("=== PQC Binary Format v1.0 - Basic Usage ===\n");
let metadata = PqcMetadata {
enc_params: EncParameters {
iv: vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], tag: vec![0; 16], params: HashMap::new(),
},
..Default::default()
};
let encrypted_data = b"This is encrypted data".to_vec();
let format = PqcBinaryFormat::new(Algorithm::Hybrid, metadata, encrypted_data);
println!("Created format:");
println!(" Algorithm: {}", format.algorithm().name());
println!(" Algorithm ID: {:#06x}", format.algorithm().as_id());
println!(" Data length: {} bytes", format.data().len());
println!();
let bytes = format.to_bytes().unwrap();
println!("Serialized to {} bytes", bytes.len());
println!();
let recovered = PqcBinaryFormat::from_bytes(&bytes).unwrap();
println!("Deserialized successfully!");
println!(" Checksum: ✓ Valid");
println!(" Algorithm: {}", recovered.algorithm().name());
println!(" Data matches: {}", recovered.data() == format.data());
println!();
assert_eq!(format, recovered);
println!("✓ Full roundtrip successful!");
}