add final hash to rust server

This commit is contained in:
none 2023-05-30 13:51:58 +02:00
parent 3ea37f0c37
commit eb63e40483
3 changed files with 14 additions and 5 deletions

View File

@ -81,7 +81,7 @@ dependencies = [
] ]
[[package]] [[package]]
name = "itransfer_client" name = "itransfer_server"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"bincode", "bincode",

View File

@ -1,5 +1,5 @@
[package] [package]
name = "itransfer_client" name = "itransfer_server"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"

View File

@ -74,9 +74,7 @@ fn main() {
println!("Received file request"); println!("Received file request");
let request = "files/".to_string() + req; let file_result = std::fs::File::open("files/".to_string() + req);
let file_result = std::fs::File::open(request);
if file_result.is_err() { if file_result.is_err() {
println!("File not found"); println!("File not found");
@ -100,6 +98,8 @@ fn main() {
socket.send_to(bincode::serialize(&packet_information).unwrap().as_slice(), remote_addr).expect("Failed to send packet information"); socket.send_to(bincode::serialize(&packet_information).unwrap().as_slice(), remote_addr).expect("Failed to send packet information");
let mut sha512_hasher = Sha512::new();
//read file chunk by chunk //read file chunk by chunk
while let Ok(bytes_read) = file.read(&mut file_buffer) { while let Ok(bytes_read) = file.read(&mut file_buffer) {
@ -120,7 +120,16 @@ fn main() {
let packet_bytes = bincode::serialize(&packet).unwrap(); let packet_bytes = bincode::serialize(&packet).unwrap();
socket.send_to(&packet_bytes, remote_addr).expect("Failed to send packet"); socket.send_to(&packet_bytes, remote_addr).expect("Failed to send packet");
packet_number += 1; packet_number += 1;
}
sha512_hasher.update(&file_buffer[..bytes_read]);
}
let result = sha512_hasher.finalize();
//add 1 byte of padding to result
let mut result_bytes = [0u8; 65];
result_bytes[..64].copy_from_slice(&result[..64]);
socket.send_to(&result_bytes, remote_addr).expect("Failed to send file hash");
} }
} }
} }