Browse Source

Switch ro to a simpler impl

Signed-off-by: crueter <crueter@eden-emu.dev>
pull/3606/head
crueter 2 weeks ago
parent
commit
c5cfafd64b
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 3
      externals/cpmfile.json
  2. 17
      src/core/hle/service/ro/ro.cpp

3
externals/cpmfile.json

@ -33,6 +33,9 @@
"find_args": "MODULE GLOBAL", "find_args": "MODULE GLOBAL",
"patches": [ "patches": [
"0001-mingw.patch" "0001-mingw.patch"
],
"options": [
"HTTPLIB_REQUIRE_OPENSSL ON"
] ]
}, },
"cpp-jwt": { "cpp-jwt": {

17
src/core/hle/service/ro/ro.cpp

@ -6,18 +6,16 @@
#include <openssl/err.h> #include <openssl/err.h>
#include <openssl/evp.h> #include <openssl/evp.h>
#include <openssl/sha.h>
#include "common/scope_exit.h"
#include "core/hle/kernel/k_process.h" #include "core/hle/kernel/k_process.h"
#include "core/hle/service/cmif_serialization.h"
#include "core/hle/service/ipc_helpers.h"
#include "core/hle/service/cmif_types.h"
#include "core/hle/service/ro/ro.h" #include "core/hle/service/ro/ro.h"
#include "core/hle/service/ro/ro_nro_utils.h" #include "core/hle/service/ro/ro_nro_utils.h"
#include "core/hle/service/ro/ro_results.h" #include "core/hle/service/ro/ro_results.h"
#include "core/hle/service/ro/ro_types.h" #include "core/hle/service/ro/ro_types.h"
#include "core/hle/service/server_manager.h" #include "core/hle/service/server_manager.h"
#include "core/hle/service/service.h"
namespace Service::RO { namespace Service::RO {
@ -183,15 +181,8 @@ struct ProcessContext {
std::vector<u8> nro_data(size); std::vector<u8> nro_data(size);
m_process->GetMemory().ReadBlock(base_address, nro_data.data(), size); m_process->GetMemory().ReadBlock(base_address, nro_data.data(), size);
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
ASSERT(ctx);
EVP_DigestInit(ctx, EVP_sha256());
EVP_DigestUpdate(ctx, nro_data.data(), nro_data.size());
u32 length = 0;
EVP_DigestFinal_ex(ctx, hash.data(), &length);
EVP_MD_CTX_free(ctx);
u32 hash_len = 0;
EVP_Digest(nro_data.data(), nro_data.size(), hash.data(), &hash_len, EVP_sha256(), nullptr);
} }
for (size_t i = 0; i < MaxNrrInfos; i++) { for (size_t i = 0; i < MaxNrrInfos; i++) {

Loading…
Cancel
Save