From 716e0a126a22cfdeeaad6204f236324429345d2e Mon Sep 17 00:00:00 2001 From: Liam Date: Wed, 6 Sep 2023 01:06:03 -0400 Subject: core: implement basic integrity verification --- src/core/loader/loader.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/core/loader/loader.h') diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h index 721eb8e8c..b4828f7cd 100644 --- a/src/core/loader/loader.h +++ b/src/core/loader/loader.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include #include @@ -132,6 +133,8 @@ enum class ResultStatus : u16 { ErrorBLZDecompressionFailed, ErrorBadINIHeader, ErrorINITooManyKIPs, + ErrorIntegrityVerificationNotImplemented, + ErrorIntegrityVerificationFailed, }; std::string GetResultStatusString(ResultStatus status); @@ -169,6 +172,13 @@ public: */ virtual LoadResult Load(Kernel::KProcess& process, Core::System& system) = 0; + /** + * Try to verify the integrity of the file. + */ + virtual ResultStatus VerifyIntegrity(std::function progress_callback) { + return ResultStatus::ErrorIntegrityVerificationNotImplemented; + } + /** * Get the code (typically .code section) of the application * -- cgit v1.2.3