241 lines
8.2 KiB
C#
241 lines
8.2 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
|
{
|
|
// Token: 0x02001C4C RID: 7244
|
|
[Token(Token = "0x2001C4C")]
|
|
public class TlsDHKeyExchange : AbstractTlsKeyExchange
|
|
{
|
|
// Token: 0x0600B22D RID: 45613 RVA: 0x002684CC File Offset: 0x002666CC
|
|
[Token(Token = "0x600B22D")]
|
|
[Address(RVA = "0x4A03D0", Offset = "0x49F3D0", VA = "0x1804A03D0")]
|
|
[Obsolete]
|
|
public TlsDHKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, DHParameters dhParameters)
|
|
{
|
|
DefaultTlsDHVerifier defaultTlsDHVerifier = new DefaultTlsDHVerifier();
|
|
}
|
|
|
|
// Token: 0x0600B22E RID: 45614 RVA: 0x002684E0 File Offset: 0x002666E0
|
|
[Token(Token = "0x600B22E")]
|
|
[Address(RVA = "0x4A02B0", Offset = "0x49F2B0", VA = "0x1804A02B0")]
|
|
public TlsDHKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, TlsDHVerifier dhVerifier, DHParameters dhParameters)
|
|
: base(keyExchange, supportedSignatureAlgorithms)
|
|
{
|
|
TlsDssSigner tlsDssSigner = new TlsDssSigner();
|
|
TlsRsaSigner tlsRsaSigner = new TlsRsaSigner();
|
|
int num = 0;
|
|
this.mTlsSigner = num;
|
|
this.mDHVerifier = dhVerifier;
|
|
this.mDHParameters = 0;
|
|
}
|
|
|
|
// Token: 0x0600B22F RID: 45615 RVA: 0x00268524 File Offset: 0x00266724
|
|
[Token(Token = "0x600B22F")]
|
|
[Address(RVA = "0x49FB70", Offset = "0x49EB70", VA = "0x18049FB70", Slot = "20")]
|
|
public override void Init(TlsContext context)
|
|
{
|
|
base.Init(context);
|
|
if (this.mTlsSigner != 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B230 RID: 45616 RVA: 0x00268544 File Offset: 0x00266744
|
|
[Token(Token = "0x600B230")]
|
|
[Address(RVA = "0x4A0150", Offset = "0x49F150", VA = "0x1804A0150", Slot = "21")]
|
|
public override void SkipServerCredentials()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600B231 RID: 45617 RVA: 0x00268554 File Offset: 0x00266754
|
|
[Token(Token = "0x600B231")]
|
|
[Address(RVA = "0x49FDE0", Offset = "0x49EDE0", VA = "0x18049FDE0", Slot = "22")]
|
|
public override void ProcessServerCertificate(Certificate serverCertificate)
|
|
{
|
|
while (serverCertificate.Length != 0)
|
|
{
|
|
}
|
|
X509CertificateStructure[] certificateList = serverCertificate.GetCertificateList();
|
|
AsymmetricKeyParameter asymmetricKeyParameter = PublicKeyFactory.CreateKey(certificateList.SubjectPublicKeyInfo);
|
|
this.mServerPublicKey = asymmetricKeyParameter;
|
|
if (this.mTlsSigner == 0 || asymmetricKeyParameter != 0)
|
|
{
|
|
this.mDHAgreePublicKey = asymmetricKeyParameter;
|
|
this.mDHParameters = asymmetricKeyParameter;
|
|
TlsUtilities.ValidateKeyUsage(certificateList, 8);
|
|
base.ProcessServerCertificate(serverCertificate);
|
|
return;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x17001C4C RID: 7244
|
|
// (get) Token: 0x0600B232 RID: 45618 RVA: 0x002685B8 File Offset: 0x002667B8
|
|
[Token(Token = "0x17001C4C")]
|
|
public override bool RequiresServerKeyExchange
|
|
{
|
|
[Token(Token = "0x600B232")]
|
|
[Address(RVA = "0x4A0470", Offset = "0x49F470", VA = "0x1804A0470", Slot = "24")]
|
|
get
|
|
{
|
|
if (this.mKeyExchange != 11)
|
|
{
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B233 RID: 45619 RVA: 0x002685D4 File Offset: 0x002667D4
|
|
[Token(Token = "0x600B233")]
|
|
[Address(RVA = "0x49FA70", Offset = "0x49EA70", VA = "0x18049FA70", Slot = "25")]
|
|
public override byte[] GenerateServerKeyExchange()
|
|
{
|
|
MemoryStream memoryStream = new MemoryStream();
|
|
TlsContext mContext = this.mContext;
|
|
DHPrivateKeyParameters dhprivateKeyParameters;
|
|
this.mDHAgreePrivateKey = dhprivateKeyParameters;
|
|
((IDisposable)memoryStream).Dispose();
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B234 RID: 45620 RVA: 0x00268604 File Offset: 0x00266804
|
|
[Token(Token = "0x600B234")]
|
|
[Address(RVA = "0x4A0050", Offset = "0x49F050", VA = "0x1804A0050", Slot = "27")]
|
|
public override void ProcessServerKeyExchange(Stream input)
|
|
{
|
|
DHParameters dhparameters = TlsDHUtilities.ReceiveDHParameters(this.mDHVerifier, input);
|
|
this.mDHParameters = dhparameters;
|
|
BigInteger bigInteger = TlsDHUtilities.ReadDHParameter(input);
|
|
DHParameters dhparameters2 = this.mDHParameters;
|
|
DHPublicKeyParameters dhpublicKeyParameters = new DHPublicKeyParameters(bigInteger, dhparameters2);
|
|
this.mDHAgreePublicKey = dhpublicKeyParameters;
|
|
}
|
|
|
|
// Token: 0x0600B235 RID: 45621 RVA: 0x00268644 File Offset: 0x00266844
|
|
[Token(Token = "0x600B235")]
|
|
[Address(RVA = "0x4A01B0", Offset = "0x49F1B0", VA = "0x1804A01B0", Slot = "28")]
|
|
public override void ValidateCertificateRequest(CertificateRequest certificateRequest)
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
string text = certificateRequest.ToString();
|
|
num = 0;
|
|
}
|
|
while (18446744073709551615UL > (ulong)3L && num != 64);
|
|
num++;
|
|
}
|
|
|
|
// Token: 0x0600B236 RID: 45622 RVA: 0x0026866C File Offset: 0x0026686C
|
|
[Token(Token = "0x600B236")]
|
|
[Address(RVA = "0x49FC30", Offset = "0x49EC30", VA = "0x18049FC30", Slot = "30")]
|
|
public override void ProcessClientCredentials(TlsCredentials clientCredentials)
|
|
{
|
|
if (clientCredentials == 0)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B237 RID: 45623 RVA: 0x00268680 File Offset: 0x00266880
|
|
[Token(Token = "0x600B237")]
|
|
[Address(RVA = "0x49F880", Offset = "0x49E880", VA = "0x18049F880", Slot = "32")]
|
|
public override void GenerateClientKeyExchange(Stream output)
|
|
{
|
|
if (this.mAgreementCredentials == (ulong)0L)
|
|
{
|
|
TlsContext mContext = this.mContext;
|
|
DHPrivateKeyParameters dhprivateKeyParameters;
|
|
this.mDHAgreePrivateKey = dhprivateKeyParameters;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B238 RID: 45624 RVA: 0x002686AC File Offset: 0x002668AC
|
|
[Token(Token = "0x600B238")]
|
|
[Address(RVA = "0x49FBD0", Offset = "0x49EBD0", VA = "0x18049FBD0", Slot = "31")]
|
|
public override void ProcessClientCertificate(Certificate clientCertificate)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600B239 RID: 45625 RVA: 0x002686BC File Offset: 0x002668BC
|
|
[Token(Token = "0x600B239")]
|
|
[Address(RVA = "0x49FD30", Offset = "0x49ED30", VA = "0x18049FD30", Slot = "33")]
|
|
public override void ProcessClientKeyExchange(Stream input)
|
|
{
|
|
if (this.mDHAgreePublicKey == (ulong)0L)
|
|
{
|
|
BigInteger bigInteger = TlsDHUtilities.ReadDHParameter(input);
|
|
DHParameters dhparameters = this.mDHParameters;
|
|
DHPublicKeyParameters dhpublicKeyParameters = new DHPublicKeyParameters(bigInteger, dhparameters);
|
|
this.mDHAgreePublicKey = dhpublicKeyParameters;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B23A RID: 45626 RVA: 0x002686F4 File Offset: 0x002668F4
|
|
[Token(Token = "0x600B23A")]
|
|
[Address(RVA = "0x49F930", Offset = "0x49E930", VA = "0x18049F930", Slot = "34")]
|
|
public override byte[] GeneratePremasterSecret()
|
|
{
|
|
DHPrivateKeyParameters dhprivateKeyParameters;
|
|
for (;;)
|
|
{
|
|
if (this.mAgreementCredentials == 0)
|
|
{
|
|
dhprivateKeyParameters = this.mDHAgreePrivateKey;
|
|
if (dhprivateKeyParameters != 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
DHBasicAgreement dhbasicAgreement = new DHBasicAgreement();
|
|
BigInteger bigInteger = dhbasicAgreement.CalculateAgreement(dhprivateKeyParameters);
|
|
int fieldSize = dhbasicAgreement.GetFieldSize();
|
|
byte[] array;
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x040071B1 RID: 29105
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40071B1")]
|
|
protected TlsSigner mTlsSigner;
|
|
|
|
// Token: 0x040071B2 RID: 29106
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40071B2")]
|
|
protected TlsDHVerifier mDHVerifier;
|
|
|
|
// Token: 0x040071B3 RID: 29107
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40071B3")]
|
|
protected DHParameters mDHParameters;
|
|
|
|
// Token: 0x040071B4 RID: 29108
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40071B4")]
|
|
protected AsymmetricKeyParameter mServerPublicKey;
|
|
|
|
// Token: 0x040071B5 RID: 29109
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x40071B5")]
|
|
protected TlsAgreementCredentials mAgreementCredentials;
|
|
|
|
// Token: 0x040071B6 RID: 29110
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x40071B6")]
|
|
protected DHPrivateKeyParameters mDHAgreePrivateKey;
|
|
|
|
// Token: 0x040071B7 RID: 29111
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x40071B7")]
|
|
protected DHPublicKeyParameters mDHAgreePublicKey;
|
|
}
|
|
}
|