Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Crypto/Engines/SeedEngine.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

312 lines
14 KiB
C#

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(<PrivateImplementationDetails>.D9642D3FF9879EC5C4BB28AE7001CEE3D43956AB).FieldHandle);
SeedEngine.SS0 = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.8C7FEE53346CDB1B119FCAD8D605F476400A03CE).FieldHandle);
SeedEngine.SS1 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EEDBCB52C67688DE5F5FD9209E8A25BC786A2430).FieldHandle);
SeedEngine.SS2 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.F8AB5CA414AD9084F3E8B8D887217E6DFC32C62C).FieldHandle);
SeedEngine.SS3 = array4;
uint[] array5 = new uint[16];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.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;
}
}