From 1c73485ef9599c3e16f36cbebcdd9ea91e76b9c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczyk?= Date: Fri, 11 Jul 2025 19:05:12 +0100 Subject: [PATCH] Correctly return zero root CA certs --- src/core/libraries/network/ssl.cpp | 11 ++++++++++- src/core/libraries/network/ssl.h | 4 +++- src/core/libraries/network/ssl2.cpp | 14 ++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/core/libraries/network/ssl.cpp b/src/core/libraries/network/ssl.cpp index 1e013bc26..8d6e691d4 100644 --- a/src/core/libraries/network/ssl.cpp +++ b/src/core/libraries/network/ssl.cpp @@ -633,8 +633,17 @@ int PS4_SYSV_ABI sceSslFreeSslCertName() { return ORBIS_OK; } -int PS4_SYSV_ABI sceSslGetCaCerts() { +struct OrbisSslCaCerts { + void* certs; + u64 num; + void* pool; +}; + +int PS4_SYSV_ABI sceSslGetCaCerts(int sslCtxId, OrbisSslCaCerts* certs) { LOG_ERROR(Lib_Ssl, "(STUBBED) called"); + certs->certs = nullptr; + certs->num = 0; + certs->pool = nullptr; return ORBIS_OK; } diff --git a/src/core/libraries/network/ssl.h b/src/core/libraries/network/ssl.h index 051c6363e..f9827494a 100644 --- a/src/core/libraries/network/ssl.h +++ b/src/core/libraries/network/ssl.h @@ -11,6 +11,8 @@ class SymbolsResolver; namespace Libraries::Ssl { +struct OrbisSslCaCerts; + int PS4_SYSV_ABI CA_MGMT_allocCertDistinguishedName(); int PS4_SYSV_ABI CA_MGMT_certDistinguishedNameCompare(); int PS4_SYSV_ABI CA_MGMT_convertKeyBlobToPKCS8Key(); @@ -136,7 +138,7 @@ int PS4_SYSV_ABI sceSslEnableOptionInternal(); int PS4_SYSV_ABI sceSslFreeCaCerts(); int PS4_SYSV_ABI sceSslFreeCaList(); int PS4_SYSV_ABI sceSslFreeSslCertName(); -int PS4_SYSV_ABI sceSslGetCaCerts(); +int PS4_SYSV_ABI sceSslGetCaCerts(int sslCtxId, OrbisSslCaCerts* certs); int PS4_SYSV_ABI sceSslGetCaList(); int PS4_SYSV_ABI sceSslGetIssuerName(); int PS4_SYSV_ABI sceSslGetMemoryPoolStats(); diff --git a/src/core/libraries/network/ssl2.cpp b/src/core/libraries/network/ssl2.cpp index 701f091a3..4289a7382 100644 --- a/src/core/libraries/network/ssl2.cpp +++ b/src/core/libraries/network/ssl2.cpp @@ -128,8 +128,18 @@ int PS4_SYSV_ABI sceSslGetAlpnSelected() { return ORBIS_OK; } -int PS4_SYSV_ABI sceSslGetCaCerts() { - LOG_ERROR(Lib_Ssl2, "(STUBBED) called"); +struct OrbisSslCaCerts { + void* certs; + u64 num; + void* pool; +}; + +int PS4_SYSV_ABI sceSslGetCaCerts(int sslCtxId, OrbisSslCaCerts* certs) { + // check if it is same as libSceSsl + LOG_ERROR(Lib_Ssl2, "(DUMMY) called"); + certs->certs = nullptr; + certs->num = 0; + certs->pool = nullptr; return ORBIS_OK; }