From 174e21d03f5eebd9eda6c8b57cfd6747fa5bfb59 Mon Sep 17 00:00:00 2001 From: "waffle.lord" Date: Thu, 21 Sep 2023 18:51:20 -0400 Subject: [PATCH] check hashes in mirror downloaders --- .../Models/Mirrors/Downloaders/HttpMirrorDownloader.cs | 7 ++++++- .../Models/Mirrors/Downloaders/MegaMirrorDownloader.cs | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/SPTInstaller/Models/Mirrors/Downloaders/HttpMirrorDownloader.cs b/SPTInstaller/Models/Mirrors/Downloaders/HttpMirrorDownloader.cs index 5a7ca2d..584fe1b 100644 --- a/SPTInstaller/Models/Mirrors/Downloaders/HttpMirrorDownloader.cs +++ b/SPTInstaller/Models/Mirrors/Downloaders/HttpMirrorDownloader.cs @@ -10,6 +10,11 @@ public class HttpMirrorDownloader : MirrorDownloaderBase public override async Task Download(IProgress progress) { - return await DownloadCacheHelper.DownloadFileAsync("patcher.zip", MirrorInfo.Link, progress); + var file = await DownloadCacheHelper.DownloadFileAsync("patcher.zip", MirrorInfo.Link, progress); + + if (file == null) + return null; + + return FileHashHelper.CheckHash(file, MirrorInfo.Hash) ? file : null; } } diff --git a/SPTInstaller/Models/Mirrors/Downloaders/MegaMirrorDownloader.cs b/SPTInstaller/Models/Mirrors/Downloaders/MegaMirrorDownloader.cs index e4d08c1..fb79e35 100644 --- a/SPTInstaller/Models/Mirrors/Downloaders/MegaMirrorDownloader.cs +++ b/SPTInstaller/Models/Mirrors/Downloaders/MegaMirrorDownloader.cs @@ -22,7 +22,12 @@ public class MegaMirrorDownloader : MirrorDownloaderBase { using var megaDownloadStream = await megaClient.DownloadAsync(new Uri(MirrorInfo.Link), progress); - return await DownloadCacheHelper.DownloadFileAsync("patcher.zip", megaDownloadStream); + var file = await DownloadCacheHelper.DownloadFileAsync("patcher.zip", megaDownloadStream); + + if (file == null) + return null; + + return FileHashHelper.CheckHash(file, MirrorInfo.Hash) ? file : null; } catch {