using System; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x02001C9E RID: 7326 [Token(Token = "0x2001C9E")] public class RC532Engine : IBlockCipher { // Token: 0x0600B829 RID: 47145 RVA: 0x0028E88C File Offset: 0x0028CA8C [Token(Token = "0x600B829")] [Address(RVA = "0x1DF2990", Offset = "0x1DF1790", VA = "0x181DF2990")] public RC532Engine() { this.Reset(); this._noRounds = (int)((ulong)12L); } // Token: 0x17001CDF RID: 7391 // (get) Token: 0x0600B82A RID: 47146 RVA: 0x0028E8AC File Offset: 0x0028CAAC [Token(Token = "0x17001CDF")] public virtual string AlgorithmName { [Token(Token = "0x600B82A")] [Address(RVA = "0x1DF29B0", Offset = "0x1DF17B0", VA = "0x181DF29B0", Slot = "10")] get { return "RC5-32"; } } // Token: 0x17001CE0 RID: 7392 // (get) Token: 0x0600B82B RID: 47147 RVA: 0x0028E8C0 File Offset: 0x0028CAC0 [Token(Token = "0x17001CE0")] public virtual bool IsPartialBlockOkay { [Token(Token = "0x600B82B")] [Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")] get { } } // Token: 0x0600B82C RID: 47148 RVA: 0x0028E8D0 File Offset: 0x0028CAD0 [Token(Token = "0x600B82C")] [Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "12")] public virtual int GetBlockSize() { return 8; } // Token: 0x0600B82D RID: 47149 RVA: 0x0028E8E0 File Offset: 0x0028CAE0 [Token(Token = "0x600B82D")] [Address(RVA = "0x1DF2370", Offset = "0x1DF1170", VA = "0x181DF2370", Slot = "13")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (0600B82D) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.RC532Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_4A: stloc:ArgumentException(var_8_5B, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to RC532 init - "), ldloc:string(var_7)))) } 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: 0x0600B82E RID: 47150 RVA: 0x0028E94C File Offset: 0x0028CB4C [Token(Token = "0x600B82E")] [Address(RVA = "0x1DF25A0", Offset = "0x1DF13A0", VA = "0x181DF25A0", Slot = "14")] public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff) { if (this.forEncryption) { int num; return num; } int num2; return num2; } // Token: 0x0600B82F RID: 47151 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600B82F")] [Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "15")] public virtual void Reset() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600B830 RID: 47152 RVA: 0x0028E968 File Offset: 0x0028CB68 [Token(Token = "0x600B830")] [Address(RVA = "0x1DF2610", Offset = "0x1DF1410", VA = "0x181DF2610")] private void SetKey(byte[] key) { int num = key.Length; num += 3; int[] array = new int[key]; int num2 = 0; int length = key.Length; if (num2 != length) { num2 += key; num2 -= key; num2++; } int[] array2 = new int[this._noRounds]; this._S = array2; int p = RC532Engine.P32; array2[0] = p; int[] s = this._S; uint num3; int[] s2; if (num3 < (uint)s.Length) { int length2 = s.Length; uint num4 = num3 - 1U; int num5 = s[(int)num4]; int length3 = s.Length; num3 += (uint)1; int num6 = RC532Engine.Q32; num6 += num5; s[0] = num6; s2 = this._S; } int length4 = s2.Length; if (array.Length > length4) { } if (num3 > (uint)0) { s2[0] = 0; int num7 = array[num2]; num7 += 0; num7 += num2; array[0] = num7; int[] s3 = this._S; num2++; } } // Token: 0x0600B831 RID: 47153 RVA: 0x0028EA78 File Offset: 0x0028CC78 [Token(Token = "0x600B831")] [Address(RVA = "0x1DF2000", Offset = "0x1DF0E00", VA = "0x181DF2000")] private int EncryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff) { int num = this.BytesToWord(input, inOff); int[] s = this._S; int length = s.Length; int num2 = s[0]; num2 += num; int length2 = input.Length; byte b = input[input]; num = inOff + 7; int noRounds = this._noRounds; uint num4; uint num3 = num4 + 1U; byte b2; b = b2; int num5 = s[(int)num3]; num5 += (int)b; uint num6 = num3 + 1U; num4 += (uint)1; num3 += (uint)2; while (num4 <= (uint)noRounds) { } throw new NullReferenceException(); } // Token: 0x0600B832 RID: 47154 RVA: 0x0028EB04 File Offset: 0x0028CD04 [Token(Token = "0x600B832")] [Address(RVA = "0x1DF1CA0", Offset = "0x1DF0AA0", VA = "0x181DF1CA0")] private int DecryptBlock(byte[] input, int inOff, byte[] outBytes, int outOff) { int num = this.BytesToWord(input, inOff); int length = input.Length; num = inOff + 7; int i = this._noRounds; int length2 = this._S.Length; byte b2; byte b = b2 + 1; while (i >= 1) { } int[] s = this._S; byte b3; this._S[0] = (int)b3; throw new NullReferenceException(); } // Token: 0x0600B833 RID: 47155 RVA: 0x0028EB64 File Offset: 0x0028CD64 [Token(Token = "0x600B833")] [Address(RVA = "0x1DF25D0", Offset = "0x1DF13D0", VA = "0x181DF25D0")] private int RotateLeft(int x, int y) { return x; } // Token: 0x0600B834 RID: 47156 RVA: 0x0028EB74 File Offset: 0x0028CD74 [Token(Token = "0x600B834")] [Address(RVA = "0x1DF25F0", Offset = "0x1DF13F0", VA = "0x181DF25F0")] private int RotateRight(int x, int y) { return x; } // Token: 0x0600B835 RID: 47157 RVA: 0x0028EB84 File Offset: 0x0028CD84 [Token(Token = "0x600B835")] [Address(RVA = "0x1A3E3B0", Offset = "0x1A3D1B0", VA = "0x181A3E3B0")] private int BytesToWord(byte[] src, int srcOff) { int length = src.Length; int num = srcOff + 1; throw new NullReferenceException(); } // Token: 0x0600B836 RID: 47158 RVA: 0x0028EBA4 File Offset: 0x0028CDA4 [Token(Token = "0x600B836")] [Address(RVA = "0x1A3E310", Offset = "0x1A3D110", VA = "0x181A3E310")] private void WordToBytes(int word, byte[] dst, int dstOff) { int num = dstOff + 1; } // Token: 0x040074CA RID: 29898 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40074CA")] private int _noRounds; // Token: 0x040074CB RID: 29899 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40074CB")] private int[] _S; // Token: 0x040074CC RID: 29900 [Token(Token = "0x40074CC")] private static readonly int P32; // Token: 0x040074CD RID: 29901 [Token(Token = "0x40074CD")] private static readonly int Q32; // Token: 0x040074CE RID: 29902 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40074CE")] private bool forEncryption; } }