X-Git-Url: http://git.euphorik.ch/?p=crypto_lab1.git;a=blobdiff_plain;f=src%2Fmain.rs;h=64aef28e128a89381fd18f561f08c422dd12ef8e;hp=5f2fdf93df305e1e64b90692ee699c8ce30cf831;hb=c9318a07ce0ec00f999ff17943b83048d536ecd1;hpb=8226b0eced022af21512d87902bf6e252afe1a67 diff --git a/src/main.rs b/src/main.rs index 5f2fdf9..64aef28 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,22 +11,24 @@ use end_point::{ Client, Server }; mod crypto; mod packet; mod end_point; - -/* -TODO - * Comment stocker les clefs? à quels critères doivent elle répondre? - * -*/ +mod oracle_machine; const PORT: u16 = 4221; fn print_usage() { - println!("{} | | ...", os::args()[0]); + println!( + r"{} genkey | tests | oracle-weak | oracle-fixed + genkey: Generate a 256 bits key + tests: launch some tests between a client and a weak server + oracle-weak: launch a padding oracle attack against a weak server + oracle-fixed: launch a padding oracle attack against a fixed server", + os::args()[0] + ); } -fn main() { +fn main() { let args = os::args(); - + if args.iter().any(|a| a.as_slice() == "--help" || a.as_slice() == "-h") { print_usage(); } else if args.len() > 1 && args[1].as_slice() == "genkey" { @@ -35,13 +37,19 @@ fn main() { Err(e) => println!("Unable to generate a key. Error: {}", e) } } else { - println!("Starting server..., Press any key to quit"); - + println!("Starting server..."); + match Server::new("::1", PORT) { Ok(mut server) => { println!("Server started"); - Client::start_tests("::1", PORT); - io::stdin().read_line().ok().expect("Failed to read line"); + + if args.len() > 1 && args[1].as_slice() == "tests" { + Client::start_tests("::1", PORT); + } + + println!("Press any key to quit"); + io::stdin().read_line().ok().expect("Failed to read line"); + server.close().ok().expect("Failed to close the server"); }, Err(e) =>