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

44 lines
1.6 KiB
C#

using System;
using Mono.Security.Cryptography;
namespace Mono.Security.Protocol.Tls.Handshake.Server
{
// Token: 0x020000B3 RID: 179
internal class TlsClientCertificateVerify : HandshakeMessage
{
// Token: 0x0600069F RID: 1695 RVA: 0x00025288 File Offset: 0x00023488
public TlsClientCertificateVerify(Context context, byte[] buffer)
: base(context, HandshakeType.CertificateVerify, buffer)
{
}
// Token: 0x060006A0 RID: 1696 RVA: 0x00025294 File Offset: 0x00023494
protected override void ProcessAsSsl3()
{
ServerContext serverContext = (ServerContext)base.Context;
int num = (int)base.ReadInt16();
byte[] array = base.ReadBytes(num);
SslHandshakeHash sslHandshakeHash = new SslHandshakeHash(serverContext.MasterSecret);
sslHandshakeHash.TransformFinalBlock(serverContext.HandshakeMessages.ToArray(), 0, (int)serverContext.HandshakeMessages.Length);
if (!sslHandshakeHash.VerifySignature(serverContext.ClientSettings.CertificateRSA, array))
{
throw new TlsException(AlertDescription.HandshakeFailiure, "Handshake Failure.");
}
}
// Token: 0x060006A1 RID: 1697 RVA: 0x0002530C File Offset: 0x0002350C
protected override void ProcessAsTls1()
{
ServerContext serverContext = (ServerContext)base.Context;
int num = (int)base.ReadInt16();
byte[] array = base.ReadBytes(num);
MD5SHA1 md5SHA = new MD5SHA1();
md5SHA.ComputeHash(serverContext.HandshakeMessages.ToArray(), 0, (int)serverContext.HandshakeMessages.Length);
if (!md5SHA.VerifySignature(serverContext.ClientSettings.CertificateRSA, array))
{
throw new TlsException(AlertDescription.HandshakeFailiure, "Handshake Failure.");
}
}
}
}