diff --git a/libstratosphere/include/stratosphere/fs/fs_code.hpp b/libstratosphere/include/stratosphere/fs/fs_code.hpp index 6dde7c03..4db4ba3d 100644 --- a/libstratosphere/include/stratosphere/fs/fs_code.hpp +++ b/libstratosphere/include/stratosphere/fs/fs_code.hpp @@ -19,17 +19,17 @@ namespace ams::fs { - struct CodeInfo { + struct CodeVerificationData { u8 signature[crypto::Rsa2048PssSha256Verifier::SignatureSize]; - u8 hash[crypto::Rsa2048PssSha256Verifier::HashSize]; - bool is_signed; + u8 target_hash[crypto::Rsa2048PssSha256Verifier::HashSize]; + bool has_data; u8 reserved[3]; }; - static_assert(sizeof(CodeInfo) == crypto::Rsa2048PssSha256Verifier::SignatureSize + crypto::Rsa2048PssSha256Verifier::HashSize + 4); + static_assert(sizeof(CodeVerificationData) == crypto::Rsa2048PssSha256Verifier::SignatureSize + crypto::Rsa2048PssSha256Verifier::HashSize + 4); - Result MountCode(CodeInfo *out, const char *name, const char *path, ncm::ProgramId program_id); + Result MountCode(CodeVerificationData *out, const char *name, const char *path, ncm::ProgramId program_id); - Result MountCodeForAtmosphereWithRedirection(CodeInfo *out, const char *name, const char *path, ncm::ProgramId program_id, bool is_hbl, bool is_specific); - Result MountCodeForAtmosphere(CodeInfo *out, const char *name, const char *path, ncm::ProgramId program_id); + Result MountCodeForAtmosphereWithRedirection(CodeVerificationData *out, const char *name, const char *path, ncm::ProgramId program_id, bool is_hbl, bool is_specific); + Result MountCodeForAtmosphere(CodeVerificationData *out, const char *name, const char *path, ncm::ProgramId program_id); } diff --git a/libstratosphere/source/fs/fs_code.cpp b/libstratosphere/source/fs/fs_code.cpp index c17245ef..ddd36377 100644 --- a/libstratosphere/source/fs/fs_code.cpp +++ b/libstratosphere/source/fs/fs_code.cpp @@ -20,15 +20,15 @@ namespace ams::fs { namespace { - Result OpenCodeFileSystemImpl(CodeInfo *out_code_info, std::unique_ptr *out, const char *path, ncm::ProgramId program_id) { + Result OpenCodeFileSystemImpl(CodeVerificationData *out_verification_data, std::unique_ptr *out, const char *path, ncm::ProgramId program_id) { /* Print a path suitable for the remote service. */ fssrv::sf::Path sf_path; R_TRY(FspPathPrintf(std::addressof(sf_path), "%s", path)); /* Open the filesystem using libnx bindings. */ - static_assert(sizeof(CodeInfo) == sizeof(::FsCodeInfo)); + static_assert(sizeof(CodeVerificationData) == sizeof(::FsCodeInfo)); ::FsFileSystem fs; - R_TRY(fsldrOpenCodeFileSystem(reinterpret_cast<::FsCodeInfo *>(out_code_info), program_id.value, sf_path.str, std::addressof(fs))); + R_TRY(fsldrOpenCodeFileSystem(reinterpret_cast<::FsCodeInfo *>(out_verification_data), program_id.value, sf_path.str, std::addressof(fs))); /* Allocate a new filesystem wrapper. */ auto fsa = std::make_unique(fs); @@ -62,12 +62,12 @@ namespace ams::fs { return OpenPackageFileSystemImpl(out, sf_path.str); } - Result OpenSdCardCodeOrCodeFileSystemImpl(CodeInfo *out_code_info, std::unique_ptr *out, const char *path, ncm::ProgramId program_id) { + Result OpenSdCardCodeOrCodeFileSystemImpl(CodeVerificationData *out_verification_data, std::unique_ptr *out, const char *path, ncm::ProgramId program_id) { /* If we can open an sd card code fs, use it. */ R_SUCCEED_IF(R_SUCCEEDED(OpenSdCardCodeFileSystemImpl(out, program_id))); /* Otherwise, fall back to a normal code fs. */ - return OpenCodeFileSystemImpl(out_code_info, out, path, program_id); + return OpenCodeFileSystemImpl(out_verification_data, out, path, program_id); } Result OpenHblCodeFileSystemImpl(std::unique_ptr *out) { @@ -227,7 +227,7 @@ namespace ams::fs { public: AtmosphereCodeFileSystem() : initialized(false) { /* ... */ } - Result Initialize(CodeInfo *out_code_info, const char *path, ncm::ProgramId program_id, bool is_hbl, bool is_specific) { + Result Initialize(CodeVerificationData *out_verification_data, const char *path, ncm::ProgramId program_id, bool is_hbl, bool is_specific) { AMS_ABORT_UNLESS(!this->initialized); /* If we're hbl, we need to open a hbl fs. */ @@ -239,7 +239,7 @@ namespace ams::fs { /* Open the code filesystem. */ std::unique_ptr fsa; - R_TRY(OpenSdCardCodeOrCodeFileSystemImpl(out_code_info, std::addressof(fsa), path, program_id)); + R_TRY(OpenSdCardCodeOrCodeFileSystemImpl(out_verification_data, std::addressof(fsa), path, program_id)); this->code_fs.emplace(std::move(fsa), program_id, is_specific); this->program_id = program_id; @@ -275,7 +275,7 @@ namespace ams::fs { } - Result MountCode(CodeInfo *out, const char *name, const char *path, ncm::ProgramId program_id) { + Result MountCode(CodeVerificationData *out, const char *name, const char *path, ncm::ProgramId program_id) { /* Clear the output. */ std::memset(out, 0, sizeof(*out)); @@ -293,7 +293,7 @@ namespace ams::fs { return fsa::Register(name, std::move(fsa)); } - Result MountCodeForAtmosphereWithRedirection(CodeInfo *out, const char *name, const char *path, ncm::ProgramId program_id, bool is_hbl, bool is_specific) { + Result MountCodeForAtmosphereWithRedirection(CodeVerificationData *out, const char *name, const char *path, ncm::ProgramId program_id, bool is_hbl, bool is_specific) { /* Clear the output. */ std::memset(out, 0, sizeof(*out)); @@ -314,7 +314,7 @@ namespace ams::fs { return fsa::Register(name, std::move(ams_code_fs)); } - Result MountCodeForAtmosphere(CodeInfo *out, const char *name, const char *path, ncm::ProgramId program_id) { + Result MountCodeForAtmosphere(CodeVerificationData *out, const char *name, const char *path, ncm::ProgramId program_id) { /* Clear the output. */ std::memset(out, 0, sizeof(*out));