diff --git a/src/core/hle/service/ro/ro.cpp b/src/core/hle/service/ro/ro.cpp index 05806e9bf3..0c84eacd22 100644 --- a/src/core/hle/service/ro/ro.cpp +++ b/src/core/hle/service/ro/ro.cpp @@ -4,7 +4,7 @@ // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include +#include #include "common/scope_exit.h" #include "core/hle/kernel/k_process.h" @@ -180,8 +180,10 @@ struct ProcessContext { std::vector nro_data(size); m_process->GetMemory().ReadBlock(base_address, nro_data.data(), size); - - mbedtls_sha256(nro_data.data(), size, hash.data(), 0); + SHA256_CTX sha256; + SHA256_Init(&sha256); + SHA256_Update(&sha256, nro_data.data(), nro_data.size()); + SHA256_Final(hash.data(), &sha256); } for (size_t i = 0; i < MaxNrrInfos; i++) { diff --git a/src/dedicated_room/yuzu_room.cpp b/src/dedicated_room/yuzu_room.cpp index 880431fa85..7168635341 100644 --- a/src/dedicated_room/yuzu_room.cpp +++ b/src/dedicated_room/yuzu_room.cpp @@ -22,7 +22,7 @@ #include #endif -#include +#include #include "common/common_types.h" #include "common/detached_tasks.h" #include "common/fs/file.h" @@ -84,15 +84,11 @@ static constexpr char BanListMagic[] = "YuzuRoom-BanList-1"; static constexpr char token_delimiter{':'}; static void PadToken(std::string& token) { - std::size_t outlen = 0; - std::array output{}; std::array roundtrip{}; for (size_t i = 0; i < 3; i++) { - mbedtls_base64_decode(output.data(), output.size(), &outlen, - reinterpret_cast(token.c_str()), - token.length()); - mbedtls_base64_encode(roundtrip.data(), roundtrip.size(), &outlen, output.data(), outlen); + EVP_DecodeBlock(output.data(), reinterpret_cast(token.c_str()), token.size()); + EVP_EncodeBlock(output.data(), roundtrip.data(), roundtrip.size()); if (memcmp(roundtrip.data(), token.data(), token.size()) == 0) { break; } @@ -101,23 +97,17 @@ static void PadToken(std::string& token) { } static std::string UsernameFromDisplayToken(const std::string& display_token) { - std::size_t outlen; - + std::size_t outlen = 4 * ((display_token.length() + 2) / 3); std::array output{}; - mbedtls_base64_decode(output.data(), output.size(), &outlen, - reinterpret_cast(display_token.c_str()), - display_token.length()); + EVP_DecodeBlock(output.data(), reinterpret_cast(display_token.c_str()), display_token.length()); std::string decoded_display_token(reinterpret_cast(&output), outlen); return decoded_display_token.substr(0, decoded_display_token.find(token_delimiter)); } static std::string TokenFromDisplayToken(const std::string& display_token) { - std::size_t outlen; - + std::size_t outlen = 4 * ((display_token.length() + 2) / 3); std::array output{}; - mbedtls_base64_decode(output.data(), output.size(), &outlen, - reinterpret_cast(display_token.c_str()), - display_token.length()); + EVP_DecodeBlock(output.data(), reinterpret_cast(display_token.c_str()), display_token.length()); std::string decoded_display_token(reinterpret_cast(&output), outlen); return decoded_display_token.substr(decoded_display_token.find(token_delimiter) + 1); }