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
|
@ -0,0 +1,25 @@
|
|||
using Ryujinx.HLE.HOS.Services.Sockets.Bsd;
|
||||
using System;
|
||||
using System.Net.Sockets;
|
||||
|
||||
namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
|
||||
{
|
||||
interface ISslConnectionBase: IDisposable
|
||||
{
|
||||
int SocketFd { get; }
|
||||
|
||||
ISocket Socket { get; }
|
||||
|
||||
ResultCode Handshake(string hostName);
|
||||
|
||||
ResultCode GetServerCertificate(string hostname, Span<byte> certificates, out uint storageSize, out uint certificateCount);
|
||||
|
||||
ResultCode Write(out int writtenCount, ReadOnlyMemory<byte> buffer);
|
||||
|
||||
ResultCode Read(out int readCount, Memory<byte> buffer);
|
||||
|
||||
ResultCode Peek(out int peekCount, Memory<byte> buffer);
|
||||
|
||||
int Pending();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue