From 95baef1db76c7d6f7080c40c63a6d4bc98eb5ecc Mon Sep 17 00:00:00 2001 From: horhik Date: Mon, 14 Sep 2020 11:50:18 +0300 Subject: [PATCH] add skip decrypt function --- src/chat/chat_api_base.rs | 11 +++++++++++ src/chat/mod.rs | 1 + src/encrypting/encryption.rs | 15 ++++++++++----- src/encrypting/mod.rs | 1 + src/lib.rs | 2 ++ src/main.rs | 3 ++- tests/chat_api_tests.rs | 0 tests/encrypting_tests.rs | 25 +++++++++++++++++++++---- 8 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 src/chat/chat_api_base.rs create mode 100644 src/chat/mod.rs create mode 100644 tests/chat_api_tests.rs diff --git a/src/chat/chat_api_base.rs b/src/chat/chat_api_base.rs new file mode 100644 index 0000000..af475a3 --- /dev/null +++ b/src/chat/chat_api_base.rs @@ -0,0 +1,11 @@ + +pub struct Message { + sender_id: i32, + message: String, +} + +pub fn show_message () { + +} + +pub fn main () {} \ No newline at end of file diff --git a/src/chat/mod.rs b/src/chat/mod.rs new file mode 100644 index 0000000..84f3b9b --- /dev/null +++ b/src/chat/mod.rs @@ -0,0 +1 @@ +pub mod chat_api_base; \ No newline at end of file diff --git a/src/encrypting/encryption.rs b/src/encrypting/encryption.rs index 94a2a27..c34fcde 100644 --- a/src/encrypting/encryption.rs +++ b/src/encrypting/encryption.rs @@ -1,6 +1,6 @@ use ntru::rand::RNG_DEFAULT; use ntru::encparams::{DEFAULT_PARAMS_256_BITS}; -use ntru::types::{KeyPair, PrivateKey, PublicKey}; +pub use ntru::types::{KeyPair, PrivateKey, PublicKey}; use std::str; use std::u8; extern crate ntru; @@ -67,12 +67,17 @@ pub fn encrypt_message (msg:String, key: &PublicKey ) -> String { return message } -pub fn decrypt_message(msg: String, kp: &KeyPair) -> String { +pub fn decrypt_message(msg: String, kp: &KeyPair, final_msg: &mut String) { let encrypted_message = msg.into_bytes(); - let decrypted = ntru::decrypt(&encrypted_message, &kp, &DEFAULT_PARAMS_256_BITS).unwrap(); - let decrypted_string = u8_to_string(&decrypted); - return decrypted_string + let decrypted = ntru::decrypt(&encrypted_message, &kp, &DEFAULT_PARAMS_256_BITS); + match decrypted { + Ok(res) => { + *final_msg = u8_to_string(&res) + }, + Err(e) => {} + } } + diff --git a/src/encrypting/mod.rs b/src/encrypting/mod.rs index 81c4253..4ef2ecf 100644 --- a/src/encrypting/mod.rs +++ b/src/encrypting/mod.rs @@ -1 +1,2 @@ pub mod encryption; +pub use encryption::*; diff --git a/src/lib.rs b/src/lib.rs index 8f21d0c..4202a1c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,4 @@ pub mod encrypting; pub use encrypting::*; + +pub mod chat; \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index e7f871b..704d04d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,10 @@ mod cli; mod encrypting; +use encrypting::{KeyPair, generate_kp, encrypt_message, decrypt_message}; fn main() { -/* + /* let (one, two) = keys; let value =String::from_utf8_lossy(&*one); diff --git a/tests/chat_api_tests.rs b/tests/chat_api_tests.rs new file mode 100644 index 0000000..e69de29 diff --git a/tests/encrypting_tests.rs b/tests/encrypting_tests.rs index 9327ba3..85a92f8 100644 --- a/tests/encrypting_tests.rs +++ b/tests/encrypting_tests.rs @@ -1,6 +1,4 @@ use hole::encrypting::encryption::*; -use std::collections::HashMap; -use ntru::types::{KeyPair, PrivateKey, PublicKey}; #[test] @@ -44,11 +42,30 @@ fn it_making_correct_decrypt () { let msg = "👻: it's a ghost. Ghost is unexpectively bloodthirsty".to_string(); - let my_msg = "👻: it's a ghost. Ghost is unexpectively bloodthirsty".to_string(); + let my_msg = msg.clone(); + let mut dec_msg = "".to_string(); let enc_msg = encrypt_message(msg, public); - let dec_msg = decrypt_message(enc_msg, &keypair); + decrypt_message(enc_msg, &keypair, &mut dec_msg); assert_eq!(my_msg, dec_msg) } + +#[test] +fn it_skipping_decrypt () { + let (_, _, keypair) = generate_kp(); + let (_, _, wrong_keypair) = generate_kp(); + + let public = KeyPair::get_public(&keypair); + + + let msg = "👻: it's a ghost. Ghost is unexpectively bloodthirsty".to_string(); + let my_msg = msg.clone(); + + let mut dec_msg = "".to_string(); + + let enc_msg = encrypt_message(msg, public); + decrypt_message(enc_msg, &wrong_keypair, &mut dec_msg); + assert_ne!(my_msg, dec_msg) +} \ No newline at end of file