1 #![feature(macro_rules)]
4 extern crate serialize
;
9 use end_point
::{ Client
, Server
};
16 const PORT
: u16 = 4221;
20 r
"{} genkey | tests | oracle-weak | oracle-fixed
21 genkey: Generate a 256 bits key
22 tests: launch some tests between a client and a weak server
23 oracle-weak: launch a padding oracle attack against a weak server
24 oracle-fixed: launch a padding oracle attack against a fixed server",
30 let args
= os
::args();
32 if args
.iter().any(|a
| a
.as_slice() == "--help" || a
.as_slice() == "-h") {
34 } else if args
.len() > 1 && args
[1].as_slice() == "genkey" {
35 match crypto
::generate_key(256 / 8) {
36 Ok(key
) => println!("key: {}", key
),
37 Err(e
) => println!("Unable to generate a key. Error: {}", e
)
40 println!("Starting server...");
42 match Server
::new("::1", PORT
) {
44 println!("Server started");
46 if args
.len() > 1 && args
[1].as_slice() == "tests" {
47 Client
::start_tests("::1", PORT
);
50 println!("Press any key to quit");
51 io
::stdin().read_line().ok().expect("Failed to read line");
53 server
.close().ok().expect("Failed to close the server");
56 println!("Unable to create a new server. Error: {}", e
)