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]]
|
[[package]]
|
||||||
name = "itransfer_client"
|
name = "itransfer_server"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode",
|
"bincode",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "itransfer_client"
|
name = "itransfer_server"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user