aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.HLE/HOS/Services/Ssl/SslService
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.HLE/HOS/Services/Ssl/SslService')
-rw-r--r--src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs47
-rw-r--r--src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnectionBase.cs2
-rw-r--r--src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs12
-rw-r--r--src/Ryujinx.HLE/HOS/Services/Ssl/SslService/SslManagedSocketConnection.cs32
4 files changed, 44 insertions, 49 deletions
diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs
index b9087f40..b5c608d3 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnection.cs
@@ -15,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
private bool _skipDefaultVerify;
private bool _enableAlpn;
- private SslVersion _sslVersion;
+ private readonly SslVersion _sslVersion;
private IoMode _ioMode;
private VerifyOption _verifyOption;
private SessionCacheMode _sessionCacheMode;
@@ -206,13 +206,12 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
{
if (_getServerCertChain)
{
- using (WritableRegion region = context.Memory.GetWritableRegion(context.Request.ReceiveBuff[0].Position, (int)context.Request.ReceiveBuff[0].Size))
- {
- result = _connection.GetServerCertificate(_hostName, region.Memory.Span, out uint bufferSize, out uint certificateCount);
+ using WritableRegion region = context.Memory.GetWritableRegion(context.Request.ReceiveBuff[0].Position, (int)context.Request.ReceiveBuff[0].Size);
- context.ResponseData.Write(bufferSize);
- context.ResponseData.Write(certificateCount);
- }
+ result = _connection.GetServerCertificate(_hostName, region.Memory.Span, out uint bufferSize, out uint certificateCount);
+
+ context.ResponseData.Write(bufferSize);
+ context.ResponseData.Write(certificateCount);
}
else
{
@@ -235,15 +234,13 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
ResultCode result;
- using (WritableRegion region = context.Memory.GetWritableRegion(context.Request.ReceiveBuff[0].Position, (int)context.Request.ReceiveBuff[0].Size))
- {
- // TODO: Better error management.
- result = _connection.Read(out int readCount, region.Memory);
+ using WritableRegion region = context.Memory.GetWritableRegion(context.Request.ReceiveBuff[0].Position, (int)context.Request.ReceiveBuff[0].Size);
+ // TODO: Better error management.
+ result = _connection.Read(out int readCount, region.Memory);
- if (result == ResultCode.Success)
- {
- context.ResponseData.Write(readCount);
- }
+ if (result == ResultCode.Success)
+ {
+ context.ResponseData.Write(readCount);
}
return result;
@@ -297,15 +294,15 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
ResultCode result;
- using (WritableRegion region = context.Memory.GetWritableRegion(context.Request.ReceiveBuff[0].Position, (int)context.Request.ReceiveBuff[0].Size))
- {
- // TODO: Better error management.
- result = _connection.Peek(out int peekCount, region.Memory);
+ using WritableRegion region = context.Memory.GetWritableRegion(context.Request.ReceiveBuff[0].Position, (int)context.Request.ReceiveBuff[0].Size);
- if (result == ResultCode.Success)
- {
- context.ResponseData.Write(peekCount);
- }
+
+ // TODO: Better error management.
+ result = _connection.Peek(out int peekCount, region.Memory);
+
+ if (result == ResultCode.Success)
+ {
+ context.ResponseData.Write(peekCount);
}
return result;
@@ -381,7 +378,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
// SetOption(b8 value, nn::ssl::sf::OptionType option)
public ResultCode SetOption(ServiceCtx context)
{
- bool value = context.RequestData.ReadUInt32() != 0;
+ bool value = context.RequestData.ReadUInt32() != 0;
OptionType option = (OptionType)context.RequestData.ReadUInt32();
Logger.Stub?.PrintStub(LogClass.ServiceSsl, new { option, value });
@@ -516,4 +513,4 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
_connection?.Dispose();
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnectionBase.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnectionBase.cs
index 18e03e49..500e2b89 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnectionBase.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslConnectionBase.cs
@@ -3,7 +3,7 @@ using System;
namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
{
- interface ISslConnectionBase: IDisposable
+ interface ISslConnectionBase : IDisposable
{
int SocketFd { get; }
diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs
index b38ff921..7b371d29 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/ISslContext.cs
@@ -47,8 +47,10 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
{
CertificateFormat certificateFormat = (CertificateFormat)context.RequestData.ReadUInt32();
+#pragma warning disable IDE0059 // Remove unnecessary value assignment
ulong certificateDataPosition = context.Request.SendBuff[0].Position;
- ulong certificateDataSize = context.Request.SendBuff[0].Size;
+ ulong certificateDataSize = context.Request.SendBuff[0].Size;
+#pragma warning restore IDE0059
context.ResponseData.Write(_serverCertificateId++);
@@ -61,11 +63,13 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
// ImportClientPki(buffer<bytes, 5> certificate, buffer<bytes, 5> ascii_password) -> u64 certificateId
public ResultCode ImportClientPki(ServiceCtx context)
{
+#pragma warning disable IDE0059 // Remove unnecessary value assignment
ulong certificateDataPosition = context.Request.SendBuff[0].Position;
- ulong certificateDataSize = context.Request.SendBuff[0].Size;
+ ulong certificateDataSize = context.Request.SendBuff[0].Size;
+#pragma warning restore IDE0059
ulong asciiPasswordDataPosition = context.Request.SendBuff[1].Position;
- ulong asciiPasswordDataSize = context.Request.SendBuff[1].Size;
+ ulong asciiPasswordDataSize = context.Request.SendBuff[1].Size;
byte[] asciiPasswordData = new byte[asciiPasswordDataSize];
@@ -80,4 +84,4 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
return ResultCode.Success;
}
}
-} \ No newline at end of file
+}
diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/SslManagedSocketConnection.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/SslManagedSocketConnection.cs
index 47d3eddb..dab099aa 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/SslManagedSocketConnection.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ssl/SslService/SslManagedSocketConnection.cs
@@ -15,8 +15,8 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
public ISocket Socket { get; }
- private BsdContext _bsdContext;
- private SslVersion _sslVersion;
+ private readonly BsdContext _bsdContext;
+ private readonly SslVersion _sslVersion;
private SslStream _stream;
private bool _isBlockingSocket;
private int _previousReadTimeout;
@@ -67,25 +67,19 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
EndSslOperation();
}
-// NOTE: We silence warnings about TLS 1.0 and 1.1 as games will likely use it.
+ // NOTE: We silence warnings about TLS 1.0 and 1.1 as games will likely use it.
#pragma warning disable SYSLIB0039
- private static SslProtocols TranslateSslVersion(SslVersion version)
+ private SslProtocols TranslateSslVersion(SslVersion version)
{
- switch (version & SslVersion.VersionMask)
+ return (version & SslVersion.VersionMask) switch
{
- case SslVersion.Auto:
- return SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12 | SslProtocols.Tls13;
- case SslVersion.TlsV10:
- return SslProtocols.Tls;
- case SslVersion.TlsV11:
- return SslProtocols.Tls11;
- case SslVersion.TlsV12:
- return SslProtocols.Tls12;
- case SslVersion.TlsV13:
- return SslProtocols.Tls13;
- default:
- throw new NotImplementedException(version.ToString());
- }
+ SslVersion.Auto => SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12 | SslProtocols.Tls13,
+ SslVersion.TlsV10 => SslProtocols.Tls,
+ SslVersion.TlsV11 => SslProtocols.Tls11,
+ SslVersion.TlsV12 => SslProtocols.Tls12,
+ SslVersion.TlsV13 => SslProtocols.Tls13,
+ _ => throw new NotImplementedException(version.ToString()),
+ };
}
#pragma warning restore SYSLIB0039
@@ -114,7 +108,7 @@ namespace Ryujinx.HLE.HOS.Services.Ssl.SslService
return 0;
}
- private static bool TryTranslateWinSockError(bool isBlocking, WsaError error, out ResultCode resultCode)
+ private bool TryTranslateWinSockError(bool isBlocking, WsaError error, out ResultCode resultCode)
{
switch (error)
{