using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters { // Token: 0x02001C15 RID: 7189 [Token(Token = "0x2001C15")] public class RsaPrivateCrtKeyParameters : RsaKeyParameters { // Token: 0x0600B38A RID: 45962 RVA: 0x0027134C File Offset: 0x0026F54C [Token(Token = "0x600B38A")] [Address(RVA = "0x1812420", Offset = "0x1811220", VA = "0x181812420")] public RsaPrivateCrtKeyParameters(BigInteger modulus, BigInteger publicExponent, BigInteger privateExponent, BigInteger p, BigInteger q, BigInteger dP, BigInteger dQ, BigInteger qInv) : base(true, modulus, privateExponent) { RsaPrivateCrtKeyParameters.ValidateValue(publicExponent, "publicExponent", "exponent"); this.q = 0; this.dP = 0; this.dQ = 0; this.qInv = 0; this.e = publicExponent; this.p = 0; } // Token: 0x0600B38B RID: 45963 RVA: 0x0027139C File Offset: 0x0026F59C [Token(Token = "0x600B38B")] [Address(RVA = "0x1812590", Offset = "0x1811390", VA = "0x181812590")] public RsaPrivateCrtKeyParameters(RsaPrivateKeyStructure rsaPrivateKey) { BigInteger prime = rsaPrivateKey.prime2; BigInteger prime2 = rsaPrivateKey.prime1; BigInteger publicExponent = rsaPrivateKey.publicExponent; BigInteger coefficient = rsaPrivateKey.coefficient; BigInteger modulus = rsaPrivateKey.modulus; BigInteger exponent = rsaPrivateKey.exponent1; BigInteger privateExponent = rsaPrivateKey.privateExponent; BigInteger exponent2 = rsaPrivateKey.exponent2; base..ctor(true, modulus, privateExponent); RsaPrivateCrtKeyParameters.ValidateValue(publicExponent, "publicExponent", "exponent"); RsaPrivateCrtKeyParameters.ValidateValue(prime2, "p", "P value"); RsaPrivateCrtKeyParameters.ValidateValue(prime, "q", "Q value"); RsaPrivateCrtKeyParameters.ValidateValue(exponent, "dP", "DP value"); RsaPrivateCrtKeyParameters.ValidateValue(exponent2, "dQ", "DQ value"); RsaPrivateCrtKeyParameters.ValidateValue(coefficient, "qInv", "InverseQ value"); this.e = publicExponent; this.p = prime2; this.q = prime; this.dP = exponent; this.dQ = exponent2; this.qInv = coefficient; } // Token: 0x17001C57 RID: 7255 // (get) Token: 0x0600B38C RID: 45964 RVA: 0x00271484 File Offset: 0x0026F684 [Token(Token = "0x17001C57")] public BigInteger PublicExponent { [Token(Token = "0x600B38C")] [Address(RVA = "0x3F63E0", Offset = "0x3F51E0", VA = "0x1803F63E0")] get { return this.e; } } // Token: 0x17001C58 RID: 7256 // (get) Token: 0x0600B38D RID: 45965 RVA: 0x00271498 File Offset: 0x0026F698 [Token(Token = "0x17001C58")] public BigInteger P { [Token(Token = "0x600B38D")] [Address(RVA = "0x3FA180", Offset = "0x3F8F80", VA = "0x1803FA180")] get { return this.p; } } // Token: 0x17001C59 RID: 7257 // (get) Token: 0x0600B38E RID: 45966 RVA: 0x002714AC File Offset: 0x0026F6AC [Token(Token = "0x17001C59")] public BigInteger Q { [Token(Token = "0x600B38E")] [Address(RVA = "0x3F63D0", Offset = "0x3F51D0", VA = "0x1803F63D0")] get { return this.q; } } // Token: 0x17001C5A RID: 7258 // (get) Token: 0x0600B38F RID: 45967 RVA: 0x002714C0 File Offset: 0x0026F6C0 [Token(Token = "0x17001C5A")] public BigInteger DP { [Token(Token = "0x600B38F")] [Address(RVA = "0x408890", Offset = "0x407690", VA = "0x180408890")] get { return this.dP; } } // Token: 0x17001C5B RID: 7259 // (get) Token: 0x0600B390 RID: 45968 RVA: 0x002714D4 File Offset: 0x0026F6D4 [Token(Token = "0x17001C5B")] public BigInteger DQ { [Token(Token = "0x600B390")] [Address(RVA = "0x3FA170", Offset = "0x3F8F70", VA = "0x1803FA170")] get { return this.dQ; } } // Token: 0x17001C5C RID: 7260 // (get) Token: 0x0600B391 RID: 45969 RVA: 0x002714E8 File Offset: 0x0026F6E8 [Token(Token = "0x17001C5C")] public BigInteger QInv { [Token(Token = "0x600B391")] [Address(RVA = "0x415290", Offset = "0x414090", VA = "0x180415290")] get { return this.qInv; } } // Token: 0x0600B392 RID: 45970 RVA: 0x002714FC File Offset: 0x0026F6FC [Token(Token = "0x600B392")] [Address(RVA = "0x1812020", Offset = "0x1810E20", VA = "0x181812020", Slot = "0")] public override bool Equals(object obj) { if (obj != this) { if (obj != 0) { int num = 0; if (obj == 0 || num == 0 || num == 0 || num == 0 || num == 0 || num == 0 || num == 0 || num != 0) { } } } return true; } // Token: 0x0600B393 RID: 45971 RVA: 0x0027153C File Offset: 0x0026F73C [Token(Token = "0x600B393")] [Address(RVA = "0x1812210", Offset = "0x1811010", VA = "0x181812210", Slot = "2")] public override int GetHashCode() { this.dP.Finalize(); this.dQ.Finalize(); this.exponent.Finalize(); this.modulus.Finalize(); this.p.Finalize(); this.q.Finalize(); this.e.Finalize(); this.qInv.Finalize(); throw new NullReferenceException(); } // Token: 0x0600B394 RID: 45972 RVA: 0x002715A8 File Offset: 0x0026F7A8 [Token(Token = "0x600B394")] [Address(RVA = "0x1812360", Offset = "0x1811160", VA = "0x181812360")] private static void ValidateValue(BigInteger x, string name, string desc) { /* An exception occurred when decompiling this method (0600B394) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.RsaPrivateCrtKeyParameters::ValidateValue(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.String,System.String) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_20: stloc:ArgumentNullException(var_1_26, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldloc:string(name))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x04007217 RID: 29207 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007217")] private readonly BigInteger e; // Token: 0x04007218 RID: 29208 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007218")] private readonly BigInteger p; // Token: 0x04007219 RID: 29209 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007219")] private readonly BigInteger q; // Token: 0x0400721A RID: 29210 [FieldOffset(Offset = "0x40")] [Token(Token = "0x400721A")] private readonly BigInteger dP; // Token: 0x0400721B RID: 29211 [FieldOffset(Offset = "0x48")] [Token(Token = "0x400721B")] private readonly BigInteger dQ; // Token: 0x0400721C RID: 29212 [FieldOffset(Offset = "0x50")] [Token(Token = "0x400721C")] private readonly BigInteger qInv; } }