diff --git a/KubeOS-Rust/manager/src/sys_mgmt/disk_image.rs b/KubeOS-Rust/manager/src/sys_mgmt/disk_image.rs index 4ccb60337645b4b926bc3236d75dfea057694b44..f60d714a515b54da307de0a061ae6a40e0165b96 100644 --- a/KubeOS-Rust/manager/src/sys_mgmt/disk_image.rs +++ b/KubeOS-Rust/manager/src/sys_mgmt/disk_image.rs @@ -72,13 +72,14 @@ impl DiskImageHandler { fn checksum_match(&self, file_path: &str, check_sum: &str) -> Result<()> { trace!("Start to check checksum"); + let check_sum = check_sum.to_ascii_lowercase(); let file = fs::read(file_path)?; let mut hasher = Sha256::new(); hasher.update(file); let hash = hasher.finalize(); // sha256sum -b /persist/update.img - let cal_sum = format!("{:X}", hash); - if cal_sum.to_lowercase() != check_sum.to_lowercase() { + let cal_sum = format!("{:X}", hash).to_ascii_lowercase(); + if cal_sum != check_sum { delete_file_or_dir(file_path)?; bail!("Checksum {} mismatch to {}", cal_sum, check_sum); } @@ -302,7 +303,7 @@ mod tests { handler.paths.image_path = tmp_file.path().to_path_buf(); let mut req = UpgradeRequest { version: "v2".into(), - check_sum: "98ea7aff44631d183e6df3488f1107357d7503e11e5f146effdbfd11810cd4a2".into(), + check_sum: "98Ea7aff44631D183e6df3488f1107357d7503e11e5f146effdbfd11810cd4a2".into(), image_type: "disk".into(), container_image: "".into(), image_url: "http://localhost:8080/aaa.txt".to_string(), @@ -313,7 +314,7 @@ mod tests { assert_eq!(handler.paths.image_path.exists(), true); handler.checksum_match(handler.paths.image_path.to_str().unwrap(), &req.check_sum).unwrap(); - req.check_sum = "1234567890".into(); + req.check_sum = "1234567Abc".into(); let res = handler.checksum_match(handler.paths.image_path.to_str().unwrap(), &req.check_sum); assert!(res.is_err()); }