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; } }