diff options
author | Lioncash <mathew1800@gmail.com> | 2018-10-13 15:13:19 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-10-13 15:13:19 +0200 |
commit | 6da2ed4232d3b3ecde7a04621c554f66de558fab (patch) | |
tree | 83184a61eecca6dcc5f543a5f69f93234eacdbc6 /src/core/crypto/partition_data_manager.cpp | |
parent | partition_data_manager: Dehardcode array bounds (diff) | |
download | yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.tar yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.tar.gz yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.tar.bz2 yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.tar.lz yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.tar.xz yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.tar.zst yuzu-6da2ed4232d3b3ecde7a04621c554f66de558fab.zip |
Diffstat (limited to 'src/core/crypto/partition_data_manager.cpp')
-rw-r--r-- | src/core/crypto/partition_data_manager.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/core/crypto/partition_data_manager.cpp b/src/core/crypto/partition_data_manager.cpp index bef8cdaf0..51d89508b 100644 --- a/src/core/crypto/partition_data_manager.cpp +++ b/src/core/crypto/partition_data_manager.cpp @@ -332,7 +332,8 @@ FileSys::VirtualFile PartitionDataManager::GetBoot0Raw() const { return boot0; } -PartitionDataManager::EncryptedKeyBlob PartitionDataManager::GetEncryptedKeyblob(u8 index) const { +PartitionDataManager::EncryptedKeyBlob PartitionDataManager::GetEncryptedKeyblob( + std::size_t index) const { if (HasBoot0() && index < NUM_ENCRYPTED_KEYBLOBS) return GetEncryptedKeyblobs()[index]; return {}; @@ -389,7 +390,7 @@ std::array<u8, 16> PartitionDataManager::GetKeyblobMACKeySource() const { return FindKeyFromHex(package1_decrypted_bytes, source_hashes[0]); } -std::array<u8, 16> PartitionDataManager::GetKeyblobKeySource(u8 revision) const { +std::array<u8, 16> PartitionDataManager::GetKeyblobKeySource(std::size_t revision) const { if (keyblob_source_hashes[revision] == SHA256Hash{}) { LOG_WARNING(Crypto, "No keyblob source hash for crypto revision {:02X}! Cannot derive keys...", @@ -456,11 +457,12 @@ void PartitionDataManager::DecryptPackage2(std::array<std::array<u8, 16>, 0x20> if (file->ReadObject(&header) != sizeof(Package2Header)) return; - u8 revision = 0xFF; + std::size_t revision = 0xFF; if (header.magic != Common::MakeMagic('P', 'K', '2', '1')) { - for (size_t i = 0; i < package2_keys.size(); ++i) { - if (AttemptDecrypt(package2_keys[i], header)) + for (std::size_t i = 0; i < package2_keys.size(); ++i) { + if (AttemptDecrypt(package2_keys[i], header)) { revision = i; + } } } |