|
@@ -3,6 +3,9 @@
|
|
|
// Refer to the license.txt file included.
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#include "core/hle/ipc_helpers.h"
|
|
#include "core/hle/ipc_helpers.h"
|
|
|
|
|
+#include "core/hle/kernel/hle_ipc.h"
|
|
|
|
|
+#include "core/hle/service/service.h"
|
|
|
|
|
+#include "core/hle/service/sm/sm.h"
|
|
|
#include "core/hle/service/ssl/ssl.h"
|
|
#include "core/hle/service/ssl/ssl.h"
|
|
|
|
|
|
|
|
namespace Service::SSL {
|
|
namespace Service::SSL {
|
|
@@ -81,36 +84,43 @@ private:
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-void SSL::CreateContext(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
- LOG_WARNING(Service_SSL, "(STUBBED) called");
|
|
|
|
|
|
|
+class SSL final : public ServiceFramework<SSL> {
|
|
|
|
|
+public:
|
|
|
|
|
+ explicit SSL() : ServiceFramework{"ssl"} {
|
|
|
|
|
+ // clang-format off
|
|
|
|
|
+ static const FunctionInfo functions[] = {
|
|
|
|
|
+ {0, &SSL::CreateContext, "CreateContext"},
|
|
|
|
|
+ {1, nullptr, "GetContextCount"},
|
|
|
|
|
+ {2, nullptr, "GetCertificates"},
|
|
|
|
|
+ {3, nullptr, "GetCertificateBufSize"},
|
|
|
|
|
+ {4, nullptr, "DebugIoctl"},
|
|
|
|
|
+ {5, &SSL::SetInterfaceVersion, "SetInterfaceVersion"},
|
|
|
|
|
+ {6, nullptr, "FlushSessionCache"},
|
|
|
|
|
+ };
|
|
|
|
|
+ // clang-format on
|
|
|
|
|
|
|
|
- IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
- rb.Push(RESULT_SUCCESS);
|
|
|
|
|
- rb.PushIpcInterface<ISslContext>();
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ RegisterHandlers(functions);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-SSL::SSL() : ServiceFramework("ssl") {
|
|
|
|
|
- static const FunctionInfo functions[] = {
|
|
|
|
|
- {0, &SSL::CreateContext, "CreateContext"},
|
|
|
|
|
- {1, nullptr, "GetContextCount"},
|
|
|
|
|
- {2, nullptr, "GetCertificates"},
|
|
|
|
|
- {3, nullptr, "GetCertificateBufSize"},
|
|
|
|
|
- {4, nullptr, "DebugIoctl"},
|
|
|
|
|
- {5, &SSL::SetInterfaceVersion, "SetInterfaceVersion"},
|
|
|
|
|
- {6, nullptr, "FlushSessionCache"},
|
|
|
|
|
- };
|
|
|
|
|
- RegisterHandlers(functions);
|
|
|
|
|
-}
|
|
|
|
|
|
|
+private:
|
|
|
|
|
+ void CreateContext(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
+ LOG_WARNING(Service_SSL, "(STUBBED) called");
|
|
|
|
|
|
|
|
-void SSL::SetInterfaceVersion(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
- LOG_WARNING(Service_SSL, "(STUBBED) called");
|
|
|
|
|
- IPC::RequestParser rp{ctx};
|
|
|
|
|
- u32 unk1 = rp.Pop<u32>(); // Probably minor/major?
|
|
|
|
|
- u32 unk2 = rp.Pop<u32>(); // TODO(ogniK): Figure out what this does
|
|
|
|
|
|
|
+ IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
+ rb.Push(RESULT_SUCCESS);
|
|
|
|
|
+ rb.PushIpcInterface<ISslContext>();
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- IPC::ResponseBuilder rb{ctx, 2};
|
|
|
|
|
- rb.Push(RESULT_SUCCESS);
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ void SetInterfaceVersion(Kernel::HLERequestContext& ctx) {
|
|
|
|
|
+ LOG_WARNING(Service_SSL, "(STUBBED) called");
|
|
|
|
|
+ IPC::RequestParser rp{ctx};
|
|
|
|
|
+ u32 unk1 = rp.Pop<u32>(); // Probably minor/major?
|
|
|
|
|
+ u32 unk2 = rp.Pop<u32>(); // TODO(ogniK): Figure out what this does
|
|
|
|
|
+
|
|
|
|
|
+ IPC::ResponseBuilder rb{ctx, 2};
|
|
|
|
|
+ rb.Push(RESULT_SUCCESS);
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
void InstallInterfaces(SM::ServiceManager& service_manager) {
|
|
void InstallInterfaces(SM::ServiceManager& service_manager) {
|
|
|
std::make_shared<SSL>()->InstallAsService(service_manager);
|
|
std::make_shared<SSL>()->InstallAsService(service_manager);
|