using System; using System.Runtime.CompilerServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x02001D88 RID: 7560 [Token(Token = "0x2001D88")] public class SeedEngine : IBlockCipher { // Token: 0x0600BC68 RID: 48232 RVA: 0x0029A1C8 File Offset: 0x002983C8 [Token(Token = "0x600BC68")] [Address(RVA = "0x273B5B0", Offset = "0x273A5B0", VA = "0x18273B5B0", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { do { this.forEncryption = forEncryption; } while (parameters == 0 || parameters == 0); byte[] array2; int[] array = this.createWorkingKey(array2); this.wKey = array; } // Token: 0x17001D89 RID: 7561 // (get) Token: 0x0600BC69 RID: 48233 RVA: 0x0029A200 File Offset: 0x00298400 [Token(Token = "0x17001D89")] public virtual string AlgorithmName { [Token(Token = "0x600BC69")] [Address(RVA = "0x273BE50", Offset = "0x273AE50", VA = "0x18273BE50", Slot = "11")] get { return "SEED"; } } // Token: 0x17001D8A RID: 7562 // (get) Token: 0x0600BC6A RID: 48234 RVA: 0x0029A214 File Offset: 0x00298414 [Token(Token = "0x17001D8A")] public virtual bool IsPartialBlockOkay { [Token(Token = "0x600BC6A")] [Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "12")] get { } } // Token: 0x0600BC6B RID: 48235 RVA: 0x0029A224 File Offset: 0x00298424 [Token(Token = "0x600BC6B")] [Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "13")] public virtual int GetBlockSize() { return 16; } // Token: 0x0600BC6C RID: 48236 RVA: 0x0029A234 File Offset: 0x00298434 [Token(Token = "0x600BC6C")] [Address(RVA = "0x273B6B0", Offset = "0x273A6B0", VA = "0x18273B6B0", Slot = "14")] public virtual int ProcessBlock(byte[] inBuf, int inOff, byte[] outBuf, int outOff) { /* An exception occurred when decompiling this method (0600BC6C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SeedEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_B1: stloc:InvalidOperationException(var_18_BB, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("SEED engine not initialised"))) } 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: 0x0600BC6D RID: 48237 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600BC6D")] [Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "15")] public virtual void Reset() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600BC6E RID: 48238 RVA: 0x0029A300 File Offset: 0x00298500 [Token(Token = "0x600BC6E")] [Address(RVA = "0x273BB80", Offset = "0x273AB80", VA = "0x18273BB80")] private int[] createWorkingKey(byte[] inKey) { int[] array = new int[32]; int i = 0; int length = inKey.Length; i++; byte b; i += (int)b; while (i <= 7) { } i += 8; i++; byte b2 = (byte)((int)b2 + i); while (i <= 7) { } uint[] kc = SeedEngine.KC; b2 = (byte)((int)b2 + i); int num = this.G((int)b2); array[0] = num; uint[] kc2 = SeedEngine.KC; i++; int num2; array[0] = num2; if (i != 1) { } i++; i += 2; return array; } // Token: 0x0600BC6F RID: 48239 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600BC6F")] [Address(RVA = "0x5028A0", Offset = "0x5018A0", VA = "0x1805028A0")] private int extractW1(long lVal) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600BC70 RID: 48240 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600BC70")] [Address(RVA = "0x273BE40", Offset = "0x273AE40", VA = "0x18273BE40")] private int extractW0(long lVal) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600BC71 RID: 48241 RVA: 0x0029A384 File Offset: 0x00298584 [Token(Token = "0x600BC71")] [Address(RVA = "0x273BF90", Offset = "0x273AF90", VA = "0x18273BF90")] private long rotateLeft8(long x) { return x; } // Token: 0x0600BC72 RID: 48242 RVA: 0x0029A394 File Offset: 0x00298594 [Token(Token = "0x600BC72")] [Address(RVA = "0x273BFA0", Offset = "0x273AFA0", VA = "0x18273BFA0")] private long rotateRight8(long x) { return x; } // Token: 0x0600BC73 RID: 48243 RVA: 0x0029A3A4 File Offset: 0x002985A4 [Token(Token = "0x600BC73")] [Address(RVA = "0x273BB20", Offset = "0x273AB20", VA = "0x18273BB20")] private long bytesToLong(byte[] src, int srcOff) { int num = 0; byte b; num += (int)b; while (srcOff <= 7) { } throw new NullReferenceException(); } // Token: 0x0600BC74 RID: 48244 RVA: 0x0029A3C0 File Offset: 0x002985C0 [Token(Token = "0x600BC74")] [Address(RVA = "0x273BE80", Offset = "0x273AE80", VA = "0x18273BE80")] private void longToBytes(byte[] dest, int destOff, long value) { } // Token: 0x0600BC75 RID: 48245 RVA: 0x0029A3D4 File Offset: 0x002985D4 [Token(Token = "0x600BC75")] [Address(RVA = "0x273B490", Offset = "0x273A490", VA = "0x18273B490")] private int G(int x) { uint[] ss = SeedEngine.SS0; uint[] ss2 = SeedEngine.SS1; uint[] ss3 = SeedEngine.SS2; uint num = SeedEngine.SS3[x]; throw new NullReferenceException(); } // Token: 0x0600BC76 RID: 48246 RVA: 0x0029A404 File Offset: 0x00298604 [Token(Token = "0x600BC76")] [Address(RVA = "0x273B3C0", Offset = "0x273A3C0", VA = "0x18273B3C0")] private long F(int ki0, int ki1, long r) { /* An exception occurred when decompiling this method (0600BC76) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.SeedEngine::F(System.Int32,System.Int32,System.Int64) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:int32(var_0_07, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r))) stloc:int32(var_1_0F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r))) stloc:int32(var_2_17, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r))) stloc:int32(var_1_1F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r))) stloc:int32(var_3_27, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r))) stloc:int32(var_4_2F, call:int32(SeedEngine::G, ldloc:SeedEngine(this), ldloc:int64[exp:int32](r))) stloc:int32(var_4_35, add:int32(ldloc:int32(var_4_2F), ldloc:int32(var_1_1F))) } 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: 0x0600BC77 RID: 48247 RVA: 0x0029A448 File Offset: 0x00298648 [Token(Token = "0x600BC77")] [Address(RVA = "0x273BEE0", Offset = "0x273AEE0", VA = "0x18273BEE0")] private int phaseCalc1(int r0, int ki0, int r1, int ki1) { int num = this.G(r0); return this.G(r0); } // Token: 0x0600BC78 RID: 48248 RVA: 0x0029A464 File Offset: 0x00298664 [Token(Token = "0x600BC78")] [Address(RVA = "0x273BF20", Offset = "0x273AF20", VA = "0x18273BF20")] private int phaseCalc2(int r0, int ki0, int r1, int ki1) { int num = this.G(r0); int num2 = this.G(r0); int num3 = this.G(r0); return this.G(r0); } // Token: 0x0600BC79 RID: 48249 RVA: 0x0029A490 File Offset: 0x00298690 [Token(Token = "0x600BC79")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] public SeedEngine() { this.Reset(); } // Token: 0x0600BC7A RID: 48250 RVA: 0x0029A4A4 File Offset: 0x002986A4 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600BC7A")] [Address(RVA = "0x273B9E0", Offset = "0x273A9E0", VA = "0x18273B9E0")] static SeedEngine() { uint[] array = new uint[256]; RuntimeHelpers.InitializeArray(array, fieldof(.D9642D3FF9879EC5C4BB28AE7001CEE3D43956AB).FieldHandle); SeedEngine.SS0 = array; uint[] array2 = new uint[256]; RuntimeHelpers.InitializeArray(array2, fieldof(.8C7FEE53346CDB1B119FCAD8D605F476400A03CE).FieldHandle); SeedEngine.SS1 = array2; uint[] array3 = new uint[256]; RuntimeHelpers.InitializeArray(array3, fieldof(.EEDBCB52C67688DE5F5FD9209E8A25BC786A2430).FieldHandle); SeedEngine.SS2 = array3; uint[] array4 = new uint[256]; RuntimeHelpers.InitializeArray(array4, fieldof(.F8AB5CA414AD9084F3E8B8D887217E6DFC32C62C).FieldHandle); SeedEngine.SS3 = array4; uint[] array5 = new uint[16]; RuntimeHelpers.InitializeArray(array5, fieldof(.641D0D9E9CE6DDAC3F12536417A6A64C8DDD4776).FieldHandle); SeedEngine.KC = array5; } // Token: 0x040076BF RID: 30399 [Token(Token = "0x40076BF")] private const int BlockSize = 16; // Token: 0x040076C0 RID: 30400 [Token(Token = "0x40076C0")] private static readonly uint[] SS0; // Token: 0x040076C1 RID: 30401 [Token(Token = "0x40076C1")] private static readonly uint[] SS1; // Token: 0x040076C2 RID: 30402 [Token(Token = "0x40076C2")] private static readonly uint[] SS2; // Token: 0x040076C3 RID: 30403 [Token(Token = "0x40076C3")] private static readonly uint[] SS3; // Token: 0x040076C4 RID: 30404 [Token(Token = "0x40076C4")] private static readonly uint[] KC; // Token: 0x040076C5 RID: 30405 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40076C5")] private int[] wKey; // Token: 0x040076C6 RID: 30406 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40076C6")] private bool forEncryption; } }