crypto: Resolve sign-conversion warnings
This commit is contained in:
parent
27ab99490e
commit
581d2e36e5
@ -21,6 +21,7 @@
|
|||||||
#include "common/common_paths.h"
|
#include "common/common_paths.h"
|
||||||
#include "common/file_util.h"
|
#include "common/file_util.h"
|
||||||
#include "common/hex_util.h"
|
#include "common/hex_util.h"
|
||||||
|
#include "common/string_util.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "core/core.h"
|
#include "core/core.h"
|
||||||
#include "core/crypto/aes_util.h"
|
#include "core/crypto/aes_util.h"
|
||||||
@ -378,8 +379,9 @@ std::vector<Ticket> GetTicketblob(const FileUtil::IOFile& ticket_save) {
|
|||||||
template <size_t size>
|
template <size_t size>
|
||||||
static std::array<u8, size> operator^(const std::array<u8, size>& lhs,
|
static std::array<u8, size> operator^(const std::array<u8, size>& lhs,
|
||||||
const std::array<u8, size>& rhs) {
|
const std::array<u8, size>& rhs) {
|
||||||
std::array<u8, size> out{};
|
std::array<u8, size> out;
|
||||||
std::transform(lhs.begin(), lhs.end(), rhs.begin(), out.begin(), std::bit_xor<>());
|
std::transform(lhs.begin(), lhs.end(), rhs.begin(), out.begin(),
|
||||||
|
[](u8 lhs, u8 rhs) { return u8(lhs ^ rhs); });
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -538,7 +540,7 @@ void KeyManager::LoadFromFile(const std::string& filename, bool is_title_keys) {
|
|||||||
Key128 key = Common::HexStringToArray<16>(out[1]);
|
Key128 key = Common::HexStringToArray<16>(out[1]);
|
||||||
s128_keys[{S128KeyType::Titlekey, rights_id[1], rights_id[0]}] = key;
|
s128_keys[{S128KeyType::Titlekey, rights_id[1], rights_id[0]}] = key;
|
||||||
} else {
|
} else {
|
||||||
std::transform(out[0].begin(), out[0].end(), out[0].begin(), ::tolower);
|
out[0] = Common::ToLower(out[0]);
|
||||||
if (s128_file_id.find(out[0]) != s128_file_id.end()) {
|
if (s128_file_id.find(out[0]) != s128_file_id.end()) {
|
||||||
const auto index = s128_file_id.at(out[0]);
|
const auto index = s128_file_id.at(out[0]);
|
||||||
Key128 key = Common::HexStringToArray<16>(out[1]);
|
Key128 key = Common::HexStringToArray<16>(out[1]);
|
||||||
@ -944,12 +946,10 @@ void KeyManager::DeriveETicket(PartitionDataManager& data) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Key128 rsa_oaep_kek{};
|
const Key128 rsa_oaep_kek = seed3 ^ mask0;
|
||||||
std::transform(seed3.begin(), seed3.end(), mask0.begin(), rsa_oaep_kek.begin(),
|
if (rsa_oaep_kek == Key128{}) {
|
||||||
std::bit_xor<>());
|
|
||||||
|
|
||||||
if (rsa_oaep_kek == Key128{})
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SetKey(S128KeyType::Source, rsa_oaep_kek,
|
SetKey(S128KeyType::Source, rsa_oaep_kek,
|
||||||
static_cast<u64>(SourceKeyType::RSAOaepKekGeneration));
|
static_cast<u64>(SourceKeyType::RSAOaepKekGeneration));
|
||||||
|
@ -204,11 +204,12 @@ static std::array<Key128, 0x20> FindEncryptedMasterKeyFromHex(const std::vector<
|
|||||||
|
|
||||||
FileSys::VirtualFile FindFileInDirWithNames(const FileSys::VirtualDir& dir,
|
FileSys::VirtualFile FindFileInDirWithNames(const FileSys::VirtualDir& dir,
|
||||||
const std::string& name) {
|
const std::string& name) {
|
||||||
auto upper = name;
|
const auto upper = Common::ToUpper(name);
|
||||||
std::transform(upper.begin(), upper.end(), upper.begin(), [](u8 c) { return std::toupper(c); });
|
|
||||||
for (const auto& fname : {name, name + ".bin", upper, upper + ".BIN"}) {
|
for (const auto& fname : {name, name + ".bin", upper, upper + ".BIN"}) {
|
||||||
if (dir->GetFile(fname) != nullptr)
|
if (dir->GetFile(fname) != nullptr) {
|
||||||
return dir->GetFile(fname);
|
return dir->GetFile(fname);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user