Files
Dec2017-Script-Dump/Mono.Security/Security/Protocol/Tls/Handshake/Server/TlsServerCertificateRequest.cs
T
2026-06-04 11:42:34 +02:00

50 lines
1.4 KiB
C#

using System;
using Mono.Security.X509;
namespace Mono.Security.Protocol.Tls.Handshake.Server
{
// Token: 0x020000B8 RID: 184
internal class TlsServerCertificateRequest : HandshakeMessage
{
// Token: 0x060006B2 RID: 1714 RVA: 0x00025920 File Offset: 0x00023B20
public TlsServerCertificateRequest(Context context)
: base(context, HandshakeType.CertificateRequest)
{
}
// Token: 0x060006B3 RID: 1715 RVA: 0x0002592C File Offset: 0x00023B2C
protected override void ProcessAsSsl3()
{
this.ProcessAsTls1();
}
// Token: 0x060006B4 RID: 1716 RVA: 0x00025934 File Offset: 0x00023B34
protected override void ProcessAsTls1()
{
ServerContext serverContext = (ServerContext)base.Context;
int num = serverContext.ServerSettings.CertificateTypes.Length;
this.WriteByte(Convert.ToByte(num));
for (int i = 0; i < num; i++)
{
this.WriteByte((byte)serverContext.ServerSettings.CertificateTypes[i]);
}
if (serverContext.ServerSettings.DistinguisedNames.Length > 0)
{
TlsStream tlsStream = new TlsStream();
foreach (string text in serverContext.ServerSettings.DistinguisedNames)
{
byte[] bytes = X501.FromString(text).GetBytes();
tlsStream.Write((short)bytes.Length);
tlsStream.Write(bytes);
}
base.Write((short)tlsStream.Length);
base.Write(tlsStream.ToArray());
}
else
{
base.Write(0);
}
}
}
}