ssl: Implement SSL connectivity (#2961)
* implement certain servicessl functions * ssl: Implement more of SSL connection and abstract it This adds support to non blocking SSL operations and unlink the SSL implementation from the IPC logic. * Rename SslDefaultSocketConnection to SslManagedSocketConnection * Fix regression on Pokemon TV * Address gdkchan's comment * Simplify value read from previous commit * ssl: some changes - Implement builtin certificates parsing and retrieving - Fix issues with SSL version handling - Improve managed SSL socket error handling - Ensure to only return a certificate on DoHandshake when actually requested * Add missing BuiltInCertificateManager initialization call * Address gdkchan's comment * Address Ack's comment Co-authored-by: InvoxiPlayGames <webmaster@invoxiplaygames.uk>
This commit is contained in:
parent
366fe2dbb2
commit
3fa7ef21b4
12 changed files with 1138 additions and 34 deletions
|
@ -1,4 +1,5 @@
|
|||
using Ryujinx.Common.Logging;
|
||||
using Ryujinx.HLE.HOS.Services.Sockets.Bsd;
|
||||
using Ryujinx.HLE.HOS.Services.Ssl.Types;
|
||||
using System.Text;
|
||||
|
||||
|
@ -8,16 +9,22 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
|
|||
{
|
||||
private uint _connectionCount;
|
||||
|
||||
private readonly long _processId;
|
||||
private readonly SslVersion _sslVersion;
|
||||
private ulong _serverCertificateId;
|
||||
private ulong _clientCertificateId;
|
||||
|
||||
public ISslContext(ServiceCtx context) { }
|
||||
public ISslContext(long processId, SslVersion sslVersion)
|
||||
{
|
||||
_processId = processId;
|
||||
_sslVersion = sslVersion;
|
||||
}
|
||||
|
||||
[CommandHipc(2)]
|
||||
// CreateConnection() -> object<nn::ssl::sf::ISslConnection>
|
||||
public ResultCode CreateConnection(ServiceCtx context)
|
||||
{
|
||||
MakeObject(context, new ISslConnection());
|
||||
MakeObject(context, new ISslConnection(_processId, _sslVersion));
|
||||
|
||||
_connectionCount++;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue