diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-02-25 12:58:51 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-03-06 00:04:36 +0100 |
| commit | 3c922d49bb94eff7da3a6bd49838629c3975768c (patch) | |
| tree | efb95dca8e06e214b1f39bcc1cf2a48d4ab5dc9b | |
| parent | db4b014074289f3ec2ae1b266b12a7bbee37de90 (diff) | |
| download | mullvadvpn-3c922d49bb94eff7da3a6bd49838629c3975768c.tar.xz mullvadvpn-3c922d49bb94eff7da3a6bd49838629c3975768c.zip | |
Expose hasher in mullvad_update::verify
| -rw-r--r-- | mullvad-update/src/client/verify.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/mullvad-update/src/client/verify.rs b/mullvad-update/src/client/verify.rs index a6bc3c9bc0..08738206ee 100644 --- a/mullvad-update/src/client/verify.rs +++ b/mullvad-update/src/client/verify.rs @@ -49,10 +49,10 @@ impl AppVerifier for Sha256Verifier { } impl Sha256Verifier { - async fn verify_inner( + pub async fn generate_hash( mut reader: impl AsyncRead + Unpin, - expected_hash: [u8; 32], - ) -> anyhow::Result<()> { + ) -> anyhow::Result<[u8; 32]> + { let mut hasher = sha2::Sha256::new(); // Read data into hasher @@ -69,10 +69,17 @@ impl Sha256Verifier { hasher.update(&buffer[..read_n]); } - let actual_hash = hasher.finalize(); + Ok(hasher.finalize().into()) + } + + async fn verify_inner( + reader: impl AsyncRead + Unpin, + expected_hash: [u8; 32], + ) -> anyhow::Result<()> { + let actual_hash = Self::generate_hash(reader).await?; // Verify that hash is correct - if expected_hash != actual_hash[..] { + if expected_hash != actual_hash { anyhow::bail!("Invalid checksum for bin file"); } |
