X-Git-Url: http://git.euphorik.ch/?p=rup.git;a=blobdiff_plain;f=src%2Fmain.rs;h=c5a7dc1cae7c9e3a6fb3e520fd00855794d1ec42;hp=09965c1b22226fb2884ba16732cfeff00b48a5d0;hb=a2d9b44b27798e2c8a759b2b78d64fc3c6fd9910;hpb=3579135886b85a80569501f1abb5ae7a56f6865e diff --git a/src/main.rs b/src/main.rs index 09965c1..c5a7dc1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ use actix_files as fs; use actix_web::{web, middleware, App, HttpServer, HttpResponse, Responder, Result, web::Query}; use askama::Template; +use std::io::prelude::*; use ron::de::from_reader; use serde::Deserialize; use std::{fs::File, env::args}; @@ -64,17 +65,33 @@ fn print_usage() { println!(" {} [--help] [--encrypt ]", get_exe_name()); } +fn read_key() -> String { + use url::percent_encoding::percent_decode; + let mut key = String::new(); + File::open(consts::FILE_KEY) + .expect(&format!("Failed to open key file: {}", consts::FILE_KEY)) + .read_to_string(&mut key) + .expect(&format!("Failed to read key file: {}", consts::FILE_KEY)); + + String::from( + percent_decode(key.as_bytes()) + .decode_utf8() + .expect(&format!("Failed to decode key file: {}", consts::FILE_KEY)) + ) +} + fn main() -> std::io::Result<()> { let args: Vec = args().collect(); + let key = read_key(); + if args.iter().any(|arg| arg == "--help") { print_usage(); return Ok(()); } else if let Some((position_arg_encrypt, _)) = args.iter().find_position(|arg| arg == &"--encrypt") { match args.iter().nth(position_arg_encrypt + 1) { Some(mess_to_encrypt) => { - let encrypted_mess = mess_to_encrypt; - //let encrypted_mess = crypto::encrypt(key: &str, plain_text: &str); + let encrypted_mess = crypto::encrypt(&key, mess_to_encrypt); println!("Encrypted message: {}", encrypted_mess); } None => print_usage() @@ -93,8 +110,6 @@ fn main() -> std::io::Result<()> { } }; - let key = File::open(consts::FILE_KEY).expect(&format!("Failed to open key file: {}", consts::FILE_KEY)); - println!("Configuration: {:?}", config); let mut listenfd = ListenFd::from_env();