Browse Source

Bump minimum OpenSSL to 3.0, and replace sha256 thing with EVP

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

2
CMakeLists.txt

@ -386,7 +386,7 @@ if (YUZU_USE_BUNDLED_OPENSSL)
endif()
endif()
find_package(OpenSSL 1.1.1 REQUIRED)
find_package(OpenSSL 3 REQUIRED)
if (YUZU_USE_CPM)
message(STATUS "Fetching needed dependencies with CPM")

2
cpmfile.json

@ -5,7 +5,7 @@
"name": "openssl",
"repo": "crueter-ci/OpenSSL",
"version": "3.6.0-1cb0d36b39",
"min_version": "1.1.1"
"min_version": "3"
},
"boost": {
"package": "Boost",

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

@ -4,6 +4,8 @@
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/sha.h>
#include "common/scope_exit.h"
@ -180,10 +182,16 @@ struct ProcessContext {
std::vector<u8> nro_data(size);
m_process->GetMemory().ReadBlock(base_address, nro_data.data(), size);
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, nro_data.data(), nro_data.size());
SHA256_Final(hash.data(), &sha256);
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);
}
for (size_t i = 0; i < MaxNrrInfos; i++) {

Loading…
Cancel
Save