58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
using System;
|
|
using System.Text;
|
|
|
|
namespace Mono.Security.Protocol.Tls.Handshake.Client
|
|
{
|
|
// Token: 0x020000AD RID: 173
|
|
internal class TlsServerCertificateRequest : HandshakeMessage
|
|
{
|
|
// Token: 0x06000683 RID: 1667 RVA: 0x00024724 File Offset: 0x00022924
|
|
public TlsServerCertificateRequest(Context context, byte[] buffer)
|
|
: base(context, HandshakeType.CertificateRequest, buffer)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06000684 RID: 1668 RVA: 0x00024730 File Offset: 0x00022930
|
|
public override void Update()
|
|
{
|
|
base.Update();
|
|
base.Context.ServerSettings.CertificateTypes = this.certificateTypes;
|
|
base.Context.ServerSettings.DistinguisedNames = this.distinguisedNames;
|
|
base.Context.ServerSettings.CertificateRequest = true;
|
|
}
|
|
|
|
// Token: 0x06000685 RID: 1669 RVA: 0x00024780 File Offset: 0x00022980
|
|
protected override void ProcessAsSsl3()
|
|
{
|
|
this.ProcessAsTls1();
|
|
}
|
|
|
|
// Token: 0x06000686 RID: 1670 RVA: 0x00024788 File Offset: 0x00022988
|
|
protected override void ProcessAsTls1()
|
|
{
|
|
int num = (int)base.ReadByte();
|
|
this.certificateTypes = new ClientCertificateType[num];
|
|
for (int i = 0; i < num; i++)
|
|
{
|
|
this.certificateTypes[i] = (ClientCertificateType)base.ReadByte();
|
|
}
|
|
if (base.ReadInt16() != 0)
|
|
{
|
|
ASN1 asn = new ASN1(base.ReadBytes((int)base.ReadInt16()));
|
|
this.distinguisedNames = new string[asn.Count];
|
|
for (int j = 0; j < asn.Count; j++)
|
|
{
|
|
ASN1 asn2 = new ASN1(asn[j].Value);
|
|
this.distinguisedNames[j] = Encoding.UTF8.GetString(asn2[1].Value);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x04000320 RID: 800
|
|
private ClientCertificateType[] certificateTypes;
|
|
|
|
// Token: 0x04000321 RID: 801
|
|
private string[] distinguisedNames;
|
|
}
|
|
}
|