add final hash to rust server
This commit is contained in:
parent
3ea37f0c37
commit
eb63e40483
2
rust/server/Cargo.lock
generated
2
rust/server/Cargo.lock
generated
@ -81,7 +81,7 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itransfer_client"
|
||||
name = "itransfer_server"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
|
@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "itransfer_client"
|
||||
name = "itransfer_server"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
|
@ -74,9 +74,7 @@ fn main() {
|
||||
|
||||
println!("Received file request");
|
||||
|
||||
let request = "files/".to_string() + req;
|
||||
|
||||
let file_result = std::fs::File::open(request);
|
||||
let file_result = std::fs::File::open("files/".to_string() + req);
|
||||
|
||||
if file_result.is_err() {
|
||||
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");
|
||||
|
||||
let mut sha512_hasher = Sha512::new();
|
||||
|
||||
//read file chunk by chunk
|
||||
|
||||
while let Ok(bytes_read) = file.read(&mut file_buffer) {
|
||||
@ -120,7 +120,16 @@ fn main() {
|
||||
let packet_bytes = bincode::serialize(&packet).unwrap();
|
||||
socket.send_to(&packet_bytes, remote_addr).expect("Failed to send packet");
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user