From f3bf1d626c7d370fe859d51af6165cadad814b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 11 Jun 2017 22:01:41 +0200 Subject: [PATCH] IOS/ES: Add helper function ReadCertStore --- Source/Core/Core/IOS/ES/ES.cpp | 13 +++++++++++++ Source/Core/Core/IOS/ES/ES.h | 1 + 2 files changed, 14 insertions(+) diff --git a/Source/Core/Core/IOS/ES/ES.cpp b/Source/Core/Core/IOS/ES/ES.cpp index 9a6444d362..0c029ede92 100644 --- a/Source/Core/Core/IOS/ES/ES.cpp +++ b/Source/Core/Core/IOS/ES/ES.cpp @@ -781,6 +781,19 @@ bool ES::IsIssuerCorrect(VerifyContainerType type, const IOS::ES::CertReader& is } } +ReturnCode ES::ReadCertStore(std::vector* buffer) const +{ + const std::string store_path = Common::RootUserPath(Common::FROM_SESSION_ROOT) + "/sys/cert.sys"; + File::IOFile store_file{store_path, "rb"}; + if (!store_file) + return FS_ENOENT; + + buffer->resize(store_file.GetSize()); + if (!store_file.ReadBytes(buffer->data(), buffer->size())) + return ES_SHORT_READ; + return IPC_SUCCESS; +} + ReturnCode ES::WriteNewCertToStore(const IOS::ES::CertReader& cert) { const std::string store_path = Common::RootUserPath(Common::FROM_SESSION_ROOT) + "/sys/cert.sys"; diff --git a/Source/Core/Core/IOS/ES/ES.h b/Source/Core/Core/IOS/ES/ES.h index 52b7b7612c..8b18811ac1 100644 --- a/Source/Core/Core/IOS/ES/ES.h +++ b/Source/Core/Core/IOS/ES/ES.h @@ -319,6 +319,7 @@ private: UpdateCertStore, }; bool IsIssuerCorrect(VerifyContainerType type, const IOS::ES::CertReader& issuer_cert) const; + ReturnCode ReadCertStore(std::vector* buffer) const; ReturnCode WriteNewCertToStore(const IOS::ES::CertReader& cert); ReturnCode VerifyContainer(VerifyContainerType type, VerifyMode mode, const IOS::ES::SignedBlobReader& signed_blob,