oh dear
This commit is contained in:
+163
@@ -0,0 +1,163 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls
|
||||
{
|
||||
// Token: 0x02001B8A RID: 7050
|
||||
[Token(Token = "0x2001B8A")]
|
||||
public class TlsRsaKeyExchange : AbstractTlsKeyExchange
|
||||
{
|
||||
// Token: 0x0600AFA1 RID: 44961 RVA: 0x00262D5C File Offset: 0x00260F5C
|
||||
[Token(Token = "0x600AFA1")]
|
||||
[Address(RVA = "0x19918B0", Offset = "0x19906B0", VA = "0x1819918B0")]
|
||||
public TlsRsaKeyExchange(IList supportedSignatureAlgorithms)
|
||||
: base(1, supportedSignatureAlgorithms)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA2 RID: 44962 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600AFA2")]
|
||||
[Address(RVA = "0x1991720", Offset = "0x1990520", VA = "0x181991720", Slot = "21")]
|
||||
public override void SkipServerCredentials()
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA3 RID: 44963 RVA: 0x00262D74 File Offset: 0x00260F74
|
||||
[Token(Token = "0x600AFA3")]
|
||||
[Address(RVA = "0x1991640", Offset = "0x1990440", VA = "0x181991640", Slot = "23")]
|
||||
public override void ProcessServerCredentials(TlsCredentials serverCredentials)
|
||||
{
|
||||
this.SkipServerCredentials();
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA4 RID: 44964 RVA: 0x00262D88 File Offset: 0x00260F88
|
||||
[Token(Token = "0x600AFA4")]
|
||||
[Address(RVA = "0x1991430", Offset = "0x1990230", VA = "0x181991430", Slot = "22")]
|
||||
public override void ProcessServerCertificate(Certificate serverCertificate)
|
||||
{
|
||||
X509CertificateStructure[] certificateList;
|
||||
for (;;)
|
||||
{
|
||||
if (serverCertificate.Length == 0)
|
||||
{
|
||||
certificateList = serverCertificate.GetCertificateList();
|
||||
AsymmetricKeyParameter asymmetricKeyParameter = PublicKeyFactory.CreateKey(certificateList.SubjectPublicKeyInfo);
|
||||
this.mServerPublicKey = asymmetricKeyParameter;
|
||||
if (!asymmetricKeyParameter.privateKey)
|
||||
{
|
||||
if (asymmetricKeyParameter == 0)
|
||||
{
|
||||
}
|
||||
if (asymmetricKeyParameter != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
byte[] array = this.GeneratePremasterSecret();
|
||||
this.mRsaServerPublicKey = array;
|
||||
TlsUtilities.ValidateKeyUsage(certificateList, 32);
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA5 RID: 44965 RVA: 0x00262DF0 File Offset: 0x00260FF0
|
||||
[Token(Token = "0x600AFA5")]
|
||||
[Address(RVA = "0x1991770", Offset = "0x1990570", VA = "0x181991770", Slot = "28")]
|
||||
public override void ValidateCertificateRequest(CertificateRequest certificateRequest)
|
||||
{
|
||||
int num;
|
||||
do
|
||||
{
|
||||
string text = certificateRequest.ToString();
|
||||
num = 0;
|
||||
}
|
||||
while (18446744073709551615UL > (ulong)1L && num != 64);
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA6 RID: 44966 RVA: 0x00262E18 File Offset: 0x00261018
|
||||
[Token(Token = "0x600AFA6")]
|
||||
[Address(RVA = "0x19912F0", Offset = "0x19900F0", VA = "0x1819912F0", Slot = "30")]
|
||||
public override void ProcessClientCredentials(TlsCredentials clientCredentials)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA7 RID: 44967 RVA: 0x00262E28 File Offset: 0x00261028
|
||||
[Token(Token = "0x600AFA7")]
|
||||
[Address(RVA = "0x1991250", Offset = "0x1990050", VA = "0x181991250", Slot = "32")]
|
||||
public override void GenerateClientKeyExchange(Stream output)
|
||||
{
|
||||
RsaKeyParameters rsaKeyParameters = this.mRsaServerPublicKey;
|
||||
byte[] array = TlsRsaUtilities.GenerateEncryptedPreMasterSecret(this.mContext, rsaKeyParameters, output);
|
||||
this.mPremasterSecret = array;
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA8 RID: 44968 RVA: 0x00262E54 File Offset: 0x00261054
|
||||
[Token(Token = "0x600AFA8")]
|
||||
[Address(RVA = "0x1991360", Offset = "0x1990160", VA = "0x181991360", Slot = "33")]
|
||||
public override void ProcessClientKeyExchange(Stream input)
|
||||
{
|
||||
if (!TlsUtilities.IsSsl(this.mContext))
|
||||
{
|
||||
byte[] array = TlsUtilities.ReadOpaque16(input);
|
||||
}
|
||||
byte[] array2 = Streams.ReadAll(input);
|
||||
TlsEncryptionCredentials tlsEncryptionCredentials = this.mServerCredentials;
|
||||
this.mPremasterSecret = array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600AFA9 RID: 44969 RVA: 0x00262E94 File Offset: 0x00261094
|
||||
[Token(Token = "0x600AFA9")]
|
||||
[Address(RVA = "0x1991280", Offset = "0x1990080", VA = "0x181991280", Slot = "34")]
|
||||
public override byte[] GeneratePremasterSecret()
|
||||
{
|
||||
byte[] array;
|
||||
do
|
||||
{
|
||||
array = this.mPremasterSecret;
|
||||
}
|
||||
while (array == 0);
|
||||
this.mPremasterSecret = (ulong)0L;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600AFAA RID: 44970 RVA: 0x00262EB8 File Offset: 0x002610B8
|
||||
[Token(Token = "0x600AFAA")]
|
||||
[Address(RVA = "0x1991830", Offset = "0x1990630", VA = "0x181991830", Slot = "35")]
|
||||
protected virtual RsaKeyParameters ValidateRsaPublicKey(RsaKeyParameters key)
|
||||
{
|
||||
while (!key.exponent.IsProbablePrime(2))
|
||||
{
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
// Token: 0x04007068 RID: 28776
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007068")]
|
||||
protected AsymmetricKeyParameter mServerPublicKey;
|
||||
|
||||
// Token: 0x04007069 RID: 28777
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007069")]
|
||||
protected RsaKeyParameters mRsaServerPublicKey;
|
||||
|
||||
// Token: 0x0400706A RID: 28778
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x400706A")]
|
||||
protected TlsEncryptionCredentials mServerCredentials;
|
||||
|
||||
// Token: 0x0400706B RID: 28779
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x400706B")]
|
||||
protected byte[] mPremasterSecret;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user