|
|
|
@ -70,14 +70,18 @@ NAX::NAX(VirtualFile file_, std::array<u8, 0x10> nca_id) |
|
|
|
NAX::~NAX() = default; |
|
|
|
|
|
|
|
Loader::ResultStatus NAX::Parse(std::string_view path) { |
|
|
|
if (file->ReadObject(header.get()) != sizeof(NAXHeader)) |
|
|
|
if (file == nullptr) { |
|
|
|
return Loader::ResultStatus::ErrorNullFile; |
|
|
|
} |
|
|
|
if (file->ReadObject(header.get()) != sizeof(NAXHeader)) { |
|
|
|
return Loader::ResultStatus::ErrorBadNAXHeader; |
|
|
|
|
|
|
|
if (header->magic != Common::MakeMagic('N', 'A', 'X', '0')) |
|
|
|
} |
|
|
|
if (header->magic != Common::MakeMagic('N', 'A', 'X', '0')) { |
|
|
|
return Loader::ResultStatus::ErrorBadNAXHeader; |
|
|
|
|
|
|
|
if (file->GetSize() < NAX_HEADER_PADDING_SIZE + header->file_size) |
|
|
|
} |
|
|
|
if (file->GetSize() < NAX_HEADER_PADDING_SIZE + header->file_size) { |
|
|
|
return Loader::ResultStatus::ErrorIncorrectNAXFileSize; |
|
|
|
} |
|
|
|
|
|
|
|
keys.DeriveSDSeedLazy(); |
|
|
|
std::array<Core::Crypto::Key256, 2> sd_keys{}; |
|
|
|
|