using System; using System.Collections; using System.IO; using System.Runtime.InteropServices; 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: 0x0200158F RID: 5519 [Token(Token = "0x200158F")] [StructLayout(3)] public class TlsDHKeyExchange : AbstractTlsKeyExchange { // Token: 0x06009285 RID: 37509 RVA: 0x00207C7C File Offset: 0x00205E7C [Token(Token = "0x6009285")] [Address(RVA = "0x1E939F0", Offset = "0x1E923F0", VA = "0x181E939F0")] [Obsolete] public TlsDHKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, DHParameters dhParameters) { DefaultTlsDHVerifier defaultTlsDHVerifier = new DefaultTlsDHVerifier(); } // Token: 0x06009286 RID: 37510 RVA: 0x00207C90 File Offset: 0x00205E90 [Token(Token = "0x6009286")] [Address(RVA = "0x1E938D0", Offset = "0x1E922D0", VA = "0x181E938D0")] 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: 0x06009287 RID: 37511 RVA: 0x00207CD4 File Offset: 0x00205ED4 [Token(Token = "0x6009287")] [Address(RVA = "0x1E93190", Offset = "0x1E91B90", VA = "0x181E93190", Slot = "20")] public override void Init(TlsContext context) { base.Init(context); if (this.mTlsSigner != 0) { } } // Token: 0x06009288 RID: 37512 RVA: 0x00207CF4 File Offset: 0x00205EF4 [Token(Token = "0x6009288")] [Address(RVA = "0x1E93770", Offset = "0x1E92170", VA = "0x181E93770", Slot = "21")] public override void SkipServerCredentials() { } // Token: 0x06009289 RID: 37513 RVA: 0x00207D04 File Offset: 0x00205F04 [Token(Token = "0x6009289")] [Address(RVA = "0x1E93400", Offset = "0x1E91E00", VA = "0x181E93400", 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: 0x170017AE RID: 6062 // (get) Token: 0x0600928A RID: 37514 RVA: 0x00207D68 File Offset: 0x00205F68 [Token(Token = "0x170017AE")] public override bool RequiresServerKeyExchange { [Token(Token = "0x600928A")] [Address(RVA = "0x1E93A90", Offset = "0x1E92490", VA = "0x181E93A90", Slot = "24")] get { if (this.mKeyExchange != 11) { } return true; } } // Token: 0x0600928B RID: 37515 RVA: 0x00207D84 File Offset: 0x00205F84 [Token(Token = "0x600928B")] [Address(RVA = "0x1E93090", Offset = "0x1E91A90", VA = "0x181E93090", 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: 0x0600928C RID: 37516 RVA: 0x00207DB4 File Offset: 0x00205FB4 [Token(Token = "0x600928C")] [Address(RVA = "0x1E93670", Offset = "0x1E92070", VA = "0x181E93670", 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: 0x0600928D RID: 37517 RVA: 0x00207DF4 File Offset: 0x00205FF4 [Token(Token = "0x600928D")] [Address(RVA = "0x1E937D0", Offset = "0x1E921D0", VA = "0x181E937D0", 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: 0x0600928E RID: 37518 RVA: 0x00207E1C File Offset: 0x0020601C [Token(Token = "0x600928E")] [Address(RVA = "0x1E93250", Offset = "0x1E91C50", VA = "0x181E93250", Slot = "30")] public override void ProcessClientCredentials(TlsCredentials clientCredentials) { if (clientCredentials == 0) { } } // Token: 0x0600928F RID: 37519 RVA: 0x00207E30 File Offset: 0x00206030 [Token(Token = "0x600928F")] [Address(RVA = "0x1E92EA0", Offset = "0x1E918A0", VA = "0x181E92EA0", Slot = "32")] public override void GenerateClientKeyExchange(Stream output) { if (this.mAgreementCredentials == (ulong)0L) { TlsContext mContext = this.mContext; DHPrivateKeyParameters dhprivateKeyParameters; this.mDHAgreePrivateKey = dhprivateKeyParameters; } } // Token: 0x06009290 RID: 37520 RVA: 0x00207E5C File Offset: 0x0020605C [Token(Token = "0x6009290")] [Address(RVA = "0x1E931F0", Offset = "0x1E91BF0", VA = "0x181E931F0", Slot = "31")] public override void ProcessClientCertificate(Certificate clientCertificate) { } // Token: 0x06009291 RID: 37521 RVA: 0x00207E6C File Offset: 0x0020606C [Token(Token = "0x6009291")] [Address(RVA = "0x1E93350", Offset = "0x1E91D50", VA = "0x181E93350", 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: 0x06009292 RID: 37522 RVA: 0x00207EA4 File Offset: 0x002060A4 [Token(Token = "0x6009292")] [Address(RVA = "0x1E92F50", Offset = "0x1E91950", VA = "0x181E92F50", 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: 0x040061B5 RID: 25013 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40061B5")] protected TlsSigner mTlsSigner; // Token: 0x040061B6 RID: 25014 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40061B6")] protected TlsDHVerifier mDHVerifier; // Token: 0x040061B7 RID: 25015 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x40061B7")] protected DHParameters mDHParameters; // Token: 0x040061B8 RID: 25016 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x40061B8")] protected AsymmetricKeyParameter mServerPublicKey; // Token: 0x040061B9 RID: 25017 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x40061B9")] protected TlsAgreementCredentials mAgreementCredentials; // Token: 0x040061BA RID: 25018 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x40061BA")] protected DHPrivateKeyParameters mDHAgreePrivateKey; // Token: 0x040061BB RID: 25019 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x40061BB")] protected DHPublicKeyParameters mDHAgreePublicKey; } }