[SSL]: Add CreateContextForSystem

This commit is contained in:
liberodark 2025-12-07 15:40:55 +01:00
parent eea7d44990
commit e23ed10dbf

View file

@ -529,7 +529,7 @@ public:
{7, nullptr, "SetDebugOption"}, {7, nullptr, "SetDebugOption"},
{8, nullptr, "GetDebugOption"}, {8, nullptr, "GetDebugOption"},
{9, nullptr, "ClearTls12FallbackFlag"}, {9, nullptr, "ClearTls12FallbackFlag"},
{100, nullptr, "CreateContextForSystem"}, {100, &ISslService::CreateContextForSystem, "CreateContextForSystem"},
{101, nullptr, "SetThreadCoreMask"}, {101, nullptr, "SetThreadCoreMask"},
{102, nullptr, "GetThreadCoreMask"}, {102, nullptr, "GetThreadCoreMask"},
{103, nullptr, "VerifySignature"}, // 18.0.0+ {103, nullptr, "VerifySignature"}, // 18.0.0+
@ -559,6 +559,25 @@ private:
rb.PushIpcInterface<ISslContext>(system, parameters.ssl_version); 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) { void SetInterfaceVersion(HLERequestContext& ctx) {
IPC::RequestParser rp{ctx}; IPC::RequestParser rp{ctx};
u32 ssl_version = rp.Pop<u32>(); u32 ssl_version = rp.Pop<u32>();