44 lines
1.6 KiB
C#
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.");
|
|
}
|
|
}
|
|
}
|
|
}
|