50 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|