mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	common: Namespace hex_util.h/.cpp
It's in the common code, so it should be under the Common namespace like everything else.
This commit is contained in:
		
							parent
							
								
									c594ec3417
								
							
						
					
					
						commit
						b39cd70cd4
					
				| @ -4,6 +4,8 @@ | |||||||
| 
 | 
 | ||||||
| #include "common/hex_util.h" | #include "common/hex_util.h" | ||||||
| 
 | 
 | ||||||
|  | namespace Common { | ||||||
|  | 
 | ||||||
| u8 ToHexNibble(char c1) { | u8 ToHexNibble(char c1) { | ||||||
|     if (c1 >= 65 && c1 <= 70) |     if (c1 >= 65 && c1 <= 70) | ||||||
|         return c1 - 55; |         return c1 - 55; | ||||||
| @ -25,3 +27,5 @@ std::array<u8, 32> operator""_array32(const char* str, size_t len) { | |||||||
|         throw std::logic_error("Not of correct size."); |         throw std::logic_error("Not of correct size."); | ||||||
|     return HexStringToArray<32>(str); |     return HexStringToArray<32>(str); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | } // namespace Common
 | ||||||
|  | |||||||
| @ -10,6 +10,8 @@ | |||||||
| #include <fmt/format.h> | #include <fmt/format.h> | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| 
 | 
 | ||||||
|  | namespace Common { | ||||||
|  | 
 | ||||||
| u8 ToHexNibble(char c1); | u8 ToHexNibble(char c1); | ||||||
| 
 | 
 | ||||||
| template <size_t Size, bool le = false> | template <size_t Size, bool le = false> | ||||||
| @ -35,3 +37,5 @@ std::string HexArrayToString(std::array<u8, Size> array, bool upper = true) { | |||||||
| 
 | 
 | ||||||
| std::array<u8, 0x10> operator"" _array16(const char* str, size_t len); | std::array<u8, 0x10> operator"" _array16(const char* str, size_t len); | ||||||
| std::array<u8, 0x20> operator"" _array32(const char* str, size_t len); | std::array<u8, 0x20> operator"" _array32(const char* str, size_t len); | ||||||
|  | 
 | ||||||
|  | } // namespace Common
 | ||||||
|  | |||||||
| @ -52,20 +52,20 @@ void KeyManager::LoadFromFile(const std::string& filename, bool is_title_keys) { | |||||||
|         out[1].erase(std::remove(out[1].begin(), out[1].end(), ' '), out[1].end()); |         out[1].erase(std::remove(out[1].begin(), out[1].end(), ' '), out[1].end()); | ||||||
| 
 | 
 | ||||||
|         if (is_title_keys) { |         if (is_title_keys) { | ||||||
|             auto rights_id_raw = HexStringToArray<16>(out[0]); |             auto rights_id_raw = Common::HexStringToArray<16>(out[0]); | ||||||
|             u128 rights_id{}; |             u128 rights_id{}; | ||||||
|             std::memcpy(rights_id.data(), rights_id_raw.data(), rights_id_raw.size()); |             std::memcpy(rights_id.data(), rights_id_raw.data(), rights_id_raw.size()); | ||||||
|             Key128 key = HexStringToArray<16>(out[1]); |             Key128 key = Common::HexStringToArray<16>(out[1]); | ||||||
|             SetKey(S128KeyType::Titlekey, key, rights_id[1], rights_id[0]); |             SetKey(S128KeyType::Titlekey, key, rights_id[1], rights_id[0]); | ||||||
|         } else { |         } else { | ||||||
|             std::transform(out[0].begin(), out[0].end(), out[0].begin(), ::tolower); |             std::transform(out[0].begin(), out[0].end(), out[0].begin(), ::tolower); | ||||||
|             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 = HexStringToArray<16>(out[1]); |                 Key128 key = Common::HexStringToArray<16>(out[1]); | ||||||
|                 SetKey(index.type, key, index.field1, index.field2); |                 SetKey(index.type, key, index.field1, index.field2); | ||||||
|             } else if (s256_file_id.find(out[0]) != s256_file_id.end()) { |             } else if (s256_file_id.find(out[0]) != s256_file_id.end()) { | ||||||
|                 const auto index = s256_file_id.at(out[0]); |                 const auto index = s256_file_id.at(out[0]); | ||||||
|                 Key256 key = HexStringToArray<32>(out[1]); |                 Key256 key = Common::HexStringToArray<32>(out[1]); | ||||||
|                 SetKey(index.type, key, index.field1, index.field2); |                 SetKey(index.type, key, index.field1, index.field2); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -37,11 +37,12 @@ static bool FollowsNcaIdFormat(std::string_view name) { | |||||||
| static std::string GetRelativePathFromNcaID(const std::array<u8, 16>& nca_id, bool second_hex_upper, | static std::string GetRelativePathFromNcaID(const std::array<u8, 16>& nca_id, bool second_hex_upper, | ||||||
|                                             bool within_two_digit) { |                                             bool within_two_digit) { | ||||||
|     if (!within_two_digit) |     if (!within_two_digit) | ||||||
|         return fmt::format("/{}.nca", HexArrayToString(nca_id, second_hex_upper)); |         return fmt::format("/{}.nca", Common::HexArrayToString(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(nca_id.data(), nca_id.size(), hash.data(), 0); | ||||||
|     return fmt::format("/000000{:02X}/{}.nca", hash[0], HexArrayToString(nca_id, second_hex_upper)); |     return fmt::format("/000000{:02X}/{}.nca", hash[0], | ||||||
|  |                        Common::HexArrayToString(nca_id, second_hex_upper)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static std::string GetCNMTName(TitleType type, u64 title_id) { | static std::string GetCNMTName(TitleType type, u64 title_id) { | ||||||
| @ -170,7 +171,7 @@ std::vector<NcaID> RegisteredCache::AccumulateFiles() const { | |||||||
|     std::vector<NcaID> ids; |     std::vector<NcaID> ids; | ||||||
|     for (const auto& d2_dir : dir->GetSubdirectories()) { |     for (const auto& d2_dir : dir->GetSubdirectories()) { | ||||||
|         if (FollowsNcaIdFormat(d2_dir->GetName())) { |         if (FollowsNcaIdFormat(d2_dir->GetName())) { | ||||||
|             ids.push_back(HexStringToArray<0x10, true>(d2_dir->GetName().substr(0, 0x20))); |             ids.push_back(Common::HexStringToArray<0x10, true>(d2_dir->GetName().substr(0, 0x20))); | ||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -181,20 +182,21 @@ std::vector<NcaID> RegisteredCache::AccumulateFiles() const { | |||||||
|             if (!FollowsNcaIdFormat(nca_dir->GetName())) |             if (!FollowsNcaIdFormat(nca_dir->GetName())) | ||||||
|                 continue; |                 continue; | ||||||
| 
 | 
 | ||||||
|             ids.push_back(HexStringToArray<0x10, true>(nca_dir->GetName().substr(0, 0x20))); |             ids.push_back(Common::HexStringToArray<0x10, true>(nca_dir->GetName().substr(0, 0x20))); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         for (const auto& nca_file : d2_dir->GetFiles()) { |         for (const auto& nca_file : d2_dir->GetFiles()) { | ||||||
|             if (!FollowsNcaIdFormat(nca_file->GetName())) |             if (!FollowsNcaIdFormat(nca_file->GetName())) | ||||||
|                 continue; |                 continue; | ||||||
| 
 | 
 | ||||||
|             ids.push_back(HexStringToArray<0x10, true>(nca_file->GetName().substr(0, 0x20))); |             ids.push_back( | ||||||
|  |                 Common::HexStringToArray<0x10, true>(nca_file->GetName().substr(0, 0x20))); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     for (const auto& d2_file : dir->GetFiles()) { |     for (const auto& d2_file : dir->GetFiles()) { | ||||||
|         if (FollowsNcaIdFormat(d2_file->GetName())) |         if (FollowsNcaIdFormat(d2_file->GetName())) | ||||||
|             ids.push_back(HexStringToArray<0x10, true>(d2_file->GetName().substr(0, 0x20))); |             ids.push_back(Common::HexStringToArray<0x10, true>(d2_file->GetName().substr(0, 0x20))); | ||||||
|     } |     } | ||||||
|     return ids; |     return ids; | ||||||
| } | } | ||||||
| @ -339,7 +341,7 @@ std::vector<RegisteredCacheEntry> RegisteredCache::ListEntriesFilter( | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static std::shared_ptr<NCA> GetNCAFromXCIForID(std::shared_ptr<XCI> xci, const NcaID& id) { | static std::shared_ptr<NCA> GetNCAFromXCIForID(std::shared_ptr<XCI> xci, const NcaID& id) { | ||||||
|     const auto filename = fmt::format("{}.nca", HexArrayToString(id, false)); |     const auto filename = fmt::format("{}.nca", Common::HexArrayToString(id, false)); | ||||||
|     const auto iter = |     const auto iter = | ||||||
|         std::find_if(xci->GetNCAs().begin(), xci->GetNCAs().end(), |         std::find_if(xci->GetNCAs().begin(), xci->GetNCAs().end(), | ||||||
|                      [&filename](std::shared_ptr<NCA> nca) { return nca->GetName() == filename; }); |                      [&filename](std::shared_ptr<NCA> nca) { return nca->GetName() == filename; }); | ||||||
| @ -361,7 +363,7 @@ InstallResult RegisteredCache::InstallEntry(std::shared_ptr<XCI> xci, bool overw | |||||||
| 
 | 
 | ||||||
|     // Install Metadata File
 |     // Install Metadata File
 | ||||||
|     const auto meta_id_raw = (*meta_iter)->GetName().substr(0, 32); |     const auto meta_id_raw = (*meta_iter)->GetName().substr(0, 32); | ||||||
|     const auto meta_id = HexStringToArray<16>(meta_id_raw); |     const auto meta_id = Common::HexStringToArray<16>(meta_id_raw); | ||||||
| 
 | 
 | ||||||
|     const auto res = RawInstallNCA(*meta_iter, copy, overwrite_if_exists, meta_id); |     const auto res = RawInstallNCA(*meta_iter, copy, overwrite_if_exists, meta_id); | ||||||
|     if (res != InstallResult::Success) |     if (res != InstallResult::Success) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Lioncash
						Lioncash