using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x02001D84 RID: 7556 [Token(Token = "0x2001D84")] public class RsaBlindingEngine : IAsymmetricBlockCipher { // Token: 0x0600BC35 RID: 48181 RVA: 0x00298ED8 File Offset: 0x002970D8 [Token(Token = "0x600BC35")] [Address(RVA = "0x2736A20", Offset = "0x2735A20", VA = "0x182736A20")] public RsaBlindingEngine() { RsaCoreEngine rsaCoreEngine = new RsaCoreEngine(); base..ctor(); this.core = rsaCoreEngine; } // Token: 0x0600BC36 RID: 48182 RVA: 0x00298EF8 File Offset: 0x002970F8 [Token(Token = "0x600BC36")] [Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")] public RsaBlindingEngine(IRsa rsa) { this.core = rsa; } // Token: 0x17001D85 RID: 7557 // (get) Token: 0x0600BC37 RID: 48183 RVA: 0x00298F14 File Offset: 0x00297114 [Token(Token = "0x17001D85")] public virtual string AlgorithmName { [Token(Token = "0x600BC37")] [Address(RVA = "0x2736A80", Offset = "0x2735A80", VA = "0x182736A80", Slot = "9")] get { return "RSA"; } } // Token: 0x0600BC38 RID: 48184 RVA: 0x00298F28 File Offset: 0x00297128 [Token(Token = "0x600BC38")] [Address(RVA = "0x2736680", Offset = "0x2735680", VA = "0x182736680", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters param) { int num; for (;;) { if ((param != 0 || param != 0) && param != 0 && param != 0) { num = 0; if (param != 0) { break; } } } IRsa rsa = this.core; this.forEncryption = forEncryption; this.key = num; this.blindingFactor = num; } // Token: 0x0600BC39 RID: 48185 RVA: 0x00298F7C File Offset: 0x0029717C [Token(Token = "0x600BC39")] [Address(RVA = "0x27365E0", Offset = "0x27355E0", VA = "0x1827365E0", Slot = "11")] public virtual int GetInputBlockSize() { IRsa rsa = this.core; throw new NullReferenceException(); } // Token: 0x0600BC3A RID: 48186 RVA: 0x00298F98 File Offset: 0x00297198 [Token(Token = "0x600BC3A")] [Address(RVA = "0x2736630", Offset = "0x2735630", VA = "0x182736630", Slot = "12")] public virtual int GetOutputBlockSize() { IRsa rsa = this.core; throw new NullReferenceException(); } // Token: 0x0600BC3B RID: 48187 RVA: 0x00298FB4 File Offset: 0x002971B4 [Token(Token = "0x600BC3B")] [Address(RVA = "0x2736870", Offset = "0x2735870", VA = "0x182736870", Slot = "13")] public virtual byte[] ProcessBlock(byte[] inBuf, int inOff, int inLen) { IRsa rsa = this.core; RsaKeyParameters rsaKeyParameters = this.key; if (!this.forEncryption) { BigInteger bigInteger = this.blindingFactor; BigInteger modulus = rsaKeyParameters.modulus; BigInteger bigInteger2 = bigInteger.ModInverse(modulus); } BigInteger bigInteger3 = this.blindingFactor; BigInteger modulus2 = rsaKeyParameters.modulus; BigInteger exponent = rsaKeyParameters.exponent; BigInteger bigInteger4 = bigInteger3.ModPow(exponent, modulus2); BigInteger modulus3 = this.key.modulus; BigInteger bigInteger6; BigInteger bigInteger5 = bigInteger6.Mod(modulus3); IRsa rsa2 = this.core; throw new NullReferenceException(); } // Token: 0x0600BC3C RID: 48188 RVA: 0x0029903C File Offset: 0x0029723C [Token(Token = "0x600BC3C")] [Address(RVA = "0x2736560", Offset = "0x2735560", VA = "0x182736560")] private BigInteger BlindMessage(BigInteger msg) { RsaKeyParameters rsaKeyParameters = this.key; BigInteger bigInteger = this.blindingFactor; BigInteger modulus = rsaKeyParameters.modulus; BigInteger exponent = rsaKeyParameters.exponent; BigInteger bigInteger2 = bigInteger.ModPow(exponent, modulus); BigInteger bigInteger3 = msg.Multiply(bigInteger2); BigInteger modulus2 = this.key.modulus; return bigInteger3.Mod(modulus2); } // Token: 0x0600BC3D RID: 48189 RVA: 0x00299098 File Offset: 0x00297298 [Token(Token = "0x600BC3D")] [Address(RVA = "0x27369B0", Offset = "0x27359B0", VA = "0x1827369B0")] private BigInteger UnblindMessage(BigInteger blindedMsg) { RsaKeyParameters rsaKeyParameters = this.key; BigInteger bigInteger = this.blindingFactor; BigInteger modulus = rsaKeyParameters.modulus; BigInteger bigInteger2 = bigInteger.ModInverse(modulus); return blindedMsg.Multiply(bigInteger2).Mod(modulus); } // Token: 0x040076A2 RID: 30370 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40076A2")] private readonly IRsa core; // Token: 0x040076A3 RID: 30371 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40076A3")] private RsaKeyParameters key; // Token: 0x040076A4 RID: 30372 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40076A4")] private BigInteger blindingFactor; // Token: 0x040076A5 RID: 30373 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40076A5")] private bool forEncryption; } }