aboutsummaryrefslogtreecommitdiff
path: root/src/core/crypto
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2025-09-15 04:22:15 +0200
committercrueter <crueter@eden-emu.dev>2025-09-15 04:22:15 +0200
commitd207df959a29cc4758c5328a3cdc96d909a96c92 (patch)
treefe5336870b1a07a9e97d90aa14fb9829edce60f1 /src/core/crypto
parent28d26b0d7677801a0da2bd9253c5bc342e1c8a4c (diff)
[cmake, core] refactor: update mbedtls and make YUZU_USE_CPM better (#485)
update mbedtls functors to support mbedtls3 signatures moved some vulkan stuff from externals to root, yuzu_use_cpm manages them now needs testing: - all key/derivation related things - nca verification - game loading/updates/stuff Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/485 Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'src/core/crypto')
-rw-r--r--src/core/crypto/aes_util.h2
-rw-r--r--src/core/crypto/key_manager.cpp2
-rw-r--r--src/core/crypto/partition_data_manager.cpp4
3 files changed, 4 insertions, 4 deletions
diff --git a/src/core/crypto/aes_util.h b/src/core/crypto/aes_util.h
index c2fd587a73..0a2a4e464c 100644
--- a/src/core/crypto/aes_util.h
+++ b/src/core/crypto/aes_util.h
@@ -16,7 +16,7 @@ struct CipherContext;
enum class Mode {
CTR = 11,
ECB = 2,
- XTS = 70,
+ XTS = 74,
};
enum class Op {
diff --git a/src/core/crypto/key_manager.cpp b/src/core/crypto/key_manager.cpp
index 04b75d5e8f..6d0b32ba70 100644
--- a/src/core/crypto/key_manager.cpp
+++ b/src/core/crypto/key_manager.cpp
@@ -539,7 +539,7 @@ static std::array<u8, target_size> MGF1(const std::array<u8, in_size>& seed) {
while (out.size() < target_size) {
out.resize(out.size() + 0x20);
seed_exp[in_size + 3] = static_cast<u8>(i);
- mbedtls_sha256_ret(seed_exp.data(), seed_exp.size(), out.data() + out.size() - 0x20, 0);
+ mbedtls_sha256(seed_exp.data(), seed_exp.size(), out.data() + out.size() - 0x20, 0);
++i;
}
diff --git a/src/core/crypto/partition_data_manager.cpp b/src/core/crypto/partition_data_manager.cpp
index 4b45e72c43..905b8139ef 100644
--- a/src/core/crypto/partition_data_manager.cpp
+++ b/src/core/crypto/partition_data_manager.cpp
@@ -178,7 +178,7 @@ std::array<u8, key_size> FindKeyFromHex(const std::vector<u8>& binary,
std::array<u8, 0x20> temp{};
for (size_t i = 0; i < binary.size() - key_size; ++i) {
- mbedtls_sha256_ret(binary.data() + i, key_size, temp.data(), 0);
+ mbedtls_sha256(binary.data() + i, key_size, temp.data(), 0);
if (temp != hash)
continue;
@@ -206,7 +206,7 @@ static std::array<Key128, 0x20> FindEncryptedMasterKeyFromHex(const std::vector<
AESCipher<Key128> cipher(key, Mode::ECB);
for (size_t i = 0; i < binary.size() - 0x10; ++i) {
cipher.Transcode(binary.data() + i, dec_temp.size(), dec_temp.data(), Op::Decrypt);
- mbedtls_sha256_ret(dec_temp.data(), dec_temp.size(), temp.data(), 0);
+ mbedtls_sha256(dec_temp.data(), dec_temp.size(), temp.data(), 0);
for (size_t k = 0; k < out.size(); ++k) {
if (temp == master_key_hashes[k]) {