Merge pull request #3093 from lioncash/mbedtls
core: Migrate off deprecated mbedtls functions
This commit is contained in:
commit
360b0d1b30
|
@ -396,7 +396,7 @@ static std::array<u8, target_size> MGF1(const std::array<u8, in_size>& seed) {
|
||||||
while (out.size() < target_size) {
|
while (out.size() < target_size) {
|
||||||
out.resize(out.size() + 0x20);
|
out.resize(out.size() + 0x20);
|
||||||
seed_exp[in_size + 3] = static_cast<u8>(i);
|
seed_exp[in_size + 3] = static_cast<u8>(i);
|
||||||
mbedtls_sha256(seed_exp.data(), seed_exp.size(), out.data() + out.size() - 0x20, 0);
|
mbedtls_sha256_ret(seed_exp.data(), seed_exp.size(), out.data() + out.size() - 0x20, 0);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,7 @@ std::array<u8, key_size> FindKeyFromHex(const std::vector<u8>& binary,
|
||||||
|
|
||||||
std::array<u8, 0x20> temp{};
|
std::array<u8, 0x20> temp{};
|
||||||
for (size_t i = 0; i < binary.size() - key_size; ++i) {
|
for (size_t i = 0; i < binary.size() - key_size; ++i) {
|
||||||
mbedtls_sha256(binary.data() + i, key_size, temp.data(), 0);
|
mbedtls_sha256_ret(binary.data() + i, key_size, temp.data(), 0);
|
||||||
|
|
||||||
if (temp != hash)
|
if (temp != hash)
|
||||||
continue;
|
continue;
|
||||||
|
@ -189,7 +189,7 @@ static std::array<Key128, 0x20> FindEncryptedMasterKeyFromHex(const std::vector<
|
||||||
AESCipher<Key128> cipher(key, Mode::ECB);
|
AESCipher<Key128> cipher(key, Mode::ECB);
|
||||||
for (size_t i = 0; i < binary.size() - 0x10; ++i) {
|
for (size_t i = 0; i < binary.size() - 0x10; ++i) {
|
||||||
cipher.Transcode(binary.data() + i, dec_temp.size(), dec_temp.data(), Op::Decrypt);
|
cipher.Transcode(binary.data() + i, dec_temp.size(), dec_temp.data(), Op::Decrypt);
|
||||||
mbedtls_sha256(dec_temp.data(), dec_temp.size(), temp.data(), 0);
|
mbedtls_sha256_ret(dec_temp.data(), dec_temp.size(), temp.data(), 0);
|
||||||
|
|
||||||
for (size_t k = 0; k < out.size(); ++k) {
|
for (size_t k = 0; k < out.size(); ++k) {
|
||||||
if (temp == master_key_hashes[k]) {
|
if (temp == master_key_hashes[k]) {
|
||||||
|
|
|
@ -62,7 +62,7 @@ static std::string GetRelativePathFromNcaID(const std::array<u8, 16>& nca_id, bo
|
||||||
Common::HexToString(nca_id, second_hex_upper));
|
Common::HexToString(nca_id, second_hex_upper));
|
||||||
|
|
||||||
Core::Crypto::SHA256Hash hash{};
|
Core::Crypto::SHA256Hash hash{};
|
||||||
mbedtls_sha256(nca_id.data(), nca_id.size(), hash.data(), 0);
|
mbedtls_sha256_ret(nca_id.data(), nca_id.size(), hash.data(), 0);
|
||||||
return fmt::format(cnmt_suffix ? "/000000{:02X}/{}.cnmt.nca" : "/000000{:02X}/{}.nca", hash[0],
|
return fmt::format(cnmt_suffix ? "/000000{:02X}/{}.cnmt.nca" : "/000000{:02X}/{}.nca", hash[0],
|
||||||
Common::HexToString(nca_id, second_hex_upper));
|
Common::HexToString(nca_id, second_hex_upper));
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,7 @@ bool PlaceholderCache::Create(const NcaID& id, u64 size) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::Crypto::SHA256Hash hash{};
|
Core::Crypto::SHA256Hash hash{};
|
||||||
mbedtls_sha256(id.data(), id.size(), hash.data(), 0);
|
mbedtls_sha256_ret(id.data(), id.size(), hash.data(), 0);
|
||||||
const auto dirname = fmt::format("000000{:02X}", hash[0]);
|
const auto dirname = fmt::format("000000{:02X}", hash[0]);
|
||||||
|
|
||||||
const auto dir2 = GetOrCreateDirectoryRelative(dir, dirname);
|
const auto dir2 = GetOrCreateDirectoryRelative(dir, dirname);
|
||||||
|
@ -165,7 +165,7 @@ bool PlaceholderCache::Delete(const NcaID& id) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
Core::Crypto::SHA256Hash hash{};
|
Core::Crypto::SHA256Hash hash{};
|
||||||
mbedtls_sha256(id.data(), id.size(), hash.data(), 0);
|
mbedtls_sha256_ret(id.data(), id.size(), hash.data(), 0);
|
||||||
const auto dirname = fmt::format("000000{:02X}", hash[0]);
|
const auto dirname = fmt::format("000000{:02X}", hash[0]);
|
||||||
|
|
||||||
const auto dir2 = GetOrCreateDirectoryRelative(dir, dirname);
|
const auto dir2 = GetOrCreateDirectoryRelative(dir, dirname);
|
||||||
|
@ -603,7 +603,7 @@ InstallResult RegisteredCache::InstallEntry(const NCA& nca, TitleType type,
|
||||||
OptionalHeader opt_header{0, 0};
|
OptionalHeader opt_header{0, 0};
|
||||||
ContentRecord c_rec{{}, {}, {}, GetCRTypeFromNCAType(nca.GetType()), {}};
|
ContentRecord c_rec{{}, {}, {}, GetCRTypeFromNCAType(nca.GetType()), {}};
|
||||||
const auto& data = nca.GetBaseFile()->ReadBytes(0x100000);
|
const auto& data = nca.GetBaseFile()->ReadBytes(0x100000);
|
||||||
mbedtls_sha256(data.data(), data.size(), c_rec.hash.data(), 0);
|
mbedtls_sha256_ret(data.data(), data.size(), c_rec.hash.data(), 0);
|
||||||
memcpy(&c_rec.nca_id, &c_rec.hash, 16);
|
memcpy(&c_rec.nca_id, &c_rec.hash, 16);
|
||||||
const CNMT new_cnmt(header, opt_header, {c_rec}, {});
|
const CNMT new_cnmt(header, opt_header, {c_rec}, {});
|
||||||
if (!RawInstallYuzuMeta(new_cnmt))
|
if (!RawInstallYuzuMeta(new_cnmt))
|
||||||
|
@ -626,7 +626,7 @@ InstallResult RegisteredCache::RawInstallNCA(const NCA& nca, const VfsCopyFuncti
|
||||||
id = *override_id;
|
id = *override_id;
|
||||||
} else {
|
} else {
|
||||||
const auto& data = in->ReadBytes(0x100000);
|
const auto& data = in->ReadBytes(0x100000);
|
||||||
mbedtls_sha256(data.data(), data.size(), hash.data(), 0);
|
mbedtls_sha256_ret(data.data(), data.size(), hash.data(), 0);
|
||||||
memcpy(id.data(), hash.data(), 16);
|
memcpy(id.data(), hash.data(), 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ NAX::NAX(VirtualFile file_) : header(std::make_unique<NAXHeader>()), file(std::m
|
||||||
NAX::NAX(VirtualFile file_, std::array<u8, 0x10> nca_id)
|
NAX::NAX(VirtualFile file_, std::array<u8, 0x10> nca_id)
|
||||||
: header(std::make_unique<NAXHeader>()), file(std::move(file_)) {
|
: header(std::make_unique<NAXHeader>()), file(std::move(file_)) {
|
||||||
Core::Crypto::SHA256Hash hash{};
|
Core::Crypto::SHA256Hash hash{};
|
||||||
mbedtls_sha256(nca_id.data(), nca_id.size(), hash.data(), 0);
|
mbedtls_sha256_ret(nca_id.data(), nca_id.size(), hash.data(), 0);
|
||||||
status = Parse(fmt::format("/registered/000000{:02X}/{}.nca", hash[0],
|
status = Parse(fmt::format("/registered/000000{:02X}/{}.nca", hash[0],
|
||||||
Common::HexToString(nca_id, false)));
|
Common::HexToString(nca_id, false)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,7 @@ private:
|
||||||
using Digest = std::array<u8, 0x20>;
|
using Digest = std::array<u8, 0x20>;
|
||||||
static Digest DigestFile(std::vector<u8> bytes) {
|
static Digest DigestFile(std::vector<u8> bytes) {
|
||||||
Digest out{};
|
Digest out{};
|
||||||
mbedtls_sha256(bytes.data(), bytes.size(), out.data(), 0);
|
mbedtls_sha256_ret(bytes.data(), bytes.size(), out.data(), 0);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ u64 GetCurrentBuildID(const Core::System::CurrentBuildProcessID& id) {
|
||||||
BCATDigest DigestFile(const FileSys::VirtualFile& file) {
|
BCATDigest DigestFile(const FileSys::VirtualFile& file) {
|
||||||
BCATDigest out{};
|
BCATDigest out{};
|
||||||
const auto bytes = file->ReadAllBytes();
|
const auto bytes = file->ReadAllBytes();
|
||||||
mbedtls_md5(bytes.data(), bytes.size(), out.data());
|
mbedtls_md5_ret(bytes.data(), bytes.size(), out.data());
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -294,7 +294,7 @@ public:
|
||||||
Memory::ReadBlock(nro_address, nro_data.data(), nro_size);
|
Memory::ReadBlock(nro_address, nro_data.data(), nro_size);
|
||||||
|
|
||||||
SHA256Hash hash{};
|
SHA256Hash hash{};
|
||||||
mbedtls_sha256(nro_data.data(), nro_data.size(), hash.data(), 0);
|
mbedtls_sha256_ret(nro_data.data(), nro_data.size(), hash.data(), 0);
|
||||||
|
|
||||||
// NRO Hash is already loaded
|
// NRO Hash is already loaded
|
||||||
if (std::any_of(nro.begin(), nro.end(), [&hash](const std::pair<VAddr, NROInfo>& info) {
|
if (std::any_of(nro.begin(), nro.end(), [&hash](const std::pair<VAddr, NROInfo>& info) {
|
||||||
|
|
Reference in New Issue