[SSL]: Add CreateContextForSystem

This commit is contained in:
liberodark 2025-12-07 17:31:02 +01:00
parent 5289cc4df3
commit f49aa71acd

View file

@ -529,7 +529,7 @@ public:
{7, nullptr, "SetDebugOption"},
{8, nullptr, "GetDebugOption"},
{9, nullptr, "ClearTls12FallbackFlag"},
{100, nullptr, "CreateContextForSystem"},
{100, &ISslService::CreateContextForSystem, "CreateContextForSystem"},
{101, nullptr, "SetThreadCoreMask"},
{102, nullptr, "GetThreadCoreMask"},
{103, nullptr, "VerifySignature"}, // 18.0.0+
@ -559,6 +559,25 @@ private:
rb.PushIpcInterface<ISslContext>(system, parameters.ssl_version);
}
void CreateContextForSystem(HLERequestContext& ctx) {
struct Parameters {
SslVersion ssl_version;
INSERT_PADDING_BYTES(0x4);
u64 pid_placeholder;
};
static_assert(sizeof(Parameters) == 0x10, "Parameters is an invalid size");
IPC::RequestParser rp{ctx};
const auto parameters = rp.PopRaw<Parameters>();
LOG_WARNING(Service_SSL, "(STUBBED) called, api_version={}, pid_placeholder={}",
parameters.ssl_version.api_version, parameters.pid_placeholder);
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess);
rb.PushIpcInterface<ISslContext>(system, parameters.ssl_version);
}
void SetInterfaceVersion(HLERequestContext& ctx) {
IPC::RequestParser rp{ctx};
u32 ssl_version = rp.Pop<u32>();