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.Math; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls { // Token: 0x02001B6C RID: 7020 [Token(Token = "0x2001B6C")] public class TlsDHKeyExchange : AbstractTlsKeyExchange { // Token: 0x0600AE5F RID: 44639 RVA: 0x0025F364 File Offset: 0x0025D564 [Token(Token = "0x600AE5F")] [Address(RVA = "0x1982040", Offset = "0x1980E40", VA = "0x181982040")] [Obsolete] public TlsDHKeyExchange(int keyExchange, IList supportedSignatureAlgorithms, DHParameters dhParameters) { DefaultTlsDHVerifier defaultTlsDHVerifier = new DefaultTlsDHVerifier(); } // Token: 0x0600AE60 RID: 44640 RVA: 0x0025F378 File Offset: 0x0025D578 [Token(Token = "0x600AE60")] [Address(RVA = "0x1981F20", Offset = "0x1980D20", VA = "0x181981F20")] 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: 0x0600AE61 RID: 44641 RVA: 0x0025F3BC File Offset: 0x0025D5BC [Token(Token = "0x600AE61")] [Address(RVA = "0x19817E0", Offset = "0x19805E0", VA = "0x1819817E0", Slot = "20")] public override void Init(TlsContext context) { base.Init(context); if (this.mTlsSigner != 0) { } } // Token: 0x0600AE62 RID: 44642 RVA: 0x0025F3DC File Offset: 0x0025D5DC [Token(Token = "0x600AE62")] [Address(RVA = "0x1981DC0", Offset = "0x1980BC0", VA = "0x181981DC0", Slot = "21")] public override void SkipServerCredentials() { } // Token: 0x0600AE63 RID: 44643 RVA: 0x0025F3EC File Offset: 0x0025D5EC [Token(Token = "0x600AE63")] [Address(RVA = "0x1981A50", Offset = "0x1980850", VA = "0x181981A50", 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: 0x17001BAF RID: 7087 // (get) Token: 0x0600AE64 RID: 44644 RVA: 0x0025F450 File Offset: 0x0025D650 [Token(Token = "0x17001BAF")] public override bool RequiresServerKeyExchange { [Token(Token = "0x600AE64")] [Address(RVA = "0x19820E0", Offset = "0x1980EE0", VA = "0x1819820E0", Slot = "24")] get { if (this.mKeyExchange != 11) { } return true; } } // Token: 0x0600AE65 RID: 44645 RVA: 0x0025F46C File Offset: 0x0025D66C [Token(Token = "0x600AE65")] [Address(RVA = "0x19816E0", Offset = "0x19804E0", VA = "0x1819816E0", 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: 0x0600AE66 RID: 44646 RVA: 0x0025F49C File Offset: 0x0025D69C [Token(Token = "0x600AE66")] [Address(RVA = "0x1981CC0", Offset = "0x1980AC0", VA = "0x181981CC0", 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: 0x0600AE67 RID: 44647 RVA: 0x0025F4DC File Offset: 0x0025D6DC [Token(Token = "0x600AE67")] [Address(RVA = "0x1981E20", Offset = "0x1980C20", VA = "0x181981E20", 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: 0x0600AE68 RID: 44648 RVA: 0x0025F504 File Offset: 0x0025D704 [Token(Token = "0x600AE68")] [Address(RVA = "0x19818A0", Offset = "0x19806A0", VA = "0x1819818A0", Slot = "30")] public override void ProcessClientCredentials(TlsCredentials clientCredentials) { if (clientCredentials == 0) { } } // Token: 0x0600AE69 RID: 44649 RVA: 0x0025F518 File Offset: 0x0025D718 [Token(Token = "0x600AE69")] [Address(RVA = "0x1981570", Offset = "0x1980370", VA = "0x181981570", Slot = "32")] public override void GenerateClientKeyExchange(Stream output) { if (this.mAgreementCredentials == (ulong)0L) { TlsContext mContext = this.mContext; DHPrivateKeyParameters dhprivateKeyParameters; this.mDHAgreePrivateKey = dhprivateKeyParameters; } } // Token: 0x0600AE6A RID: 44650 RVA: 0x0025F544 File Offset: 0x0025D744 [Token(Token = "0x600AE6A")] [Address(RVA = "0x1981840", Offset = "0x1980640", VA = "0x181981840", Slot = "31")] public override void ProcessClientCertificate(Certificate clientCertificate) { } // Token: 0x0600AE6B RID: 44651 RVA: 0x0025F554 File Offset: 0x0025D754 [Token(Token = "0x600AE6B")] [Address(RVA = "0x19819A0", Offset = "0x19807A0", VA = "0x1819819A0", 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: 0x0600AE6C RID: 44652 RVA: 0x0025F58C File Offset: 0x0025D78C [Token(Token = "0x600AE6C")] [Address(RVA = "0x1981620", Offset = "0x1980420", VA = "0x181981620", Slot = "34")] public override byte[] GeneratePremasterSecret() { DHPrivateKeyParameters dhprivateKeyParameters; for (;;) { if (this.mAgreementCredentials == 0) { dhprivateKeyParameters = this.mDHAgreePrivateKey; if (dhprivateKeyParameters != 0) { break; } } } return TlsDHUtilities.CalculateDHBasicAgreement(this.mDHAgreePublicKey, dhprivateKeyParameters); } // Token: 0x04006FF8 RID: 28664 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4006FF8")] protected TlsSigner mTlsSigner; // Token: 0x04006FF9 RID: 28665 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4006FF9")] protected TlsDHVerifier mDHVerifier; // Token: 0x04006FFA RID: 28666 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4006FFA")] protected DHParameters mDHParameters; // Token: 0x04006FFB RID: 28667 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4006FFB")] protected AsymmetricKeyParameter mServerPublicKey; // Token: 0x04006FFC RID: 28668 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4006FFC")] protected TlsAgreementCredentials mAgreementCredentials; // Token: 0x04006FFD RID: 28669 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4006FFD")] protected DHPrivateKeyParameters mDHAgreePrivateKey; // Token: 0x04006FFE RID: 28670 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4006FFE")] protected DHPublicKeyParameters mDHAgreePublicKey; } }