mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
TitleDownloaderのResult抜けを修正
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@614 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
6e20c3e0ac
commit
8a10b81820
@ -504,38 +504,32 @@ void WriteTwlData(enum common::TWL_PATH_INDEX path)
|
||||
{
|
||||
nn::fs::FileOutputStream list;
|
||||
result = list.TryInitialize(common::FILE_LIST_PATHNAME, true);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_VOID_SET_BOOL_IF_FAILED(result, s_IsExportSucceeded);
|
||||
|
||||
result = list.TryGetSize(&fileSize);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
result = list.TryGetSize(&fileSize);
|
||||
// 末尾に移動
|
||||
result = list.TrySetPosition(fileSize);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
// 末尾に移動
|
||||
result = list.TrySetPosition(fileSize);
|
||||
if (result.IsSuccess())
|
||||
wchar_t archiveName[nn::fs::MAX_FILE_PATH_LENGTH];
|
||||
::std::mbstowcs(archiveName, common::TWL_ARCHIVE_NAME_TABLE[path],
|
||||
std::strlen(common::TWL_ARCHIVE_NAME_TABLE[path]) + 1);
|
||||
std::wstring archiveString(archiveName);
|
||||
if (!common::CopyDirectory(
|
||||
NULL,
|
||||
(archiveString + ::std::wstring(L"/")).c_str(),
|
||||
(common::SDMC_ROOT_DIRECTORY_PATH + ::std::wstring(common::SD_TWL_ROOTNAME_TABLE[path])).c_str(),
|
||||
buf, bufSize, true, &list, &s_FileListContext))
|
||||
{
|
||||
wchar_t archiveName[nn::fs::MAX_FILE_PATH_LENGTH];
|
||||
::std::mbstowcs(archiveName, common::TWL_ARCHIVE_NAME_TABLE[path],
|
||||
std::strlen(common::TWL_ARCHIVE_NAME_TABLE[path]) + 1);
|
||||
std::wstring archiveString(archiveName);
|
||||
if(!common::CopyDirectory(
|
||||
NULL,
|
||||
(archiveString + ::std::wstring(L"/")).c_str(),
|
||||
(common::SDMC_ROOT_DIRECTORY_PATH + ::std::wstring(common::SD_TWL_ROOTNAME_TABLE[path])).c_str(),
|
||||
buf, bufSize, true, &list, &s_FileListContext))
|
||||
{
|
||||
s_IsExportSucceeded = false;
|
||||
return;
|
||||
}
|
||||
s_IsExportSucceeded = false;
|
||||
return;
|
||||
}
|
||||
|
||||
list.TryFlush();
|
||||
list.Finalize();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
s_IsExportSucceeded = false;
|
||||
|
||||
list.TryFlush();
|
||||
list.Finalize();
|
||||
}
|
||||
}
|
||||
|
||||
@ -863,8 +857,7 @@ bool DeleteNimSaveData()
|
||||
result = nn::fs::TryDeleteDirectoryRecursively(nimSaveDataPath.c_str());
|
||||
if (result.IsFailure() && !nn::fs::ResultNotFound::Includes(result))
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
}
|
||||
|
||||
result = common::SdMountManager::Unmount();
|
||||
|
||||
@ -1726,45 +1726,45 @@ nn::Result InitializeHardwareDependentSetting()
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL),
|
||||
&cfgCalData.touchPanelCfgData, sizeof(TouchPanelCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_LCD, NN_CFG_LCD_CAL_FLICKER),
|
||||
&cfgCalData.lcdFlickerCfgData, sizeof(LcdFlickerCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_FCRAM, NN_CFG_FCRAM_CAL_DELAY), &cfgCalData.fcramCfgData,
|
||||
sizeof(FcramCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_RTC, NN_CFG_RTC_CAL_COMPENSATION),
|
||||
&cfgCalData.rtcCfgData, sizeof(RtcCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_GYROSCOPE),
|
||||
&cfgCalData.gyroscopeCfgData, sizeof(GyroscopeCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_ACCELEROMETER),
|
||||
&cfgCalData.accelCfgData, sizeof(AccelCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_CODEC, NN_CFG_CODEC_CAL), &cfgCalData.codecCfgData,
|
||||
sizeof(CodecCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_MCU, NN_CFG_MCU_SLIDE_VOLUME),
|
||||
&cfgCalData.mcuSlideVolumeRangeCfgData, sizeof(McuSlideVolumeRangeCfgData));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
NN_LOG("Set cfgCalData\n");
|
||||
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
nn::cfg::CTR::init::ResetCameraCalibration();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
nn::cfg::CTR::init::ResetAnalogStickCalibration();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -219,18 +219,15 @@ nn::Result ConnectNetwork()
|
||||
nn::ac::Config config;
|
||||
|
||||
result = nn::ac::CreateDefaultConfig(&config);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::ac::ConnectWithoutEula(config);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
COMMON_LOGGER_DETAIL("Success nn::ac::ConnectWithoutEula\n");
|
||||
|
||||
result = PrintNetworkSetting();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -240,12 +237,10 @@ nn::Result InitializeInternal()
|
||||
nn::Result result;
|
||||
|
||||
result = nn::ac::InitializeInternal();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = ConnectNetwork();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -414,7 +409,6 @@ void ShopOperationSingleThreadFunc(ShopThreadParam param)
|
||||
|
||||
COMMON_LOGGER_DETAIL("util::ac::Initialize\n");
|
||||
result = InitializeInternal();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
NIM_SHOP_RESULT_CHECK(result);
|
||||
|
||||
switch(param.op)
|
||||
|
||||
@ -353,7 +353,7 @@ void TitleDownloader::Start()
|
||||
nn::nim::TitleConfig config;
|
||||
s64 requiredSize;
|
||||
m_Result = GetTitleConfig(m_ProgramIdList[i], &config, &requiredSize);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
|
||||
StartShopOperationSingle(SHOP_OPERATION_DOWNLOAD_TITLE, config);
|
||||
WaitShopOperationAndFinalize();
|
||||
|
||||
@ -622,36 +622,21 @@ bool VerifyMac(nn::fs::FileInputStream* sdFile, nn::fs::FileStream* nandFile, s6
|
||||
while (1)
|
||||
{
|
||||
result = nandFile->TryRead(&readSize, buf, bufSize / 2);
|
||||
if (result.IsFailure())
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
totalReadSize += readSize;
|
||||
|
||||
if (readSize == 0)
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
retValue = false;
|
||||
retValue = CalculateAndCompareCmac(&context, sdCmac);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
totalReadSize += readSize;
|
||||
|
||||
if (readSize == 0)
|
||||
{
|
||||
retValue = CalculateAndCompareCmac(&context, sdCmac);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 paddingSize = 0;
|
||||
AddPkcsPadding(&paddingSize, reinterpret_cast<bit8*>(buf), bufSize / 2, &readSize);
|
||||
result = swAesCtrContext.Encrypt(reinterpret_cast<bit8*>(buf) + bufSize / 2, buf, readSize);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
context.Update(reinterpret_cast<bit8*>(buf) + bufSize / 2 , readSize);
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
retValue = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
u8 paddingSize = 0;
|
||||
AddPkcsPadding(&paddingSize, reinterpret_cast<bit8*>(buf), bufSize / 2, &readSize);
|
||||
result = swAesCtrContext.Encrypt(reinterpret_cast<bit8*>(buf) + bufSize / 2, buf, readSize);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
context.Update(reinterpret_cast<bit8*>(buf) + bufSize / 2, readSize);
|
||||
}
|
||||
}
|
||||
nandFile->Finalize();
|
||||
|
||||
@ -188,7 +188,7 @@ void SaveDataMover::CalculateExportSystemSaveDataSize()
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Export: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -251,7 +251,7 @@ void SaveDataMover::ExportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Export: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
NN_LOG("fileSize = %lld\n", input.GetSize());
|
||||
@ -267,7 +267,7 @@ void SaveDataMover::ExportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Export: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ void SaveDataMover::ExportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Export: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -391,7 +391,7 @@ void SaveDataMover::ImportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Import: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -402,7 +402,7 @@ void SaveDataMover::ImportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Import: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -414,7 +414,7 @@ void SaveDataMover::ImportSystemSaveData(void* buf, size_t bufSize, u64* progres
|
||||
if(m_Result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_WARN("Can't Import: %08x\n", id);
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(m_Result);
|
||||
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@ -376,26 +376,18 @@ nn::Result InitializeNetwork(void)
|
||||
nn::ac::Config config;
|
||||
|
||||
result = nn::ac::InitializeInternal();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
// 接続要求用のパラメータを作成
|
||||
result = nn::ac::CreateDefaultConfig(&config);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return result;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
// デバッグ用に接続テストを無効化
|
||||
nn::ac::DebugSetNetworkArea(&config, nn::ac::NETWORK_AREA_LAN);
|
||||
|
||||
// 接続要求を発行
|
||||
result = nn::ac::ConnectWithoutEula(config);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return result;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
return nn::ResultSuccess();
|
||||
}
|
||||
@ -406,10 +398,10 @@ nn::Result FinalizeNetwork(void)
|
||||
|
||||
// 接続要求用のパラメータを作成
|
||||
result = nn::ac::Close();
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
result = nn::ac::FinalizeInternal();
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_RESULT_IF_FAILED(result);
|
||||
|
||||
return nn::ResultSuccess();
|
||||
}
|
||||
|
||||
@ -102,24 +102,16 @@ bool AddCmac(const wchar_t * from_path, void* buf, const size_t bufSize)
|
||||
bool ret_value = true;
|
||||
|
||||
nn::Result result = from_dir.TryInitialize(from_path);
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
// 出力先ディレクトリを削除してから作成
|
||||
const wchar_t* CMAC_DIR = L"CmacAdded";
|
||||
targetDirectory << from_path << CMAC_DIR;
|
||||
result = nn::fs::TryDeleteDirectoryRecursively(targetDirectory.str().c_str());
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
result = nn::fs::TryCreateDirectory(targetDirectory.str().c_str());
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
||||
@ -160,11 +160,7 @@ bool CalculateAndCompareCmac(nn::crypto::Sha256Context* context, bit8* sdCmac)
|
||||
context->Finalize();
|
||||
|
||||
result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, sizeof(sha256Hash), common::cmacKey);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
if(std::memcmp(cmac, sdCmac, sizeof(cmac)) != 0)
|
||||
{
|
||||
@ -198,12 +194,7 @@ bool DecryptDirectory(const wchar_t * from_path, const wchar_t* to_path, void* b
|
||||
bool ret_value = true;
|
||||
|
||||
nn::Result result = from_dir.TryInitialize(from_path);
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
while (1)
|
||||
{
|
||||
@ -266,13 +257,8 @@ bool DecryptDirectory(const wchar_t * from_path, const wchar_t* to_path, void* b
|
||||
|
||||
|
||||
result = sdFile.TryGetSize(&sdFileSize);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
ret_value = false;
|
||||
break;
|
||||
}
|
||||
else
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
{
|
||||
|
||||
bit8 sdCmac[nn::crypto::AES_CMAC_MAC_SIZE];
|
||||
@ -286,20 +272,10 @@ bool DecryptDirectory(const wchar_t * from_path, const wchar_t* to_path, void* b
|
||||
s32 readSize;
|
||||
// ハッシュを取得する
|
||||
result = sdFile.TrySetPosition(sdFileSize - nn::crypto::AES_CMAC_MAC_SIZE);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
result = sdFile.TryRead(&readSize, sdCmac, sizeof(sdCmac));
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
result = sdFile.TryRead(&readSize, sdCmac, sizeof(sdCmac));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
sdFile.SetPosition(0);
|
||||
|
||||
@ -324,16 +300,12 @@ bool DecryptDirectory(const wchar_t * from_path, const wchar_t* to_path, void* b
|
||||
BackupDataHeader dec;
|
||||
std::memset(&enc, 0, sizeof(enc));
|
||||
std::memset(&dec, 0, sizeof(dec));
|
||||
sdFile.TryRead(&readSize, &enc, sizeof(enc));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
if(result.IsFailure())
|
||||
{
|
||||
ret_value = false;
|
||||
break;
|
||||
}
|
||||
result = sdFile.TryRead(&readSize, &enc, sizeof(enc));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
totalReadSize += readSize;
|
||||
context.Update(&enc, sizeof(enc));
|
||||
swAesCtrContext.Decrypt(&dec, &enc, sizeof(enc));
|
||||
result = swAesCtrContext.Decrypt(&dec, &enc, sizeof(enc));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
// 書き込み対象ファイル作成
|
||||
s32 writeSize;
|
||||
@ -347,15 +319,9 @@ bool DecryptDirectory(const wchar_t * from_path, const wchar_t* to_path, void* b
|
||||
while (1)
|
||||
{
|
||||
result = sdFile.TryRead(&readSize, buf, bufSize / 2);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
totalReadSize += readSize;
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
ret_value = false;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (readSize == 0)
|
||||
{
|
||||
|
||||
@ -147,11 +147,7 @@ bool CalculateAndCompareCmac(nn::crypto::Sha256Context* context, bit8* sdCmac)
|
||||
context->Finalize();
|
||||
|
||||
result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, sizeof(sha256Hash), common::cmacKey);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
if(std::memcmp(cmac, sdCmac, sizeof(cmac)) != 0)
|
||||
{
|
||||
@ -184,12 +180,7 @@ bool VerifyDirectory(const wchar_t * from_path, void* buf,
|
||||
bool ret_value = true;
|
||||
|
||||
nn::Result result = from_dir.TryInitialize(from_path);
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
while (1)
|
||||
{
|
||||
@ -237,13 +228,7 @@ bool VerifyDirectory(const wchar_t * from_path, void* buf,
|
||||
}
|
||||
|
||||
result = sdFile.TryGetSize(&sdFileSize);
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
ret_value = false;
|
||||
break;
|
||||
}
|
||||
else
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
{
|
||||
|
||||
bit8 sdCmac[nn::crypto::AES_CMAC_MAC_SIZE];
|
||||
@ -257,20 +242,9 @@ bool VerifyDirectory(const wchar_t * from_path, void* buf,
|
||||
s32 readSize;
|
||||
// ハッシュを取得する
|
||||
result = sdFile.TrySetPosition(sdFileSize - nn::crypto::AES_CMAC_MAC_SIZE);
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
result = sdFile.TryRead(&readSize, sdCmac, sizeof(sdCmac));
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
result = sdFile.TryRead(&readSize, sdCmac, sizeof(sdCmac));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
sdFile.SetPosition(0);
|
||||
|
||||
@ -295,13 +269,8 @@ bool VerifyDirectory(const wchar_t * from_path, void* buf,
|
||||
BackupDataHeader dec;
|
||||
std::memset(&enc, 0, sizeof(enc));
|
||||
std::memset(&dec, 0, sizeof(dec));
|
||||
sdFile.TryRead(&readSize, &enc, sizeof(enc));
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
if(result.IsFailure())
|
||||
{
|
||||
ret_value = false;
|
||||
break;
|
||||
}
|
||||
result = sdFile.TryRead(&readSize, &enc, sizeof(enc));
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
totalReadSize += readSize;
|
||||
context.Update(&enc, sizeof(enc));
|
||||
swAesCtrContext.Decrypt(&dec, &enc, sizeof(enc));
|
||||
@ -309,15 +278,9 @@ bool VerifyDirectory(const wchar_t * from_path, void* buf,
|
||||
while (1)
|
||||
{
|
||||
result = sdFile.TryRead(&readSize, buf, bufSize);
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
totalReadSize += readSize;
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
ret_value = false;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (readSize == 0)
|
||||
{
|
||||
|
||||
@ -155,12 +155,7 @@ bool EncryptDirectory(const wchar_t * from_path, void* buf,
|
||||
bool ret_value = true;
|
||||
|
||||
nn::Result result = from_dir.TryInitialize(from_path);
|
||||
|
||||
if (result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT_IF_FAILED(result);
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(result);
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user