summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-02-25 12:58:51 +0100
committerDavid Lönnhager <david.l@mullvad.net>2025-03-06 00:04:36 +0100
commit3c922d49bb94eff7da3a6bd49838629c3975768c (patch)
treeefb95dca8e06e214b1f39bcc1cf2a48d4ab5dc9b
parentdb4b014074289f3ec2ae1b266b12a7bbee37de90 (diff)
downloadmullvadvpn-3c922d49bb94eff7da3a6bd49838629c3975768c.tar.xz
mullvadvpn-3c922d49bb94eff7da3a6bd49838629c3975768c.zip
Expose hasher in mullvad_update::verify
-rw-r--r--mullvad-update/src/client/verify.rs17
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");
}