From 360d3522e6a19f9daf966fc365c8d38df94c87cc Mon Sep 17 00:00:00 2001 From: pineappleEA Date: Thu, 13 May 2021 03:59:00 +0200 Subject: [PATCH] early-access version 1678 --- README.md | 2 +- src/core/hle/service/ssl/ssl.cpp | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index da2495f57..c98eb4d3f 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ yuzu emulator early access ============= -This is the source code for early-access 1677. +This is the source code for early-access 1678. ## Legal Notice diff --git a/src/core/hle/service/ssl/ssl.cpp b/src/core/hle/service/ssl/ssl.cpp index 4b5c99d82..2c8899ae0 100755 --- a/src/core/hle/service/ssl/ssl.cpp +++ b/src/core/hle/service/ssl/ssl.cpp @@ -10,6 +10,11 @@ namespace Service::SSL { +enum class CertificateFormat : u32 { + Pem = 1, + Der = 2, +}; + class ISslConnection final : public ServiceFramework { public: explicit ISslConnection(Core::System& system_) : ServiceFramework{system_, "ISslConnection"} { @@ -58,7 +63,7 @@ public: {1, nullptr, "GetOption"}, {2, &ISslContext::CreateConnection, "CreateConnection"}, {3, nullptr, "GetConnectionCount"}, - {4, nullptr, "ImportServerPki"}, + {4, &ISslContext::ImportServerPki, "ImportServerPki"}, {5, &ISslContext::ImportClientPki, "ImportClientPki"}, {6, nullptr, "RemoveServerPki"}, {7, nullptr, "RemoveClientPki"}, @@ -95,6 +100,20 @@ private: rb.PushIpcInterface(system); } + void ImportServerPki(Kernel::HLERequestContext& ctx) { + IPC::RequestParser rp{ctx}; + const auto certificate_format = rp.PopEnum(); + const auto pkcs_12_certificates = ctx.ReadBuffer(0); + + constexpr u64 server_id = 0; + + LOG_WARNING(Service_SSL, "(STUBBED) called, certificate_format={}", certificate_format); + + IPC::ResponseBuilder rb{ctx, 4}; + rb.Push(RESULT_SUCCESS); + rb.Push(server_id); + } + void ImportClientPki(Kernel::HLERequestContext& ctx) { const auto pkcs_12_certificate = ctx.ReadBuffer(0); const auto ascii_password = [&ctx] { @@ -106,12 +125,12 @@ private: }(); constexpr u64 client_id = 0; - ctx.WriteBuffer(client_id); LOG_WARNING(Service_SSL, "(STUBBED) called"); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(RESULT_SUCCESS); + rb.Push(client_id); } };