This commit is contained in:
niko
2026-04-10 22:50:51 +02:00
parent 6d1607d5a2
commit f18d448581
17033 changed files with 2863270 additions and 0 deletions
@@ -0,0 +1,125 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D05 RID: 7429
[Token(Token = "0x2001D05")]
public class DHAgreement
{
// Token: 0x0600BC2F RID: 48175 RVA: 0x002AC12C File Offset: 0x002AA32C
[Token(Token = "0x600BC2F")]
[Address(RVA = "0x2005C20", Offset = "0x2004A20", VA = "0x182005C20")]
public void Init(ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC2F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHAgreement::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_57:
stloc:ArgumentException(var_8_61, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("DHEngine expects DHPrivateKeyParameters")))
}
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: 0x0600BC30 RID: 48176 RVA: 0x002AC19C File Offset: 0x002AA39C
[Token(Token = "0x600BC30")]
[Address(RVA = "0x2005A10", Offset = "0x2004810", VA = "0x182005A10")]
public BigInteger CalculateMessage()
{
DHKeyPairGenerator dhkeyPairGenerator;
for (;;)
{
dhkeyPairGenerator = new DHKeyPairGenerator();
SecureRandom secureRandom = this.random;
DHParameters dhparameters = this.dhParams;
DHKeyGenerationParameters dhkeyGenerationParameters = new DHKeyGenerationParameters(secureRandom, dhparameters);
AsymmetricCipherKeyPair asymmetricCipherKeyPair = dhkeyPairGenerator.GenerateKeyPair();
if (dhkeyPairGenerator != 0 && dhkeyPairGenerator != 0)
{
this.privateValue = dhkeyPairGenerator;
if (dhkeyPairGenerator != 0 && dhkeyPairGenerator != 0)
{
break;
}
}
}
AsymmetricCipherKeyPair asymmetricCipherKeyPair2 = ((IAsymmetricCipherKeyPairGenerator)dhkeyPairGenerator).GenerateKeyPair();
throw new NullReferenceException();
}
// Token: 0x0600BC31 RID: 48177 RVA: 0x002AC200 File Offset: 0x002AA400
[Token(Token = "0x600BC31")]
[Address(RVA = "0x2005700", Offset = "0x2004500", VA = "0x182005700")]
public BigInteger CalculateAgreement(DHPublicKeyParameters pub, BigInteger message)
{
/*
An exception occurred when decompiling this method (0600BC31)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.DHPublicKeyParameters,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_77:
stloc:ArgumentException(var_11_81, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Diffie-Hellman public key is weak")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BC32 RID: 48178 RVA: 0x002AC290 File Offset: 0x002AA490
[Token(Token = "0x600BC32")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public DHAgreement()
{
}
// Token: 0x0400778C RID: 30604
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400778C")]
private DHPrivateKeyParameters key;
// Token: 0x0400778D RID: 30605
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400778D")]
private DHParameters dhParams;
// Token: 0x0400778E RID: 30606
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400778E")]
private BigInteger privateValue;
// Token: 0x0400778F RID: 30607
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400778F")]
private SecureRandom random;
}
}
@@ -0,0 +1,102 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D06 RID: 7430
[Token(Token = "0x2001D06")]
public class DHBasicAgreement : IBasicAgreement
{
// Token: 0x0600BC33 RID: 48179 RVA: 0x002AC2A4 File Offset: 0x002AA4A4
[Token(Token = "0x600BC33")]
[Address(RVA = "0x20061B0", Offset = "0x2004FB0", VA = "0x1820061B0", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600BC33)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHBasicAgreement::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_37:
stloc:ArgumentException(var_5_41, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("DHEngine expects DHPrivateKeyParameters")))
}
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: 0x0600BC34 RID: 48180 RVA: 0x002AC2F4 File Offset: 0x002AA4F4
[Token(Token = "0x600BC34")]
[Address(RVA = "0x2006170", Offset = "0x2004F70", VA = "0x182006170", Slot = "8")]
public virtual int GetFieldSize()
{
BigInteger p = this.key.parameters.p;
int num = 0;
int num2 = p.BitLength;
num2 += 7;
return num2 + num;
}
// Token: 0x0600BC35 RID: 48181 RVA: 0x002AC32C File Offset: 0x002AA52C
[Token(Token = "0x600BC35")]
[Address(RVA = "0x2005E90", Offset = "0x2004C90", VA = "0x182005E90", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600BC35)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.DHBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_58:
stloc:ArgumentException(var_10_62, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Diffie-Hellman public key is weak")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BC36 RID: 48182 RVA: 0x002AC39C File Offset: 0x002AA59C
[Token(Token = "0x600BC36")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public DHBasicAgreement()
{
}
// Token: 0x04007790 RID: 30608
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007790")]
private DHPrivateKeyParameters key;
// Token: 0x04007791 RID: 30609
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007791")]
private DHParameters dhParams;
}
}
@@ -0,0 +1,345 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D07 RID: 7431
[Token(Token = "0x2001D07")]
public class DHStandardGroups
{
// Token: 0x0600BC37 RID: 48183 RVA: 0x002AC3B0 File Offset: 0x002AA5B0
[Token(Token = "0x600BC37")]
[Address(RVA = "0x2006390", Offset = "0x2005190", VA = "0x182006390")]
private static BigInteger FromHex(string hex)
{
byte[] array = Hex.Decode(hex);
return new BigInteger(1, array);
}
// Token: 0x0600BC38 RID: 48184 RVA: 0x002AC3CC File Offset: 0x002AA5CC
[Token(Token = "0x600BC38")]
[Address(RVA = "0x20064E0", Offset = "0x20052E0", VA = "0x1820064E0")]
private static DHParameters FromPG(string hexP, string hexG)
{
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
BigInteger bigInteger2 = DHStandardGroups.FromHex(hexG);
return new DHParameters(bigInteger, bigInteger2);
}
// Token: 0x0600BC39 RID: 48185 RVA: 0x002AC3F0 File Offset: 0x002AA5F0
[Token(Token = "0x600BC39")]
[Address(RVA = "0x2006420", Offset = "0x2005220", VA = "0x182006420")]
private static DHParameters FromPGQ(string hexP, string hexG, string hexQ)
{
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
BigInteger bigInteger2 = DHStandardGroups.FromHex(hexG);
BigInteger bigInteger3 = DHStandardGroups.FromHex(hexQ);
return new DHParameters(bigInteger, bigInteger2, bigInteger3);
}
// Token: 0x0600BC3A RID: 48186 RVA: 0x002AC41C File Offset: 0x002AA61C
[Token(Token = "0x600BC3A")]
[Address(RVA = "0x2006580", Offset = "0x2005380", VA = "0x182006580")]
private static DHParameters Rfc7919Parameters(string hexP, int l)
{
BigInteger bigInteger = DHStandardGroups.FromHex(hexP);
BigInteger two = BigInteger.Two;
BigInteger bigInteger2 = bigInteger.ShiftRight(1);
return new DHParameters(bigInteger, two, bigInteger2, l);
}
// Token: 0x0600BC3B RID: 48187 RVA: 0x002AC450 File Offset: 0x002AA650
[Token(Token = "0x600BC3B")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public DHStandardGroups()
{
}
// Token: 0x0600BC3C RID: 48188 RVA: 0x002AC464 File Offset: 0x002AA664
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BC3C")]
[Address(RVA = "0x2006680", Offset = "0x2005480", VA = "0x182006680")]
static DHStandardGroups()
{
string text = DHStandardGroups.rfc2409_768_p;
string text2 = DHStandardGroups.rfc2409_768_g;
DHStandardGroups.rfc2409_768 = DHStandardGroups.FromPG(text, text2);
DHStandardGroups.rfc2409_1024_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc2409_1024_g = "02";
string text3 = DHStandardGroups.rfc2409_1024_p;
string text4 = DHStandardGroups.rfc2409_1024_g;
DHStandardGroups.rfc2409_1024 = DHStandardGroups.FromPG(text3, text4);
DHStandardGroups.rfc3526_1536_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_1536_g = "02";
string text5 = DHStandardGroups.rfc3526_1536_p;
string text6 = DHStandardGroups.rfc3526_1536_g;
DHStandardGroups.rfc3526_1536 = DHStandardGroups.FromPG(text5, text6);
DHStandardGroups.rfc3526_2048_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_2048_g = "02";
string text7 = DHStandardGroups.rfc3526_2048_p;
string text8 = DHStandardGroups.rfc3526_2048_g;
DHStandardGroups.rfc3526_2048 = DHStandardGroups.FromPG(text7, text8);
DHStandardGroups.rfc3526_3072_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_3072_g = "02";
string text9 = DHStandardGroups.rfc3526_3072_p;
string text10 = DHStandardGroups.rfc3526_3072_g;
DHStandardGroups.rfc3526_3072 = DHStandardGroups.FromPG(text9, text10);
DHStandardGroups.rfc3526_4096_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_4096_g = "02";
string text11 = DHStandardGroups.rfc3526_4096_p;
string text12 = DHStandardGroups.rfc3526_4096_g;
DHStandardGroups.rfc3526_4096 = DHStandardGroups.FromPG(text11, text12);
DHStandardGroups.rfc3526_6144_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_6144_g = "02";
string text13 = DHStandardGroups.rfc3526_6144_p;
string text14 = DHStandardGroups.rfc3526_6144_g;
DHStandardGroups.rfc3526_6144 = DHStandardGroups.FromPG(text13, text14);
DHStandardGroups.rfc3526_8192_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc3526_8192_g = "02";
string text15 = DHStandardGroups.rfc3526_8192_p;
string text16 = DHStandardGroups.rfc3526_8192_g;
DHStandardGroups.rfc3526_8192 = DHStandardGroups.FromPG(text15, text16);
DHStandardGroups.rfc4306_768 = DHStandardGroups.rfc2409_768;
DHStandardGroups.rfc4306_1024 = DHStandardGroups.rfc2409_1024;
DHStandardGroups.rfc5114_1024_160_p = "B10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C69A6A9DCA52D23B616073E28675A23D189838EF1E2EE652C013ECB4AEA906112324975C3CD49B83BFACCBDD7D90C4BD7098488E9C219A73724EFFD6FAE5644738FAA31A4FF55BCCC0A151AF5F0DC8B4BD45BF37DF365C1A65E68CFDA76D4DA708DF1FB2BC2E4A4371";
DHStandardGroups.rfc5114_1024_160_g = "A4D1CBD5C3FD34126765A442EFB99905F8104DD258AC507FD6406CFF14266D31266FEA1E5C41564B777E690F5504F213160217B4B01B886A5E91547F9E2749F4D7FBD7D3B9A92EE1909D0D2263F80A76A6A24C087A091F531DBF0A0169B6A28AD662A4D18E73AFA32D779D5918D08BC8858F4DCEF97C2A24855E6EEB22B3B2E5";
DHStandardGroups.rfc5114_1024_160_q = "F518AA8781A8DF278ABA4E7D64B7CB9D49462353";
string text17 = DHStandardGroups.rfc5114_1024_160_p;
string text18 = DHStandardGroups.rfc5114_1024_160_g;
string text19 = DHStandardGroups.rfc5114_1024_160_q;
DHStandardGroups.rfc5114_1024_160 = DHStandardGroups.FromPGQ(text17, text18, text19);
DHStandardGroups.rfc5114_2048_224_p = "AD107E1E9123A9D0D660FAA79559C51FA20D64E5683B9FD1B54B1597B61D0A75E6FA141DF95A56DBAF9A3C407BA1DF15EB3D688A309C180E1DE6B85A1274A0A66D3F8152AD6AC2129037C9EDEFDA4DF8D91E8FEF55B7394B7AD5B7D0B6C12207C9F98D11ED34DBF6C6BA0B2C8BBC27BE6A00E0A0B9C49708B3BF8A317091883681286130BC8985DB1602E714415D9330278273C7DE31EFDC7310F7121FD5A07415987D9ADC0A486DCDF93ACC44328387315D75E198C641A480CD86A1B9E587E8BE60E69CC928B2B9C52172E413042E9B23F10B0E16E79763C9B53DCF4BA80A29E3FB73C16B8E75B97EF363E2FFA31F71CF9DE5384E71B81C0AC4DFFE0C10E64F";
DHStandardGroups.rfc5114_2048_224_g = "AC4032EF4F2D9AE39DF30B5C8FFDAC506CDEBE7B89998CAF74866A08CFE4FFE3A6824A4E10B9A6F0DD921F01A70C4AFAAB739D7700C29F52C57DB17C620A8652BE5E9001A8D66AD7C17669101999024AF4D027275AC1348BB8A762D0521BC98AE247150422EA1ED409939D54DA7460CDB5F6C6B250717CBEF180EB34118E98D119529A45D6F834566E3025E316A330EFBB77A86F0C1AB15B051AE3D428C8F8ACB70A8137150B8EEB10E183EDD19963DDD9E263E4770589EF6AA21E7F5F2FF381B539CCE3409D13CD566AFBB48D6C019181E1BCFE94B30269EDFE72FE9B6AA4BD7B5A0F1C71CFFF4C19C418E1F6EC017981BC087F2A7065B384B890D3191F2BFA";
DHStandardGroups.rfc5114_2048_224_q = "801C0D34C58D93FE997177101F80535A4738CEBCBF389A99B36371EB";
string text20 = DHStandardGroups.rfc5114_2048_224_p;
string text21 = DHStandardGroups.rfc5114_2048_224_g;
string text22 = DHStandardGroups.rfc5114_2048_224_q;
DHStandardGroups.rfc5114_2048_224 = DHStandardGroups.FromPGQ(text20, text21, text22);
DHStandardGroups.rfc5114_2048_256_p = "87A8E61DB4B6663CFFBBD19C651959998CEEF608660DD0F25D2CEED4435E3B00E00DF8F1D61957D4FAF7DF4561B2AA3016C3D91134096FAA3BF4296D830E9A7C209E0C6497517ABD5A8A9D306BCF67ED91F9E6725B4758C022E0B1EF4275BF7B6C5BFC11D45F9088B941F54EB1E59BB8BC39A0BF12307F5C4FDB70C581B23F76B63ACAE1CAA6B7902D52526735488A0EF13C6D9A51BFA4AB3AD8347796524D8EF6A167B5A41825D967E144E5140564251CCACB83E6B486F6B3CA3F7971506026C0B857F689962856DED4010ABD0BE621C3A3960A54E710C375F26375D7014103A4B54330C198AF126116D2276E11715F693877FAD7EF09CADB094AE91E1A1597";
DHStandardGroups.rfc5114_2048_256_g = "3FB32C9B73134D0B2E77506660EDBD484CA7B18F21EF205407F4793A1A0BA12510DBC15077BE463FFF4FED4AAC0BB555BE3A6C1B0C6B47B1BC3773BF7E8C6F62901228F8C28CBB18A55AE31341000A650196F931C77A57F2DDF463E5E9EC144B777DE62AAAB8A8628AC376D282D6ED3864E67982428EBC831D14348F6F2F9193B5045AF2767164E1DFC967C1FB3F2E55A4BD1BFFE83B9C80D052B985D182EA0ADB2A3B7313D3FE14C8484B1E052588B9B7D2BBD2DF016199ECD06E1557CD0915B3353BBB64E0EC377FD028370DF92B52C7891428CDC67EB6184B523D1DB246C32F63078490F00EF8D647D148D47954515E2327CFEF98C582664B4C0F6CC41659";
DHStandardGroups.rfc5114_2048_256_q = "8CF83642A709A097B447997640129DA299B1A47D1EB3750BA308B0FE64F5FBD3";
string text23 = DHStandardGroups.rfc5114_2048_256_p;
string text24 = DHStandardGroups.rfc5114_2048_256_g;
string text25 = DHStandardGroups.rfc5114_2048_256_q;
DHStandardGroups.rfc5114_2048_256 = DHStandardGroups.FromPGQ(text23, text24, text25);
DHStandardGroups.rfc5996_768 = DHStandardGroups.rfc4306_768;
DHStandardGroups.rfc5996_1024 = DHStandardGroups.rfc4306_1024;
DHStandardGroups.rfc7919_ffdhe2048_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B423861285C97FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe2048 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe2048_p, 225);
DHStandardGroups.rfc7919_ffdhe3072_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B66C62E37FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe3072 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe3072_p, 275);
DHStandardGroups.rfc7919_ffdhe4096_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB7930E9E4E58857B6AC7D5F42D69F6D187763CF1D5503400487F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832A907600A918130C46DC778F971AD0038092999A333CB8B7A1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E655F6AFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe4096 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe4096_p, 325);
DHStandardGroups.rfc7919_ffdhe6144_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB7930E9E4E58857B6AC7D5F42D69F6D187763CF1D5503400487F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832A907600A918130C46DC778F971AD0038092999A333CB8B7A1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E0DD9020BFD64B645036C7A4E677D2C38532A3A23BA4442CAF53EA63BB454329B7624C8917BDD64B1C0FD4CB38E8C334C701C3ACDAD0657FCCFEC719B1F5C3E4E46041F388147FB4CFDB477A52471F7A9A96910B855322EDB6340D8A00EF092350511E30ABEC1FFF9E3A26E7FB29F8C183023C3587E38DA0077D9B4763E4E4B94B2BBC194C6651E77CAF992EEAAC0232A281BF6B3A739C1226116820AE8DB5847A67CBEF9C9091B462D538CD72B03746AE77F5E62292C311562A846505DC82DB854338AE49F5235C95B91178CCF2DD5CACEF403EC9D1810C6272B045B3B71F9DC6B80D63FDD4A8E9ADB1E6962A69526D43161C1A41D570D7938DAD4A40E329CD0E40E65FFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe6144 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe6144_p, 375);
DHStandardGroups.rfc7919_ffdhe8192_p = "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF97D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD65612433F51F5F066ED0856365553DED1AF3B557135E7F57C935984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE73530ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FBB96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB190B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F619172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD733BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA886B4238611FCFDCDE355B3B6519035BBC34F4DEF99C023861B46FC9D6E6C9077AD91D2691F7F7EE598CB0FAC186D91CAEFE130985139270B4130C93BC437944F4FD4452E2D74DD364F2E21E71F54BFF5CAE82AB9C9DF69EE86D2BC522363A0DABC521979B0DEADA1DBF9A42D5C4484E0ABCD06BFA53DDEF3C1B20EE3FD59D7C25E41D2B669E1EF16E6F52C3164DF4FB7930E9E4E58857B6AC7D5F42D69F6D187763CF1D5503400487F55BA57E31CC7A7135C886EFB4318AED6A1E012D9E6832A907600A918130C46DC778F971AD0038092999A333CB8B7A1A1DB93D7140003C2A4ECEA9F98D0ACC0A8291CDCEC97DCF8EC9B55A7F88A46B4DB5A851F44182E1C68A007E5E0DD9020BFD64B645036C7A4E677D2C38532A3A23BA4442CAF53EA63BB454329B7624C8917BDD64B1C0FD4CB38E8C334C701C3ACDAD0657FCCFEC719B1F5C3E4E46041F388147FB4CFDB477A52471F7A9A96910B855322EDB6340D8A00EF092350511E30ABEC1FFF9E3A26E7FB29F8C183023C3587E38DA0077D9B4763E4E4B94B2BBC194C6651E77CAF992EEAAC0232A281BF6B3A739C1226116820AE8DB5847A67CBEF9C9091B462D538CD72B03746AE77F5E62292C311562A846505DC82DB854338AE49F5235C95B91178CCF2DD5CACEF403EC9D1810C6272B045B3B71F9DC6B80D63FDD4A8E9ADB1E6962A69526D43161C1A41D570D7938DAD4A40E329CCFF46AAA36AD004CF600C8381E425A31D951AE64FDB23FCEC9509D43687FEB69EDD1CC5E0B8CC3BDF64B10EF86B63142A3AB8829555B2F747C932665CB2C0F1CC01BD70229388839D2AF05E454504AC78B7582822846C0BA35C35F5C59160CC046FD8251541FC68C9C86B022BB7099876A460E7451A8A93109703FEE1C217E6C3826E52C51AA691E0E423CFC99E9E31650C1217B624816CDAD9A95F9D5B8019488D9C0A0A1FE3075A577E23183F81D4A3F2FA4571EFC8CE0BA8A4FE8B6855DFE72B0A66EDED2FBABFBE58A30FAFABE1C5D71A87E2F741EF8C1FE86FEA6BBFDE530677F0D97D11D49F7A8443D0822E506A9F4614E011E2A94838FF88CD68C8BB7C5C6424CFFFFFFFFFFFFFFFF";
DHStandardGroups.rfc7919_ffdhe8192 = DHStandardGroups.Rfc7919Parameters(DHStandardGroups.rfc7919_ffdhe8192_p, 400);
}
// Token: 0x04007792 RID: 30610
[Token(Token = "0x4007792")]
private static readonly string rfc2409_768_p = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF";
// Token: 0x04007793 RID: 30611
[Token(Token = "0x4007793")]
private static readonly string rfc2409_768_g = "02";
// Token: 0x04007794 RID: 30612
[Token(Token = "0x4007794")]
public static readonly DHParameters rfc2409_768;
// Token: 0x04007795 RID: 30613
[Token(Token = "0x4007795")]
private static readonly string rfc2409_1024_p;
// Token: 0x04007796 RID: 30614
[Token(Token = "0x4007796")]
private static readonly string rfc2409_1024_g;
// Token: 0x04007797 RID: 30615
[Token(Token = "0x4007797")]
public static readonly DHParameters rfc2409_1024;
// Token: 0x04007798 RID: 30616
[Token(Token = "0x4007798")]
private static readonly string rfc3526_1536_p;
// Token: 0x04007799 RID: 30617
[Token(Token = "0x4007799")]
private static readonly string rfc3526_1536_g;
// Token: 0x0400779A RID: 30618
[Token(Token = "0x400779A")]
public static readonly DHParameters rfc3526_1536;
// Token: 0x0400779B RID: 30619
[Token(Token = "0x400779B")]
private static readonly string rfc3526_2048_p;
// Token: 0x0400779C RID: 30620
[Token(Token = "0x400779C")]
private static readonly string rfc3526_2048_g;
// Token: 0x0400779D RID: 30621
[Token(Token = "0x400779D")]
public static readonly DHParameters rfc3526_2048;
// Token: 0x0400779E RID: 30622
[Token(Token = "0x400779E")]
private static readonly string rfc3526_3072_p;
// Token: 0x0400779F RID: 30623
[Token(Token = "0x400779F")]
private static readonly string rfc3526_3072_g;
// Token: 0x040077A0 RID: 30624
[Token(Token = "0x40077A0")]
public static readonly DHParameters rfc3526_3072;
// Token: 0x040077A1 RID: 30625
[Token(Token = "0x40077A1")]
private static readonly string rfc3526_4096_p;
// Token: 0x040077A2 RID: 30626
[Token(Token = "0x40077A2")]
private static readonly string rfc3526_4096_g;
// Token: 0x040077A3 RID: 30627
[Token(Token = "0x40077A3")]
public static readonly DHParameters rfc3526_4096;
// Token: 0x040077A4 RID: 30628
[Token(Token = "0x40077A4")]
private static readonly string rfc3526_6144_p;
// Token: 0x040077A5 RID: 30629
[Token(Token = "0x40077A5")]
private static readonly string rfc3526_6144_g;
// Token: 0x040077A6 RID: 30630
[Token(Token = "0x40077A6")]
public static readonly DHParameters rfc3526_6144;
// Token: 0x040077A7 RID: 30631
[Token(Token = "0x40077A7")]
private static readonly string rfc3526_8192_p;
// Token: 0x040077A8 RID: 30632
[Token(Token = "0x40077A8")]
private static readonly string rfc3526_8192_g;
// Token: 0x040077A9 RID: 30633
[Token(Token = "0x40077A9")]
public static readonly DHParameters rfc3526_8192;
// Token: 0x040077AA RID: 30634
[Token(Token = "0x40077AA")]
public static readonly DHParameters rfc4306_768;
// Token: 0x040077AB RID: 30635
[Token(Token = "0x40077AB")]
public static readonly DHParameters rfc4306_1024;
// Token: 0x040077AC RID: 30636
[Token(Token = "0x40077AC")]
private static readonly string rfc5114_1024_160_p;
// Token: 0x040077AD RID: 30637
[Token(Token = "0x40077AD")]
private static readonly string rfc5114_1024_160_g;
// Token: 0x040077AE RID: 30638
[Token(Token = "0x40077AE")]
private static readonly string rfc5114_1024_160_q;
// Token: 0x040077AF RID: 30639
[Token(Token = "0x40077AF")]
[Obsolete]
public static readonly DHParameters rfc5114_1024_160;
// Token: 0x040077B0 RID: 30640
[Token(Token = "0x40077B0")]
private static readonly string rfc5114_2048_224_p;
// Token: 0x040077B1 RID: 30641
[Token(Token = "0x40077B1")]
private static readonly string rfc5114_2048_224_g;
// Token: 0x040077B2 RID: 30642
[Token(Token = "0x40077B2")]
private static readonly string rfc5114_2048_224_q;
// Token: 0x040077B3 RID: 30643
[Token(Token = "0x40077B3")]
[Obsolete]
public static readonly DHParameters rfc5114_2048_224;
// Token: 0x040077B4 RID: 30644
[Token(Token = "0x40077B4")]
private static readonly string rfc5114_2048_256_p;
// Token: 0x040077B5 RID: 30645
[Token(Token = "0x40077B5")]
private static readonly string rfc5114_2048_256_g;
// Token: 0x040077B6 RID: 30646
[Token(Token = "0x40077B6")]
private static readonly string rfc5114_2048_256_q;
// Token: 0x040077B7 RID: 30647
[Token(Token = "0x40077B7")]
[Obsolete]
public static readonly DHParameters rfc5114_2048_256;
// Token: 0x040077B8 RID: 30648
[Token(Token = "0x40077B8")]
public static readonly DHParameters rfc5996_768;
// Token: 0x040077B9 RID: 30649
[Token(Token = "0x40077B9")]
public static readonly DHParameters rfc5996_1024;
// Token: 0x040077BA RID: 30650
[Token(Token = "0x40077BA")]
private static readonly string rfc7919_ffdhe2048_p;
// Token: 0x040077BB RID: 30651
[Token(Token = "0x40077BB")]
public static readonly DHParameters rfc7919_ffdhe2048;
// Token: 0x040077BC RID: 30652
[Token(Token = "0x40077BC")]
private static readonly string rfc7919_ffdhe3072_p;
// Token: 0x040077BD RID: 30653
[Token(Token = "0x40077BD")]
public static readonly DHParameters rfc7919_ffdhe3072;
// Token: 0x040077BE RID: 30654
[Token(Token = "0x40077BE")]
private static readonly string rfc7919_ffdhe4096_p;
// Token: 0x040077BF RID: 30655
[Token(Token = "0x40077BF")]
public static readonly DHParameters rfc7919_ffdhe4096;
// Token: 0x040077C0 RID: 30656
[Token(Token = "0x40077C0")]
private static readonly string rfc7919_ffdhe6144_p;
// Token: 0x040077C1 RID: 30657
[Token(Token = "0x40077C1")]
public static readonly DHParameters rfc7919_ffdhe6144;
// Token: 0x040077C2 RID: 30658
[Token(Token = "0x40077C2")]
private static readonly string rfc7919_ffdhe8192_p;
// Token: 0x040077C3 RID: 30659
[Token(Token = "0x40077C3")]
public static readonly DHParameters rfc7919_ffdhe8192;
}
}
@@ -0,0 +1,74 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D08 RID: 7432
[Token(Token = "0x2001D08")]
public class ECDHBasicAgreement : IBasicAgreement
{
// Token: 0x0600BC3D RID: 48189 RVA: 0x002AC770 File Offset: 0x002AA970
[Token(Token = "0x600BC3D")]
[Address(RVA = "0x2009130", Offset = "0x2007F30", VA = "0x182009130", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
this.privKey = num;
}
// Token: 0x0600BC3E RID: 48190 RVA: 0x002AC7A8 File Offset: 0x002AA9A8
[Token(Token = "0x600BC3E")]
[Address(RVA = "0x20090E0", Offset = "0x2007EE0", VA = "0x1820090E0", Slot = "8")]
public virtual int GetFieldSize()
{
string text = this.privKey.parameters.curve.ToString();
text += 0;
throw new NullReferenceException();
}
// Token: 0x0600BC3F RID: 48191 RVA: 0x002AC7D4 File Offset: 0x002AA9D4
[Token(Token = "0x600BC3F")]
[Address(RVA = "0x2008DF0", Offset = "0x2007BF0", VA = "0x182008DF0", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600BC3F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECDHBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_83:
stloc:InvalidOperationException(var_14_8D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Infinity is not a valid public key for ECDH")))
}
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: 0x0600BC40 RID: 48192 RVA: 0x002AC870 File Offset: 0x002AAA70
[Token(Token = "0x600BC40")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public ECDHBasicAgreement()
{
}
// Token: 0x040077C4 RID: 30660
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077C4")]
protected internal ECPrivateKeyParameters privKey;
}
}
@@ -0,0 +1,74 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D09 RID: 7433
[Token(Token = "0x2001D09")]
public class ECDHCBasicAgreement : IBasicAgreement
{
// Token: 0x0600BC41 RID: 48193 RVA: 0x002AC884 File Offset: 0x002AAA84
[Token(Token = "0x600BC41")]
[Address(RVA = "0x20094F0", Offset = "0x20082F0", VA = "0x1820094F0", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
this.privKey = num;
}
// Token: 0x0600BC42 RID: 48194 RVA: 0x002AC8BC File Offset: 0x002AAABC
[Token(Token = "0x600BC42")]
[Address(RVA = "0x20090E0", Offset = "0x2007EE0", VA = "0x1820090E0", Slot = "8")]
public virtual int GetFieldSize()
{
string text = this.privKey.parameters.curve.ToString();
text += 0;
throw new NullReferenceException();
}
// Token: 0x0600BC43 RID: 48195 RVA: 0x002AC8E8 File Offset: 0x002AAAE8
[Token(Token = "0x600BC43")]
[Address(RVA = "0x2009290", Offset = "0x2008090", VA = "0x182009290", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600BC43)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECDHCBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_77:
stloc:InvalidOperationException(var_14_81, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Infinity is not a valid public key for ECDHC")))
}
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: 0x0600BC44 RID: 48196 RVA: 0x002AC978 File Offset: 0x002AAB78
[Token(Token = "0x600BC44")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public ECDHCBasicAgreement()
{
}
// Token: 0x040077C5 RID: 30661
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077C5")]
private ECPrivateKeyParameters privKey;
}
}
@@ -0,0 +1,78 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D0A RID: 7434
[Token(Token = "0x2001D0A")]
public class ECDHWithKdfBasicAgreement : ECDHBasicAgreement
{
// Token: 0x0600BC45 RID: 48197 RVA: 0x002AC98C File Offset: 0x002AAB8C
[Token(Token = "0x600BC45")]
[Address(RVA = "0x2009840", Offset = "0x2008640", VA = "0x182009840")]
public ECDHWithKdfBasicAgreement(string algorithm, IDerivationFunction kdf)
{
/*
An exception occurred when decompiling this method (0600BC45)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECDHWithKdfBasicAgreement::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationFunction)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_28:
stloc:ArgumentNullException(var_1_32, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("kdf")))
}
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: 0x0600BC46 RID: 48198 RVA: 0x002AC9CC File Offset: 0x002AABCC
[Token(Token = "0x600BC46")]
[Address(RVA = "0x2009690", Offset = "0x2008490", VA = "0x182009690", Slot = "9")]
public override BigInteger CalculateAgreement(ICipherParameters pubKey)
{
BigInteger bigInteger = base.CalculateAgreement(pubKey);
int defaultKeySize = GeneratorUtilities.GetDefaultKeySize(this.algorithm);
DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this.algorithm);
int byteLength = X9IntegerConverter.GetByteLength(this.privKey.parameters.curve);
byte[] array = X9IntegerConverter.IntegerToBytes(bigInteger, byteLength);
DHKdfParameters dhkdfParameters = new DHKdfParameters(derObjectIdentifier, defaultKeySize, array);
IDerivationFunction derivationFunction = this.kdf;
byte[] array2 = new byte[0];
IDerivationFunction derivationFunction2 = this.kdf;
int length = array2.Length;
return new BigInteger(1, array2);
}
// Token: 0x0600BC47 RID: 48199 RVA: 0x002ACA54 File Offset: 0x002AAC54
[Token(Token = "0x600BC47")]
[Address(RVA = "0x2009650", Offset = "0x2008450", VA = "0x182009650")]
private byte[] BigIntToBytes(BigInteger r)
{
int byteLength = X9IntegerConverter.GetByteLength(this.privKey.parameters.curve);
return X9IntegerConverter.IntegerToBytes(r, byteLength);
}
// Token: 0x040077C6 RID: 30662
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077C6")]
private readonly string algorithm;
// Token: 0x040077C7 RID: 30663
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077C7")]
private readonly IDerivationFunction kdf;
}
}
@@ -0,0 +1,104 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D0B RID: 7435
[Token(Token = "0x2001D0B")]
public class ECMqvBasicAgreement : IBasicAgreement
{
// Token: 0x0600BC48 RID: 48200 RVA: 0x002ACA84 File Offset: 0x002AAC84
[Token(Token = "0x600BC48")]
[Address(RVA = "0x2009F10", Offset = "0x2008D10", VA = "0x182009F10", Slot = "7")]
public virtual void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && ((parameters != 0 && (parameters == 0 || parameters == 0)) || (parameters != 0 && parameters == 0)));
this.privParams = num;
}
// Token: 0x0600BC49 RID: 48201 RVA: 0x002ACABC File Offset: 0x002AACBC
[Token(Token = "0x600BC49")]
[Address(RVA = "0x2009EB0", Offset = "0x2008CB0", VA = "0x182009EB0", Slot = "8")]
public virtual int GetFieldSize()
{
string text = this.privParams.ToString().m_stringLength.ToString();
text += 0;
throw new NullReferenceException();
}
// Token: 0x0600BC4A RID: 48202 RVA: 0x002ACAE8 File Offset: 0x002AACE8
[Token(Token = "0x600BC4A")]
[Address(RVA = "0x2009910", Offset = "0x2008710", VA = "0x182009910", Slot = "9")]
public virtual BigInteger CalculateAgreement(ICipherParameters pubKey)
{
/*
An exception occurred when decompiling this method (0600BC4A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECMqvBasicAgreement::CalculateAgreement(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_47:
stloc:InvalidOperationException(var_9_51, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("ECMQV public key components have wrong domain parameters")))
}
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: 0x0600BC4B RID: 48203 RVA: 0x002ACB48 File Offset: 0x002AAD48
[Token(Token = "0x600BC4B")]
[Address(RVA = "0x2009BA0", Offset = "0x20089A0", VA = "0x182009BA0")]
private static ECPoint CalculateMqvAgreement(ECDomainParameters parameters, ECPrivateKeyParameters d1U, ECPrivateKeyParameters d2U, ECPublicKeyParameters Q2U, ECPublicKeyParameters Q1V, ECPublicKeyParameters Q2V)
{
BigInteger n = parameters.n;
int num = 0;
int num2 = n.BitLength;
num2++;
num2 -= num;
BigInteger bigInteger = BigInteger.One.ShiftLeft(num2);
ECCurve curve = parameters.curve;
ECPoint q = Q2U.q;
string text = ECAlgorithms.CleanPoint(curve, q).CurveCoordinateSystem.ToString();
BigInteger bigInteger3;
BigInteger bigInteger2 = bigInteger3.SetBit(num2);
BigInteger bigInteger4 = d1U.d.Multiply(bigInteger2);
BigInteger bigInteger6;
BigInteger bigInteger5 = bigInteger6.Mod(n);
ECPoint ecpoint;
string text2 = ecpoint.CurveCoordinateSystem.ToString();
BigInteger bigInteger8;
BigInteger bigInteger7 = bigInteger8.SetBit(num2);
BigInteger bigInteger9 = parameters.h.Multiply(bigInteger5).Mod(n);
BigInteger bigInteger10 = bigInteger7.Multiply(bigInteger9).Mod(n);
ECPoint ecpoint2;
return ECAlgorithms.SumOfTwoMultiplies(ecpoint2, bigInteger10, ecpoint, bigInteger9);
}
// Token: 0x0600BC4C RID: 48204 RVA: 0x002ACC14 File Offset: 0x002AAE14
[Token(Token = "0x600BC4C")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public ECMqvBasicAgreement()
{
}
// Token: 0x040077C8 RID: 30664
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077C8")]
protected internal MqvPrivateParameters privParams;
}
}
@@ -0,0 +1,85 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D0C RID: 7436
[Token(Token = "0x2001D0C")]
public class ECMqvWithKdfBasicAgreement : ECMqvBasicAgreement
{
// Token: 0x0600BC4D RID: 48205 RVA: 0x002ACC28 File Offset: 0x002AAE28
[Token(Token = "0x600BC4D")]
[Address(RVA = "0x200A2A0", Offset = "0x20090A0", VA = "0x18200A2A0")]
public ECMqvWithKdfBasicAgreement(string algorithm, IDerivationFunction kdf)
{
/*
An exception occurred when decompiling this method (0600BC4D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.ECMqvWithKdfBasicAgreement::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationFunction)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_28:
stloc:ArgumentNullException(var_1_32, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("kdf")))
}
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: 0x0600BC4E RID: 48206 RVA: 0x002ACC68 File Offset: 0x002AAE68
[Token(Token = "0x600BC4E")]
[Address(RVA = "0x200A0D0", Offset = "0x2008ED0", VA = "0x18200A0D0", Slot = "9")]
public override BigInteger CalculateAgreement(ICipherParameters pubKey)
{
BigInteger bigInteger = base.CalculateAgreement(pubKey);
int defaultKeySize = GeneratorUtilities.GetDefaultKeySize(this.algorithm);
DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this.algorithm);
MqvPrivateParameters privParams = this.privParams;
string text = privParams.ToString();
ECPrivateKeyParameters staticPrivateKey = privParams.staticPrivateKey;
int num;
byte[] array = X9IntegerConverter.IntegerToBytes(bigInteger, num);
DHKdfParameters dhkdfParameters = new DHKdfParameters(derObjectIdentifier, defaultKeySize, array);
IDerivationFunction derivationFunction = this.kdf;
byte[] array2 = new byte[0];
IDerivationFunction derivationFunction2 = this.kdf;
int length = array2.Length;
return new BigInteger(1, array2);
}
// Token: 0x0600BC4F RID: 48207 RVA: 0x002ACCF0 File Offset: 0x002AAEF0
[Token(Token = "0x600BC4F")]
[Address(RVA = "0x200A070", Offset = "0x2008E70", VA = "0x18200A070")]
private byte[] BigIntToBytes(BigInteger r)
{
MqvPrivateParameters privParams = this.privParams;
string text = privParams.ToString();
ECPrivateKeyParameters staticPrivateKey = privParams.staticPrivateKey;
int num;
return X9IntegerConverter.IntegerToBytes(r, num);
}
// Token: 0x040077C9 RID: 30665
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077C9")]
private readonly string algorithm;
// Token: 0x040077CA RID: 30666
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077CA")]
private readonly IDerivationFunction kdf;
}
}
@@ -0,0 +1,436 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D19 RID: 7449
[Token(Token = "0x2001D19")]
public class JPakeParticipant
{
// Token: 0x0600BCA0 RID: 48288 RVA: 0x002AE630 File Offset: 0x002AC830
[Token(Token = "0x600BCA0")]
[Address(RVA = "0x200BB20", Offset = "0x200A920", VA = "0x18200BB20")]
public JPakeParticipant(string participantId, char[] password)
{
JPakePrimeOrderGroup nist_ = JPakePrimeOrderGroups.NIST_3072;
Sha256Digest sha256Digest = new Sha256Digest();
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x0600BCA1 RID: 48289 RVA: 0x002AE650 File Offset: 0x002AC850
[Token(Token = "0x600BCA1")]
[Address(RVA = "0x200BC20", Offset = "0x200AA20", VA = "0x18200BC20")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group)
{
Sha256Digest sha256Digest = new Sha256Digest();
SecureRandom secureRandom = new SecureRandom();
}
// Token: 0x0600BCA2 RID: 48290 RVA: 0x002AE66C File Offset: 0x002AC86C
[Token(Token = "0x600BCA2")]
[Address(RVA = "0x200BCD0", Offset = "0x200AAD0", VA = "0x18200BCD0")]
public JPakeParticipant(string participantId, char[] password, JPakePrimeOrderGroup group, IDigest digest, SecureRandom random)
{
/*
An exception occurred when decompiling this method (0600BCA2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::.ctor(System.String,System.Char[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A9:
stloc:ArgumentNullException(var_6_B3, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
}
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: 0x17001D37 RID: 7479
// (get) Token: 0x0600BCA3 RID: 48291 RVA: 0x002AE730 File Offset: 0x002AC930
[Token(Token = "0x17001D37")]
public virtual int State
{
[Token(Token = "0x600BCA3")]
[Address(RVA = "0x404240", Offset = "0x403040", VA = "0x180404240", Slot = "4")]
get
{
return this.state;
}
}
// Token: 0x0600BCA4 RID: 48292 RVA: 0x002AE744 File Offset: 0x002AC944
[Token(Token = "0x600BCA4")]
[Address(RVA = "0x200A650", Offset = "0x2009450", VA = "0x18200A650", Slot = "5")]
public virtual JPakeRound1Payload CreateRound1PayloadToSend()
{
int num = this.state;
BigInteger bigInteger = this.q;
SecureRandom secureRandom = this.random;
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger2 = bigInteger.Subtract(one);
BigInteger bigInteger3 = BigIntegers.CreateRandomInRange(zero, bigInteger2, secureRandom);
BigInteger bigInteger4 = this.q;
SecureRandom secureRandom2 = this.random;
this.x1 = bigInteger3;
BigInteger one2 = JPakeUtilities.One;
BigInteger bigInteger5 = bigInteger4.Subtract(one2);
BigInteger bigInteger6 = BigIntegers.CreateRandomInRange(one2, bigInteger5, secureRandom2);
BigInteger bigInteger7 = this.g;
this.x2 = bigInteger6;
BigInteger bigInteger8 = this.p;
BigInteger bigInteger9 = this.x1;
BigInteger bigInteger10 = bigInteger7.ModPow(bigInteger9, bigInteger8);
BigInteger bigInteger11 = this.g;
this.gx1 = bigInteger10;
BigInteger bigInteger12 = this.p;
BigInteger bigInteger13 = this.x2;
BigInteger bigInteger14 = bigInteger11.ModPow(bigInteger13, bigInteger12);
IDigest digest = this.digest;
string text = this.participantId;
BigInteger bigInteger15 = this.x1;
BigInteger bigInteger16 = this.gx1;
BigInteger bigInteger17 = this.g;
BigInteger bigInteger18 = this.q;
BigInteger bigInteger19 = this.p;
this.gx2 = bigInteger14;
SecureRandom secureRandom3 = this.random;
BigInteger[] array = JPakeUtilities.CalculateZeroKnowledgeProof(bigInteger19, bigInteger18, bigInteger17, bigInteger16, bigInteger15, text, digest, secureRandom3);
SecureRandom secureRandom4 = this.random;
IDigest digest2 = this.digest;
string text2 = this.participantId;
BigInteger bigInteger20 = this.x2;
BigInteger bigInteger21 = this.gx2;
BigInteger bigInteger22 = this.g;
BigInteger bigInteger23 = this.q;
BigInteger[] array2 = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger23, bigInteger22, bigInteger21, bigInteger20, text2, digest2, secureRandom4);
string text3 = this.participantId;
BigInteger bigInteger24 = this.gx1;
BigInteger bigInteger25 = this.gx2;
int state_ROUND_1_CREATED = JPakeParticipant.STATE_ROUND_1_CREATED;
this.state = state_ROUND_1_CREATED;
return new JPakeRound1Payload(text3, bigInteger24, bigInteger25, array, array2);
}
// Token: 0x0600BCA5 RID: 48293 RVA: 0x002AE90C File Offset: 0x002ACB0C
[Token(Token = "0x600BCA5")]
[Address(RVA = "0x200B030", Offset = "0x2009E30", VA = "0x18200B030", Slot = "6")]
public virtual void ValidateRound1PayloadReceived(JPakeRound1Payload round1PayloadReceived)
{
int num = this.state;
string text = round1PayloadReceived.ToString();
this.partnerParticipantId = text;
string text2 = round1PayloadReceived.ParticipantId;
this.gx3 = text2;
BigInteger bigInteger = round1PayloadReceived.Gx1;
this.gx4 = bigInteger;
BigInteger bigInteger2 = round1PayloadReceived.Gx2;
BigInteger[] knowledgeProofForX = round1PayloadReceived.KnowledgeProofForX1;
string text3 = this.participantId;
string text4 = round1PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text3, text4);
BigInteger bigInteger3 = this.gx4;
BigInteger bigInteger4 = this.p;
string text5 = round1PayloadReceived.ToString();
IDigest digest = this.digest;
BigInteger bigInteger5 = this.p;
BigInteger bigInteger6 = this.q;
BigInteger bigInteger7 = this.g;
BigInteger bigInteger8 = this.gx4;
string text6 = round1PayloadReceived.ToString();
IDigest digest2 = this.digest;
JPakeUtilities.ValidateZeroKnowledgeProof(bigInteger5, bigInteger6, bigInteger7, bigInteger8, knowledgeProofForX, text6, digest2);
int state_ROUND_1_VALIDATED = JPakeParticipant.STATE_ROUND_1_VALIDATED;
this.state = state_ROUND_1_VALIDATED;
}
// Token: 0x0600BCA6 RID: 48294 RVA: 0x002AE9FC File Offset: 0x002ACBFC
[Token(Token = "0x600BCA6")]
[Address(RVA = "0x200A9B0", Offset = "0x20097B0", VA = "0x18200A9B0", Slot = "7")]
public virtual JPakeRound2Payload CreateRound2PayloadToSend()
{
BigInteger bigInteger11;
BigInteger[] array;
string text2;
for (;;)
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = this.p;
BigInteger bigInteger2 = this.gx1;
BigInteger bigInteger3 = this.gx3;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3).Multiply(bigInteger4).Mod(bigInteger);
BigInteger bigInteger6 = JPakeUtilities.CalculateS(this.password);
BigInteger bigInteger7 = this.x2;
BigInteger bigInteger8 = this.q;
BigInteger bigInteger9 = bigInteger7.Multiply(bigInteger6).Mod(bigInteger8);
BigInteger bigInteger10 = this.p;
bigInteger11 = bigInteger5.ModPow(bigInteger9, bigInteger10);
SecureRandom secureRandom = this.random;
IDigest digest = this.digest;
string text = this.participantId;
BigInteger bigInteger12 = this.q;
array = JPakeUtilities.CalculateZeroKnowledgeProof(this.p, bigInteger12, bigInteger5, bigInteger11, bigInteger9, text, digest, secureRandom);
text2 = this.participantId;
int state_ROUND_2_CREATED = JPakeParticipant.STATE_ROUND_2_CREATED;
this.state = state_ROUND_2_CREATED;
if (text2 != 0)
{
if ((ulong)1L == 0UL)
{
}
if (bigInteger11 != 0)
{
if ((ulong)1L == 0UL)
{
}
if (array != 0)
{
break;
}
}
}
}
JPakeRound2Payload jpakeRound2Payload;
jpakeRound2Payload.participantId = text2;
jpakeRound2Payload.a = bigInteger11;
BigInteger[] array2 = new BigInteger[array.Length];
jpakeRound2Payload.knowledgeProofForX2s = array2;
return jpakeRound2Payload;
}
// Token: 0x0600BCA7 RID: 48295 RVA: 0x002AEB40 File Offset: 0x002ACD40
[Token(Token = "0x600BCA7")]
[Address(RVA = "0x200B370", Offset = "0x200A170", VA = "0x18200B370", Slot = "8")]
public virtual void ValidateRound2PayloadReceived(JPakeRound2Payload round2PayloadReceived)
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = this.p;
BigInteger bigInteger2 = this.gx3;
BigInteger bigInteger3 = this.gx1;
BigInteger bigInteger4 = this.gx2;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3).Multiply(bigInteger4).Mod(bigInteger);
string text = round2PayloadReceived.ParticipantId;
this.b = text;
BigInteger a = round2PayloadReceived.A;
string text2 = this.participantId;
string text3 = round2PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsDiffer(text2, text3);
string text4 = this.partnerParticipantId;
string text5 = round2PayloadReceived.ToString();
JPakeUtilities.ValidateParticipantIdsEqual(text4, text5);
BigInteger bigInteger6 = this.p;
string text6 = round2PayloadReceived.ToString();
IDigest digest = this.digest;
int state_ROUND_2_VALIDATED = JPakeParticipant.STATE_ROUND_2_VALIDATED;
this.state = state_ROUND_2_VALIDATED;
}
// Token: 0x0600BCA8 RID: 48296 RVA: 0x002AEC18 File Offset: 0x002ACE18
[Token(Token = "0x600BCA8")]
[Address(RVA = "0x200A390", Offset = "0x2009190", VA = "0x18200A390", Slot = "9")]
public virtual BigInteger CalculateKeyingMaterial()
{
int num = this.state;
int num2 = this.state;
BigInteger bigInteger = JPakeUtilities.CalculateS(this.password);
char[] array = this.password;
int length = array.Length;
int num3 = 0;
Array.Clear(array, num3, length);
BigInteger bigInteger2 = this.x2;
int num4 = 0;
BigInteger bigInteger3 = this.p;
BigInteger bigInteger4 = this.q;
BigInteger bigInteger5 = this.b;
BigInteger bigInteger6 = this.gx4;
this.password = num4;
BigInteger bigInteger7 = bigInteger2.Multiply(bigInteger).Negate().Mod(bigInteger4);
BigInteger bigInteger8 = bigInteger6.ModPow(bigInteger7, bigInteger3).Multiply(bigInteger5).ModPow(bigInteger2, bigInteger3);
this.x1 = num4;
this.x2 = num4;
this.b = num4;
int state_KEY_CALCULATED = JPakeParticipant.STATE_KEY_CALCULATED;
this.state = state_KEY_CALCULATED;
return bigInteger8;
}
// Token: 0x0600BCA9 RID: 48297 RVA: 0x002AECF4 File Offset: 0x002ACEF4
[Token(Token = "0x600BCA9")]
[Address(RVA = "0x200ADE0", Offset = "0x2009BE0", VA = "0x18200ADE0", Slot = "10")]
public virtual JPakeRound3Payload CreateRound3PayloadToSend(BigInteger keyingMaterial)
{
int num = this.state;
int num2 = this.state;
IDigest digest = this.digest;
string text = this.participantId;
string text2 = this.partnerParticipantId;
BigInteger bigInteger = this.gx1;
BigInteger bigInteger2 = this.gx2;
BigInteger bigInteger3 = this.gx3;
BigInteger bigInteger4 = this.gx4;
BigInteger bigInteger5 = JPakeUtilities.CalculateMacTag(text, text2, bigInteger, bigInteger2, bigInteger3, bigInteger4, keyingMaterial, digest);
string text3 = this.participantId;
int state_ROUND_3_CREATED = JPakeParticipant.STATE_ROUND_3_CREATED;
this.state = state_ROUND_3_CREATED;
JPakeRound3Payload jpakeRound3Payload;
jpakeRound3Payload.participantId = text3;
jpakeRound3Payload.macTag = bigInteger5;
return jpakeRound3Payload;
}
// Token: 0x0600BCAA RID: 48298 RVA: 0x002AED90 File Offset: 0x002ACF90
[Token(Token = "0x600BCAA")]
[Address(RVA = "0x200B700", Offset = "0x200A500", VA = "0x18200B700", Slot = "11")]
public virtual void ValidateRound3PayloadReceived(JPakeRound3Payload round3PayloadReceived, BigInteger keyingMaterial)
{
/*
An exception occurred when decompiling this method (0600BCAA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeParticipant::ValidateRound3PayloadReceived(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound3Payload,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_CF:
stloc:CryptoException(var_18_D9, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Partner MacTag validation failed. Therefore, the password, MAC, or digest algorithm of each participant does not match.")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x04007819 RID: 30745
[Token(Token = "0x4007819")]
public static readonly int STATE_INITIALIZED;
// Token: 0x0400781A RID: 30746
[Token(Token = "0x400781A")]
public static readonly int STATE_ROUND_1_CREATED;
// Token: 0x0400781B RID: 30747
[Token(Token = "0x400781B")]
public static readonly int STATE_ROUND_1_VALIDATED;
// Token: 0x0400781C RID: 30748
[Token(Token = "0x400781C")]
public static readonly int STATE_ROUND_2_CREATED;
// Token: 0x0400781D RID: 30749
[Token(Token = "0x400781D")]
public static readonly int STATE_ROUND_2_VALIDATED;
// Token: 0x0400781E RID: 30750
[Token(Token = "0x400781E")]
public static readonly int STATE_KEY_CALCULATED;
// Token: 0x0400781F RID: 30751
[Token(Token = "0x400781F")]
public static readonly int STATE_ROUND_3_CREATED;
// Token: 0x04007820 RID: 30752
[Token(Token = "0x4007820")]
public static readonly int STATE_ROUND_3_VALIDATED;
// Token: 0x04007821 RID: 30753
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007821")]
private string participantId;
// Token: 0x04007822 RID: 30754
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007822")]
private char[] password;
// Token: 0x04007823 RID: 30755
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007823")]
private IDigest digest;
// Token: 0x04007824 RID: 30756
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007824")]
private readonly SecureRandom random;
// Token: 0x04007825 RID: 30757
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007825")]
private readonly BigInteger p;
// Token: 0x04007826 RID: 30758
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007826")]
private readonly BigInteger q;
// Token: 0x04007827 RID: 30759
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007827")]
private readonly BigInteger g;
// Token: 0x04007828 RID: 30760
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007828")]
private string partnerParticipantId;
// Token: 0x04007829 RID: 30761
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007829")]
private BigInteger x1;
// Token: 0x0400782A RID: 30762
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400782A")]
private BigInteger x2;
// Token: 0x0400782B RID: 30763
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400782B")]
private BigInteger gx1;
// Token: 0x0400782C RID: 30764
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400782C")]
private BigInteger gx2;
// Token: 0x0400782D RID: 30765
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400782D")]
private BigInteger gx3;
// Token: 0x0400782E RID: 30766
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x400782E")]
private BigInteger gx4;
// Token: 0x0400782F RID: 30767
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400782F")]
private BigInteger b;
// Token: 0x04007830 RID: 30768
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4007830")]
private int state;
}
}
@@ -0,0 +1,98 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1A RID: 7450
[Token(Token = "0x2001D1A")]
public class JPakePrimeOrderGroup
{
// Token: 0x0600BCAC RID: 48300 RVA: 0x002AEE88 File Offset: 0x002AD088
[Token(Token = "0x600BCAC")]
[Address(RVA = "0x200C470", Offset = "0x200B270", VA = "0x18200C470")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g)
{
}
// Token: 0x0600BCAD RID: 48301 RVA: 0x002AEE98 File Offset: 0x002AD098
[Token(Token = "0x600BCAD")]
[Address(RVA = "0x200C000", Offset = "0x200AE00", VA = "0x18200C000")]
public JPakePrimeOrderGroup(BigInteger p, BigInteger q, BigInteger g, bool skipChecks)
{
/*
An exception occurred when decompiling this method (0600BCAD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakePrimeOrderGroup::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A1:
stloc:ArgumentException(var_6_AB, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("p must be prime")))
}
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: 0x17001D38 RID: 7480
// (get) Token: 0x0600BCAE RID: 48302 RVA: 0x002AEF54 File Offset: 0x002AD154
[Token(Token = "0x17001D38")]
public virtual BigInteger P
{
[Token(Token = "0x600BCAE")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.p;
}
}
// Token: 0x17001D39 RID: 7481
// (get) Token: 0x0600BCAF RID: 48303 RVA: 0x002AEF68 File Offset: 0x002AD168
[Token(Token = "0x17001D39")]
public virtual BigInteger Q
{
[Token(Token = "0x600BCAF")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.q;
}
}
// Token: 0x17001D3A RID: 7482
// (get) Token: 0x0600BCB0 RID: 48304 RVA: 0x002AEF7C File Offset: 0x002AD17C
[Token(Token = "0x17001D3A")]
public virtual BigInteger G
{
[Token(Token = "0x600BCB0")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400", Slot = "6")]
get
{
return this.g;
}
}
// Token: 0x04007831 RID: 30769
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007831")]
private readonly BigInteger p;
// Token: 0x04007832 RID: 30770
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007832")]
private readonly BigInteger q;
// Token: 0x04007833 RID: 30771
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007833")]
private readonly BigInteger g;
}
}
@@ -0,0 +1,53 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1B RID: 7451
[Token(Token = "0x2001D1B")]
public class JPakePrimeOrderGroups
{
// Token: 0x0600BCB1 RID: 48305 RVA: 0x002AEF90 File Offset: 0x002AD190
[Token(Token = "0x600BCB1")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public JPakePrimeOrderGroups()
{
}
// Token: 0x0600BCB2 RID: 48306 RVA: 0x002AEFA4 File Offset: 0x002AD1A4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BCB2")]
[Address(RVA = "0x200C490", Offset = "0x200B290", VA = "0x18200C490")]
static JPakePrimeOrderGroups()
{
BigInteger bigInteger = new BigInteger("fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c7", 16);
BigInteger bigInteger2 = new BigInteger("9760508f15230bccb292b982a2eb840bf0581cf5", 16);
BigInteger bigInteger3 = new BigInteger("f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a", 16);
ulong num;
JPakePrimeOrderGroups.SUN_JCE_1024 = new JPakePrimeOrderGroup(bigInteger, bigInteger2, bigInteger3, num != 0UL);
BigInteger bigInteger4 = new BigInteger("C196BA05AC29E1F9C3C72D56DFFC6154A033F1477AC88EC37F09BE6C5BB95F51C296DD20D1A28A067CCC4D4316A4BD1DCA55ED1066D438C35AEBAABF57E7DAE428782A95ECA1C143DB701FD48533A3C18F0FE23557EA7AE619ECACC7E0B51652A8776D02A425567DED36EABD90CA33A1E8D988F0BBB92D02D1D20290113BB562CE1FC856EEB7CDD92D33EEA6F410859B179E7E789A8F75F645FAE2E136D252BFFAFF89528945C1ABE705A38DBC2D364AADE99BE0D0AAD82E5320121496DC65B3930E38047294FF877831A16D5228418DE8AB275D7D75651CEFED65F78AFC3EA7FE4D79B35F62A0402A1117599ADAC7B269A59F353CF450E6982D3B1702D9CA83", 16);
BigInteger bigInteger5 = new BigInteger("90EAF4D1AF0708B1B612FF35E0A2997EB9E9D263C9CE659528945C0D", 16);
BigInteger bigInteger6 = new BigInteger("A59A749A11242C58C894E9E5A91804E8FA0AC64B56288F8D47D51B1EDC4D65444FECA0111D78F35FC9FDD4CB1F1B79A3BA9CBEE83A3F811012503C8117F98E5048B089E387AF6949BF8784EBD9EF45876F2E6A5A495BE64B6E770409494B7FEE1DBB1E4B2BC2A53D4F893D418B7159592E4FFFDF6969E91D770DAEBD0B5CB14C00AD68EC7DC1E5745EA55C706C4A1C5C88964E34D09DEB753AD418C1AD0F4FDFD049A955E5D78491C0B7A2F1575A008CCD727AB376DB6E695515B05BD412F5B8C2F4C77EE10DA48ABD53F5DD498927EE7B692BBBCDA2FB23A516C5B4533D73980B2A3B60E384ED200AE21B40D273651AD6060C13D97FD69AA13C5611A51B9085", 16);
ulong num2;
JPakePrimeOrderGroups.NIST_2048 = new JPakePrimeOrderGroup(bigInteger4, bigInteger5, bigInteger6, num2 != 0UL);
BigInteger bigInteger7 = new BigInteger("90066455B5CFC38F9CAA4A48B4281F292C260FEEF01FD61037E56258A7795A1C7AD46076982CE6BB956936C6AB4DCFE05E6784586940CA544B9B2140E1EB523F009D20A7E7880E4E5BFA690F1B9004A27811CD9904AF70420EEFD6EA11EF7DA129F58835FF56B89FAA637BC9AC2EFAAB903402229F491D8D3485261CD068699B6BA58A1DDBBEF6DB51E8FE34E8A78E542D7BA351C21EA8D8F1D29F5D5D15939487E27F4416B0CA632C59EFD1B1EB66511A5A0FBF615B766C5862D0BD8A3FE7A0E0DA0FB2FE1FCB19E8F9996A8EA0FCCDE538175238FC8B0EE6F29AF7F642773EBE8CD5402415A01451A840476B2FCEB0E388D30D4B376C37FE401C2A2C2F941DAD179C540C1C8CE030D460C4D983BE9AB0B20F69144C1AE13F9383EA1C08504FB0BF321503EFE43488310DD8DC77EC5B8349B8BFE97C2C560EA878DE87C11E3D597F1FEA742D73EEC7F37BE43949EF1A0D15C3F3E3FC0A8335617055AC91328EC22B50FC15B941D3D1624CD88BC25F3E941FDDC6200689581BFEC416B4B2CB73", 16);
BigInteger bigInteger8 = new BigInteger("CFA0478A54717B08CE64805B76E5B14249A77A4838469DF7F7DC987EFCCFB11D", 16);
BigInteger bigInteger9 = new BigInteger("5E5CBA992E0A680D885EB903AEA78E4A45A469103D448EDE3B7ACCC54D521E37F84A4BDD5B06B0970CC2D2BBB715F7B82846F9A0C393914C792E6A923E2117AB805276A975AADB5261D91673EA9AAFFEECBFA6183DFCB5D3B7332AA19275AFA1F8EC0B60FB6F66CC23AE4870791D5982AAD1AA9485FD8F4A60126FEB2CF05DB8A7F0F09B3397F3937F2E90B9E5B9C9B6EFEF642BC48351C46FB171B9BFA9EF17A961CE96C7E7A7CC3D3D03DFAD1078BA21DA425198F07D2481622BCE45969D9C4D6063D72AB7A0F08B2F49A7CC6AF335E08C4720E31476B67299E231F8BD90B39AC3AE3BE0C6B6CACEF8289A2E2873D58E51E029CAFBD55E6841489AB66B5B4B9BA6E2F784660896AFF387D92844CCB8B69475496DE19DA2E58259B090489AC8E62363CDF82CFD8EF2A427ABCD65750B506F56DDE3B988567A88126B914D7828E2B63A6D7ED0747EC59E0E0A23CE7D8A74C1D2C2A7AFB6A29799620F00E11C33787F7DED3B30E1A22D09F1FBDA1ABBBFBF25CAE05A13F812E34563F99410E73B", 16);
ulong num3;
JPakePrimeOrderGroups.NIST_3072 = new JPakePrimeOrderGroup(bigInteger7, bigInteger8, bigInteger9, num3 != 0UL);
}
// Token: 0x04007834 RID: 30772
[Token(Token = "0x4007834")]
public static readonly JPakePrimeOrderGroup SUN_JCE_1024;
// Token: 0x04007835 RID: 30773
[Token(Token = "0x4007835")]
public static readonly JPakePrimeOrderGroup NIST_2048;
// Token: 0x04007836 RID: 30774
[Token(Token = "0x4007836")]
public static readonly JPakePrimeOrderGroup NIST_3072;
}
}
@@ -0,0 +1,135 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1C RID: 7452
[Token(Token = "0x2001D1C")]
public class JPakeRound1Payload
{
// Token: 0x0600BCB3 RID: 48307 RVA: 0x002AF060 File Offset: 0x002AD260
[Token(Token = "0x600BCB3")]
[Address(RVA = "0x200C6E0", Offset = "0x200B4E0", VA = "0x18200C6E0")]
public JPakeRound1Payload(string participantId, BigInteger gx1, BigInteger gx2, BigInteger[] knowledgeProofForX1, BigInteger[] knowledgeProofForX2)
{
/*
An exception occurred when decompiling this method (0600BCB3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound1Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5E:
stloc:ArgumentNullException(var_3_68, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
}
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: 0x17001D3B RID: 7483
// (get) Token: 0x0600BCB4 RID: 48308 RVA: 0x002AF0D8 File Offset: 0x002AD2D8
[Token(Token = "0x17001D3B")]
public virtual string ParticipantId
{
[Token(Token = "0x600BCB4")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001D3C RID: 7484
// (get) Token: 0x0600BCB5 RID: 48309 RVA: 0x002AF0EC File Offset: 0x002AD2EC
[Token(Token = "0x17001D3C")]
public virtual BigInteger Gx1
{
[Token(Token = "0x600BCB5")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.gx1;
}
}
// Token: 0x17001D3D RID: 7485
// (get) Token: 0x0600BCB6 RID: 48310 RVA: 0x002AF100 File Offset: 0x002AD300
[Token(Token = "0x17001D3D")]
public virtual BigInteger Gx2
{
[Token(Token = "0x600BCB6")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400", Slot = "6")]
get
{
return this.gx2;
}
}
// Token: 0x17001D3E RID: 7486
// (get) Token: 0x0600BCB7 RID: 48311 RVA: 0x002AF114 File Offset: 0x002AD314
[Token(Token = "0x17001D3E")]
public virtual BigInteger[] KnowledgeProofForX1
{
[Token(Token = "0x600BCB7")]
[Address(RVA = "0x200C980", Offset = "0x200B780", VA = "0x18200C980", Slot = "7")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX1.Length];
BigInteger[] array2 = this.knowledgeProofForX1;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x17001D3F RID: 7487
// (get) Token: 0x0600BCB8 RID: 48312 RVA: 0x002AF150 File Offset: 0x002AD350
[Token(Token = "0x17001D3F")]
public virtual BigInteger[] KnowledgeProofForX2
{
[Token(Token = "0x600BCB8")]
[Address(RVA = "0x200C9F0", Offset = "0x200B7F0", VA = "0x18200C9F0", Slot = "8")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX2.Length];
BigInteger[] array2 = this.knowledgeProofForX2;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x04007837 RID: 30775
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007837")]
private readonly string participantId;
// Token: 0x04007838 RID: 30776
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007838")]
private readonly BigInteger gx1;
// Token: 0x04007839 RID: 30777
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007839")]
private readonly BigInteger gx2;
// Token: 0x0400783A RID: 30778
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400783A")]
private readonly BigInteger[] knowledgeProofForX1;
// Token: 0x0400783B RID: 30779
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400783B")]
private readonly BigInteger[] knowledgeProofForX2;
}
}
@@ -0,0 +1,95 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1D RID: 7453
[Token(Token = "0x2001D1D")]
public class JPakeRound2Payload
{
// Token: 0x0600BCB9 RID: 48313 RVA: 0x002AF18C File Offset: 0x002AD38C
[Token(Token = "0x600BCB9")]
[Address(RVA = "0x200CA60", Offset = "0x200B860", VA = "0x18200CA60")]
public JPakeRound2Payload(string participantId, BigInteger a, BigInteger[] knowledgeProofForX2s)
{
/*
An exception occurred when decompiling this method (0600BCB9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeRound2Payload::.ctor(System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4D:
stloc:ArgumentNullException(var_3_57, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("participantId")))
}
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: 0x17001D40 RID: 7488
// (get) Token: 0x0600BCBA RID: 48314 RVA: 0x002AF1F0 File Offset: 0x002AD3F0
[Token(Token = "0x17001D40")]
public virtual string ParticipantId
{
[Token(Token = "0x600BCBA")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001D41 RID: 7489
// (get) Token: 0x0600BCBB RID: 48315 RVA: 0x002AF204 File Offset: 0x002AD404
[Token(Token = "0x17001D41")]
public virtual BigInteger A
{
[Token(Token = "0x600BCBB")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.a;
}
}
// Token: 0x17001D42 RID: 7490
// (get) Token: 0x0600BCBC RID: 48316 RVA: 0x002AF218 File Offset: 0x002AD418
[Token(Token = "0x17001D42")]
public virtual BigInteger[] KnowledgeProofForX2s
{
[Token(Token = "0x600BCBC")]
[Address(RVA = "0x200CC10", Offset = "0x200BA10", VA = "0x18200CC10", Slot = "6")]
get
{
BigInteger[] array = new BigInteger[this.knowledgeProofForX2s.Length];
BigInteger[] array2 = this.knowledgeProofForX2s;
int length = array2.Length;
Array.Copy(array2, array, length);
return array;
}
}
// Token: 0x0400783C RID: 30780
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400783C")]
private readonly string participantId;
// Token: 0x0400783D RID: 30781
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400783D")]
private readonly BigInteger a;
// Token: 0x0400783E RID: 30782
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400783E")]
private readonly BigInteger[] knowledgeProofForX2s;
}
}
@@ -0,0 +1,56 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1E RID: 7454
[Token(Token = "0x2001D1E")]
public class JPakeRound3Payload
{
// Token: 0x0600BCBD RID: 48317 RVA: 0x002AF254 File Offset: 0x002AD454
[Token(Token = "0x600BCBD")]
[Address(RVA = "0x4089A0", Offset = "0x4077A0", VA = "0x1804089A0")]
public JPakeRound3Payload(string participantId, BigInteger magTag)
{
this.participantId = participantId;
this.macTag = magTag;
}
// Token: 0x17001D43 RID: 7491
// (get) Token: 0x0600BCBE RID: 48318 RVA: 0x002AF278 File Offset: 0x002AD478
[Token(Token = "0x17001D43")]
public virtual string ParticipantId
{
[Token(Token = "0x600BCBE")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "4")]
get
{
return this.participantId;
}
}
// Token: 0x17001D44 RID: 7492
// (get) Token: 0x0600BCBF RID: 48319 RVA: 0x002AF28C File Offset: 0x002AD48C
[Token(Token = "0x17001D44")]
public virtual BigInteger MacTag
{
[Token(Token = "0x600BCBF")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "5")]
get
{
return this.macTag;
}
}
// Token: 0x0400783F RID: 30783
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400783F")]
private readonly string participantId;
// Token: 0x04007840 RID: 30784
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007840")]
private readonly BigInteger macTag;
}
}
@@ -0,0 +1,411 @@
using System;
using System.Text;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake
{
// Token: 0x02001D1F RID: 7455
[Token(Token = "0x2001D1F")]
public abstract class JPakeUtilities
{
// Token: 0x0600BCC0 RID: 48320 RVA: 0x002AF2A0 File Offset: 0x002AD4A0
[Token(Token = "0x600BCC0")]
[Address(RVA = "0x200D890", Offset = "0x200C690", VA = "0x18200D890")]
public static BigInteger GenerateX1(BigInteger q, SecureRandom random)
{
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(zero, bigInteger, random);
}
// Token: 0x0600BCC1 RID: 48321 RVA: 0x002AF2D0 File Offset: 0x002AD4D0
[Token(Token = "0x600BCC1")]
[Address(RVA = "0x200D930", Offset = "0x200C730", VA = "0x18200D930")]
public static BigInteger GenerateX2(BigInteger q, SecureRandom random)
{
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
return BigIntegers.CreateRandomInRange(one, bigInteger, random);
}
// Token: 0x0600BCC2 RID: 48322 RVA: 0x002AF2FC File Offset: 0x002AD4FC
[Token(Token = "0x600BCC2")]
[Address(RVA = "0x200D5D0", Offset = "0x200C3D0", VA = "0x18200D5D0")]
public static BigInteger CalculateS(char[] password)
{
Encoding utf = Encoding.UTF8;
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600BCC3 RID: 48323 RVA: 0x002AF318 File Offset: 0x002AD518
[Token(Token = "0x600BCC3")]
[Address(RVA = "0x1A2ACD0", Offset = "0x1A29AD0", VA = "0x181A2ACD0")]
public static BigInteger CalculateGx(BigInteger p, BigInteger g, BigInteger x)
{
return g.ModPow(x, p);
}
// Token: 0x0600BCC4 RID: 48324 RVA: 0x002AF334 File Offset: 0x002AD534
[Token(Token = "0x600BCC4")]
[Address(RVA = "0x200CCB0", Offset = "0x200BAB0", VA = "0x18200CCB0")]
public static BigInteger CalculateGA(BigInteger p, BigInteger gx1, BigInteger gx3, BigInteger gx4)
{
return gx1.Multiply(gx3).Multiply(gx4).Mod(p);
}
// Token: 0x0600BCC5 RID: 48325 RVA: 0x002AF35C File Offset: 0x002AD55C
[Token(Token = "0x600BCC5")]
[Address(RVA = "0x200D650", Offset = "0x200C450", VA = "0x18200D650")]
public static BigInteger CalculateX2s(BigInteger q, BigInteger x2, BigInteger s)
{
return x2.Multiply(s).Mod(q);
}
// Token: 0x0600BCC6 RID: 48326 RVA: 0x002AF37C File Offset: 0x002AD57C
[Token(Token = "0x600BCC6")]
[Address(RVA = "0x200CC80", Offset = "0x200BA80", VA = "0x18200CC80")]
public static BigInteger CalculateA(BigInteger p, BigInteger q, BigInteger gA, BigInteger x2s)
{
return gA.ModPow(x2s, p);
}
// Token: 0x0600BCC7 RID: 48327 RVA: 0x002AF398 File Offset: 0x002AD598
[Token(Token = "0x600BCC7")]
[Address(RVA = "0x200D690", Offset = "0x200C490", VA = "0x18200D690")]
public static BigInteger[] CalculateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger x, string participantId, IDigest digest, SecureRandom random)
{
BigInteger zero = JPakeUtilities.Zero;
BigInteger one = JPakeUtilities.One;
BigInteger bigInteger = q.Subtract(one);
BigInteger bigInteger3;
BigInteger bigInteger2 = g.ModPow(bigInteger3, p);
BigInteger[] array = new BigInteger[2];
if (bigInteger2 != 0)
{
}
array[0] = bigInteger2;
BigInteger bigInteger5;
BigInteger bigInteger4 = bigInteger3.Subtract(bigInteger5).Mod(q);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
return array;
}
// Token: 0x0600BCC8 RID: 48328 RVA: 0x002AF404 File Offset: 0x002AD604
[Token(Token = "0x600BCC8")]
[Address(RVA = "0x200CD10", Offset = "0x200BB10", VA = "0x18200CD10")]
private static BigInteger CalculateHashForZeroKnowledgeProof(BigInteger g, BigInteger gr, BigInteger gx, string participantId, IDigest digest)
{
byte[] array = BigIntegers.AsUnsignedByteArray(g);
byte[] array2 = BigIntegers.AsUnsignedByteArray(gr);
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx);
Encoding utf = Encoding.UTF8;
byte[] array4;
return new BigInteger(array4);
}
// Token: 0x0600BCC9 RID: 48329 RVA: 0x002AF43C File Offset: 0x002AD63C
[Token(Token = "0x600BCC9")]
[Address(RVA = "0x200DFC0", Offset = "0x200CDC0", VA = "0x18200DFC0")]
public static void ValidateGx4(BigInteger gx4)
{
}
// Token: 0x0600BCCA RID: 48330 RVA: 0x002AF454 File Offset: 0x002AD654
[Token(Token = "0x600BCCA")]
[Address(RVA = "0x200DF10", Offset = "0x200CD10", VA = "0x18200DF10")]
public static void ValidateGa(BigInteger ga)
{
}
// Token: 0x0600BCCB RID: 48331 RVA: 0x002AF46C File Offset: 0x002AD66C
[Token(Token = "0x600BCCB")]
[Address(RVA = "0x200E420", Offset = "0x200D220", VA = "0x18200E420")]
public static void ValidateZeroKnowledgeProof(BigInteger p, BigInteger q, BigInteger g, BigInteger gx, BigInteger[] zeroKnowledgeProof, string participantId, IDigest digest)
{
/*
An exception occurred when decompiling this method (0600BCCB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateZeroKnowledgeProof(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger[],System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_69:
stloc:CryptoException(var_7_73, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Zero-knowledge proof validation failed")))
}
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: 0x0600BCCC RID: 48332 RVA: 0x002AF4F0 File Offset: 0x002AD6F0
[Token(Token = "0x600BCCC")]
[Address(RVA = "0x200CF70", Offset = "0x200BD70", VA = "0x18200CF70")]
public static BigInteger CalculateKeyingMaterial(BigInteger p, BigInteger q, BigInteger gx4, BigInteger x2, BigInteger s, BigInteger B)
{
BigInteger bigInteger2;
BigInteger bigInteger = bigInteger2.Negate().Mod(q);
BigInteger bigInteger3 = gx4.ModPow(bigInteger, p);
BigInteger bigInteger4;
return bigInteger4.ModPow(x2, p);
}
// Token: 0x0600BCCD RID: 48333 RVA: 0x002AF524 File Offset: 0x002AD724
[Token(Token = "0x600BCCD")]
[Address(RVA = "0x200E200", Offset = "0x200D000", VA = "0x18200E200")]
public static void ValidateParticipantIdsDiffer(string participantId1, string participantId2)
{
/*
An exception occurred when decompiling this method (0600BCCD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateParticipantIdsDiffer(System.String,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0B:
stloc:CryptoException(var_0_20, newobj:CryptoException(CryptoException::.ctor, call:string(string::Concat, ldstr:string("Both participants are using the same participantId ("), ldloc:string(participantId1), ldstr:string("). This is not allowed. Each participant must use a unique participantId."))))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BCCE RID: 48334 RVA: 0x002AF554 File Offset: 0x002AD754
[Token(Token = "0x600BCCE")]
[Address(RVA = "0x200E2A0", Offset = "0x200D0A0", VA = "0x18200E2A0")]
public static void ValidateParticipantIdsEqual(string expectedParticipantId, string actualParticipantId)
{
if (expectedParticipantId.Equals(actualParticipantId))
{
return;
}
string[] array = new string[5];
throw new NullReferenceException();
}
// Token: 0x0600BCCF RID: 48335 RVA: 0x002AF5E0 File Offset: 0x002AD7E0
[Token(Token = "0x600BCCF")]
[Address(RVA = "0x200E190", Offset = "0x200CF90", VA = "0x18200E190")]
public static void ValidateNotNull(object obj, string description)
{
/*
An exception occurred when decompiling this method (0600BCCF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateNotNull(System.Object,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:ArgumentNullException(var_0_0B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldloc:string(description)))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BCD0 RID: 48336 RVA: 0x002AF5F8 File Offset: 0x002AD7F8
[Token(Token = "0x600BCD0")]
[Address(RVA = "0x200D1A0", Offset = "0x200BFA0", VA = "0x18200D1A0")]
public static BigInteger CalculateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest)
{
Encoding utf = Encoding.UTF8;
byte[] array;
KeyParameter keyParameter = new KeyParameter(array);
HMac hmac;
IDigest underlyingDigest = hmac.GetUnderlyingDigest();
int num = 0;
Arrays.Fill(array, (byte)num);
JPakeUtilities.UpdateMac(hmac, "KC_1_U");
JPakeUtilities.UpdateMac(hmac, participantId);
JPakeUtilities.UpdateMac(hmac, partnerParticipantId);
byte[] array2 = BigIntegers.AsUnsignedByteArray(gx1);
JPakeUtilities.UpdateMac(hmac, array2);
byte[] array3 = BigIntegers.AsUnsignedByteArray(gx2);
JPakeUtilities.UpdateMac(hmac, array3);
byte[] array4;
JPakeUtilities.UpdateMac(hmac, array4);
byte[] array5;
JPakeUtilities.UpdateMac(hmac, array5);
return new BigInteger(MacUtilities.DoFinal(hmac));
}
// Token: 0x0600BCD1 RID: 48337 RVA: 0x002AF690 File Offset: 0x002AD890
[Token(Token = "0x600BCD1")]
[Address(RVA = "0x200D030", Offset = "0x200BE30", VA = "0x18200D030")]
private static byte[] CalculateMacKey(BigInteger keyingMaterial, IDigest digest)
{
byte[] array = BigIntegers.AsUnsignedByteArray(keyingMaterial);
JPakeUtilities.UpdateDigest(digest, array);
Encoding utf = Encoding.UTF8;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600BCD2 RID: 48338 RVA: 0x002AF6C0 File Offset: 0x002AD8C0
[Token(Token = "0x600BCD2")]
[Address(RVA = "0x200E070", Offset = "0x200CE70", VA = "0x18200E070")]
public static void ValidateMacTag(string participantId, string partnerParticipantId, BigInteger gx1, BigInteger gx2, BigInteger gx3, BigInteger gx4, BigInteger keyingMaterial, IDigest digest, BigInteger partnerMacTag)
{
/*
An exception occurred when decompiling this method (0600BCD2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.JPake.JPakeUtilities::ValidateMacTag(System.String,System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:CryptoException(var_2_0F, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Partner MacTag validation failed. Therefore, the password, MAC, or digest algorithm of each participant does not match.")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BCD3 RID: 48339 RVA: 0x002AF6DC File Offset: 0x002AD8DC
[Token(Token = "0x600BCD3")]
[Address(RVA = "0x200DBD0", Offset = "0x200C9D0", VA = "0x18200DBD0")]
private static void UpdateDigest(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigest(digest, array);
}
// Token: 0x0600BCD4 RID: 48340 RVA: 0x002AF6F8 File Offset: 0x002AD8F8
[Token(Token = "0x600BCD4")]
[Address(RVA = "0x200DCE0", Offset = "0x200CAE0", VA = "0x18200DCE0")]
private static void UpdateDigest(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600BCD5 RID: 48341 RVA: 0x002AF714 File Offset: 0x002AD914
[Token(Token = "0x600BCD5")]
[Address(RVA = "0x200DC40", Offset = "0x200CA40", VA = "0x18200DC40")]
private static void UpdateDigest(IDigest digest, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600BCD6 RID: 48342 RVA: 0x002AF738 File Offset: 0x002AD938
[Token(Token = "0x600BCD6")]
[Address(RVA = "0x200D9E0", Offset = "0x200C7E0", VA = "0x18200D9E0")]
private static void UpdateDigestIncludingSize(IDigest digest, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateDigestIncludingSize(digest, array);
}
// Token: 0x0600BCD7 RID: 48343 RVA: 0x002AF754 File Offset: 0x002AD954
[Token(Token = "0x600BCD7")]
[Address(RVA = "0x200DB40", Offset = "0x200C940", VA = "0x18200DB40")]
private static void UpdateDigestIncludingSize(IDigest digest, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600BCD8 RID: 48344 RVA: 0x002AF770 File Offset: 0x002AD970
[Token(Token = "0x600BCD8")]
[Address(RVA = "0x200DA50", Offset = "0x200C850", VA = "0x18200DA50")]
private static void UpdateDigestIncludingSize(IDigest digest, byte[] bytes)
{
byte[] array = Pack.UInt32_To_BE((uint)bytes.Length);
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600BCD9 RID: 48345 RVA: 0x002AF7A4 File Offset: 0x002AD9A4
[Token(Token = "0x600BCD9")]
[Address(RVA = "0x200DD70", Offset = "0x200CB70", VA = "0x18200DD70")]
private static void UpdateMac(IMac mac, BigInteger bigInteger)
{
byte[] array = BigIntegers.AsUnsignedByteArray(bigInteger);
JPakeUtilities.UpdateMac(mac, array);
}
// Token: 0x0600BCDA RID: 48346 RVA: 0x002AF7C0 File Offset: 0x002AD9C0
[Token(Token = "0x600BCDA")]
[Address(RVA = "0x200DE80", Offset = "0x200CC80", VA = "0x18200DE80")]
private static void UpdateMac(IMac mac, string str)
{
Encoding utf = Encoding.UTF8;
}
// Token: 0x0600BCDB RID: 48347 RVA: 0x002AF7DC File Offset: 0x002AD9DC
[Token(Token = "0x600BCDB")]
[Address(RVA = "0x200DDE0", Offset = "0x200CBE0", VA = "0x18200DDE0")]
private static void UpdateMac(IMac mac, byte[] bytes)
{
int length = bytes.Length;
int num = 0;
Arrays.Fill(bytes, (byte)num);
}
// Token: 0x0600BCDC RID: 48348 RVA: 0x002AF800 File Offset: 0x002ADA00
[Token(Token = "0x600BCDC")]
[Address(RVA = "0x200D9D0", Offset = "0x200C7D0", VA = "0x18200D9D0")]
private static byte[] IntToByteArray(int value)
{
return Pack.UInt32_To_BE((uint)value);
}
// Token: 0x0600BCDD RID: 48349 RVA: 0x002AF814 File Offset: 0x002ADA14
[Token(Token = "0x600BCDD")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected JPakeUtilities()
{
}
// Token: 0x04007841 RID: 30785
[Token(Token = "0x4007841")]
public static readonly BigInteger Zero = BigInteger.Zero;
// Token: 0x04007842 RID: 30786
[Token(Token = "0x4007842")]
public static readonly BigInteger One = BigInteger.One;
}
}
@@ -0,0 +1,145 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001D15 RID: 7445
[Token(Token = "0x2001D15")]
public class ConcatenationKdfGenerator : IDerivationFunction
{
// Token: 0x0600BC8E RID: 48270 RVA: 0x002AE01C File Offset: 0x002AC21C
[Token(Token = "0x600BC8E")]
[Address(RVA = "0x1B35AC0", Offset = "0x1B348C0", VA = "0x181B35AC0")]
public ConcatenationKdfGenerator(IDigest digest)
{
this.mDigest = digest;
}
// Token: 0x0600BC8F RID: 48271 RVA: 0x002AE03C File Offset: 0x002AC23C
[Token(Token = "0x600BC8F")]
[Address(RVA = "0x1B359C0", Offset = "0x1B347C0", VA = "0x181B359C0", Slot = "7")]
public virtual void Init(IDerivationParameters param)
{
/*
An exception occurred when decompiling this method (0600BC8F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf.ConcatenationKdfGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1F:
stloc:ArgumentException(var_2_29, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("KDF parameters required for ConcatenationKdfGenerator")))
}
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: 0x17001D32 RID: 7474
// (get) Token: 0x0600BC90 RID: 48272 RVA: 0x002AE074 File Offset: 0x002AC274
[Token(Token = "0x17001D32")]
public virtual IDigest Digest
{
[Token(Token = "0x600BC90")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "8")]
get
{
return this.mDigest;
}
}
// Token: 0x0600BC91 RID: 48273 RVA: 0x002AE088 File Offset: 0x002AC288
[Token(Token = "0x600BC91")]
[Address(RVA = "0x1B354D0", Offset = "0x1B342D0", VA = "0x181B354D0", Slot = "9")]
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len)
{
int num = outBytes.Length;
num -= len;
byte[] array = new byte[this.mHLen];
byte[] array2 = new byte[4];
IDigest digest = this.mDigest;
int num2 = 0;
if (len > this.mHLen)
{
int num3 = 0;
Pack.UInt32_To_BE((uint)1, array2);
IDigest digest2 = this.mDigest;
int num4 = 0;
if (num4 < num3)
{
num4 += num4;
num4++;
}
int num5 = 0;
byte[] array3 = this.mShared;
IDigest digest3 = this.mDigest;
int num6 = 0;
if (num6 < num5)
{
num6 += num6;
num6++;
}
int num7 = 0;
byte[] array4 = this.mOtherInfo;
IDigest digest4 = this.mDigest;
int num8 = 0;
if (num8 < num7)
{
num8 += num8;
num8++;
}
int num9 = 0;
IDigest digest5 = this.mDigest;
int num10 = 0;
if (num10 < num9)
{
num10 += num10;
num10++;
}
int num11 = this.mHLen;
}
if (num2 < len)
{
Pack.UInt32_To_BE((uint)1, array2);
IDigest digest6 = this.mDigest;
int length = array2.Length;
byte[] array5 = this.mShared;
IDigest digest7 = this.mDigest;
int length2 = array5.Length;
byte[] array6 = this.mOtherInfo;
IDigest digest8 = this.mDigest;
int num12 = array6.Length;
IDigest digest9 = this.mDigest;
num12 = len - num2;
}
return len;
}
// Token: 0x04007808 RID: 30728
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007808")]
private readonly IDigest mDigest;
// Token: 0x04007809 RID: 30729
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007809")]
private byte[] mShared;
// Token: 0x0400780A RID: 30730
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400780A")]
private byte[] mOtherInfo;
// Token: 0x0400780B RID: 30731
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400780B")]
private int mHLen;
}
}
@@ -0,0 +1,95 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001D16 RID: 7446
[Token(Token = "0x2001D16")]
public class DHKdfParameters : IDerivationParameters
{
// Token: 0x0600BC92 RID: 48274 RVA: 0x002AE238 File Offset: 0x002AC438
[Token(Token = "0x600BC92")]
[Address(RVA = "0x1B35C80", Offset = "0x1B34A80", VA = "0x181B35C80")]
public DHKdfParameters(DerObjectIdentifier algorithm, int keySize, byte[] z)
{
this.algorithm = algorithm;
this.z = z;
this.keySize = keySize;
this.extraInfo = (ulong)0L;
}
// Token: 0x0600BC93 RID: 48275 RVA: 0x002AE26C File Offset: 0x002AC46C
[Token(Token = "0x600BC93")]
[Address(RVA = "0x1B35CD0", Offset = "0x1B34AD0", VA = "0x181B35CD0")]
public DHKdfParameters(DerObjectIdentifier algorithm, int keySize, byte[] z, byte[] extraInfo)
{
this.algorithm = algorithm;
this.z = z;
this.extraInfo = 0;
this.keySize = keySize;
}
// Token: 0x17001D33 RID: 7475
// (get) Token: 0x0600BC94 RID: 48276 RVA: 0x002AE29C File Offset: 0x002AC49C
[Token(Token = "0x17001D33")]
public DerObjectIdentifier Algorithm
{
[Token(Token = "0x600BC94")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")]
get
{
return this.algorithm;
}
}
// Token: 0x17001D34 RID: 7476
// (get) Token: 0x0600BC95 RID: 48277 RVA: 0x002AE2B0 File Offset: 0x002AC4B0
[Token(Token = "0x17001D34")]
public int KeySize
{
[Token(Token = "0x600BC95")]
[Address(RVA = "0x40B720", Offset = "0x40A520", VA = "0x18040B720")]
get
{
return this.keySize;
}
}
// Token: 0x0600BC96 RID: 48278 RVA: 0x002AE2C4 File Offset: 0x002AC4C4
[Token(Token = "0x600BC96")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")]
public byte[] GetZ()
{
return this.z;
}
// Token: 0x0600BC97 RID: 48279 RVA: 0x002AE2D8 File Offset: 0x002AC4D8
[Token(Token = "0x600BC97")]
[Address(RVA = "0x3F63E0", Offset = "0x3F51E0", VA = "0x1803F63E0")]
public byte[] GetExtraInfo()
{
return this.extraInfo;
}
// Token: 0x0400780C RID: 30732
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400780C")]
private readonly DerObjectIdentifier algorithm;
// Token: 0x0400780D RID: 30733
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400780D")]
private readonly int keySize;
// Token: 0x0400780E RID: 30734
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400780E")]
private readonly byte[] z;
// Token: 0x0400780F RID: 30735
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400780F")]
private readonly byte[] extraInfo;
}
}
@@ -0,0 +1,137 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001D17 RID: 7447
[Token(Token = "0x2001D17")]
public class DHKekGenerator : IDerivationFunction
{
// Token: 0x0600BC98 RID: 48280 RVA: 0x002AE2EC File Offset: 0x002AC4EC
[Token(Token = "0x600BC98")]
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
public DHKekGenerator(IDigest digest)
{
this.digest = digest;
}
// Token: 0x0600BC99 RID: 48281 RVA: 0x002AE308 File Offset: 0x002AC508
[Token(Token = "0x600BC99")]
[Address(RVA = "0x1B362F0", Offset = "0x1B350F0", VA = "0x181B362F0", Slot = "7")]
public virtual void Init(IDerivationParameters param)
{
int num;
do
{
num = 0;
}
while (param == 0);
this.algorithm = num;
this.keySize = num;
this.z = num;
this.partyAInfo = num;
}
// Token: 0x17001D35 RID: 7477
// (get) Token: 0x0600BC9A RID: 48282 RVA: 0x002AE340 File Offset: 0x002AC540
[Token(Token = "0x17001D35")]
public virtual IDigest Digest
{
[Token(Token = "0x600BC9A")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "8")]
get
{
return this.digest;
}
}
// Token: 0x0600BC9B RID: 48283 RVA: 0x002AE354 File Offset: 0x002AC554
[Token(Token = "0x600BC9B")]
[Address(RVA = "0x1B35D20", Offset = "0x1B34B20", VA = "0x181B35D20", Slot = "9")]
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len)
{
int num = outBytes.Length;
num -= len;
IDigest digest = this.digest;
IDigest digest2 = this.digest;
int num2 = len - 1;
num2 += num;
byte[] array = new byte[num2];
if (num2 <= 0)
{
IDigest digest3 = this.digest;
return len;
}
int num3 = 0;
byte[] array2 = this.z;
IDigest digest4 = this.digest;
if (num3 < digest2)
{
num3 += num3;
num3++;
}
Asn1Encodable[] array3 = new Asn1Encodable[2];
DerObjectIdentifier derObjectIdentifier = this.algorithm;
if (derObjectIdentifier != 0)
{
}
array3[0] = derObjectIdentifier;
uint num4;
DerOctetString derOctetString = new DerOctetString(Pack.UInt32_To_BE(num4));
if (derOctetString != 0)
{
}
array3[1] = derOctetString;
DerSequence derSequence = new DerSequence(array3);
Asn1Encodable[] array4 = new Asn1Encodable[1];
if (derSequence != 0)
{
}
array4[0] = derSequence;
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(array4);
if (this.partyAInfo != (ulong)0L)
{
Asn1Encodable[] array5 = new Asn1Encodable[1];
DerOctetString derOctetString2 = new DerOctetString(this.partyAInfo);
ulong num5;
int num6;
DerTaggedObject derTaggedObject = new DerTaggedObject(num5 != 0UL, num6, derOctetString2);
num6 = 0;
throw new ArrayTypeMismatchException();
}
Asn1Encodable[] array6 = new Asn1Encodable[1];
DerOctetString derOctetString3 = new DerOctetString(Pack.UInt32_To_BE((uint)this.keySize));
ulong num7;
uint num8;
DerTaggedObject derTaggedObject2 = new DerTaggedObject(num7 != 0UL, (int)num8, derOctetString3);
throw new ArrayTypeMismatchException();
}
// Token: 0x04007810 RID: 30736
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007810")]
private readonly IDigest digest;
// Token: 0x04007811 RID: 30737
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007811")]
private DerObjectIdentifier algorithm;
// Token: 0x04007812 RID: 30738
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007812")]
private int keySize;
// Token: 0x04007813 RID: 30739
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007813")]
private byte[] z;
// Token: 0x04007814 RID: 30740
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007814")]
private byte[] partyAInfo;
}
}
@@ -0,0 +1,111 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Kdf
{
// Token: 0x02001D18 RID: 7448
[Token(Token = "0x2001D18")]
public class ECDHKekGenerator : IDerivationFunction
{
// Token: 0x0600BC9C RID: 48284 RVA: 0x002AE4F8 File Offset: 0x002AC6F8
[Token(Token = "0x600BC9C")]
[Address(RVA = "0x1B38490", Offset = "0x1B37290", VA = "0x181B38490")]
public ECDHKekGenerator(IDigest digest)
{
Kdf2BytesGenerator kdf2BytesGenerator = new Kdf2BytesGenerator(digest);
this.kdf = kdf2BytesGenerator;
}
// Token: 0x0600BC9D RID: 48285 RVA: 0x002AE51C File Offset: 0x002AC71C
[Token(Token = "0x600BC9D")]
[Address(RVA = "0x1B383F0", Offset = "0x1B371F0", VA = "0x181B383F0", Slot = "7")]
public virtual void Init(IDerivationParameters param)
{
int num;
do
{
num = 0;
}
while (param == 0);
this.algorithm = num;
this.keySize = num;
this.z = num;
}
// Token: 0x17001D36 RID: 7478
// (get) Token: 0x0600BC9E RID: 48286 RVA: 0x002AE54C File Offset: 0x002AC74C
[Token(Token = "0x17001D36")]
public virtual IDigest Digest
{
[Token(Token = "0x600BC9E")]
[Address(RVA = "0x1B38500", Offset = "0x1B37300", VA = "0x181B38500", Slot = "8")]
get
{
IDerivationFunction derivationFunction = this.kdf;
throw new NullReferenceException();
}
}
// Token: 0x0600BC9F RID: 48287 RVA: 0x002AE568 File Offset: 0x002AC768
[Token(Token = "0x600BC9F")]
[Address(RVA = "0x1B38120", Offset = "0x1B36F20", VA = "0x181B38120", Slot = "9")]
public virtual int GenerateBytes(byte[] outBytes, int outOff, int len)
{
Asn1Encodable[] array = new Asn1Encodable[2];
DerObjectIdentifier derObjectIdentifier = this.algorithm;
DerNull instance = DerNull.Instance;
AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(derObjectIdentifier, instance);
if (algorithmIdentifier != 0)
{
}
array[0] = algorithmIdentifier;
DerOctetString derOctetString = new DerOctetString(Pack.UInt32_To_BE((uint)this.keySize));
ulong num;
DerTaggedObject derTaggedObject = new DerTaggedObject(num != 0UL, 2, derOctetString);
int num2 = 0;
if (derTaggedObject != 0)
{
}
array[1] = derTaggedObject;
DerSequence derSequence = new DerSequence(array);
IDerivationFunction derivationFunction = this.kdf;
byte[] array2 = this.z;
byte[] derEncoded = derSequence.GetDerEncoded();
KdfParameters kdfParameters = new KdfParameters(array2, derEncoded);
IDerivationFunction derivationFunction2 = this.kdf;
if (num2 < typeof(IDerivationFunction).TypeHandle)
{
num2 += num2;
num2++;
}
IDigest digest = derivationFunction2.Digest;
derivationFunction2 += derivationFunction2;
throw new NullReferenceException();
}
// Token: 0x04007815 RID: 30741
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007815")]
private readonly IDerivationFunction kdf;
// Token: 0x04007816 RID: 30742
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007816")]
private DerObjectIdentifier algorithm;
// Token: 0x04007817 RID: 30743
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007817")]
private int keySize;
// Token: 0x04007818 RID: 30744
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007818")]
private byte[] z;
}
}
@@ -0,0 +1,338 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D0D RID: 7437
[Token(Token = "0x2001D0D")]
public class SM2KeyExchange
{
// Token: 0x0600BC50 RID: 48208 RVA: 0x002ACD20 File Offset: 0x002AAF20
[Token(Token = "0x600BC50")]
[Address(RVA = "0x1B479A0", Offset = "0x1B467A0", VA = "0x181B479A0")]
public SM2KeyExchange()
{
SM3Digest sm3Digest = new SM3Digest();
base..ctor();
this.mDigest = sm3Digest;
}
// Token: 0x0600BC51 RID: 48209 RVA: 0x002ACD40 File Offset: 0x002AAF40
[Token(Token = "0x600BC51")]
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
public SM2KeyExchange(IDigest digest)
{
this.mDigest = digest;
}
// Token: 0x0600BC52 RID: 48210 RVA: 0x002ACD5C File Offset: 0x002AAF5C
[Token(Token = "0x600BC52")]
[Address(RVA = "0x1B46FD0", Offset = "0x1B45DD0", VA = "0x181B46FD0", Slot = "4")]
public virtual void Init(ICipherParameters privParam)
{
while (privParam != 0)
{
if ((privParam != 0 || privParam != 0) && privParam != 0 && privParam != 0)
{
if (privParam == 0)
{
}
if (privParam != 0 && privParam != 0 && privParam != 0)
{
break;
}
}
}
int num = 0;
byte[] array = new byte[0];
this.mUserID = array;
string text = num.ToString();
this.mInitiator = text != null;
int num2;
this.mStaticKey = num2;
TypeCode typeCode = num.GetTypeCode();
this.mEphemeralKey = typeCode;
ECDomainParameters parameters = this.mStaticKey.parameters;
this.mECParams = parameters;
string text2;
this.mStaticPubPoint = text2;
ECDomainParameters ecdomainParameters = this.mECParams;
bool flag;
this.mEphemeralPubPoint = flag;
string text3 = ecdomainParameters.curve.ToString();
this.mW = text3;
}
// Token: 0x0600BC53 RID: 48211 RVA: 0x002ACE24 File Offset: 0x002AB024
[Token(Token = "0x600BC53")]
[Address(RVA = "0x1B46810", Offset = "0x1B45610", VA = "0x181B46810", Slot = "5")]
public virtual byte[] CalculateKey(int kLen, ICipherParameters pubParam)
{
while (pubParam != 0)
{
if ((pubParam != 0 || pubParam != 0) && pubParam != 0 && pubParam != 0)
{
if (pubParam == 0)
{
}
if (pubParam != 0 && pubParam != 0 && pubParam != 0)
{
break;
}
}
}
int num = 0;
byte[] array = new byte[0];
ECPoint ecpoint = this.mStaticPubPoint;
byte[] array2 = this.mUserID;
IDigest digest = this.mDigest;
byte[] z = this.GetZ(digest, array2, ecpoint);
IDigest digest2 = this.mDigest;
string text = num.ToString();
byte[] z2 = this.GetZ(digest2, array, ecpoint);
if (!this.mInitiator)
{
}
throw new NullReferenceException();
}
// Token: 0x0600BC54 RID: 48212 RVA: 0x002ACEC4 File Offset: 0x002AB0C4
[Token(Token = "0x600BC54")]
[Address(RVA = "0x1B46150", Offset = "0x1B44F50", VA = "0x181B46150", Slot = "6")]
public virtual byte[][] CalculateKeyWithConfirmation(int kLen, byte[] confirmationTag, ICipherParameters pubParam)
{
/*
An exception occurred when decompiling this method (0600BC54)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[][] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.SM2KeyExchange::CalculateKeyWithConfirmation(System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_139:
stloc:ArgumentException(var_32_143, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("if initiating, confirmationTag must be set")))
}
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: 0x0600BC55 RID: 48213 RVA: 0x002AD018 File Offset: 0x002AB218
[Token(Token = "0x600BC55")]
[Address(RVA = "0x1B46B10", Offset = "0x1B45910", VA = "0x181B46B10", Slot = "7")]
protected virtual ECPoint CalculateU(SM2KeyExchangePublicParameters otherPub)
{
ECDomainParameters parameters = this.mStaticKey.parameters;
ECCurve curve = parameters.curve;
string text = otherPub.ToString();
ECCurve curve2 = parameters.curve;
ECPoint q = otherPub.StaticPublicKey.q;
ECPoint ecpoint = ECAlgorithms.CleanPoint(curve2, q);
string text2 = this.mEphemeralPubPoint.CurveCoordinateSystem.ToString();
string text3 = ecpoint.CurveCoordinateSystem.ToString();
ECPrivateKeyParameters ecprivateKeyParameters = this.mStaticKey;
ECPrivateKeyParameters ecprivateKeyParameters2 = this.mEphemeralKey;
BigInteger d = ecprivateKeyParameters.d;
BigInteger d2 = ecprivateKeyParameters2.d;
BigInteger bigInteger2;
BigInteger bigInteger = bigInteger2.Multiply(d2);
BigInteger bigInteger3 = d.Add(bigInteger);
BigInteger bigInteger4 = this.mECParams.h.Multiply(bigInteger3);
BigInteger n = this.mECParams.n;
BigInteger bigInteger5 = bigInteger4.Mod(n);
BigInteger bigInteger7;
BigInteger bigInteger6 = bigInteger5.Multiply(bigInteger7);
BigInteger n2 = this.mECParams.n;
BigInteger bigInteger8 = bigInteger6.Mod(n2);
ECPoint ecpoint2;
bool flag = ECAlgorithms.SumOfTwoMultiplies(ecpoint2, bigInteger5, ecpoint, bigInteger8).SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600BC56 RID: 48214 RVA: 0x002AD120 File Offset: 0x002AB320
[Token(Token = "0x600BC56")]
[Address(RVA = "0x1B472E0", Offset = "0x1B460E0", VA = "0x181B472E0", Slot = "8")]
protected virtual byte[] Kdf(ECPoint u, byte[] za, byte[] zb, int klen)
{
IDigest digest = this.mDigest;
int num;
byte[] array = new byte[num];
byte[] array2 = new byte[num];
int num2 = 0;
if (array2 != 0)
{
int curveCoordinateSystem = u.CurveCoordinateSystem;
IDigest digest2 = this.mDigest;
ECFieldElement affineXCoord = u.AffineXCoord;
this.AddFieldElement(digest2, affineXCoord);
IDigest digest3 = this.mDigest;
int length = za.Length;
IDigest digest4 = this.mDigest;
int length2 = zb.Length;
}
if (num2 < array2.Length)
{
if (array2 == 0)
{
int curveCoordinateSystem2 = u.CurveCoordinateSystem;
IDigest digest5 = this.mDigest;
ECFieldElement affineXCoord2 = u.AffineXCoord;
this.AddFieldElement(digest5, affineXCoord2);
IDigest digest6 = this.mDigest;
int length3 = za.Length;
IDigest digest7 = this.mDigest;
int length4 = zb.Length;
}
num2++;
int num3 = 0;
Pack.UInt32_To_BE((uint)num2, array, num3);
IDigest digest8 = this.mDigest;
IDigest digest9 = this.mDigest;
int num4 = array2.Length;
num4 -= num2;
int num5 = 0;
int num6;
Array.Copy(array, num5, array2, num2, num6);
num2 += num6;
}
return array2;
}
// Token: 0x0600BC57 RID: 48215 RVA: 0x002AD234 File Offset: 0x002AB434
[Token(Token = "0x600BC57")]
[Address(RVA = "0x1B476D0", Offset = "0x1B464D0", VA = "0x181B476D0")]
private BigInteger Reduce(BigInteger x)
{
BigInteger one = BigInteger.One;
int num = this.mW;
BigInteger bigInteger = one.ShiftLeft(num);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger2 = bigInteger.Subtract(one2);
BigInteger bigInteger3 = x.And(bigInteger2);
int num2 = this.mW;
return bigInteger3.SetBit(num2);
}
// Token: 0x0600BC58 RID: 48216 RVA: 0x002AD288 File Offset: 0x002AB488
[Token(Token = "0x600BC58")]
[Address(RVA = "0x1B477A0", Offset = "0x1B465A0", VA = "0x181B477A0")]
private byte[] S1(IDigest digest, ECPoint u, byte[] inner)
{
ECFieldElement affineXCoord = u.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
int length = inner.Length;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600BC59 RID: 48217 RVA: 0x002AD2B8 File Offset: 0x002AB4B8
[Token(Token = "0x600BC59")]
[Address(RVA = "0x1B45F90", Offset = "0x1B44D90", VA = "0x181B45F90")]
private byte[] CalculateInnerHash(IDigest digest, ECPoint u, byte[] za, byte[] zb, ECPoint p1, ECPoint p2)
{
int curveCoordinateSystem = u.CurveCoordinateSystem;
int length = za.Length;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600BC5A RID: 48218 RVA: 0x002AD2E4 File Offset: 0x002AB4E4
[Token(Token = "0x600BC5A")]
[Address(RVA = "0x1B478A0", Offset = "0x1B466A0", VA = "0x181B478A0")]
private byte[] S2(IDigest digest, ECPoint u, byte[] inner)
{
ECFieldElement affineXCoord = u.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
int length = inner.Length;
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600BC5B RID: 48219 RVA: 0x002AD314 File Offset: 0x002AB514
[Token(Token = "0x600BC5B")]
[Address(RVA = "0x1B46D70", Offset = "0x1B45B70", VA = "0x181B46D70")]
private byte[] GetZ(IDigest digest, byte[] userID, ECPoint pubPoint)
{
int length = userID.Length;
IFiniteField field = this.mECParams.curve.Field;
ECFieldElement a = this.mECParams.curve.A;
this.AddFieldElement(digest, a);
int curveCoordinateSystem = this.mECParams.g.CurveCoordinateSystem;
ECFieldElement affineXCoord = this.mECParams.g.AffineXCoord;
this.AddFieldElement(digest, affineXCoord);
int curveCoordinateSystem2 = pubPoint.CurveCoordinateSystem;
ECFieldElement affineXCoord2 = pubPoint.AffineXCoord;
this.AddFieldElement(digest, affineXCoord2);
return DigestUtilities.DoFinal(digest);
}
// Token: 0x0600BC5C RID: 48220 RVA: 0x002AD3A4 File Offset: 0x002AB5A4
[Token(Token = "0x600BC5C")]
[Address(RVA = "0x1B45EE0", Offset = "0x1B44CE0", VA = "0x181B45EE0")]
private void AddUserID(IDigest digest, byte[] userID)
{
int length = userID.Length;
}
// Token: 0x0600BC5D RID: 48221 RVA: 0x002AD3C0 File Offset: 0x002AB5C0
[Token(Token = "0x600BC5D")]
[Address(RVA = "0x1B45E50", Offset = "0x1B44C50", VA = "0x181B45E50")]
private void AddFieldElement(IDigest digest, ECFieldElement v)
{
}
// Token: 0x040077CB RID: 30667
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077CB")]
private readonly IDigest mDigest;
// Token: 0x040077CC RID: 30668
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077CC")]
private byte[] mUserID;
// Token: 0x040077CD RID: 30669
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077CD")]
private ECPrivateKeyParameters mStaticKey;
// Token: 0x040077CE RID: 30670
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40077CE")]
private ECPoint mStaticPubPoint;
// Token: 0x040077CF RID: 30671
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40077CF")]
private ECPoint mEphemeralPubPoint;
// Token: 0x040077D0 RID: 30672
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40077D0")]
private ECDomainParameters mECParams;
// Token: 0x040077D1 RID: 30673
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40077D1")]
private int mW;
// Token: 0x040077D2 RID: 30674
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40077D2")]
private ECPrivateKeyParameters mEphemeralKey;
// Token: 0x040077D3 RID: 30675
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40077D3")]
private bool mInitiator;
}
}
@@ -0,0 +1,275 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001D10 RID: 7440
[Token(Token = "0x2001D10")]
public class Srp6Client
{
// Token: 0x0600BC66 RID: 48230 RVA: 0x002AD4C4 File Offset: 0x002AB6C4
[Token(Token = "0x600BC66")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Srp6Client()
{
}
// Token: 0x0600BC67 RID: 48231 RVA: 0x002AD4D8 File Offset: 0x002AB6D8
[Token(Token = "0x600BC67")]
[Address(RVA = "0x1B47DD0", Offset = "0x1B46BD0", VA = "0x181B47DD0", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, IDigest digest, SecureRandom random)
{
this.random = 0;
this.N = N;
this.g = g;
this.digest = digest;
}
// Token: 0x0600BC68 RID: 48232 RVA: 0x002AD504 File Offset: 0x002AB704
[Token(Token = "0x600BC68")]
[Address(RVA = "0x1B47DF0", Offset = "0x1B46BF0", VA = "0x181B47DF0", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, IDigest digest, SecureRandom random)
{
string text = this.ToString();
}
// Token: 0x0600BC69 RID: 48233 RVA: 0x002AD520 File Offset: 0x002AB720
[Token(Token = "0x600BC69")]
[Address(RVA = "0x1B47D60", Offset = "0x1B46B60", VA = "0x181B47D60", Slot = "6")]
public virtual BigInteger GenerateClientCredentials(byte[] salt, byte[] identity, byte[] password)
{
BigInteger n = this.N;
BigInteger bigInteger = Srp6Utilities.CalculateX(this.digest, n, salt, identity, password);
this.x = bigInteger;
BigInteger bigInteger2 = this.g;
BigInteger bigInteger3;
this.privA = bigInteger3;
BigInteger n2 = this.N;
BigInteger bigInteger4 = bigInteger2.ModPow(bigInteger3, n2);
this.pubA = bigInteger4;
return bigInteger4;
}
// Token: 0x0600BC6A RID: 48234 RVA: 0x002AD580 File Offset: 0x002AB780
[Token(Token = "0x600BC6A")]
[Address(RVA = "0x1B47BA0", Offset = "0x1B469A0", VA = "0x181B47BA0", Slot = "7")]
public virtual BigInteger CalculateSecret(BigInteger serverB)
{
BigInteger bigInteger = Srp6Utilities.ValidatePublicValue(this.N, serverB);
BigInteger bigInteger2 = this.pubA;
BigInteger n = this.N;
IDigest digest = this.digest;
this.B = bigInteger;
BigInteger bigInteger3 = Srp6Utilities.HashPaddedPair(digest, n, bigInteger2, bigInteger);
BigInteger n2 = this.N;
BigInteger bigInteger4 = this.g;
IDigest digest2 = this.digest;
this.u = bigInteger3;
BigInteger bigInteger5 = Srp6Utilities.HashPaddedPair(digest2, n2, n2, bigInteger4);
BigInteger bigInteger6 = this.u;
BigInteger bigInteger7 = this.x;
BigInteger bigInteger8 = bigInteger6.Multiply(bigInteger7);
BigInteger bigInteger9 = this.privA;
BigInteger bigInteger10 = bigInteger8.Add(bigInteger9);
BigInteger bigInteger11 = this.g;
BigInteger n3 = this.N;
BigInteger bigInteger12 = this.x;
BigInteger bigInteger13 = bigInteger11.ModPow(bigInteger12, n3).Multiply(bigInteger5);
BigInteger n4 = this.N;
BigInteger bigInteger14 = bigInteger13.Mod(n4);
BigInteger bigInteger15 = this.B.Subtract(bigInteger14);
BigInteger n5 = this.N;
BigInteger bigInteger16 = bigInteger15.Mod(n5);
BigInteger n6 = this.N;
BigInteger bigInteger17 = bigInteger16.ModPow(bigInteger10, n6);
this.S = bigInteger17;
return bigInteger17;
}
// Token: 0x0600BC6B RID: 48235 RVA: 0x002AD6A8 File Offset: 0x002AB8A8
[Token(Token = "0x600BC6B")]
[Address(RVA = "0x1B47E30", Offset = "0x1B46C30", VA = "0x181B47E30", Slot = "8")]
protected virtual BigInteger SelectPrivateValue()
{
SecureRandom secureRandom = this.random;
BigInteger bigInteger = this.g;
BigInteger n = this.N;
return Srp6Utilities.GeneratePrivateValue(this.digest, n, bigInteger, secureRandom);
}
// Token: 0x0600BC6C RID: 48236 RVA: 0x002AD6D8 File Offset: 0x002AB8D8
[Token(Token = "0x600BC6C")]
[Address(RVA = "0x1B47AA0", Offset = "0x1B468A0", VA = "0x181B47AA0")]
private BigInteger CalculateS()
{
BigInteger n = this.N;
BigInteger bigInteger = this.g;
BigInteger bigInteger2 = Srp6Utilities.HashPaddedPair(this.digest, n, n, bigInteger);
BigInteger bigInteger3 = this.u;
BigInteger bigInteger4 = this.x;
BigInteger bigInteger5 = bigInteger3.Multiply(bigInteger4);
BigInteger bigInteger6 = this.privA;
BigInteger bigInteger7 = bigInteger5.Add(bigInteger6);
BigInteger bigInteger8 = this.g;
BigInteger n2 = this.N;
BigInteger bigInteger9 = this.x;
BigInteger bigInteger10 = bigInteger8.ModPow(bigInteger9, n2).Multiply(bigInteger2);
BigInteger n3 = this.N;
BigInteger bigInteger11 = bigInteger10.Mod(n3);
BigInteger bigInteger12 = this.B.Subtract(bigInteger11);
BigInteger n4 = this.N;
BigInteger bigInteger13 = bigInteger12.Mod(n4);
BigInteger n5 = this.N;
return bigInteger13.ModPow(bigInteger7, n5);
}
// Token: 0x0600BC6D RID: 48237 RVA: 0x002AD7AC File Offset: 0x002AB9AC
[Token(Token = "0x600BC6D")]
[Address(RVA = "0x1B47A00", Offset = "0x1B46800", VA = "0x181B47A00", Slot = "9")]
public virtual BigInteger CalculateClientEvidenceMessage()
{
/*
An exception occurred when decompiling this method (0600BC6D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::CalculateClientEvidenceMessage()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:CryptoException(var_6_4E, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute M1: some data are missing from the previous operations (A,B,S)")))
}
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: 0x0600BC6E RID: 48238 RVA: 0x002AD808 File Offset: 0x002ABA08
[Token(Token = "0x600BC6E")]
[Address(RVA = "0x1B47E60", Offset = "0x1B46C60", VA = "0x181B47E60", Slot = "10")]
public virtual bool VerifyServerEvidenceMessage(BigInteger serverM2)
{
/*
An exception occurred when decompiling this method (0600BC6E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::VerifyServerEvidenceMessage(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:CryptoException(var_5_4D, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute and verify M2: some data are missing from the previous operations (A,M1,S)")))
}
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: 0x0600BC6F RID: 48239 RVA: 0x002AD864 File Offset: 0x002ABA64
[Token(Token = "0x600BC6F")]
[Address(RVA = "0x1B47CD0", Offset = "0x1B46AD0", VA = "0x181B47CD0", Slot = "11")]
public virtual BigInteger CalculateSessionKey()
{
/*
An exception occurred when decompiling this method (0600BC6F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::CalculateSessionKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:CryptoException(var_3_49, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute Key: some data are missing from the previous operations (S,M1,M2)")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x040077D6 RID: 30678
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077D6")]
protected BigInteger N;
// Token: 0x040077D7 RID: 30679
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077D7")]
protected BigInteger g;
// Token: 0x040077D8 RID: 30680
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077D8")]
protected BigInteger privA;
// Token: 0x040077D9 RID: 30681
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40077D9")]
protected BigInteger pubA;
// Token: 0x040077DA RID: 30682
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40077DA")]
protected BigInteger B;
// Token: 0x040077DB RID: 30683
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40077DB")]
protected BigInteger x;
// Token: 0x040077DC RID: 30684
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40077DC")]
protected BigInteger u;
// Token: 0x040077DD RID: 30685
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40077DD")]
protected BigInteger S;
// Token: 0x040077DE RID: 30686
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40077DE")]
protected BigInteger M1;
// Token: 0x040077DF RID: 30687
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40077DF")]
protected BigInteger M2;
// Token: 0x040077E0 RID: 30688
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40077E0")]
protected BigInteger Key;
// Token: 0x040077E1 RID: 30689
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40077E1")]
protected IDigest digest;
// Token: 0x040077E2 RID: 30690
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40077E2")]
protected SecureRandom random;
}
}
@@ -0,0 +1,266 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001D11 RID: 7441
[Token(Token = "0x2001D11")]
public class Srp6Server
{
// Token: 0x0600BC70 RID: 48240 RVA: 0x002AD8BC File Offset: 0x002ABABC
[Token(Token = "0x600BC70")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Srp6Server()
{
}
// Token: 0x0600BC71 RID: 48241 RVA: 0x002AD8D0 File Offset: 0x002ABAD0
[Token(Token = "0x600BC71")]
[Address(RVA = "0x1B482B0", Offset = "0x1B470B0", VA = "0x181B482B0", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, BigInteger v, IDigest digest, SecureRandom random)
{
this.random = 0;
this.digest = 0;
this.N = N;
this.g = g;
this.v = v;
}
// Token: 0x0600BC72 RID: 48242 RVA: 0x002AD900 File Offset: 0x002ABB00
[Token(Token = "0x600BC72")]
[Address(RVA = "0x1B48260", Offset = "0x1B47060", VA = "0x181B48260", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, BigInteger v, IDigest digest, SecureRandom random)
{
string text = this.ToString();
}
// Token: 0x0600BC73 RID: 48243 RVA: 0x002AD91C File Offset: 0x002ABB1C
[Token(Token = "0x600BC73")]
[Address(RVA = "0x1B48190", Offset = "0x1B46F90", VA = "0x181B48190", Slot = "6")]
public virtual BigInteger GenerateServerCredentials()
{
BigInteger n = this.N;
BigInteger bigInteger = this.g;
BigInteger bigInteger2 = Srp6Utilities.HashPaddedPair(this.digest, n, n, bigInteger);
BigInteger bigInteger3;
this.privB = bigInteger3;
BigInteger bigInteger4 = this.v;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger4);
BigInteger n2 = this.N;
BigInteger bigInteger6 = bigInteger5.Mod(n2);
BigInteger bigInteger7 = this.g;
BigInteger n3 = this.N;
BigInteger bigInteger8 = this.privB;
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n3);
BigInteger bigInteger10 = bigInteger6.Add(bigInteger9);
BigInteger n4 = this.N;
BigInteger bigInteger11 = bigInteger10.Mod(n4);
this.pubB = bigInteger11;
return bigInteger11;
}
// Token: 0x0600BC74 RID: 48244 RVA: 0x002AD9C8 File Offset: 0x002ABBC8
[Token(Token = "0x600BC74")]
[Address(RVA = "0x1B47FB0", Offset = "0x1B46DB0", VA = "0x181B47FB0", Slot = "7")]
public virtual BigInteger CalculateSecret(BigInteger clientA)
{
BigInteger bigInteger = Srp6Utilities.ValidatePublicValue(this.N, clientA);
BigInteger bigInteger2 = this.pubB;
BigInteger n = this.N;
IDigest digest = this.digest;
this.A = bigInteger;
BigInteger bigInteger3 = Srp6Utilities.HashPaddedPair(digest, n, bigInteger, bigInteger2);
BigInteger bigInteger4 = this.v;
this.u = bigInteger3;
BigInteger n2 = this.N;
BigInteger bigInteger5 = bigInteger4.ModPow(bigInteger3, n2);
BigInteger a = this.A;
BigInteger bigInteger6 = bigInteger5.Multiply(a);
BigInteger n3 = this.N;
BigInteger bigInteger7 = bigInteger6.Mod(n3);
BigInteger n4 = this.N;
BigInteger bigInteger8 = this.privB;
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n4);
this.S = bigInteger9;
return bigInteger9;
}
// Token: 0x0600BC75 RID: 48245 RVA: 0x002ADA84 File Offset: 0x002ABC84
[Token(Token = "0x600BC75")]
[Address(RVA = "0x1B482D0", Offset = "0x1B470D0", VA = "0x181B482D0", Slot = "8")]
protected virtual BigInteger SelectPrivateValue()
{
SecureRandom secureRandom = this.random;
BigInteger bigInteger = this.g;
BigInteger n = this.N;
return Srp6Utilities.GeneratePrivateValue(this.digest, n, bigInteger, secureRandom);
}
// Token: 0x0600BC76 RID: 48246 RVA: 0x002ADAB4 File Offset: 0x002ABCB4
[Token(Token = "0x600BC76")]
[Address(RVA = "0x1B47F40", Offset = "0x1B46D40", VA = "0x181B47F40")]
private BigInteger CalculateS()
{
BigInteger bigInteger = this.v;
BigInteger n = this.N;
BigInteger bigInteger2 = this.u;
BigInteger bigInteger3 = bigInteger.ModPow(bigInteger2, n);
BigInteger a = this.A;
BigInteger bigInteger4 = bigInteger3.Multiply(a);
BigInteger n2 = this.N;
BigInteger bigInteger5 = bigInteger4.Mod(n2);
BigInteger n3 = this.N;
BigInteger bigInteger6 = this.privB;
return bigInteger5.ModPow(bigInteger6, n3);
}
// Token: 0x0600BC77 RID: 48247 RVA: 0x002ADB28 File Offset: 0x002ABD28
[Token(Token = "0x600BC77")]
[Address(RVA = "0x1B48300", Offset = "0x1B47100", VA = "0x181B48300", Slot = "9")]
public virtual bool VerifyClientEvidenceMessage(BigInteger clientM1)
{
/*
An exception occurred when decompiling this method (0600BC77)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::VerifyClientEvidenceMessage(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:CryptoException(var_5_4D, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute and verify M1: some data are missing from the previous operations (A,B,S)")))
}
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: 0x0600BC78 RID: 48248 RVA: 0x002ADB84 File Offset: 0x002ABD84
[Token(Token = "0x600BC78")]
[Address(RVA = "0x1B48060", Offset = "0x1B46E60", VA = "0x181B48060", Slot = "10")]
public virtual BigInteger CalculateServerEvidenceMessage()
{
/*
An exception occurred when decompiling this method (0600BC78)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::CalculateServerEvidenceMessage()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:CryptoException(var_6_4E, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute M2: some data are missing from the previous operations (A,M1,S)")))
}
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: 0x0600BC79 RID: 48249 RVA: 0x002ADBE0 File Offset: 0x002ABDE0
[Token(Token = "0x600BC79")]
[Address(RVA = "0x1B48100", Offset = "0x1B46F00", VA = "0x181B48100", Slot = "11")]
public virtual BigInteger CalculateSessionKey()
{
/*
An exception occurred when decompiling this method (0600BC79)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::CalculateSessionKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:CryptoException(var_3_49, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute Key: some data are missing from the previous operations (S,M1,M2)")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x040077E3 RID: 30691
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077E3")]
protected BigInteger N;
// Token: 0x040077E4 RID: 30692
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40077E4")]
protected BigInteger g;
// Token: 0x040077E5 RID: 30693
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40077E5")]
protected BigInteger v;
// Token: 0x040077E6 RID: 30694
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40077E6")]
protected SecureRandom random;
// Token: 0x040077E7 RID: 30695
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40077E7")]
protected IDigest digest;
// Token: 0x040077E8 RID: 30696
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40077E8")]
protected BigInteger A;
// Token: 0x040077E9 RID: 30697
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40077E9")]
protected BigInteger privB;
// Token: 0x040077EA RID: 30698
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40077EA")]
protected BigInteger pubB;
// Token: 0x040077EB RID: 30699
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40077EB")]
protected BigInteger u;
// Token: 0x040077EC RID: 30700
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40077EC")]
protected BigInteger S;
// Token: 0x040077ED RID: 30701
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40077ED")]
protected BigInteger M1;
// Token: 0x040077EE RID: 30702
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40077EE")]
protected BigInteger M2;
// Token: 0x040077EF RID: 30703
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40077EF")]
protected BigInteger Key;
}
}
@@ -0,0 +1,123 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001D12 RID: 7442
[Token(Token = "0x2001D12")]
public class Srp6StandardGroups
{
// Token: 0x0600BC7A RID: 48250 RVA: 0x002ADC38 File Offset: 0x002ABE38
[Token(Token = "0x600BC7A")]
[Address(RVA = "0x1B483E0", Offset = "0x1B471E0", VA = "0x181B483E0")]
private static BigInteger FromHex(string hex)
{
byte[] array = Hex.Decode(hex);
return new BigInteger(1, array);
}
// Token: 0x0600BC7B RID: 48251 RVA: 0x002ADC54 File Offset: 0x002ABE54
[Token(Token = "0x600BC7B")]
[Address(RVA = "0x1B48470", Offset = "0x1B47270", VA = "0x181B48470")]
private static Srp6GroupParameters FromNG(string hexN, string hexG)
{
BigInteger bigInteger = Srp6StandardGroups.FromHex(hexN);
BigInteger bigInteger2 = Srp6StandardGroups.FromHex(hexG);
return new Srp6GroupParameters(bigInteger, bigInteger2);
}
// Token: 0x0600BC7C RID: 48252 RVA: 0x002ADC78 File Offset: 0x002ABE78
[Token(Token = "0x600BC7C")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Srp6StandardGroups()
{
}
// Token: 0x040077F0 RID: 30704
[Token(Token = "0x40077F0")]
private const string rfc5054_1024_N = "EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3";
// Token: 0x040077F1 RID: 30705
[Token(Token = "0x40077F1")]
private const string rfc5054_1024_g = "02";
// Token: 0x040077F2 RID: 30706
[Token(Token = "0x40077F2")]
public static readonly Srp6GroupParameters rfc5054_1024 = Srp6StandardGroups.FromNG("EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3", "02");
// Token: 0x040077F3 RID: 30707
[Token(Token = "0x40077F3")]
private const string rfc5054_1536_N = "9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB";
// Token: 0x040077F4 RID: 30708
[Token(Token = "0x40077F4")]
private const string rfc5054_1536_g = "02";
// Token: 0x040077F5 RID: 30709
[Token(Token = "0x40077F5")]
public static readonly Srp6GroupParameters rfc5054_1536 = Srp6StandardGroups.FromNG("9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB", "02");
// Token: 0x040077F6 RID: 30710
[Token(Token = "0x40077F6")]
private const string rfc5054_2048_N = "AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73";
// Token: 0x040077F7 RID: 30711
[Token(Token = "0x40077F7")]
private const string rfc5054_2048_g = "02";
// Token: 0x040077F8 RID: 30712
[Token(Token = "0x40077F8")]
public static readonly Srp6GroupParameters rfc5054_2048 = Srp6StandardGroups.FromNG("AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73", "02");
// Token: 0x040077F9 RID: 30713
[Token(Token = "0x40077F9")]
private const string rfc5054_3072_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
// Token: 0x040077FA RID: 30714
[Token(Token = "0x40077FA")]
private const string rfc5054_3072_g = "05";
// Token: 0x040077FB RID: 30715
[Token(Token = "0x40077FB")]
public static readonly Srp6GroupParameters rfc5054_3072 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF", "05");
// Token: 0x040077FC RID: 30716
[Token(Token = "0x40077FC")]
private const string rfc5054_4096_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF";
// Token: 0x040077FD RID: 30717
[Token(Token = "0x40077FD")]
private const string rfc5054_4096_g = "05";
// Token: 0x040077FE RID: 30718
[Token(Token = "0x40077FE")]
public static readonly Srp6GroupParameters rfc5054_4096 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF", "05");
// Token: 0x040077FF RID: 30719
[Token(Token = "0x40077FF")]
private const string rfc5054_6144_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF";
// Token: 0x04007800 RID: 30720
[Token(Token = "0x4007800")]
private const string rfc5054_6144_g = "05";
// Token: 0x04007801 RID: 30721
[Token(Token = "0x4007801")]
public static readonly Srp6GroupParameters rfc5054_6144 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF", "05");
// Token: 0x04007802 RID: 30722
[Token(Token = "0x4007802")]
private const string rfc5054_8192_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF";
// Token: 0x04007803 RID: 30723
[Token(Token = "0x4007803")]
private const string rfc5054_8192_g = "13";
// Token: 0x04007804 RID: 30724
[Token(Token = "0x4007804")]
public static readonly Srp6GroupParameters rfc5054_8192 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF", "13");
}
}
@@ -0,0 +1,157 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001D13 RID: 7443
[Token(Token = "0x2001D13")]
public class Srp6Utilities
{
// Token: 0x0600BC7E RID: 48254 RVA: 0x002ADD28 File Offset: 0x002ABF28
[Token(Token = "0x600BC7E")]
[Address(RVA = "0x1B48650", Offset = "0x1B47450", VA = "0x181B48650")]
public static BigInteger CalculateK(IDigest digest, BigInteger N, BigInteger g)
{
return Srp6Utilities.HashPaddedPair(digest, N, N, g);
}
// Token: 0x0600BC7F RID: 48255 RVA: 0x002ADD40 File Offset: 0x002ABF40
[Token(Token = "0x600BC7F")]
[Address(RVA = "0x1B48790", Offset = "0x1B47590", VA = "0x181B48790")]
public static BigInteger CalculateU(IDigest digest, BigInteger N, BigInteger A, BigInteger B)
{
return Srp6Utilities.HashPaddedPair(digest, N, A, B);
}
// Token: 0x0600BC80 RID: 48256 RVA: 0x002ADD58 File Offset: 0x002ABF58
[Token(Token = "0x600BC80")]
[Address(RVA = "0x1B487A0", Offset = "0x1B475A0", VA = "0x181B487A0")]
public static BigInteger CalculateX(IDigest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password)
{
byte[] array = new byte[0];
int length = identity.Length;
int length2 = salt.Length;
int length3 = array.Length;
return new BigInteger(1, array);
}
// Token: 0x0600BC81 RID: 48257 RVA: 0x002ADD94 File Offset: 0x002ABF94
[Token(Token = "0x600BC81")]
[Address(RVA = "0x1B48950", Offset = "0x1B47750", VA = "0x181B48950")]
public static BigInteger GeneratePrivateValue(IDigest digest, BigInteger N, BigInteger g, SecureRandom random)
{
int num = 0;
int num2 = N.BitLength;
num2 -= num;
uint num3;
num2 = Math.Min((int)num3, num2);
BigInteger one = BigInteger.One;
int num4 = num2 - 1;
BigInteger bigInteger = one.ShiftLeft(num4);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger2 = N.Subtract(one2);
return BigIntegers.CreateRandomInRange(bigInteger, bigInteger2, random);
}
// Token: 0x0600BC82 RID: 48258 RVA: 0x002ADDEC File Offset: 0x002ABFEC
[Token(Token = "0x600BC82")]
[Address(RVA = "0x1B48E10", Offset = "0x1B47C10", VA = "0x181B48E10")]
public static BigInteger ValidatePublicValue(BigInteger N, BigInteger val)
{
return val.Mod(N);
}
// Token: 0x0600BC83 RID: 48259 RVA: 0x002ADE14 File Offset: 0x002AC014
[Token(Token = "0x600BC83")]
[Address(RVA = "0x1B48780", Offset = "0x1B47580", VA = "0x181B48780")]
public static BigInteger CalculateM1(IDigest digest, BigInteger N, BigInteger A, BigInteger B, BigInteger S)
{
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600BC84 RID: 48260 RVA: 0x002ADE24 File Offset: 0x002AC024
[Token(Token = "0x600BC84")]
[Address(RVA = "0x1B48780", Offset = "0x1B47580", VA = "0x181B48780")]
public static BigInteger CalculateM2(IDigest digest, BigInteger N, BigInteger A, BigInteger M1, BigInteger S)
{
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600BC85 RID: 48261 RVA: 0x002ADE34 File Offset: 0x002AC034
[Token(Token = "0x600BC85")]
[Address(RVA = "0x1B48670", Offset = "0x1B47470", VA = "0x181B48670")]
public static BigInteger CalculateKey(IDigest digest, BigInteger N, BigInteger S)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num += num2;
byte[] padded = Srp6Utilities.GetPadded(S, num);
int length = padded.Length;
byte[] array = new byte[padded];
return new BigInteger(1, array);
}
// Token: 0x0600BC86 RID: 48262 RVA: 0x002ADE7C File Offset: 0x002AC07C
[Token(Token = "0x600BC86")]
[Address(RVA = "0x1B48C60", Offset = "0x1B47A60", VA = "0x181B48C60")]
private static BigInteger HashPaddedTriplet(IDigest digest, BigInteger N, BigInteger n1, BigInteger n2, BigInteger n3)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num2 += num;
byte[] padded = Srp6Utilities.GetPadded(n1, num2);
byte[] padded2 = Srp6Utilities.GetPadded(n2, num2);
int length = padded.Length;
int length2 = padded2.Length;
byte[] array2;
byte[] array = new byte[array2.Length];
return new BigInteger(1, array);
}
// Token: 0x0600BC87 RID: 48263 RVA: 0x002ADEDC File Offset: 0x002AC0DC
[Token(Token = "0x600BC87")]
[Address(RVA = "0x1B48B00", Offset = "0x1B47900", VA = "0x181B48B00")]
private static BigInteger HashPaddedPair(IDigest digest, BigInteger N, BigInteger n1, BigInteger n2)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num2 += num;
byte[] padded = Srp6Utilities.GetPadded(n1, num2);
byte[] padded2 = Srp6Utilities.GetPadded(n2, num2);
int length = padded.Length;
byte[] array = new byte[padded2.Length];
return new BigInteger(1, array);
}
// Token: 0x0600BC88 RID: 48264 RVA: 0x002ADF30 File Offset: 0x002AC130
[Token(Token = "0x600BC88")]
[Address(RVA = "0x1B48A60", Offset = "0x1B47860", VA = "0x181B48A60")]
private static byte[] GetPadded(BigInteger n, int length)
{
byte[] array = BigIntegers.AsUnsignedByteArray(n);
if (array.Length < length)
{
byte[] array2 = new byte[length];
int length2 = array.Length;
int num = 0;
Array.Copy(array, num, array2, length, length2);
}
return array;
}
// Token: 0x0600BC89 RID: 48265 RVA: 0x002ADF70 File Offset: 0x002AC170
[Token(Token = "0x600BC89")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Srp6Utilities()
{
}
}
}
@@ -0,0 +1,64 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001D14 RID: 7444
[Token(Token = "0x2001D14")]
public class Srp6VerifierGenerator
{
// Token: 0x0600BC8A RID: 48266 RVA: 0x002ADF84 File Offset: 0x002AC184
[Token(Token = "0x600BC8A")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Srp6VerifierGenerator()
{
}
// Token: 0x0600BC8B RID: 48267 RVA: 0x002ADF98 File Offset: 0x002AC198
[Token(Token = "0x600BC8B")]
[Address(RVA = "0x1B48F40", Offset = "0x1B47D40", VA = "0x181B48F40", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, IDigest digest)
{
this.N = N;
this.g = g;
this.digest = digest;
}
// Token: 0x0600BC8C RID: 48268 RVA: 0x002ADFBC File Offset: 0x002AC1BC
[Token(Token = "0x600BC8C")]
[Address(RVA = "0x1B48F50", Offset = "0x1B47D50", VA = "0x181B48F50", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, IDigest digest)
{
string text = this.ToString();
}
// Token: 0x0600BC8D RID: 48269 RVA: 0x002ADFD8 File Offset: 0x002AC1D8
[Token(Token = "0x600BC8D")]
[Address(RVA = "0x1B48EF0", Offset = "0x1B47CF0", VA = "0x181B48EF0", Slot = "6")]
public virtual BigInteger GenerateVerifier(byte[] salt, byte[] identity, byte[] password)
{
BigInteger n = this.N;
BigInteger bigInteger = Srp6Utilities.CalculateX(this.digest, n, salt, identity, password);
BigInteger bigInteger2 = this.g;
BigInteger n2 = this.N;
return bigInteger2.ModPow(bigInteger, n2);
}
// Token: 0x04007805 RID: 30725
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007805")]
protected BigInteger N;
// Token: 0x04007806 RID: 30726
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007806")]
protected BigInteger g;
// Token: 0x04007807 RID: 30727
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007807")]
protected IDigest digest;
}
}
@@ -0,0 +1,66 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D0E RID: 7438
[Token(Token = "0x2001D0E")]
public sealed class X25519Agreement : IRawAgreement
{
// Token: 0x0600BC5E RID: 48222 RVA: 0x002AD3D4 File Offset: 0x002AB5D4
[Token(Token = "0x600BC5E")]
[Address(RVA = "0x1B49030", Offset = "0x1B47E30", VA = "0x181B49030", Slot = "4")]
public void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && parameters == 0);
this.privateKey = num;
}
// Token: 0x17001D30 RID: 7472
// (get) Token: 0x0600BC5F RID: 48223 RVA: 0x002AD3F4 File Offset: 0x002AB5F4
[Token(Token = "0x17001D30")]
public int AgreementSize
{
[Token(Token = "0x600BC5F")]
[Address(RVA = "0x1B49090", Offset = "0x1B47E90", VA = "0x181B49090", Slot = "5")]
get
{
return X25519PrivateKeyParameters.SecretSize;
}
}
// Token: 0x0600BC60 RID: 48224 RVA: 0x002AD408 File Offset: 0x002AB608
[Token(Token = "0x600BC60")]
[Address(RVA = "0x1B48F90", Offset = "0x1B47D90", VA = "0x181B48F90", Slot = "6")]
public void CalculateAgreement(ICipherParameters publicKey, byte[] buf, int off)
{
X25519PrivateKeyParameters x25519PrivateKeyParameters;
int num;
do
{
x25519PrivateKeyParameters = this.privateKey;
num = 0;
}
while (publicKey != 0 && publicKey == 0);
x25519PrivateKeyParameters.GenerateSecret(num, buf, off);
}
// Token: 0x0600BC61 RID: 48225 RVA: 0x002AD438 File Offset: 0x002AB638
[Token(Token = "0x600BC61")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public X25519Agreement()
{
}
// Token: 0x040077D4 RID: 30676
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077D4")]
private X25519PrivateKeyParameters privateKey;
}
}
@@ -0,0 +1,66 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement
{
// Token: 0x02001D0F RID: 7439
[Token(Token = "0x2001D0F")]
public sealed class X448Agreement : IRawAgreement
{
// Token: 0x0600BC62 RID: 48226 RVA: 0x002AD44C File Offset: 0x002AB64C
[Token(Token = "0x600BC62")]
[Address(RVA = "0x1B49190", Offset = "0x1B47F90", VA = "0x181B49190", Slot = "4")]
public void Init(ICipherParameters parameters)
{
int num;
do
{
num = 0;
}
while (parameters != 0 && parameters == 0);
this.privateKey = num;
}
// Token: 0x17001D31 RID: 7473
// (get) Token: 0x0600BC63 RID: 48227 RVA: 0x002AD46C File Offset: 0x002AB66C
[Token(Token = "0x17001D31")]
public int AgreementSize
{
[Token(Token = "0x600BC63")]
[Address(RVA = "0x1B491F0", Offset = "0x1B47FF0", VA = "0x181B491F0", Slot = "5")]
get
{
return X448PrivateKeyParameters.SecretSize;
}
}
// Token: 0x0600BC64 RID: 48228 RVA: 0x002AD480 File Offset: 0x002AB680
[Token(Token = "0x600BC64")]
[Address(RVA = "0x1B490F0", Offset = "0x1B47EF0", VA = "0x181B490F0", Slot = "6")]
public void CalculateAgreement(ICipherParameters publicKey, byte[] buf, int off)
{
X448PrivateKeyParameters x448PrivateKeyParameters;
int num;
do
{
x448PrivateKeyParameters = this.privateKey;
num = 0;
}
while (publicKey != 0 && publicKey == 0);
x448PrivateKeyParameters.GenerateSecret(num, buf, off);
}
// Token: 0x0600BC65 RID: 48229 RVA: 0x002AD4B0 File Offset: 0x002AB6B0
[Token(Token = "0x600BC65")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public X448Agreement()
{
}
// Token: 0x040077D5 RID: 30677
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40077D5")]
private X448PrivateKeyParameters privateKey;
}
}
@@ -0,0 +1,75 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC2 RID: 6850
[Token(Token = "0x2001AC2")]
public class AsymmetricCipherKeyPair
{
// Token: 0x0600AA39 RID: 43577 RVA: 0x00253F8C File Offset: 0x0025218C
[Token(Token = "0x600AA39")]
[Address(RVA = "0x1B2E630", Offset = "0x1B2D430", VA = "0x181B2E630")]
public AsymmetricCipherKeyPair(AsymmetricKeyParameter publicParameter, AsymmetricKeyParameter privateParameter)
{
/*
An exception occurred when decompiling this method (0600AA39)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.AsymmetricKeyParameter,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.AsymmetricKeyParameter)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2D:
stloc:ArgumentException(var_0_3C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Expected a private key"), ldstr:string("privateParameter")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001B0F RID: 6927
// (get) Token: 0x0600AA3A RID: 43578 RVA: 0x00253FD8 File Offset: 0x002521D8
[Token(Token = "0x17001B0F")]
public AsymmetricKeyParameter Public
{
[Token(Token = "0x600AA3A")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")]
get
{
return this.publicParameter;
}
}
// Token: 0x17001B10 RID: 6928
// (get) Token: 0x0600AA3B RID: 43579 RVA: 0x00253FEC File Offset: 0x002521EC
[Token(Token = "0x17001B10")]
public AsymmetricKeyParameter Private
{
[Token(Token = "0x600AA3B")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40")]
get
{
return this.privateParameter;
}
}
// Token: 0x04006C93 RID: 27795
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C93")]
private readonly AsymmetricKeyParameter publicParameter;
// Token: 0x04006C94 RID: 27796
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C94")]
private readonly AsymmetricKeyParameter privateParameter;
}
}
@@ -0,0 +1,66 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC3 RID: 6851
[Token(Token = "0x2001AC3")]
public abstract class AsymmetricKeyParameter : ICipherParameters
{
// Token: 0x0600AA3C RID: 43580 RVA: 0x00254000 File Offset: 0x00252200
[Token(Token = "0x600AA3C")]
[Address(RVA = "0x162F3C0", Offset = "0x162E1C0", VA = "0x18162F3C0")]
protected AsymmetricKeyParameter(bool privateKey)
{
this.privateKey = privateKey;
}
// Token: 0x17001B11 RID: 6929
// (get) Token: 0x0600AA3D RID: 43581 RVA: 0x0025401C File Offset: 0x0025221C
[Token(Token = "0x17001B11")]
public bool IsPrivate
{
[Token(Token = "0x600AA3D")]
[Address(RVA = "0x42D5E0", Offset = "0x42C3E0", VA = "0x18042D5E0")]
get
{
return this.privateKey;
}
}
// Token: 0x0600AA3E RID: 43582 RVA: 0x00254030 File Offset: 0x00252230
[Token(Token = "0x600AA3E")]
[Address(RVA = "0x1B2E720", Offset = "0x1B2D520", VA = "0x181B2E720", Slot = "0")]
public override bool Equals(object obj)
{
if (obj != 0 && obj != 0)
{
return this.privateKey == obj;
}
}
// Token: 0x0600AA3F RID: 43583 RVA: 0x00254054 File Offset: 0x00252254
[Token(Token = "0x600AA3F")]
[Address(RVA = "0x1B2E7B0", Offset = "0x1B2D5B0", VA = "0x181B2E7B0")]
protected bool Equals(AsymmetricKeyParameter other)
{
bool flag = other.privateKey;
return this.privateKey == flag;
}
// Token: 0x0600AA40 RID: 43584 RVA: 0x00254078 File Offset: 0x00252278
[Token(Token = "0x600AA40")]
[Address(RVA = "0x1B2E7D0", Offset = "0x1B2D5D0", VA = "0x181B2E7D0", Slot = "2")]
public override int GetHashCode()
{
bool flag = this.privateKey;
int num;
return num;
}
// Token: 0x04006C95 RID: 27797
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C95")]
private readonly bool privateKey;
}
}
@@ -0,0 +1,242 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC4 RID: 6852
[Token(Token = "0x2001AC4")]
public class BufferedAeadBlockCipher : BufferedCipherBase
{
// Token: 0x0600AA41 RID: 43585 RVA: 0x00254090 File Offset: 0x00252290
[Token(Token = "0x600AA41")]
[Address(RVA = "0x1B32C90", Offset = "0x1B31A90", VA = "0x181B32C90")]
public BufferedAeadBlockCipher(IAeadBlockCipher cipher)
{
/*
An exception occurred when decompiling this method (0600AA41)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAeadBlockCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentNullException(var_0_1C, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("cipher")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001B12 RID: 6930
// (get) Token: 0x0600AA42 RID: 43586 RVA: 0x002540BC File Offset: 0x002522BC
[Token(Token = "0x17001B12")]
public override string AlgorithmName
{
[Token(Token = "0x600AA42")]
[Address(RVA = "0x1B32D30", Offset = "0x1B31B30", VA = "0x181B32D30", Slot = "22")]
get
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
throw new NullReferenceException();
}
}
// Token: 0x0600AA43 RID: 43587 RVA: 0x002540D8 File Offset: 0x002522D8
[Token(Token = "0x600AA43")]
[Address(RVA = "0x1B32700", Offset = "0x1B31500", VA = "0x181B32700", Slot = "23")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
while (parameters != 0 && parameters != 0 && (parameters == 0 || parameters == 0))
{
}
IAeadBlockCipher aeadBlockCipher = this.cipher;
}
// Token: 0x0600AA44 RID: 43588 RVA: 0x00254108 File Offset: 0x00252308
[Token(Token = "0x600AA44")]
[Address(RVA = "0x1B325F0", Offset = "0x1B313F0", VA = "0x181B325F0", Slot = "24")]
public override int GetBlockSize()
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA45 RID: 43589 RVA: 0x00254124 File Offset: 0x00252324
[Token(Token = "0x600AA45")]
[Address(RVA = "0x1B326A0", Offset = "0x1B314A0", VA = "0x181B326A0", Slot = "26")]
public override int GetUpdateOutputSize(int length)
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA46 RID: 43590 RVA: 0x00254140 File Offset: 0x00252340
[Token(Token = "0x600AA46")]
[Address(RVA = "0x1B32640", Offset = "0x1B31440", VA = "0x181B32640", Slot = "25")]
public override int GetOutputSize(int length)
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA47 RID: 43591 RVA: 0x0025415C File Offset: 0x0025235C
[Token(Token = "0x600AA47")]
[Address(RVA = "0x1B32840", Offset = "0x1B31640", VA = "0x181B32840", Slot = "28")]
public override int ProcessByte(byte input, byte[] output, int outOff)
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
int num = 0;
if (num < output)
{
num += num;
num++;
}
string algorithmName = aeadBlockCipher.AlgorithmName;
throw new NullReferenceException();
}
// Token: 0x0600AA48 RID: 43592 RVA: 0x0025418C File Offset: 0x0025238C
[Token(Token = "0x600AA48")]
[Address(RVA = "0x1B32930", Offset = "0x1B31730", VA = "0x181B32930", Slot = "27")]
public override byte[] ProcessByte(byte input)
{
/*
An exception occurred when decompiling this method (0600AA48)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAeadBlockCipher::ProcessByte(System.Byte)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_2:
stloc:uint8[](var_4_2B, newarr:uint8[]([mscorlib]System.Byte, ldloc:uint8[][exp:int32](var_3_1C)))
}
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: 0x0600AA49 RID: 43593 RVA: 0x002541C8 File Offset: 0x002523C8
[Token(Token = "0x600AA49")]
[Address(RVA = "0x1B32B00", Offset = "0x1B31900", VA = "0x181B32B00", Slot = "30")]
public override byte[] ProcessBytes(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA49)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAeadBlockCipher::ProcessBytes(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_41:
stloc:ArgumentNullException(var_9_4B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("input")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA4A RID: 43594 RVA: 0x00254224 File Offset: 0x00252424
[Token(Token = "0x600AA4A")]
[Address(RVA = "0x1B32A10", Offset = "0x1B31810", VA = "0x181B32A10", Slot = "32")]
public override int ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff)
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
int num = 0;
if (num < inOff)
{
num += num;
num++;
}
string algorithmName = aeadBlockCipher.AlgorithmName;
throw new NullReferenceException();
}
// Token: 0x0600AA4B RID: 43595 RVA: 0x00254254 File Offset: 0x00252454
[Token(Token = "0x600AA4B")]
[Address(RVA = "0x1B32520", Offset = "0x1B31320", VA = "0x181B32520", Slot = "33")]
public override byte[] DoFinal()
{
byte[] array = new byte[this.GetBlockSize()];
byte[] array2;
if (array2 < array.Length)
{
byte[] array3 = new byte[array2];
}
return array;
}
// Token: 0x0600AA4C RID: 43596 RVA: 0x00254288 File Offset: 0x00252488
[Token(Token = "0x600AA4C")]
[Address(RVA = "0x1B32350", Offset = "0x1B31150", VA = "0x181B32350", Slot = "35")]
public override byte[] DoFinal(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600AA4C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAeadBlockCipher::DoFinal(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_29:
stloc:ArgumentNullException(var_7_33, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("input")))
}
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: 0x0600AA4D RID: 43597 RVA: 0x002542CC File Offset: 0x002524CC
[Token(Token = "0x600AA4D")]
[Address(RVA = "0x1B324B0", Offset = "0x1B312B0", VA = "0x181B324B0", Slot = "36")]
public override int DoFinal(byte[] output, int outOff)
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA4E RID: 43598 RVA: 0x002542E8 File Offset: 0x002524E8
[Token(Token = "0x600AA4E")]
[Address(RVA = "0x1B32C40", Offset = "0x1B31A40", VA = "0x181B32C40", Slot = "39")]
public override void Reset()
{
IAeadBlockCipher aeadBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x04006C96 RID: 27798
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C96")]
private readonly IAeadBlockCipher cipher;
}
}
@@ -0,0 +1,207 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC5 RID: 6853
[Token(Token = "0x2001AC5")]
public class BufferedAsymmetricBlockCipher : BufferedCipherBase
{
// Token: 0x0600AA4F RID: 43599 RVA: 0x00254304 File Offset: 0x00252504
[Token(Token = "0x600AA4F")]
[Address(RVA = "0x1B33230", Offset = "0x1B32030", VA = "0x181B33230")]
public BufferedAsymmetricBlockCipher(IAsymmetricBlockCipher cipher)
{
this.cipher = cipher;
}
// Token: 0x0600AA50 RID: 43600 RVA: 0x00254320 File Offset: 0x00252520
[Token(Token = "0x600AA50")]
[Address(RVA = "0x3F7310", Offset = "0x3F6110", VA = "0x1803F7310")]
internal int GetBufferPosition()
{
return this.bufOff;
}
// Token: 0x17001B13 RID: 6931
// (get) Token: 0x0600AA51 RID: 43601 RVA: 0x00254334 File Offset: 0x00252534
[Token(Token = "0x17001B13")]
public override string AlgorithmName
{
[Token(Token = "0x600AA51")]
[Address(RVA = "0x1B332A0", Offset = "0x1B320A0", VA = "0x181B332A0", Slot = "22")]
get
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
throw new NullReferenceException();
}
}
// Token: 0x0600AA52 RID: 43602 RVA: 0x00254350 File Offset: 0x00252550
[Token(Token = "0x600AA52")]
[Address(RVA = "0x1B32EF0", Offset = "0x1B31CF0", VA = "0x181B32EF0", Slot = "24")]
public override int GetBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA53 RID: 43603 RVA: 0x0025436C File Offset: 0x0025256C
[Token(Token = "0x600AA53")]
[Address(RVA = "0x1B32F40", Offset = "0x1B31D40", VA = "0x181B32F40", Slot = "25")]
public override int GetOutputSize(int length)
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA54 RID: 43604 RVA: 0x00254388 File Offset: 0x00252588
[Token(Token = "0x600AA54")]
[Address(RVA = "0x43E630", Offset = "0x43D430", VA = "0x18043E630", Slot = "26")]
public override int GetUpdateOutputSize(int length)
{
return 0;
}
// Token: 0x0600AA55 RID: 43605 RVA: 0x00254398 File Offset: 0x00252598
[Token(Token = "0x600AA55")]
[Address(RVA = "0x1B32F90", Offset = "0x1B31D90", VA = "0x181B32F90", Slot = "23")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.cipher;
byte[] array = new byte[forEncryption ? 1 : 0];
this.buffer = array;
this.bufOff = (int)((ulong)0L);
}
// Token: 0x0600AA56 RID: 43606 RVA: 0x002543D0 File Offset: 0x002525D0
[Token(Token = "0x600AA56")]
[Address(RVA = "0x1B33050", Offset = "0x1B31E50", VA = "0x181B33050", Slot = "27")]
public override byte[] ProcessByte(byte input)
{
/*
An exception occurred when decompiling this method (0600AA56)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher::ProcessByte(System.Byte)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2A:
stloc:DataLengthException(var_4_34, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("attempt to process message to long for cipher")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA57 RID: 43607 RVA: 0x00254414 File Offset: 0x00252614
[Token(Token = "0x600AA57")]
[Address(RVA = "0x1B33100", Offset = "0x1B31F00", VA = "0x181B33100", Slot = "30")]
public override byte[] ProcessBytes(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA57)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher::ProcessBytes(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1E:
stloc:ArgumentNullException(var_4_28, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("input")))
}
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: 0x0600AA58 RID: 43608 RVA: 0x0025444C File Offset: 0x0025264C
[Token(Token = "0x600AA58")]
[Address(RVA = "0x1B32D80", Offset = "0x1B31B80", VA = "0x181B32D80", Slot = "33")]
public override byte[] DoFinal()
{
if (this.bufOff > 0)
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
byte[] array = this.buffer;
int num = 0;
num += num;
num++;
array += array;
}
throw new NullReferenceException();
}
// Token: 0x0600AA59 RID: 43609 RVA: 0x00254484 File Offset: 0x00252684
[Token(Token = "0x600AA59")]
[Address(RVA = "0x1B32EB0", Offset = "0x1B31CB0", VA = "0x181B32EB0", Slot = "35")]
public override byte[] DoFinal(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA59)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedAsymmetricBlockCipher::DoFinal(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint8[](var_0_07, callvirt:uint8[](BufferedCipherBase::ProcessBytes, ldloc:BufferedAsymmetricBlockCipher[exp:BufferedCipherBase](this), ldloc:uint8[](input)))
stloc:string(var_1_0E, callgetter:string(BufferedCipherBase::get_AlgorithmName, ldloc:BufferedAsymmetricBlockCipher[exp:BufferedCipherBase](this)))
}
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: 0x0600AA5A RID: 43610 RVA: 0x002544A0 File Offset: 0x002526A0
[Token(Token = "0x600AA5A")]
[Address(RVA = "0x1B33200", Offset = "0x1B32000", VA = "0x181B33200", Slot = "39")]
public override void Reset()
{
byte[] array = this.buffer;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
this.bufOff = (int)((ulong)0L);
}
}
// Token: 0x04006C97 RID: 27799
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C97")]
private readonly IAsymmetricBlockCipher cipher;
// Token: 0x04006C98 RID: 27800
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C98")]
private byte[] buffer;
// Token: 0x04006C99 RID: 27801
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C99")]
private int bufOff;
}
}
@@ -0,0 +1,338 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC6 RID: 6854
[Token(Token = "0x2001AC6")]
public class BufferedBlockCipher : BufferedCipherBase
{
// Token: 0x0600AA5B RID: 43611 RVA: 0x002544D4 File Offset: 0x002526D4
[Token(Token = "0x600AA5B")]
[Address(RVA = "0x1B33FC0", Offset = "0x1B32DC0", VA = "0x181B33FC0")]
protected BufferedBlockCipher()
{
}
// Token: 0x0600AA5C RID: 43612 RVA: 0x002544E8 File Offset: 0x002526E8
[Token(Token = "0x600AA5C")]
[Address(RVA = "0x1B34020", Offset = "0x1B32E20", VA = "0x181B34020")]
public BufferedBlockCipher(IBlockCipher cipher)
{
/*
An exception occurred when decompiling this method (0600AA5C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedBlockCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_29:
stloc:ArgumentNullException(var_1_33, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("cipher")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001B14 RID: 6932
// (get) Token: 0x0600AA5D RID: 43613 RVA: 0x00254528 File Offset: 0x00252728
[Token(Token = "0x17001B14")]
public override string AlgorithmName
{
[Token(Token = "0x600AA5D")]
[Address(RVA = "0x1B340F0", Offset = "0x1B32EF0", VA = "0x181B340F0", Slot = "22")]
get
{
IBlockCipher blockCipher = this.cipher;
throw new NullReferenceException();
}
}
// Token: 0x0600AA5E RID: 43614 RVA: 0x00254544 File Offset: 0x00252744
[Token(Token = "0x600AA5E")]
[Address(RVA = "0x1B33870", Offset = "0x1B32670", VA = "0x181B33870", Slot = "23")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
this.forEncryption = forEncryption;
if (parameters == 0 || parameters != 0)
{
}
IBlockCipher blockCipher = this.cipher;
}
// Token: 0x0600AA5F RID: 43615 RVA: 0x00254570 File Offset: 0x00252770
[Token(Token = "0x600AA5F")]
[Address(RVA = "0x1B337E0", Offset = "0x1B325E0", VA = "0x181B337E0", Slot = "24")]
public override int GetBlockSize()
{
IBlockCipher blockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600AA60 RID: 43616 RVA: 0x0025458C File Offset: 0x0025278C
[Token(Token = "0x600AA60")]
[Address(RVA = "0x1B33840", Offset = "0x1B32640", VA = "0x181B33840", Slot = "26")]
public override int GetUpdateOutputSize(int length)
{
int num = this.bufOff;
byte[] array = this.buf;
num += length;
return num - length;
}
// Token: 0x0600AA61 RID: 43617 RVA: 0x002545B8 File Offset: 0x002527B8
[Token(Token = "0x600AA61")]
[Address(RVA = "0x1B33830", Offset = "0x1B32630", VA = "0x181B33830", Slot = "25")]
public override int GetOutputSize(int length)
{
int num = this.bufOff;
return num + length;
}
// Token: 0x0600AA62 RID: 43618 RVA: 0x002545D4 File Offset: 0x002527D4
[Token(Token = "0x600AA62")]
[Address(RVA = "0x1B33A20", Offset = "0x1B32820", VA = "0x181B33A20", Slot = "28")]
public override int ProcessByte(byte input, byte[] output, int outOff)
{
int num = this.bufOff;
byte[] array = this.buf;
int num2 = num + 1;
this.bufOff = num2;
int num3 = this.buf.Length;
if (this.bufOff != num3)
{
return 0;
}
num3 += outOff;
IBlockCipher blockCipher = this.cipher;
int num4 = 0;
this.bufOff = num4;
throw new NullReferenceException();
}
// Token: 0x0600AA63 RID: 43619 RVA: 0x00254630 File Offset: 0x00252830
[Token(Token = "0x600AA63")]
[Address(RVA = "0x1B33940", Offset = "0x1B32740", VA = "0x181B33940", Slot = "27")]
public override byte[] ProcessByte(byte input)
{
/*
An exception occurred when decompiling this method (0600AA63)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedBlockCipher::ProcessByte(System.Byte)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_2:
stloc:uint8[](var_4_2B, newarr:uint8[]([mscorlib]System.Byte, ldloc:uint8[][exp:int32](var_3_1C)))
}
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: 0x0600AA64 RID: 43620 RVA: 0x0025466C File Offset: 0x0025286C
[Token(Token = "0x600AA64")]
[Address(RVA = "0x1B33E10", Offset = "0x1B32C10", VA = "0x181B33E10", Slot = "30")]
public override byte[] ProcessBytes(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA64)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedBlockCipher::ProcessBytes(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_41:
stloc:ArgumentNullException(var_9_4B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("input")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA65 RID: 43621 RVA: 0x002546C8 File Offset: 0x002528C8
[Token(Token = "0x600AA65")]
[Address(RVA = "0x1B33B30", Offset = "0x1B32930", VA = "0x181B33B30", Slot = "32")]
public override int ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff)
{
int num = this.GetOutputSize(length);
if (num > 0)
{
}
byte[] array = this.buf;
int num2 = array.Length;
int num3 = this.bufOff;
num2 -= num3;
byte[] array3;
int num6;
if (length > num2)
{
Array.Copy(input, inOff, array, num3, num2);
IBlockCipher blockCipher = this.cipher;
byte[] array2 = this.buf;
int num4 = 0;
this.bufOff = num4;
if (length > array2.Length)
{
IBlockCipher blockCipher2 = this.cipher;
if (num4 < array2)
{
num4 += num4;
num4++;
}
array3 = this.buf;
num += num4;
uint num5;
num5 += num5;
}
num6 = this.bufOff;
}
Array.Copy(input, inOff, array3, num6, length);
int num7 = this.bufOff;
byte[] array4 = this.buf;
num7 += length;
this.bufOff = num7;
if (num7 == array4.Length)
{
IBlockCipher blockCipher3 = this.cipher;
int num8 = 0;
this.bufOff = num8;
}
return num;
}
// Token: 0x0600AA66 RID: 43622 RVA: 0x002547C0 File Offset: 0x002529C0
[Token(Token = "0x600AA66")]
[Address(RVA = "0x1B336C0", Offset = "0x1B324C0", VA = "0x181B336C0", Slot = "33")]
public override byte[] DoFinal()
{
int blockSize = this.GetBlockSize();
int num;
byte[] array = new byte[num];
if (array < array.Length)
{
byte[] array2 = new byte[array];
}
return array;
}
// Token: 0x0600AA67 RID: 43623 RVA: 0x002547F4 File Offset: 0x002529F4
[Token(Token = "0x600AA67")]
[Address(RVA = "0x1B33510", Offset = "0x1B32310", VA = "0x181B33510", Slot = "35")]
public override byte[] DoFinal(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600AA67)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedBlockCipher::DoFinal(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:ArgumentNullException(var_11_4D, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("input")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA68 RID: 43624 RVA: 0x00254850 File Offset: 0x00252A50
[Token(Token = "0x600AA68")]
[Address(RVA = "0x1B332F0", Offset = "0x1B320F0", VA = "0x181B332F0", Slot = "36")]
public override int DoFinal(byte[] output, int outOff)
{
int num = 0;
if (this.bufOff != num)
{
IBlockCipher blockCipher = this.cipher;
if (num < outOff)
{
num += num;
num++;
}
int num2 = this.bufOff;
Check.OutputLength(output, outOff, num2, "output buffer too short for DoFinal()");
IBlockCipher blockCipher2 = this.cipher;
byte[] array = this.buf;
int num3 = this.bufOff;
int num4 = 0;
Array.Copy(this.buf, num4, output, outOff, num3);
}
if (num == 0)
{
int num5;
num5 += 3;
num5 += 19;
return num5;
}
throw new NullReferenceException();
}
// Token: 0x0600AA69 RID: 43625 RVA: 0x002548DC File Offset: 0x00252ADC
[Token(Token = "0x600AA69")]
[Address(RVA = "0x1B33F50", Offset = "0x1B32D50", VA = "0x181B33F50", Slot = "39")]
public override void Reset()
{
byte[] array = this.buf;
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
IBlockCipher blockCipher = this.cipher;
this.bufOff = (int)((ulong)0L);
throw new NullReferenceException();
}
// Token: 0x04006C9A RID: 27802
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C9A")]
internal byte[] buf;
// Token: 0x04006C9B RID: 27803
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C9B")]
internal int bufOff;
// Token: 0x04006C9C RID: 27804
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4006C9C")]
internal bool forEncryption;
// Token: 0x04006C9D RID: 27805
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C9D")]
internal IBlockCipher cipher;
}
}
@@ -0,0 +1,192 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC7 RID: 6855
[Token(Token = "0x2001AC7")]
public abstract class BufferedCipherBase : IBufferedCipher
{
// Token: 0x17001B15 RID: 6933
// (get) Token: 0x0600AA6A RID: 43626
[Token(Token = "0x17001B15")]
public abstract string AlgorithmName
{
[Token(Token = "0x600AA6A")]
[Address(Slot = "22")]
get;
}
// Token: 0x0600AA6B RID: 43627
[Token(Token = "0x600AA6B")]
[Address(Slot = "23")]
public abstract void Init(bool forEncryption, ICipherParameters parameters);
// Token: 0x0600AA6C RID: 43628
[Token(Token = "0x600AA6C")]
[Address(Slot = "24")]
public abstract int GetBlockSize();
// Token: 0x0600AA6D RID: 43629
[Token(Token = "0x600AA6D")]
[Address(Slot = "25")]
public abstract int GetOutputSize(int inputLen);
// Token: 0x0600AA6E RID: 43630
[Token(Token = "0x600AA6E")]
[Address(Slot = "26")]
public abstract int GetUpdateOutputSize(int inputLen);
// Token: 0x0600AA6F RID: 43631
[Token(Token = "0x600AA6F")]
[Address(Slot = "27")]
public abstract byte[] ProcessByte(byte input);
// Token: 0x0600AA70 RID: 43632 RVA: 0x00254918 File Offset: 0x00252B18
[Token(Token = "0x600AA70")]
[Address(RVA = "0x1B34300", Offset = "0x1B33100", VA = "0x181B34300", Slot = "28")]
public virtual int ProcessByte(byte input, byte[] output, int outOff)
{
int updateOutputSize = this.GetUpdateOutputSize((int)input);
if (updateOutputSize != 0)
{
}
return updateOutputSize;
}
// Token: 0x0600AA71 RID: 43633 RVA: 0x00254940 File Offset: 0x00252B40
[Token(Token = "0x600AA71")]
[Address(RVA = "0x1B343D0", Offset = "0x1B331D0", VA = "0x181B343D0", Slot = "29")]
public virtual byte[] ProcessBytes(byte[] input)
{
return this.ProcessBytes(input);
}
// Token: 0x0600AA72 RID: 43634
[Token(Token = "0x600AA72")]
[Address(Slot = "30")]
public abstract byte[] ProcessBytes(byte[] input, int inOff, int length);
// Token: 0x0600AA73 RID: 43635 RVA: 0x0025495C File Offset: 0x00252B5C
[Token(Token = "0x600AA73")]
[Address(RVA = "0x1B34410", Offset = "0x1B33210", VA = "0x181B34410", Slot = "31")]
public virtual int ProcessBytes(byte[] input, byte[] output, int outOff)
{
int num;
return num;
}
// Token: 0x0600AA74 RID: 43636 RVA: 0x00254970 File Offset: 0x00252B70
[Token(Token = "0x600AA74")]
[Address(RVA = "0x1B34450", Offset = "0x1B33250", VA = "0x181B34450", Slot = "32")]
public virtual int ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600AA74)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedCipherBase::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_13:
stloc:DataLengthException(var_2_1D, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("output buffer too short")))
}
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: 0x0600AA75 RID: 43637
[Token(Token = "0x600AA75")]
[Address(Slot = "33")]
public abstract byte[] DoFinal();
// Token: 0x0600AA76 RID: 43638 RVA: 0x0025499C File Offset: 0x00252B9C
[Token(Token = "0x600AA76")]
[Address(RVA = "0x1B34140", Offset = "0x1B32F40", VA = "0x181B34140", Slot = "34")]
public virtual byte[] DoFinal(byte[] input)
{
return this.DoFinal(input);
}
// Token: 0x0600AA77 RID: 43639
[Token(Token = "0x600AA77")]
[Address(Slot = "35")]
public abstract byte[] DoFinal(byte[] input, int inOff, int length);
// Token: 0x0600AA78 RID: 43640 RVA: 0x002549B8 File Offset: 0x00252BB8
[Token(Token = "0x600AA78")]
[Address(RVA = "0x1B34200", Offset = "0x1B33000", VA = "0x181B34200", Slot = "36")]
public virtual int DoFinal(byte[] output, int outOff)
{
int num;
return num;
}
// Token: 0x0600AA79 RID: 43641 RVA: 0x002549CC File Offset: 0x00252BCC
[Token(Token = "0x600AA79")]
[Address(RVA = "0x1B342C0", Offset = "0x1B330C0", VA = "0x181B342C0", Slot = "37")]
public virtual int DoFinal(byte[] input, byte[] output, int outOff)
{
int num;
return num;
}
// Token: 0x0600AA7A RID: 43642 RVA: 0x002549E0 File Offset: 0x00252BE0
[Token(Token = "0x600AA7A")]
[Address(RVA = "0x1B34180", Offset = "0x1B32F80", VA = "0x181B34180", Slot = "38")]
public virtual int DoFinal(byte[] input, int inOff, int length, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600AA7A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedCipherBase::DoFinal(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint8[](var_1, add:uint8[](ldloc:uint8[](var_1), ldloc:int32[exp:uint8[]](var_0)))
}
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: 0x0600AA7B RID: 43643
[Token(Token = "0x600AA7B")]
[Address(Slot = "39")]
public abstract void Reset();
// Token: 0x0600AA7C RID: 43644 RVA: 0x002549F0 File Offset: 0x00252BF0
[Token(Token = "0x600AA7C")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected BufferedCipherBase()
{
}
// Token: 0x0600AA7D RID: 43645 RVA: 0x00254A04 File Offset: 0x00252C04
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600AA7D")]
[Address(RVA = "0x1B34530", Offset = "0x1B33330", VA = "0x181B34530")]
static BufferedCipherBase()
{
byte[] array = new byte[0];
}
// Token: 0x04006C9E RID: 27806
[Token(Token = "0x4006C9E")]
protected static readonly byte[] EmptyBuffer;
}
}
@@ -0,0 +1,218 @@
using System;
using System.IO;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC8 RID: 6856
[Token(Token = "0x2001AC8")]
public class BufferedIesCipher : BufferedCipherBase
{
// Token: 0x0600AA7E RID: 43646 RVA: 0x00254A18 File Offset: 0x00252C18
[Token(Token = "0x600AA7E")]
[Address(RVA = "0x1B348F0", Offset = "0x1B336F0", VA = "0x181B348F0")]
public BufferedIesCipher(IesEngine engine)
{
/*
An exception occurred when decompiling this method (0600AA7E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedIesCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IesEngine)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1F:
stloc:ArgumentNullException(var_1_29, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("engine")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001B16 RID: 6934
// (get) Token: 0x0600AA7F RID: 43647 RVA: 0x00254A50 File Offset: 0x00252C50
[Token(Token = "0x17001B16")]
public override string AlgorithmName
{
[Token(Token = "0x600AA7F")]
[Address(RVA = "0x1B349B0", Offset = "0x1B337B0", VA = "0x181B349B0", Slot = "22")]
get
{
return "IES";
}
}
// Token: 0x0600AA80 RID: 43648 RVA: 0x00254A64 File Offset: 0x00252C64
[Token(Token = "0x600AA80")]
[Address(RVA = "0x1B346B0", Offset = "0x1B334B0", VA = "0x181B346B0", Slot = "23")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600AA80)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedIesCipher::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stfld:bool(BufferedIesCipher::forEncryption, ldloc:BufferedIesCipher(this), ldloc:bool(forEncryption))
stloc:Exception(var_0_11, call:Exception(Platform::CreateNotImplementedException, ldstr:string("IES")))
}
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: 0x0600AA81 RID: 43649 RVA: 0x00254A84 File Offset: 0x00252C84
[Token(Token = "0x600AA81")]
[Address(RVA = "0x43E630", Offset = "0x43D430", VA = "0x18043E630", Slot = "24")]
public override int GetBlockSize()
{
return 0;
}
// Token: 0x0600AA82 RID: 43650 RVA: 0x00254A94 File Offset: 0x00252C94
[Token(Token = "0x600AA82")]
[Address(RVA = "0x1B34600", Offset = "0x1B33400", VA = "0x181B34600", Slot = "25")]
public override int GetOutputSize(int inputLen)
{
/*
An exception occurred when decompiling this method (0600AA82)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedIesCipher::GetOutputSize(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24:
stloc:InvalidOperationException(var_1_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("cipher 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: 0x0600AA83 RID: 43651 RVA: 0x00254AD0 File Offset: 0x00252CD0
[Token(Token = "0x600AA83")]
[Address(RVA = "0x43E630", Offset = "0x43D430", VA = "0x18043E630", Slot = "26")]
public override int GetUpdateOutputSize(int inputLen)
{
return 0;
}
// Token: 0x0600AA84 RID: 43652 RVA: 0x00254AE0 File Offset: 0x00252CE0
[Token(Token = "0x600AA84")]
[Address(RVA = "0x1B34720", Offset = "0x1B33520", VA = "0x181B34720", Slot = "27")]
public override byte[] ProcessByte(byte input)
{
MemoryStream memoryStream = this.buffer;
throw new NullReferenceException();
}
// Token: 0x0600AA85 RID: 43653 RVA: 0x00254AFC File Offset: 0x00252CFC
[Token(Token = "0x600AA85")]
[Address(RVA = "0x1B34750", Offset = "0x1B33550", VA = "0x181B34750", Slot = "30")]
public override byte[] ProcessBytes(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA85)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedIesCipher::ProcessBytes(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentNullException(var_2_1C, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("input")))
}
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: 0x0600AA86 RID: 43654 RVA: 0x00254B28 File Offset: 0x00252D28
[Token(Token = "0x600AA86")]
[Address(RVA = "0x1B34580", Offset = "0x1B33380", VA = "0x181B34580", Slot = "33")]
public override byte[] DoFinal()
{
MemoryStream memoryStream = this.buffer;
IesEngine iesEngine = this.engine;
throw new NullReferenceException();
}
// Token: 0x0600AA87 RID: 43655 RVA: 0x00254B48 File Offset: 0x00252D48
[Token(Token = "0x600AA87")]
[Address(RVA = "0x1B32EB0", Offset = "0x1B31CB0", VA = "0x181B32EB0", Slot = "35")]
public override byte[] DoFinal(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA87)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedIesCipher::DoFinal(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint8[](var_0_07, callvirt:uint8[](BufferedCipherBase::ProcessBytes, ldloc:BufferedIesCipher[exp:BufferedCipherBase](this), ldloc:uint8[](input)))
stloc:string(var_1_0E, callgetter:string(BufferedCipherBase::get_AlgorithmName, ldloc:BufferedIesCipher[exp:BufferedCipherBase](this)))
}
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: 0x0600AA88 RID: 43656 RVA: 0x00254B64 File Offset: 0x00252D64
[Token(Token = "0x600AA88")]
[Address(RVA = "0x1B348C0", Offset = "0x1B336C0", VA = "0x181B348C0", Slot = "39")]
public override void Reset()
{
((IDisposable)this.buffer).Dispose();
}
// Token: 0x04006C9F RID: 27807
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C9F")]
private readonly IesEngine engine;
// Token: 0x04006CA0 RID: 27808
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006CA0")]
private bool forEncryption;
// Token: 0x04006CA1 RID: 27809
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006CA1")]
private MemoryStream buffer;
}
}
@@ -0,0 +1,195 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001AC9 RID: 6857
[Token(Token = "0x2001AC9")]
public class BufferedStreamCipher : BufferedCipherBase
{
// Token: 0x0600AA89 RID: 43657 RVA: 0x00254B84 File Offset: 0x00252D84
[Token(Token = "0x600AA89")]
[Address(RVA = "0x1B34F80", Offset = "0x1B33D80", VA = "0x181B34F80")]
public BufferedStreamCipher(IStreamCipher cipher)
{
/*
An exception occurred when decompiling this method (0600AA89)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedStreamCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IStreamCipher)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentNullException(var_0_1C, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("cipher")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001B17 RID: 6935
// (get) Token: 0x0600AA8A RID: 43658 RVA: 0x00254BB0 File Offset: 0x00252DB0
[Token(Token = "0x17001B17")]
public override string AlgorithmName
{
[Token(Token = "0x600AA8A")]
[Address(RVA = "0x1B35020", Offset = "0x1B33E20", VA = "0x181B35020", Slot = "22")]
get
{
IStreamCipher streamCipher = this.cipher;
throw new NullReferenceException();
}
}
// Token: 0x0600AA8B RID: 43659 RVA: 0x00254BCC File Offset: 0x00252DCC
[Token(Token = "0x600AA8B")]
[Address(RVA = "0x1B34B20", Offset = "0x1B33920", VA = "0x181B34B20", Slot = "23")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
while (parameters != 0 && parameters != 0 && (parameters == 0 || parameters == 0))
{
}
IStreamCipher streamCipher = this.cipher;
}
// Token: 0x0600AA8C RID: 43660 RVA: 0x00254BFC File Offset: 0x00252DFC
[Token(Token = "0x600AA8C")]
[Address(RVA = "0x43E630", Offset = "0x43D430", VA = "0x18043E630", Slot = "24")]
public override int GetBlockSize()
{
return 0;
}
// Token: 0x0600AA8D RID: 43661 RVA: 0x00254C0C File Offset: 0x00252E0C
[Token(Token = "0x600AA8D")]
[Address(RVA = "0x7A2180", Offset = "0x7A0F80", VA = "0x1807A2180", Slot = "25")]
public override int GetOutputSize(int inputLen)
{
return inputLen;
}
// Token: 0x0600AA8E RID: 43662 RVA: 0x00254C1C File Offset: 0x00252E1C
[Token(Token = "0x600AA8E")]
[Address(RVA = "0x7A2180", Offset = "0x7A0F80", VA = "0x1807A2180", Slot = "26")]
public override int GetUpdateOutputSize(int inputLen)
{
return inputLen;
}
// Token: 0x0600AA8F RID: 43663 RVA: 0x00254C2C File Offset: 0x00252E2C
[Token(Token = "0x600AA8F")]
[Address(RVA = "0x1B34D30", Offset = "0x1B33B30", VA = "0x181B34D30", Slot = "27")]
public override byte[] ProcessByte(byte input)
{
byte[] array = new byte[1];
IStreamCipher streamCipher = this.cipher;
array[0] = array;
return array;
}
// Token: 0x0600AA90 RID: 43664 RVA: 0x00254C58 File Offset: 0x00252E58
[Token(Token = "0x600AA90")]
[Address(RVA = "0x1B34C60", Offset = "0x1B33A60", VA = "0x181B34C60", Slot = "28")]
public override int ProcessByte(byte input, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600AA90)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedStreamCipher::ProcessByte(System.Byte,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_18:
stloc:DataLengthException(var_1_22, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("output buffer too short")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA91 RID: 43665 RVA: 0x00254C88 File Offset: 0x00252E88
[Token(Token = "0x600AA91")]
[Address(RVA = "0x1B34E70", Offset = "0x1B33C70", VA = "0x181B34E70", Slot = "30")]
public override byte[] ProcessBytes(byte[] input, int inOff, int length)
{
byte[] array = new byte[length];
IStreamCipher streamCipher = this.cipher;
return array;
}
// Token: 0x0600AA92 RID: 43666 RVA: 0x00254CAC File Offset: 0x00252EAC
[Token(Token = "0x600AA92")]
[Address(RVA = "0x1B34DD0", Offset = "0x1B33BD0", VA = "0x181B34DD0", Slot = "32")]
public override int ProcessBytes(byte[] input, int inOff, int length, byte[] output, int outOff)
{
IStreamCipher streamCipher = this.cipher;
return 0;
}
// Token: 0x0600AA93 RID: 43667 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA93")]
[Address(RVA = "0x1B34AB0", Offset = "0x1B338B0", VA = "0x181B34AB0", Slot = "33")]
public override byte[] DoFinal()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AA94 RID: 43668 RVA: 0x00254CC8 File Offset: 0x00252EC8
[Token(Token = "0x600AA94")]
[Address(RVA = "0x1B349E0", Offset = "0x1B337E0", VA = "0x181B349E0", Slot = "35")]
public override byte[] DoFinal(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600AA94)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.BufferedStreamCipher::DoFinal(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint8[](var_0_07, callvirt:uint8[](BufferedCipherBase::ProcessBytes, ldloc:BufferedStreamCipher[exp:BufferedCipherBase](this), ldloc:uint8[](input)))
}
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: 0x0600AA95 RID: 43669 RVA: 0x00254CDC File Offset: 0x00252EDC
[Token(Token = "0x600AA95")]
[Address(RVA = "0x1B34F30", Offset = "0x1B33D30", VA = "0x181B34F30", Slot = "39")]
public override void Reset()
{
IStreamCipher streamCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x04006CA2 RID: 27810
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006CA2")]
private readonly IStreamCipher cipher;
}
}
@@ -0,0 +1,60 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001ACA RID: 6858
[Token(Token = "0x2001ACA")]
internal class Check
{
// Token: 0x0600AA96 RID: 43670 RVA: 0x00254CF8 File Offset: 0x00252EF8
[Token(Token = "0x600AA96")]
[Address(RVA = "0x1B35070", Offset = "0x1B33E70", VA = "0x181B35070")]
internal static void DataLength(bool condition, string msg)
{
/*
An exception occurred when decompiling this method (0600AA96)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Check::DataLength(System.Boolean,System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_05:
stloc:DataLengthException(var_0_0B, newobj:DataLengthException(DataLengthException::.ctor, ldloc:string(msg)))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA97 RID: 43671 RVA: 0x00254D10 File Offset: 0x00252F10
[Token(Token = "0x600AA97")]
[Address(RVA = "0x1B350E0", Offset = "0x1B33EE0", VA = "0x181B350E0")]
internal static void DataLength(byte[] buf, int off, int len, string msg)
{
}
// Token: 0x0600AA98 RID: 43672 RVA: 0x00254D20 File Offset: 0x00252F20
[Token(Token = "0x600AA98")]
[Address(RVA = "0x1B35170", Offset = "0x1B33F70", VA = "0x181B35170")]
internal static void OutputLength(byte[] buf, int off, int len, string msg)
{
}
// Token: 0x0600AA99 RID: 43673 RVA: 0x00254D30 File Offset: 0x00252F30
[Token(Token = "0x600AA99")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Check()
{
}
}
}
@@ -0,0 +1,137 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001ACB RID: 6859
[Token(Token = "0x2001ACB")]
public class CipherKeyGenerator
{
// Token: 0x0600AA9A RID: 43674 RVA: 0x00254D44 File Offset: 0x00252F44
[Token(Token = "0x600AA9A")]
[Address(RVA = "0x1B35420", Offset = "0x1B34220", VA = "0x181B35420")]
public CipherKeyGenerator()
{
}
// Token: 0x0600AA9B RID: 43675 RVA: 0x00254D60 File Offset: 0x00252F60
[Token(Token = "0x600AA9B")]
[Address(RVA = "0x1B35390", Offset = "0x1B34190", VA = "0x181B35390")]
internal CipherKeyGenerator(int defaultStrength)
{
this.defaultStrength = defaultStrength;
}
// Token: 0x17001B18 RID: 6936
// (get) Token: 0x0600AA9C RID: 43676 RVA: 0x00254D94 File Offset: 0x00252F94
[Token(Token = "0x17001B18")]
public int DefaultStrength
{
[Token(Token = "0x600AA9C")]
[Address(RVA = "0x3F7310", Offset = "0x3F6110", VA = "0x1803F7310")]
get
{
return this.defaultStrength;
}
}
// Token: 0x0600AA9D RID: 43677 RVA: 0x00254DA8 File Offset: 0x00252FA8
[Token(Token = "0x600AA9D")]
[Address(RVA = "0x1B35300", Offset = "0x1B34100", VA = "0x181B35300")]
public void Init(KeyGenerationParameters parameters)
{
/*
An exception occurred when decompiling this method (0600AA9D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.CipherKeyGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.KeyGenerationParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0C:
stloc:ArgumentNullException(var_0_16, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("parameters")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600AA9E RID: 43678 RVA: 0x00254DCC File Offset: 0x00252FCC
[Token(Token = "0x600AA9E")]
[Address(RVA = "0x1B354A0", Offset = "0x1B342A0", VA = "0x181B354A0", Slot = "4")]
protected virtual void engineInit(KeyGenerationParameters parameters)
{
SecureRandom secureRandom = parameters.random;
this.random = secureRandom;
int num = parameters.strength;
num += 7;
num += parameters;
this.strength = num;
}
// Token: 0x0600AA9F RID: 43679 RVA: 0x00254E04 File Offset: 0x00253004
[Token(Token = "0x600AA9F")]
[Address(RVA = "0x1B35200", Offset = "0x1B34000", VA = "0x181B35200")]
public byte[] GenerateKey()
{
/*
An exception occurred when decompiling this method (0600AA9F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.CipherKeyGenerator::GenerateKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2C:
stloc:InvalidOperationException(var_4_36, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Generator has not been 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: 0x0600AAA0 RID: 43680 RVA: 0x00254E48 File Offset: 0x00253048
[Token(Token = "0x600AAA0")]
[Address(RVA = "0x1B35430", Offset = "0x1B34230", VA = "0x181B35430", Slot = "5")]
protected virtual byte[] engineGenerateKey()
{
SecureRandom secureRandom = this.random;
int num = this.strength;
return SecureRandom.GetNextBytes(secureRandom, num);
}
// Token: 0x04006CA3 RID: 27811
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006CA3")]
protected internal SecureRandom random;
// Token: 0x04006CA4 RID: 27812
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006CA4")]
protected internal int strength;
// Token: 0x04006CA5 RID: 27813
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4006CA5")]
private bool uninitialised = true;
// Token: 0x04006CA6 RID: 27814
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006CA6")]
private int defaultStrength;
}
}
@@ -0,0 +1,34 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001ACC RID: 6860
[Token(Token = "0x2001ACC")]
[Serializable]
public class CryptoException : Exception
{
// Token: 0x0600AAA1 RID: 43681 RVA: 0x00254E6C File Offset: 0x0025306C
[Token(Token = "0x600AAA1")]
[Address(RVA = "0x1B35BA0", Offset = "0x1B349A0", VA = "0x181B35BA0")]
public CryptoException()
{
}
// Token: 0x0600AAA2 RID: 43682 RVA: 0x00254E80 File Offset: 0x00253080
[Token(Token = "0x600AAA2")]
[Address(RVA = "0x1B35B30", Offset = "0x1B34930", VA = "0x181B35B30")]
public CryptoException(string message)
: base(message)
{
}
// Token: 0x0600AAA3 RID: 43683 RVA: 0x00254E94 File Offset: 0x00253094
[Token(Token = "0x600AAA3")]
[Address(RVA = "0x1B35C00", Offset = "0x1B34A00", VA = "0x181B35C00")]
public CryptoException(string message, Exception exception)
: base(message, exception)
{
}
}
}
@@ -0,0 +1,34 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto
{
// Token: 0x02001ACD RID: 6861
[Token(Token = "0x2001ACD")]
[Serializable]
public class DataLengthException : CryptoException
{
// Token: 0x0600AAA4 RID: 43684 RVA: 0x00254EAC File Offset: 0x002530AC
[Token(Token = "0x600AAA4")]
[Address(RVA = "0x1B35BA0", Offset = "0x1B349A0", VA = "0x181B35BA0")]
public DataLengthException()
{
}
// Token: 0x0600AAA5 RID: 43685 RVA: 0x00254EC0 File Offset: 0x002530C0
[Token(Token = "0x600AAA5")]
[Address(RVA = "0x1B35B30", Offset = "0x1B34930", VA = "0x181B35B30")]
public DataLengthException(string message)
: base(message)
{
}
// Token: 0x0600AAA6 RID: 43686 RVA: 0x00254ED4 File Offset: 0x002530D4
[Token(Token = "0x600AAA6")]
[Address(RVA = "0x1B35C00", Offset = "0x1B34A00", VA = "0x181B35C00")]
public DataLengthException(string message, Exception exception)
: base(message, exception)
{
}
}
}
@@ -0,0 +1,585 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE0 RID: 7392
[Token(Token = "0x2001CE0")]
public class Blake2bDigest : IDigest
{
// Token: 0x0600B9FF RID: 47615 RVA: 0x0029C924 File Offset: 0x0029AB24
[Token(Token = "0x600B9FF")]
[Address(RVA = "0x1B30260", Offset = "0x1B2F060", VA = "0x181B30260")]
public Blake2bDigest()
{
this.digestLength = (int)((ulong)64L);
ulong[] array = new ulong[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[128];
this.buffer = array2;
this.digestLength = (int)((ulong)64L);
this.Init();
}
// Token: 0x0600BA00 RID: 47616 RVA: 0x0029C974 File Offset: 0x0029AB74
[Token(Token = "0x600BA00")]
[Address(RVA = "0x1B302E0", Offset = "0x1B2F0E0", VA = "0x181B302E0")]
public Blake2bDigest(Blake2bDigest digest)
{
this.digestLength = (int)((ulong)64L);
ulong[] array = new ulong[16];
this.internalState = array;
base..ctor();
int num = digest.bufferPos;
this.bufferPos = num;
byte[] array2 = Arrays.Clone(digest.buffer);
this.buffer = array2;
int num2 = digest.keyLength;
this.keyLength = num2;
byte[] array3 = Arrays.Clone(digest.key);
this.key = array3;
int num3 = digest.digestLength;
this.digestLength = num3;
ulong[] array4 = Arrays.Clone(digest.chainValue);
this.chainValue = array4;
byte[] array5 = Arrays.Clone(digest.personalization);
this.personalization = array5;
byte[] array6 = Arrays.Clone(digest.salt);
this.salt = array6;
ulong num4 = digest.t0;
this.t0 = num4;
ulong num5 = digest.t1;
this.t1 = num5;
ulong num6 = digest.f0;
this.f0 = num6;
}
// Token: 0x0600BA01 RID: 47617 RVA: 0x0029CA6C File Offset: 0x0029AC6C
[Token(Token = "0x600BA01")]
[Address(RVA = "0x1B30180", Offset = "0x1B2EF80", VA = "0x181B30180")]
public Blake2bDigest(int digestSize)
{
/*
An exception occurred when decompiling this method (0600BA01)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2bDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5A:
stloc:ArgumentException(var_5_64, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("BLAKE2b digest bit length must be a multiple of 8 and not greater than 512")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BA02 RID: 47618 RVA: 0x0029CAE0 File Offset: 0x0029ACE0
[Token(Token = "0x600BA02")]
[Address(RVA = "0x1B30060", Offset = "0x1B2EE60", VA = "0x181B30060")]
public Blake2bDigest(byte[] key)
{
this.digestLength = (int)((ulong)64L);
ulong[] array = new ulong[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[128];
this.buffer = array2;
if (key != 0)
{
byte[] array3 = new byte[key.Length];
this.key = array3;
int num = 0;
int length = key.Length;
int num2 = 0;
Array.Copy(key, num2, array3, num, length);
int length2 = key.Length;
byte[] array4 = this.buffer;
int num3 = 0;
this.keyLength = length2;
int num4 = 0;
int length3 = key.Length;
Array.Copy(key, num4, array4, num3, length3);
this.bufferPos = (int)((ulong)128L);
}
this.digestLength = (int)((ulong)64L);
this.Init();
}
// Token: 0x0600BA03 RID: 47619 RVA: 0x0029CBAC File Offset: 0x0029ADAC
[Token(Token = "0x600BA03")]
[Address(RVA = "0x1B303F0", Offset = "0x1B2F1F0", VA = "0x181B303F0")]
public Blake2bDigest(byte[] key, int digestLength, byte[] salt, byte[] personalization)
{
/*
An exception occurred when decompiling this method (0600BA03)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2bDigest::.ctor(System.Byte[],System.Int32,System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_118:
stloc:ArgumentException(var_19_122, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("salt length must be exactly 16 bytes")))
}
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: 0x0600BA04 RID: 47620 RVA: 0x0029CCDC File Offset: 0x0029AEDC
[Token(Token = "0x600BA04")]
[Address(RVA = "0x1B2F720", Offset = "0x1B2E520", VA = "0x181B2F720")]
private void Init()
{
if (this.chainValue == (ulong)0L)
{
ulong[] array = new ulong[8];
this.chainValue = array;
ulong[] array2 = Blake2bDigest.blake2b_IV;
int num = this.keyLength;
array[0] = (ulong)num;
ulong[] array3 = this.chainValue;
ulong num2 = Blake2bDigest.blake2b_IV[1];
array3[1] = num2;
ulong[] array4 = this.chainValue;
ulong num3 = Blake2bDigest.blake2b_IV[2];
array4[2] = num3;
ulong[] array5 = this.chainValue;
ulong num4 = Blake2bDigest.blake2b_IV[3];
array5[3] = num4;
ulong[] array6 = this.chainValue;
ulong num5 = Blake2bDigest.blake2b_IV[4];
array6[4] = num5;
ulong[] array7 = this.chainValue;
ulong num6 = Blake2bDigest.blake2b_IV[5];
array7[5] = num6;
byte[] array8 = this.salt;
if (array8 != 0)
{
ulong[] array9 = this.chainValue;
int num7 = 0;
ulong num8 = Pack.LE_To_UInt64(array8, num7);
array9[4] = num8;
ulong[] array10 = this.chainValue;
ulong num9 = Pack.LE_To_UInt64(this.salt, 8);
array10[5] = num9;
}
ulong[] array11 = this.chainValue;
ulong num10 = Blake2bDigest.blake2b_IV[6];
array11[6] = num10;
ulong[] array12 = this.chainValue;
ulong num11 = Blake2bDigest.blake2b_IV[7];
array12[7] = num11;
byte[] array13 = this.personalization;
if (array13 != 0)
{
ulong[] array14 = this.chainValue;
int num12 = 0;
ulong num13 = Pack.LE_To_UInt64(array13, num12);
array14[6] = num13;
ulong[] array15 = this.chainValue;
ulong num14 = Pack.LE_To_UInt64(this.personalization, 8);
array15[7] = num14;
}
}
}
// Token: 0x0600BA05 RID: 47621 RVA: 0x0029CE94 File Offset: 0x0029B094
[Token(Token = "0x600BA05")]
[Address(RVA = "0x1B2FC00", Offset = "0x1B2EA00", VA = "0x181B2FC00")]
private void InitializeInternalState()
{
ulong[] array = this.chainValue;
int length = array.Length;
int num = 0;
ulong[] array2 = this.internalState;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
ulong[] array3 = this.chainValue;
int num3 = 0;
int length2 = array3.Length;
ulong[] array4 = this.internalState;
ulong num4;
Array.Copy(Blake2bDigest.blake2b_IV, num3, array4, length2, (int)num4);
ulong[] array5 = this.internalState;
ulong num5 = Blake2bDigest.blake2b_IV[4];
array5[12] = num5;
ulong[] array6 = this.internalState;
ulong num6 = Blake2bDigest.blake2b_IV[5];
array6[13] = num6;
ulong[] array7 = this.internalState;
ulong num7 = Blake2bDigest.blake2b_IV[6];
array7[14] = num7;
ulong[] array8 = this.internalState;
ulong num8 = Blake2bDigest.blake2b_IV[7];
array8[15] = num8;
}
// Token: 0x0600BA06 RID: 47622 RVA: 0x0029CF7C File Offset: 0x0029B17C
[Token(Token = "0x600BA06")]
[Address(RVA = "0x1B2FEF0", Offset = "0x1B2ECF0", VA = "0x181B2FEF0", Slot = "11")]
public virtual void Update(byte b)
{
int num = this.bufferPos;
uint num2;
byte[] array;
if (num2 != (uint)num)
{
array = this.buffer;
return;
}
if (num == array.Length)
{
}
byte[] array2 = this.buffer;
int num3 = 0;
this.Compress(array2, num3);
byte[] array3 = this.buffer;
int length = array3.Length;
int num4 = 0;
Array.Clear(array3, num4, length);
this.buffer[0] = b;
this.bufferPos = (int)((ulong)1L);
}
// Token: 0x0600BA07 RID: 47623 RVA: 0x0029CFF4 File Offset: 0x0029B1F4
[Token(Token = "0x600BA07")]
[Address(RVA = "0x1B2E7F0", Offset = "0x1B2D5F0", VA = "0x181B2E7F0", Slot = "12")]
public virtual void BlockUpdate(byte[] message, int offset, int len)
{
if (message != 0 && len != 0)
{
int num = this.bufferPos;
int num2 = 0;
if (num != 0)
{
byte[] array = this.buffer;
uint num3;
num3 -= (uint)num;
Array.Copy(message, offset, array, num, len);
Array.Copy(message, offset, array, num, (int)num3);
if (num3 == (uint)len)
{
}
byte[] array2 = this.buffer;
int num4 = 0;
this.Compress(array2, num4);
byte[] array3 = this.buffer;
this.bufferPos = num2;
int length = array3.Length;
int num5 = 0;
Array.Clear(array3, num5, length);
}
num2 += offset;
this.Compress(message, num2);
byte[] array4 = this.buffer;
int num6 = 0;
Array.Copy(message, num2, array4, num6, offset);
}
}
// Token: 0x0600BA08 RID: 47624 RVA: 0x0029D0A4 File Offset: 0x0029B2A4
[Token(Token = "0x600BA08")]
[Address(RVA = "0x1B2F160", Offset = "0x1B2DF60", VA = "0x181B2F160", Slot = "13")]
public virtual int DoFinal(byte[] output, int outOffset)
{
int num = this.bufferPos;
this.f0 = (ulong)(-1L);
this.t0 = (ulong)num;
if (num <= 0 || num == 0)
{
}
byte[] array = this.buffer;
int num2 = 0;
this.Compress(array, num2);
byte[] array2 = this.buffer;
int length = array2.Length;
int num3 = 0;
Array.Clear(array2, num3, length);
ulong[] array3 = this.internalState;
int length2 = array3.Length;
int num4 = 0;
Array.Clear(array3, num4, length2);
ulong[] array4 = this.chainValue;
int num5 = 0;
ulong[] array6;
if (num5 < array4.Length && num5 < this.digestLength)
{
byte[] array5 = Pack.UInt64_To_LE(array4[num5]);
int num6 = this.digestLength;
num6 -= num5;
int num7 = 0;
uint num8;
Array.Copy(array5, num7, output, 0, (int)num8);
array6 = this.chainValue;
num5++;
num5 += 8;
}
int length3 = array6.Length;
int num9 = 0;
Array.Clear(array6, num9, length3);
return this.digestLength;
}
// Token: 0x0600BA09 RID: 47625 RVA: 0x0029D1A4 File Offset: 0x0029B3A4
[Token(Token = "0x600BA09")]
[Address(RVA = "0x1B2FE50", Offset = "0x1B2EC50", VA = "0x181B2FE50", Slot = "14")]
public virtual void Reset()
{
int num = 0;
this.bufferPos = num;
this.f0 = (ulong)num;
this.t0 = (ulong)num;
this.t1 = (ulong)num;
this.chainValue = num;
byte[] array = this.buffer;
int length = array.Length;
int num2 = 0;
Array.Clear(array, num2, length);
byte[] array2 = this.key;
if (array2 != 0)
{
int length2 = array2.Length;
int num3 = 0;
byte[] array3 = this.buffer;
int num4 = 0;
Array.Copy(array2, num4, array3, num3, length2);
this.bufferPos = (int)((ulong)128L);
}
this.Init();
}
// Token: 0x0600BA0A RID: 47626 RVA: 0x0029D23C File Offset: 0x0029B43C
[Token(Token = "0x600BA0A")]
[Address(RVA = "0x1B2E9B0", Offset = "0x1B2D7B0", VA = "0x181B2E9B0")]
private void Compress(byte[] message, int messagePos)
{
this.InitializeInternalState();
ulong[] array = new ulong[16];
int num = 0;
ulong num2 = Pack.LE_To_UInt64(message, messagePos);
num++;
array[0] = num2;
byte[,] array2 = Blake2bDigest.blake2b_sigma;
throw new IndexOutOfRangeException();
}
// Token: 0x0600BA0B RID: 47627 RVA: 0x0029D4A8 File Offset: 0x0029B6A8
[Token(Token = "0x600BA0B")]
[Address(RVA = "0x1B2F2E0", Offset = "0x1B2E0E0", VA = "0x181B2F2E0")]
private void G(ulong m1, ulong m2, int posA, int posB, int posC, int posD)
{
ulong[] array = this.internalState;
int length = array.Length;
ulong num;
ulong num2;
num += num2;
num += m1;
int length2 = this.internalState.Length;
ulong num3;
array.m_value = num3;
ulong[] array2 = this.internalState;
int length3 = array2.Length;
ulong num4;
ulong num5;
num4 += num5;
array2[0] = num4;
int length4 = this.internalState.Length;
int length5 = this.internalState.Length;
ulong num6;
ulong num7;
num6 += num7;
int length6 = this.internalState.Length;
ulong num8;
array.m_value = num8;
ulong[] array3 = this.internalState;
int length7 = array3.Length;
ulong num9;
ulong num10;
num9 += num10;
array3[0] = num9;
int length8 = this.internalState.Length;
ulong num11;
num11 += num11;
}
// Token: 0x0600BA0C RID: 47628 RVA: 0x0029D574 File Offset: 0x0029B774
[Token(Token = "0x600BA0C")]
[Address(RVA = "0x1B2FED0", Offset = "0x1B2ECD0", VA = "0x181B2FED0")]
private static ulong Rotr64(ulong x, int rot)
{
return x;
}
// Token: 0x17001D08 RID: 7432
// (get) Token: 0x0600BA0D RID: 47629 RVA: 0x0029D584 File Offset: 0x0029B784
[Token(Token = "0x17001D08")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BA0D")]
[Address(RVA = "0x1B30650", Offset = "0x1B2F450", VA = "0x181B30650", Slot = "15")]
get
{
return "BLAKE2b";
}
}
// Token: 0x0600BA0E RID: 47630 RVA: 0x0029D598 File Offset: 0x0029B798
[Token(Token = "0x600BA0E")]
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560", Slot = "16")]
public virtual int GetDigestSize()
{
return this.digestLength;
}
// Token: 0x0600BA0F RID: 47631 RVA: 0x0029D5AC File Offset: 0x0029B7AC
[Token(Token = "0x600BA0F")]
[Address(RVA = "0x1B2F710", Offset = "0x1B2E510", VA = "0x181B2F710", Slot = "17")]
public virtual int GetByteLength()
{
return 128;
}
// Token: 0x0600BA10 RID: 47632 RVA: 0x0029D5C0 File Offset: 0x0029B7C0
[Token(Token = "0x600BA10")]
[Address(RVA = "0x1B2E940", Offset = "0x1B2D740", VA = "0x181B2E940", Slot = "18")]
public virtual void ClearKey()
{
byte[] array = this.key;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
byte[] array2 = this.buffer;
int length2 = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length2);
return;
}
}
// Token: 0x0600BA11 RID: 47633 RVA: 0x0029D60C File Offset: 0x0029B80C
[Token(Token = "0x600BA11")]
[Address(RVA = "0x1B2E990", Offset = "0x1B2D790", VA = "0x181B2E990", Slot = "19")]
public virtual void ClearSalt()
{
byte[] array = this.salt;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
return;
}
}
// Token: 0x0600BA12 RID: 47634 RVA: 0x0029D638 File Offset: 0x0029B838
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA12")]
[Address(RVA = "0x1B2FFB0", Offset = "0x1B2EDB0", VA = "0x181B2FFB0")]
static Blake2bDigest()
{
ulong[] array = new ulong[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.22F13A28C218AA9B43303043F2CF664790D12BD7).FieldHandle);
Blake2bDigest.blake2b_IV = array;
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.DB8FE39060DF4E7BC9CC190D08EFF78F0C61F289).FieldHandle);
Blake2bDigest.blake2b_sigma = array;
}
// Token: 0x04007640 RID: 30272
[Token(Token = "0x4007640")]
private static readonly ulong[] blake2b_IV;
// Token: 0x04007641 RID: 30273
[Token(Token = "0x4007641")]
private static readonly byte[,] blake2b_sigma;
// Token: 0x04007642 RID: 30274
[Token(Token = "0x4007642")]
private const int ROUNDS = 12;
// Token: 0x04007643 RID: 30275
[Token(Token = "0x4007643")]
private const int BLOCK_LENGTH_BYTES = 128;
// Token: 0x04007644 RID: 30276
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007644")]
private int digestLength;
// Token: 0x04007645 RID: 30277
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4007645")]
private int keyLength;
// Token: 0x04007646 RID: 30278
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007646")]
private byte[] salt;
// Token: 0x04007647 RID: 30279
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007647")]
private byte[] personalization;
// Token: 0x04007648 RID: 30280
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007648")]
private byte[] key;
// Token: 0x04007649 RID: 30281
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007649")]
private byte[] buffer;
// Token: 0x0400764A RID: 30282
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400764A")]
private int bufferPos;
// Token: 0x0400764B RID: 30283
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400764B")]
private ulong[] internalState;
// Token: 0x0400764C RID: 30284
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400764C")]
private ulong[] chainValue;
// Token: 0x0400764D RID: 30285
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400764D")]
private ulong t0;
// Token: 0x0400764E RID: 30286
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400764E")]
private ulong t1;
// Token: 0x0400764F RID: 30287
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400764F")]
private ulong f0;
}
}
@@ -0,0 +1,573 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization.Formatters.Binary;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE1 RID: 7393
[Token(Token = "0x2001CE1")]
public class Blake2sDigest : IDigest
{
// Token: 0x0600BA13 RID: 47635 RVA: 0x0029D670 File Offset: 0x0029B870
[Token(Token = "0x600BA13")]
[Address(RVA = "0x1B32280", Offset = "0x1B31080", VA = "0x181B32280")]
public Blake2sDigest()
{
this.digestLength = (int)((ulong)32L);
uint[] array = new uint[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[64];
this.buffer = array2;
this.digestLength = (int)((ulong)32L);
this.Init();
}
// Token: 0x0600BA14 RID: 47636 RVA: 0x0029D6BC File Offset: 0x0029B8BC
[Token(Token = "0x600BA14")]
[Address(RVA = "0x1B31D30", Offset = "0x1B30B30", VA = "0x181B31D30")]
public Blake2sDigest(Blake2sDigest digest)
{
this.digestLength = (int)((ulong)32L);
uint[] array = new uint[16];
this.internalState = array;
base..ctor();
int num = digest.bufferPos;
this.bufferPos = num;
byte[] array2 = Arrays.Clone(digest.buffer);
this.buffer = array2;
int num2 = digest.keyLength;
this.keyLength = num2;
byte[] array3 = Arrays.Clone(digest.key);
this.key = array3;
int num3 = digest.digestLength;
this.digestLength = num3;
uint[] array4 = Arrays.Clone(digest.chainValue);
this.chainValue = array4;
byte[] array5 = Arrays.Clone(digest.personalization);
this.personalization = array5;
}
// Token: 0x0600BA15 RID: 47637 RVA: 0x0029D76C File Offset: 0x0029B96C
[Token(Token = "0x600BA15")]
[Address(RVA = "0x1B31F40", Offset = "0x1B30D40", VA = "0x181B31F40")]
public Blake2sDigest(int digestBits)
{
/*
An exception occurred when decompiling this method (0600BA15)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2sDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_57:
stloc:ArgumentException(var_5_61, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("BLAKE2s digest bit length must be a multiple of 8 and not greater than 256")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BA16 RID: 47638 RVA: 0x0029D7DC File Offset: 0x0029B9DC
[Token(Token = "0x600BA16")]
[Address(RVA = "0x1B31E20", Offset = "0x1B30C20", VA = "0x181B31E20")]
public Blake2sDigest(byte[] key)
{
this.digestLength = (int)((ulong)32L);
uint[] array = new uint[16];
this.internalState = array;
base..ctor();
byte[] array2 = new byte[64];
this.buffer = array2;
if (key != 0)
{
byte[] array3 = new byte[key.Length];
this.key = array3;
int num = 0;
int length = key.Length;
int num2 = 0;
Array.Copy(key, num2, array3, num, length);
int length2 = key.Length;
int num3 = 0;
byte[] array4 = this.buffer;
int num4 = 0;
this.keyLength = length2;
int length3 = key.Length;
Array.Copy(key, num4, array4, num3, length3);
this.bufferPos = (int)((ulong)64L);
}
this.digestLength = (int)((ulong)32L);
this.Init();
}
// Token: 0x0600BA17 RID: 47639 RVA: 0x0029D8A4 File Offset: 0x0029BAA4
[Token(Token = "0x600BA17")]
[Address(RVA = "0x1B32020", Offset = "0x1B30E20", VA = "0x181B32020")]
public Blake2sDigest(byte[] key, int digestBytes, byte[] salt, byte[] personalization)
{
/*
An exception occurred when decompiling this method (0600BA17)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Blake2sDigest::.ctor(System.Byte[],System.Int32,System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_110:
stloc:ArgumentException(var_19_11A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Salt length must be exactly 8 bytes")))
}
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: 0x0600BA18 RID: 47640 RVA: 0x0029D9CC File Offset: 0x0029BBCC
[Token(Token = "0x600BA18")]
[Address(RVA = "0x1B31450", Offset = "0x1B30250", VA = "0x181B31450")]
private void Init()
{
if (this.chainValue == (ulong)0L)
{
uint[] array = new uint[8];
this.chainValue = array;
uint[] array2 = Blake2sDigest.blake2s_IV;
int num = this.keyLength;
array[0] = (uint)num;
uint[] array3 = this.chainValue;
uint num2 = Blake2sDigest.blake2s_IV[0];
array3[0] = num2;
uint[] array4 = this.chainValue;
uint num3 = Blake2sDigest.blake2s_IV[1];
array4[1] = num3;
uint[] array5 = this.chainValue;
uint num4 = Blake2sDigest.blake2s_IV[1];
array5[1] = num4;
uint[] array6 = this.chainValue;
uint num5 = Blake2sDigest.blake2s_IV[2];
array6[2] = num5;
uint[] array7 = this.chainValue;
uint num6 = Blake2sDigest.blake2s_IV[2];
array7[2] = num6;
byte[] array8 = this.salt;
if (array8 != 0)
{
uint[] array9 = this.chainValue;
int num7 = 0;
int @int = SerializationHeaderRecord.GetInt32(array8, num7);
array9[2] = (uint)@int;
uint[] array10 = this.chainValue;
int int2 = SerializationHeaderRecord.GetInt32(this.salt, 4);
array10[2] = (uint)int2;
}
uint[] array11 = this.chainValue;
uint num8 = Blake2sDigest.blake2s_IV[3];
array11[3] = num8;
uint[] array12 = this.chainValue;
uint num9 = Blake2sDigest.blake2s_IV[3];
array12[3] = num9;
byte[] array13 = this.personalization;
if (array13 != 0)
{
uint[] array14 = this.chainValue;
int num10 = 0;
int int3 = SerializationHeaderRecord.GetInt32(array13, num10);
array14[3] = (uint)int3;
uint[] array15 = this.chainValue;
int int4 = SerializationHeaderRecord.GetInt32(this.personalization, 4);
array15[3] = (uint)int4;
}
}
}
// Token: 0x0600BA19 RID: 47641 RVA: 0x0029DB84 File Offset: 0x0029BD84
[Token(Token = "0x600BA19")]
[Address(RVA = "0x1B31910", Offset = "0x1B30710", VA = "0x181B31910")]
private void InitializeInternalState()
{
uint[] array = this.chainValue;
int length = array.Length;
int num = 0;
uint[] array2 = this.internalState;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
uint[] array3 = this.chainValue;
int num3 = 0;
int length2 = array3.Length;
uint[] array4 = this.internalState;
ulong num4;
Array.Copy(Blake2sDigest.blake2s_IV, num3, array4, length2, (int)num4);
uint[] array5 = this.internalState;
uint num5 = Blake2sDigest.blake2s_IV[2];
array5[6] = num5;
uint[] array6 = this.internalState;
uint num6 = Blake2sDigest.blake2s_IV[2];
array6[6] = num6;
uint[] array7 = this.internalState;
uint num7 = Blake2sDigest.blake2s_IV[3];
array7[7] = num7;
uint[] array8 = this.internalState;
uint num8 = Blake2sDigest.blake2s_IV[3];
array8[7] = num8;
}
// Token: 0x0600BA1A RID: 47642 RVA: 0x0029DC68 File Offset: 0x0029BE68
[Token(Token = "0x600BA1A")]
[Address(RVA = "0x1B31BC0", Offset = "0x1B309C0", VA = "0x181B31BC0", Slot = "11")]
public virtual void Update(byte b)
{
int num = this.bufferPos;
uint num2;
byte[] array;
if (num2 != (uint)num)
{
array = this.buffer;
return;
}
if (num == array.Length)
{
}
byte[] array2 = this.buffer;
int num3 = 0;
this.Compress(array2, num3);
byte[] array3 = this.buffer;
int length = array3.Length;
int num4 = 0;
Array.Clear(array3, num4, length);
this.buffer[0] = b;
this.bufferPos = (int)((ulong)1L);
}
// Token: 0x0600BA1B RID: 47643 RVA: 0x0029DCE0 File Offset: 0x0029BEE0
[Token(Token = "0x600BA1B")]
[Address(RVA = "0x1B30680", Offset = "0x1B2F480", VA = "0x181B30680", Slot = "12")]
public virtual void BlockUpdate(byte[] message, int offset, int len)
{
if (message != 0 && len != 0)
{
int num = this.bufferPos;
int num2 = 0;
if (num != 0)
{
byte[] array = this.buffer;
uint num3;
num3 -= (uint)num;
Array.Copy(message, offset, array, num, len);
Array.Copy(message, offset, array, num, (int)num3);
if (num3 == (uint)len)
{
}
byte[] array2 = this.buffer;
int num4 = 0;
this.Compress(array2, num4);
byte[] array3 = this.buffer;
this.bufferPos = num2;
int length = array3.Length;
int num5 = 0;
Array.Clear(array3, num5, length);
}
num2 += offset;
this.Compress(message, num2);
num2 += 64;
byte[] array4 = this.buffer;
int num6 = 0;
Array.Copy(message, num2, array4, num6, offset);
}
}
// Token: 0x0600BA1C RID: 47644 RVA: 0x0029DD94 File Offset: 0x0029BF94
[Token(Token = "0x600BA1C")]
[Address(RVA = "0x1B30F50", Offset = "0x1B2FD50", VA = "0x181B30F50", Slot = "13")]
public virtual int DoFinal(byte[] output, int outOffset)
{
this.f0 = (uint)((ulong)4294967295L);
byte[] array = this.buffer;
int num = 0;
this.Compress(array, num);
byte[] array2 = this.buffer;
int length = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length);
uint[] array3 = this.internalState;
int length2 = array3.Length;
int num3 = 0;
Array.Clear(array3, num3, length2);
uint[] array4 = this.chainValue;
int num4 = 0;
uint[] array6;
if (num4 < array4.Length && num4 < this.digestLength)
{
byte[] array5 = Pack.UInt32_To_LE(array4[num4]);
int num5 = this.digestLength;
num5 -= num4;
int num6 = 0;
uint num7;
Array.Copy(array5, num6, output, 0, (int)num7);
array6 = this.chainValue;
num4++;
num4 += 4;
}
int length3 = array6.Length;
int num8 = 0;
Array.Clear(array6, num8, length3);
return this.digestLength;
}
// Token: 0x0600BA1D RID: 47645 RVA: 0x0029DE84 File Offset: 0x0029C084
[Token(Token = "0x600BA1D")]
[Address(RVA = "0x1B31B40", Offset = "0x1B30940", VA = "0x181B31B40", Slot = "14")]
public virtual void Reset()
{
int num = 0;
this.bufferPos = num;
this.t1 = (uint)num;
this.t0 = (uint)num;
this.chainValue = num;
byte[] array = this.buffer;
int length = array.Length;
int num2 = 0;
Array.Clear(array, num2, length);
byte[] array2 = this.key;
if (array2 != 0)
{
int length2 = array2.Length;
int num3 = 0;
byte[] array3 = this.buffer;
int num4 = 0;
Array.Copy(array2, num4, array3, num3, length2);
this.bufferPos = (int)((ulong)64L);
}
this.Init();
}
// Token: 0x0600BA1E RID: 47646 RVA: 0x0029DF10 File Offset: 0x0029C110
[Token(Token = "0x600BA1E")]
[Address(RVA = "0x1B307C0", Offset = "0x1B2F5C0", VA = "0x181B307C0")]
private void Compress(byte[] message, int messagePos)
{
this.InitializeInternalState();
uint[] array = new uint[16];
int num = 0;
num++;
array[0] = array;
byte[,] array2 = Blake2sDigest.blake2s_sigma;
throw new IndexOutOfRangeException();
}
// Token: 0x0600BA1F RID: 47647 RVA: 0x0029E178 File Offset: 0x0029C378
[Token(Token = "0x600BA1F")]
[Address(RVA = "0x1B310B0", Offset = "0x1B2FEB0", VA = "0x181B310B0")]
private void G(uint m1, uint m2, int posA, int posB, int posC, int posD)
{
uint[] array = this.internalState;
int length = array.Length;
uint num;
uint num2;
num += num2;
num += m1;
posA.m_value = (int)num;
int length2 = this.internalState.Length;
uint num3;
array.m_value = num3;
uint[] array2 = this.internalState;
int length3 = array2.Length;
uint num4;
uint num5;
num4 += num5;
array2[0] = num4;
int length4 = this.internalState.Length;
int length5 = this.internalState.Length;
uint num6;
uint num7;
num6 += num7;
num6 += m2;
posA.m_value = (int)num6;
int length6 = this.internalState.Length;
uint num8;
array.m_value = num8;
uint[] array3 = this.internalState;
int length7 = array3.Length;
uint num9;
uint num10;
num9 += num10;
array3[0] = num9;
int length8 = this.internalState.Length;
}
// Token: 0x0600BA20 RID: 47648 RVA: 0x0029E254 File Offset: 0x0029C454
[Token(Token = "0x600BA20")]
[Address(RVA = "0x1B32330", Offset = "0x1B31130", VA = "0x181B32330")]
private uint rotr32(uint x, int rot)
{
return x;
}
// Token: 0x17001D09 RID: 7433
// (get) Token: 0x0600BA21 RID: 47649 RVA: 0x0029E264 File Offset: 0x0029C464
[Token(Token = "0x17001D09")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BA21")]
[Address(RVA = "0x1B32300", Offset = "0x1B31100", VA = "0x181B32300", Slot = "15")]
get
{
return "BLAKE2s";
}
}
// Token: 0x0600BA22 RID: 47650 RVA: 0x0029E278 File Offset: 0x0029C478
[Token(Token = "0x600BA22")]
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560", Slot = "16")]
public virtual int GetDigestSize()
{
return this.digestLength;
}
// Token: 0x0600BA23 RID: 47651 RVA: 0x0029E28C File Offset: 0x0029C48C
[Token(Token = "0x600BA23")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "17")]
public virtual int GetByteLength()
{
return 64;
}
// Token: 0x0600BA24 RID: 47652 RVA: 0x0029E29C File Offset: 0x0029C49C
[Token(Token = "0x600BA24")]
[Address(RVA = "0x1B2E940", Offset = "0x1B2D740", VA = "0x181B2E940", Slot = "18")]
public virtual void ClearKey()
{
byte[] array = this.key;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
byte[] array2 = this.buffer;
int length2 = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length2);
return;
}
}
// Token: 0x0600BA25 RID: 47653 RVA: 0x0029E2E8 File Offset: 0x0029C4E8
[Token(Token = "0x600BA25")]
[Address(RVA = "0x1B2E990", Offset = "0x1B2D790", VA = "0x181B2E990", Slot = "19")]
public virtual void ClearSalt()
{
byte[] array = this.salt;
if (array != 0)
{
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
return;
}
}
// Token: 0x0600BA26 RID: 47654 RVA: 0x0029E314 File Offset: 0x0029C514
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA26")]
[Address(RVA = "0x1B31C80", Offset = "0x1B30A80", VA = "0x181B31C80")]
static Blake2sDigest()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.013B76F7DD3E0346CB351F079CC062EFBD293457).FieldHandle);
Blake2sDigest.blake2s_IV = array;
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.7F817443C1F736721DD92BD67C7C8994C7B8DEBF).FieldHandle);
Blake2sDigest.blake2s_sigma = array;
}
// Token: 0x04007650 RID: 30288
[Token(Token = "0x4007650")]
private static readonly uint[] blake2s_IV;
// Token: 0x04007651 RID: 30289
[Token(Token = "0x4007651")]
private static readonly byte[,] blake2s_sigma;
// Token: 0x04007652 RID: 30290
[Token(Token = "0x4007652")]
private const int ROUNDS = 10;
// Token: 0x04007653 RID: 30291
[Token(Token = "0x4007653")]
private const int BLOCK_LENGTH_BYTES = 64;
// Token: 0x04007654 RID: 30292
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007654")]
private int digestLength;
// Token: 0x04007655 RID: 30293
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4007655")]
private int keyLength;
// Token: 0x04007656 RID: 30294
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007656")]
private byte[] salt;
// Token: 0x04007657 RID: 30295
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007657")]
private byte[] personalization;
// Token: 0x04007658 RID: 30296
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007658")]
private byte[] key;
// Token: 0x04007659 RID: 30297
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007659")]
private byte[] buffer;
// Token: 0x0400765A RID: 30298
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400765A")]
private int bufferPos;
// Token: 0x0400765B RID: 30299
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400765B")]
private uint[] internalState;
// Token: 0x0400765C RID: 30300
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400765C")]
private uint[] chainValue;
// Token: 0x0400765D RID: 30301
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400765D")]
private uint t0;
// Token: 0x0400765E RID: 30302
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x400765E")]
private uint t1;
// Token: 0x0400765F RID: 30303
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400765F")]
private uint f0;
}
}
@@ -0,0 +1,557 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE2 RID: 7394
[Token(Token = "0x2001CE2")]
public class Dstu7564Digest : IDigest, IMemoable
{
// Token: 0x0600BA27 RID: 47655 RVA: 0x0029E34C File Offset: 0x0029C54C
[Token(Token = "0x600BA27")]
[Address(RVA = "0x1B37F70", Offset = "0x1B36D70", VA = "0x181B37F70")]
public Dstu7564Digest(Dstu7564Digest digest)
{
this.CopyIn(digest);
}
// Token: 0x0600BA28 RID: 47656 RVA: 0x0029E368 File Offset: 0x0029C568
[Token(Token = "0x600BA28")]
[Address(RVA = "0x1B364C0", Offset = "0x1B352C0", VA = "0x181B364C0")]
private void CopyIn(Dstu7564Digest digest)
{
int num = digest.hashSize;
this.hashSize = num;
int num2 = digest.blockSize;
this.blockSize = num2;
int num3 = digest.rounds;
this.rounds = num3;
int num4 = this.columns;
if (num4 > 0 && num4 == digest.S3)
{
ulong[] array = this.state;
ulong[] array2 = digest.state;
int num5 = 0;
int num6 = 0;
Array.Copy(array2, num6, array, num5, num4);
int num7 = this.blockSize;
int num8 = 0;
byte[] array3 = this.buf;
int num9 = 0;
Array.Copy(digest.buf, num9, array3, num8, num7);
}
int num10 = digest.columns;
this.columns = num10;
ulong[] array4 = Arrays.Clone(digest.state);
int num11 = this.columns;
this.state = array4;
ulong[] array5 = new ulong[num11];
int num12 = this.columns;
this.tempState1 = array5;
ulong[] array6 = new ulong[num12];
this.tempState2 = array6;
byte[] array7 = Arrays.Clone(digest.buf);
this.buf = array7;
ulong num13 = digest.inputBlocks;
this.inputBlocks = num13;
int num14 = digest.bufOff;
this.bufOff = num14;
}
// Token: 0x0600BA29 RID: 47657 RVA: 0x0029E498 File Offset: 0x0029C698
[Token(Token = "0x600BA29")]
[Address(RVA = "0x1B37FA0", Offset = "0x1B36DA0", VA = "0x181B37FA0")]
public Dstu7564Digest(int hashSizeBits)
{
/*
An exception occurred when decompiling this method (0600BA29)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Dstu7564Digest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A6:
stloc:ArgumentException(var_11_B0, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Hash size is not recommended. Use 256/384/512 instead")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001D0A RID: 7434
// (get) Token: 0x0600BA2A RID: 47658 RVA: 0x0029E558 File Offset: 0x0029C758
[Token(Token = "0x17001D0A")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BA2A")]
[Address(RVA = "0x1B380F0", Offset = "0x1B36EF0", VA = "0x181B380F0", Slot = "13")]
get
{
return "DSTU7564";
}
}
// Token: 0x0600BA2B RID: 47659 RVA: 0x0029E56C File Offset: 0x0029C76C
[Token(Token = "0x600BA2B")]
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560", Slot = "14")]
public virtual int GetDigestSize()
{
return this.hashSize;
}
// Token: 0x0600BA2C RID: 47660 RVA: 0x0029E580 File Offset: 0x0029C780
[Token(Token = "0x600BA2C")]
[Address(RVA = "0x495080", Offset = "0x493E80", VA = "0x180495080", Slot = "15")]
public virtual int GetByteLength()
{
return this.blockSize;
}
// Token: 0x0600BA2D RID: 47661 RVA: 0x0029E594 File Offset: 0x0029C794
[Token(Token = "0x600BA2D")]
[Address(RVA = "0x1B37DE0", Offset = "0x1B36BE0", VA = "0x181B37DE0", Slot = "16")]
public virtual void Update(byte input)
{
byte[] array = this.buf;
int num = this.bufOff + 1;
this.bufOff = num;
int num2 = this.blockSize;
if (this.bufOff == num2)
{
this.Reset();
this.bufOff = (int)((ulong)0L);
}
}
// Token: 0x0600BA2E RID: 47662 RVA: 0x0029E5E0 File Offset: 0x0029C7E0
[Token(Token = "0x600BA2E")]
[Address(RVA = "0x1B363A0", Offset = "0x1B351A0", VA = "0x181B363A0", Slot = "17")]
public virtual void BlockUpdate(byte[] input, int inOff, int length)
{
if (this.bufOff != 0)
{
if (length <= 0)
{
return;
}
int byteLength = this.GetByteLength();
while (this.bufOff != 0)
{
}
}
if (length > 0)
{
this.Reset();
int num = this.blockSize;
while (length >= num)
{
}
if (length > 0)
{
int byteLength2 = this.GetByteLength();
}
}
}
// Token: 0x0600BA2F RID: 47663 RVA: 0x0029E634 File Offset: 0x0029C834
[Token(Token = "0x600BA2F")]
[Address(RVA = "0x1B36650", Offset = "0x1B35450", VA = "0x181B36650", Slot = "18")]
public virtual int DoFinal(byte[] output, int outOff)
{
int num = this.bufOff;
byte[] array = this.buf;
int num2 = num + 1;
this.bufOff = num2;
int num3 = 0;
int num4 = this.blockSize;
int num5 = this.bufOff;
if (num5 < num4)
{
byte[] array2 = this.buf;
int num6 = num5 + 1;
this.bufOff = num6;
int num7 = this.bufOff;
}
this.bufOff = num3;
this.Reset();
int num8 = this.bufOff;
byte[] array3 = this.buf;
int num9 = num5 + 1;
this.bufOff = num9;
int num10 = this.bufOff;
ulong num11 = this.inputBlocks;
int num12 = this.blockSize;
byte[] array4 = this.buf;
ulong num13 = num11 * (ulong)num12;
num13 += (ulong)num;
Ed25519.Encode32((uint)num13, array4, num10);
ulong num14 = this.inputBlocks;
int num15 = this.blockSize;
int num16 = this.bufOff;
byte[] array5 = this.buf;
Pack.UInt64_To_LE(num14 * (ulong)num15, array5, num16);
this.Reset();
int num17 = this.columns;
int num18 = 0;
ulong[] array6 = this.tempState1;
int num19 = 0;
Array.Copy(this.state, num19, array6, num18, num17);
ulong[] array7 = this.tempState1;
this.P(array7);
int num20;
if (this.columns > 0)
{
ulong[] array8 = this.state;
ulong[] array9 = this.tempState1;
num3++;
num20 = this.columns;
}
int num21 = this.hashSize;
num21 += num3;
num20 -= num21;
if (num20 < num20)
{
Pack.UInt64_To_LE(this.state[num20], output, outOff);
num20++;
}
return this.hashSize;
}
// Token: 0x0600BA30 RID: 47664 RVA: 0x0029E7D0 File Offset: 0x0029C9D0
[Token(Token = "0x600BA30")]
[Address(RVA = "0x1B36EF0", Offset = "0x1B35CF0", VA = "0x181B36EF0", Slot = "19")]
public virtual void Reset()
{
ulong[] array = this.state;
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
ulong[] array2 = this.state;
int num2 = this.blockSize;
array2[0] = (ulong)num2;
int num3 = 0;
this.inputBlocks = (ulong)num3;
this.bufOff = num3;
}
// Token: 0x0600BA31 RID: 47665 RVA: 0x0029E828 File Offset: 0x0029CA28
[Token(Token = "0x600BA31")]
[Address(RVA = "0x1B36BD0", Offset = "0x1B359D0", VA = "0x181B36BD0", Slot = "20")]
protected virtual void ProcessBlock(byte[] input, int inOff)
{
int num = 0;
if (this.S3 > num)
{
ulong num2 = Pack.LE_To_UInt64(input, inOff);
ulong[] array = this.state;
ulong[] array2 = this.tempState1;
ulong num3 = array[num];
array2[0] = num3;
ulong[] array3 = this.tempState2;
num++;
array3[0] = num2;
}
ulong[] array4 = this.tempState1;
this.P(array4);
ulong[] array5 = this.tempState2;
if (this.rounds > num)
{
int num4 = this.columns;
if (num4 > 0)
{
num++;
ulong num5;
num4 = (int)((ulong)num4 - num5);
}
this.ShiftRows(array5);
this.SubBytes(array5);
this.MixColumns(array5);
num++;
}
if (this.S3 > num)
{
ulong[] array6 = this.state;
ulong[] array7 = this.tempState1;
ulong num6 = this.tempState2[num];
num++;
}
}
// Token: 0x0600BA32 RID: 47666 RVA: 0x0029E904 File Offset: 0x0029CB04
[Token(Token = "0x600BA32")]
[Address(RVA = "0x1B36B20", Offset = "0x1B35920", VA = "0x181B36B20")]
private void P(ulong[] s)
{
int num = 0;
if (this.rounds > num)
{
int num2 = 0;
if (this.S3 > num2)
{
num2++;
num += 16;
}
this.ShiftRows(s);
this.SubBytes(s);
this.MixColumns(s);
num++;
}
}
// Token: 0x0600BA33 RID: 47667 RVA: 0x0029E950 File Offset: 0x0029CB50
[Token(Token = "0x600BA33")]
[Address(RVA = "0x1B36E10", Offset = "0x1B35C10", VA = "0x181B36E10")]
private void Q(ulong[] s)
{
int num = 0;
if (this.rounds > num)
{
int num2 = this.columns;
int num3 = 0;
if (num2 > 0)
{
num3++;
ulong num4;
num2 = (int)((ulong)num2 - num4);
}
this.ShiftRows(s);
this.SubBytes(s);
this.MixColumns(s);
num++;
}
}
// Token: 0x0600BA34 RID: 47668 RVA: 0x0029E99C File Offset: 0x0029CB9C
[Token(Token = "0x600BA34")]
[Address(RVA = "0x1B36910", Offset = "0x1B35710", VA = "0x181B36910")]
private static ulong MixColumn(ulong c)
{
return c;
}
// Token: 0x0600BA35 RID: 47669 RVA: 0x0029E9AC File Offset: 0x0029CBAC
[Token(Token = "0x600BA35")]
[Address(RVA = "0x1B36A50", Offset = "0x1B35850", VA = "0x181B36A50")]
private void MixColumns(ulong[] s)
{
int num = 0;
if (this.S3 > num)
{
ulong num2 = Dstu7564Digest.MixColumn(s[num]);
num++;
s[0] = num2;
}
}
// Token: 0x0600BA36 RID: 47670 RVA: 0x0029E9E4 File Offset: 0x0029CBE4
[Token(Token = "0x600BA36")]
[Address(RVA = "0x1B36FF0", Offset = "0x1B35DF0", VA = "0x181B36FF0")]
private static ulong Rotate(int n, ulong x)
{
return x;
}
// Token: 0x0600BA37 RID: 47671 RVA: 0x0029E9F4 File Offset: 0x0029CBF4
[Token(Token = "0x600BA37")]
[Address(RVA = "0x1B37010", Offset = "0x1B35E10", VA = "0x181B37010")]
private void ShiftRows(ulong[] s)
{
/*
An exception occurred when decompiling this method (0600BA37)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Dstu7564Digest::ShiftRows(System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_13E:
stloc:InvalidOperationException(var_18_148, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported state size: only 512/1024 are allowed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BA38 RID: 47672 RVA: 0x0029EB4C File Offset: 0x0029CD4C
[Token(Token = "0x600BA38")]
[Address(RVA = "0x1B37AE0", Offset = "0x1B368E0", VA = "0x181B37AE0")]
private void SubBytes(ulong[] s)
{
int num = 0;
if (this.S3 > num)
{
num += 4;
int length = Dstu7564Digest.S0.Length;
int length2 = Dstu7564Digest.S1.Length;
int length3 = Dstu7564Digest.S2.Length;
int length4 = Dstu7564Digest.S3.Length;
num++;
byte b;
num.m_value = (int)b;
}
}
// Token: 0x0600BA39 RID: 47673 RVA: 0x0029EBA8 File Offset: 0x0029CDA8
[Token(Token = "0x600BA39")]
[Address(RVA = "0x1B365F0", Offset = "0x1B353F0", VA = "0x181B365F0", Slot = "21")]
public virtual IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BA39)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Dstu7564Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(Dstu7564Digest::CopyIn, ldloc:Dstu7564Digest(var_0), ldloc:Dstu7564Digest(this))
}
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: 0x0600BA3A RID: 47674 RVA: 0x0029EBBC File Offset: 0x0029CDBC
[Token(Token = "0x600BA3A")]
[Address(RVA = "0x1B36F50", Offset = "0x1B35D50", VA = "0x181B36F50", Slot = "22")]
public virtual void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x0600BA3B RID: 47675 RVA: 0x0029EBD4 File Offset: 0x0029CDD4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA3B")]
[Address(RVA = "0x1B37E60", Offset = "0x1B36C60", VA = "0x181B37E60")]
static Dstu7564Digest()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6F5D2C37DFCDB1E72B86BC606C0E717C70E188A4).FieldHandle);
Dstu7564Digest.S0 = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.79039C5C22F863E8EAE0E08E1318F343680E50A8).FieldHandle);
Dstu7564Digest.S1 = array2;
byte[] array3 = new byte[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.340B4B55E1DFD4BADC69CA57007FC1A4CDBA7943).FieldHandle);
Dstu7564Digest.S2 = array3;
byte[] array4 = new byte[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.5CFF612F2058DE2C287ECA5C6407ECC471F65576).FieldHandle);
Dstu7564Digest.S3 = array4;
}
// Token: 0x04007660 RID: 30304
[Token(Token = "0x4007660")]
private const int NB_512 = 8;
// Token: 0x04007661 RID: 30305
[Token(Token = "0x4007661")]
private const int NB_1024 = 16;
// Token: 0x04007662 RID: 30306
[Token(Token = "0x4007662")]
private const int NR_512 = 10;
// Token: 0x04007663 RID: 30307
[Token(Token = "0x4007663")]
private const int NR_1024 = 14;
// Token: 0x04007664 RID: 30308
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007664")]
private int hashSize;
// Token: 0x04007665 RID: 30309
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4007665")]
private int blockSize;
// Token: 0x04007666 RID: 30310
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007666")]
private int columns;
// Token: 0x04007667 RID: 30311
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4007667")]
private int rounds;
// Token: 0x04007668 RID: 30312
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007668")]
private ulong[] state;
// Token: 0x04007669 RID: 30313
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007669")]
private ulong[] tempState1;
// Token: 0x0400766A RID: 30314
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400766A")]
private ulong[] tempState2;
// Token: 0x0400766B RID: 30315
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400766B")]
private ulong inputBlocks;
// Token: 0x0400766C RID: 30316
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400766C")]
private int bufOff;
// Token: 0x0400766D RID: 30317
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400766D")]
private byte[] buf;
// Token: 0x0400766E RID: 30318
[Token(Token = "0x400766E")]
private static readonly byte[] S0;
// Token: 0x0400766F RID: 30319
[Token(Token = "0x400766F")]
private static readonly byte[] S1;
// Token: 0x04007670 RID: 30320
[Token(Token = "0x4007670")]
private static readonly byte[] S2;
// Token: 0x04007671 RID: 30321
[Token(Token = "0x4007671")]
private static readonly byte[] S3;
}
}
@@ -0,0 +1,876 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE4 RID: 7396
[Token(Token = "0x2001CE4")]
public abstract class GOST3411_2012Digest : IDigest, IMemoable
{
// Token: 0x0600BA53 RID: 47699 RVA: 0x0029FA6C File Offset: 0x0029DC6C
[Token(Token = "0x600BA53")]
[Address(RVA = "0x1B3C260", Offset = "0x1B3B060", VA = "0x181B3C260")]
protected GOST3411_2012Digest(byte[] IV)
{
byte[] array = new byte[64];
this.IV = array;
byte[] array2 = new byte[64];
this.N = array2;
byte[] array3 = new byte[64];
this.Sigma = array3;
byte[] array4 = new byte[64];
this.Ki = array4;
byte[] array5 = new byte[64];
this.m = array5;
byte[] array6 = new byte[64];
this.h = array6;
byte[] array7 = new byte[64];
this.tmp = array7;
byte[] array8 = new byte[64];
this.block = array8;
this.bOff = (int)((ulong)64L);
base..ctor();
byte[] iv = this.IV;
Array.Copy(IV, iv, 64);
byte[] array9 = this.h;
Array.Copy(IV, array9, 64);
}
// Token: 0x17001D0C RID: 7436
// (get) Token: 0x0600BA54 RID: 47700
[Token(Token = "0x17001D0C")]
public abstract string AlgorithmName
{
[Token(Token = "0x600BA54")]
[Address(Slot = "13")]
get;
}
// Token: 0x0600BA55 RID: 47701
[Token(Token = "0x600BA55")]
[Address(Slot = "14")]
public abstract IMemoable Copy();
// Token: 0x0600BA56 RID: 47702 RVA: 0x0029FB30 File Offset: 0x0029DD30
[Token(Token = "0x600BA56")]
[Address(RVA = "0x1B38A70", Offset = "0x1B37870", VA = "0x181B38A70", Slot = "15")]
public virtual int DoFinal(byte[] output, int outOff)
{
int num = this.bOff;
int num2 = 0;
uint num3;
num3 -= (uint)num;
if (num != 0)
{
byte[] array = this.m;
num2++;
while (num2 != num)
{
}
}
byte[] array2 = this.m;
uint num4;
num4 -= num3;
int num5 = this.bOff;
if (num5 != 64)
{
byte[] array3 = this.m;
Array.Copy(this.block, num5, array3, num, (int)num3);
}
byte[] array4 = this.m;
byte[] n = this.N;
byte[] array5 = this.h;
this.g_N(array5, n, array4);
byte[] sigma = this.Sigma;
byte[] array6 = this.m;
byte b = (byte)((int)b + num2);
byte b2;
b2 += b;
byte[] array7 = this.h;
byte[] n2 = this.N;
byte[] zero = GOST3411_2012Digest.Zero;
this.g_N(array7, zero, n2);
byte[] sigma2 = this.Sigma;
byte[] array8 = this.h;
byte[] zero2 = GOST3411_2012Digest.Zero;
this.g_N(array8, zero2, sigma2);
byte[] array9 = this.h;
byte[] array10 = this.tmp;
int length = array9.Length;
byte[] array11;
if (length > 0)
{
num2++;
array11 = this.tmp;
}
int num6 = 0;
ulong num7;
Array.Copy(array11, num6, output, outOff, (int)num7);
byte[] n3 = this.N;
this.bOff = (int)((ulong)64L);
int num8 = 0;
Arrays.Fill(n3, (byte)num8);
byte[] sigma3 = this.Sigma;
int num9 = 0;
Arrays.Fill(sigma3, (byte)num9);
byte[] array12 = this.h;
int num10 = 0;
byte[] iv = this.IV;
int num11 = 0;
ulong num12;
Array.Copy(iv, num11, array12, num10, (int)num12);
byte[] array13 = this.block;
int num13 = 0;
Arrays.Fill(array13, (byte)num13);
throw new NullReferenceException();
}
// Token: 0x0600BA57 RID: 47703 RVA: 0x0029FCC8 File Offset: 0x0029DEC8
[Token(Token = "0x600BA57")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x0600BA58 RID: 47704
[Token(Token = "0x600BA58")]
[Address(Slot = "16")]
public abstract int GetDigestSize();
// Token: 0x0600BA59 RID: 47705 RVA: 0x0029FCD8 File Offset: 0x0029DED8
[Token(Token = "0x600BA59")]
[Address(RVA = "0x1B3B5F0", Offset = "0x1B3A3F0", VA = "0x181B3B5F0", Slot = "10")]
public void Reset()
{
byte[] n = this.N;
this.bOff = (int)((ulong)64L);
int num = 0;
Arrays.Fill(n, (byte)num);
byte[] sigma = this.Sigma;
int num2 = 0;
Arrays.Fill(sigma, (byte)num2);
byte[] array = this.h;
int num3 = 0;
byte[] iv = this.IV;
int num4 = 0;
ulong num5;
Array.Copy(iv, num4, array, num3, (int)num5);
byte[] array2 = this.block;
int num6 = 0;
Arrays.Fill(array2, (byte)num6);
}
// Token: 0x0600BA5A RID: 47706 RVA: 0x0029FD48 File Offset: 0x0029DF48
[Token(Token = "0x600BA5A")]
[Address(RVA = "0x1B3B6A0", Offset = "0x1B3A4A0", VA = "0x181B3B6A0", Slot = "12")]
public void Reset(IMemoable other)
{
int num;
do
{
num = 0;
}
while (other == 0);
this.bOff = num;
}
// Token: 0x0600BA5B RID: 47707 RVA: 0x0029FD6C File Offset: 0x0029DF6C
[Token(Token = "0x600BA5B")]
[Address(RVA = "0x1B3B830", Offset = "0x1B3A630", VA = "0x181B3B830", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.block;
int num = this.bOff;
int num2 = num - 1;
this.bOff = num2;
int num3 = num - 1;
if (this.bOff == 0)
{
byte[] array2 = this.block;
byte[] n = this.N;
byte[] array3 = this.h;
this.g_N(array3, n, array2);
byte[] n2 = this.N;
this.addMod512(n2, 512);
byte[] array4 = this.block;
byte[] sigma = this.Sigma;
this.addMod512(sigma, array4);
this.bOff = (int)((ulong)64L);
}
}
// Token: 0x0600BA5C RID: 47708 RVA: 0x0029FE04 File Offset: 0x0029E004
[Token(Token = "0x600BA5C")]
[Address(RVA = "0x1B38550", Offset = "0x1B37350", VA = "0x181B38550", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int len)
{
int num = 0;
int num2 = this.bOff;
if (num2 != 64 && len > 0)
{
int num3 = num2 - 1;
byte[] array = this.block;
this.bOff = num3;
int num4 = this.bOff;
if (num4 == 0)
{
byte[] array2 = this.block;
byte[] n = this.N;
byte[] array3 = this.h;
this.g_N(array3, n, array2);
byte[] n2 = this.N;
uint num5;
this.addMod512(n2, (int)num5);
byte[] sigma = this.Sigma;
uint num6;
byte b = this.block[(int)num6];
b = (byte)((int)b + num);
byte b2;
b2 += b;
this.bOff = (int)((ulong)64L);
}
while (num4 != 64)
{
}
}
byte[] array4 = this.tmp;
int num7 = 0;
ulong num8;
Array.Copy(input, inOff, array4, num7, (int)num8);
if (this.tmp.Length > 0)
{
byte[] array5 = this.block;
num++;
}
byte[] array6 = this.block;
byte[] n3 = this.N;
byte[] array7 = this.h;
this.g_N(array7, n3, array6);
byte[] n4 = this.N;
int length = n4.Length;
byte b3 = n4[7];
n4[7] = b3;
byte b4;
b3 += b4;
byte[] sigma2 = this.Sigma;
uint num9;
byte b5 = this.block[(int)num9];
b5 = (byte)((int)b5 + num);
byte b6;
b6 += b5;
while (len >= 64)
{
}
if (len > 0)
{
int num10 = this.bOff;
byte[] array8 = this.block;
int num11 = num10 - 1;
this.bOff = num11;
int num12 = num10 - 1;
if (this.bOff == num)
{
byte[] array9 = this.block;
byte[] n5 = this.N;
byte[] array10 = this.h;
this.g_N(array10, n5, array9);
byte[] n6 = this.N;
int length2 = n6.Length;
byte b7 = n6[7];
n6[7] = b7;
byte b8;
b7 += b8;
byte[] sigma3 = this.Sigma;
byte[] array11 = this.block;
byte b9 = (byte)((int)b9 + num);
byte b10;
b10 += b9;
this.bOff = (int)((ulong)64L);
}
}
}
// Token: 0x0600BA5D RID: 47709 RVA: 0x002A0014 File Offset: 0x0029E214
[Token(Token = "0x600BA5D")]
[Address(RVA = "0x1B39060", Offset = "0x1B37E60", VA = "0x181B39060")]
private void F(byte[] V)
{
/*
An exception occurred when decompiling this method (0600BA5D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.GOST3411_2012Digest::F(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_0_06, newarr:uint64[]([mscorlib]System.UInt64, ldc.i4:int32(8)))
stloc:uint64[][](var_1_0C, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_2_13, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_1_0C)))
stloc:uint64[](var_3_1B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(0)))
stloc:int32(var_4_22, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint8(var_5_2B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_6_34, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(1)))
stloc:uint8(var_7_3D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_8_46, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(2)))
stloc:uint8(var_9_4F, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_10_58, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(3)))
stloc:uint8(var_11_61, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_12_6A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(4)))
stloc:uint8(var_13_73, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_14_7C, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(5)))
stloc:uint8(var_15_85, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_16_8E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(6)))
stloc:uint8(var_17_97, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_18_A0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_1_0C), ldc.i4:int32(7)))
stloc:uint8(var_19_A9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_20_B4, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_18_A0), ldloc:uint8[exp:int32](var_19_A9)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(0), ldloc:uint64(var_20_B4))
stloc:uint64[][](var_21_C4, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_22_CD, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_21_C4)))
stloc:int32(var_23_D5, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_24_DF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(0)))
stloc:uint8(var_25_E8, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_26_F2, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(1)))
stloc:uint8(var_27_FB, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_28_105, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(2)))
stloc:uint8(var_29_10E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_30_118, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(3)))
stloc:uint8(var_31_121, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_32_12B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(4)))
stloc:uint8(var_33_134, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_34_13E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(5)))
stloc:uint8(var_35_147, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_36_151, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(6)))
stloc:uint8(var_37_15A, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_38_164, ldelem:uint64[](uint64[], ldloc:uint64[][](var_21_C4), ldc.i4:int32(7)))
stloc:uint8(var_39_16D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_40_178, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_38_164), ldloc:uint8[exp:int32](var_39_16D)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(1), ldloc:uint64(var_40_178))
stloc:uint64[][](var_41_188, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_42_191, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_41_188)))
stloc:int32(var_43_199, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_44_1A3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(0)))
stloc:uint8(var_45_1AC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_46_1B6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(1)))
stloc:uint8(var_47_1BF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_48_1C9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(2)))
stloc:uint8(var_49_1D2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_50_1DC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(3)))
stloc:uint8(var_51_1E5, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_52_1EF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(4)))
stloc:uint8(var_53_1F8, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_54_202, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(5)))
stloc:uint8(var_55_20B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_56_215, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(6)))
stloc:uint8(var_57_21E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_58_228, ldelem:uint64[](uint64[], ldloc:uint64[][](var_41_188), ldc.i4:int32(7)))
stloc:uint8(var_59_231, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_60_23C, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_58_228), ldloc:uint8[exp:int32](var_59_231)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(2), ldloc:uint64(var_60_23C))
stloc:uint64[][](var_61_24C, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_62_255, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_61_24C)))
stloc:int32(var_63_25D, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_64_267, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(0)))
stloc:uint8(var_65_270, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_66_27A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(1)))
stloc:uint8(var_67_283, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_68_28D, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(2)))
stloc:uint8(var_69_296, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_70_2A0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(3)))
stloc:uint8(var_71_2A9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_72_2B3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(4)))
stloc:uint8(var_73_2BC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_74_2C6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(5)))
stloc:uint8(var_75_2CF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_76_2D9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(6)))
stloc:uint8(var_77_2E2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_78_2EC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_61_24C), ldc.i4:int32(7)))
stloc:uint8(var_79_2F5, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_80_300, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_78_2EC), ldloc:uint8[exp:int32](var_79_2F5)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(3), ldloc:uint64(var_80_300))
stloc:uint64[][](var_81_310, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_82_319, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_81_310)))
stloc:int32(var_83_321, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_84_32B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(0)))
stloc:uint8(var_85_334, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_86_33E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(1)))
stloc:uint8(var_87_347, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_88_351, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(2)))
stloc:uint8(var_89_35A, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_90_364, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(3)))
stloc:uint8(var_91_36D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_92_377, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(4)))
stloc:uint8(var_93_380, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_94_38A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(5)))
stloc:uint8(var_95_393, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_96_39D, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(6)))
stloc:uint8(var_97_3A6, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_98_3B0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_81_310), ldc.i4:int32(7)))
stloc:uint8(var_99_3B9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_100_3C4, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_98_3B0), ldloc:uint8[exp:int32](var_99_3B9)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(4), ldloc:uint64(var_100_3C4))
stloc:uint64[][](var_101_3D4, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_102_3DD, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_101_3D4)))
stloc:int32(var_103_3E5, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_104_3EF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(0)))
stloc:uint8(var_105_3F8, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_106_402, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(1)))
stloc:uint8(var_107_40B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_108_415, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(2)))
stloc:uint8(var_109_41E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_110_428, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(3)))
stloc:uint8(var_111_431, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_112_43B, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(4)))
stloc:uint8(var_113_444, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_114_44E, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(5)))
stloc:uint8(var_115_457, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_116_461, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(6)))
stloc:uint8(var_117_46A, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_118_474, ldelem:uint64[](uint64[], ldloc:uint64[][](var_101_3D4), ldc.i4:int32(7)))
stloc:uint8(var_119_47D, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_120_488, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_118_474), ldloc:uint8[exp:int32](var_119_47D)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(5), ldloc:uint64(var_120_488))
stloc:uint64[][](var_121_498, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_122_4A1, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_121_498)))
stloc:int32(var_123_4A9, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_124_4B3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(0)))
stloc:uint8(var_125_4BC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_126_4C6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(1)))
stloc:uint8(var_127_4CF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_128_4D9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(2)))
stloc:uint8(var_129_4E2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_130_4EC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(3)))
stloc:uint8(var_131_4F5, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_132_4FF, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(4)))
stloc:uint8(var_133_508, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_134_512, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(5)))
stloc:uint8(var_135_51B, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_136_525, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(6)))
stloc:uint8(var_137_52E, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_138_538, ldelem:uint64[](uint64[], ldloc:uint64[][](var_121_498), ldc.i4:int32(7)))
stloc:uint8(var_139_541, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_140_54C, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_138_538), ldloc:uint8[exp:int32](var_139_541)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(6), ldloc:uint64(var_140_54C))
stloc:uint64[][](var_141_55C, ldsfld:uint64[][](GOST3411_2012Digest::T))
stloc:int32(var_142_565, callgetter:int32(Array::get_Length, ldloc:uint64[][][exp:Array](var_141_55C)))
stloc:int32(var_143_56D, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](V)))
stloc:uint64[](var_144_577, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(0)))
stloc:uint8(var_145_580, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(7)))
stloc:uint64[](var_146_58A, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(1)))
stloc:uint8(var_147_593, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6)))
stloc:uint64[](var_148_59D, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(2)))
stloc:uint8(var_149_5A6, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5)))
stloc:uint64[](var_150_5B0, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(3)))
stloc:uint8(var_151_5B9, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4)))
stloc:uint64[](var_152_5C3, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(4)))
stloc:uint8(var_153_5CC, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3)))
stloc:uint64[](var_154_5D6, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(5)))
stloc:uint8(var_155_5DF, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2)))
stloc:uint64[](var_156_5E9, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(6)))
stloc:uint8(var_157_5F2, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1)))
stloc:uint64[](var_158_5FC, ldelem:uint64[](uint64[], ldloc:uint64[][](var_141_55C), ldc.i4:int32(7)))
stloc:uint8(var_159_605, ldelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0)))
stloc:uint64(var_160_610, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_158_5FC), ldloc:uint8[exp:int32](var_159_605)))
stelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(7), ldloc:uint64(var_160_610))
stloc:uint64(var_161_622, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(0)))
stloc:uint64(var_160_626, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_626))
stloc:uint64(var_160_633, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_633))
stloc:uint64(var_160_640, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_640))
stloc:uint64(var_160_64D, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_64D))
stloc:uint64(var_160_65A, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_65A))
stloc:uint64(var_160_667, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_667))
stloc:uint64(var_160_674, ldloc:uint64(var_161_622))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_160_674))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(0), ldloc:uint64[exp:uint8](var_161_622))
stloc:uint64(var_162_68F, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(1)))
stloc:uint64(var_160_693, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_693))
stloc:uint64(var_160_6A0, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6A0))
stloc:uint64(var_160_6AD, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6AD))
stloc:uint64(var_160_6BA, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6BA))
stloc:uint64(var_160_6C7, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6C7))
stloc:uint64(var_160_6D4, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6D4))
stloc:uint64(var_160_6E1, ldloc:uint64(var_162_68F))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_160_6E1))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(1), ldloc:uint64[exp:uint8](var_162_68F))
stloc:uint64(var_163_6FC, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(2)))
stloc:uint64(var_160_700, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_700))
stloc:uint64(var_160_70D, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_70D))
stloc:uint64(var_160_71A, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_71A))
stloc:uint64(var_160_727, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_727))
stloc:uint64(var_160_734, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_734))
stloc:uint64(var_160_741, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_741))
stloc:uint64(var_160_74E, ldloc:uint64(var_163_6FC))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_160_74E))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(2), ldloc:uint64[exp:uint8](var_163_6FC))
stloc:uint64(var_164_769, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(3)))
stloc:uint64(var_160_76D, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_76D))
stloc:uint64(var_160_77A, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_77A))
stloc:uint64(var_160_787, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_787))
stloc:uint64(var_160_794, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_794))
stloc:uint64(var_160_7A1, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_7A1))
stloc:uint64(var_160_7AE, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_7AE))
stloc:uint64(var_160_7BB, ldloc:uint64(var_164_769))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_160_7BB))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(3), ldloc:uint64[exp:uint8](var_164_769))
stloc:uint64(var_165_7D6, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(4)))
stloc:uint64(var_160_7DA, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_7DA))
stloc:uint64(var_160_7E7, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_7E7))
stloc:uint64(var_160_7F4, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_7F4))
stloc:uint64(var_160_801, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_801))
stloc:uint64(var_160_80E, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_80E))
stloc:uint64(var_160_81B, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_81B))
stloc:uint64(var_160_828, ldloc:uint64(var_165_7D6))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_160_828))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(4), ldloc:uint64[exp:uint8](var_165_7D6))
stloc:uint64(var_166_843, ldelem:uint64([mscorlib]System.UInt64, ldloc:uint64[](var_0_06), ldc.i4:int32(5)))
stloc:uint64(var_160_847, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_847))
stloc:uint64(var_160_854, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_854))
stloc:uint64(var_160_861, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_861))
stloc:uint64(var_160_86E, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_86E))
stloc:uint64(var_160_87B, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_87B))
stloc:uint64(var_160_888, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_888))
stloc:uint64(var_160_895, ldloc:uint64(var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(5), ldloc:uint64[exp:uint8](var_166_843))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
stelem:uint8([mscorlib]System.Byte, ldloc:uint8[](V), ldc.i4:int32(6), ldloc:uint64[exp:uint8](var_160_895))
}
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: 0x0600BA5E RID: 47710 RVA: 0x002A08F0 File Offset: 0x0029EAF0
[Token(Token = "0x600BA5E")]
[Address(RVA = "0x1B3C6C0", Offset = "0x1B3B4C0", VA = "0x181B3C6C0")]
private void xor512(byte[] A, byte[] B)
{
int num = 0;
num++;
}
// Token: 0x0600BA5F RID: 47711 RVA: 0x002A090C File Offset: 0x0029EB0C
[Token(Token = "0x600BA5F")]
[Address(RVA = "0x1B38DB0", Offset = "0x1B37BB0", VA = "0x181B38DB0")]
private void E(byte[] K, byte[] m)
{
byte[] ki = this.Ki;
int num = 0;
int num2 = 0;
int num3 = 0;
ulong num4;
Array.Copy(K, num3, ki, num2, (int)num4);
num++;
this.F(K);
byte[] ki2 = this.Ki;
byte[] array = GOST3411_2012Digest.C[num];
this.xor512(ki2, array);
byte[] ki3 = this.Ki;
this.F(ki3);
byte[] ki4 = this.Ki;
this.xor512(K, ki4);
this.F(K);
num++;
byte[] ki5 = this.Ki;
byte[] array2 = GOST3411_2012Digest.C[11];
num++;
byte[] ki6 = this.Ki;
this.F(ki6);
byte[] ki7 = this.Ki;
num++;
}
// Token: 0x0600BA60 RID: 47712 RVA: 0x002A09C4 File Offset: 0x0029EBC4
[Token(Token = "0x600BA60")]
[Address(RVA = "0x1B3C4B0", Offset = "0x1B3B2B0", VA = "0x181B3C4B0")]
private void g_N(byte[] h, byte[] N, byte[] m)
{
byte[] array = this.tmp;
int num = 0;
int num2 = 0;
int num3 = 0;
ulong num4;
Array.Copy(h, num3, array, num2, (int)num4);
num++;
this.F(h);
this.E(h, m);
byte[] array2 = this.tmp;
num++;
num++;
}
// Token: 0x0600BA61 RID: 47713 RVA: 0x002A0A14 File Offset: 0x0029EC14
[Token(Token = "0x600BA61")]
[Address(RVA = "0x1B3C400", Offset = "0x1B3B200", VA = "0x181B3C400")]
private void addMod512(byte[] A, int num)
{
byte b = A[7];
byte b2 = A[7];
b2 = (byte)((int)b2 + num);
A[7] = b2;
byte b3;
b2 += b3;
}
// Token: 0x0600BA62 RID: 47714 RVA: 0x002A0A48 File Offset: 0x0029EC48
[Token(Token = "0x600BA62")]
[Address(RVA = "0x1B3C380", Offset = "0x1B3B180", VA = "0x181B3C380")]
private void addMod512(byte[] A, byte[] B)
{
int num = 0;
byte b = (byte)((int)b + num);
byte b2;
b2 += b;
}
// Token: 0x0600BA63 RID: 47715 RVA: 0x002A0A68 File Offset: 0x0029EC68
[Token(Token = "0x600BA63")]
[Address(RVA = "0x1B3C640", Offset = "0x1B3B440", VA = "0x181B3C640")]
private void reverse(byte[] src, byte[] dst)
{
int length = src.Length;
int num = 0;
if (length > 0)
{
num++;
}
}
// Token: 0x0600BA64 RID: 47716 RVA: 0x002A0A8C File Offset: 0x0029EC8C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA64")]
[Address(RVA = "0x1B3B8D0", Offset = "0x1B3A6D0", VA = "0x181B3B8D0")]
static GOST3411_2012Digest()
{
byte[][] array = new byte[12][];
byte[] array2 = new byte[64];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.498B9317C14CF9004FE6CB88782D926B3E379350).FieldHandle);
if (array2 != 0)
{
}
array[0] = array2;
byte[] array3 = new byte[64];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.499A21DC530CE4D5D71E97C5D8DB1B3C60F0FC2E).FieldHandle);
if (array3 != 0)
{
}
array[1] = array3;
byte[] array4 = new byte[64];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.0BE6B8194AB353640CA66F0A661EA93A3132393A).FieldHandle);
if (array4 != 0)
{
}
array[2] = array4;
byte[] array5 = new byte[64];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.7E68A6B197A3AF443FDA77CD8B492D4C72B3CF03).FieldHandle);
if (array5 != 0)
{
}
array[3] = array5;
byte[] array6 = new byte[64];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.21305ABEF36592B9C636A4DDFFB419BBEB14AC71).FieldHandle);
if (array6 != 0)
{
}
array[4] = array6;
byte[] array7 = new byte[64];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.3BA78FFB102A191597BAC4A2418C57CDF377FEE6).FieldHandle);
if (array7 != 0)
{
}
array[5] = array7;
byte[] array8 = new byte[64];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.87BAD4D818823E27FF0CBB935FF88DD21DAD3CC4).FieldHandle);
if (array8 != 0)
{
}
array[6] = array8;
byte[] array9 = new byte[64];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.103752E99F3718E46F1AA9EED70682BF3A9B8A65).FieldHandle);
if (array9 != 0)
{
}
array[7] = array9;
byte[] array10 = new byte[64];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.A32D5F33452B98E86BE15ED849ED6DF543B5F243).FieldHandle);
if (array10 != 0)
{
}
array[8] = array10;
byte[] array11 = new byte[64];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.30A6392FC8DA4E1BBE29B5EEA977D84BE673CAF7).FieldHandle);
if (array11 != 0)
{
}
array[9] = array11;
byte[] array12 = new byte[64];
RuntimeHelpers.InitializeArray(array12, fieldof(<PrivateImplementationDetails>.4A080107805D8F7103F56DD3B0D8FD5D55735937).FieldHandle);
if (array12 != 0)
{
}
array[10] = array12;
byte[] array13 = new byte[64];
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.083EF765A34AC9DEC41761B4DCEA48EC009115E9).FieldHandle);
if (array13 != 0)
{
}
array[11] = array13;
GOST3411_2012Digest.C = array;
GOST3411_2012Digest.Zero = new byte[64];
ulong[][] array14 = new ulong[8][];
ulong[] array15 = new ulong[256];
RuntimeHelpers.InitializeArray(array15, fieldof(<PrivateImplementationDetails>.547AF924C0A210AD3D72D199002D3CDBC2DBD0CA).FieldHandle);
if (array15 != 0)
{
}
array14[0] = array15;
ulong[] array16 = new ulong[256];
RuntimeHelpers.InitializeArray(array16, fieldof(<PrivateImplementationDetails>.929747B3E91297D56A461EE1B9E054EA31C70EC1).FieldHandle);
if (array16 != 0)
{
}
array14[1] = array16;
ulong[] array17 = new ulong[256];
RuntimeHelpers.InitializeArray(array17, fieldof(<PrivateImplementationDetails>.D73609A97D6906CFFB02ADDA320A4809483C458D).FieldHandle);
if (array17 != 0)
{
}
array14[2] = array17;
ulong[] array18 = new ulong[256];
RuntimeHelpers.InitializeArray(array18, fieldof(<PrivateImplementationDetails>.7C57CFE9FF25243824AF38485BBF41F9E57ECF21).FieldHandle);
if (array18 != 0)
{
}
array14[3] = array18;
ulong[] array19 = new ulong[256];
RuntimeHelpers.InitializeArray(array19, fieldof(<PrivateImplementationDetails>.A19414BB17AF83ECF276AD49117E7F2EE344D567).FieldHandle);
if (array19 != 0)
{
}
array14[4] = array19;
ulong[] array20 = new ulong[256];
RuntimeHelpers.InitializeArray(array20, fieldof(<PrivateImplementationDetails>.7B18F6A671FF25FBD5F195673DAF4902FB2DA4C5).FieldHandle);
if (array20 != 0)
{
}
array14[5] = array20;
ulong[] array21 = new ulong[256];
RuntimeHelpers.InitializeArray(array21, fieldof(<PrivateImplementationDetails>.A43F35160EEC5F8DD047667DD94358EDCD29BA27).FieldHandle);
if (array21 != 0)
{
}
array14[6] = array21;
ulong[] array22 = new ulong[256];
RuntimeHelpers.InitializeArray(array22, fieldof(<PrivateImplementationDetails>.4E16474F9D4C9E164E5F3C5FF50D0FB922D244DD).FieldHandle);
if (array22 != 0)
{
}
array14[7] = array22;
GOST3411_2012Digest.T = array14;
}
// Token: 0x04007686 RID: 30342
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007686")]
private readonly byte[] IV;
// Token: 0x04007687 RID: 30343
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007687")]
private readonly byte[] N;
// Token: 0x04007688 RID: 30344
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007688")]
private readonly byte[] Sigma;
// Token: 0x04007689 RID: 30345
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007689")]
private readonly byte[] Ki;
// Token: 0x0400768A RID: 30346
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400768A")]
private readonly byte[] m;
// Token: 0x0400768B RID: 30347
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400768B")]
private readonly byte[] h;
// Token: 0x0400768C RID: 30348
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400768C")]
private readonly byte[] tmp;
// Token: 0x0400768D RID: 30349
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400768D")]
private readonly byte[] block;
// Token: 0x0400768E RID: 30350
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400768E")]
private int bOff;
// Token: 0x0400768F RID: 30351
[Token(Token = "0x400768F")]
private static readonly byte[][] C;
// Token: 0x04007690 RID: 30352
[Token(Token = "0x4007690")]
private static readonly byte[] Zero;
// Token: 0x04007691 RID: 30353
[Token(Token = "0x4007691")]
private static readonly ulong[][] T;
}
}
@@ -0,0 +1,100 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE5 RID: 7397
[Token(Token = "0x2001CE5")]
public class GOST3411_2012_256Digest : GOST3411_2012Digest
{
// Token: 0x17001D0D RID: 7437
// (get) Token: 0x0600BA65 RID: 47717 RVA: 0x002A0D9C File Offset: 0x0029EF9C
[Token(Token = "0x17001D0D")]
public override string AlgorithmName
{
[Token(Token = "0x600BA65")]
[Address(RVA = "0x1B3CA40", Offset = "0x1B3B840", VA = "0x181B3CA40", Slot = "13")]
get
{
return "GOST3411-2012-256";
}
}
// Token: 0x0600BA66 RID: 47718 RVA: 0x002A0DB0 File Offset: 0x0029EFB0
[Token(Token = "0x600BA66")]
[Address(RVA = "0x1B3C900", Offset = "0x1B3B700", VA = "0x181B3C900")]
public GOST3411_2012_256Digest()
{
}
// Token: 0x0600BA67 RID: 47719 RVA: 0x002A0DC0 File Offset: 0x0029EFC0
[Token(Token = "0x600BA67")]
[Address(RVA = "0x1B3C990", Offset = "0x1B3B790", VA = "0x181B3C990")]
public GOST3411_2012_256Digest(GOST3411_2012_256Digest other)
{
base.Reset(other);
}
// Token: 0x0600BA68 RID: 47720 RVA: 0x002A0DD4 File Offset: 0x0029EFD4
[Token(Token = "0x600BA68")]
[Address(RVA = "0x55EA70", Offset = "0x55D870", VA = "0x18055EA70", Slot = "16")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x0600BA69 RID: 47721 RVA: 0x002A0DE4 File Offset: 0x0029EFE4
[Token(Token = "0x600BA69")]
[Address(RVA = "0x1B3C800", Offset = "0x1B3B600", VA = "0x181B3C800", Slot = "15")]
public override int DoFinal(byte[] output, int outOff)
{
byte[] array = new byte[64];
int num = 0;
int num2 = base.DoFinal(array, num);
ulong num3;
Array.Copy(array, 32, output, outOff, (int)num3);
return 32;
}
// Token: 0x0600BA6A RID: 47722 RVA: 0x002A0E14 File Offset: 0x0029F014
[Token(Token = "0x600BA6A")]
[Address(RVA = "0x1B3C720", Offset = "0x1B3B520", VA = "0x181B3C720", Slot = "14")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BA6A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.GOST3411_2012_256Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(GOST3411_2012Digest::Reset, ldloc:GOST3411_2012_256Digest[exp:GOST3411_2012Digest](var_0), ldloc:GOST3411_2012_256Digest[exp:IMemoable](this))
}
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: 0x0600BA6B RID: 47723 RVA: 0x002A0E28 File Offset: 0x0029F028
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA6B")]
[Address(RVA = "0x1B3C8A0", Offset = "0x1B3B6A0", VA = "0x181B3C8A0")]
static GOST3411_2012_256Digest()
{
RuntimeHelpers.InitializeArray(new byte[64], fieldof(<PrivateImplementationDetails>.320B018758ECE3752FFEDBAEB1A6DB67C80B9359).FieldHandle);
}
// Token: 0x04007692 RID: 30354
[Token(Token = "0x4007692")]
private static readonly byte[] IV;
}
}
@@ -0,0 +1,86 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE6 RID: 7398
[Token(Token = "0x2001CE6")]
public class GOST3411_2012_512Digest : GOST3411_2012Digest
{
// Token: 0x17001D0E RID: 7438
// (get) Token: 0x0600BA6C RID: 47724 RVA: 0x002A0E48 File Offset: 0x0029F048
[Token(Token = "0x17001D0E")]
public override string AlgorithmName
{
[Token(Token = "0x600BA6C")]
[Address(RVA = "0x1B3CCE0", Offset = "0x1B3BAE0", VA = "0x181B3CCE0", Slot = "13")]
get
{
return "GOST3411-2012-512";
}
}
// Token: 0x0600BA6D RID: 47725 RVA: 0x002A0E5C File Offset: 0x0029F05C
[Token(Token = "0x600BA6D")]
[Address(RVA = "0x1B3CBA0", Offset = "0x1B3B9A0", VA = "0x181B3CBA0")]
public GOST3411_2012_512Digest()
{
}
// Token: 0x0600BA6E RID: 47726 RVA: 0x002A0E6C File Offset: 0x0029F06C
[Token(Token = "0x600BA6E")]
[Address(RVA = "0x1B3CC30", Offset = "0x1B3BA30", VA = "0x181B3CC30")]
public GOST3411_2012_512Digest(GOST3411_2012_512Digest other)
{
base.Reset(other);
}
// Token: 0x0600BA6F RID: 47727 RVA: 0x002A0E80 File Offset: 0x0029F080
[Token(Token = "0x600BA6F")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "16")]
public override int GetDigestSize()
{
return 64;
}
// Token: 0x0600BA70 RID: 47728 RVA: 0x002A0E90 File Offset: 0x0029F090
[Token(Token = "0x600BA70")]
[Address(RVA = "0x1B3CA70", Offset = "0x1B3B870", VA = "0x181B3CA70", Slot = "14")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BA70)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.GOST3411_2012_512Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
call:void(GOST3411_2012Digest::Reset, ldloc:GOST3411_2012_512Digest[exp:GOST3411_2012Digest](var_0), ldloc:GOST3411_2012_512Digest[exp:IMemoable](this))
}
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: 0x0600BA71 RID: 47729 RVA: 0x002A0EA4 File Offset: 0x0029F0A4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA71")]
[Address(RVA = "0x1B3CB50", Offset = "0x1B3B950", VA = "0x181B3CB50")]
static GOST3411_2012_512Digest()
{
byte[] array = new byte[64];
}
// Token: 0x04007693 RID: 30355
[Token(Token = "0x4007693")]
private static readonly byte[] IV;
}
}
@@ -0,0 +1,232 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE7 RID: 7399
[Token(Token = "0x2001CE7")]
public abstract class GeneralDigest : IDigest, IMemoable
{
// Token: 0x0600BA72 RID: 47730 RVA: 0x002A0EBC File Offset: 0x0029F0BC
[Token(Token = "0x600BA72")]
[Address(RVA = "0x1B3D150", Offset = "0x1B3BF50", VA = "0x181B3D150")]
internal GeneralDigest()
{
byte[] array = new byte[4];
this.xBuf = array;
}
// Token: 0x0600BA73 RID: 47731 RVA: 0x002A0EE0 File Offset: 0x0029F0E0
[Token(Token = "0x600BA73")]
[Address(RVA = "0x1B3D1A0", Offset = "0x1B3BFA0", VA = "0x181B3D1A0")]
internal GeneralDigest(GeneralDigest t)
{
byte[] array = new byte[t.xBuf.Length];
this.xBuf = array;
byte[] array2 = t.xBuf;
int length = array2.Length;
int num = 0;
int num2 = 0;
Array.Copy(array2, num2, array, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount;
this.byteCount = num4;
}
// Token: 0x0600BA74 RID: 47732 RVA: 0x002A0F50 File Offset: 0x0029F150
[Token(Token = "0x600BA74")]
[Address(RVA = "0x1B3CF00", Offset = "0x1B3BD00", VA = "0x181B3CF00")]
protected void CopyIn(GeneralDigest t)
{
byte[] array = t.xBuf;
int length = array.Length;
int num = 0;
byte[] array2 = this.xBuf;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount;
this.byteCount = num4;
}
// Token: 0x0600BA75 RID: 47733 RVA: 0x002A0FA8 File Offset: 0x0029F1A8
[Token(Token = "0x600BA75")]
[Address(RVA = "0x1B3D0D0", Offset = "0x1B3BED0", VA = "0x181B3D0D0", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
int length = this.xBuf.Length;
if (this.xBufOff == length)
{
this.Reset();
this.xBufOff = (int)((ulong)0L);
}
}
// Token: 0x0600BA76 RID: 47734 RVA: 0x002A0FF8 File Offset: 0x0029F1F8
[Token(Token = "0x600BA76")]
[Address(RVA = "0x1B3CD10", Offset = "0x1B3BB10", VA = "0x181B3CD10", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = Math.Max(0, length);
int num2 = this.xBufOff;
int num3 = 0;
if (num2 != 0 && num > 0)
{
byte[] array = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
num3++;
num3 += inOff;
int num5 = this.xBufOff;
if (num5 == 4)
{
this.Reset();
this.xBufOff = (int)((ulong)0L);
throw new NullReferenceException();
}
}
num -= num3;
num += num3;
if (num3 < num)
{
this.Reset();
num3 += 4;
}
if (num3 < num)
{
int num6 = this.xBufOff;
byte[] array2 = this.xBuf;
int num7 = num6 + 1;
this.xBufOff = num7;
num3++;
num3 += inOff;
}
}
// Token: 0x0600BA77 RID: 47735 RVA: 0x002A10A0 File Offset: 0x0029F2A0
[Token(Token = "0x600BA77")]
[Address(RVA = "0x1B3CF60", Offset = "0x1B3BD60", VA = "0x181B3CF60")]
public void Finish()
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
byte[] array2 = this.xBuf;
int num2 = this.xBufOff;
int num3 = 0;
if (num2 == array2.Length)
{
this.Reset();
this.xBufOff = num3;
}
if (num2 != 0)
{
byte[] array3 = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
byte[] array4 = this.xBuf;
if (this.xBufOff == array4.Length)
{
this.Reset();
this.xBufOff = num3;
}
while (num3 != 0)
{
}
}
this.ProcessBlock();
}
// Token: 0x0600BA78 RID: 47736 RVA: 0x002A1140 File Offset: 0x0029F340
[Token(Token = "0x600BA78")]
[Address(RVA = "0x1B3D0A0", Offset = "0x1B3BEA0", VA = "0x181B3D0A0", Slot = "13")]
public virtual void Reset()
{
int num = 0;
this.byteCount = (long)num;
this.xBufOff = num;
byte[] array = this.xBuf;
int length = array.Length;
int num2 = 0;
Array.Clear(array, num2, length);
}
// Token: 0x0600BA79 RID: 47737 RVA: 0x002A117C File Offset: 0x0029F37C
[Token(Token = "0x600BA79")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x0600BA7A RID: 47738
[Token(Token = "0x600BA7A")]
[Address(Slot = "14")]
internal abstract void ProcessWord(byte[] input, int inOff);
// Token: 0x0600BA7B RID: 47739
[Token(Token = "0x600BA7B")]
[Address(Slot = "15")]
internal abstract void ProcessLength(long bitLength);
// Token: 0x0600BA7C RID: 47740
[Token(Token = "0x600BA7C")]
[Address(Slot = "16")]
internal abstract void ProcessBlock();
// Token: 0x17001D0F RID: 7439
// (get) Token: 0x0600BA7D RID: 47741
[Token(Token = "0x17001D0F")]
public abstract string AlgorithmName
{
[Token(Token = "0x600BA7D")]
[Address(Slot = "17")]
get;
}
// Token: 0x0600BA7E RID: 47742
[Token(Token = "0x600BA7E")]
[Address(Slot = "18")]
public abstract int GetDigestSize();
// Token: 0x0600BA7F RID: 47743
[Token(Token = "0x600BA7F")]
[Address(Slot = "19")]
public abstract int DoFinal(byte[] output, int outOff);
// Token: 0x0600BA80 RID: 47744
[Token(Token = "0x600BA80")]
[Address(Slot = "20")]
public abstract IMemoable Copy();
// Token: 0x0600BA81 RID: 47745
[Token(Token = "0x600BA81")]
[Address(Slot = "21")]
public abstract void Reset(IMemoable t);
// Token: 0x04007694 RID: 30356
[Token(Token = "0x4007694")]
private const int BYTE_LENGTH = 64;
// Token: 0x04007695 RID: 30357
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007695")]
private byte[] xBuf;
// Token: 0x04007696 RID: 30358
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007696")]
private int xBufOff;
// Token: 0x04007697 RID: 30359
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007697")]
private long byteCount;
}
}
@@ -0,0 +1,788 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE3 RID: 7395
[Token(Token = "0x2001CE3")]
public class Gost3411Digest : IDigest, IMemoable
{
// Token: 0x0600BA3C RID: 47676 RVA: 0x0029EC54 File Offset: 0x0029CE54
[Token(Token = "0x600BA3C")]
[Address(RVA = "0x1B3DA60", Offset = "0x1B3C860", VA = "0x181B3DA60")]
private static byte[][] MakeC()
{
byte[][] array = new byte[4][];
int num = 0;
byte[] array2 = new byte[32];
if (array2 != 0)
{
}
num++;
array[0] = array2;
return array;
}
// Token: 0x0600BA3D RID: 47677 RVA: 0x0029EC8C File Offset: 0x0029CE8C
[Token(Token = "0x600BA3D")]
[Address(RVA = "0x1B3E2A0", Offset = "0x1B3D0A0", VA = "0x181B3E2A0")]
public Gost3411Digest()
{
byte[] array = new byte[32];
this.H = array;
byte[] array2 = new byte[32];
this.L = array2;
byte[] array3 = new byte[32];
this.M = array3;
byte[] array4 = new byte[32];
this.Sum = array4;
byte[][] array5 = Gost3411Digest.MakeC();
this.C = array5;
byte[] array6 = new byte[32];
this.xBuf = array6;
Gost28147Engine gost28147Engine = new Gost28147Engine();
this.cipher = gost28147Engine;
byte[] array7 = new byte[32];
this.K = array7;
byte[] array8 = new byte[8];
this.a = array8;
short[] array9 = new short[16];
this.wS = array9;
short[] array10 = new short[16];
this.w_S = array10;
byte[] array11 = new byte[32];
this.S = array11;
byte[] array12 = new byte[32];
this.U = array12;
byte[] array13 = new byte[32];
this.V = array13;
byte[] array14 = new byte[32];
this.W = array14;
base..ctor();
byte[] sbox = Gost28147Engine.GetSBox("D-A");
IBlockCipher blockCipher = this.cipher;
this.sBox = sbox;
int num;
ParametersWithSBox parametersWithSBox = new ParametersWithSBox(num, sbox);
num = 0;
this.Reset();
}
// Token: 0x0600BA3E RID: 47678 RVA: 0x0029EDCC File Offset: 0x0029CFCC
[Token(Token = "0x600BA3E")]
[Address(RVA = "0x1B3E6A0", Offset = "0x1B3D4A0", VA = "0x181B3E6A0")]
public Gost3411Digest(byte[] sBoxParam)
{
byte[] array = new byte[32];
this.H = array;
byte[] array2 = new byte[32];
this.L = array2;
byte[] array3 = new byte[32];
this.M = array3;
byte[] array4 = new byte[32];
this.Sum = array4;
byte[][] array5 = Gost3411Digest.MakeC();
this.C = array5;
byte[] array6 = new byte[32];
this.xBuf = array6;
Gost28147Engine gost28147Engine = new Gost28147Engine();
this.cipher = gost28147Engine;
byte[] array7 = new byte[32];
this.K = array7;
byte[] array8 = new byte[8];
this.a = array8;
short[] array9 = new short[16];
this.wS = array9;
short[] array10 = new short[16];
this.w_S = array10;
byte[] array11 = new byte[32];
this.S = array11;
byte[] array12 = new byte[32];
this.U = array12;
byte[] array13 = new byte[32];
this.V = array13;
byte[] array14 = new byte[32];
this.W = array14;
base..ctor();
byte[] array15 = Arrays.Clone(sBoxParam);
IBlockCipher blockCipher = this.cipher;
this.sBox = array15;
int num;
ParametersWithSBox parametersWithSBox = new ParametersWithSBox(num, array15);
num = 0;
this.Reset();
}
// Token: 0x0600BA3F RID: 47679 RVA: 0x0029EF08 File Offset: 0x0029D108
[Token(Token = "0x600BA3F")]
[Address(RVA = "0x1B3E4E0", Offset = "0x1B3D2E0", VA = "0x181B3E4E0")]
public Gost3411Digest(Gost3411Digest t)
{
byte[] array = new byte[32];
this.H = array;
byte[] array2 = new byte[32];
this.L = array2;
byte[] array3 = new byte[32];
this.M = array3;
byte[] array4 = new byte[32];
this.Sum = array4;
byte[][] array5 = Gost3411Digest.MakeC();
this.C = array5;
byte[] array6 = new byte[32];
this.xBuf = array6;
Gost28147Engine gost28147Engine = new Gost28147Engine();
this.cipher = gost28147Engine;
byte[] array7 = new byte[32];
this.K = array7;
byte[] array8 = new byte[8];
this.a = array8;
short[] array9 = new short[16];
this.wS = array9;
short[] array10 = new short[16];
this.w_S = array10;
byte[] array11 = new byte[32];
this.S = array11;
byte[] array12 = new byte[32];
this.U = array12;
byte[] array13 = new byte[32];
this.V = array13;
byte[] array14 = new byte[32];
this.W = array14;
base..ctor();
this.Reset(t);
}
// Token: 0x17001D0B RID: 7435
// (get) Token: 0x0600BA40 RID: 47680 RVA: 0x0029F018 File Offset: 0x0029D218
[Token(Token = "0x17001D0B")]
public string AlgorithmName
{
[Token(Token = "0x600BA40")]
[Address(RVA = "0x1B3EE50", Offset = "0x1B3DC50", VA = "0x181B3EE50", Slot = "4")]
get
{
return "Gost3411";
}
}
// Token: 0x0600BA41 RID: 47681 RVA: 0x0029F02C File Offset: 0x0029D22C
[Token(Token = "0x600BA41")]
[Address(RVA = "0x55EA70", Offset = "0x55D870", VA = "0x18055EA70", Slot = "5")]
public int GetDigestSize()
{
return 32;
}
// Token: 0x0600BA42 RID: 47682 RVA: 0x0029F03C File Offset: 0x0029D23C
[Token(Token = "0x600BA42")]
[Address(RVA = "0x1B3E1C0", Offset = "0x1B3CFC0", VA = "0x181B3E1C0", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
byte[] array2 = this.xBuf;
int length = array2.Length;
if (this.xBufOff == length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num2 = 0;
this.processBlock(array3, num2);
this.xBufOff = (int)((ulong)0L);
}
}
// Token: 0x0600BA43 RID: 47683 RVA: 0x0029F0A4 File Offset: 0x0029D2A4
[Token(Token = "0x600BA43")]
[Address(RVA = "0x1B3D330", Offset = "0x1B3C130", VA = "0x181B3D330", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = 0;
int num2 = this.xBufOff;
if (num2 != 0 && length > 0)
{
byte[] array = this.xBuf;
int num3 = num2 + 1;
this.xBufOff = num3;
byte[] array2 = this.xBuf;
int num4 = this.xBufOff;
if (num4 == array2.Length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num5 = 0;
this.processBlock(array3, num5);
this.xBufOff = num;
}
while (num4 != 0)
{
}
}
byte[] array4 = this.xBuf;
if (length > array4.Length)
{
int length2 = array4.Length;
int num6 = 0;
Array.Copy(input, inOff, array4, num6, length2);
byte[] array5 = this.xBuf;
int length3 = this.Sum.Length;
if (num != length3)
{
byte b;
num += (int)b;
byte b2;
num += (int)b2;
num++;
}
byte[] array6 = this.xBuf;
int num7 = 0;
this.processBlock(array6, num7);
int length4 = this.xBuf.Length;
}
if (length > 0)
{
int num8 = this.xBufOff;
byte[] array7 = this.xBuf;
int num9 = num8 + 1;
this.xBufOff = num9;
int length5 = this.xBuf.Length;
if (this.xBufOff == length5)
{
int length6 = this.Sum.Length;
if (num != length6)
{
byte b3;
num += (int)b3;
byte b4;
num += (int)b4;
num++;
}
byte[] array8 = this.xBuf;
int num10 = 0;
this.processBlock(array8, num10);
this.xBufOff = num;
}
}
}
// Token: 0x0600BA44 RID: 47684 RVA: 0x0029F210 File Offset: 0x0029D410
[Token(Token = "0x600BA44")]
[Address(RVA = "0x1B3DB20", Offset = "0x1B3C920", VA = "0x181B3DB20")]
private byte[] P(byte[] input)
{
int num = 0;
byte[] k = this.K;
byte[] k2 = this.K;
byte[] k3 = this.K;
num += 2;
byte[] k4 = this.K;
num++;
return this.K;
}
// Token: 0x0600BA45 RID: 47685 RVA: 0x0029F254 File Offset: 0x0029D454
[Token(Token = "0x600BA45")]
[Address(RVA = "0x1B3D240", Offset = "0x1B3C040", VA = "0x181B3D240")]
private byte[] A(byte[] input)
{
int num = 0;
int length = input.Length;
byte[] array = this.a;
byte b = input[num];
num++;
int num2 = 0;
ulong num3;
Array.Copy(input, 8, input, num2, (int)num3);
byte[] array2 = this.a;
int num4 = 0;
ulong num5;
Array.Copy(array2, num4, input, 24, (int)num5);
return input;
}
// Token: 0x0600BA46 RID: 47686 RVA: 0x0029F2AC File Offset: 0x0029D4AC
[Token(Token = "0x600BA46")]
[Address(RVA = "0x1B3D980", Offset = "0x1B3C780", VA = "0x181B3D980")]
private void E(byte[] key, byte[] s, int sOff, byte[] input, int inOff)
{
IBlockCipher blockCipher = this.cipher;
KeyParameter keyParameter = new KeyParameter(key);
IBlockCipher blockCipher2 = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600BA47 RID: 47687 RVA: 0x0029F2D4 File Offset: 0x0029D4D4
[Token(Token = "0x600BA47")]
[Address(RVA = "0x1B3EB30", Offset = "0x1B3D930", VA = "0x181B3EB30")]
private void fw(byte[] input)
{
short[] array = this.wS;
int num = 0;
int num2 = input.Length;
num2 -= input;
if (num < num2)
{
num++;
num += 2;
byte b;
array[0] = (short)b;
}
short[] array2 = this.wS;
short[] array3 = this.w_S;
int length = array2.Length;
short num3 = array2[3];
int num4 = 0;
array3[3] = num3;
short[] array4 = this.w_S;
ulong num5;
Array.Copy(this.wS, 1, array4, num4, (int)num5);
short[] array5 = this.w_S;
int num6 = input.Length;
num6--;
if (num < num6)
{
short num7 = array5[num];
num++;
num += 2;
}
}
// Token: 0x0600BA48 RID: 47688 RVA: 0x0029F388 File Offset: 0x0029D588
[Token(Token = "0x600BA48")]
[Address(RVA = "0x1B3EE80", Offset = "0x1B3DC80", VA = "0x181B3EE80")]
private void processBlock(byte[] input, int inOff)
{
byte[] m = this.M;
int num = 0;
int num2 = 0;
ulong num3;
Array.Copy(input, inOff, m, num2, (int)num3);
byte[] h = this.H;
byte[] u = this.U;
byte[] m2 = this.M;
byte[] v = this.V;
byte[] u2 = this.U;
byte[] v2 = this.V;
byte[] w = this.W;
num++;
byte[] w2 = this.W;
byte[] array = this.P(w2);
byte[] h2 = this.H;
int num4 = 0;
byte[] s = this.S;
this.E(array, s, num4, h2, num);
byte[] u3 = this.U;
byte[] array2 = this.A(u3);
uint num5;
byte[] array3 = this.C[(int)num5];
byte[] u4 = this.U;
num++;
byte[] v3 = this.V;
byte[] array4 = this.A(v3);
byte[] array5 = this.A(array4);
this.V = array5;
byte[] u5 = this.U;
byte[] v4 = this.V;
byte[] w3 = this.W;
num++;
byte[] w4 = this.W;
byte[] array6 = this.P(w4);
byte[] h3 = this.H;
byte[] s2 = this.S;
this.E(array6, s2, num, h3, num);
num5 += (uint)1;
byte[] s3 = this.S;
this.fw(s3);
byte[] s4 = this.S;
byte[] m3 = this.M;
num++;
byte[] s5 = this.S;
this.fw(s5);
byte[] h4 = this.H;
byte[] s6 = this.S;
num++;
byte[] s7 = this.S;
this.fw(s7);
while (num != 32)
{
}
byte[] h5 = this.H;
int length = h5.Length;
int num6 = 0;
byte[] s8 = this.S;
int num7 = 0;
Array.Copy(s8, num7, h5, num6, length);
}
// Token: 0x0600BA49 RID: 47689 RVA: 0x0029F558 File Offset: 0x0029D758
[Token(Token = "0x600BA49")]
[Address(RVA = "0x1B3EA60", Offset = "0x1B3D860", VA = "0x181B3EA60")]
private void finish()
{
ulong num = this.byteCount;
byte[] l = this.L;
Pack.UInt64_To_LE(num, l);
int num2 = this.xBufOff;
if (num2 != 0)
{
int num3 = 0;
byte[] array = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
byte[] array2 = this.xBuf;
int num5 = this.xBufOff;
if (num5 == array2.Length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num6 = 0;
this.processBlock(array3, num6);
this.xBufOff = num3;
}
while (num5 != 0)
{
}
}
byte[] l2 = this.L;
int num7 = 0;
this.processBlock(l2, num7);
byte[] sum = this.Sum;
int num8 = 0;
this.processBlock(sum, num8);
}
// Token: 0x0600BA4A RID: 47690 RVA: 0x0029F614 File Offset: 0x0029D814
[Token(Token = "0x600BA4A")]
[Address(RVA = "0x1B3D860", Offset = "0x1B3C660", VA = "0x181B3D860", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
ulong num = this.byteCount;
byte[] l = this.L;
Pack.UInt64_To_LE(num, l);
int num2 = this.xBufOff;
if (num2 != 0)
{
int num3 = 0;
byte[] array = this.xBuf;
int num4 = num2 + 1;
this.xBufOff = num4;
byte[] array2 = this.xBuf;
int num5 = this.xBufOff;
if (num5 == array2.Length)
{
this.sumByteArray(array2);
byte[] array3 = this.xBuf;
int num6 = 0;
this.processBlock(array3, num6);
this.xBufOff = num3;
}
while (num5 != 0)
{
}
}
byte[] l2 = this.L;
int num7 = 0;
this.processBlock(l2, num7);
byte[] sum = this.Sum;
int num8 = 0;
this.processBlock(sum, num8);
byte[] h = this.H;
this.Reset();
return 32;
}
// Token: 0x0600BA4B RID: 47691 RVA: 0x0029F6E0 File Offset: 0x0029D8E0
[Token(Token = "0x600BA4B")]
[Address(RVA = "0x1B3DCA0", Offset = "0x1B3CAA0", VA = "0x181B3DCA0", Slot = "10")]
public void Reset()
{
byte[] h = this.H;
int num = 0;
this.byteCount = (ulong)num;
this.xBufOff = num;
int length = h.Length;
int num2 = 0;
Array.Clear(h, num2, length);
byte[] l = this.L;
int length2 = l.Length;
int num3 = 0;
Array.Clear(l, num3, length2);
byte[] m = this.M;
int length3 = m.Length;
int num4 = 0;
Array.Clear(m, num4, length3);
byte[] array = this.C[1];
int length4 = array.Length;
int num5 = 0;
Array.Clear(array, num5, length4);
byte[] array2 = this.C[3];
int length5 = array2.Length;
int num6 = 0;
Array.Clear(array2, num6, length5);
byte[] sum = this.Sum;
int length6 = sum.Length;
int num7 = 0;
Array.Clear(sum, num7, length6);
byte[] array3 = this.xBuf;
int length7 = array3.Length;
int num8 = 0;
Array.Clear(array3, num8, length7);
byte[][] c = this.C;
byte[] c2 = Gost3411Digest.C2;
byte[] array4 = c[2];
}
// Token: 0x0600BA4C RID: 47692 RVA: 0x0029F800 File Offset: 0x0029DA00
[Token(Token = "0x600BA4C")]
[Address(RVA = "0x1B3F340", Offset = "0x1B3E140", VA = "0x181B3F340")]
private void sumByteArray(byte[] input)
{
int num = 0;
byte[] sum = this.Sum;
if (num != sum.Length)
{
num++;
byte b;
num += (int)b;
byte b2;
num += (int)b2;
byte[] sum2 = this.Sum;
}
}
// Token: 0x0600BA4D RID: 47693 RVA: 0x0029F83C File Offset: 0x0029DA3C
[Token(Token = "0x600BA4D")]
[Address(RVA = "0x1B3E8E0", Offset = "0x1B3D6E0", VA = "0x181B3E8E0")]
private static void cpyBytesToShort(byte[] S, short[] wS)
{
int num = 0;
int num2 = S.Length;
num2 -= wS;
if (num < num2)
{
num++;
num += 2;
byte b;
wS[0] = (short)b;
}
}
// Token: 0x0600BA4E RID: 47694 RVA: 0x0029F870 File Offset: 0x0029DA70
[Token(Token = "0x600BA4E")]
[Address(RVA = "0x1B3E990", Offset = "0x1B3D790", VA = "0x181B3E990")]
private static void cpyShortToBytes(short[] wS, byte[] S)
{
int num = 0;
int num2 = S.Length;
num2 -= S;
if (num < num2)
{
short num3 = wS[num];
num++;
num += 2;
}
}
// Token: 0x0600BA4F RID: 47695 RVA: 0x0029F8A4 File Offset: 0x0029DAA4
[Token(Token = "0x600BA4F")]
[Address(RVA = "0x55EA70", Offset = "0x55D870", VA = "0x18055EA70", Slot = "6")]
public int GetByteLength()
{
return 32;
}
// Token: 0x0600BA50 RID: 47696 RVA: 0x0029F8B4 File Offset: 0x0029DAB4
[Token(Token = "0x600BA50")]
[Address(RVA = "0x1B3D670", Offset = "0x1B3C470", VA = "0x181B3D670", Slot = "11")]
public IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BA50)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Gost3411Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint8[](var_1_07, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::H, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_1_07))
stloc:uint8[](var_2_16, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::L, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_2_16))
stloc:uint8[](var_3_25, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::M, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_3_25))
stloc:uint8[](var_4_34, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::Sum, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_4_34))
stloc:uint8[][](var_6_46, call:uint8[][](Gost3411Digest::MakeC))
stfld:uint8[][](Gost3411Digest::C, ldloc:Gost3411Digest(var_0), ldloc:uint8[][](var_6_46))
stloc:uint8[](var_7_57, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::xBuf, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_7_57))
stloc:Gost28147Engine(var_8_66, newobj:Gost28147Engine(Gost28147Engine::.ctor))
stfld:IBlockCipher(Gost3411Digest::cipher, ldloc:Gost3411Digest(var_0), ldloc:Gost28147Engine[exp:IBlockCipher](var_8_66))
stloc:uint8[](var_9_77, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::K, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_9_77))
stloc:uint8[](var_10_87, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(8)))
stfld:uint8[](Gost3411Digest::a, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_10_87))
stloc:int16[](var_11_98, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(16)))
stfld:int16[](Gost3411Digest::wS, ldloc:Gost3411Digest(var_0), ldloc:int16[](var_11_98))
stloc:int16[](var_12_A9, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(16)))
stfld:int16[](Gost3411Digest::w_S, ldloc:Gost3411Digest(var_0), ldloc:int16[](var_12_A9))
stloc:uint8[](var_13_BA, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::S, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_13_BA))
stloc:uint8[](var_14_CB, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::U, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_14_CB))
stloc:uint8[](var_15_DC, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::V, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_15_DC))
stloc:uint8[](var_16_ED, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(32)))
stfld:uint8[](Gost3411Digest::W, ldloc:Gost3411Digest(var_0), ldloc:uint8[](var_16_ED))
call:void(Gost3411Digest::Reset, ldloc:Gost3411Digest(var_0), ldloc:Gost3411Digest[exp:IMemoable](this))
}
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: 0x0600BA51 RID: 47697 RVA: 0x0029F9C0 File Offset: 0x0029DBC0
[Token(Token = "0x600BA51")]
[Address(RVA = "0x1B3DE60", Offset = "0x1B3CC60", VA = "0x181B3DE60", Slot = "12")]
public void Reset(IMemoable other)
{
while (other == 0)
{
}
IBlockCipher blockCipher = this.cipher;
this.sBox = other;
this.Reset();
byte[] l = this.L;
byte[] l2 = this.L;
byte[] l3 = this.L;
byte[] l4 = this.L;
byte[][] c = this.C;
byte b = l4[1];
byte[][] c2 = this.C;
byte[][] c3 = this.C;
this.xBufOff = c3;
this.byteCount = c3;
}
// Token: 0x0600BA52 RID: 47698 RVA: 0x0029FA44 File Offset: 0x0029DC44
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA52")]
[Address(RVA = "0x1B3E240", Offset = "0x1B3D040", VA = "0x181B3E240")]
static Gost3411Digest()
{
byte[] array = new byte[32];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.CC5B8B6FA17DA57B26C3ACA4DA8B2A477C609D63).FieldHandle);
Gost3411Digest.C2 = array;
}
// Token: 0x04007672 RID: 30322
[Token(Token = "0x4007672")]
private const int DIGEST_LENGTH = 32;
// Token: 0x04007673 RID: 30323
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007673")]
private byte[] H;
// Token: 0x04007674 RID: 30324
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007674")]
private byte[] L;
// Token: 0x04007675 RID: 30325
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007675")]
private byte[] M;
// Token: 0x04007676 RID: 30326
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007676")]
private byte[] Sum;
// Token: 0x04007677 RID: 30327
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007677")]
private byte[][] C;
// Token: 0x04007678 RID: 30328
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007678")]
private byte[] xBuf;
// Token: 0x04007679 RID: 30329
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007679")]
private int xBufOff;
// Token: 0x0400767A RID: 30330
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400767A")]
private ulong byteCount;
// Token: 0x0400767B RID: 30331
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400767B")]
private readonly IBlockCipher cipher;
// Token: 0x0400767C RID: 30332
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400767C")]
private byte[] sBox;
// Token: 0x0400767D RID: 30333
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x400767D")]
private byte[] K;
// Token: 0x0400767E RID: 30334
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x400767E")]
private byte[] a;
// Token: 0x0400767F RID: 30335
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400767F")]
internal short[] wS;
// Token: 0x04007680 RID: 30336
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4007680")]
internal short[] w_S;
// Token: 0x04007681 RID: 30337
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4007681")]
internal byte[] S;
// Token: 0x04007682 RID: 30338
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4007682")]
internal byte[] U;
// Token: 0x04007683 RID: 30339
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4007683")]
internal byte[] V;
// Token: 0x04007684 RID: 30340
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4007684")]
internal byte[] W;
// Token: 0x04007685 RID: 30341
[Token(Token = "0x4007685")]
private static readonly byte[] C2;
}
}
@@ -0,0 +1,577 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE8 RID: 7400
[Token(Token = "0x2001CE8")]
public class KeccakDigest : IDigest, IMemoable
{
// Token: 0x0600BA82 RID: 47746 RVA: 0x002A118C File Offset: 0x0029F38C
[Token(Token = "0x600BA82")]
[Address(RVA = "0x1B411B0", Offset = "0x1B3FFB0", VA = "0x181B411B0")]
public KeccakDigest()
{
ulong[] array = new ulong[25];
this.state = array;
byte[] array2 = new byte[192];
this.dataQueue = array2;
base..ctor();
this.Init(288);
}
// Token: 0x0600BA83 RID: 47747 RVA: 0x002A11CC File Offset: 0x0029F3CC
[Token(Token = "0x600BA83")]
[Address(RVA = "0x1B41130", Offset = "0x1B3FF30", VA = "0x181B41130")]
public KeccakDigest(int bitLength)
{
ulong[] array = new ulong[25];
this.state = array;
byte[] array2 = new byte[192];
this.dataQueue = array2;
base..ctor();
this.Init(bitLength);
}
// Token: 0x0600BA84 RID: 47748 RVA: 0x002A1208 File Offset: 0x0029F408
[Token(Token = "0x600BA84")]
[Address(RVA = "0x1B410B0", Offset = "0x1B3FEB0", VA = "0x181B410B0")]
public KeccakDigest(KeccakDigest source)
{
ulong[] array = new ulong[25];
this.state = array;
byte[] array2 = new byte[192];
this.dataQueue = array2;
base..ctor();
this.CopyIn(source);
}
// Token: 0x0600BA85 RID: 47749 RVA: 0x002A1244 File Offset: 0x0029F444
[Token(Token = "0x600BA85")]
[Address(RVA = "0x1B3F6E0", Offset = "0x1B3E4E0", VA = "0x181B3F6E0")]
private void CopyIn(KeccakDigest source)
{
ulong[] array = source.state;
int length = array.Length;
int num = 0;
ulong[] array2 = this.state;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
byte[] array3 = source.dataQueue;
int length2 = array3.Length;
int num3 = 0;
byte[] array4 = this.dataQueue;
int num4 = 0;
Array.Copy(array3, num4, array4, num3, length2);
int num5 = source.rate;
this.rate = num5;
int num6 = source.bitsInQueue;
this.bitsInQueue = num6;
int num7 = source.fixedOutputLength;
this.fixedOutputLength = num7;
bool flag = source.squeezing;
this.squeezing = flag;
}
// Token: 0x17001D10 RID: 7440
// (get) Token: 0x0600BA86 RID: 47750 RVA: 0x002A12EC File Offset: 0x0029F4EC
[Token(Token = "0x17001D10")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BA86")]
[Address(RVA = "0x1B41220", Offset = "0x1B40020", VA = "0x181B41220", Slot = "13")]
get
{
int num = this.fixedOutputLength;
return "Keccak-" + num;
}
}
// Token: 0x0600BA87 RID: 47751 RVA: 0x002A130C File Offset: 0x0029F50C
[Token(Token = "0x600BA87")]
[Address(RVA = "0x1B3FA40", Offset = "0x1B3E840", VA = "0x181B3FA40", Slot = "14")]
public virtual int GetDigestSize()
{
return this.fixedOutputLength;
}
// Token: 0x0600BA88 RID: 47752 RVA: 0x002A1320 File Offset: 0x0029F520
[Token(Token = "0x600BA88")]
[Address(RVA = "0x1B40FC0", Offset = "0x1B3FDC0", VA = "0x181B40FC0", Slot = "15")]
public virtual void Update(byte input)
{
byte[] array = new byte[] { input };
int num = 0;
this.Absorb(array, num, 1);
}
// Token: 0x0600BA89 RID: 47753 RVA: 0x002A1350 File Offset: 0x0029F550
[Token(Token = "0x600BA89")]
[Address(RVA = "0x1B3F6D0", Offset = "0x1B3E4D0", VA = "0x181B3F6D0", Slot = "16")]
public virtual void BlockUpdate(byte[] input, int inOff, int len)
{
this.Absorb(input, inOff, len);
}
// Token: 0x0600BA8A RID: 47754 RVA: 0x002A1368 File Offset: 0x0029F568
[Token(Token = "0x600BA8A")]
[Address(RVA = "0x1B3F9E0", Offset = "0x1B3E7E0", VA = "0x181B3F9E0", Slot = "17")]
public virtual int DoFinal(byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600BA8A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::DoFinal(System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, ldfld:int32(KeccakDigest::fixedOutputLength, ldloc:KeccakDigest(this)))
call:void(KeccakDigest::Squeeze, ldloc:KeccakDigest(this), ldloc:uint8[](output), ldloc:int32(outOff), ldloc:int32[exp:int64](var_0_06))
stloc:IMemoable(var_3_16, call:IMemoable(IMemoable::Copy, ldloc:KeccakDigest[exp:IMemoable](this)))
}
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: 0x0600BA8B RID: 47755 RVA: 0x002A138C File Offset: 0x0029F58C
[Token(Token = "0x600BA8B")]
[Address(RVA = "0x1B3F820", Offset = "0x1B3E620", VA = "0x181B3F820", Slot = "18")]
protected virtual int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits)
{
/*
An exception occurred when decompiling this method (0600BA8B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::DoFinal(System.Byte[],System.Int32,System.Byte,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_42:
stloc:InvalidOperationException(var_7_4C, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to absorb while squeezing")))
}
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: 0x0600BA8C RID: 47756 RVA: 0x002A13E8 File Offset: 0x0029F5E8
[Token(Token = "0x600BA8C")]
[Address(RVA = "0x1B40E40", Offset = "0x1B3FC40", VA = "0x181B40E40", Slot = "19")]
public virtual void Reset()
{
int num = this.fixedOutputLength;
this.Init(num);
}
// Token: 0x0600BA8D RID: 47757 RVA: 0x002A1404 File Offset: 0x0029F604
[Token(Token = "0x600BA8D")]
[Address(RVA = "0x1B3FA30", Offset = "0x1B3E830", VA = "0x181B3FA30", Slot = "20")]
public virtual int GetByteLength()
{
return this.rate;
}
// Token: 0x0600BA8E RID: 47758 RVA: 0x002A1418 File Offset: 0x0029F618
[Token(Token = "0x600BA8E")]
[Address(RVA = "0x1B3FB40", Offset = "0x1B3E940", VA = "0x181B3FB40")]
private void Init(int bitLength)
{
/*
An exception occurred when decompiling this method (0600BA8E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::Init(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_9C:
stloc:ArgumentException(var_7_AB, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("must be one of 128, 224, 256, 288, 384, or 512."), ldstr:string("bitLength")))
}
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: 0x0600BA8F RID: 47759 RVA: 0x002A14D4 File Offset: 0x0029F6D4
[Token(Token = "0x600BA8F")]
[Address(RVA = "0x1B3FA50", Offset = "0x1B3E850", VA = "0x181B3FA50")]
private void InitSponge(int rate)
{
/*
An exception occurred when decompiling this method (0600BA8F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::InitSponge(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5F:
stloc:InvalidOperationException(var_6_69, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("invalid rate value")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BA90 RID: 47760 RVA: 0x002A154C File Offset: 0x0029F74C
[Token(Token = "0x600BA90")]
[Address(RVA = "0x1B3F530", Offset = "0x1B3E330", VA = "0x181B3F530")]
protected void Absorb(byte[] data, int off, int len)
{
/*
An exception occurred when decompiling this method (0600BA90)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::Absorb(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_82:
stloc:InvalidOperationException(var_9_8C, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to absorb while squeezing")))
}
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: 0x0600BA91 RID: 47761 RVA: 0x002A15E8 File Offset: 0x0029F7E8
[Token(Token = "0x600BA91")]
[Address(RVA = "0x1B3F3E0", Offset = "0x1B3E1E0", VA = "0x181B3F3E0")]
protected void AbsorbBits(int data, int bits)
{
/*
An exception occurred when decompiling this method (0600BA91)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::AbsorbBits(System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_37:
stloc:InvalidOperationException(var_5_41, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to absorb while squeezing")))
}
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: 0x0600BA92 RID: 47762 RVA: 0x002A1638 File Offset: 0x0029F838
[Token(Token = "0x600BA92")]
[Address(RVA = "0x1B40BB0", Offset = "0x1B3F9B0", VA = "0x181B40BB0")]
private void PadAndSwitchToSqueezingPhase()
{
byte[] array = this.dataQueue;
int num = this.bitsInQueue;
array += num;
int num2 = 0;
array[0] = (byte)num;
int num3 = this.bitsInQueue;
num3++;
this.bitsInQueue = num3;
if (num3 == this.rate)
{
byte[] array2 = this.dataQueue;
int num4 = 0;
this.KeccakAbsorb(array2, num4);
this.bitsInQueue = num2;
}
ulong[] array3;
int num6;
if (num3 > 0)
{
array3 = this.state;
ulong num5 = Pack.LE_To_UInt64(this.dataQueue, num2);
num2 += 8;
num2++;
array3[0] = num5;
num6 = 0;
}
if (num3 != 0)
{
ulong[] array4 = this.state;
ulong num7 = Pack.LE_To_UInt64(this.dataQueue, num2);
array3[0] = num7;
}
ulong[] array5 = this.state;
int num8 = this.rate;
this.KeccakPermutation();
int num9 = this.rate;
int num10 = 0;
byte[] array6 = this.dataQueue;
Pack.UInt64_To_LE(this.state, num10, num9, array6, num6);
int num11 = this.rate;
this.bitsInQueue = num11;
this.squeezing = true;
}
// Token: 0x0600BA93 RID: 47763 RVA: 0x002A1744 File Offset: 0x0029F944
[Token(Token = "0x600BA93")]
[Address(RVA = "0x1B40E50", Offset = "0x1B3FC50", VA = "0x181B40E50")]
protected void Squeeze(byte[] output, int offset, long outputLength)
{
if (!this.squeezing)
{
this.PadAndSwitchToSqueezingPhase();
}
int num = 0;
int num4;
if (this.bitsInQueue == 0)
{
this.KeccakPermutation();
int num2 = this.rate;
int num3 = 0;
byte[] array = this.dataQueue;
Pack.UInt64_To_LE(this.state, num3, num2, array, num);
num4 = this.rate;
this.bitsInQueue = num4;
}
long num5 = Math.Min((long)num4, outputLength);
int num6 = this.rate;
byte[] array2 = this.dataQueue;
num += offset;
Array.Copy(array2, num6, output, num, (int)num5);
num = (int)((long)num + num5);
}
// Token: 0x0600BA94 RID: 47764 RVA: 0x002A17DC File Offset: 0x0029F9DC
[Token(Token = "0x600BA94")]
[Address(RVA = "0x1B3FCE0", Offset = "0x1B3EAE0", VA = "0x181B3FCE0")]
private void KeccakAbsorb(byte[] data, int off)
{
int num = this.rate;
int num2 = 0;
if (num > 0)
{
ulong[] array = this.state;
ulong num3 = Pack.LE_To_UInt64(data, off);
num2++;
}
this.KeccakPermutation();
}
// Token: 0x0600BA95 RID: 47765 RVA: 0x002A1818 File Offset: 0x0029FA18
[Token(Token = "0x600BA95")]
[Address(RVA = "0x1B3FD90", Offset = "0x1B3EB90", VA = "0x181B3FD90")]
private void KeccakExtract()
{
int num = this.rate;
int num2 = 0;
byte[] array = this.dataQueue;
int num3 = 0;
Pack.UInt64_To_LE(this.state, num3, num, array, num2);
}
// Token: 0x0600BA96 RID: 47766 RVA: 0x002A1848 File Offset: 0x0029FA48
[Token(Token = "0x600BA96")]
[Address(RVA = "0x1B3FDC0", Offset = "0x1B3EBC0", VA = "0x181B3FDC0")]
private void KeccakPermutation()
{
ulong[] array = this.state;
int length = array.Length;
ulong num = array[0];
ulong num2 = array[1];
ulong num3 = array[2];
ulong num4 = array[3];
ulong num5 = array[4];
ulong num6 = array[5];
ulong num7 = array[6];
ulong num8 = array[7];
ulong num9 = array[8];
ulong num10 = array[9];
ulong num11 = array[10];
ulong num12 = array[11];
ulong num13 = array[12];
ulong num14 = array[13];
ulong num15 = array[14];
ulong num16 = array[15];
ulong num17 = array[16];
ulong num18 = array[17];
ulong num19 = array[18];
ulong num20 = array[19];
ulong num21 = array[20];
ulong num22 = array[21];
ulong num23 = array[22];
ulong num24 = array[23];
ulong num25 = array[24];
int num26 = 0;
num22 = num23;
num3 = num24;
num10 = num3;
num15 = num21;
num21 = num13;
num20 = num24;
num3 = num25;
num24 = num16;
num25 = num22;
num5 = num19;
num6 = num5;
num7 = num6;
num12 = num3;
num3 = num15;
num2 = num12;
num19 = num20;
num6 = num7;
num5 = num7;
num12 = num24;
num16 = num5;
ulong[] keccakRoundConstants = KeccakDigest.KeccakRoundConstants;
num26++;
array[0] = num;
array[1] = num7;
array[2] = num21;
array[3] = num5;
array[4] = num3;
array[5] = num6;
num7 = num6;
array[6] = num7;
array[7] = num12;
array[8] = num5;
array[9] = num7;
array[10] = num2;
array[11] = num12;
array[12] = num3;
array[13] = num3;
array[14] = num15;
array[15] = num16;
array[16] = num5;
array[17] = num19;
array[18] = num19;
num6 = num20;
array[19] = num6;
array[20] = num10;
array[21] = num5;
array[22] = num7;
array[23] = num24;
array[24] = num25;
}
// Token: 0x0600BA97 RID: 47767 RVA: 0x002A1B44 File Offset: 0x0029FD44
[Token(Token = "0x600BA97")]
[Address(RVA = "0x1B3F770", Offset = "0x1B3E570", VA = "0x181B3F770", Slot = "21")]
public virtual IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BA97)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.KeccakDigest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:KeccakDigest(var_0_05, newobj:KeccakDigest(KeccakDigest::.ctor))
stloc:uint64[](var_1_0D, newarr:uint64[]([mscorlib]System.UInt64, ldc.i4:int32(25)))
stfld:uint64[](KeccakDigest::state, ldloc:KeccakDigest(var_0_05), ldloc:uint64[](var_1_0D))
stloc:uint8[](var_2_1F, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(192)))
stfld:uint8[](KeccakDigest::dataQueue, ldloc:KeccakDigest(var_0_05), ldloc:uint8[](var_2_1F))
call:void(KeccakDigest::CopyIn, ldloc:KeccakDigest(var_0_05), ldloc:KeccakDigest(this))
}
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: 0x0600BA98 RID: 47768 RVA: 0x002A1B80 File Offset: 0x0029FD80
[Token(Token = "0x600BA98")]
[Address(RVA = "0x1B40DA0", Offset = "0x1B3FBA0", VA = "0x181B40DA0", Slot = "22")]
public virtual void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x0600BA99 RID: 47769 RVA: 0x002A1B98 File Offset: 0x0029FD98
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BA99")]
[Address(RVA = "0x1B41050", Offset = "0x1B3FE50", VA = "0x181B41050")]
static KeccakDigest()
{
ulong[] array = new ulong[24];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6BBA9E7ACC5D57E30438CC78FF7E308399E10FE1).FieldHandle);
KeccakDigest.KeccakRoundConstants = array;
}
// Token: 0x04007698 RID: 30360
[Token(Token = "0x4007698")]
private static readonly ulong[] KeccakRoundConstants;
// Token: 0x04007699 RID: 30361
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007699")]
private ulong[] state;
// Token: 0x0400769A RID: 30362
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400769A")]
protected byte[] dataQueue;
// Token: 0x0400769B RID: 30363
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400769B")]
protected int rate;
// Token: 0x0400769C RID: 30364
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x400769C")]
protected int bitsInQueue;
// Token: 0x0400769D RID: 30365
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400769D")]
protected int fixedOutputLength;
// Token: 0x0400769E RID: 30366
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400769E")]
protected bool squeezing;
}
}
@@ -0,0 +1,629 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CE9 RID: 7401
[Token(Token = "0x2001CE9")]
public abstract class LongDigest : IDigest, IMemoable
{
// Token: 0x0600BA9A RID: 47770 RVA: 0x002A1BC0 File Offset: 0x0029FDC0
[Token(Token = "0x600BA9A")]
[Address(RVA = "0x1B42930", Offset = "0x1B41730", VA = "0x181B42930")]
internal LongDigest()
{
ulong[] array = new ulong[80];
this.W = array;
base..ctor();
byte[] array2 = new byte[8];
this.xBuf = array2;
string algorithmName = this.AlgorithmName;
}
// Token: 0x0600BA9B RID: 47771 RVA: 0x002A1C04 File Offset: 0x0029FE04
[Token(Token = "0x600BA9B")]
[Address(RVA = "0x1B427F0", Offset = "0x1B415F0", VA = "0x181B427F0")]
internal LongDigest(LongDigest t)
{
ulong[] array = new ulong[80];
this.W = array;
base..ctor();
byte[] array2 = new byte[t.xBuf.Length];
this.xBuf = array2;
byte[] array3 = t.xBuf;
int length = array3.Length;
int num = 0;
int num2 = 0;
Array.Copy(array3, num2, array2, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount1;
this.byteCount1 = num4;
long num5 = t.byteCount2;
this.byteCount2 = num5;
ulong h = t.H1;
this.H1 = h;
ulong h2 = t.H2;
this.H2 = h2;
ulong h3 = t.H3;
this.H3 = h3;
ulong h4 = t.H4;
this.H4 = h4;
ulong h5 = t.H5;
this.H5 = h5;
ulong h6 = t.H6;
this.H6 = h6;
ulong h7 = t.H7;
this.H7 = h7;
ulong h8 = t.H8;
this.H8 = h8;
ulong[] w = t.W;
int length2 = w.Length;
int num6 = 0;
ulong[] w2 = this.W;
int num7 = 0;
Array.Copy(w, num7, w2, num6, length2);
int num8 = t.wOff;
this.wOff = num8;
}
// Token: 0x0600BA9C RID: 47772 RVA: 0x002A1D60 File Offset: 0x0029FF60
[Token(Token = "0x600BA9C")]
[Address(RVA = "0x1B41590", Offset = "0x1B40390", VA = "0x181B41590")]
protected void CopyIn(LongDigest t)
{
byte[] array = t.xBuf;
int length = array.Length;
int num = 0;
byte[] array2 = this.xBuf;
int num2 = 0;
Array.Copy(array, num2, array2, num, length);
int num3 = t.xBufOff;
this.xBufOff = num3;
long num4 = t.byteCount1;
this.byteCount1 = num4;
long num5 = t.byteCount2;
this.byteCount2 = num5;
ulong h = t.H1;
this.H1 = h;
ulong h2 = t.H2;
this.H2 = h2;
ulong h3 = t.H3;
this.H3 = h3;
ulong h4 = t.H4;
this.H4 = h4;
ulong h5 = t.H5;
this.H5 = h5;
ulong h6 = t.H6;
this.H6 = h6;
ulong h7 = t.H7;
this.H7 = h7;
ulong h8 = t.H8;
this.H8 = h8;
ulong[] w = t.W;
int length2 = w.Length;
int num6 = 0;
ulong[] w2 = this.W;
int num7 = 0;
Array.Copy(w, num7, w2, num6, length2);
int num8 = t.wOff;
this.wOff = num8;
}
// Token: 0x0600BA9D RID: 47773 RVA: 0x002A1E88 File Offset: 0x002A0088
[Token(Token = "0x600BA9D")]
[Address(RVA = "0x1B42720", Offset = "0x1B41520", VA = "0x181B42720", Slot = "7")]
public void Update(byte input)
{
byte[] array = this.xBuf;
int num = this.xBufOff + 1;
this.xBufOff = num;
byte[] array2 = this.xBuf;
int length = array2.Length;
if (this.xBufOff == length)
{
int num2 = 0;
this.ProcessWord(array2, num2);
this.xBufOff = (int)((ulong)0L);
}
}
// Token: 0x0600BA9E RID: 47774 RVA: 0x002A1EE0 File Offset: 0x002A00E0
[Token(Token = "0x600BA9E")]
[Address(RVA = "0x1B412B0", Offset = "0x1B400B0", VA = "0x181B412B0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = 0;
int num2 = this.xBufOff;
if (num2 != 0 && length > 0)
{
byte[] array = this.xBuf;
int num3 = num2 + 1;
this.xBufOff = num3;
byte[] array2 = this.xBuf;
int num4 = this.xBufOff;
if (num4 == array2.Length)
{
ulong[] w = this.W;
int num5 = this.wOff;
int num6 = 0;
ulong num7 = Pack.BE_To_UInt64(array2, num6);
w[0] = num7;
int num8 = this.wOff;
num8++;
this.wOff = num8;
if (num8 == 16)
{
this.ProcessBlock();
}
this.xBufOff = num;
}
while (num4 != 0)
{
}
}
byte[] array3 = this.xBuf;
if (length > array3.Length)
{
ulong[] w2 = this.W;
int num9 = this.wOff;
ulong num10 = Pack.BE_To_UInt64(input, inOff);
w2[0] = num10;
int num11 = this.wOff;
num11++;
this.wOff = num11;
if (num11 == 16)
{
this.ProcessBlock();
}
int length2 = this.xBuf.Length;
}
if (length > 0)
{
int num12 = this.xBufOff;
byte[] array4 = this.xBuf;
int num13 = num12 + 1;
this.xBufOff = num13;
byte[] array5 = this.xBuf;
int length3 = array5.Length;
if (this.xBufOff == length3)
{
ulong[] w3 = this.W;
int num14 = this.wOff;
int num15 = 0;
ulong num16 = Pack.BE_To_UInt64(array5, num15);
w3[0] = num16;
int num17 = this.wOff;
num17++;
this.wOff = num17;
if (num17 == 16)
{
this.ProcessBlock();
}
this.xBufOff = num;
}
}
}
// Token: 0x0600BA9F RID: 47775 RVA: 0x002A208C File Offset: 0x002A028C
[Token(Token = "0x600BA9F")]
[Address(RVA = "0x1B41670", Offset = "0x1B40470", VA = "0x181B41670")]
public void Finish()
{
long num = this.byteCount1;
long num2 = this.byteCount2;
ulong num3;
if (num > (long)num3)
{
num2 += num;
this.byteCount2 = num2;
this.byteCount1 = num;
}
int num4 = this.xBufOff;
byte[] array = this.xBuf;
int num5 = num4 + 1;
this.xBufOff = num5;
byte[] array2 = this.xBuf;
int num6 = this.xBufOff;
int num7 = 0;
if (num6 == array2.Length)
{
int num8 = 0;
this.ProcessWord(array2, num8);
this.xBufOff = num7;
}
if (num7 != 0)
{
byte[] array3 = this.xBuf;
this.xBufOff = 1;
byte[] array4 = this.xBuf;
if (this.xBufOff == array4.Length)
{
ulong[] w = this.W;
int num9 = this.wOff;
int num10 = 0;
ulong num11 = Pack.BE_To_UInt64(array4, num10);
w[0] = num11;
int num12 = this.wOff;
num12++;
this.wOff = num12;
if (num12 == 16)
{
this.ProcessBlock();
}
this.xBufOff = num7;
}
while (num7 != 0)
{
}
}
if (this.wOff > 14)
{
this.ProcessBlock();
}
this.W[14] = (ulong)num2;
ulong[] w2 = this.W;
this.ProcessBlock();
}
// Token: 0x0600BAA0 RID: 47776 RVA: 0x002A21C4 File Offset: 0x002A03C4
[Token(Token = "0x600BAA0")]
[Address(RVA = "0x1B425B0", Offset = "0x1B413B0", VA = "0x181B425B0", Slot = "13")]
public virtual void Reset()
{
byte[] array = this.xBuf;
int num = 0;
this.byteCount1 = (long)num;
this.byteCount2 = (long)num;
this.xBufOff = num;
if (num < array.Length)
{
num++;
byte[] array2 = this.xBuf;
}
this.wOff = num;
ulong[] w = this.W;
int length = w.Length;
int num2 = 0;
Array.Clear(w, num2, length);
}
// Token: 0x0600BAA1 RID: 47777 RVA: 0x002A222C File Offset: 0x002A042C
[Token(Token = "0x600BAA1")]
[Address(RVA = "0x1B42520", Offset = "0x1B41320", VA = "0x181B42520")]
internal void ProcessWord(byte[] input, int inOff)
{
ulong[] w = this.W;
int num = this.wOff;
ulong num2 = Pack.BE_To_UInt64(input, inOff);
w[0] = num2;
int num3 = this.wOff;
num3++;
this.wOff = num3;
if (num3 == 16)
{
this.ProcessBlock();
}
}
// Token: 0x0600BAA2 RID: 47778 RVA: 0x002A227C File Offset: 0x002A047C
[Token(Token = "0x600BAA2")]
[Address(RVA = "0x1B41280", Offset = "0x1B40080", VA = "0x181B41280")]
private void AdjustByteCounts()
{
long num = this.byteCount1;
ulong num2;
if (num > (long)num2)
{
this.byteCount1 = num;
}
}
// Token: 0x0600BAA3 RID: 47779 RVA: 0x002A229C File Offset: 0x002A049C
[Token(Token = "0x600BAA3")]
[Address(RVA = "0x1B42490", Offset = "0x1B41290", VA = "0x181B42490")]
internal void ProcessLength(long lowW, long hiW)
{
if (this.wOff > 14)
{
this.ProcessBlock();
}
this.W[14] = (ulong)hiW;
this.W[15] = (ulong)lowW;
}
// Token: 0x0600BAA4 RID: 47780 RVA: 0x002A22DC File Offset: 0x002A04DC
[Token(Token = "0x600BAA4")]
[Address(RVA = "0x1B41880", Offset = "0x1B40680", VA = "0x181B41880")]
internal void ProcessBlock()
{
long num = this.byteCount1;
ulong num2;
if (num > (long)num2)
{
this.byteCount1 = num;
}
ulong[] w = this.W;
ulong[] w2 = this.W;
int length = w2.Length;
ulong num3 = w2[(int)num2];
uint num4;
num4 += (uint)1;
num3 += num3;
w[0] = num3;
while (num4 <= (uint)79)
{
}
ulong num5 = this.H4;
int num6 = 0;
ulong num7 = this.H3;
ulong num8 = this.H5;
ulong num9 = this.H1;
ulong num10 = this.H2;
ulong num11 = this.H6;
ulong num12 = this.H7;
ulong num13 = this.H8;
num8 = num3;
int length2 = LongDigest.K.Length;
int length3 = this.W.Length;
num3 = num8;
num8 = num11;
num3 += num8;
num13 += num3;
num3 = num9;
num13 = num10;
num13 += num3;
num3 = num5;
num13 = num5;
num3 += num5;
num8 = num13;
num12 += num3;
num3 = num13;
num13 += num12;
num13 += num3;
num3 = num7;
num13 = num7;
num3 += num7;
num11 += num3;
num10 += num11;
num3 = num13;
num5 = num13;
num7 = num13;
num11 += num7;
num11 += num3;
num6 += 3;
num3 = num10;
num13 = num10;
num7 = num10;
num3 += num7;
num8 += num3;
num9 += num8;
num3 = num11;
num8 = num13;
num8 += num3;
num3 = num9;
num9 = num10;
num7 = num9;
num3 += num7;
num5 += num3;
num3 = num8;
num8 = num11;
num8 += num3;
num6 += 5;
num3 = num13;
num8 = num13;
num3 += num13;
num13 = num8;
num7 += num3;
num3 = num8;
num8 += num7;
num8 += num3;
num3 = num13;
num8 = num13;
num3 += num8;
num10 += num3;
num11 += num10;
num3 = num8;
num10 += num8;
num10 += num3;
num6 += 7;
num3 = num11;
num6 += 8;
num8 = num10;
num3 += num8;
num8 = num10;
num9 += num3;
num8 += num9;
num3 = num10;
num8 = num10;
num9 += num8;
num6++;
num9 += num3;
int num14 = 0;
ulong[] w3 = this.W;
this.H5 = num8;
this.H6 = num8;
this.H7 = num8;
Array.Clear(w3, num14, 16);
}
// Token: 0x0600BAA5 RID: 47781 RVA: 0x002A2604 File Offset: 0x002A0804
[Token(Token = "0x600BAA5")]
[Address(RVA = "0x1B41580", Offset = "0x1B40380", VA = "0x181B41580")]
private static ulong Ch(ulong x, ulong y, ulong z)
{
return x;
}
// Token: 0x0600BAA6 RID: 47782 RVA: 0x002A2614 File Offset: 0x002A0814
[Token(Token = "0x600BAA6")]
[Address(RVA = "0x1B41870", Offset = "0x1B40670", VA = "0x181B41870")]
private static ulong Maj(ulong x, ulong y, ulong z)
{
return y;
}
// Token: 0x0600BAA7 RID: 47783 RVA: 0x002A2624 File Offset: 0x002A0824
[Token(Token = "0x600BAA7")]
[Address(RVA = "0x1B426A0", Offset = "0x1B414A0", VA = "0x181B426A0")]
private static ulong Sum0(ulong x)
{
return x;
}
// Token: 0x0600BAA8 RID: 47784 RVA: 0x002A2634 File Offset: 0x002A0834
[Token(Token = "0x600BAA8")]
[Address(RVA = "0x1B426E0", Offset = "0x1B414E0", VA = "0x181B426E0")]
private static ulong Sum1(ulong x)
{
return x;
}
// Token: 0x0600BAA9 RID: 47785 RVA: 0x002A2644 File Offset: 0x002A0844
[Token(Token = "0x600BAA9")]
[Address(RVA = "0x1B42640", Offset = "0x1B41440", VA = "0x181B42640")]
private static ulong Sigma0(ulong x)
{
return x;
}
// Token: 0x0600BAAA RID: 47786 RVA: 0x002A2654 File Offset: 0x002A0854
[Token(Token = "0x600BAAA")]
[Address(RVA = "0x1B42670", Offset = "0x1B41470", VA = "0x181B42670")]
private static ulong Sigma1(ulong x)
{
return x;
}
// Token: 0x0600BAAB RID: 47787 RVA: 0x002A2664 File Offset: 0x002A0864
[Token(Token = "0x600BAAB")]
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560", Slot = "6")]
public int GetByteLength()
{
return this.MyByteLength;
}
// Token: 0x17001D11 RID: 7441
// (get) Token: 0x0600BAAC RID: 47788
[Token(Token = "0x17001D11")]
public abstract string AlgorithmName
{
[Token(Token = "0x600BAAC")]
[Address(Slot = "14")]
get;
}
// Token: 0x0600BAAD RID: 47789
[Token(Token = "0x600BAAD")]
[Address(Slot = "15")]
public abstract int GetDigestSize();
// Token: 0x0600BAAE RID: 47790
[Token(Token = "0x600BAAE")]
[Address(Slot = "16")]
public abstract int DoFinal(byte[] output, int outOff);
// Token: 0x0600BAAF RID: 47791
[Token(Token = "0x600BAAF")]
[Address(Slot = "17")]
public abstract IMemoable Copy();
// Token: 0x0600BAB0 RID: 47792
[Token(Token = "0x600BAB0")]
[Address(Slot = "18")]
public abstract void Reset(IMemoable t);
// Token: 0x0600BAB1 RID: 47793 RVA: 0x002A2678 File Offset: 0x002A0878
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BAB1")]
[Address(RVA = "0x1B42790", Offset = "0x1B41590", VA = "0x181B42790")]
static LongDigest()
{
ulong[] array = new ulong[80];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.90A0542282A011472F94E97CEAE59F8B3B1A3291).FieldHandle);
LongDigest.K = array;
}
// Token: 0x0400769F RID: 30367
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400769F")]
private int MyByteLength = (int)((ulong)128L);
// Token: 0x040076A0 RID: 30368
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076A0")]
private byte[] xBuf;
// Token: 0x040076A1 RID: 30369
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076A1")]
private int xBufOff;
// Token: 0x040076A2 RID: 30370
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076A2")]
private long byteCount1;
// Token: 0x040076A3 RID: 30371
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076A3")]
private long byteCount2;
// Token: 0x040076A4 RID: 30372
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076A4")]
internal ulong H1;
// Token: 0x040076A5 RID: 30373
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076A5")]
internal ulong H2;
// Token: 0x040076A6 RID: 30374
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40076A6")]
internal ulong H3;
// Token: 0x040076A7 RID: 30375
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40076A7")]
internal ulong H4;
// Token: 0x040076A8 RID: 30376
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40076A8")]
internal ulong H5;
// Token: 0x040076A9 RID: 30377
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40076A9")]
internal ulong H6;
// Token: 0x040076AA RID: 30378
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40076AA")]
internal ulong H7;
// Token: 0x040076AB RID: 30379
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40076AB")]
internal ulong H8;
// Token: 0x040076AC RID: 30380
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40076AC")]
private ulong[] W;
// Token: 0x040076AD RID: 30381
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x40076AD")]
private int wOff;
// Token: 0x040076AE RID: 30382
[Token(Token = "0x40076AE")]
internal static readonly ulong[] K;
}
}
@@ -0,0 +1,376 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CEA RID: 7402
[Token(Token = "0x2001CEA")]
public class MD2Digest : IDigest, IMemoable
{
// Token: 0x0600BAB2 RID: 47794 RVA: 0x002A26A0 File Offset: 0x002A08A0
[Token(Token = "0x600BAB2")]
[Address(RVA = "0x1B43410", Offset = "0x1B42210", VA = "0x181B43410")]
public MD2Digest()
{
byte[] array = new byte[48];
this.X = array;
byte[] array2 = new byte[16];
this.M = array2;
byte[] array3 = new byte[16];
this.C = array3;
base..ctor();
this.Reset();
}
// Token: 0x0600BAB3 RID: 47795 RVA: 0x002A26E8 File Offset: 0x002A08E8
[Token(Token = "0x600BAB3")]
[Address(RVA = "0x1B43490", Offset = "0x1B42290", VA = "0x181B43490")]
public MD2Digest(MD2Digest t)
{
byte[] array = new byte[48];
this.X = array;
byte[] array2 = new byte[16];
this.M = array2;
byte[] array3 = new byte[16];
this.C = array3;
base..ctor();
this.CopyIn(t);
}
// Token: 0x0600BAB4 RID: 47796 RVA: 0x002A2730 File Offset: 0x002A0930
[Token(Token = "0x600BAB4")]
[Address(RVA = "0x1B42B80", Offset = "0x1B41980", VA = "0x181B42B80")]
private void CopyIn(MD2Digest t)
{
byte[] x = t.X;
int length = x.Length;
int num = 0;
byte[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
byte[] m = t.M;
int length2 = m.Length;
int num4 = 0;
byte[] m2 = this.M;
int num5 = 0;
Array.Copy(m, num5, m2, num4, length2);
int num6 = t.mOff;
this.mOff = num6;
byte[] c = t.C;
int length3 = c.Length;
int num7 = 0;
byte[] c2 = this.C;
int num8 = 0;
Array.Copy(c, num8, c2, num7, length3);
int coff = t.COff;
this.COff = coff;
}
// Token: 0x17001D12 RID: 7442
// (get) Token: 0x0600BAB5 RID: 47797 RVA: 0x002A27F4 File Offset: 0x002A09F4
[Token(Token = "0x17001D12")]
public string AlgorithmName
{
[Token(Token = "0x600BAB5")]
[Address(RVA = "0x1B43520", Offset = "0x1B42320", VA = "0x181B43520", Slot = "4")]
get
{
return "MD2";
}
}
// Token: 0x0600BAB6 RID: 47798 RVA: 0x002A2808 File Offset: 0x002A0A08
[Token(Token = "0x600BAB6")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "5")]
public int GetDigestSize()
{
return 16;
}
// Token: 0x0600BAB7 RID: 47799 RVA: 0x002A2818 File Offset: 0x002A0A18
[Token(Token = "0x600BAB7")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "6")]
public int GetByteLength()
{
return 16;
}
// Token: 0x0600BAB8 RID: 47800 RVA: 0x002A2828 File Offset: 0x002A0A28
[Token(Token = "0x600BAB8")]
[Address(RVA = "0x1B42D00", Offset = "0x1B41B00", VA = "0x181B42D00", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
byte[] m = this.M;
int length = m.Length;
int num = this.mOff;
byte[] m2;
if (num < m.Length)
{
num++;
m2 = this.M;
}
this.ProcessChecksum(m2);
byte[] m3 = this.M;
this.ProcessBlock(m3);
byte[] c = this.C;
this.ProcessBlock(c);
int num2 = this.xOff;
ulong num3;
Array.Copy(this.X, num2, output, outOff, (int)num3);
this.Reset();
throw new NullReferenceException();
}
// Token: 0x0600BAB9 RID: 47801 RVA: 0x002A28AC File Offset: 0x002A0AAC
[Token(Token = "0x600BAB9")]
[Address(RVA = "0x1B43180", Offset = "0x1B41F80", VA = "0x181B43180", Slot = "10")]
public void Reset()
{
do
{
int num = 0;
this.xOff = num;
byte[] x = this.X;
if (num != x.Length)
{
num++;
byte[] x2 = this.X;
}
byte[] m = this.M;
this.mOff = num;
if (num != m.Length)
{
num++;
if (this.M != 0)
{
continue;
}
}
byte[] c = this.C;
this.COff = num;
if (num == c.Length)
{
break;
}
num++;
}
while (this.C != 0);
}
// Token: 0x0600BABA RID: 47802 RVA: 0x002A2930 File Offset: 0x002A0B30
[Token(Token = "0x600BABA")]
[Address(RVA = "0x1B43340", Offset = "0x1B42140", VA = "0x181B43340", Slot = "7")]
public void Update(byte input)
{
byte[] m = this.M;
int num = this.mOff + 1;
this.mOff = num;
if (this.mOff == 16)
{
byte[] m2 = this.M;
this.ProcessChecksum(m2);
byte[] m3 = this.M;
this.ProcessBlock(m3);
this.mOff = (int)((ulong)0L);
}
}
// Token: 0x0600BABB RID: 47803 RVA: 0x002A298C File Offset: 0x002A0B8C
[Token(Token = "0x600BABB")]
[Address(RVA = "0x1B429B0", Offset = "0x1B417B0", VA = "0x181B429B0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = 0;
int num2 = this.mOff;
int num3;
if (num2 != 0 && length > 0)
{
byte[] m = this.M;
num3 = num2 + 1;
this.mOff = num3;
num3 = num2;
int num4 = this.mOff;
if (num4 == 16)
{
byte[] m2 = this.M;
this.ProcessChecksum(m2);
byte[] m3 = this.M;
this.ProcessBlock(m3);
this.mOff = num;
}
while (num4 != 0)
{
}
}
if (length > 16)
{
num3++;
byte[] m4 = this.M;
int num5 = 0;
ulong num6;
Array.Copy(input, inOff, m4, num5, (int)num6);
byte[] m5 = this.M;
this.ProcessChecksum(m5);
byte[] m6 = this.M;
this.ProcessBlock(m6);
while (length != 16)
{
}
}
if (length > 0)
{
int num7 = this.mOff;
byte[] m7 = this.M;
num3 = inOff;
int num8 = num7 + 1;
this.mOff = num8;
if (this.mOff == 16)
{
byte[] m8 = this.M;
this.ProcessChecksum(m8);
byte[] m9 = this.M;
this.ProcessBlock(m9);
this.mOff = num;
}
}
}
// Token: 0x0600BABC RID: 47804 RVA: 0x002A2AA0 File Offset: 0x002A0CA0
[Token(Token = "0x600BABC")]
[Address(RVA = "0x1B43000", Offset = "0x1B41E00", VA = "0x181B43000")]
internal void ProcessChecksum(byte[] m)
{
byte b = this.C[1];
int num = 0;
byte[] s = MD2Digest.S;
byte[] c = this.C;
num++;
}
// Token: 0x0600BABD RID: 47805 RVA: 0x002A2AD4 File Offset: 0x002A0CD4
[Token(Token = "0x600BABD")]
[Address(RVA = "0x1B42DF0", Offset = "0x1B41BF0", VA = "0x181B42DF0")]
internal void ProcessBlock(byte[] m)
{
int num = 0;
byte[] x = this.X;
int length = this.X.Length;
num++;
int num2 = 0;
int num3 = 0;
byte[] x2 = this.X;
num3 += x2;
byte[] s = MD2Digest.S;
num3++;
byte b = (byte)((int)b + num2);
if (num3 < 48)
{
}
num2++;
}
// Token: 0x0600BABE RID: 47806 RVA: 0x002A2B38 File Offset: 0x002A0D38
[Token(Token = "0x600BABE")]
[Address(RVA = "0x1B42C40", Offset = "0x1B41A40", VA = "0x181B42C40", Slot = "11")]
public IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BABE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD2Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:MD2Digest(var_0_05, newobj:MD2Digest(MD2Digest::.ctor))
stloc:uint8[](var_1_0D, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(48)))
stfld:uint8[](MD2Digest::X, ldloc:MD2Digest(var_0_05), ldloc:uint8[](var_1_0D))
stloc:uint8[](var_2_1C, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(16)))
stfld:uint8[](MD2Digest::M, ldloc:MD2Digest(var_0_05), ldloc:uint8[](var_2_1C))
stloc:uint8[](var_3_2B, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(16)))
stfld:uint8[](MD2Digest::C, ldloc:MD2Digest(var_0_05), ldloc:uint8[](var_3_2B))
call:void(MD2Digest::CopyIn, ldloc:MD2Digest(var_0_05), ldloc:MD2Digest(this))
}
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: 0x0600BABF RID: 47807 RVA: 0x002A2B80 File Offset: 0x002A0D80
[Token(Token = "0x600BABF")]
[Address(RVA = "0x1B432A0", Offset = "0x1B420A0", VA = "0x181B432A0", Slot = "12")]
public void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x0600BAC0 RID: 47808 RVA: 0x002A2B98 File Offset: 0x002A0D98
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BAC0")]
[Address(RVA = "0x1B433B0", Offset = "0x1B421B0", VA = "0x181B433B0")]
static MD2Digest()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D2C5BAE967587C6F3D9F2C4551911E0575A1101F).FieldHandle);
MD2Digest.S = array;
}
// Token: 0x040076AF RID: 30383
[Token(Token = "0x40076AF")]
private const int DigestLength = 16;
// Token: 0x040076B0 RID: 30384
[Token(Token = "0x40076B0")]
private const int BYTE_LENGTH = 16;
// Token: 0x040076B1 RID: 30385
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076B1")]
private byte[] X;
// Token: 0x040076B2 RID: 30386
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40076B2")]
private int xOff;
// Token: 0x040076B3 RID: 30387
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40076B3")]
private byte[] M;
// Token: 0x040076B4 RID: 30388
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076B4")]
private int mOff;
// Token: 0x040076B5 RID: 30389
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076B5")]
private byte[] C;
// Token: 0x040076B6 RID: 30390
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076B6")]
private int COff;
// Token: 0x040076B7 RID: 30391
[Token(Token = "0x40076B7")]
private static readonly byte[] S;
}
}
@@ -0,0 +1,469 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CEB RID: 7403
[Token(Token = "0x2001CEB")]
public class MD4Digest : GeneralDigest
{
// Token: 0x0600BAC1 RID: 47809 RVA: 0x002A2BC4 File Offset: 0x002A0DC4
[Token(Token = "0x600BAC1")]
[Address(RVA = "0x1B446E0", Offset = "0x1B434E0", VA = "0x181B446E0")]
public MD4Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
byte[] array2 = new byte[4];
this.xBuf = array2;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BAC2 RID: 47810 RVA: 0x002A2BFC File Offset: 0x002A0DFC
[Token(Token = "0x600BAC2")]
[Address(RVA = "0x1B44670", Offset = "0x1B43470", VA = "0x181B44670")]
public MD4Digest(MD4Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BAC3 RID: 47811 RVA: 0x002A2C28 File Offset: 0x002A0E28
[Token(Token = "0x600BAC3")]
[Address(RVA = "0x1B43550", Offset = "0x1B42350", VA = "0x181B43550")]
private void CopyIn(MD4Digest t)
{
byte[] xBuf = t.xBuf;
int length = xBuf.Length;
int num = 0;
byte[] xBuf2 = this.xBuf;
int num2 = 0;
Array.Copy(xBuf, num2, xBuf2, num, length);
int xBufOff = t.xBufOff;
this.xBufOff = xBufOff;
long byteCount = t.byteCount;
this.byteCount = byteCount;
int h = t.H1;
this.H1 = h;
int h2 = t.H2;
this.H2 = h2;
int h3 = t.H3;
this.H3 = h3;
int h4 = t.H4;
this.H4 = h4;
int[] x = t.X;
int length2 = x.Length;
int num3 = 0;
int[] x2 = this.X;
int num4 = 0;
Array.Copy(x, num4, x2, num3, length2);
int num5 = t.xOff;
this.xOff = num5;
}
// Token: 0x17001D13 RID: 7443
// (get) Token: 0x0600BAC4 RID: 47812 RVA: 0x002A2D00 File Offset: 0x002A0F00
[Token(Token = "0x17001D13")]
public override string AlgorithmName
{
[Token(Token = "0x600BAC4")]
[Address(RVA = "0x1B44770", Offset = "0x1B43570", VA = "0x181B44770", Slot = "17")]
get
{
return "MD4";
}
}
// Token: 0x0600BAC5 RID: 47813 RVA: 0x002A2D14 File Offset: 0x002A0F14
[Token(Token = "0x600BAC5")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "18")]
public override int GetDigestSize()
{
return 16;
}
// Token: 0x0600BAC6 RID: 47814 RVA: 0x002A2D24 File Offset: 0x002A0F24
[Token(Token = "0x600BAC6")]
[Address(RVA = "0x1B44340", Offset = "0x1B43140", VA = "0x181B44340", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x0600BAC7 RID: 47815 RVA: 0x002A2D70 File Offset: 0x002A0F70
[Token(Token = "0x600BAC7")]
[Address(RVA = "0x1B442C0", Offset = "0x1B430C0", VA = "0x181B442C0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x0600BAC8 RID: 47816 RVA: 0x002A2DA8 File Offset: 0x002A0FA8
[Token(Token = "0x600BAC8")]
[Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600BAC9 RID: 47817 RVA: 0x002A2DC0 File Offset: 0x002A0FC0
[Token(Token = "0x600BAC9")]
[Address(RVA = "0x1B436A0", Offset = "0x1B424A0", VA = "0x181B436A0", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H1;
this.UnpackWord(h, output, outOff);
int num = this.H2;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H3;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H4;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x0600BACA RID: 47818 RVA: 0x002A2E38 File Offset: 0x002A1038
[Token(Token = "0x600BACA")]
[Address(RVA = "0x1B44460", Offset = "0x1B43260", VA = "0x181B44460", Slot = "13")]
public override void Reset()
{
int num = 0;
this.byteCount = (long)num;
this.xBufOff = num;
byte[] xBuf = this.xBuf;
int length = xBuf.Length;
int num2 = 0;
Array.Clear(xBuf, num2, length);
int[] x = this.X;
this.H1 = (int)((ulong)1732584193L);
this.H2 = (int)((ulong)4023233417L);
this.H3 = (int)((ulong)2562383102L);
this.H4 = (int)((ulong)271733878L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x0600BACB RID: 47819 RVA: 0x002A2EDC File Offset: 0x002A10DC
[Token(Token = "0x600BACB")]
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
private int RotateLeft(int x, int n)
{
return x;
}
// Token: 0x0600BACC RID: 47820 RVA: 0x002A2EEC File Offset: 0x002A10EC
[Token(Token = "0x600BACC")]
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
private int F(int u, int v, int w)
{
return u;
}
// Token: 0x0600BACD RID: 47821 RVA: 0x002A2EFC File Offset: 0x002A10FC
[Token(Token = "0x600BACD")]
[Address(RVA = "0x63B400", Offset = "0x63A200", VA = "0x18063B400")]
private int G(int u, int v, int w)
{
return v;
}
// Token: 0x0600BACE RID: 47822 RVA: 0x002A2F0C File Offset: 0x002A110C
[Token(Token = "0x600BACE")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private int H(int u, int v, int w)
{
return u;
}
// Token: 0x0600BACF RID: 47823 RVA: 0x002A2F1C File Offset: 0x002A111C
[Token(Token = "0x600BACF")]
[Address(RVA = "0x1B438E0", Offset = "0x1B426E0", VA = "0x181B438E0", Slot = "16")]
internal override void ProcessBlock()
{
int[] x = this.X;
int num = this.H2;
int num2 = this.H3;
int h = this.H4;
int h2 = this.H1;
int num3 = x.Length;
num += h2;
num += h;
num2 = num;
num += num2;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
num += num;
int num4 = x[6];
num += num4;
num += num;
num += num;
num += num;
num += num;
num2 = num;
num2 += num;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += 1518500249;
num2 += num4;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num2 = num;
num2 += 1518500249;
num2 += num;
num = num2;
num2 = num;
num2 += 1518500249;
num2 += num;
num4 = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num4;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num;
num2 += 1518500249;
num2 += num4;
num3 = num2;
num2 = num;
num += 1859775393;
num2 += num;
num = num2;
num2 = num;
num2 += num;
num = num2;
num2 = num3;
num += num2;
num2 = num;
num3 = num;
num += num2;
num2 = num3;
num += num2;
num2 += num3;
num = num2;
num2 = num;
num += num2;
num2 = num;
num3 = num;
num += num2;
num2 = num3;
num += num2;
num2 += num3;
num = num2;
num2 = num;
num += num2;
num4 = num;
num2 = num4;
num3 = num4;
num += num2;
num = num3;
num += 1859775393;
num += num;
num2 += num3;
num = num2;
num += 1859775393;
num += num4;
num2 = num;
num += num2;
num += 1859775393;
this.H1 = num2;
num += num;
num2 = num;
num2 += num;
this.H2 = num2;
this.H3 = num2;
int num5 = 0;
this.H4 = num2;
this.xOff = num5;
if (num5 != x.Length)
{
num5++;
x[0] = num5;
int[] x2 = this.X;
}
}
// Token: 0x0600BAD0 RID: 47824 RVA: 0x002A315C File Offset: 0x002A135C
[Token(Token = "0x600BAD0")]
[Address(RVA = "0x1B43600", Offset = "0x1B42400", VA = "0x181B43600", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BAD0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD4Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:MD4Digest(var_0_06, newobj:MD4Digest(MD4Digest::.ctor, ldloc:MD4Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](MD4Digest::X, ldloc:MD4Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(MD4Digest::CopyIn, ldloc:MD4Digest(var_0_06), ldloc:MD4Digest(this))
}
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: 0x0600BAD1 RID: 47825 RVA: 0x002A3188 File Offset: 0x002A1388
[Token(Token = "0x600BAD1")]
[Address(RVA = "0x1B44510", Offset = "0x1B43310", VA = "0x181B44510", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040076B8 RID: 30392
[Token(Token = "0x40076B8")]
private const int DigestLength = 16;
// Token: 0x040076B9 RID: 30393
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076B9")]
private int H1;
// Token: 0x040076BA RID: 30394
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40076BA")]
private int H2;
// Token: 0x040076BB RID: 30395
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076BB")]
private int H3;
// Token: 0x040076BC RID: 30396
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40076BC")]
private int H4;
// Token: 0x040076BD RID: 30397
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076BD")]
private int[] X;
// Token: 0x040076BE RID: 30398
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076BE")]
private int xOff;
// Token: 0x040076BF RID: 30399
[Token(Token = "0x40076BF")]
private const int S11 = 3;
// Token: 0x040076C0 RID: 30400
[Token(Token = "0x40076C0")]
private const int S12 = 7;
// Token: 0x040076C1 RID: 30401
[Token(Token = "0x40076C1")]
private const int S13 = 11;
// Token: 0x040076C2 RID: 30402
[Token(Token = "0x40076C2")]
private const int S14 = 19;
// Token: 0x040076C3 RID: 30403
[Token(Token = "0x40076C3")]
private const int S21 = 3;
// Token: 0x040076C4 RID: 30404
[Token(Token = "0x40076C4")]
private const int S22 = 5;
// Token: 0x040076C5 RID: 30405
[Token(Token = "0x40076C5")]
private const int S23 = 9;
// Token: 0x040076C6 RID: 30406
[Token(Token = "0x40076C6")]
private const int S24 = 13;
// Token: 0x040076C7 RID: 30407
[Token(Token = "0x40076C7")]
private const int S31 = 3;
// Token: 0x040076C8 RID: 30408
[Token(Token = "0x40076C8")]
private const int S32 = 9;
// Token: 0x040076C9 RID: 30409
[Token(Token = "0x40076C9")]
private const int S33 = 11;
// Token: 0x040076CA RID: 30410
[Token(Token = "0x40076CA")]
private const int S34 = 15;
}
}
@@ -0,0 +1,361 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CEC RID: 7404
[Token(Token = "0x2001CEC")]
public class MD5Digest : GeneralDigest
{
// Token: 0x0600BAD2 RID: 47826 RVA: 0x002A31A0 File Offset: 0x002A13A0
[Token(Token = "0x600BAD2")]
[Address(RVA = "0x1B45D20", Offset = "0x1B44B20", VA = "0x181B45D20")]
public MD5Digest()
{
uint[] array = new uint[16];
this.X = array;
base..ctor();
byte[] array2 = new byte[4];
this.xBuf = array2;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BAD3 RID: 47827 RVA: 0x002A31D8 File Offset: 0x002A13D8
[Token(Token = "0x600BAD3")]
[Address(RVA = "0x1B45DB0", Offset = "0x1B44BB0", VA = "0x181B45DB0")]
public MD5Digest(MD5Digest t)
{
uint[] array = new uint[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BAD4 RID: 47828 RVA: 0x002A3204 File Offset: 0x002A1404
[Token(Token = "0x600BAD4")]
[Address(RVA = "0x1B43550", Offset = "0x1B42350", VA = "0x181B43550")]
private void CopyIn(MD5Digest t)
{
byte[] xBuf = t.xBuf;
int length = xBuf.Length;
int num = 0;
byte[] xBuf2 = this.xBuf;
int num2 = 0;
Array.Copy(xBuf, num2, xBuf2, num, length);
int xBufOff = t.xBufOff;
this.xBufOff = xBufOff;
long byteCount = t.byteCount;
this.byteCount = byteCount;
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint[] x = t.X;
int length2 = x.Length;
int num3 = 0;
uint[] x2 = this.X;
int num4 = 0;
Array.Copy(x, num4, x2, num3, length2);
int num5 = t.xOff;
this.xOff = num5;
}
// Token: 0x17001D14 RID: 7444
// (get) Token: 0x0600BAD5 RID: 47829 RVA: 0x002A32DC File Offset: 0x002A14DC
[Token(Token = "0x17001D14")]
public override string AlgorithmName
{
[Token(Token = "0x600BAD5")]
[Address(RVA = "0x1B45E20", Offset = "0x1B44C20", VA = "0x181B45E20", Slot = "17")]
get
{
return "MD5";
}
}
// Token: 0x0600BAD6 RID: 47830 RVA: 0x002A32F0 File Offset: 0x002A14F0
[Token(Token = "0x600BAD6")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "18")]
public override int GetDigestSize()
{
return 16;
}
// Token: 0x0600BAD7 RID: 47831 RVA: 0x002A3300 File Offset: 0x002A1500
[Token(Token = "0x600BAD7")]
[Address(RVA = "0x1B45A50", Offset = "0x1B44850", VA = "0x181B45A50", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
x[0] = (uint)inOff;
int num2 = this.xOff;
num2++;
this.xOff = num2;
if (num2 == 16)
{
}
}
// Token: 0x0600BAD8 RID: 47832 RVA: 0x002A3340 File Offset: 0x002A1540
[Token(Token = "0x600BAD8")]
[Address(RVA = "0x1B45960", Offset = "0x1B44760", VA = "0x181B45960", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
int num = this.xOff;
int num2 = 0;
if (num > 14 && num == 15)
{
this.X[7] = (uint)num2;
}
int num3 = this.xOff;
if (num3 < 14)
{
uint[] x = this.X;
num3++;
x[0] = (uint)num2;
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x0600BAD9 RID: 47833 RVA: 0x002A33B0 File Offset: 0x002A15B0
[Token(Token = "0x600BAD9")]
[Address(RVA = "0x1B44840", Offset = "0x1B43640", VA = "0x181B44840", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Ed25519.Encode32(this.H1, output, outOff);
Ed25519.Encode32(this.H2, output, outOff);
Ed25519.Encode32(this.H3, output, outOff);
Ed25519.Encode32(this.H4, output, outOff);
return 16;
}
// Token: 0x0600BADA RID: 47834 RVA: 0x002A33FC File Offset: 0x002A15FC
[Token(Token = "0x600BADA")]
[Address(RVA = "0x1B44460", Offset = "0x1B43260", VA = "0x181B44460", Slot = "13")]
public override void Reset()
{
int num = 0;
this.byteCount = (long)num;
this.xBufOff = num;
byte[] xBuf = this.xBuf;
int length = xBuf.Length;
int num2 = 0;
Array.Clear(xBuf, num2, length);
uint[] x = this.X;
this.H1 = (uint)((ulong)1732584193L);
this.H2 = (uint)((ulong)4023233417L);
this.H3 = (uint)((ulong)2562383102L);
this.H4 = (uint)((ulong)271733878L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = (uint)num;
uint[] x2 = this.X;
}
}
// Token: 0x0600BADB RID: 47835 RVA: 0x002A34A0 File Offset: 0x002A16A0
[Token(Token = "0x600BADB")]
[Address(RVA = "0x1B45B80", Offset = "0x1B44980", VA = "0x181B45B80")]
private static uint RotateLeft(uint x, int n)
{
return x;
}
// Token: 0x0600BADC RID: 47836 RVA: 0x002A34B0 File Offset: 0x002A16B0
[Token(Token = "0x600BADC")]
[Address(RVA = "0x1B448D0", Offset = "0x1B436D0", VA = "0x181B448D0")]
private static uint F(uint u, uint v, uint w)
{
return u;
}
// Token: 0x0600BADD RID: 47837 RVA: 0x002A34C0 File Offset: 0x002A16C0
[Token(Token = "0x600BADD")]
[Address(RVA = "0x1B448E0", Offset = "0x1B436E0", VA = "0x181B448E0")]
private static uint G(uint u, uint v, uint w)
{
return w;
}
// Token: 0x0600BADE RID: 47838 RVA: 0x002A34D0 File Offset: 0x002A16D0
[Token(Token = "0x600BADE")]
[Address(RVA = "0x1B448F0", Offset = "0x1B436F0", VA = "0x181B448F0")]
private static uint H(uint u, uint v, uint w)
{
return u;
}
// Token: 0x0600BADF RID: 47839 RVA: 0x002A34E0 File Offset: 0x002A16E0
[Token(Token = "0x600BADF")]
[Address(RVA = "0x1B44900", Offset = "0x1B43700", VA = "0x181B44900")]
private static uint K(uint u, uint v, uint w)
{
return w;
}
// Token: 0x0600BAE0 RID: 47840 RVA: 0x002A34F0 File Offset: 0x002A16F0
[Token(Token = "0x600BAE0")]
[Address(RVA = "0x1B44910", Offset = "0x1B43710", VA = "0x181B44910", Slot = "16")]
internal override void ProcessBlock()
{
uint h = this.H2;
uint[] x = this.X;
int length = x.Length;
int num = MD5Digest.S21;
uint num2 = x[7];
num += -2022574463;
}
// Token: 0x0600BAE1 RID: 47841 RVA: 0x002A3530 File Offset: 0x002A1730
[Token(Token = "0x600BAE1")]
[Address(RVA = "0x1B447A0", Offset = "0x1B435A0", VA = "0x181B447A0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BAE1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.MD5Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:MD5Digest(var_0_06, newobj:MD5Digest(MD5Digest::.ctor, ldloc:MD5Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(16)))
stfld:uint32[](MD5Digest::X, ldloc:MD5Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(MD5Digest::CopyIn, ldloc:MD5Digest(var_0_06), ldloc:MD5Digest(this))
}
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: 0x0600BAE2 RID: 47842 RVA: 0x002A355C File Offset: 0x002A175C
[Token(Token = "0x600BAE2")]
[Address(RVA = "0x1B45AE0", Offset = "0x1B448E0", VA = "0x181B45AE0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040076CB RID: 30411
[Token(Token = "0x40076CB")]
private const int DigestLength = 16;
// Token: 0x040076CC RID: 30412
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076CC")]
private uint H1;
// Token: 0x040076CD RID: 30413
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40076CD")]
private uint H2;
// Token: 0x040076CE RID: 30414
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076CE")]
private uint H3;
// Token: 0x040076CF RID: 30415
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40076CF")]
private uint H4;
// Token: 0x040076D0 RID: 30416
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076D0")]
private uint[] X;
// Token: 0x040076D1 RID: 30417
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076D1")]
private int xOff;
// Token: 0x040076D2 RID: 30418
[Token(Token = "0x40076D2")]
private static readonly int S11;
// Token: 0x040076D3 RID: 30419
[Token(Token = "0x40076D3")]
private static readonly int S12;
// Token: 0x040076D4 RID: 30420
[Token(Token = "0x40076D4")]
private static readonly int S13;
// Token: 0x040076D5 RID: 30421
[Token(Token = "0x40076D5")]
private static readonly int S14;
// Token: 0x040076D6 RID: 30422
[Token(Token = "0x40076D6")]
private static readonly int S21;
// Token: 0x040076D7 RID: 30423
[Token(Token = "0x40076D7")]
private static readonly int S22;
// Token: 0x040076D8 RID: 30424
[Token(Token = "0x40076D8")]
private static readonly int S23;
// Token: 0x040076D9 RID: 30425
[Token(Token = "0x40076D9")]
private static readonly int S24;
// Token: 0x040076DA RID: 30426
[Token(Token = "0x40076DA")]
private static readonly int S31;
// Token: 0x040076DB RID: 30427
[Token(Token = "0x40076DB")]
private static readonly int S32;
// Token: 0x040076DC RID: 30428
[Token(Token = "0x40076DC")]
private static readonly int S33;
// Token: 0x040076DD RID: 30429
[Token(Token = "0x40076DD")]
private static readonly int S34;
// Token: 0x040076DE RID: 30430
[Token(Token = "0x40076DE")]
private static readonly int S41;
// Token: 0x040076DF RID: 30431
[Token(Token = "0x40076DF")]
private static readonly int S42;
// Token: 0x040076E0 RID: 30432
[Token(Token = "0x40076E0")]
private static readonly int S43;
// Token: 0x040076E1 RID: 30433
[Token(Token = "0x40076E1")]
private static readonly int S44;
}
}
@@ -0,0 +1,111 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CED RID: 7405
[Token(Token = "0x2001CED")]
public class NonMemoableDigest : IDigest
{
// Token: 0x0600BAE4 RID: 47844 RVA: 0x002A3584 File Offset: 0x002A1784
[Token(Token = "0x600BAE4")]
[Address(RVA = "0x1FD3D90", Offset = "0x1FD2B90", VA = "0x181FD3D90")]
public NonMemoableDigest(IDigest baseDigest)
{
/*
An exception occurred when decompiling this method (0600BAE4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.NonMemoableDigest::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentNullException(var_0_1C, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("baseDigest")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001D15 RID: 7445
// (get) Token: 0x0600BAE5 RID: 47845 RVA: 0x002A35B0 File Offset: 0x002A17B0
[Token(Token = "0x17001D15")]
public virtual string AlgorithmName
{
[Token(Token = "0x600BAE5")]
[Address(RVA = "0x1FD3E10", Offset = "0x1FD2C10", VA = "0x181FD3E10", Slot = "11")]
get
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
}
// Token: 0x0600BAE6 RID: 47846 RVA: 0x002A35CC File Offset: 0x002A17CC
[Token(Token = "0x600BAE6")]
[Address(RVA = "0x1FD3C90", Offset = "0x1FD2A90", VA = "0x181FD3C90", Slot = "12")]
public virtual int GetDigestSize()
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x0600BAE7 RID: 47847 RVA: 0x002A35E8 File Offset: 0x002A17E8
[Token(Token = "0x600BAE7")]
[Address(RVA = "0x1FD3D30", Offset = "0x1FD2B30", VA = "0x181FD3D30", Slot = "13")]
public virtual void Update(byte input)
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x0600BAE8 RID: 47848 RVA: 0x002A3604 File Offset: 0x002A1804
[Token(Token = "0x600BAE8")]
[Address(RVA = "0x1FD3B50", Offset = "0x1FD2950", VA = "0x181FD3B50", Slot = "14")]
public virtual void BlockUpdate(byte[] input, int inOff, int len)
{
IDigest digest = this.mBaseDigest;
}
// Token: 0x0600BAE9 RID: 47849 RVA: 0x002A3620 File Offset: 0x002A1820
[Token(Token = "0x600BAE9")]
[Address(RVA = "0x1FD3BD0", Offset = "0x1FD29D0", VA = "0x181FD3BD0", Slot = "15")]
public virtual int DoFinal(byte[] output, int outOff)
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x0600BAEA RID: 47850 RVA: 0x002A363C File Offset: 0x002A183C
[Token(Token = "0x600BAEA")]
[Address(RVA = "0x1FD3CE0", Offset = "0x1FD2AE0", VA = "0x181FD3CE0", Slot = "16")]
public virtual void Reset()
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x0600BAEB RID: 47851 RVA: 0x002A3658 File Offset: 0x002A1858
[Token(Token = "0x600BAEB")]
[Address(RVA = "0x1FD3C40", Offset = "0x1FD2A40", VA = "0x181FD3C40", Slot = "17")]
public virtual int GetByteLength()
{
IDigest digest = this.mBaseDigest;
throw new NullReferenceException();
}
// Token: 0x040076E2 RID: 30434
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076E2")]
protected readonly IDigest mBaseDigest;
}
}
@@ -0,0 +1,98 @@
using System;
using System.IO;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CEE RID: 7406
[Token(Token = "0x2001CEE")]
public class NullDigest : IDigest
{
// Token: 0x17001D16 RID: 7446
// (get) Token: 0x0600BAEC RID: 47852 RVA: 0x002A3674 File Offset: 0x002A1874
[Token(Token = "0x17001D16")]
public string AlgorithmName
{
[Token(Token = "0x600BAEC")]
[Address(RVA = "0x1FD3F90", Offset = "0x1FD2D90", VA = "0x181FD3F90", Slot = "4")]
get
{
return "NULL";
}
}
// Token: 0x0600BAED RID: 47853 RVA: 0x002A3688 File Offset: 0x002A1888
[Token(Token = "0x600BAED")]
[Address(RVA = "0x43E630", Offset = "0x43D430", VA = "0x18043E630", Slot = "6")]
public int GetByteLength()
{
return 0;
}
// Token: 0x0600BAEE RID: 47854 RVA: 0x002A3698 File Offset: 0x002A1898
[Token(Token = "0x600BAEE")]
[Address(RVA = "0x5F5F00", Offset = "0x5F4D00", VA = "0x1805F5F00", Slot = "5")]
public int GetDigestSize()
{
((IDisposable)this.bOut).Dispose();
throw new NullReferenceException();
}
// Token: 0x0600BAEF RID: 47855 RVA: 0x002A36B8 File Offset: 0x002A18B8
[Token(Token = "0x600BAEF")]
[Address(RVA = "0x18956C0", Offset = "0x18944C0", VA = "0x1818956C0", Slot = "7")]
public void Update(byte b)
{
((IDisposable)this.bOut).Dispose();
}
// Token: 0x0600BAF0 RID: 47856 RVA: 0x002A36D8 File Offset: 0x002A18D8
[Token(Token = "0x600BAF0")]
[Address(RVA = "0x1895510", Offset = "0x1894310", VA = "0x181895510", Slot = "8")]
public void BlockUpdate(byte[] inBytes, int inOff, int len)
{
int num = this.bOut.Read(inBytes, inOff, len);
}
// Token: 0x0600BAF1 RID: 47857 RVA: 0x002A36FC File Offset: 0x002A18FC
[Token(Token = "0x600BAF1")]
[Address(RVA = "0x1FD3E60", Offset = "0x1FD2C60", VA = "0x181FD3E60", Slot = "9")]
public int DoFinal(byte[] outBytes, int outOff)
{
int num;
int num2;
do
{
num = 0;
num2 = Streams.WriteBufTo(this.bOut, outBytes, outOff);
MemoryStream memoryStream = this.bOut;
}
while (num != 0);
return num2;
}
// Token: 0x0600BAF2 RID: 47858 RVA: 0x002A372C File Offset: 0x002A192C
[Token(Token = "0x600BAF2")]
[Address(RVA = "0x1FD3F00", Offset = "0x1FD2D00", VA = "0x181FD3F00", Slot = "10")]
public void Reset()
{
((IDisposable)this.bOut).Dispose();
}
// Token: 0x0600BAF3 RID: 47859 RVA: 0x002A374C File Offset: 0x002A194C
[Token(Token = "0x600BAF3")]
[Address(RVA = "0x1FD3F30", Offset = "0x1FD2D30", VA = "0x181FD3F30")]
public NullDigest()
{
MemoryStream memoryStream = new MemoryStream();
this.bOut = memoryStream;
base..ctor();
}
// Token: 0x040076E3 RID: 30435
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40076E3")]
private readonly MemoryStream bOut;
}
}
@@ -0,0 +1,816 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CEF RID: 7407
[Token(Token = "0x2001CEF")]
public class RipeMD128Digest : GeneralDigest
{
// Token: 0x0600BAF4 RID: 47860 RVA: 0x002A376C File Offset: 0x002A196C
[Token(Token = "0x600BAF4")]
[Address(RVA = "0x1FD58B0", Offset = "0x1FD46B0", VA = "0x181FD58B0")]
public RipeMD128Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BAF5 RID: 47861 RVA: 0x002A3798 File Offset: 0x002A1998
[Token(Token = "0x600BAF5")]
[Address(RVA = "0x1FD5910", Offset = "0x1FD4710", VA = "0x181FD5910")]
public RipeMD128Digest(RipeMD128Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BAF6 RID: 47862 RVA: 0x002A37C4 File Offset: 0x002A19C4
[Token(Token = "0x600BAF6")]
[Address(RVA = "0x1FD3FC0", Offset = "0x1FD2DC0", VA = "0x181FD3FC0")]
private void CopyIn(RipeMD128Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001D17 RID: 7447
// (get) Token: 0x0600BAF7 RID: 47863 RVA: 0x002A3854 File Offset: 0x002A1A54
[Token(Token = "0x17001D17")]
public override string AlgorithmName
{
[Token(Token = "0x600BAF7")]
[Address(RVA = "0x1FD5980", Offset = "0x1FD4780", VA = "0x181FD5980", Slot = "17")]
get
{
return "RIPEMD128";
}
}
// Token: 0x0600BAF8 RID: 47864 RVA: 0x002A3868 File Offset: 0x002A1A68
[Token(Token = "0x600BAF8")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "18")]
public override int GetDigestSize()
{
return 16;
}
// Token: 0x0600BAF9 RID: 47865 RVA: 0x002A3878 File Offset: 0x002A1A78
[Token(Token = "0x600BAF9")]
[Address(RVA = "0x1B44340", Offset = "0x1B43140", VA = "0x181B44340", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x0600BAFA RID: 47866 RVA: 0x002A38C4 File Offset: 0x002A1AC4
[Token(Token = "0x600BAFA")]
[Address(RVA = "0x1B442C0", Offset = "0x1B430C0", VA = "0x181B442C0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x0600BAFB RID: 47867 RVA: 0x002A38FC File Offset: 0x002A1AFC
[Token(Token = "0x600BAFB")]
[Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600BAFC RID: 47868 RVA: 0x002A3914 File Offset: 0x002A1B14
[Token(Token = "0x600BAFC")]
[Address(RVA = "0x1B436A0", Offset = "0x1B424A0", VA = "0x181B436A0", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x0600BAFD RID: 47869 RVA: 0x002A398C File Offset: 0x002A1B8C
[Token(Token = "0x600BAFD")]
[Address(RVA = "0x1FD5820", Offset = "0x1FD4620", VA = "0x181FD5820", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x0600BAFE RID: 47870 RVA: 0x002A3A0C File Offset: 0x002A1C0C
[Token(Token = "0x600BAFE")]
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x0600BAFF RID: 47871 RVA: 0x002A3A1C File Offset: 0x002A1C1C
[Token(Token = "0x600BAFF")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB00 RID: 47872 RVA: 0x002A3A2C File Offset: 0x002A1C2C
[Token(Token = "0x600BB00")]
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB01 RID: 47873 RVA: 0x002A3A3C File Offset: 0x002A1C3C
[Token(Token = "0x600BB01")]
[Address(RVA = "0x1FD4150", Offset = "0x1FD2F50", VA = "0x181FD4150")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x0600BB02 RID: 47874 RVA: 0x002A3A4C File Offset: 0x002A1C4C
[Token(Token = "0x600BB02")]
[Address(RVA = "0x1FD41E0", Offset = "0x1FD2FE0", VA = "0x181FD41E0")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x0600BB03 RID: 47875 RVA: 0x002A3A5C File Offset: 0x002A1C5C
[Token(Token = "0x600BB03")]
[Address(RVA = "0x1FD40E0", Offset = "0x1FD2EE0", VA = "0x181FD40E0")]
private int F1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x0600BB04 RID: 47876 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB04")]
[Address(RVA = "0x1FD4110", Offset = "0x1FD2F10", VA = "0x181FD4110")]
private int F2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB05 RID: 47877 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB05")]
[Address(RVA = "0x1FD4160", Offset = "0x1FD2F60", VA = "0x181FD4160")]
private int F3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB06 RID: 47878 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB06")]
[Address(RVA = "0x1FD41A0", Offset = "0x1FD2FA0", VA = "0x181FD41A0")]
private int F4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB07 RID: 47879 RVA: 0x002A3A6C File Offset: 0x002A1C6C
[Token(Token = "0x600BB07")]
[Address(RVA = "0x1FD40E0", Offset = "0x1FD2EE0", VA = "0x181FD40E0")]
private int FF1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x0600BB08 RID: 47880 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB08")]
[Address(RVA = "0x1FD41F0", Offset = "0x1FD2FF0", VA = "0x181FD41F0")]
private int FF2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB09 RID: 47881 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB09")]
[Address(RVA = "0x1FD4230", Offset = "0x1FD3030", VA = "0x181FD4230")]
private int FF3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB0A RID: 47882 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB0A")]
[Address(RVA = "0x1FD4270", Offset = "0x1FD3070", VA = "0x181FD4270")]
private int FF4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB0B RID: 47883 RVA: 0x002A3A7C File Offset: 0x002A1C7C
[Token(Token = "0x600BB0B")]
[Address(RVA = "0x1FD42B0", Offset = "0x1FD30B0", VA = "0x181FD42B0", Slot = "16")]
internal override void ProcessBlock()
{
int[] x = this.X;
int num = this.H0;
int h = this.H1;
int num2 = this.H2;
int num3 = this.H3;
int num4 = x.Length;
num3 += num;
num = num3;
num3 = num2;
num3 += num3;
num3 = h;
num3 += num2;
num2 = num3;
num3 = num2;
num3 += h;
num2 += num;
num = num2;
num3 += num3;
num3 += num3;
num2 = num3;
num3 = num2;
num3 += num3;
num2 += num;
num = num2;
num3 += num3;
num3 += num3;
num2 = num3;
num3 = num2;
num3 += num3;
num2 += num;
int num5 = x[6];
num3 += num5;
num3 += num3;
num2 = num3;
int num6 = x[7];
num3 = num2;
num3 += num6;
num3 += num3;
int num7 = x[7];
num3 = num2;
num3 += num7;
num3 += num3;
num4 = num3;
num3 += num4;
num = num3;
num4 = num;
num3 += num4;
num3 += 1518500249;
num3 += num5;
int num8 = x[1];
num3 += num3;
num4 = num3;
num3 += num4;
num4 = num3;
num3 += num4;
num3 += 1518500249;
num3 += num3;
num = num3;
num4 = num;
num3 = num;
num4 += num7;
num3 += num4;
num3 = num;
num3 += 1518500249;
num3 += num8;
num3 += num3;
num4 = num3;
num3 += num4;
num4 = num3;
num3 += num4;
num = num3;
num4 = num;
num3 = num;
num3 += num4;
num2 = num3;
num3 = num;
num3 += 1518500249;
num3 += num3;
num3 = num2;
num4 = num3;
num3 += num4;
num4 = num3;
num4 += num6;
num3 += num4;
num = num3;
num4 = num;
num3 = num;
int num9 = x[5];
num4 += num9;
num3 += num4;
num3 = num;
num3 += 1518500249;
num3 += num3;
num4 = num3;
num += 1859775393;
num3 += 1859775393;
num3 += num3;
num2 = num3;
num3 = num4;
num3 += 1859775393;
num3 += num;
num = num3;
num3 = num2;
num4 += 1859775393;
num3 += num6;
num3 += num3;
num3 = num;
num2 += 1859775393;
num3 += num4;
num4 = num3;
num3 += num2;
num2 = num3;
num3 = num4;
num3 += num7;
num += 1859775393;
num3 += num;
num3 += 1859775393;
num = num3;
num3 = num2;
num4 += 1859775393;
num3 += num3;
num3 = num;
num2 += 1859775393;
num3 += num4;
num += 1859775393;
num3 += num2;
num4 = num3;
num3 += 1859775393;
num3 += num;
num2 = num3;
num3 = num4;
num3 += 1859775393;
num3 += num3;
num = num3;
num3 = num2;
num3 += num3;
int num10 = x[6];
num10 += 1859775393;
num3 = num;
num3 += num10;
num3 += num4;
num10 = num3;
num2 += 1859775393;
num += 1859775393;
num3 += num9;
num9 += -1894007588;
num3 += num2;
num3 = num10;
num2 = num3;
num3 += num;
num = num3;
num3 = num2;
num4 += num3;
num3 = num4;
num4 = num;
num3 += -1894007588;
num3 += num10;
num3 = num;
num3 += num4;
num3 += num9;
num3 += num;
num9 = num3;
num3 = num9;
num3 += -1894007588;
num4 = num3;
num3 += num3;
num3 += num4;
num2 = num3;
num3 = num9;
num3 += -1894007588;
num3 += num3;
num = num3;
num3 = num;
num4 = num2;
num3 += -1894007588;
num3 += num9;
num3 += num4;
num4 = num;
num10 = num3;
num3 = num;
num3 += num4;
num4 = num3;
num2 = num3;
num4 += num8;
num3 += num4;
num = num3;
num4 = num10;
num6 += -1894007588;
num3 = num;
num3 += num4;
num4 = num2;
num4 += num7;
num3 += num4;
num10 = num3;
num3 = num;
num4 = num3;
num3 += num6;
num3 += num2;
num6 = num3;
num8 = num6;
int num11 = this.H3;
num3 += num4;
num4 = num10;
num3 += num4;
num4 = num11;
num7 = num3;
num8 += -1894007588;
num8 += num10;
int num12 = this.H2;
int num13 = this.H0;
num13 += 1352829926;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = h;
num11 = num13;
num13 = h;
num13 += num4;
num4 = num2;
num12 = num13;
num13 = num12;
num13 += num4;
num4 = num11;
num10 = num13;
num13 = num11;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = num10;
num11 = num13;
num13 = num11;
num13 += num4;
num4 = num2;
num12 = num13;
num13 = num12;
num13 += num4;
num4 = num11;
num10 = num13;
num13 = num11;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = num10;
num11 = num13;
num13 = num11;
num13 += num4;
num4 = num2;
num12 = num13;
num13 = num12;
num13 += num4;
num4 = num11;
num10 = num13;
num13 = num11;
num13 += num4;
num4 = num12;
num2 = num13;
num13 = num12;
num13 += num4;
num4 = num10;
num11 = num13;
num13 = num11;
num13 += num4;
num12 = num13;
num13 = num12;
num2 += 1548603684;
num13 += 1352829926;
num13 += num10;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num12 += 1548603684;
num13 += num11;
num11 = num13;
num13 = num2;
num13 += num12;
num12 = num13;
num13 = num11;
num4 += 1548603684;
num2 += 1548603684;
num13 += num4;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num12 += 1548603684;
num13 += num11;
num11 = num13;
num13 = num2;
num4 += 1548603684;
num13 += num12;
num12 = num13;
num13 = num11;
num2 += 1548603684;
num13 += num4;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num13 += num11;
num11 = num13;
num13 = num2;
num12 += 1548603684;
num13 += num12;
num4 += 1548603684;
num12 = num13;
num13 = num11;
num2 += 1548603684;
num13 += num4;
num4 = num13;
num13 = num12;
num11 += 1548603684;
num13 += num2;
num2 = num13;
num13 = num4;
num12 += 1548603684;
num13 += num11;
num11 = num13;
num13 = num2;
num4 += 1548603684;
num13 += num12;
num12 = num13;
num13 = num11;
num13 += num4;
num10 = num13;
num13 = num12;
num4 = num10;
num13 += num4;
num3 = num13;
num13 = num10;
num4 = num3;
num13 += num4;
num2 = num13;
num4 = num2;
num13 = num2;
num13 += num4;
num11 = num13;
num13 = num2;
num4 = num11;
num13 += num4;
num12 = num13;
num13 = num11;
num4 = num12;
num13 += num4;
num10 = num13;
num13 = num12;
num4 = num10;
num13 += num4;
num3 = num13;
num4 = num3;
num13 = num3;
num13 += num4;
num2 = num13;
num13 = num3;
num13 += 1836072691;
num13 += num12;
num11 = num13;
num13 = num2;
num4 = num11;
num13 += num4;
num10 = num13;
num13 = num11;
num4 = num10;
num13 += num4;
num3 = num13;
num13 = num3;
num13 += 1836072691;
num13 += num2;
num9 = num13;
num13 = num3;
num13 += 1836072691;
num13 += num11;
num12 = num13;
num13 = num9;
num4 = num12;
num13 += num4;
num10 = num13;
num13 = num12;
num13 += 1836072691;
num13 += num3;
num2 = num13;
num13 = num2;
num13 += 1836072691;
num13 += num9;
num11 = num13;
num13 = num2;
num4 = num11;
num13 += num4;
num12 = num13;
num13 = num2;
num13 += num10;
num10 = num13;
num13 = num11;
num13 += num2;
num2 = num13;
num13 = num2;
num4 = num2;
num13 += num11;
num11 = num13;
num13 = num4;
num13 += num12;
num12 = num13;
num13 = num11;
num4 += num10;
num10 = num4;
num13 += num2;
num2 = num13;
num13 = num2;
num4 = num2;
num13 += num11;
num3 = num13;
num13 = num4;
num13 += num12;
num11 = num13;
num13 = num3;
num4 += num10;
num12 = num4;
num13 += num2;
num2 = num13;
num13 = num2;
num4 = num2;
num13 += num3;
num3 = num13;
num13 = num4;
num13 += num11;
num10 = num13;
num13 = num3;
num4 += num12;
num11 = num4;
num13 += num2;
num12 = num13;
num13 = num12;
num4 = num12;
num13 += num3;
num2 = num13;
num4 += num10;
int num14 = this.H2;
num14 += num3;
num14 += num11;
this.H1 = num14;
num14 = num4;
num14 += num6;
this.H2 = num14;
num14 = num8;
num14 += num2;
this.H3 = num14;
num14 += num7;
int num15 = 0;
this.H0 = num14;
this.xOff = num15;
if (num15 != x.Length)
{
num15++;
x[0] = num15;
}
}
// Token: 0x0600BB0C RID: 47884 RVA: 0x002A44DC File Offset: 0x002A26DC
[Token(Token = "0x600BB0C")]
[Address(RVA = "0x1FD4040", Offset = "0x1FD2E40", VA = "0x181FD4040", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB0C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD128Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD128Digest(var_0_06, newobj:RipeMD128Digest(RipeMD128Digest::.ctor, ldloc:RipeMD128Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD128Digest::X, ldloc:RipeMD128Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD128Digest::CopyIn, ldloc:RipeMD128Digest(var_0_06), ldloc:RipeMD128Digest(this))
}
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: 0x0600BB0D RID: 47885 RVA: 0x002A4508 File Offset: 0x002A2708
[Token(Token = "0x600BB0D")]
[Address(RVA = "0x1FD5780", Offset = "0x1FD4580", VA = "0x181FD5780", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040076E4 RID: 30436
[Token(Token = "0x40076E4")]
private const int DigestLength = 16;
// Token: 0x040076E5 RID: 30437
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076E5")]
private int H0;
// Token: 0x040076E6 RID: 30438
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40076E6")]
private int H1;
// Token: 0x040076E7 RID: 30439
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076E7")]
private int H2;
// Token: 0x040076E8 RID: 30440
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40076E8")]
private int H3;
// Token: 0x040076E9 RID: 30441
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076E9")]
private int[] X;
// Token: 0x040076EA RID: 30442
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076EA")]
private int xOff;
}
}
@@ -0,0 +1,755 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF0 RID: 7408
[Token(Token = "0x2001CF0")]
public class RipeMD160Digest : GeneralDigest
{
// Token: 0x0600BB0E RID: 47886 RVA: 0x002A4520 File Offset: 0x002A2720
[Token(Token = "0x600BB0E")]
[Address(RVA = "0x1FD8460", Offset = "0x1FD7260", VA = "0x181FD8460")]
public RipeMD160Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB0F RID: 47887 RVA: 0x002A454C File Offset: 0x002A274C
[Token(Token = "0x600BB0F")]
[Address(RVA = "0x1FD84C0", Offset = "0x1FD72C0", VA = "0x181FD84C0")]
public RipeMD160Digest(RipeMD160Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB10 RID: 47888 RVA: 0x002A4578 File Offset: 0x002A2778
[Token(Token = "0x600BB10")]
[Address(RVA = "0x1FD59B0", Offset = "0x1FD47B0", VA = "0x181FD59B0")]
private void CopyIn(RipeMD160Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int h5 = t.H4;
this.H4 = h5;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001D18 RID: 7448
// (get) Token: 0x0600BB11 RID: 47889 RVA: 0x002A4618 File Offset: 0x002A2818
[Token(Token = "0x17001D18")]
public override string AlgorithmName
{
[Token(Token = "0x600BB11")]
[Address(RVA = "0x1FD8530", Offset = "0x1FD7330", VA = "0x181FD8530", Slot = "17")]
get
{
return "RIPEMD160";
}
}
// Token: 0x0600BB12 RID: 47890 RVA: 0x002A462C File Offset: 0x002A282C
[Token(Token = "0x600BB12")]
[Address(RVA = "0x4B5D20", Offset = "0x4B4B20", VA = "0x1804B5D20", Slot = "18")]
public override int GetDigestSize()
{
return 20;
}
// Token: 0x0600BB13 RID: 47891 RVA: 0x002A463C File Offset: 0x002A283C
[Token(Token = "0x600BB13")]
[Address(RVA = "0x1FD8200", Offset = "0x1FD7000", VA = "0x181FD8200", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x0600BB14 RID: 47892 RVA: 0x002A4688 File Offset: 0x002A2888
[Token(Token = "0x600BB14")]
[Address(RVA = "0x1FD8180", Offset = "0x1FD6F80", VA = "0x181FD8180", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x0600BB15 RID: 47893 RVA: 0x002A46C0 File Offset: 0x002A28C0
[Token(Token = "0x600BB15")]
[Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600BB16 RID: 47894 RVA: 0x002A46D8 File Offset: 0x002A28D8
[Token(Token = "0x600BB16")]
[Address(RVA = "0x1FD5AD0", Offset = "0x1FD48D0", VA = "0x181FD5AD0", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
int h4 = this.H4;
num = h4;
output[0] = (byte)num;
num = h4;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x0600BB17 RID: 47895 RVA: 0x002A4770 File Offset: 0x002A2970
[Token(Token = "0x600BB17")]
[Address(RVA = "0x1FD83C0", Offset = "0x1FD71C0", VA = "0x181FD83C0", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.H4 = (int)((ulong)3285377520L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x0600BB18 RID: 47896 RVA: 0x002A4800 File Offset: 0x002A2A00
[Token(Token = "0x600BB18")]
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x0600BB19 RID: 47897 RVA: 0x002A4810 File Offset: 0x002A2A10
[Token(Token = "0x600BB19")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB1A RID: 47898 RVA: 0x002A4820 File Offset: 0x002A2A20
[Token(Token = "0x600BB1A")]
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB1B RID: 47899 RVA: 0x002A4830 File Offset: 0x002A2A30
[Token(Token = "0x600BB1B")]
[Address(RVA = "0x1FD4150", Offset = "0x1FD2F50", VA = "0x181FD4150")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x0600BB1C RID: 47900 RVA: 0x002A4840 File Offset: 0x002A2A40
[Token(Token = "0x600BB1C")]
[Address(RVA = "0x1FD41E0", Offset = "0x1FD2FE0", VA = "0x181FD41E0")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x0600BB1D RID: 47901 RVA: 0x002A4850 File Offset: 0x002A2A50
[Token(Token = "0x600BB1D")]
[Address(RVA = "0x1FD5DB0", Offset = "0x1FD4BB0", VA = "0x181FD5DB0")]
private int F5(int x, int y, int z)
{
return z;
}
// Token: 0x0600BB1E RID: 47902 RVA: 0x002A4860 File Offset: 0x002A2A60
[Token(Token = "0x600BB1E")]
[Address(RVA = "0x1FD5DC0", Offset = "0x1FD4BC0", VA = "0x181FD5DC0", Slot = "16")]
internal override void ProcessBlock()
{
/*
An exception occurred when decompiling this method (0600BB1E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD160Digest::ProcessBlock()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32[](var_0_06, ldfld:int32[](RipeMD160Digest::X, ldloc:RipeMD160Digest(this)))
stloc:int32(var_1_0D, ldfld:int32(RipeMD160Digest::H0, ldloc:RipeMD160Digest(this)))
stloc:int32(var_2_14, ldfld:int32(RipeMD160Digest::H1, ldloc:RipeMD160Digest(this)))
stloc:int32(var_3_1B, ldfld:int32(RipeMD160Digest::H2, ldloc:RipeMD160Digest(this)))
stloc:int32(var_4_22, ldfld:int32(RipeMD160Digest::H4, ldloc:RipeMD160Digest(this)))
stloc:int32(var_5_2A, ldfld:int32(RipeMD160Digest::H3, ldloc:RipeMD160Digest(this)))
stloc:int32(var_6_32, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_0_06)))
stloc:int32(var_5_38, add:int32(ldloc:int32(var_5_2A), ldloc:int32(var_1_0D)))
stloc:int32(var_1_3C, ldloc:int32(var_5_38))
stloc:int32(var_1_44, add:int32(ldloc:int32(var_1_3C), ldloc:int32(var_4_22)))
stloc:int32(var_5_46, ldloc:int32(var_2_14))
stloc:int32(var_5_4D, add:int32(ldloc:int32(var_5_46), ldloc:int32(var_4_22)))
stloc:int32(var_4_51, ldloc:int32(var_5_4D))
stloc:int32(var_5_54, ldloc:int32(var_2_14))
stloc:int32(var_4_5B, add:int32(ldloc:int32(var_4_51), ldloc:int32(var_5_54)))
stloc:int32(var_5_5F, ldloc:int32(var_4_5B))
stloc:int32(var_5_66, add:int32(ldloc:int32(var_5_5F), ldloc:int32(var_5_5F)))
stloc:int32(var_5_6C, add:int32(ldloc:int32(var_5_66), ldloc:int32(var_3_1B)))
stloc:int32(var_5_70, ldloc:int32(var_4_5B))
stloc:int32(var_5_76, add:int32(ldloc:int32(var_5_70), ldloc:int32(var_3_1B)))
stloc:int32(var_1_7A, ldloc:int32(var_5_76))
stloc:int32(var_1_7E, add:int32(ldloc:int32(var_1_7A), ldloc:int32(var_2_14)))
stloc:int32(var_5_81, ldloc:int32(var_4_5B))
stloc:int32(var_5_87, add:int32(ldloc:int32(var_5_81), ldloc:int32(var_2_14)))
stloc:int32(var_4_8B, ldloc:int32(var_5_87))
stloc:int32(var_4_91, add:int32(ldloc:int32(var_4_8B), ldloc:int32(var_1_7E)))
stloc:int32(var_5_97, add:int32(ldloc:int32(var_5_87), ldloc:int32(var_1_7E)))
stloc:int32(var_5_9E, add:int32(ldloc:int32(var_5_97), ldloc:int32(var_4_91)))
stloc:int32(var_5_A1, ldloc:int32(var_1_7E))
stloc:int32(var_5_A8, add:int32(ldloc:int32(var_5_A1), ldloc:int32(var_4_91)))
stloc:int32(var_1_AC, ldloc:int32(var_5_A8))
stloc:int32(var_1_B1, add:int32(ldloc:int32(var_1_AC), ldloc:int32(var_5_A8)))
stloc:int32(var_5_B3, ldloc:int32(var_1_B1))
stloc:int32(var_5_BA, add:int32(ldloc:int32(var_5_B3), ldloc:int32(var_5_B3)))
stloc:int32(var_4_BE, ldloc:int32(var_5_BA))
stloc:int32(var_4_C4, add:int32(ldloc:int32(var_4_BE), ldloc:int32(var_1_B1)))
stloc:int32(var_5_C7, ldloc:int32(var_1_B1))
stloc:int32(var_5_CD, add:int32(ldloc:int32(var_5_C7), ldloc:int32(var_1_B1)))
stloc:int32(var_5_D4, add:int32(ldloc:int32(var_5_CD), ldloc:int32(var_4_C4)))
stloc:int32(var_5_D7, ldloc:int32(var_1_B1))
stloc:int32(var_5_DE, add:int32(ldloc:int32(var_5_D7), ldloc:int32(var_4_C4)))
stloc:int32(var_1_E2, ldloc:int32(var_5_DE))
stloc:int32(var_1_E7, add:int32(ldloc:int32(var_1_E2), ldloc:int32(var_5_DE)))
stloc:int32(var_5_EA, ldloc:int32(var_4_C4))
stloc:int32(var_5_F1, add:int32(ldloc:int32(var_5_EA), ldloc:int32(var_5_EA)))
stloc:int32(var_4_F5, ldloc:int32(var_5_F1))
stloc:int32(var_4_FB, add:int32(ldloc:int32(var_4_F5), ldloc:int32(var_1_E7)))
stloc:int32(var_5_101, add:int32(ldloc:int32(var_5_F1), ldloc:int32(var_1_E7)))
stloc:int32(var_5_108, add:int32(ldloc:int32(var_5_101), ldloc:int32(var_4_FB)))
stloc:int32(var_5_10F, add:int32(ldloc:int32(var_5_108), ldloc:int32(var_4_FB)))
stloc:int32(var_1_113, ldloc:int32(var_5_10F))
stloc:int32(var_1_118, add:int32(ldloc:int32(var_1_113), ldloc:int32(var_5_10F)))
stloc:int32(var_5_11E, add:int32(ldloc:int32(var_5_10F), ldloc:int32(var_5_10F)))
stloc:int32(var_4_122, ldloc:int32(var_5_11E))
stloc:int32(var_4_128, add:int32(ldloc:int32(var_4_122), ldloc:int32(var_1_118)))
stloc:int32(var_7_131, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(7)))
stloc:int32(var_5_138, add:int32(ldloc:int32(var_5_11E), ldloc:int32(var_7_131)))
stloc:int32(var_5_13E, add:int32(ldloc:int32(var_5_138), ldloc:int32(var_1_118)))
stloc:int32(var_5_141, ldloc:int32(var_1_118))
stloc:int32(var_5_148, add:int32(ldloc:int32(var_5_141), ldloc:int32(var_4_128)))
stloc:int32(var_5_14F, add:int32(ldloc:int32(var_5_148), ldloc:int32(var_4_128)))
stloc:int32(var_6_153, ldloc:int32(var_5_14F))
stloc:int32(var_5_157, ldloc:int32(var_4_128))
stloc:int32(var_6_15E, add:int32(ldloc:int32(var_6_153), ldloc:int32(var_5_157)))
stloc:int32(var_1_167, add:int32(ldloc:int32(var_1_118), ldc.i4:int32(1352829926)))
stloc:int32(var_5_16C, add:int32(ldloc:int32(var_5_157), ldloc:int32(var_1_167)))
stloc:int32(var_4_170, ldloc:int32(var_5_16C))
stloc:int32(var_4_177, add:int32(ldloc:int32(var_4_170), ldloc:int32(var_4_170)))
stloc:int32(var_4_181, add:int32(ldloc:int32(var_4_177), ldc.i4:int32(1352829926)))
stloc:int32(var_5_184, ldloc:int32(var_3_1B))
stloc:int32(var_5_18B, add:int32(ldloc:int32(var_5_184), ldloc:int32(var_7_131)))
stloc:int32(var_7_18F, ldloc:int32(var_4_181))
stloc:int32(var_5_196, add:int32(ldloc:int32(var_5_18B), ldloc:int32(var_4_181)))
stloc:int32(var_4_19A, ldloc:int32(var_5_196))
stloc:int32(var_5_19D, ldloc:int32(var_2_14))
stloc:int32(var_4_1A4, add:int32(ldloc:int32(var_4_19A), ldloc:int32(var_5_19D)))
stloc:int32(var_5_1B1, add:int32(ldloc:int32(var_5_19D), ldc.i4:int32(1352829926)))
stloc:int32(var_5_1B8, add:int32(ldloc:int32(var_5_1B1), ldloc:int32(var_5_1B1)))
stloc:int32(var_1_1BC, ldloc:int32(var_5_1B8))
stloc:int32(var_5_1BF, ldloc:int32(var_7_18F))
stloc:int32(var_1_1C4, add:int32(ldloc:int32(var_1_1BC), ldloc:int32(var_3_1B)))
stloc:int32(var_5_1D0, add:int32(ldloc:int32(var_5_1BF), ldc.i4:int32(1352829926)))
stloc:int32(var_5_1D6, add:int32(ldloc:int32(var_5_1D0), ldloc:int32(var_3_1B)))
stloc:int32(var_4_1DA, ldloc:int32(var_5_1D6))
stloc:int32(var_5_1DD, ldloc:int32(var_1_1C4))
stloc:int32(var_4_1E3, add:int32(ldloc:int32(var_4_1DA), ldloc:int32(var_2_14)))
stloc:int32(var_5_1ED, add:int32(ldloc:int32(var_5_1DD), ldc.i4:int32(1352829926)))
stloc:int32(var_5_1F3, add:int32(ldloc:int32(var_5_1ED), ldloc:int32(var_2_14)))
stloc:int32(var_4_1F7, ldloc:int32(var_5_1F3))
stloc:int32(var_5_1FB, ldloc:int32(var_4_1F7))
stloc:int32(var_4_202, add:int32(ldloc:int32(var_4_1F7), ldloc:int32(var_7_18F)))
stloc:int32(var_7_20C, add:int32(ldloc:int32(var_7_18F), ldc.i4:int32(1352829926)))
stloc:int32(var_5_213, add:int32(ldloc:int32(var_5_1FB), ldloc:int32(var_7_20C)))
stloc:int32(var_7_217, ldloc:int32(var_4_202))
stloc:int32(var_1_21B, ldloc:int32(var_5_213))
stloc:int32(var_1_21F, add:int32(ldloc:int32(var_1_21B), ldloc:int32(var_1_21B)))
stloc:int32(var_5_226, ldloc:int32(var_4_202))
stloc:int32(var_1_22F, add:int32(ldloc:int32(var_1_21F), ldc.i4:int32(1352829926)))
stloc:int32(var_5_234, add:int32(ldloc:int32(var_5_226), ldloc:int32(var_1_22F)))
stloc:int32(var_4_238, ldloc:int32(var_5_234))
stloc:int32(var_4_23F, add:int32(ldloc:int32(var_4_238), ldloc:int32(var_4_238)))
stloc:int32(var_5_249, add:int32(ldloc:int32(var_5_234), ldc.i4:int32(1352829926)))
stloc:int32(var_5_250, add:int32(ldloc:int32(var_5_249), ldloc:int32(var_4_23F)))
stloc:int32(var_4_254, ldloc:int32(var_5_250))
stloc:int32(var_5_257, ldloc:int32(var_1_22F))
stloc:int32(var_4_25E, add:int32(ldloc:int32(var_4_254), ldloc:int32(var_7_217)))
stloc:int32(var_7_268, add:int32(ldloc:int32(var_7_217), ldc.i4:int32(1352829926)))
stloc:int32(var_5_26F, add:int32(ldloc:int32(var_5_257), ldloc:int32(var_7_268)))
stloc:int32(var_7_273, ldloc:int32(var_4_25E))
stloc:int32(var_1_277, ldloc:int32(var_5_26F))
stloc:int32(var_1_27C, add:int32(ldloc:int32(var_1_277), ldloc:int32(var_5_26F)))
stloc:int32(var_5_27F, ldloc:int32(var_7_273))
stloc:int32(var_5_289, add:int32(ldloc:int32(var_5_27F), ldc.i4:int32(1352829926)))
stloc:int32(var_5_290, add:int32(ldloc:int32(var_5_289), ldloc:int32(var_5_289)))
stloc:int32(var_4_294, ldloc:int32(var_5_290))
stloc:int32(var_5_298, ldloc:int32(var_4_294))
stloc:int32(var_4_29E, add:int32(ldloc:int32(var_4_294), ldloc:int32(var_1_27C)))
stloc:int32(var_1_2A7, add:int32(ldloc:int32(var_1_27C), ldc.i4:int32(1352829926)))
stloc:int32(var_5_2AC, add:int32(ldloc:int32(var_5_298), ldloc:int32(var_1_2A7)))
stloc:int32(var_4_2B0, ldloc:int32(var_5_2AC))
stloc:int32(var_4_2B7, add:int32(ldloc:int32(var_4_2B0), ldloc:int32(var_7_273)))
stloc:int32(var_5_2BA, ldloc:int32(var_1_2A7))
stloc:int32(var_7_2C4, add:int32(ldloc:int32(var_7_273), ldc.i4:int32(1352829926)))
stloc:int32(var_5_2CB, add:int32(ldloc:int32(var_5_2BA), ldloc:int32(var_7_2C4)))
stloc:int32(var_5_2CF, ldloc:int32(var_4_2B7))
stloc:int32(var_1_2D3, ldloc:int32(var_5_2CF))
stloc:int32(var_7_2D6, ldloc:int32(var_4_2B7))
stloc:int32(var_1_2DC, add:int32(ldloc:int32(var_1_2D3), ldloc:int32(var_4_2B7)))
stloc:int32(var_5_2DE, ldloc:int32(var_1_2DC))
stloc:int32(var_5_2E8, add:int32(ldloc:int32(var_5_2DE), ldc.i4:int32(1352829926)))
stloc:int32(var_5_2EF, add:int32(ldloc:int32(var_5_2E8), ldloc:int32(var_4_2B7)))
stloc:int32(var_4_2F3, ldloc:int32(var_5_2EF))
stloc:int32(var_5_2F7, ldloc:int32(var_7_2D6))
stloc:int32(var_4_2FD, add:int32(ldloc:int32(var_4_2F3), ldloc:int32(var_1_2DC)))
stloc:int32(var_5_307, add:int32(ldloc:int32(var_5_2F7), ldc.i4:int32(1352829926)))
stloc:int32(var_5_30D, add:int32(ldloc:int32(var_5_307), ldloc:int32(var_1_2DC)))
stloc:int32(var_4_311, ldloc:int32(var_5_30D))
stloc:int32(var_4_318, add:int32(ldloc:int32(var_4_311), ldloc:int32(var_5_30D)))
stloc:int32(var_5_322, add:int32(ldloc:int32(var_5_30D), ldc.i4:int32(1352829926)))
stloc:int32(var_5_329, add:int32(ldloc:int32(var_5_322), ldloc:int32(var_5_322)))
stloc:int32(var_2_32D, ldloc:int32(var_5_329))
stloc:int32(var_5_330, ldloc:int32(var_4_318))
stloc:int32(var_2_336, add:int32(ldloc:int32(var_2_32D), ldloc:int32(var_7_2D6)))
stloc:int32(var_7_33F, add:int32(ldloc:int32(var_7_2D6), ldc.i4:int32(1352829926)))
stloc:int32(var_5_346, add:int32(ldloc:int32(var_5_330), ldloc:int32(var_7_33F)))
stloc:int32(var_3_34A, ldloc:int32(var_5_346))
stloc:int32(var_5_34D, ldloc:int32(var_4_318))
stloc:int32(var_3_353, add:int32(ldloc:int32(var_3_34A), ldloc:int32(var_5_34D)))
stloc:int32(var_4_35A, ldloc:int32(var_6_15E))
stloc:int32(var_5_367, add:int32(ldloc:int32(var_5_34D), ldc.i4:int32(1518500249)))
stloc:int32(var_5_36E, add:int32(ldloc:int32(var_5_367), ldloc:int32(var_4_35A)))
stloc:int32(var_1_372, ldloc:int32(var_5_36E))
stloc:int32(var_1_377, add:int32(ldloc:int32(var_1_372), ldloc:int32(var_5_36E)))
stloc:int32(var_4_379, ldloc:int32(var_1_377))
stloc:int32(var_5_37C, ldloc:int32(var_1_377))
stloc:int32(var_5_383, add:int32(ldloc:int32(var_5_37C), ldloc:int32(var_4_379)))
stloc:int32(var_3_386, ldloc:int32(var_1_377))
stloc:int32(var_5_388, ldloc:int32(var_1_377))
stloc:int32(var_5_38F, add:int32(ldloc:int32(var_5_388), ldloc:int32(var_5_388)))
stloc:int32(var_4_393, ldloc:int32(var_5_38F))
stloc:int32(var_5_39A, add:int32(ldloc:int32(var_5_38F), ldloc:int32(var_4_393)))
stloc:int32(var_6_39E, ldloc:int32(var_5_39A))
stloc:int32(var_6_3A4, add:int32(ldloc:int32(var_6_39E), ldloc:int32(var_1_377)))
stloc:int32(var_4_3A8, ldloc:int32(var_6_3A4))
stloc:int32(var_5_3AF, add:int32(ldloc:int32(var_5_39A), ldloc:int32(var_4_3A8)))
stloc:int32(var_1_3B3, ldloc:int32(var_5_3AF))
stloc:int32(var_5_3B6, ldloc:int32(var_6_3A4))
stloc:int32(var_1_3BC, add:int32(ldloc:int32(var_1_3B3), ldloc:int32(var_4_3A8)))
stloc:int32(var_4_3BE, ldloc:int32(var_1_3BC))
stloc:int32(var_5_3C5, add:int32(ldloc:int32(var_5_3B6), ldloc:int32(var_4_3BE)))
stloc:int32(var_1_3C9, ldloc:int32(var_5_3C5))
stloc:int32(var_1_3D1, add:int32(ldloc:int32(var_1_3C9), ldloc:int32(var_3_386)))
stloc:int32(var_5_3D6, ldloc:int32(var_1_3D1))
stloc:int32(var_5_3E3, add:int32(ldloc:int32(var_5_3D6), ldc.i4:int32(1518500249)))
stloc:int32(var_5_3E9, add:int32(ldloc:int32(var_5_3E3), ldloc:int32(var_3_386)))
stloc:int32(var_5_3F0, add:int32(ldloc:int32(var_5_3E9), ldloc:int32(var_5_3E9)))
stloc:int32(var_4_3F4, ldloc:int32(var_5_3F0))
stloc:int32(var_5_3F7, ldloc:int32(var_1_3D1))
stloc:int32(var_5_3FE, add:int32(ldloc:int32(var_5_3F7), ldloc:int32(var_4_3F4)))
stloc:int32(var_6_402, ldloc:int32(var_5_3FE))
stloc:int32(var_6_409, add:int32(ldloc:int32(var_6_402), ldloc:int32(var_5_3FE)))
stloc:int32(var_4_40D, ldloc:int32(var_6_409))
stloc:int32(var_3_411, ldloc:int32(var_6_409))
stloc:int32(var_5_417, add:int32(ldloc:int32(var_5_3FE), ldloc:int32(var_4_40D)))
stloc:int32(var_1_41B, ldloc:int32(var_5_417))
stloc:int32(var_5_41E, ldloc:int32(var_6_409))
stloc:int32(var_1_424, add:int32(ldloc:int32(var_1_41B), ldloc:int32(var_4_40D)))
stloc:int32(var_4_426, ldloc:int32(var_1_424))
stloc:int32(var_5_430, add:int32(ldloc:int32(var_5_41E), ldc.i4:int32(1518500249)))
stloc:int32(var_5_437, add:int32(ldloc:int32(var_5_430), ldloc:int32(var_4_426)))
stloc:int32(var_1_43B, ldloc:int32(var_5_437))
stloc:int32(var_1_440, add:int32(ldloc:int32(var_1_43B), ldloc:int32(var_5_437)))
stloc:int32(var_5_445, ldloc:int32(var_1_440))
stloc:int32(var_2_448, ldloc:int32(var_1_440))
stloc:int32(var_5_451, add:int32(ldloc:int32(var_5_445), ldc.i4:int32(1518500249)))
stloc:int32(var_5_458, add:int32(ldloc:int32(var_5_451), ldloc:int32(var_5_451)))
stloc:int32(var_5_45E, ldloc:int32(var_1_440))
stloc:int32(var_5_465, add:int32(ldloc:int32(var_5_45E), ldloc:int32(var_5_45E)))
stloc:int32(var_5_473, add:int32(ldloc:int32(var_5_465), ldc.i4:int32(1518500249)))
stloc:int32(var_5_47A, add:int32(ldloc:int32(var_5_473), ldloc:int32(var_5_473)))
stloc:int32(var_6_47E, ldloc:int32(var_5_47A))
stloc:int32(var_6_484, add:int32(ldloc:int32(var_6_47E), ldloc:int32(var_3_411)))
stloc:int32(var_5_48C, ldloc:int32(var_6_484))
stloc:int32(var_5_496, add:int32(ldloc:int32(var_5_48C), ldc.i4:int32(1518500249)))
stloc:int32(var_5_49A, ldloc:int32(var_6_484))
stloc:int32(var_5_4A0, add:int32(ldloc:int32(var_5_49A), ldloc:int32(var_3_411)))
stloc:int32(var_1_4A4, ldloc:int32(var_5_4A0))
stloc:int32(var_5_4A7, ldloc:int32(var_6_484))
stloc:int32(var_1_4AC, add:int32(ldloc:int32(var_1_4A4), ldloc:int32(var_2_448)))
stloc:int32(var_4_4AE, ldloc:int32(var_1_4AC))
stloc:int32(var_5_4B8, add:int32(ldloc:int32(var_5_4A7), ldc.i4:int32(1518500249)))
stloc:int32(var_5_4BE, add:int32(ldloc:int32(var_5_4B8), ldloc:int32(var_2_448)))
stloc:int32(var_1_4C2, ldloc:int32(var_5_4BE))
stloc:int32(var_5_4C4, ldloc:int32(var_1_4C2))
stloc:int32(var_1_4CA, add:int32(ldloc:int32(var_1_4C2), ldloc:int32(var_4_4AE)))
stloc:int32(var_4_4CC, ldloc:int32(var_1_4CA))
stloc:int32(var_5_4D3, add:int32(ldloc:int32(var_5_4C4), ldloc:int32(var_4_4CC)))
stloc:int32(var_5_4DD, add:int32(ldloc:int32(var_5_4D3), ldloc:int32(var_5_4D3)))
stloc:int32(var_5_4E0, ldloc:int32(var_1_4CA))
stloc:int32(var_5_4EE, add:int32(ldloc:int32(var_5_4E0), ldc.i4:int32(1518500249)))
stloc:int32(var_5_4F5, add:int32(ldloc:int32(var_5_4EE), ldloc:int32(var_5_4EE)))
stloc:int32(var_6_4F9, ldloc:int32(var_5_4F5))
stloc:int32(var_5_4FC, ldloc:int32(var_1_4CA))
stloc:int32(var_6_503, add:int32(ldloc:int32(var_6_4F9), ldloc:int32(var_5_4FC)))
stloc:int32(var_3_507, ldloc:int32(var_6_503))
stloc:int32(var_5_513, add:int32(ldloc:int32(var_5_4FC), ldc.i4:int32(1518500249)))
stloc:int32(var_5_51A, add:int32(ldloc:int32(var_5_513), ldloc:int32(var_5_513)))
stloc:int32(var_4_51E, ldloc:int32(var_5_51A))
stloc:int32(var_4_525, add:int32(ldloc:int32(var_4_51E), ldloc:int32(var_4_51E)))
stloc:int32(var_5_52C, ldloc:int32(var_2_448))
stloc:int32(var_5_536, add:int32(ldloc:int32(var_5_52C), ldc.i4:int32(1548603684)))
stloc:int32(var_4_53A, ldloc:int32(var_5_536))
stloc:int32(var_5_541, add:int32(ldloc:int32(var_5_536), ldloc:int32(var_5_536)))
stloc:int32(var_1_545, ldloc:int32(var_5_541))
stloc:int32(var_1_54A, add:int32(ldloc:int32(var_1_545), ldloc:int32(var_5_541)))
stloc:int32(var_5_54C, ldloc:int32(var_1_54A))
stloc:int32(var_5_553, add:int32(ldloc:int32(var_5_54C), ldloc:int32(var_4_53A)))
stloc:int32(var_5_556, ldloc:int32(var_1_54A))
stloc:int32(var_5_55D, add:int32(ldloc:int32(var_5_556), ldloc:int32(var_5_556)))
stloc:int32(var_5_564, ldloc:int32(var_3_507))
stloc:int32(var_4_568, ldloc:int32(var_5_564))
stloc:int32(var_5_56F, add:int32(ldloc:int32(var_5_564), ldloc:int32(var_4_568)))
stloc:int32(var_4_573, ldloc:int32(var_5_56F))
stloc:int32(var_5_57A, add:int32(ldloc:int32(var_5_56F), ldloc:int32(var_5_56F)))
stloc:int32(var_5_581, add:int32(ldloc:int32(var_5_57A), ldloc:int32(var_4_573)))
stloc:int32(var_5_585, ldloc:int32(var_4_573))
stloc:int32(var_5_58C, add:int32(ldloc:int32(var_5_585), ldloc:int32(var_5_585)))
stloc:int32(var_5_593, add:int32(ldloc:int32(var_5_58C), ldloc:int32(var_4_573)))
stloc:int32(var_1_597, ldloc:int32(var_5_593))
stloc:int32(var_1_59C, add:int32(ldloc:int32(var_1_597), ldloc:int32(var_5_593)))
stloc:int32(var_5_5A9, add:int32(ldloc:int32(var_5_593), ldc.i4:int32(1548603684)))
stloc:int32(var_4_5AD, ldloc:int32(var_5_5A9))
stloc:int32(var_5_5B4, add:int32(ldloc:int32(var_5_5A9), ldloc:int32(var_5_5A9)))
stloc:int32(var_5_5BB, add:int32(ldloc:int32(var_5_5B4), ldloc:int32(var_4_5AD)))
stloc:int32(var_4_5BE, ldloc:int32(var_1_59C))
stloc:int32(var_5_5C5, add:int32(ldloc:int32(var_5_5BB), ldloc:int32(var_4_5BE)))
stloc:int32(var_5_5CC, add:int32(ldloc:int32(var_5_5C5), ldloc:int32(var_5_5C5)))
stloc:int32(var_5_5D3, add:int32(ldloc:int32(var_5_5CC), ldloc:int32(var_4_5BE)))
stloc:int32(var_1_5D7, ldloc:int32(var_5_5D3))
stloc:int32(var_4_5DA, ldloc:int32(var_5_5D3))
stloc:int32(var_1_5E0, add:int32(ldloc:int32(var_1_5D7), ldloc:int32(var_5_5D3)))
stloc:int32(var_5_5E6, add:int32(ldloc:int32(var_5_5D3), ldloc:int32(var_4_5DA)))
stloc:int32(var_4_5EA, ldloc:int32(var_5_5E6))
stloc:int32(var_5_5F1, add:int32(ldloc:int32(var_5_5E6), ldloc:int32(var_4_5EA)))
stloc:int32(var_4_5F4, ldloc:int32(var_1_5E0))
stloc:int32(var_5_5FB, add:int32(ldloc:int32(var_5_5F1), ldloc:int32(var_4_5F4)))
stloc:int32(var_5_602, add:int32(ldloc:int32(var_5_5FB), ldloc:int32(var_5_5FB)))
stloc:int32(var_5_606, ldloc:int32(var_4_5F4))
stloc:int32(var_5_60D, add:int32(ldloc:int32(var_5_606), ldloc:int32(var_4_5F4)))
stloc:int32(var_1_611, ldloc:int32(var_5_60D))
stloc:int32(var_1_616, add:int32(ldloc:int32(var_1_611), ldloc:int32(var_5_60D)))
stloc:int32(var_5_618, ldloc:int32(var_1_616))
stloc:int32(var_4_61C, ldloc:int32(var_5_618))
stloc:int32(var_5_623, add:int32(ldloc:int32(var_5_618), ldloc:int32(var_4_61C)))
stloc:int32(var_4_627, ldloc:int32(var_5_623))
stloc:int32(var_5_62E, add:int32(ldloc:int32(var_5_623), ldloc:int32(var_4_627)))
stloc:int32(var_4_631, ldloc:int32(var_1_616))
stloc:int32(var_5_638, add:int32(ldloc:int32(var_5_62E), ldloc:int32(var_4_631)))
stloc:int32(var_5_63F, add:int32(ldloc:int32(var_5_638), ldloc:int32(var_5_638)))
stloc:int32(var_5_643, ldloc:int32(var_4_631))
stloc:int32(var_3_647, ldloc:int32(var_5_643))
stloc:int32(var_5_64D, add:int32(ldloc:int32(var_5_643), ldloc:int32(var_4_631)))
stloc:int32(var_1_651, ldloc:int32(var_5_64D))
stloc:int32(var_4_654, ldloc:int32(var_5_64D))
stloc:int32(var_1_65A, add:int32(ldloc:int32(var_1_651), ldloc:int32(var_5_64D)))
stloc:int32(var_5_663, add:int32(ldloc:int32(var_5_64D), ldc.i4:int32(1548603684)))
stloc:int32(var_5_66A, add:int32(ldloc:int32(var_5_663), ldloc:int32(var_5_663)))
stloc:int32(var_5_671, add:int32(ldloc:int32(var_5_66A), ldloc:int32(var_4_654)))
stloc:int32(var_4_674, ldloc:int32(var_3_647))
stloc:int32(var_5_67D, ldloc:int32(var_3_647))
stloc:int32(var_5_684, add:int32(ldloc:int32(var_5_67D), ldloc:int32(var_4_674)))
stloc:int32(var_2_688, ldloc:int32(var_5_684))
stloc:int32(var_4_691, add:int32(ldloc:int32(var_4_674), ldc.i4:int32(1859775393)))
stloc:int32(var_2_697, add:int32(ldloc:int32(var_2_688), ldloc:int32(var_5_684)))
stloc:int32(var_4_69C, add:int32(ldloc:int32(var_4_691), ldloc:int32(var_3_647)))
stloc:int32(var_5_6A0, ldloc:int32(var_6_503))
stloc:int32(var_4_6A7, add:int32(ldloc:int32(var_4_69C), ldloc:int32(var_5_6A0)))
stloc:int32(var_5_6B1, add:int32(ldloc:int32(var_5_6A0), ldc.i4:int32(1859775393)))
stloc:int32(var_6_6B5, ldloc:int32(var_4_6A7))
stloc:int32(var_6_6BC, add:int32(ldloc:int32(var_6_6B5), ldloc:int32(var_5_6B1)))
stloc:int32(var_5_6C0, ldloc:int32(var_6_6BC))
stloc:int32(var_6_6C4, ldloc:int32(var_4_6A7))
stloc:int32(var_5_6CB, add:int32(ldloc:int32(var_5_6C0), ldloc:int32(var_5_6C0)))
stloc:int32(var_5_6D5, add:int32(ldloc:int32(var_5_6CB), ldc.i4:int32(1859775393)))
stloc:int32(var_6_6DC, add:int32(ldloc:int32(var_6_6C4), ldloc:int32(var_5_6D5)))
stloc:int32(var_5_6E0, ldloc:int32(var_4_6A7))
stloc:int32(var_4_6E4, ldloc:int32(var_6_6DC))
stloc:int32(var_4_6EB, add:int32(ldloc:int32(var_4_6E4), ldloc:int32(var_5_6E0)))
stloc:int32(var_5_6F5, add:int32(ldloc:int32(var_5_6E0), ldc.i4:int32(1859775393)))
stloc:int32(var_6_6F9, ldloc:int32(var_5_6F5))
stloc:int32(var_6_700, add:int32(ldloc:int32(var_6_6F9), ldloc:int32(var_5_6F5)))
stloc:int32(var_4_704, ldloc:int32(var_6_700))
stloc:int32(var_4_70B, add:int32(ldloc:int32(var_4_704), ldloc:int32(var_5_6F5)))
stloc:int32(var_6_70F, ldloc:int32(var_4_70B))
stloc:int32(var_5_719, add:int32(ldloc:int32(var_5_6F5), ldc.i4:int32(1859775393)))
stloc:int32(var_6_720, add:int32(ldloc:int32(var_6_70F), ldloc:int32(var_5_719)))
stloc:int32(var_5_728, ldloc:int32(var_6_720))
stloc:int32(var_5_72F, add:int32(ldloc:int32(var_5_728), ldloc:int32(var_5_728)))
stloc:int32(var_6_733, ldloc:int32(var_4_70B))
stloc:int32(var_5_73D, add:int32(ldloc:int32(var_5_72F), ldc.i4:int32(1859775393)))
stloc:int32(var_6_744, add:int32(ldloc:int32(var_6_733), ldloc:int32(var_5_73D)))
stloc:int32(var_5_748, ldloc:int32(var_4_70B))
stloc:int32(var_4_74C, ldloc:int32(var_6_744))
stloc:int32(var_4_753, add:int32(ldloc:int32(var_4_74C), ldloc:int32(var_5_748)))
stloc:int32(var_6_757, ldloc:int32(var_5_748))
stloc:int32(var_5_75B, ldloc:int32(var_4_753))
stloc:int32(var_6_765, add:int32(ldloc:int32(var_6_757), ldc.i4:int32(1859775393)))
stloc:int32(var_6_76C, add:int32(ldloc:int32(var_6_765), ldloc:int32(var_5_75B)))
stloc:int32(var_4_770, ldloc:int32(var_6_76C))
stloc:int32(var_6_774, ldloc:int32(var_4_770))
stloc:int32(var_4_77B, add:int32(ldloc:int32(var_4_770), ldloc:int32(var_5_75B)))
stloc:int32(var_3_77F, ldloc:int32(var_4_77B))
stloc:int32(var_6_788, add:int32(ldloc:int32(var_6_774), ldc.i4:int32(1859775393)))
stloc:int32(var_6_78F, add:int32(ldloc:int32(var_6_788), ldloc:int32(var_5_75B)))
stloc:int32(var_5_793, ldloc:int32(var_6_78F))
stloc:int32(var_6_797, ldloc:int32(var_4_77B))
stloc:int32(var_5_79E, add:int32(ldloc:int32(var_5_793), ldloc:int32(var_5_793)))
stloc:int32(var_6_7A8, add:int32(ldloc:int32(var_6_797), ldc.i4:int32(1859775393)))
stloc:int32(var_6_7AF, add:int32(ldloc:int32(var_6_7A8), ldloc:int32(var_5_79E)))
stloc:int32(var_5_7B3, ldloc:int32(var_6_7AF))
stloc:int32(var_5_7BA, add:int32(ldloc:int32(var_5_7B3), ldloc:int32(var_5_7B3)))
stloc:int32(var_6_7BE, ldloc:int32(var_5_7BA))
stloc:int32(var_5_7C8, add:int32(ldloc:int32(var_5_7BA), ldc.i4:int32(1859775393)))
stloc:int32(var_6_7CF, add:int32(ldloc:int32(var_6_7BE), ldloc:int32(var_5_7C8)))
stloc:int32(var_5_7D3, ldloc:int32(var_6_7CF))
stloc:int32(var_5_7DA, add:int32(ldloc:int32(var_5_7D3), ldloc:int32(var_5_7D3)))
stloc:int32(var_6_7DE, ldloc:int32(var_5_7DA))
stloc:int32(var_6_7E8, add:int32(ldloc:int32(var_6_7DE), ldc.i4:int32(1859775393)))
stloc:int32(var_6_7EF, add:int32(ldloc:int32(var_6_7E8), ldloc:int32(var_5_7DA)))
stloc:int32(var_4_7F3, ldloc:int32(var_6_7EF))
stloc:int32(var_6_7F7, ldloc:int32(var_5_7DA))
stloc:int32(var_4_7FD, add:int32(ldloc:int32(var_4_7F3), ldloc:int32(var_3_77F)))
stloc:int32(var_8_806, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(6)))
stloc:int32(var_8_810, add:int32(ldloc:int32(var_8_806), ldc.i4:int32(1859775393)))
stloc:int32(var_6_81A, add:int32(ldloc:int32(var_6_7F7), ldc.i4:int32(1859775393)))
stloc:int32(var_6_820, add:int32(ldloc:int32(var_6_81A), ldloc:int32(var_3_77F)))
stloc:int32(var_4_824, ldloc:int32(var_6_820))
stloc:int32(var_6_828, ldloc:int32(var_4_824))
stloc:int32(var_4_82F, add:int32(ldloc:int32(var_4_824), ldloc:int32(var_5_7DA)))
stloc:int32(var_6_836, add:int32(ldloc:int32(var_6_828), ldloc:int32(var_8_810)))
stloc:int32(var_8_83A, ldloc:int32(var_4_82F))
stloc:int32(var_6_841, add:int32(ldloc:int32(var_6_836), ldloc:int32(var_5_7DA)))
stloc:int32(var_5_845, ldloc:int32(var_6_841))
stloc:int32(var_6_849, ldloc:int32(var_4_82F))
stloc:int32(var_5_850, add:int32(ldloc:int32(var_5_845), ldloc:int32(var_5_845)))
stloc:int32(var_5_85A, add:int32(ldloc:int32(var_5_850), ldc.i4:int32(1859775393)))
stloc:int32(var_6_861, add:int32(ldloc:int32(var_6_849), ldloc:int32(var_5_85A)))
stloc:int32(var_5_865, ldloc:int32(var_4_82F))
stloc:int32(var_4_869, ldloc:int32(var_6_861))
stloc:int32(var_4_870, add:int32(ldloc:int32(var_4_869), ldloc:int32(var_5_865)))
stloc:int32(var_9_879, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_0_06), ldc.i4:int32(6)))
stloc:int32(var_6_87D, ldloc:int32(var_5_865))
stloc:int32(var_4_881, ldloc:int32(var_5_865))
stloc:int32(var_6_88B, add:int32(ldloc:int32(var_6_87D), ldc.i4:int32(1859775393)))
stloc:int32(var_6_892, add:int32(ldloc:int32(var_6_88B), ldloc:int32(var_5_865)))
stloc:int32(var_3_896, ldloc:int32(var_6_892))
stloc:int32(var_6_899, ldloc:int32(var_4_881))
stloc:int32(var_3_89F, add:int32(ldloc:int32(var_3_896), ldloc:int32(var_8_83A)))
stloc:int32(var_6_8A8, add:int32(ldloc:int32(var_6_899), ldc.i4:int32(1859775393)))
stloc:int32(var_6_8AF, add:int32(ldloc:int32(var_6_8A8), ldloc:int32(var_9_879)))
stloc:int32(var_6_8B6, add:int32(ldloc:int32(var_6_8AF), ldloc:int32(var_8_83A)))
stloc:int32(var_4_8BA, ldloc:int32(var_6_8B6))
stloc:int32(var_4_8C5, add:int32(ldloc:int32(var_4_8BA), ldloc:int32(var_5_865)))
stloc:int32(var_5_8C8, ldloc:int32(var_2_697))
stloc:int32(var_5_8D2, add:int32(ldloc:int32(var_5_8C8), ldc.i4:int32(1836072691)))
stloc:int32(var_6_8D6, ldloc:int32(var_5_8D2))
stloc:int32(var_6_8DD, add:int32(ldloc:int32(var_6_8D6), ldloc:int32(var_5_8D2)))
stloc:int32(var_5_8E1, ldloc:int32(var_6_8DD))
stloc:int32(var_6_8E4, ldloc:int32(var_2_697))
stloc:int32(var_5_8EA, add:int32(ldloc:int32(var_5_8E1), ldloc:int32(var_3_89F)))
stloc:int32(var_6_8F4, add:int32(ldloc:int32(var_6_8E4), ldc.i4:int32(1836072691)))
stloc:int32(var_6_8FA, add:int32(ldloc:int32(var_6_8F4), ldloc:int32(var_3_89F)))
stloc:int32(var_5_8FE, ldloc:int32(var_6_8FA))
stloc:int32(var_6_902, ldloc:int32(var_5_8FE))
stloc:int32(var_5_908, add:int32(ldloc:int32(var_5_8FE), ldloc:int32(var_2_697)))
stloc:int32(var_6_912, add:int32(ldloc:int32(var_6_902), ldc.i4:int32(1836072691)))
stloc:int32(var_6_918, add:int32(ldloc:int32(var_6_912), ldloc:int32(var_2_697)))
stloc:int32(var_4_91C, ldloc:int32(var_6_918))
stloc:int32(var_8_920, ldloc:int32(var_5_908))
stloc:int32(var_4_927, add:int32(ldloc:int32(var_4_91C), ldloc:int32(var_5_908)))
stloc:int32(var_6_92B, ldloc:int32(var_5_908))
stloc:int32(var_5_935, add:int32(ldloc:int32(var_5_908), ldc.i4:int32(1836072691)))
stloc:int32(var_6_93C, add:int32(ldloc:int32(var_6_92B), ldloc:int32(var_5_935)))
stloc:int32(var_5_940, ldloc:int32(var_6_93C))
stloc:int32(var_5_947, add:int32(ldloc:int32(var_5_940), ldloc:int32(var_5_940)))
stloc:int32(var_6_94B, ldloc:int32(var_4_927))
stloc:int32(var_5_955, add:int32(ldloc:int32(var_5_947), ldc.i4:int32(1836072691)))
stloc:int32(var_6_95C, add:int32(ldloc:int32(var_6_94B), ldloc:int32(var_5_955)))
stloc:int32(var_5_964, ldloc:int32(var_6_95C))
stloc:int32(var_5_96B, add:int32(ldloc:int32(var_5_964), ldloc:int32(var_8_920)))
stloc:int32(var_6_96F, ldloc:int32(var_5_96B))
stloc:int32(var_8_979, add:int32(ldloc:int32(var_8_920), ldc.i4:int32(1836072691)))
stloc:int32(var_6_980, add:int32(ldloc:int32(var_6_96F), ldloc:int32(var_8_979)))
stloc:int32(var_8_984, ldloc:int32(var_5_96B))
stloc:int32(var_4_988, ldloc:int32(var_6_980))
stloc:int32(var_6_98C, ldloc:int32(var_5_96B))
stloc:int32(var_4_993, add:int32(ldloc:int32(var_4_988), ldloc:int32(var_5_96B)))
stloc:int32(var_5_99D, add:int32(ldloc:int32(var_5_96B), ldc.i4:int32(1836072691)))
stloc:int32(var_6_9A4, add:int32(ldloc:int32(var_6_98C), ldloc:int32(var_5_99D)))
stloc:int32(var_5_9A8, ldloc:int32(var_6_9A4))
stloc:int32(var_6_9AC, ldloc:int32(var_4_993))
stloc:int32(var_5_9B3, add:int32(ldloc:int32(var_5_9A8), ldloc:int32(var_5_9A8)))
stloc:int32(var_6_9BD, add:int32(ldloc:int32(var_6_9AC), ldc.i4:int32(1836072691)))
stloc:int32(var_6_9C4, add:int32(ldloc:int32(var_6_9BD), ldloc:int32(var_5_9B3)))
stloc:int32(var_5_9C8, ldloc:int32(var_6_9C4))
stloc:int32(var_5_9CF, add:int32(ldloc:int32(var_5_9C8), ldloc:int32(var_8_984)))
stloc:int32(var_5_9D3, ldloc:int32(var_4_993))
stloc:int32(var_6_9D7, ldloc:int32(var_5_9D3))
stloc:int32(var_8_9E1, add:int32(ldloc:int32(var_8_984), ldc.i4:int32(1836072691)))
stloc:int32(var_6_9E8, add:int32(ldloc:int32(var_6_9D7), ldloc:int32(var_8_9E1)))
stloc:int32(var_9_9FA, add:int32(ldloc:int32(var_9_879), ldc.i4:int32(1836072691)))
}
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: 0x0600BB1F RID: 47903 RVA: 0x002A5268 File Offset: 0x002A3468
[Token(Token = "0x600BB1F")]
[Address(RVA = "0x1FD5A30", Offset = "0x1FD4830", VA = "0x181FD5A30", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB1F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD160Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD160Digest(var_0_06, newobj:RipeMD160Digest(RipeMD160Digest::.ctor, ldloc:RipeMD160Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD160Digest::X, ldloc:RipeMD160Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD160Digest::CopyIn, ldloc:RipeMD160Digest(var_0_06), ldloc:RipeMD160Digest(this))
}
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: 0x0600BB20 RID: 47904 RVA: 0x002A5294 File Offset: 0x002A3494
[Token(Token = "0x600BB20")]
[Address(RVA = "0x1FD8320", Offset = "0x1FD7120", VA = "0x181FD8320", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040076EB RID: 30443
[Token(Token = "0x40076EB")]
private const int DigestLength = 20;
// Token: 0x040076EC RID: 30444
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076EC")]
private int H0;
// Token: 0x040076ED RID: 30445
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40076ED")]
private int H1;
// Token: 0x040076EE RID: 30446
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076EE")]
private int H2;
// Token: 0x040076EF RID: 30447
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40076EF")]
private int H3;
// Token: 0x040076F0 RID: 30448
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076F0")]
private int H4;
// Token: 0x040076F1 RID: 30449
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076F1")]
private int[] X;
// Token: 0x040076F2 RID: 30450
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40076F2")]
private int xOff;
}
}
@@ -0,0 +1,872 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF1 RID: 7409
[Token(Token = "0x2001CF1")]
public class RipeMD256Digest : GeneralDigest
{
// Token: 0x17001D19 RID: 7449
// (get) Token: 0x0600BB21 RID: 47905 RVA: 0x002A52AC File Offset: 0x002A34AC
[Token(Token = "0x17001D19")]
public override string AlgorithmName
{
[Token(Token = "0x600BB21")]
[Address(RVA = "0x1FDA3E0", Offset = "0x1FD91E0", VA = "0x181FDA3E0", Slot = "17")]
get
{
return "RIPEMD256";
}
}
// Token: 0x0600BB22 RID: 47906 RVA: 0x002A52C0 File Offset: 0x002A34C0
[Token(Token = "0x600BB22")]
[Address(RVA = "0x55EA70", Offset = "0x55D870", VA = "0x18055EA70", Slot = "18")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x0600BB23 RID: 47907 RVA: 0x002A52D0 File Offset: 0x002A34D0
[Token(Token = "0x600BB23")]
[Address(RVA = "0x1FDA310", Offset = "0x1FD9110", VA = "0x181FDA310")]
public RipeMD256Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB24 RID: 47908 RVA: 0x002A52FC File Offset: 0x002A34FC
[Token(Token = "0x600BB24")]
[Address(RVA = "0x1FDA370", Offset = "0x1FD9170", VA = "0x181FDA370")]
public RipeMD256Digest(RipeMD256Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB25 RID: 47909 RVA: 0x002A5328 File Offset: 0x002A3528
[Token(Token = "0x600BB25")]
[Address(RVA = "0x1FD8560", Offset = "0x1FD7360", VA = "0x181FD8560")]
private void CopyIn(RipeMD256Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int h5 = t.H4;
this.H4 = h5;
int h6 = t.H5;
this.H5 = h6;
int h7 = t.H6;
this.H6 = h7;
int h8 = t.H7;
this.H7 = h8;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x0600BB26 RID: 47910 RVA: 0x002A53F8 File Offset: 0x002A35F8
[Token(Token = "0x600BB26")]
[Address(RVA = "0x1FDA0A0", Offset = "0x1FD8EA0", VA = "0x181FDA0A0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x0600BB27 RID: 47911 RVA: 0x002A5444 File Offset: 0x002A3644
[Token(Token = "0x600BB27")]
[Address(RVA = "0x1FDA020", Offset = "0x1FD8E20", VA = "0x181FDA020", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x0600BB28 RID: 47912 RVA: 0x002A547C File Offset: 0x002A367C
[Token(Token = "0x600BB28")]
[Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600BB29 RID: 47913 RVA: 0x002A5494 File Offset: 0x002A3694
[Token(Token = "0x600BB29")]
[Address(RVA = "0x1FD8690", Offset = "0x1FD7490", VA = "0x181FD8690", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
int h4 = this.H4;
num = h4;
output[0] = (byte)num;
num = h4;
output[0] = (byte)num;
int h5 = this.H5;
num = h5;
output[0] = (byte)num;
num = h5;
output[0] = (byte)num;
int h6 = this.H6;
num = h6;
output[0] = (byte)num;
num = h6;
output[0] = (byte)num;
int h7 = this.H7;
num = h7;
output[0] = (byte)num;
num = h7;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x0600BB2A RID: 47914 RVA: 0x002A5584 File Offset: 0x002A3784
[Token(Token = "0x600BB2A")]
[Address(RVA = "0x1FDA260", Offset = "0x1FD9060", VA = "0x181FDA260", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.H4 = (int)((ulong)1985229328L);
this.H5 = (int)((ulong)4275878552L);
this.H6 = (int)((ulong)2309737967L);
this.H7 = (int)((ulong)19088743L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x0600BB2B RID: 47915 RVA: 0x002A5640 File Offset: 0x002A3840
[Token(Token = "0x600BB2B")]
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x0600BB2C RID: 47916 RVA: 0x002A5650 File Offset: 0x002A3850
[Token(Token = "0x600BB2C")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB2D RID: 47917 RVA: 0x002A5660 File Offset: 0x002A3860
[Token(Token = "0x600BB2D")]
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB2E RID: 47918 RVA: 0x002A5670 File Offset: 0x002A3870
[Token(Token = "0x600BB2E")]
[Address(RVA = "0x1FD4150", Offset = "0x1FD2F50", VA = "0x181FD4150")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x0600BB2F RID: 47919 RVA: 0x002A5680 File Offset: 0x002A3880
[Token(Token = "0x600BB2F")]
[Address(RVA = "0x1FD41E0", Offset = "0x1FD2FE0", VA = "0x181FD41E0")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x0600BB30 RID: 47920 RVA: 0x002A5690 File Offset: 0x002A3890
[Token(Token = "0x600BB30")]
[Address(RVA = "0x1FD40E0", Offset = "0x1FD2EE0", VA = "0x181FD40E0")]
private int F1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x0600BB31 RID: 47921 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB31")]
[Address(RVA = "0x1FD4110", Offset = "0x1FD2F10", VA = "0x181FD4110")]
private int F2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB32 RID: 47922 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB32")]
[Address(RVA = "0x1FD4160", Offset = "0x1FD2F60", VA = "0x181FD4160")]
private int F3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB33 RID: 47923 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB33")]
[Address(RVA = "0x1FD41A0", Offset = "0x1FD2FA0", VA = "0x181FD41A0")]
private int F4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB34 RID: 47924 RVA: 0x002A56A0 File Offset: 0x002A38A0
[Token(Token = "0x600BB34")]
[Address(RVA = "0x1FD40E0", Offset = "0x1FD2EE0", VA = "0x181FD40E0")]
private int FF1(int a, int b, int c, int d, int x, int s)
{
return b;
}
// Token: 0x0600BB35 RID: 47925 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB35")]
[Address(RVA = "0x1FD41F0", Offset = "0x1FD2FF0", VA = "0x181FD41F0")]
private int FF2(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB36 RID: 47926 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB36")]
[Address(RVA = "0x1FD4230", Offset = "0x1FD3030", VA = "0x181FD4230")]
private int FF3(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB37 RID: 47927 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BB37")]
[Address(RVA = "0x1FD4270", Offset = "0x1FD3070", VA = "0x181FD4270")]
private int FF4(int a, int b, int c, int d, int x, int s)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BB38 RID: 47928 RVA: 0x002A56B0 File Offset: 0x002A38B0
[Token(Token = "0x600BB38")]
[Address(RVA = "0x1FD8B30", Offset = "0x1FD7930", VA = "0x181FD8B30", Slot = "16")]
internal override void ProcessBlock()
{
int num = this.H4;
int num2 = this.H5;
int num3 = this.H0;
int num4 = this.H1;
int num5 = this.H2;
int num6 = this.H3;
int num7 = this.H6;
int num8 = this.H7;
int[] x = this.X;
int num9 = x.Length;
num6 += num3;
num3 = num6;
num6 = num5;
num6 += num6;
num6 += num5;
num5 = num6;
num6 = num5;
num6 += num4;
num4 = num6;
num5 += num3;
num3 = num5;
num6 += num6;
num6 += num6;
num5 = num6;
num6 = num5;
num6 += num4;
num4 = num6;
num5 += num3;
num3 = num5;
num6 += num6;
num6 += num6;
int num10 = x[5];
num5 = num6;
num6 = num5;
num6 += num10;
num6 += num4;
num4 = num6;
num5 += num3;
int num11 = x[6];
num6 += num11;
num6 += num6;
int num12 = x[7];
num6 += num12;
num6 += num6;
int num13 = x[7];
num6 += num13;
num6 += num4;
num9 = num8;
num += 1352829926;
num += num9;
num3 = num;
num9 = num7;
num = num7;
num9 += num12;
num += num9;
num9 = num2;
num4 = num;
num = num4;
num += num9;
num9 = num3;
num12 = num;
num = num12;
num += num9;
num9 = num4;
num6 = num;
num = num4;
num += num9;
num9 = num12;
num = num12;
num += num9;
num9 = num6;
num4 = num;
num = num4;
num9 += num10;
num += num9;
num2 = num;
num = num2;
num9 = num4;
num += 1352829926;
num += num6;
num12 = num;
num = num4;
num9 += num11;
num += num9;
num9 = num2;
num3 = num;
num = num2;
num += num9;
num9 = num12;
num4 = num;
num = num4;
num9 += num13;
num += num9;
num9 = num3;
num2 = num;
num = num2;
num += num9;
num9 = num4;
num12 = num;
num = num4;
num += num9;
num3 = num;
num = num2;
num += 1352829926;
num9 = num12;
num += num4;
num10 = num;
num = num10;
num += num9;
num11 = num;
num9 = num3;
num = num11;
num += num9;
num13 = num;
num = num6;
num += num9;
num = num9;
num += 1518500249;
num += num6;
num3 = num;
num = num3;
num += 1518500249;
num += num6;
num4 = num;
num = num3;
num9 = num4;
num += num9;
num9 = num;
num = num4;
num += num9;
num12 = num;
num = num9;
num9 = num12;
num += num9;
num3 = num;
num9 = num3;
num = num3;
num += num9;
num6 = num;
num = num3;
num9 = num6;
num += num9;
num4 = num;
num = num6;
num9 = num4;
num += num9;
num9 = num;
num = num4;
num += num9;
num3 = num;
num = num3;
num += 1518500249;
num += num6;
num12 = num;
num = num3;
num9 = num12;
num += num9;
num4 = num;
num = num12;
num9 = num4;
num += 1518500249;
num += num9;
num6 = num;
num = num4;
num9 = num6;
int num14 = x[5];
num += num9;
num6 = num;
num = num6;
num += 1518500249;
num += num14;
num += num12;
num7 = num;
num8 = num7;
num6 = num8;
num = num11;
num6 += 1518500249;
num6 += num4;
num3 += 1548603684;
num += num3;
num14 += 1548603684;
num3 = num;
num = num13;
num += num14;
num += num10;
num12 = num;
num = num3;
num += 1548603684;
num += num11;
num14 = num;
num = num12;
num3 += 1548603684;
num += 1548603684;
num += num13;
num4 = num;
num = num14;
num12 += 1548603684;
num += num3;
num3 = num;
num = num4;
num14 += 1548603684;
num += num12;
num12 = num;
num = num3;
num += num14;
num9 = num;
num = num12;
num += 1548603684;
num += num4;
num3 += 1548603684;
num14 = num;
num = num9;
num12 += 1548603684;
num += num3;
num3 = num;
num = num14;
num += num12;
num12 = num;
num = num3;
num14 += 1548603684;
num += 1548603684;
num += num9;
num4 = num;
num = num12;
num3 += 1548603684;
num += num14;
num14 = num;
num = num4;
num += num3;
num11 = num;
num = num14;
num4 += 1548603684;
num += 1548603684;
num += num12;
num10 = num;
num = num11;
num += num4;
num13 = num6;
num = num10;
num += 1548603684;
num += num14;
num4 = num;
num += num8;
num12 = num;
num = num4;
num += 1859775393;
num += num6;
num3 = num;
num = num12;
num4 += 1859775393;
num += 1859775393;
num += num7;
num14 = num;
num = num3;
num12 += 1859775393;
num += num4;
num4 = num;
num = num14;
num3 += 1859775393;
num += num12;
num12 = num;
num = num4;
num += num3;
num3 = num;
num = num12;
num4 += 1859775393;
num += 1859775393;
num += num14;
num9 = num;
num = num3;
num += num4;
num6 = num;
num = num9;
num3 += 1859775393;
num += 1859775393;
num += num12;
num4 = num;
num = num6;
num += num3;
num14 = num;
num = num4;
num += 1859775393;
num += num9;
num3 = num;
num = num14;
num += 1859775393;
num += num6;
num12 = num;
num = num3;
num += 1859775393;
num += num4;
num7 = num;
num = num12;
num3 += 1859775393;
num14 += 1859775393;
num += num14;
int num15 = x[2];
num6 = num;
num = num7;
num8 = num6;
num += num15;
num15 += 1836072691;
num += num3;
num3 = num;
num = num8;
num3 += num;
num = num3;
num += 1836072691;
num += num11;
num = num13;
num += num15;
num += num10;
num15 = num;
num3 = num15;
num = num15;
num += num3;
num3 = num;
num = num15;
num += 1836072691;
num += num13;
num9 = num;
num = num3;
num3 = num9;
num += num3;
num12 = num;
num = num9;
num3 = num12;
num += num3;
num6 = num;
num3 = num6;
num = num6;
num += num3;
num15 = num;
num = num6;
num3 = num15;
num += num3;
num3 = num;
num = num15;
num += num3;
num = num3;
num += 1836072691;
num += num6;
num9 = num;
num3 = num9;
num = num9;
num += num3;
num15 = num;
num = num9;
num3 = num15;
num += num3;
num3 = num;
num = num15;
num += num3;
num10 = num;
num = num3;
num += 1836072691;
num += num9;
num11 = num;
num3 = num11;
num = num11;
num += num3;
num15 = num;
num = num11;
num12 = num15;
num3 = num12;
num += num3;
num13 = num;
num = num6;
num += num8;
num = num15;
num += num12;
num9 = num;
num = num9;
num += -1894007588;
num += num15;
num6 = num;
num = num6;
num += -1894007588;
num += num6;
num8 = num;
num = num9;
num3 = num6;
num += -1894007588;
num += num3;
num = num6;
num3 = num8;
num += -1894007588;
num += num9;
num15 = num;
num = num15;
num += num3;
num6 = num;
num = num6;
num += -1894007588;
num += num8;
num3 = num;
num = num15;
num += num3;
num3 = num6;
num9 = num;
num = num6;
num += num3;
num12 = num;
num = num12;
num3 = num9;
num += -1894007588;
num += num6;
num15 = num;
num = num15;
num += num3;
num = num12;
num += -1894007588;
num += num9;
num3 = num15;
num = num15;
num += -1894007588;
num += num12;
num6 = num;
num = num6;
num += num3;
num3 = num6;
num8 += num3;
num = num3;
num += num10;
num15 = num;
num = num3;
num += num11;
num6 = num;
num = num6;
num += num3;
num3 = num;
num = num3;
num += num13;
num9 = num;
num3 += num15;
num12 = num3;
num = num3;
num += num6;
num15 = num;
num = num15;
num3 = num15;
num += num3;
num6 = num;
num = num3;
num += num9;
num3 = num;
num = num6;
num3 += num12;
num12 = num3;
num += num15;
num15 = num;
num = num15;
num3 = num15;
num += num6;
num9 = num;
num = num3;
num += num3;
num3 = num;
num = num9;
num3 += num12;
num6 = num3;
num += num15;
num15 = num;
num = num15;
num3 = num15;
num += num9;
num3 += num6;
num3 += num3;
if (0 != x.Length)
{
}
}
// Token: 0x0600BB39 RID: 47929 RVA: 0x002A5F0C File Offset: 0x002A410C
[Token(Token = "0x600BB39")]
[Address(RVA = "0x1FD85F0", Offset = "0x1FD73F0", VA = "0x181FD85F0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB39)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD256Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD256Digest(var_0_06, newobj:RipeMD256Digest(RipeMD256Digest::.ctor, ldloc:RipeMD256Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD256Digest::X, ldloc:RipeMD256Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD256Digest::CopyIn, ldloc:RipeMD256Digest(var_0_06), ldloc:RipeMD256Digest(this))
}
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: 0x0600BB3A RID: 47930 RVA: 0x002A5F38 File Offset: 0x002A4138
[Token(Token = "0x600BB3A")]
[Address(RVA = "0x1FDA1C0", Offset = "0x1FD8FC0", VA = "0x181FDA1C0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040076F3 RID: 30451
[Token(Token = "0x40076F3")]
private const int DigestLength = 32;
// Token: 0x040076F4 RID: 30452
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076F4")]
private int H0;
// Token: 0x040076F5 RID: 30453
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40076F5")]
private int H1;
// Token: 0x040076F6 RID: 30454
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40076F6")]
private int H2;
// Token: 0x040076F7 RID: 30455
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40076F7")]
private int H3;
// Token: 0x040076F8 RID: 30456
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40076F8")]
private int H4;
// Token: 0x040076F9 RID: 30457
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40076F9")]
private int H5;
// Token: 0x040076FA RID: 30458
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40076FA")]
private int H6;
// Token: 0x040076FB RID: 30459
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40076FB")]
private int H7;
// Token: 0x040076FC RID: 30460
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40076FC")]
private int[] X;
// Token: 0x040076FD RID: 30461
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40076FD")]
private int xOff;
}
}
@@ -0,0 +1,862 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF2 RID: 7410
[Token(Token = "0x2001CF2")]
public class RipeMD320Digest : GeneralDigest
{
// Token: 0x17001D1A RID: 7450
// (get) Token: 0x0600BB3B RID: 47931 RVA: 0x002A5F50 File Offset: 0x002A4150
[Token(Token = "0x17001D1A")]
public override string AlgorithmName
{
[Token(Token = "0x600BB3B")]
[Address(RVA = "0x1FDD2C0", Offset = "0x1FDC0C0", VA = "0x181FDD2C0", Slot = "17")]
get
{
return "RIPEMD320";
}
}
// Token: 0x0600BB3C RID: 47932 RVA: 0x002A5F64 File Offset: 0x002A4164
[Token(Token = "0x600BB3C")]
[Address(RVA = "0x55D6C0", Offset = "0x55C4C0", VA = "0x18055D6C0", Slot = "18")]
public override int GetDigestSize()
{
return 40;
}
// Token: 0x0600BB3D RID: 47933 RVA: 0x002A5F74 File Offset: 0x002A4174
[Token(Token = "0x600BB3D")]
[Address(RVA = "0x1FDD1F0", Offset = "0x1FDBFF0", VA = "0x181FDD1F0")]
public RipeMD320Digest()
{
int[] array = new int[16];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB3E RID: 47934 RVA: 0x002A5FA0 File Offset: 0x002A41A0
[Token(Token = "0x600BB3E")]
[Address(RVA = "0x1FDD250", Offset = "0x1FDC050", VA = "0x181FDD250")]
public RipeMD320Digest(RipeMD320Digest t)
{
int[] array = new int[16];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB3F RID: 47935 RVA: 0x002A5FCC File Offset: 0x002A41CC
[Token(Token = "0x600BB3F")]
[Address(RVA = "0x1FDA410", Offset = "0x1FD9210", VA = "0x181FDA410")]
private void CopyIn(RipeMD320Digest t)
{
base.CopyIn(t);
int h = t.H0;
this.H0 = h;
int h2 = t.H1;
this.H1 = h2;
int h3 = t.H2;
this.H2 = h3;
int h4 = t.H3;
this.H3 = h4;
int h5 = t.H4;
this.H4 = h5;
int h6 = t.H5;
this.H5 = h6;
int h7 = t.H6;
this.H6 = h7;
int h8 = t.H7;
this.H7 = h8;
int h9 = t.H8;
this.H8 = h9;
int h10 = t.H9;
this.H9 = h10;
int[] x = t.X;
int length = x.Length;
int num = 0;
int[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x0600BB40 RID: 47936 RVA: 0x002A60BC File Offset: 0x002A42BC
[Token(Token = "0x600BB40")]
[Address(RVA = "0x1FDCF70", Offset = "0x1FDBD70", VA = "0x181FDCF70", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
int num = this.xOff;
int[] x = this.X;
int num2 = num + 1;
this.xOff = num2;
int length = input.Length;
int num3 = inOff + 1;
byte b;
x[0] = (int)b;
if (this.xOff == 16)
{
}
}
// Token: 0x0600BB41 RID: 47937 RVA: 0x002A6108 File Offset: 0x002A4308
[Token(Token = "0x600BB41")]
[Address(RVA = "0x1FDCEF0", Offset = "0x1FDBCF0", VA = "0x181FDCEF0", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (int)bitLength;
this.X[7] = (int)bitLength;
}
// Token: 0x0600BB42 RID: 47938 RVA: 0x002A6140 File Offset: 0x002A4340
[Token(Token = "0x600BB42")]
[Address(RVA = "0x1B445D0", Offset = "0x1B433D0", VA = "0x181B445D0")]
private void UnpackWord(int word, byte[] outBytes, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600BB43 RID: 47939 RVA: 0x002A6158 File Offset: 0x002A4358
[Token(Token = "0x600BB43")]
[Address(RVA = "0x1FDA550", Offset = "0x1FD9350", VA = "0x181FDA550", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int h = this.H0;
this.UnpackWord(h, output, outOff);
int num = this.H1;
output[0] = (byte)num;
output[0] = (byte)num;
int h2 = this.H2;
num = h2;
output[0] = (byte)num;
num = h2;
output[0] = (byte)num;
int h3 = this.H3;
num = h3;
output[0] = (byte)num;
num = h3;
output[0] = (byte)num;
int h4 = this.H4;
num = h4;
output[0] = (byte)num;
num = h4;
output[0] = (byte)num;
int h5 = this.H5;
num = h5;
output[0] = (byte)num;
num = h5;
output[0] = (byte)num;
int h6 = this.H6;
num = h6;
output[0] = (byte)num;
num = h6;
output[0] = (byte)num;
int h7 = this.H7;
num = h7;
output[0] = (byte)num;
num = h7;
output[0] = (byte)num;
int h8 = this.H8;
num = h8;
output[0] = (byte)num;
num = h8;
output[0] = (byte)num;
int h9 = this.H9;
num = h9;
output[0] = (byte)num;
num = h9;
output[0] = (byte)num;
throw new NullReferenceException();
}
// Token: 0x0600BB44 RID: 47940 RVA: 0x002A6284 File Offset: 0x002A4484
[Token(Token = "0x600BB44")]
[Address(RVA = "0x1FDD090", Offset = "0x1FDBE90", VA = "0x181FDD090", Slot = "13")]
public override void Reset()
{
base.Reset();
int[] x = this.X;
int num = 0;
this.H0 = (int)((ulong)1732584193L);
this.H1 = (int)((ulong)4023233417L);
this.H2 = (int)((ulong)2562383102L);
this.H3 = (int)((ulong)271733878L);
this.H4 = (int)((ulong)3285377520L);
this.H5 = (int)((ulong)1985229328L);
this.H6 = (int)((ulong)4275878552L);
this.H7 = (int)((ulong)2309737967L);
this.H8 = (int)((ulong)19088743L);
this.H9 = (int)((ulong)1009589775L);
this.xOff = num;
if (num != x.Length)
{
num++;
x[0] = num;
int[] x2 = this.X;
}
}
// Token: 0x0600BB45 RID: 47941 RVA: 0x002A635C File Offset: 0x002A455C
[Token(Token = "0x600BB45")]
[Address(RVA = "0x1B445B0", Offset = "0x1B433B0", VA = "0x181B445B0")]
private int RL(int x, int n)
{
return x;
}
// Token: 0x0600BB46 RID: 47942 RVA: 0x002A636C File Offset: 0x002A456C
[Token(Token = "0x600BB46")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private int F1(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB47 RID: 47943 RVA: 0x002A637C File Offset: 0x002A457C
[Token(Token = "0x600BB47")]
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
private int F2(int x, int y, int z)
{
return x;
}
// Token: 0x0600BB48 RID: 47944 RVA: 0x002A638C File Offset: 0x002A458C
[Token(Token = "0x600BB48")]
[Address(RVA = "0x1FD4150", Offset = "0x1FD2F50", VA = "0x181FD4150")]
private int F3(int x, int y, int z)
{
return y;
}
// Token: 0x0600BB49 RID: 47945 RVA: 0x002A639C File Offset: 0x002A459C
[Token(Token = "0x600BB49")]
[Address(RVA = "0x1FD41E0", Offset = "0x1FD2FE0", VA = "0x181FD41E0")]
private int F4(int x, int y, int z)
{
return z;
}
// Token: 0x0600BB4A RID: 47946 RVA: 0x002A63AC File Offset: 0x002A45AC
[Token(Token = "0x600BB4A")]
[Address(RVA = "0x1FD5DB0", Offset = "0x1FD4BB0", VA = "0x181FD5DB0")]
private int F5(int x, int y, int z)
{
return z;
}
// Token: 0x0600BB4B RID: 47947 RVA: 0x002A63BC File Offset: 0x002A45BC
[Token(Token = "0x600BB4B")]
[Address(RVA = "0x1FDAB20", Offset = "0x1FD9920", VA = "0x181FDAB20", Slot = "16")]
internal override void ProcessBlock()
{
/*
An exception occurred when decompiling this method (0600BB4B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD320Digest::ProcessBlock()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, ldfld:int32(RipeMD320Digest::H5, ldloc:RipeMD320Digest(this)))
stloc:int32(var_1_0D, ldfld:int32(RipeMD320Digest::H0, ldloc:RipeMD320Digest(this)))
stloc:int32(var_2_14, ldfld:int32(RipeMD320Digest::H1, ldloc:RipeMD320Digest(this)))
stloc:int32(var_3_1B, ldfld:int32(RipeMD320Digest::H2, ldloc:RipeMD320Digest(this)))
stloc:int32(var_4_22, ldfld:int32(RipeMD320Digest::H3, ldloc:RipeMD320Digest(this)))
stloc:int32(var_5_2A, ldfld:int32(RipeMD320Digest::H4, ldloc:RipeMD320Digest(this)))
stloc:int32(var_6_32, ldfld:int32(RipeMD320Digest::H7, ldloc:RipeMD320Digest(this)))
stloc:int32(var_7_3A, ldfld:int32(RipeMD320Digest::H6, ldloc:RipeMD320Digest(this)))
stloc:int32(var_8_42, ldfld:int32(RipeMD320Digest::H8, ldloc:RipeMD320Digest(this)))
stloc:int32(var_9_4A, ldfld:int32(RipeMD320Digest::H9, ldloc:RipeMD320Digest(this)))
stloc:int32[](var_10_52, ldfld:int32[](RipeMD320Digest::X, ldloc:RipeMD320Digest(this)))
stloc:int32(var_11_5B, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_10_52)))
stloc:int32(var_4_61, add:int32(ldloc:int32(var_4_22), ldloc:int32(var_1_0D)))
stloc:int32(var_1_65, ldloc:int32(var_4_61))
stloc:int32(var_1_6A, add:int32(ldloc:int32(var_1_65), ldloc:int32(var_5_2A)))
stloc:int32(var_4_6C, ldloc:int32(var_3_1B))
stloc:int32(var_4_73, add:int32(ldloc:int32(var_4_6C), ldloc:int32(var_5_2A)))
stloc:int32(var_5_76, ldloc:int32(var_2_14))
stloc:int32(var_3_7A, ldloc:int32(var_4_73))
stloc:int32(var_3_7F, add:int32(ldloc:int32(var_3_7A), ldloc:int32(var_4_73)))
stloc:int32(var_4_81, ldloc:int32(var_3_7F))
stloc:int32(var_4_88, add:int32(ldloc:int32(var_4_81), ldloc:int32(var_4_81)))
stloc:int32(var_4_8B, ldloc:int32(var_1_6A))
stloc:int32(var_2_8F, ldloc:int32(var_4_8B))
stloc:int32(var_2_93, add:int32(ldloc:int32(var_2_8F), ldloc:int32(var_3_7F)))
stloc:int32(var_4_95, ldloc:int32(var_3_7F))
stloc:int32(var_4_9B, add:int32(ldloc:int32(var_4_95), ldloc:int32(var_3_7F)))
stloc:int32(var_1_9F, ldloc:int32(var_4_9B))
stloc:int32(var_1_A4, add:int32(ldloc:int32(var_1_9F), ldloc:int32(var_5_76)))
stloc:int32(var_4_A6, ldloc:int32(var_3_7F))
stloc:int32(var_4_AD, add:int32(ldloc:int32(var_4_A6), ldloc:int32(var_5_76)))
stloc:int32(var_5_B0, ldloc:int32(var_2_93))
stloc:int32(var_3_B4, ldloc:int32(var_4_AD))
stloc:int32(var_3_B9, add:int32(ldloc:int32(var_3_B4), ldloc:int32(var_4_AD)))
stloc:int32(var_4_BC, ldloc:int32(var_5_B0))
stloc:int32(var_4_C3, add:int32(ldloc:int32(var_4_BC), ldloc:int32(var_4_BC)))
stloc:int32(var_4_C6, ldloc:int32(var_1_A4))
stloc:int32(var_2_CA, ldloc:int32(var_4_C6))
stloc:int32(var_2_CE, add:int32(ldloc:int32(var_2_CA), ldloc:int32(var_3_B9)))
stloc:int32(var_4_D3, add:int32(ldloc:int32(var_4_C6), ldloc:int32(var_3_B9)))
stloc:int32(var_1_D7, ldloc:int32(var_4_D3))
stloc:int32(var_1_DC, add:int32(ldloc:int32(var_1_D7), ldloc:int32(var_5_B0)))
stloc:int32(var_4_DE, ldloc:int32(var_1_DC))
stloc:int32(var_4_E5, add:int32(ldloc:int32(var_4_DE), ldloc:int32(var_5_B0)))
stloc:int32(var_5_E8, ldloc:int32(var_2_CE))
stloc:int32(var_3_EC, ldloc:int32(var_4_E5))
stloc:int32(var_3_F1, add:int32(ldloc:int32(var_3_EC), ldloc:int32(var_4_E5)))
stloc:int32(var_4_F3, ldloc:int32(var_1_DC))
stloc:int32(var_4_FA, add:int32(ldloc:int32(var_4_F3), ldloc:int32(var_4_F3)))
stloc:int32(var_4_FD, ldloc:int32(var_1_DC))
stloc:int32(var_2_101, ldloc:int32(var_4_FD))
stloc:int32(var_2_105, add:int32(ldloc:int32(var_2_101), ldloc:int32(var_3_F1)))
stloc:int32(var_4_10A, add:int32(ldloc:int32(var_4_FD), ldloc:int32(var_3_F1)))
stloc:int32(var_1_10E, ldloc:int32(var_4_10A))
stloc:int32(var_1_113, add:int32(ldloc:int32(var_1_10E), ldloc:int32(var_5_E8)))
stloc:int32(var_4_115, ldloc:int32(var_3_F1))
stloc:int32(var_4_11C, add:int32(ldloc:int32(var_4_115), ldloc:int32(var_5_E8)))
stloc:int32(var_5_11F, ldloc:int32(var_2_105))
stloc:int32(var_3_123, ldloc:int32(var_4_11C))
stloc:int32(var_3_128, add:int32(ldloc:int32(var_3_123), ldloc:int32(var_4_11C)))
stloc:int32(var_4_12B, ldloc:int32(var_5_11F))
stloc:int32(var_4_132, add:int32(ldloc:int32(var_4_12B), ldloc:int32(var_4_12B)))
stloc:int32(var_4_135, ldloc:int32(var_1_113))
stloc:int32(var_2_139, ldloc:int32(var_4_135))
stloc:int32(var_2_13D, add:int32(ldloc:int32(var_2_139), ldloc:int32(var_3_128)))
stloc:int32(var_4_13F, ldloc:int32(var_2_13D))
stloc:int32(var_4_145, add:int32(ldloc:int32(var_4_13F), ldloc:int32(var_3_128)))
stloc:int32(var_3_149, ldloc:int32(var_4_145))
stloc:int32(var_3_14E, add:int32(ldloc:int32(var_3_149), ldloc:int32(var_5_11F)))
stloc:int32(var_4_150, ldloc:int32(var_2_13D))
stloc:int32(var_4_157, add:int32(ldloc:int32(var_4_150), ldloc:int32(var_5_11F)))
stloc:int32(var_1_15B, ldloc:int32(var_4_157))
stloc:int32(var_4_15D, ldloc:int32(var_2_13D))
stloc:int32(var_1_163, add:int32(ldloc:int32(var_1_15B), ldloc:int32(var_4_15D)))
stloc:int32(var_12_16C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(7)))
stloc:int32(var_4_173, add:int32(ldloc:int32(var_4_15D), ldloc:int32(var_12_16C)))
stloc:int32(var_4_17A, add:int32(ldloc:int32(var_4_173), ldloc:int32(var_4_173)))
stloc:int32(var_4_180, add:int32(ldloc:int32(var_4_17A), ldloc:int32(var_3_14E)))
stloc:int32(var_13_18A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(7)))
stloc:int32(var_3_193, add:int32(ldloc:int32(var_3_14E), ldloc:int32(var_13_18A)))
stloc:int32(var_3_197, add:int32(ldloc:int32(var_3_193), ldloc:int32(var_3_193)))
stloc:int32(var_4_19D, ldloc:int32(var_8_42))
stloc:int32(var_0_1A6, add:int32(ldloc:int32(var_0_06), ldc.i4:int32(1352829926)))
stloc:int32(var_4_1AB, add:int32(ldloc:int32(var_4_19D), ldloc:int32(var_0_1A6)))
stloc:int32(var_3_1AF, ldloc:int32(var_4_1AB))
stloc:int32(var_3_1B4, add:int32(ldloc:int32(var_3_1AF), ldloc:int32(var_9_4A)))
stloc:int32(var_9_1BD, add:int32(ldloc:int32(var_9_4A), ldc.i4:int32(1352829926)))
stloc:int32(var_4_1C3, ldloc:int32(var_3_1B4))
stloc:int32(var_4_1CA, add:int32(ldloc:int32(var_4_1C3), ldloc:int32(var_12_16C)))
stloc:int32(var_12_1CE, ldloc:int32(var_7_3A))
stloc:int32(var_4_1D5, add:int32(ldloc:int32(var_4_1CA), ldloc:int32(var_9_1BD)))
stloc:int32(var_9_1D9, ldloc:int32(var_4_1D5))
stloc:int32(var_4_1DD, ldloc:int32(var_12_1CE))
stloc:int32(var_9_1E4, add:int32(ldloc:int32(var_9_1D9), ldloc:int32(var_8_42)))
stloc:int32(var_4_1EE, add:int32(ldloc:int32(var_4_1DD), ldc.i4:int32(1352829926)))
stloc:int32(var_4_1F5, add:int32(ldloc:int32(var_4_1EE), ldloc:int32(var_8_42)))
stloc:int32(var_7_1F9, ldloc:int32(var_4_1F5))
stloc:int32(var_7_1FF, add:int32(ldloc:int32(var_7_1F9), ldloc:int32(var_3_1B4)))
stloc:int32(var_8_203, ldloc:int32(var_7_1FF))
stloc:int32(var_3_20C, add:int32(ldloc:int32(var_3_1B4), ldc.i4:int32(1352829926)))
stloc:int32(var_4_211, add:int32(ldloc:int32(var_4_1F5), ldloc:int32(var_3_20C)))
stloc:int32(var_3_218, ldloc:int32(var_4_211))
stloc:int32(var_3_21D, add:int32(ldloc:int32(var_3_218), ldloc:int32(var_12_1CE)))
stloc:int32(var_12_226, add:int32(ldloc:int32(var_12_1CE), ldc.i4:int32(1352829926)))
stloc:int32(var_4_229, ldloc:int32(var_3_21D))
stloc:int32(var_4_230, add:int32(ldloc:int32(var_4_229), ldloc:int32(var_12_226)))
stloc:int32(var_12_233, ldloc:int32(var_3_21D))
stloc:int32(var_9_237, ldloc:int32(var_4_230))
stloc:int32(var_4_23B, ldloc:int32(var_8_203))
stloc:int32(var_9_242, add:int32(ldloc:int32(var_9_237), ldloc:int32(var_4_23B)))
stloc:int32(var_4_24C, add:int32(ldloc:int32(var_4_23B), ldc.i4:int32(1352829926)))
stloc:int32(var_4_253, add:int32(ldloc:int32(var_4_24C), ldloc:int32(var_4_24C)))
stloc:int32(var_7_257, ldloc:int32(var_4_253))
stloc:int32(var_7_25D, add:int32(ldloc:int32(var_7_257), ldloc:int32(var_3_21D)))
stloc:int32(var_4_265, ldloc:int32(var_9_242))
stloc:int32(var_3_26E, add:int32(ldloc:int32(var_3_21D), ldc.i4:int32(1352829926)))
stloc:int32(var_4_273, add:int32(ldloc:int32(var_4_265), ldloc:int32(var_3_26E)))
stloc:int32(var_3_27A, ldloc:int32(var_4_273))
stloc:int32(var_3_27F, add:int32(ldloc:int32(var_3_27A), ldloc:int32(var_8_203)))
stloc:int32(var_4_288, add:int32(ldloc:int32(var_4_273), ldc.i4:int32(1352829926)))
stloc:int32(var_4_28F, add:int32(ldloc:int32(var_4_288), ldloc:int32(var_8_203)))
stloc:int32(var_9_293, ldloc:int32(var_4_28F))
stloc:int32(var_4_296, ldloc:int32(var_3_27F))
stloc:int32(var_9_29D, add:int32(ldloc:int32(var_9_293), ldloc:int32(var_12_233)))
stloc:int32(var_8_2A1, ldloc:int32(var_9_29D))
stloc:int32(var_12_2AB, add:int32(ldloc:int32(var_12_233), ldc.i4:int32(1352829926)))
stloc:int32(var_4_2B2, add:int32(ldloc:int32(var_4_296), ldloc:int32(var_12_2AB)))
stloc:int32(var_12_2B5, ldloc:int32(var_3_27F))
stloc:int32(var_7_2B9, ldloc:int32(var_4_2B2))
stloc:int32(var_7_2C0, add:int32(ldloc:int32(var_7_2B9), ldloc:int32(var_4_2B2)))
stloc:int32(var_4_2CA, add:int32(ldloc:int32(var_4_2B2), ldc.i4:int32(1352829926)))
stloc:int32(var_4_2CE, ldloc:int32(var_12_2B5))
stloc:int32(var_4_2D5, add:int32(ldloc:int32(var_4_2CE), ldloc:int32(var_4_2CE)))
stloc:int32(var_4_2D9, ldloc:int32(var_7_2C0))
stloc:int32(var_3_2DD, ldloc:int32(var_4_2D9))
stloc:int32(var_4_2E0, ldloc:int32(var_8_2A1))
stloc:int32(var_3_2E5, add:int32(ldloc:int32(var_3_2DD), ldloc:int32(var_3_2DD)))
stloc:int32(var_4_2EE, add:int32(ldloc:int32(var_4_2E0), ldc.i4:int32(1352829926)))
stloc:int32(var_4_2F5, add:int32(ldloc:int32(var_4_2EE), ldloc:int32(var_13_18A)))
stloc:int32(var_4_2FB, add:int32(ldloc:int32(var_4_2F5), ldloc:int32(var_3_2E5)))
stloc:int32(var_9_2FF, ldloc:int32(var_4_2FB))
stloc:int32(var_9_306, add:int32(ldloc:int32(var_9_2FF), ldloc:int32(var_12_2B5)))
stloc:int32(var_12_310, add:int32(ldloc:int32(var_12_2B5), ldc.i4:int32(1352829926)))
stloc:int32(var_3_314, ldloc:int32(var_9_306))
stloc:int32(var_4_31A, add:int32(ldloc:int32(var_4_2FB), ldloc:int32(var_12_310)))
stloc:int32(var_12_31E, ldloc:int32(var_4_31A))
stloc:int32(var_12_325, add:int32(ldloc:int32(var_12_31E), ldloc:int32(var_8_2A1)))
stloc:int32(var_4_328, ldloc:int32(var_3_314))
stloc:int32(var_8_332, add:int32(ldloc:int32(var_8_2A1), ldc.i4:int32(1352829926)))
stloc:int32(var_14_33C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(6)))
stloc:int32(var_4_343, add:int32(ldloc:int32(var_4_328), ldloc:int32(var_8_332)))
stloc:int32(var_3_347, ldloc:int32(var_4_343))
stloc:int32(var_8_34A, ldloc:int32(var_12_325))
stloc:int32(var_14_354, add:int32(ldloc:int32(var_14_33C), ldc.i4:int32(1352829926)))
stloc:int32(var_3_35A, add:int32(ldloc:int32(var_3_347), ldloc:int32(var_4_343)))
stloc:int32(var_4_35C, ldloc:int32(var_3_35A))
stloc:int32(var_4_366, add:int32(ldloc:int32(var_4_35C), ldc.i4:int32(1352829926)))
stloc:int32(var_4_36D, add:int32(ldloc:int32(var_4_366), ldloc:int32(var_4_366)))
stloc:int32(var_7_371, ldloc:int32(var_4_36D))
stloc:int32(var_4_375, ldloc:int32(var_8_34A))
stloc:int32(var_7_37B, add:int32(ldloc:int32(var_7_371), ldloc:int32(var_3_35A)))
stloc:int32(var_4_385, add:int32(ldloc:int32(var_4_375), ldc.i4:int32(1352829926)))
stloc:int32(var_4_38B, add:int32(ldloc:int32(var_4_385), ldloc:int32(var_3_35A)))
stloc:int32(var_13_38F, ldloc:int32(var_4_38B))
stloc:int32(var_4_392, ldloc:int32(var_3_35A))
stloc:int32(var_13_398, add:int32(ldloc:int32(var_13_38F), ldloc:int32(var_3_35A)))
stloc:int32(var_14_39F, add:int32(ldloc:int32(var_14_354), ldloc:int32(var_4_392)))
stloc:int32(var_4_3A3, ldloc:int32(var_7_37B))
stloc:int32(var_14_3A9, add:int32(ldloc:int32(var_14_39F), ldloc:int32(var_3_35A)))
stloc:int32(var_12_3AD, ldloc:int32(var_14_3A9))
stloc:int32(var_12_3B4, add:int32(ldloc:int32(var_12_3AD), ldloc:int32(var_8_34A)))
stloc:int32(var_14_3B8, ldloc:int32(var_12_3B4))
stloc:int32(var_6_3BB, ldloc:int32(var_3_35A))
stloc:int32(var_8_3BF, ldloc:int32(var_12_3B4))
stloc:int32(var_4_3C6, add:int32(ldloc:int32(var_4_3A3), ldloc:int32(var_14_3B8)))
stloc:int32(var_6_3CD, add:int32(ldloc:int32(var_6_3BB), ldloc:int32(var_4_3C6)))
stloc:int32(var_3_3D1, ldloc:int32(var_4_3C6))
stloc:int32(var_4_3D6, add:int32(ldloc:int32(var_4_3C6), ldloc:int32(var_3_3D1)))
stloc:int32(var_4_3E4, add:int32(ldloc:int32(var_4_3D6), ldc.i4:int32(1518500249)))
stloc:int32(var_3_3E8, ldloc:int32(var_4_3E4))
stloc:int32(var_4_3ED, add:int32(ldloc:int32(var_4_3E4), ldloc:int32(var_3_3E8)))
stloc:int32(var_3_3F1, ldloc:int32(var_4_3ED))
stloc:int32(var_3_3F6, add:int32(ldloc:int32(var_3_3F1), ldloc:int32(var_4_3ED)))
stloc:int32(var_14_3F8, ldloc:int32(var_3_3F6))
stloc:int32(var_4_3FB, ldloc:int32(var_3_3F6))
stloc:int32(var_4_402, add:int32(ldloc:int32(var_4_3FB), ldloc:int32(var_14_3F8)))
stloc:int32(var_12_406, ldloc:int32(var_4_402))
stloc:int32(var_4_409, ldloc:int32(var_3_3F6))
stloc:int32(var_12_40F, add:int32(ldloc:int32(var_12_406), ldloc:int32(var_3_3F6)))
stloc:int32(var_14_413, ldloc:int32(var_12_40F))
stloc:int32(var_4_41A, add:int32(ldloc:int32(var_4_409), ldloc:int32(var_14_413)))
stloc:int32(var_3_41E, ldloc:int32(var_4_41A))
stloc:int32(var_3_423, add:int32(ldloc:int32(var_3_41E), ldloc:int32(var_8_3BF)))
stloc:int32(var_14_425, ldloc:int32(var_3_423))
stloc:int32(var_4_429, ldloc:int32(var_12_40F))
stloc:int32(var_3_42D, ldloc:int32(var_12_40F))
stloc:int32(var_4_433, add:int32(ldloc:int32(var_4_429), ldloc:int32(var_14_425)))
stloc:int32(var_8_436, ldloc:int32(var_3_42D))
stloc:int32(var_4_43C, add:int32(ldloc:int32(var_4_433), ldloc:int32(var_3_42D)))
stloc:int32(var_4_43F, ldloc:int32(var_3_42D))
stloc:int32(var_4_44D, add:int32(ldloc:int32(var_4_43F), ldc.i4:int32(1518500249)))
stloc:int32(var_4_453, add:int32(ldloc:int32(var_4_44D), ldloc:int32(var_3_42D)))
stloc:int32(var_3_457, ldloc:int32(var_4_453))
stloc:int32(var_3_45C, add:int32(ldloc:int32(var_3_457), ldloc:int32(var_4_453)))
stloc:int32(var_14_45E, ldloc:int32(var_3_45C))
stloc:int32(var_4_461, ldloc:int32(var_3_45C))
stloc:int32(var_4_468, add:int32(ldloc:int32(var_4_461), ldloc:int32(var_14_45E)))
stloc:int32(var_12_46C, ldloc:int32(var_4_468))
stloc:int32(var_4_46F, ldloc:int32(var_3_45C))
stloc:int32(var_12_475, add:int32(ldloc:int32(var_12_46C), ldloc:int32(var_3_45C)))
stloc:int32(var_14_479, ldloc:int32(var_12_475))
stloc:int32(var_4_480, add:int32(ldloc:int32(var_4_46F), ldloc:int32(var_14_479)))
stloc:int32(var_4_484, ldloc:int32(var_12_475))
stloc:int32(var_4_48B, add:int32(ldloc:int32(var_4_484), ldloc:int32(var_8_436)))
stloc:int32(var_4_499, add:int32(ldloc:int32(var_4_48B), ldc.i4:int32(1518500249)))
stloc:int32(var_4_4A0, add:int32(ldloc:int32(var_4_499), ldloc:int32(var_8_436)))
stloc:int32(var_3_4A7, ldloc:int32(var_12_475))
stloc:int32(var_3_4AC, add:int32(ldloc:int32(var_3_4A7), ldloc:int32(var_4_4A0)))
stloc:int32(var_4_4B8, add:int32(ldloc:int32(var_4_4A0), ldc.i4:int32(1518500249)))
stloc:int32(var_8_4BB, ldloc:int32(var_3_4AC))
stloc:int32(var_4_4C2, add:int32(ldloc:int32(var_4_4B8), ldloc:int32(var_4_4B8)))
stloc:int32(var_15_4CC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(2)))
stloc:int32(var_3_4D0, ldloc:int32(var_4_4C2))
stloc:int32(var_15_4D9, add:int32(ldloc:int32(var_15_4CC), ldc.i4:int32(1518500249)))
stloc:int32(var_3_4DE, add:int32(ldloc:int32(var_3_4D0), ldloc:int32(var_3_4D0)))
stloc:int32(var_4_4E0, ldloc:int32(var_3_4DE))
stloc:int32(var_4_4ED, add:int32(ldloc:int32(var_4_4E0), ldc.i4:int32(1518500249)))
stloc:int32(var_4_4F3, add:int32(ldloc:int32(var_4_4ED), ldloc:int32(var_3_4DE)))
stloc:int32(var_12_4F7, ldloc:int32(var_4_4F3))
stloc:int32(var_12_4FD, add:int32(ldloc:int32(var_12_4F7), ldloc:int32(var_3_4DE)))
stloc:int32(var_4_505, ldloc:int32(var_12_4FD))
stloc:int32(var_4_50C, add:int32(ldloc:int32(var_4_505), ldloc:int32(var_15_4D9)))
stloc:int32(var_15_50F, ldloc:int32(var_3_4DE))
stloc:int32(var_4_515, add:int32(ldloc:int32(var_4_50C), ldloc:int32(var_3_4DE)))
stloc:int32(var_3_51C, ldloc:int32(var_12_4FD))
stloc:int32(var_3_521, add:int32(ldloc:int32(var_3_51C), ldloc:int32(var_4_515)))
stloc:int32(var_4_524, ldloc:int32(var_12_4FD))
stloc:int32(var_14_527, ldloc:int32(var_3_521))
stloc:int32(var_4_52E, add:int32(ldloc:int32(var_4_524), ldloc:int32(var_14_527)))
stloc:int32(var_4_535, add:int32(ldloc:int32(var_4_52E), ldloc:int32(var_8_4BB)))
stloc:int32(var_14_539, ldloc:int32(var_4_535))
stloc:int32(var_4_53C, ldloc:int32(var_3_521))
stloc:int32(var_8_53F, ldloc:int32(var_3_521))
stloc:int32(var_4_546, add:int32(ldloc:int32(var_4_53C), ldloc:int32(var_14_539)))
stloc:int32(var_4_54D, add:int32(ldloc:int32(var_4_546), ldloc:int32(var_15_50F)))
stloc:int32(var_4_55B, add:int32(ldloc:int32(var_4_54D), ldc.i4:int32(1518500249)))
stloc:int32(var_4_562, add:int32(ldloc:int32(var_4_55B), ldloc:int32(var_15_50F)))
stloc:int32(var_12_566, ldloc:int32(var_4_562))
stloc:int32(var_12_56C, add:int32(ldloc:int32(var_12_566), ldloc:int32(var_3_521)))
stloc:int32(var_3_570, ldloc:int32(var_12_56C))
stloc:int32(var_14_572, ldloc:int32(var_3_570))
stloc:int32(var_4_57C, add:int32(ldloc:int32(var_4_562), ldloc:int32(var_14_572)))
stloc:int32(var_3_580, ldloc:int32(var_4_57C))
stloc:int32(var_14_583, ldloc:int32(var_4_57C))
stloc:int32(var_3_589, add:int32(ldloc:int32(var_3_580), ldloc:int32(var_8_53F)))
stloc:int32(var_8_592, add:int32(ldloc:int32(var_8_53F), ldc.i4:int32(1548603684)))
stloc:int32(var_8_599, add:int32(ldloc:int32(var_8_592), ldloc:int32(var_14_583)))
stloc:int32(var_14_59C, ldloc:int32(var_3_589))
stloc:int32(var_4_5A0, ldloc:int32(var_8_599))
stloc:int32(var_4_5A7, add:int32(ldloc:int32(var_4_5A0), ldloc:int32(var_4_5A0)))
stloc:int32(var_8_5AB, ldloc:int32(var_4_5A7))
stloc:int32(var_8_5B2, add:int32(ldloc:int32(var_8_5AB), ldloc:int32(var_14_59C)))
stloc:int32(var_3_5B6, ldloc:int32(var_4_5A7))
stloc:int32(var_4_5B9, ldloc:int32(var_8_5B2))
stloc:int32(var_15_5BD, ldloc:int32(var_6_3CD))
stloc:int32(var_4_5C4, add:int32(ldloc:int32(var_4_5B9), ldloc:int32(var_4_5B9)))
stloc:int32(var_8_5CC, ldloc:int32(var_4_5C4))
stloc:int32(var_14_5D0, ldloc:int32(var_15_5BD))
stloc:int32(var_8_5D7, add:int32(ldloc:int32(var_8_5CC), ldloc:int32(var_14_5D0)))
stloc:int32(var_14_5DA, ldloc:int32(var_3_5B6))
stloc:int32(var_4_5DE, ldloc:int32(var_8_5D7))
stloc:int32(var_4_5E4, add:int32(ldloc:int32(var_4_5DE), ldloc:int32(var_3_5B6)))
stloc:int32(var_8_5E7, ldloc:int32(var_3_5B6))
stloc:int32(var_8_5EE, add:int32(ldloc:int32(var_8_5E7), ldloc:int32(var_14_5DA)))
stloc:int32(var_14_5F2, ldloc:int32(var_8_5EE))
stloc:int32(var_3_5F6, ldloc:int32(var_8_5EE))
stloc:int32(var_3_5FB, add:int32(ldloc:int32(var_3_5F6), ldloc:int32(var_15_5BD)))
stloc:int32(var_15_5FE, ldloc:int32(var_4_5E4))
stloc:int32(var_8_605, add:int32(ldloc:int32(var_8_5EE), ldloc:int32(var_14_5F2)))
stloc:int32(var_4_609, ldloc:int32(var_8_605))
stloc:int32(var_4_613, add:int32(ldloc:int32(var_4_609), ldloc:int32(var_3_5FB)))
stloc:int32(var_8_617, ldloc:int32(var_15_5FE))
stloc:int32(var_8_624, add:int32(ldloc:int32(var_8_617), ldc.i4:int32(1548603684)))
stloc:int32(var_8_62A, add:int32(ldloc:int32(var_8_624), ldloc:int32(var_3_5FB)))
stloc:int32(var_4_62E, ldloc:int32(var_8_62A))
stloc:int32(var_4_635, add:int32(ldloc:int32(var_4_62E), ldloc:int32(var_8_62A)))
stloc:int32(var_14_63D, ldloc:int32(var_4_635))
stloc:int32(var_8_641, ldloc:int32(var_4_635))
stloc:int32(var_8_648, add:int32(ldloc:int32(var_8_641), ldloc:int32(var_14_63D)))
stloc:int32(var_3_64C, ldloc:int32(var_8_648))
stloc:int32(var_14_64F, ldloc:int32(var_8_648))
stloc:int32(var_3_655, add:int32(ldloc:int32(var_3_64C), ldloc:int32(var_15_5FE)))
stloc:int32(var_8_657, ldloc:int32(var_3_655))
stloc:int32(var_15_65B, ldloc:int32(var_4_635))
stloc:int32(var_8_662, add:int32(ldloc:int32(var_8_657), ldloc:int32(var_14_64F)))
stloc:int32(var_4_666, ldloc:int32(var_8_662))
stloc:int32(var_14_66A, ldloc:int32(var_15_65B))
stloc:int32(var_4_671, add:int32(ldloc:int32(var_4_666), ldloc:int32(var_4_666)))
stloc:int32(var_8_675, ldloc:int32(var_15_65B))
stloc:int32(var_8_67F, add:int32(ldloc:int32(var_8_675), ldloc:int32(var_14_66A)))
stloc:int32(var_4_683, ldloc:int32(var_8_67F))
stloc:int32(var_14_687, ldloc:int32(var_4_683))
stloc:int32(var_4_68E, add:int32(ldloc:int32(var_4_683), ldloc:int32(var_8_67F)))
stloc:int32(var_8_696, ldloc:int32(var_4_68E))
stloc:int32(var_8_69D, add:int32(ldloc:int32(var_8_696), ldloc:int32(var_14_687)))
stloc:int32(var_3_6A1, ldloc:int32(var_8_69D))
stloc:int32(var_14_6A4, ldloc:int32(var_8_69D))
stloc:int32(var_3_6AA, add:int32(ldloc:int32(var_3_6A1), ldloc:int32(var_15_65B)))
stloc:int32(var_8_6B0, add:int32(ldloc:int32(var_8_69D), ldloc:int32(var_14_6A4)))
stloc:int32(var_15_6B4, ldloc:int32(var_4_68E))
stloc:int32(var_4_6B8, ldloc:int32(var_8_6B0))
stloc:int32(var_4_6BF, add:int32(ldloc:int32(var_4_6B8), ldloc:int32(var_4_6B8)))
stloc:int32(var_8_6C3, ldloc:int32(var_4_6BF))
stloc:int32(var_14_6C7, ldloc:int32(var_15_6B4))
stloc:int32(var_8_6D1, add:int32(ldloc:int32(var_8_6C3), ldloc:int32(var_14_6C7)))
stloc:int32(var_4_6D5, ldloc:int32(var_8_6D1))
stloc:int32(var_14_6D9, ldloc:int32(var_4_6D5))
stloc:int32(var_4_6E0, add:int32(ldloc:int32(var_4_6D5), ldloc:int32(var_8_6D1)))
stloc:int32(var_8_6E8, ldloc:int32(var_4_6E0))
stloc:int32(var_8_6EF, add:int32(ldloc:int32(var_8_6E8), ldloc:int32(var_14_6D9)))
stloc:int32(var_3_6F3, ldloc:int32(var_8_6EF))
stloc:int32(var_14_6F6, ldloc:int32(var_8_6EF))
stloc:int32(var_3_6FC, add:int32(ldloc:int32(var_3_6F3), ldloc:int32(var_15_6B4)))
stloc:int32(var_15_6FF, ldloc:int32(var_4_6E0))
stloc:int32(var_8_706, add:int32(ldloc:int32(var_8_6EF), ldloc:int32(var_14_6F6)))
stloc:int32(var_4_70A, ldloc:int32(var_8_706))
stloc:int32(var_4_715, add:int32(ldloc:int32(var_4_70A), ldloc:int32(var_4_70A)))
stloc:int32(var_8_719, ldloc:int32(var_15_6FF))
stloc:int32(var_8_723, add:int32(ldloc:int32(var_8_719), ldc.i4:int32(1548603684)))
stloc:int32(var_8_72A, add:int32(ldloc:int32(var_8_723), ldloc:int32(var_4_715)))
stloc:int32(var_13_72E, ldloc:int32(var_8_72A))
stloc:int32(var_13_735, add:int32(ldloc:int32(var_13_72E), ldloc:int32(var_8_72A)))
stloc:int32(var_8_738, ldloc:int32(var_3_6FC))
stloc:int32(var_4_73B, ldloc:int32(var_3_6FC))
stloc:int32(var_3_743, ldloc:int32(var_4_73B))
stloc:int32(var_8_74C, add:int32(ldloc:int32(var_8_738), ldc.i4:int32(1548603684)))
stloc:int32(var_8_753, add:int32(ldloc:int32(var_8_74C), ldloc:int32(var_8_74C)))
stloc:int32(var_6_757, ldloc:int32(var_8_753))
stloc:int32(var_6_75E, add:int32(ldloc:int32(var_6_757), ldloc:int32(var_15_6FF)))
stloc:int32(var_8_768, add:int32(ldloc:int32(var_8_753), ldc.i4:int32(1859775393)))
stloc:int32(var_8_76E, add:int32(ldloc:int32(var_8_768), ldloc:int32(var_3_743)))
stloc:int32(var_14_772, ldloc:int32(var_8_76E))
stloc:int32(var_4_776, ldloc:int32(var_12_56C))
stloc:int32(var_14_77D, add:int32(ldloc:int32(var_14_772), ldloc:int32(var_4_776)))
stloc:int32(var_4_787, add:int32(ldloc:int32(var_4_776), ldc.i4:int32(1859775393)))
stloc:int32(var_8_78B, ldloc:int32(var_14_77D))
stloc:int32(var_12_78E, ldloc:int32(var_3_743))
stloc:int32(var_12_795, add:int32(ldloc:int32(var_12_78E), ldloc:int32(var_4_787)))
stloc:int32(var_4_799, ldloc:int32(var_12_795))
stloc:int32(var_12_79D, ldloc:int32(var_14_77D))
stloc:int32(var_4_7A3, add:int32(ldloc:int32(var_4_799), ldloc:int32(var_3_743)))
stloc:int32(var_3_7AC, add:int32(ldloc:int32(var_3_743), ldc.i4:int32(1859775393)))
stloc:int32(var_12_7B1, add:int32(ldloc:int32(var_12_79D), ldloc:int32(var_3_7AC)))
stloc:int32(var_3_7B5, ldloc:int32(var_12_7B1))
stloc:int32(var_12_7B8, ldloc:int32(var_4_7A3))
stloc:int32(var_3_7BE, add:int32(ldloc:int32(var_3_7B5), ldloc:int32(var_4_7A3)))
stloc:int32(var_4_7C7, add:int32(ldloc:int32(var_4_7A3), ldc.i4:int32(1859775393)))
stloc:int32(var_12_7CE, add:int32(ldloc:int32(var_12_7B8), ldloc:int32(var_4_7C7)))
stloc:int32(var_14_7D2, ldloc:int32(var_12_7CE))
stloc:int32(var_14_7D9, add:int32(ldloc:int32(var_14_7D2), ldloc:int32(var_4_7C7)))
stloc:int32(var_12_7DC, ldloc:int32(var_3_7BE))
stloc:int32(var_4_7E6, add:int32(ldloc:int32(var_4_7C7), ldc.i4:int32(1859775393)))
stloc:int32(var_12_7ED, add:int32(ldloc:int32(var_12_7DC), ldloc:int32(var_4_7E6)))
stloc:int32(var_4_7F4, ldloc:int32(var_12_7ED))
stloc:int32(var_4_7FB, add:int32(ldloc:int32(var_4_7F4), ldloc:int32(var_8_78B)))
stloc:int32(var_12_7FF, ldloc:int32(var_14_7D9))
stloc:int32(var_15_803, ldloc:int32(var_4_7FB))
stloc:int32(var_8_80D, add:int32(ldloc:int32(var_8_78B), ldc.i4:int32(1859775393)))
stloc:int32(var_12_814, add:int32(ldloc:int32(var_12_7FF), ldloc:int32(var_8_80D)))
stloc:int32(var_8_818, ldloc:int32(var_14_7D9))
stloc:int32(var_3_81C, ldloc:int32(var_12_814))
stloc:int32(var_12_81F, ldloc:int32(var_4_7FB))
stloc:int32(var_3_825, add:int32(ldloc:int32(var_3_81C), ldloc:int32(var_4_7FB)))
stloc:int32(var_12_82E, add:int32(ldloc:int32(var_12_81F), ldc.i4:int32(1859775393)))
stloc:int32(var_12_835, add:int32(ldloc:int32(var_12_82E), ldloc:int32(var_4_7FB)))
stloc:int32(var_14_839, ldloc:int32(var_12_835))
stloc:int32(var_12_83C, ldloc:int32(var_3_825))
stloc:int32(var_14_843, add:int32(ldloc:int32(var_14_839), ldloc:int32(var_4_7FB)))
stloc:int32(var_12_84D, add:int32(ldloc:int32(var_12_83C), ldc.i4:int32(1859775393)))
stloc:int32(var_12_854, add:int32(ldloc:int32(var_12_84D), ldloc:int32(var_4_7FB)))
stloc:int32(var_4_858, ldloc:int32(var_12_854))
stloc:int32(var_12_85C, ldloc:int32(var_14_843))
stloc:int32(var_4_863, add:int32(ldloc:int32(var_4_858), ldloc:int32(var_8_818)))
stloc:int32(var_12_86D, add:int32(ldloc:int32(var_12_85C), ldc.i4:int32(1859775393)))
stloc:int32(var_12_874, add:int32(ldloc:int32(var_12_86D), ldloc:int32(var_8_818)))
stloc:int32(var_4_878, ldloc:int32(var_12_874))
stloc:int32(var_3_87C, ldloc:int32(var_14_843))
stloc:int32(var_4_882, add:int32(ldloc:int32(var_4_878), ldloc:int32(var_15_803)))
stloc:int32(var_12_886, ldloc:int32(var_4_882))
stloc:int32(var_15_890, add:int32(ldloc:int32(var_15_803), ldc.i4:int32(1859775393)))
stloc:int32(var_8_894, ldloc:int32(var_4_882))
stloc:int32(var_12_89B, add:int32(ldloc:int32(var_12_886), ldloc:int32(var_15_890)))
stloc:int32(var_15_89F, ldloc:int32(var_4_882))
stloc:int32(var_4_8A3, ldloc:int32(var_12_89B))
stloc:int32(var_4_8A9, add:int32(ldloc:int32(var_4_8A3), ldloc:int32(var_3_87C)))
stloc:int32(var_12_8AD, ldloc:int32(var_4_8A9))
stloc:int32(var_12_8B7, add:int32(ldloc:int32(var_12_8AD), ldc.i4:int32(1859775393)))
stloc:int32(var_12_8BD, add:int32(ldloc:int32(var_12_8B7), ldloc:int32(var_3_87C)))
stloc:int32(var_3_8C1, ldloc:int32(var_12_8BD))
stloc:int32(var_12_8C4, ldloc:int32(var_4_8A9))
stloc:int32(var_3_8C9, add:int32(ldloc:int32(var_3_8C1), ldloc:int32(var_3_8C1)))
stloc:int32(var_12_8D5, add:int32(ldloc:int32(var_12_8C4), ldc.i4:int32(1859775393)))
stloc:int32(var_12_8DB, add:int32(ldloc:int32(var_12_8D5), ldloc:int32(var_3_8C9)))
stloc:int32(var_14_8DF, ldloc:int32(var_12_8DB))
stloc:int32(var_12_8E2, ldloc:int32(var_3_8C9))
stloc:int32(var_14_8E9, add:int32(ldloc:int32(var_14_8DF), ldloc:int32(var_15_89F)))
stloc:int32(var_12_8F3, add:int32(ldloc:int32(var_12_8E2), ldc.i4:int32(1859775393)))
stloc:int32(var_12_8FA, add:int32(ldloc:int32(var_12_8F3), ldloc:int32(var_15_89F)))
stloc:int32(var_4_8FE, ldloc:int32(var_12_8FA))
stloc:int32(var_12_902, ldloc:int32(var_14_8E9))
stloc:int32(var_4_909, add:int32(ldloc:int32(var_4_8FE), ldloc:int32(var_8_894)))
stloc:int32(var_8_913, add:int32(ldloc:int32(var_8_894), ldc.i4:int32(1859775393)))
stloc:int32(var_12_91A, add:int32(ldloc:int32(var_12_902), ldloc:int32(var_8_913)))
stloc:int32(var_3_91E, ldloc:int32(var_12_91A))
stloc:int32(var_8_921, ldloc:int32(var_14_8E9))
stloc:int32(var_16_92B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_10_52), ldc.i4:int32(6)))
stloc:int32(var_12_92F, ldloc:int32(var_4_909))
stloc:int32(var_3_935, add:int32(ldloc:int32(var_3_91E), ldloc:int32(var_4_909)))
stloc:int32(var_12_942, add:int32(ldloc:int32(var_12_92F), ldc.i4:int32(1859775393)))
stloc:int32(var_12_949, add:int32(ldloc:int32(var_12_942), ldloc:int32(var_4_909)))
stloc:int32(var_3_94D, ldloc:int32(var_12_949))
stloc:int32(var_4_950, ldloc:int32(var_13_735))
stloc:int32(var_12_953, ldloc:int32(var_3_94D))
stloc:int32(var_3_959, add:int32(ldloc:int32(var_3_94D), ldloc:int32(var_4_950)))
stloc:int32(var_12_962, add:int32(ldloc:int32(var_12_953), ldc.i4:int32(1859775393)))
stloc:int32(var_15_96C, add:int32(ldloc:int32(var_15_89F), ldc.i4:int32(1836072691)))
stloc:int32(var_12_973, add:int32(ldloc:int32(var_12_962), ldloc:int32(var_16_92B)))
stloc:int32(var_12_97A, add:int32(ldloc:int32(var_12_973), ldloc:int32(var_4_950)))
stloc:int32(var_3_97E, ldloc:int32(var_12_97A))
stloc:int32(var_3_986, add:int32(ldloc:int32(var_3_97E), ldloc:int32(var_8_921)))
stloc:int32(var_8_989, ldloc:int32(var_6_75E))
stloc:int32(var_12_98D, ldloc:int32(var_13_735))
stloc:int32(var_12_994, add:int32(ldloc:int32(var_12_98D), ldloc:int32(var_15_96C)))
stloc:int32(var_15_998, ldloc:int32(var_12_994))
stloc:int32(var_12_99C, ldloc:int32(var_6_75E))
stloc:int32(var_15_9A3, add:int32(ldloc:int32(var_15_998), ldloc:int32(var_8_989)))
stloc:int32(var_8_9AD, add:int32(ldloc:int32(var_8_989), ldc.i4:int32(1836072691)))
stloc:int32(var_12_9B4, add:int32(ldloc:int32(var_12_99C), ldloc:int32(var_8_9AD)))
stloc:int32(var_8_9B8, ldloc:int32(var_12_9B4))
stloc:int32(var_12_9BC, ldloc:int32(var_15_9A3))
stloc:int32(var_8_9C3, add:int32(ldloc:int32(var_8_9B8), ldloc:int32(var_4_950)))
stloc:int32(var_4_9C7, ldloc:int32(var_15_9A3))
stloc:int32(var_12_9D1, add:int32(ldloc:int32(var_12_9BC), ldc.i4:int32(1836072691)))
stloc:int32(var_12_9D8, add:int32(ldloc:int32(var_12_9D1), ldloc:int32(var_4_9C7)))
stloc:int32(var_3_9DC, ldloc:int32(var_12_9D8))
stloc:int32(var_12_9DF, ldloc:int32(var_8_9C3))
stloc:int32(var_3_9E5, add:int32(ldloc:int32(var_3_9DC), ldloc:int32(var_4_9C7)))
stloc:int32(var_4_9EE, add:int32(ldloc:int32(var_4_9C7), ldc.i4:int32(1836072691)))
stloc:int32(var_12_9F5, add:int32(ldloc:int32(var_12_9DF), ldloc:int32(var_4_9EE)))
stloc:int32(var_4_9F9, ldloc:int32(var_8_9C3))
stloc:int32(var_15_9FD, ldloc:int32(var_12_9F5))
stloc:int32(var_15_A04, add:int32(ldloc:int32(var_15_9FD), ldloc:int32(var_8_9C3)))
stloc:int32(var_12_A07, ldloc:int32(var_3_9E5))
stloc:int32(var_8_A11, add:int32(ldloc:int32(var_8_9C3), ldc.i4:int32(1836072691)))
stloc:int32(var_12_A18, add:int32(ldloc:int32(var_12_A07), ldloc:int32(var_8_A11)))
stloc:int32(var_8_A1F, ldloc:int32(var_12_A18))
stloc:int32(var_8_A26, add:int32(ldloc:int32(var_8_A1F), ldloc:int32(var_4_9F9)))
stloc:int32(var_12_A2A, ldloc:int32(var_15_A04))
stloc:int32(var_4_A34, add:int32(ldloc:int32(var_4_9F9), ldc.i4:int32(1836072691)))
stloc:int32(var_15_A38, ldloc:int32(var_8_A26))
stloc:int32(var_12_A3F, add:int32(ldloc:int32(var_12_A2A), ldloc:int32(var_4_A34)))
stloc:int32(var_4_A43, ldloc:int32(var_15_A38))
stloc:int32(var_3_A47, ldloc:int32(var_12_A3F))
stloc:int32(var_3_A4C, add:int32(ldloc:int32(var_3_A47), ldloc:int32(var_4_A43)))
stloc:int32(var_12_A4F, ldloc:int32(var_8_A26))
stloc:int32(var_4_A59, add:int32(ldloc:int32(var_4_A43), ldc.i4:int32(1836072691)))
stloc:int32(var_12_A60, add:int32(ldloc:int32(var_12_A4F), ldloc:int32(var_4_A59)))
stloc:int32(var_15_A64, ldloc:int32(var_12_A60))
stloc:int32(var_12_A67, ldloc:int32(var_3_A4C))
stloc:int32(var_15_A6E, add:int32(ldloc:int32(var_15_A64), ldloc:int32(var_8_A26)))
stloc:int32(var_12_A78, add:int32(ldloc:int32(var_12_A67), ldc.i4:int32(1836072691)))
stloc:int32(var_16_A85, add:int32(ldloc:int32(var_16_92B), ldc.i4:int32(1836072691)))
stloc:int32(var_12_A8C, add:int32(ldloc:int32(var_12_A78), ldloc:int32(var_8_A26)))
}
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: 0x0600BB4C RID: 47948 RVA: 0x002A6E5C File Offset: 0x002A505C
[Token(Token = "0x600BB4C")]
[Address(RVA = "0x1FDA4B0", Offset = "0x1FD92B0", VA = "0x181FDA4B0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB4C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.RipeMD320Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:RipeMD320Digest(var_0_06, newobj:RipeMD320Digest(RipeMD320Digest::.ctor, ldloc:RipeMD320Digest(this)))
stloc:int32[](var_1_0E, newarr:int32[]([mscorlib]System.Int32, ldc.i4:int32(16)))
stfld:int32[](RipeMD320Digest::X, ldloc:RipeMD320Digest(var_0_06), ldloc:int32[](var_1_0E))
call:void(RipeMD320Digest::CopyIn, ldloc:RipeMD320Digest(var_0_06), ldloc:RipeMD320Digest(this))
}
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: 0x0600BB4D RID: 47949 RVA: 0x002A6E88 File Offset: 0x002A5088
[Token(Token = "0x600BB4D")]
[Address(RVA = "0x1FDD150", Offset = "0x1FDBF50", VA = "0x181FDD150", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x040076FE RID: 30462
[Token(Token = "0x40076FE")]
private const int DigestLength = 40;
// Token: 0x040076FF RID: 30463
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40076FF")]
private int H0;
// Token: 0x04007700 RID: 30464
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007700")]
private int H1;
// Token: 0x04007701 RID: 30465
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007701")]
private int H2;
// Token: 0x04007702 RID: 30466
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4007702")]
private int H3;
// Token: 0x04007703 RID: 30467
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007703")]
private int H4;
// Token: 0x04007704 RID: 30468
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4007704")]
private int H5;
// Token: 0x04007705 RID: 30469
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007705")]
private int H6;
// Token: 0x04007706 RID: 30470
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4007706")]
private int H7;
// Token: 0x04007707 RID: 30471
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007707")]
private int H8;
// Token: 0x04007708 RID: 30472
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4007708")]
private int H9;
// Token: 0x04007709 RID: 30473
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007709")]
private int[] X;
// Token: 0x0400770A RID: 30474
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400770A")]
private int xOff;
}
}
@@ -0,0 +1,378 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF4 RID: 7412
[Token(Token = "0x2001CF4")]
public class SM3Digest : GeneralDigest
{
// Token: 0x0600BB56 RID: 47958 RVA: 0x002A6FC8 File Offset: 0x002A51C8
[Token(Token = "0x600BB56")]
[Address(RVA = "0x1FDE160", Offset = "0x1FDCF60", VA = "0x181FDE160")]
static SM3Digest()
{
uint[] array = new uint[64];
int num = 0;
SM3Digest.T = array;
uint[] t = SM3Digest.T;
num++;
t[0] = (uint)2043430169;
if (32UL < (ulong)16L)
{
}
SM3Digest.T[0] = (uint)2055708042;
}
// Token: 0x0600BB57 RID: 47959 RVA: 0x002A701C File Offset: 0x002A521C
[Token(Token = "0x600BB57")]
[Address(RVA = "0x1FDE2A0", Offset = "0x1FDD0A0", VA = "0x181FDE2A0")]
public SM3Digest()
{
uint[] array = new uint[8];
this.V = array;
uint[] array2 = new uint[16];
this.inwords = array2;
uint[] array3 = new uint[68];
this.W = array3;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB58 RID: 47960 RVA: 0x002A7064 File Offset: 0x002A5264
[Token(Token = "0x600BB58")]
[Address(RVA = "0x1FDE330", Offset = "0x1FDD130", VA = "0x181FDE330")]
public SM3Digest(SM3Digest t)
{
uint[] array = new uint[8];
this.V = array;
uint[] array2 = new uint[16];
this.inwords = array2;
uint[] array3 = new uint[68];
this.W = array3;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB59 RID: 47961 RVA: 0x002A70AC File Offset: 0x002A52AC
[Token(Token = "0x600BB59")]
[Address(RVA = "0x1FDD2F0", Offset = "0x1FDC0F0", VA = "0x181FDD2F0")]
private void CopyIn(SM3Digest t)
{
uint[] v = this.V;
int length = v.Length;
int num = 0;
uint[] v2 = t.V;
int num2 = 0;
Array.Copy(v2, num2, v, num, length);
uint[] array = this.inwords;
int length2 = array.Length;
int num3 = 0;
uint[] array2 = t.inwords;
int num4 = 0;
Array.Copy(array2, num4, array, num3, length2);
int num5 = t.xOff;
this.xOff = num5;
}
// Token: 0x17001D1C RID: 7452
// (get) Token: 0x0600BB5A RID: 47962 RVA: 0x002A7124 File Offset: 0x002A5324
[Token(Token = "0x17001D1C")]
public override string AlgorithmName
{
[Token(Token = "0x600BB5A")]
[Address(RVA = "0x1FDE3C0", Offset = "0x1FDD1C0", VA = "0x181FDE3C0", Slot = "17")]
get
{
return "SM3";
}
}
// Token: 0x0600BB5B RID: 47963 RVA: 0x002A7138 File Offset: 0x002A5338
[Token(Token = "0x600BB5B")]
[Address(RVA = "0x55EA70", Offset = "0x55D870", VA = "0x18055EA70", Slot = "18")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x0600BB5C RID: 47964 RVA: 0x002A7148 File Offset: 0x002A5348
[Token(Token = "0x600BB5C")]
[Address(RVA = "0x1FDD370", Offset = "0x1FDC170", VA = "0x181FDD370", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB5C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SM3Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SM3Digest(var_0_06, newobj:SM3Digest(SM3Digest::.ctor, ldloc:SM3Digest(this)))
stloc:uint32[](var_1_0D, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(8)))
stfld:uint32[](SM3Digest::V, ldloc:SM3Digest(var_0_06), ldloc:uint32[](var_1_0D))
stloc:uint32[](var_2_1C, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(16)))
stfld:uint32[](SM3Digest::inwords, ldloc:SM3Digest(var_0_06), ldloc:uint32[](var_2_1C))
stloc:uint32[](var_3_2B, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(68)))
stfld:uint32[](SM3Digest::W, ldloc:SM3Digest(var_0_06), ldloc:uint32[](var_3_2B))
call:void(SM3Digest::CopyIn, ldloc:SM3Digest(var_0_06), ldloc:SM3Digest(this))
}
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: 0x0600BB5D RID: 47965 RVA: 0x002A7190 File Offset: 0x002A5390
[Token(Token = "0x600BB5D")]
[Address(RVA = "0x1FDDF20", Offset = "0x1FDCD20", VA = "0x181FDDF20", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x0600BB5E RID: 47966 RVA: 0x002A71A8 File Offset: 0x002A53A8
[Token(Token = "0x600BB5E")]
[Address(RVA = "0x1FDDFD0", Offset = "0x1FDCDD0", VA = "0x181FDDFD0", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] v = this.V;
uint[] v2 = this.V;
uint[] v3 = this.V;
uint[] v4 = this.V;
uint[] v5 = this.V;
uint[] v6 = this.V;
uint[] v7 = this.V;
uint[] v8 = this.V;
this.xOff = (int)((ulong)0L);
}
// Token: 0x0600BB5F RID: 47967 RVA: 0x002A7208 File Offset: 0x002A5408
[Token(Token = "0x600BB5F")]
[Address(RVA = "0x1FDD430", Offset = "0x1FDC230", VA = "0x181FDD430", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.V, output, outOff);
return 32;
}
// Token: 0x0600BB60 RID: 47968 RVA: 0x002A722C File Offset: 0x002A542C
[Token(Token = "0x600BB60")]
[Address(RVA = "0x1FDDEB0", Offset = "0x1FDCCB0", VA = "0x181FDDEB0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint num = Pack.BE_To_UInt32(input, inOff);
uint[] array = this.inwords;
int num2 = this.xOff;
array[0] = num;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB61 RID: 47969 RVA: 0x002A7268 File Offset: 0x002A5468
[Token(Token = "0x600BB61")]
[Address(RVA = "0x1FDDD80", Offset = "0x1FDCB80", VA = "0x181FDDD80", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
int num;
int num2;
do
{
num = this.xOff;
num2 = 0;
}
while (num <= 14);
this.inwords[0] = (uint)num2;
int num3;
if (this.xOff < 14)
{
this.inwords[0] = (uint)num2;
num3 = this.xOff;
num3++;
this.xOff = num3;
}
uint[] array = this.inwords;
int num4 = num3 + 1;
this.xOff = num4;
array[0] = (uint)bitLength;
int num5 = this.xOff;
uint[] array2 = this.inwords;
int num6 = num5 + 1;
this.xOff = num6;
array2[0] = (uint)bitLength;
}
// Token: 0x0600BB62 RID: 47970 RVA: 0x002A7308 File Offset: 0x002A5508
[Token(Token = "0x600BB62")]
[Address(RVA = "0x1FDD490", Offset = "0x1FDC290", VA = "0x181FDD490")]
private uint P0(uint x)
{
return x;
}
// Token: 0x0600BB63 RID: 47971 RVA: 0x002A7318 File Offset: 0x002A5518
[Token(Token = "0x600BB63")]
[Address(RVA = "0x1FDD4C0", Offset = "0x1FDC2C0", VA = "0x181FDD4C0")]
private uint P1(uint x)
{
return x;
}
// Token: 0x0600BB64 RID: 47972 RVA: 0x002A7328 File Offset: 0x002A5528
[Token(Token = "0x600BB64")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private uint FF0(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB65 RID: 47973 RVA: 0x002A7338 File Offset: 0x002A5538
[Token(Token = "0x600BB65")]
[Address(RVA = "0x63B400", Offset = "0x63A200", VA = "0x18063B400")]
private uint FF1(uint x, uint y, uint z)
{
return y;
}
// Token: 0x0600BB66 RID: 47974 RVA: 0x002A7348 File Offset: 0x002A5548
[Token(Token = "0x600BB66")]
[Address(RVA = "0x63B460", Offset = "0x63A260", VA = "0x18063B460")]
private uint GG0(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB67 RID: 47975 RVA: 0x002A7358 File Offset: 0x002A5558
[Token(Token = "0x600BB67")]
[Address(RVA = "0x63B3A0", Offset = "0x63A1A0", VA = "0x18063B3A0")]
private uint GG1(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB68 RID: 47976 RVA: 0x002A7368 File Offset: 0x002A5568
[Token(Token = "0x600BB68")]
[Address(RVA = "0x1FDD4F0", Offset = "0x1FDC2F0", VA = "0x181FDD4F0", Slot = "16")]
internal override void ProcessBlock()
{
int num = 0;
uint[] array = this.inwords;
uint[] w = this.W;
uint num2 = array[num];
num++;
w[0] = num2;
uint[] w2 = this.W;
int length = w2.Length;
uint num3 = w2[w];
uint num4;
num4 += (uint)1;
w2[0] = num3;
uint[] v = this.V;
int length2 = v.Length;
uint num5 = v[0];
uint num6 = v[0];
uint num7 = v[1];
uint num8 = v[1];
uint num9 = v[2];
uint num10 = v[2];
uint num11 = v[3];
uint num12 = v[3];
int num13 = 0;
num12 = num5;
uint[] t = SM3Digest.T;
uint num14;
num14 += num5;
num14 += num9;
uint[] w3 = this.W;
int length3 = w3.Length;
num13 += 4;
num7 += num8;
num6 = num11;
num6 += num12;
uint num15;
num6 += num15;
num6 += num14;
num13++;
num5 = num14;
uint num16 = w3[num13];
num7 += num16;
num5 += num7;
num7 = num10;
num9 = num6;
uint[] t2 = SM3Digest.T;
uint[] w4 = this.W;
uint num17;
num17 += num5;
num17 += num9;
num14 = num17;
int length4 = w4.Length;
num6 = num5;
num5 = num9;
uint num18 = w4[t2];
num18 += num7;
num18 += num6;
num5 += num18;
num5 += num11;
uint num19;
num5 += num19;
num5 += num14;
num4 += (uint)1;
uint[] v2 = this.V;
uint[] v3 = this.V;
uint[] v4 = this.V;
uint[] v5 = this.V;
uint[] v6 = this.V;
uint[] v7 = this.V;
uint[] v8 = this.V;
uint[] v9 = this.V;
this.xOff = (int)((ulong)0L);
}
// Token: 0x0400770B RID: 30475
[Token(Token = "0x400770B")]
private const int DIGEST_LENGTH = 32;
// Token: 0x0400770C RID: 30476
[Token(Token = "0x400770C")]
private const int BLOCK_SIZE = 16;
// Token: 0x0400770D RID: 30477
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400770D")]
private uint[] V;
// Token: 0x0400770E RID: 30478
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400770E")]
private uint[] inwords;
// Token: 0x0400770F RID: 30479
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400770F")]
private int xOff;
// Token: 0x04007710 RID: 30480
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007710")]
private uint[] W;
// Token: 0x04007711 RID: 30481
[Token(Token = "0x4007711")]
private static readonly uint[] T;
}
}
@@ -0,0 +1,349 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF5 RID: 7413
[Token(Token = "0x2001CF5")]
public class Sha1Digest : GeneralDigest
{
// Token: 0x0600BB69 RID: 47977 RVA: 0x002A7598 File Offset: 0x002A5798
[Token(Token = "0x600BB69")]
[Address(RVA = "0x1FDF1C0", Offset = "0x1FDDFC0", VA = "0x181FDF1C0")]
public Sha1Digest()
{
uint[] array = new uint[80];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB6A RID: 47978 RVA: 0x002A75C4 File Offset: 0x002A57C4
[Token(Token = "0x600BB6A")]
[Address(RVA = "0x1FDF150", Offset = "0x1FDDF50", VA = "0x181FDF150")]
public Sha1Digest(Sha1Digest t)
{
uint[] array = new uint[80];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB6B RID: 47979 RVA: 0x002A75F0 File Offset: 0x002A57F0
[Token(Token = "0x600BB6B")]
[Address(RVA = "0x1FD59B0", Offset = "0x1FD47B0", VA = "0x181FD59B0")]
private void CopyIn(Sha1Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint h5 = t.H5;
this.H5 = h5;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001D1D RID: 7453
// (get) Token: 0x0600BB6C RID: 47980 RVA: 0x002A7690 File Offset: 0x002A5890
[Token(Token = "0x17001D1D")]
public override string AlgorithmName
{
[Token(Token = "0x600BB6C")]
[Address(RVA = "0x1FDF220", Offset = "0x1FDE020", VA = "0x181FDF220", Slot = "17")]
get
{
return "SHA-1";
}
}
// Token: 0x0600BB6D RID: 47981 RVA: 0x002A76A4 File Offset: 0x002A58A4
[Token(Token = "0x600BB6D")]
[Address(RVA = "0x4B5D20", Offset = "0x4B4B20", VA = "0x1804B5D20", Slot = "18")]
public override int GetDigestSize()
{
return 20;
}
// Token: 0x0600BB6E RID: 47982 RVA: 0x002A76B4 File Offset: 0x002A58B4
[Token(Token = "0x600BB6E")]
[Address(RVA = "0x1FDEFC0", Offset = "0x1FDDDC0", VA = "0x181FDEFC0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
uint num2 = Pack.BE_To_UInt32(input, inOff);
x[0] = num2;
int num3 = this.xOff;
num3++;
this.xOff = num3;
if (num3 == 16)
{
}
}
// Token: 0x0600BB6F RID: 47983 RVA: 0x002A76FC File Offset: 0x002A58FC
[Token(Token = "0x600BB6F")]
[Address(RVA = "0x1FDEF30", Offset = "0x1FDDD30", VA = "0x181FDEF30", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x0600BB70 RID: 47984 RVA: 0x002A7734 File Offset: 0x002A5934
[Token(Token = "0x600BB70")]
[Address(RVA = "0x1FDE490", Offset = "0x1FDD290", VA = "0x181FDE490", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.H1, output, outOff);
Pack.UInt32_To_BE(this.H2, output, outOff);
Pack.UInt32_To_BE(this.H3, output, outOff);
Pack.UInt32_To_BE(this.H4, output, outOff);
Pack.UInt32_To_BE(this.H5, output, outOff);
return 20;
}
// Token: 0x0600BB71 RID: 47985 RVA: 0x002A778C File Offset: 0x002A598C
[Token(Token = "0x600BB71")]
[Address(RVA = "0x1FDF050", Offset = "0x1FDDE50", VA = "0x181FDF050", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
this.H1 = (uint)((ulong)1732584193L);
this.H2 = (uint)((ulong)4023233417L);
this.H3 = (uint)((ulong)2562383102L);
this.H4 = (uint)((ulong)271733878L);
this.H5 = (uint)((ulong)3285377520L);
this.xOff = (int)((ulong)0L);
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x0600BB72 RID: 47986 RVA: 0x002A7810 File Offset: 0x002A5A10
[Token(Token = "0x600BB72")]
[Address(RVA = "0x1B448D0", Offset = "0x1B436D0", VA = "0x181B448D0")]
private static uint F(uint u, uint v, uint w)
{
return u;
}
// Token: 0x0600BB73 RID: 47987 RVA: 0x002A7820 File Offset: 0x002A5A20
[Token(Token = "0x600BB73")]
[Address(RVA = "0x1B448F0", Offset = "0x1B436F0", VA = "0x181B448F0")]
private static uint H(uint u, uint v, uint w)
{
return u;
}
// Token: 0x0600BB74 RID: 47988 RVA: 0x002A7830 File Offset: 0x002A5A30
[Token(Token = "0x600BB74")]
[Address(RVA = "0x1FDE530", Offset = "0x1FDD330", VA = "0x181FDE530")]
private static uint G(uint u, uint v, uint w)
{
return v;
}
// Token: 0x0600BB75 RID: 47989 RVA: 0x002A7840 File Offset: 0x002A5A40
[Token(Token = "0x600BB75")]
[Address(RVA = "0x1FDE540", Offset = "0x1FDD340", VA = "0x181FDE540", Slot = "16")]
internal override void ProcessBlock()
{
uint[] x = this.X;
int length = x.Length;
uint num;
num += (uint)1;
uint num2;
num2 += num2;
x[0] = num2;
uint num3 = this.H1;
int num4 = 0;
uint num5 = this.H2;
uint num6 = this.H3;
uint num7 = this.H4;
uint num8 = this.H5;
uint[] x2 = this.X;
int length2 = x2.Length;
num8 += (uint)1518500249;
num3 = num6;
num2 = num3;
num5 += num2;
num5 += num8;
num2 = num5;
num3 = num5;
num2 += (uint)1518500249;
num3 += num2;
num3 += num7;
num3 = num5;
num2 = num3;
num5 += (uint)1518500249;
num8 = num5;
num5 += num2;
num5 += num6;
num4 += 3;
num7 = num3;
num2 = num5;
num3 = num5;
num3 += num2;
num8 += (uint)1518500249;
num8 += num3;
num6 = num5;
num3 = num8;
num2 = num8;
num3 += num2;
num4++;
int length3 = x2.Length;
num3 = num8;
num7 += num8;
num6 += num7;
num4 += 2;
num4 += 4;
num4 += 3;
ulong num9;
num9 += (ulong)1L;
int length4 = x2.Length;
num4 += -1894007588;
num4 += 4;
num4 += 4;
num4 += -1894007588;
num4 += 1859775393;
num4 += 4;
num4 += -1894007588;
num4 += num4;
num4 += num4;
num4 += 3;
num4 += num4;
num4 += -1894007588;
ulong num10;
num10 += (ulong)1L;
int length5 = x2.Length;
num4 += num4;
num4 += num4;
num4 += 2;
num4 += -1894007588;
num4 += 3;
ulong num11;
num11 += (ulong)1L;
int num12 = 0;
num3 += 2400959708U;
Array.Clear(x2, num12, 16);
}
// Token: 0x0600BB76 RID: 47990 RVA: 0x002A7A54 File Offset: 0x002A5C54
[Token(Token = "0x600BB76")]
[Address(RVA = "0x1FDE3F0", Offset = "0x1FDD1F0", VA = "0x181FDE3F0", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB76)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha1Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha1Digest(var_0_06, newobj:Sha1Digest(Sha1Digest::.ctor, ldloc:Sha1Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(80)))
stfld:uint32[](Sha1Digest::X, ldloc:Sha1Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(Sha1Digest::CopyIn, ldloc:Sha1Digest(var_0_06), ldloc:Sha1Digest(this))
}
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: 0x0600BB77 RID: 47991 RVA: 0x002A7A80 File Offset: 0x002A5C80
[Token(Token = "0x600BB77")]
[Address(RVA = "0x1FDF0B0", Offset = "0x1FDDEB0", VA = "0x181FDF0B0", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x04007712 RID: 30482
[Token(Token = "0x4007712")]
private const int DigestLength = 20;
// Token: 0x04007713 RID: 30483
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007713")]
private uint H1;
// Token: 0x04007714 RID: 30484
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007714")]
private uint H2;
// Token: 0x04007715 RID: 30485
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007715")]
private uint H3;
// Token: 0x04007716 RID: 30486
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4007716")]
private uint H4;
// Token: 0x04007717 RID: 30487
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007717")]
private uint H5;
// Token: 0x04007718 RID: 30488
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007718")]
private uint[] X;
// Token: 0x04007719 RID: 30489
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007719")]
private int xOff;
// Token: 0x0400771A RID: 30490
[Token(Token = "0x400771A")]
private const uint Y1 = 1518500249U;
// Token: 0x0400771B RID: 30491
[Token(Token = "0x400771B")]
private const uint Y2 = 1859775393U;
// Token: 0x0400771C RID: 30492
[Token(Token = "0x400771C")]
private const uint Y3 = 2400959708U;
// Token: 0x0400771D RID: 30493
[Token(Token = "0x400771D")]
private const uint Y4 = 3395469782U;
}
}
@@ -0,0 +1,424 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF6 RID: 7414
[Token(Token = "0x2001CF6")]
public class Sha224Digest : GeneralDigest
{
// Token: 0x0600BB78 RID: 47992 RVA: 0x002A7A98 File Offset: 0x002A5C98
[Token(Token = "0x600BB78")]
[Address(RVA = "0x1FE01F0", Offset = "0x1FDEFF0", VA = "0x181FE01F0")]
public Sha224Digest()
{
uint[] array = new uint[64];
this.X = array;
base..ctor();
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x0600BB79 RID: 47993 RVA: 0x002A7AC4 File Offset: 0x002A5CC4
[Token(Token = "0x600BB79")]
[Address(RVA = "0x1FE0180", Offset = "0x1FDEF80", VA = "0x181FE0180")]
public Sha224Digest(Sha224Digest t)
{
uint[] array = new uint[64];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB7A RID: 47994 RVA: 0x002A7AF0 File Offset: 0x002A5CF0
[Token(Token = "0x600BB7A")]
[Address(RVA = "0x1FD8560", Offset = "0x1FD7360", VA = "0x181FD8560")]
private void CopyIn(Sha224Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint h5 = t.H5;
this.H5 = h5;
uint h6 = t.H6;
this.H6 = h6;
uint h7 = t.H7;
this.H7 = h7;
uint h8 = t.H8;
this.H8 = h8;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001D1E RID: 7454
// (get) Token: 0x0600BB7B RID: 47995 RVA: 0x002A7BC0 File Offset: 0x002A5DC0
[Token(Token = "0x17001D1E")]
public override string AlgorithmName
{
[Token(Token = "0x600BB7B")]
[Address(RVA = "0x1FE0250", Offset = "0x1FDF050", VA = "0x181FE0250", Slot = "17")]
get
{
return "SHA-224";
}
}
// Token: 0x0600BB7C RID: 47996 RVA: 0x002A7BD4 File Offset: 0x002A5DD4
[Token(Token = "0x600BB7C")]
[Address(RVA = "0x4B42D0", Offset = "0x4B30D0", VA = "0x1804B42D0", Slot = "18")]
public override int GetDigestSize()
{
return 28;
}
// Token: 0x0600BB7D RID: 47997 RVA: 0x002A7BE4 File Offset: 0x002A5DE4
[Token(Token = "0x600BB7D")]
[Address(RVA = "0x1FDFEF0", Offset = "0x1FDECF0", VA = "0x181FDFEF0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
uint num2 = Pack.BE_To_UInt32(input, inOff);
x[0] = num2;
int num3 = this.xOff;
num3++;
this.xOff = num3;
if (num3 == 16)
{
}
}
// Token: 0x0600BB7E RID: 47998 RVA: 0x002A7C2C File Offset: 0x002A5E2C
[Token(Token = "0x600BB7E")]
[Address(RVA = "0x1FDFE60", Offset = "0x1FDEC60", VA = "0x181FDFE60", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x0600BB7F RID: 47999 RVA: 0x002A7C64 File Offset: 0x002A5E64
[Token(Token = "0x600BB7F")]
[Address(RVA = "0x1FDF300", Offset = "0x1FDE100", VA = "0x181FDF300", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.H1, output, outOff);
Pack.UInt32_To_BE(this.H2, output, outOff);
Pack.UInt32_To_BE(this.H3, output, outOff);
Pack.UInt32_To_BE(this.H4, output, outOff);
Pack.UInt32_To_BE(this.H5, output, outOff);
Pack.UInt32_To_BE(this.H6, output, outOff);
Pack.UInt32_To_BE(this.H7, output, outOff);
return 28;
}
// Token: 0x0600BB80 RID: 48000 RVA: 0x002A7CD4 File Offset: 0x002A5ED4
[Token(Token = "0x600BB80")]
[Address(RVA = "0x1FE0020", Offset = "0x1FDEE20", VA = "0x181FE0020", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
this.H1 = (uint)((ulong)3238371032L);
this.H2 = (uint)((ulong)914150663L);
this.H3 = (uint)((ulong)812702999L);
this.H4 = (uint)((ulong)4144912697L);
this.H5 = (uint)((ulong)4290775857L);
this.H6 = (uint)((ulong)1750603025L);
this.H7 = (uint)((ulong)1694076839L);
this.H8 = (uint)((ulong)3204075428L);
this.xOff = (int)((ulong)0L);
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x0600BB81 RID: 48001 RVA: 0x002A7D84 File Offset: 0x002A5F84
[Token(Token = "0x600BB81")]
[Address(RVA = "0x1FDF3E0", Offset = "0x1FDE1E0", VA = "0x181FDF3E0", Slot = "16")]
internal override void ProcessBlock()
{
uint[] x = this.X;
int length = this.X.Length;
uint num;
num += (uint)1;
uint num2;
num2 += num2;
x[0] = num2;
while (num <= (uint)63)
{
}
uint num3 = this.H4;
int num4 = 0;
uint num5 = this.H3;
uint num6 = this.H5;
uint num7 = this.H1;
uint num8 = this.H2;
uint num9 = this.H6;
uint num10 = this.H7;
uint num11 = this.H8;
num6 = num2;
int length2 = Sha224Digest.K.Length;
int length3 = this.X.Length;
num2 = num6;
num6 = num9;
num2 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num11 += num2;
num2 = num3;
num11 = num3;
num2 += num3;
num6 = num11;
num10 += num2;
num2 = num11;
num11 += num10;
num11 += num2;
num2 = num5;
num11 = num5;
num2 += num5;
num9 += num2;
num8 += num9;
num2 = num11;
num3 = num11;
num5 = num11;
num9 += num5;
num9 += num2;
num4 += 3;
num2 = num8;
num11 = num8;
num5 = num9;
num2 += num5;
num6 += num2;
num2 = num9;
num7 += num6;
num11 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num5 = num7;
num2 += num5;
num3 += num2;
num2 = num11;
num3 = num9;
num5 = num9;
num3 += num2;
num4 += 5;
num2 = num11;
num3 = num11;
num2 += num11;
num11 = num3;
num5 += num2;
num2 = num3;
num11 += num5;
num11 += num2;
num2 = num11;
num3 = num11;
num2 += num3;
num8 += num2;
num9 += num8;
num2 = num11;
num3 = num11;
num8 += num3;
num8 += num2;
num4 += 7;
num2 = num9;
num4 += 8;
num3 = num8;
num2 += num3;
num7 += num2;
num11 += num7;
num2 = num8;
num3 = num11;
num7 += num3;
num4++;
num7 += num2;
int num12 = 0;
uint[] x2 = this.X;
this.H5 = num3;
this.H6 = num3;
this.H7 = num3;
this.xOff = (int)((ulong)0L);
Array.Clear(x2, num12, 16);
}
// Token: 0x0600BB82 RID: 48002 RVA: 0x002A8078 File Offset: 0x002A6278
[Token(Token = "0x600BB82")]
[Address(RVA = "0x1FDF250", Offset = "0x1FDE050", VA = "0x181FDF250")]
private static uint Ch(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB83 RID: 48003 RVA: 0x002A8088 File Offset: 0x002A6288
[Token(Token = "0x600BB83")]
[Address(RVA = "0x1FDF3D0", Offset = "0x1FDE1D0", VA = "0x181FDF3D0")]
private static uint Maj(uint x, uint y, uint z)
{
return y;
}
// Token: 0x0600BB84 RID: 48004 RVA: 0x002A8098 File Offset: 0x002A6298
[Token(Token = "0x600BB84")]
[Address(RVA = "0x1FE00A0", Offset = "0x1FDEEA0", VA = "0x181FE00A0")]
private static uint Sum0(uint x)
{
return x;
}
// Token: 0x0600BB85 RID: 48005 RVA: 0x002A80A8 File Offset: 0x002A62A8
[Token(Token = "0x600BB85")]
[Address(RVA = "0x1FE00E0", Offset = "0x1FDEEE0", VA = "0x181FE00E0")]
private static uint Sum1(uint x)
{
return x;
}
// Token: 0x0600BB86 RID: 48006 RVA: 0x002A80B8 File Offset: 0x002A62B8
[Token(Token = "0x600BB86")]
[Address(RVA = "0x1DCE330", Offset = "0x1DCD130", VA = "0x181DCE330")]
private static uint Theta0(uint x)
{
return x;
}
// Token: 0x0600BB87 RID: 48007 RVA: 0x002A80C8 File Offset: 0x002A62C8
[Token(Token = "0x600BB87")]
[Address(RVA = "0x1DCE360", Offset = "0x1DCD160", VA = "0x181DCE360")]
private static uint Theta1(uint x)
{
return x;
}
// Token: 0x0600BB88 RID: 48008 RVA: 0x002A80D8 File Offset: 0x002A62D8
[Token(Token = "0x600BB88")]
[Address(RVA = "0x1FDF260", Offset = "0x1FDE060", VA = "0x181FDF260", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB88)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha224Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha224Digest(var_0_06, newobj:Sha224Digest(Sha224Digest::.ctor, ldloc:Sha224Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(64)))
stfld:uint32[](Sha224Digest::X, ldloc:Sha224Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(Sha224Digest::CopyIn, ldloc:Sha224Digest(var_0_06), ldloc:Sha224Digest(this))
}
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: 0x0600BB89 RID: 48009 RVA: 0x002A8104 File Offset: 0x002A6304
[Token(Token = "0x600BB89")]
[Address(RVA = "0x1FDFF80", Offset = "0x1FDED80", VA = "0x181FDFF80", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x0600BB8A RID: 48010 RVA: 0x002A811C File Offset: 0x002A631C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BB8A")]
[Address(RVA = "0x1FE0120", Offset = "0x1FDEF20", VA = "0x181FE0120")]
static Sha224Digest()
{
uint[] array = new uint[64];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.433175D38B13FFE177FDD661A309F1B528B3F6E2).FieldHandle);
Sha224Digest.K = array;
}
// Token: 0x0400771E RID: 30494
[Token(Token = "0x400771E")]
private const int DigestLength = 28;
// Token: 0x0400771F RID: 30495
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400771F")]
private uint H1;
// Token: 0x04007720 RID: 30496
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007720")]
private uint H2;
// Token: 0x04007721 RID: 30497
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007721")]
private uint H3;
// Token: 0x04007722 RID: 30498
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4007722")]
private uint H4;
// Token: 0x04007723 RID: 30499
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007723")]
private uint H5;
// Token: 0x04007724 RID: 30500
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4007724")]
private uint H6;
// Token: 0x04007725 RID: 30501
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007725")]
private uint H7;
// Token: 0x04007726 RID: 30502
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4007726")]
private uint H8;
// Token: 0x04007727 RID: 30503
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007727")]
private uint[] X;
// Token: 0x04007728 RID: 30504
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007728")]
private int xOff;
// Token: 0x04007729 RID: 30505
[Token(Token = "0x4007729")]
internal static readonly uint[] K;
}
}
@@ -0,0 +1,431 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF7 RID: 7415
[Token(Token = "0x2001CF7")]
public class Sha256Digest : GeneralDigest
{
// Token: 0x0600BB8B RID: 48011 RVA: 0x002A8144 File Offset: 0x002A6344
[Token(Token = "0x600BB8B")]
[Address(RVA = "0x1FE10A0", Offset = "0x1FDFEA0", VA = "0x181FE10A0")]
public Sha256Digest()
{
uint[] array = new uint[64];
this.X = array;
base..ctor();
this.H1 = (uint)((ulong)1779033703L);
this.H2 = (uint)((ulong)3144134277L);
this.H3 = (uint)((ulong)1013904242L);
this.H4 = (uint)((ulong)2773480762L);
this.H5 = (uint)((ulong)1359893119L);
this.H6 = (uint)((ulong)2600822924L);
this.H7 = (uint)((ulong)528734635L);
this.H8 = (uint)((ulong)1541459225L);
}
// Token: 0x0600BB8C RID: 48012 RVA: 0x002A81D8 File Offset: 0x002A63D8
[Token(Token = "0x600BB8C")]
[Address(RVA = "0x1FE1130", Offset = "0x1FDFF30", VA = "0x181FE1130")]
public Sha256Digest(Sha256Digest t)
{
uint[] array = new uint[64];
this.X = array;
base..ctor(t);
this.CopyIn(t);
}
// Token: 0x0600BB8D RID: 48013 RVA: 0x002A8204 File Offset: 0x002A6404
[Token(Token = "0x600BB8D")]
[Address(RVA = "0x1FD8560", Offset = "0x1FD7360", VA = "0x181FD8560")]
private void CopyIn(Sha256Digest t)
{
base.CopyIn(t);
uint h = t.H1;
this.H1 = h;
uint h2 = t.H2;
this.H2 = h2;
uint h3 = t.H3;
this.H3 = h3;
uint h4 = t.H4;
this.H4 = h4;
uint h5 = t.H5;
this.H5 = h5;
uint h6 = t.H6;
this.H6 = h6;
uint h7 = t.H7;
this.H7 = h7;
uint h8 = t.H8;
this.H8 = h8;
uint[] x = t.X;
int length = x.Length;
int num = 0;
uint[] x2 = this.X;
int num2 = 0;
Array.Copy(x, num2, x2, num, length);
int num3 = t.xOff;
this.xOff = num3;
}
// Token: 0x17001D1F RID: 7455
// (get) Token: 0x0600BB8E RID: 48014 RVA: 0x002A82D4 File Offset: 0x002A64D4
[Token(Token = "0x17001D1F")]
public override string AlgorithmName
{
[Token(Token = "0x600BB8E")]
[Address(RVA = "0x1FE11A0", Offset = "0x1FDFFA0", VA = "0x181FE11A0", Slot = "17")]
get
{
return "SHA-256";
}
}
// Token: 0x0600BB8F RID: 48015 RVA: 0x002A82E8 File Offset: 0x002A64E8
[Token(Token = "0x600BB8F")]
[Address(RVA = "0x55EA70", Offset = "0x55D870", VA = "0x18055EA70", Slot = "18")]
public override int GetDigestSize()
{
return 32;
}
// Token: 0x0600BB90 RID: 48016 RVA: 0x002A82F8 File Offset: 0x002A64F8
[Token(Token = "0x600BB90")]
[Address(RVA = "0x1FDFEF0", Offset = "0x1FDECF0", VA = "0x181FDFEF0", Slot = "14")]
internal override void ProcessWord(byte[] input, int inOff)
{
uint[] x = this.X;
int num = this.xOff;
uint num2 = Pack.BE_To_UInt32(input, inOff);
x[0] = num2;
int num3 = this.xOff;
num3++;
this.xOff = num3;
if (num3 == 16)
{
}
}
// Token: 0x0600BB91 RID: 48017 RVA: 0x002A8340 File Offset: 0x002A6540
[Token(Token = "0x600BB91")]
[Address(RVA = "0x1FDFE60", Offset = "0x1FDEC60", VA = "0x181FDFE60", Slot = "15")]
internal override void ProcessLength(long bitLength)
{
if (this.xOff > 14)
{
}
this.X[7] = (uint)bitLength;
this.X[7] = (uint)bitLength;
}
// Token: 0x0600BB92 RID: 48018 RVA: 0x002A8378 File Offset: 0x002A6578
[Token(Token = "0x600BB92")]
[Address(RVA = "0x1FE0320", Offset = "0x1FDF120", VA = "0x181FE0320", Slot = "19")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt32_To_BE(this.H1, output, outOff);
Pack.UInt32_To_BE(this.H2, output, outOff);
Pack.UInt32_To_BE(this.H3, output, outOff);
Pack.UInt32_To_BE(this.H4, output, outOff);
Pack.UInt32_To_BE(this.H5, output, outOff);
Pack.UInt32_To_BE(this.H6, output, outOff);
Pack.UInt32_To_BE(this.H7, output, outOff);
Pack.UInt32_To_BE(this.H8, output, outOff);
return 32;
}
// Token: 0x0600BB93 RID: 48019 RVA: 0x002A83F8 File Offset: 0x002A65F8
[Token(Token = "0x600BB93")]
[Address(RVA = "0x1FE0F20", Offset = "0x1FDFD20", VA = "0x181FE0F20", Slot = "13")]
public override void Reset()
{
base.Reset();
uint[] x = this.X;
this.H1 = (uint)((ulong)1779033703L);
this.H2 = (uint)((ulong)3144134277L);
this.H3 = (uint)((ulong)1013904242L);
this.H4 = (uint)((ulong)2773480762L);
this.H5 = (uint)((ulong)1359893119L);
this.H6 = (uint)((ulong)2600822924L);
this.H7 = (uint)((ulong)528734635L);
this.H8 = (uint)((ulong)1541459225L);
this.xOff = (int)((ulong)0L);
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x0600BB94 RID: 48020 RVA: 0x002A84A4 File Offset: 0x002A66A4
[Token(Token = "0x600BB94")]
[Address(RVA = "0x1FE11D0", Offset = "0x1FDFFD0", VA = "0x181FE11D0")]
private void initHs()
{
this.H1 = (uint)((ulong)1779033703L);
this.H2 = (uint)((ulong)3144134277L);
this.H3 = (uint)((ulong)1013904242L);
this.H4 = (uint)((ulong)2773480762L);
this.H5 = (uint)((ulong)1359893119L);
this.H6 = (uint)((ulong)2600822924L);
this.H7 = (uint)((ulong)528734635L);
this.H8 = (uint)((ulong)1541459225L);
}
// Token: 0x0600BB95 RID: 48021 RVA: 0x002A8524 File Offset: 0x002A6724
[Token(Token = "0x600BB95")]
[Address(RVA = "0x1FE0400", Offset = "0x1FDF200", VA = "0x181FE0400", Slot = "16")]
internal override void ProcessBlock()
{
uint[] x = this.X;
int length = this.X.Length;
uint num;
num += (uint)1;
uint num2;
num2 += num2;
x[0] = num2;
while (num <= (uint)63)
{
}
uint num3 = this.H4;
int num4 = 0;
uint num5 = this.H3;
uint num6 = this.H5;
uint num7 = this.H1;
uint num8 = this.H2;
uint num9 = this.H6;
uint num10 = this.H7;
uint num11 = this.H8;
num6 = num2;
int length2 = Sha256Digest.K.Length;
int length3 = this.X.Length;
num2 = num6;
num6 = num9;
num2 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num11 += num2;
num2 = num3;
num11 = num3;
num2 += num3;
num6 = num11;
num10 += num2;
num2 = num11;
num11 += num10;
num11 += num2;
num2 = num5;
num11 = num5;
num2 += num5;
num9 += num2;
num8 += num9;
num2 = num11;
num3 = num11;
num5 = num11;
num9 += num5;
num9 += num2;
num4 += 3;
num2 = num8;
num11 = num8;
num5 = num9;
num2 += num5;
num6 += num2;
num2 = num9;
num7 += num6;
num11 += num6;
num11 += num2;
num2 = num7;
num11 = num8;
num5 = num7;
num2 += num5;
num3 += num2;
num2 = num11;
num3 = num9;
num5 = num9;
num3 += num2;
num4 += 5;
num2 = num11;
num3 = num11;
num2 += num11;
num11 = num3;
num5 += num2;
num2 = num3;
num11 += num5;
num11 += num2;
num2 = num11;
num3 = num11;
num2 += num3;
num8 += num2;
num9 += num8;
num2 = num11;
num3 = num11;
num8 += num3;
num8 += num2;
num4 += 7;
num2 = num9;
num4 += 8;
num3 = num8;
num2 += num3;
num7 += num2;
num11 += num7;
num2 = num8;
num3 = num11;
num7 += num3;
num4++;
num7 += num2;
int num12 = 0;
uint[] x2 = this.X;
this.H5 = num3;
this.H6 = num3;
this.H7 = num3;
this.xOff = (int)((ulong)0L);
Array.Clear(x2, num12, 16);
}
// Token: 0x0600BB96 RID: 48022 RVA: 0x002A8818 File Offset: 0x002A6A18
[Token(Token = "0x600BB96")]
[Address(RVA = "0x1FE0FF0", Offset = "0x1FDFDF0", VA = "0x181FE0FF0")]
private static uint Sum1Ch(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB97 RID: 48023 RVA: 0x002A8828 File Offset: 0x002A6A28
[Token(Token = "0x600BB97")]
[Address(RVA = "0x1FE0FA0", Offset = "0x1FDFDA0", VA = "0x181FE0FA0")]
private static uint Sum0Maj(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600BB98 RID: 48024 RVA: 0x002A8838 File Offset: 0x002A6A38
[Token(Token = "0x600BB98")]
[Address(RVA = "0x1DCE330", Offset = "0x1DCD130", VA = "0x181DCE330")]
private static uint Theta0(uint x)
{
return x;
}
// Token: 0x0600BB99 RID: 48025 RVA: 0x002A8848 File Offset: 0x002A6A48
[Token(Token = "0x600BB99")]
[Address(RVA = "0x1DCE360", Offset = "0x1DCD160", VA = "0x181DCE360")]
private static uint Theta1(uint x)
{
return x;
}
// Token: 0x0600BB9A RID: 48026 RVA: 0x002A8858 File Offset: 0x002A6A58
[Token(Token = "0x600BB9A")]
[Address(RVA = "0x1FE0280", Offset = "0x1FDF080", VA = "0x181FE0280", Slot = "20")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB9A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha256Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha256Digest(var_0_06, newobj:Sha256Digest(Sha256Digest::.ctor, ldloc:Sha256Digest(this)))
stloc:uint32[](var_1_0E, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(64)))
stfld:uint32[](Sha256Digest::X, ldloc:Sha256Digest(var_0_06), ldloc:uint32[](var_1_0E))
call:void(Sha256Digest::CopyIn, ldloc:Sha256Digest(var_0_06), ldloc:Sha256Digest(this))
}
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: 0x0600BB9B RID: 48027 RVA: 0x002A8884 File Offset: 0x002A6A84
[Token(Token = "0x600BB9B")]
[Address(RVA = "0x1FE0E80", Offset = "0x1FDFC80", VA = "0x181FE0E80", Slot = "21")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x0600BB9C RID: 48028 RVA: 0x002A889C File Offset: 0x002A6A9C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BB9C")]
[Address(RVA = "0x1FE1040", Offset = "0x1FDFE40", VA = "0x181FE1040")]
static Sha256Digest()
{
uint[] array = new uint[64];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.433175D38B13FFE177FDD661A309F1B528B3F6E2).FieldHandle);
Sha256Digest.K = array;
}
// Token: 0x0400772A RID: 30506
[Token(Token = "0x400772A")]
private const int DigestLength = 32;
// Token: 0x0400772B RID: 30507
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400772B")]
private uint H1;
// Token: 0x0400772C RID: 30508
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400772C")]
private uint H2;
// Token: 0x0400772D RID: 30509
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400772D")]
private uint H3;
// Token: 0x0400772E RID: 30510
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x400772E")]
private uint H4;
// Token: 0x0400772F RID: 30511
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400772F")]
private uint H5;
// Token: 0x04007730 RID: 30512
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4007730")]
private uint H6;
// Token: 0x04007731 RID: 30513
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007731")]
private uint H7;
// Token: 0x04007732 RID: 30514
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x4007732")]
private uint H8;
// Token: 0x04007733 RID: 30515
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007733")]
private uint[] X;
// Token: 0x04007734 RID: 30516
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007734")]
private int xOff;
// Token: 0x04007735 RID: 30517
[Token(Token = "0x4007735")]
private static readonly uint[] K;
}
}
@@ -0,0 +1,123 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF8 RID: 7416
[Token(Token = "0x2001CF8")]
public class Sha384Digest : LongDigest
{
// Token: 0x0600BB9D RID: 48029 RVA: 0x002A88C4 File Offset: 0x002A6AC4
[Token(Token = "0x600BB9D")]
[Address(RVA = "0x1FE1500", Offset = "0x1FE0300", VA = "0x181FE1500")]
public Sha384Digest()
{
}
// Token: 0x0600BB9E RID: 48030 RVA: 0x002A88D8 File Offset: 0x002A6AD8
[Token(Token = "0x600BB9E")]
[Address(RVA = "0x1FE1490", Offset = "0x1FE0290", VA = "0x181FE1490")]
public Sha384Digest(Sha384Digest t)
: base(t)
{
}
// Token: 0x17001D20 RID: 7456
// (get) Token: 0x0600BB9F RID: 48031 RVA: 0x002A88EC File Offset: 0x002A6AEC
[Token(Token = "0x17001D20")]
public override string AlgorithmName
{
[Token(Token = "0x600BB9F")]
[Address(RVA = "0x1FE1560", Offset = "0x1FE0360", VA = "0x181FE1560", Slot = "14")]
get
{
return "SHA-384";
}
}
// Token: 0x0600BBA0 RID: 48032 RVA: 0x002A8900 File Offset: 0x002A6B00
[Token(Token = "0x600BBA0")]
[Address(RVA = "0x55FB10", Offset = "0x55E910", VA = "0x18055FB10", Slot = "15")]
public override int GetDigestSize()
{
return 48;
}
// Token: 0x0600BBA1 RID: 48033 RVA: 0x002A8910 File Offset: 0x002A6B10
[Token(Token = "0x600BBA1")]
[Address(RVA = "0x1FE12A0", Offset = "0x1FE00A0", VA = "0x181FE12A0", Slot = "16")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt64_To_BE(this.H1, output, outOff);
Pack.UInt64_To_BE(this.H2, output, outOff);
Pack.UInt64_To_BE(this.H3, output, outOff);
Pack.UInt64_To_BE(this.H4, output, outOff);
Pack.UInt64_To_BE(this.H5, output, outOff);
Pack.UInt64_To_BE(this.H6, output, outOff);
return 48;
}
// Token: 0x0600BBA2 RID: 48034 RVA: 0x002A8974 File Offset: 0x002A6B74
[Token(Token = "0x600BBA2")]
[Address(RVA = "0x1FE1360", Offset = "0x1FE0160", VA = "0x181FE1360", Slot = "13")]
public override void Reset()
{
base.Reset();
this.H1 = (ulong)(-3766243637369397544L);
this.H2 = (ulong)7105036623409894663L;
this.H3 = (ulong)(-7973340178411365097L);
this.H4 = (ulong)1526699215303891257L;
this.H5 = (ulong)7436329637833083697L;
this.H6 = (ulong)(-8163818279084223215L);
this.H7 = (ulong)(-2662702644619276377L);
this.H8 = (ulong)5167115440072839076L;
}
// Token: 0x0600BBA3 RID: 48035 RVA: 0x002A8A08 File Offset: 0x002A6C08
[Token(Token = "0x600BBA3")]
[Address(RVA = "0x1FE1210", Offset = "0x1FE0010", VA = "0x181FE1210", Slot = "17")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BBA3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha384Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha384Digest(var_0_06, newobj:Sha384Digest(Sha384Digest::.ctor, ldloc:Sha384Digest(this)))
}
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: 0x0600BBA4 RID: 48036 RVA: 0x002A8A1C File Offset: 0x002A6C1C
[Token(Token = "0x600BBA4")]
[Address(RVA = "0x1FE13F0", Offset = "0x1FE01F0", VA = "0x181FE13F0", Slot = "18")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x04007736 RID: 30518
[Token(Token = "0x4007736")]
private const int DigestLength = 48;
}
}
@@ -0,0 +1,112 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF3 RID: 7411
[Token(Token = "0x2001CF3")]
public class Sha3Digest : KeccakDigest
{
// Token: 0x0600BB4E RID: 47950 RVA: 0x002A6EA0 File Offset: 0x002A50A0
[Token(Token = "0x600BB4E")]
[Address(RVA = "0x1FE1590", Offset = "0x1FE0390", VA = "0x181FE1590")]
private static int CheckBitLength(int bitLength)
{
if (bitLength <= 256 || bitLength != 384)
{
}
return bitLength;
}
// Token: 0x0600BB4F RID: 47951 RVA: 0x002A6ED4 File Offset: 0x002A50D4
[Token(Token = "0x600BB4F")]
[Address(RVA = "0x1FE19E0", Offset = "0x1FE07E0", VA = "0x181FE19E0")]
public Sha3Digest()
: base(256)
{
}
// Token: 0x0600BB50 RID: 47952 RVA: 0x002A6EEC File Offset: 0x002A50EC
[Token(Token = "0x600BB50")]
[Address(RVA = "0x1FE18E0", Offset = "0x1FE06E0", VA = "0x181FE18E0")]
public Sha3Digest(int bitLength)
{
if (bitLength <= 256 || bitLength != 384)
{
}
base..ctor(bitLength);
}
// Token: 0x0600BB51 RID: 47953 RVA: 0x002A6F1C File Offset: 0x002A511C
[Token(Token = "0x600BB51")]
[Address(RVA = "0x1FE1870", Offset = "0x1FE0670", VA = "0x181FE1870")]
public Sha3Digest(Sha3Digest source)
: base(source)
{
}
// Token: 0x17001D1B RID: 7451
// (get) Token: 0x0600BB52 RID: 47954 RVA: 0x002A6F30 File Offset: 0x002A5130
[Token(Token = "0x17001D1B")]
public override string AlgorithmName
{
[Token(Token = "0x600BB52")]
[Address(RVA = "0x1FE1A60", Offset = "0x1FE0860", VA = "0x181FE1A60", Slot = "13")]
get
{
int fixedOutputLength = this.fixedOutputLength;
return "SHA3-" + fixedOutputLength;
}
}
// Token: 0x0600BB53 RID: 47955 RVA: 0x002A6F50 File Offset: 0x002A5150
[Token(Token = "0x600BB53")]
[Address(RVA = "0x1FE1820", Offset = "0x1FE0620", VA = "0x181FE1820", Slot = "17")]
public override int DoFinal(byte[] output, int outOff)
{
base.AbsorbBits(2, 2);
return base.DoFinal(output, outOff);
}
// Token: 0x0600BB54 RID: 47956 RVA: 0x002A6F70 File Offset: 0x002A5170
[Token(Token = "0x600BB54")]
[Address(RVA = "0x1FE16E0", Offset = "0x1FE04E0", VA = "0x181FE16E0", Slot = "18")]
protected override int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits)
{
int num = 0;
byte[] array = new byte[0];
uint num2;
array[0] = (byte)num2;
int num3 = 0;
base.Absorb(array, num3, 1);
return base.DoFinal(output, outOff, (byte)num2, num);
}
// Token: 0x0600BB55 RID: 47957 RVA: 0x002A6FB4 File Offset: 0x002A51B4
[Token(Token = "0x600BB55")]
[Address(RVA = "0x1FE1650", Offset = "0x1FE0450", VA = "0x181FE1650", Slot = "21")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BB55)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha3Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha3Digest(var_0_06, newobj:Sha3Digest(Sha3Digest::.ctor, ldloc:Sha3Digest[exp:int32](this)))
}
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
*/;
}
}
}
@@ -0,0 +1,125 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CF9 RID: 7417
[Token(Token = "0x2001CF9")]
public class Sha512Digest : LongDigest
{
// Token: 0x0600BBA5 RID: 48037 RVA: 0x002A8A34 File Offset: 0x002A6C34
[Token(Token = "0x600BBA5")]
[Address(RVA = "0x1FE1DD0", Offset = "0x1FE0BD0", VA = "0x181FE1DD0")]
public Sha512Digest()
{
}
// Token: 0x0600BBA6 RID: 48038 RVA: 0x002A8A48 File Offset: 0x002A6C48
[Token(Token = "0x600BBA6")]
[Address(RVA = "0x1FE1D60", Offset = "0x1FE0B60", VA = "0x181FE1D60")]
public Sha512Digest(Sha512Digest t)
: base(t)
{
}
// Token: 0x17001D21 RID: 7457
// (get) Token: 0x0600BBA7 RID: 48039 RVA: 0x002A8A5C File Offset: 0x002A6C5C
[Token(Token = "0x17001D21")]
public override string AlgorithmName
{
[Token(Token = "0x600BBA7")]
[Address(RVA = "0x1FE1E30", Offset = "0x1FE0C30", VA = "0x181FE1E30", Slot = "14")]
get
{
return "SHA-512";
}
}
// Token: 0x0600BBA8 RID: 48040 RVA: 0x002A8A70 File Offset: 0x002A6C70
[Token(Token = "0x600BBA8")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "15")]
public override int GetDigestSize()
{
return 64;
}
// Token: 0x0600BBA9 RID: 48041 RVA: 0x002A8A80 File Offset: 0x002A6C80
[Token(Token = "0x600BBA9")]
[Address(RVA = "0x1FE1B50", Offset = "0x1FE0950", VA = "0x181FE1B50", Slot = "16")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
Pack.UInt64_To_BE(this.H1, output, outOff);
Pack.UInt64_To_BE(this.H2, output, outOff);
Pack.UInt64_To_BE(this.H3, output, outOff);
Pack.UInt64_To_BE(this.H4, output, outOff);
Pack.UInt64_To_BE(this.H5, output, outOff);
Pack.UInt64_To_BE(this.H6, output, outOff);
Pack.UInt64_To_BE(this.H7, output, outOff);
Pack.UInt64_To_BE(this.H8, output, outOff);
return 64;
}
// Token: 0x0600BBAA RID: 48042 RVA: 0x002A8B00 File Offset: 0x002A6D00
[Token(Token = "0x600BBAA")]
[Address(RVA = "0x1FE1CD0", Offset = "0x1FE0AD0", VA = "0x181FE1CD0", Slot = "13")]
public override void Reset()
{
base.Reset();
this.H1 = (ulong)7640891576956012808L;
this.H2 = (ulong)(-4942790177534073029L);
this.H3 = (ulong)4354685564936845355L;
this.H4 = (ulong)(-6534734903238641935L);
this.H5 = (ulong)5840696475078001361L;
this.H6 = (ulong)(-7276294671716946913L);
this.H7 = (ulong)2270897969802886507L;
this.H8 = (ulong)6620516959819538809L;
}
// Token: 0x0600BBAB RID: 48043 RVA: 0x002A8B94 File Offset: 0x002A6D94
[Token(Token = "0x600BBAB")]
[Address(RVA = "0x1FE1AC0", Offset = "0x1FE08C0", VA = "0x181FE1AC0", Slot = "17")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BBAB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha512Digest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha512Digest(var_0_06, newobj:Sha512Digest(Sha512Digest::.ctor, ldloc:Sha512Digest(this)))
}
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: 0x0600BBAC RID: 48044 RVA: 0x002A8BA8 File Offset: 0x002A6DA8
[Token(Token = "0x600BBAC")]
[Address(RVA = "0x1FE1C30", Offset = "0x1FE0A30", VA = "0x181FE1C30", Slot = "18")]
public override void Reset(IMemoable other)
{
do
{
if (other == 0)
{
}
}
while (other == 0);
}
// Token: 0x04007737 RID: 30519
[Token(Token = "0x4007737")]
private const int DigestLength = 64;
}
}
@@ -0,0 +1,359 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CFA RID: 7418
[Token(Token = "0x2001CFA")]
public class Sha512tDigest : LongDigest
{
// Token: 0x0600BBAD RID: 48045 RVA: 0x002A8BC0 File Offset: 0x002A6DC0
[Token(Token = "0x600BBAD")]
[Address(RVA = "0x1FE2580", Offset = "0x1FE1380", VA = "0x181FE2580")]
public Sha512tDigest(int bitLength)
{
/*
An exception occurred when decompiling this method (0600BBAD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.Sha512tDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_42:
stloc:ArgumentException(var_3_51, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("cannot be 384 use SHA384 instead"), ldstr:string("bitLength")))
}
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: 0x0600BBAE RID: 48046 RVA: 0x002A8C20 File Offset: 0x002A6E20
[Token(Token = "0x600BBAE")]
[Address(RVA = "0x1FE24F0", Offset = "0x1FE12F0", VA = "0x181FE24F0")]
public Sha512tDigest(Sha512tDigest t)
: base(t)
{
int num = t.digestLength;
this.digestLength = num;
IMemoable memoable = ((IMemoable)this).Copy();
}
// Token: 0x17001D22 RID: 7458
// (get) Token: 0x0600BBAF RID: 48047 RVA: 0x002A8C50 File Offset: 0x002A6E50
[Token(Token = "0x17001D22")]
public override string AlgorithmName
{
[Token(Token = "0x600BBAF")]
[Address(RVA = "0x1FE2700", Offset = "0x1FE1500", VA = "0x181FE2700", Slot = "14")]
get
{
int num = this.digestLength;
return "SHA-512/" + num;
}
}
// Token: 0x0600BBB0 RID: 48048 RVA: 0x002A8C70 File Offset: 0x002A6E70
[Token(Token = "0x600BBB0")]
[Address(RVA = "0x404240", Offset = "0x403040", VA = "0x180404240", Slot = "15")]
public override int GetDigestSize()
{
return this.digestLength;
}
// Token: 0x0600BBB1 RID: 48049 RVA: 0x002A8C84 File Offset: 0x002A6E84
[Token(Token = "0x600BBB1")]
[Address(RVA = "0x1FE1F20", Offset = "0x1FE0D20", VA = "0x181FE1F20", Slot = "16")]
public override int DoFinal(byte[] output, int outOff)
{
base.Finish();
int num = this.digestLength;
if (num > 0)
{
ulong h = this.H1;
Sha512tDigest.UInt32_To_BE((uint)h, output, outOff, num);
if (num > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h, output, outOff, num);
}
}
int num2 = this.digestLength;
ulong h2;
if (num2 > 0)
{
h2 = this.H2;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num2 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num3 = this.digestLength;
if (num3 > 0)
{
num2 = num3;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num3 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num4 = this.digestLength;
if (num4 > 0)
{
num2 = num4;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num4 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num5 = this.digestLength;
if (num5 > 0)
{
num2 = num5;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num5 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num6 = this.digestLength;
if (num6 > 0)
{
num2 = num6;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num6 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num7 = this.digestLength;
if (num7 > 0)
{
num2 = num7;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num7 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
int num8 = this.digestLength;
if (num8 > 0)
{
num2 = num8;
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
if (num8 > 4)
{
Sha512tDigest.UInt32_To_BE((uint)h2, output, outOff, num2);
}
}
return this.digestLength;
}
// Token: 0x0600BBB2 RID: 48050 RVA: 0x002A8DE8 File Offset: 0x002A6FE8
[Token(Token = "0x600BBB2")]
[Address(RVA = "0x1FE21D0", Offset = "0x1FE0FD0", VA = "0x181FE21D0", Slot = "13")]
public override void Reset()
{
base.Reset();
ulong h1t = this.H1t;
this.H1 = h1t;
ulong h2t = this.H2t;
this.H2 = h2t;
ulong h3t = this.H3t;
this.H3 = h3t;
ulong h4t = this.H4t;
this.H4 = h4t;
ulong h5t = this.H5t;
this.H5 = h5t;
ulong h6t = this.H6t;
this.H6 = h6t;
ulong h7t = this.H7t;
this.H7 = h7t;
ulong h8t = this.H8t;
this.H8 = h8t;
}
// Token: 0x0600BBB3 RID: 48051 RVA: 0x002A8E74 File Offset: 0x002A7074
[Token(Token = "0x600BBB3")]
[Address(RVA = "0x1FE2760", Offset = "0x1FE1560", VA = "0x181FE2760")]
private void tIvGenerate(int bitLength)
{
ulong num;
this.H1 = num;
ulong num2;
this.H2 = num2;
ulong num3;
this.H3 = num3;
ulong num4;
this.H4 = num4;
ulong num5;
this.H5 = num5;
ulong num6;
this.H6 = num6;
ulong num7;
this.H7 = num7;
ulong num8;
this.H8 = num8;
ulong num9;
base.Update((byte)num9);
ulong num10;
base.Update((byte)num10);
ulong num11;
base.Update((byte)num11);
ulong num12;
base.Update((byte)num12);
ulong num13;
base.Update((byte)num13);
ulong num14;
base.Update((byte)num14);
ulong num15;
base.Update((byte)num15);
ulong num16;
base.Update((byte)num16);
if (bitLength > 10)
{
ulong num17;
num17 += num17;
long num18 = (long)(num17 * (ulong)((uint)100));
ulong num19;
num19 += num19;
num19 += num19;
num19 += num19;
}
base.Update((byte)num16);
base.Finish();
ulong h = this.H1;
this.H1t = h;
ulong h2 = this.H2;
this.H2t = h2;
ulong h3 = this.H3;
this.H3t = h3;
ulong h4 = this.H4;
this.H4t = h4;
ulong h5 = this.H5;
this.H5t = h5;
ulong h6 = this.H6;
this.H6t = h6;
ulong h7 = this.H7;
this.H7t = h7;
ulong h8 = this.H8;
this.H8t = h8;
}
// Token: 0x0600BBB4 RID: 48052 RVA: 0x002A8FB4 File Offset: 0x002A71B4
[Token(Token = "0x600BBB4")]
[Address(RVA = "0x1FE2480", Offset = "0x1FE1280", VA = "0x181FE2480")]
private static void UInt64_To_BE(ulong n, byte[] bs, int off, int max)
{
if (max > 0)
{
Sha512tDigest.UInt32_To_BE((uint)n, bs, off, max);
if (max > 4)
{
Sha512tDigest.UInt32_To_BE((uint)n, bs, off, max);
}
}
}
// Token: 0x0600BBB5 RID: 48053 RVA: 0x002A8FDC File Offset: 0x002A71DC
[Token(Token = "0x600BBB5")]
[Address(RVA = "0x1FE23A0", Offset = "0x1FE11A0", VA = "0x181FE23A0")]
private static void UInt32_To_BE(uint n, byte[] bs, int off, int max)
{
int num = Math.Min(4, max);
uint num2;
num2 -= (uint)num;
num2 += (uint)8;
}
// Token: 0x0600BBB6 RID: 48054 RVA: 0x002A9004 File Offset: 0x002A7204
[Token(Token = "0x600BBB6")]
[Address(RVA = "0x1FE1E60", Offset = "0x1FE0C60", VA = "0x181FE1E60", Slot = "17")]
public override IMemoable Copy()
{
Sha512tDigest sha512tDigest = new Sha512tDigest(this);
int num = this.digestLength;
sha512tDigest.digestLength = num;
IMemoable memoable = sha512tDigest.Copy();
throw new NullReferenceException();
}
// Token: 0x0600BBB7 RID: 48055 RVA: 0x002A9034 File Offset: 0x002A7234
[Token(Token = "0x600BBB7")]
[Address(RVA = "0x1FE2240", Offset = "0x1FE1040", VA = "0x181FE2240", Slot = "18")]
public override void Reset(IMemoable other)
{
int num;
do
{
num = 0;
}
while (other == 0 || this.digestLength != num);
this.H1t = (ulong)num;
this.H2t = (ulong)num;
this.H3t = (ulong)num;
this.H4t = (ulong)num;
this.H5t = (ulong)num;
this.H6t = (ulong)num;
this.H7t = (ulong)num;
this.H8t = (ulong)num;
}
// Token: 0x04007738 RID: 30520
[Token(Token = "0x4007738")]
private const ulong A5 = 11936128518282651045UL;
// Token: 0x04007739 RID: 30521
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4007739")]
private readonly int digestLength;
// Token: 0x0400773A RID: 30522
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400773A")]
private ulong H1t;
// Token: 0x0400773B RID: 30523
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400773B")]
private ulong H2t;
// Token: 0x0400773C RID: 30524
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x400773C")]
private ulong H3t;
// Token: 0x0400773D RID: 30525
[FieldOffset(Offset = "0xA8")]
[Token(Token = "0x400773D")]
private ulong H4t;
// Token: 0x0400773E RID: 30526
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x400773E")]
private ulong H5t;
// Token: 0x0400773F RID: 30527
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x400773F")]
private ulong H6t;
// Token: 0x04007740 RID: 30528
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x4007740")]
private ulong H7t;
// Token: 0x04007741 RID: 30529
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4007741")]
private ulong H8t;
}
}
@@ -0,0 +1,178 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CFB RID: 7419
[Token(Token = "0x2001CFB")]
public class ShakeDigest : KeccakDigest, IXof, IDigest
{
// Token: 0x0600BBB8 RID: 48056 RVA: 0x002A9090 File Offset: 0x002A7290
[Token(Token = "0x600BBB8")]
[Address(RVA = "0x1FE2930", Offset = "0x1FE1730", VA = "0x181FE2930")]
private static int CheckBitLength(int bitLength)
{
/*
An exception occurred when decompiling this method (0600BBB8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShakeDigest::CheckBitLength(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12:
stloc:ArgumentException(var_1_1D, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_0), ldstr:string("bitLength")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BBB9 RID: 48057 RVA: 0x002A90BC File Offset: 0x002A72BC
[Token(Token = "0x600BBB9")]
[Address(RVA = "0x1FE2EE0", Offset = "0x1FE1CE0", VA = "0x181FE2EE0")]
public ShakeDigest()
: base(128)
{
}
// Token: 0x0600BBBA RID: 48058 RVA: 0x002A90D4 File Offset: 0x002A72D4
[Token(Token = "0x600BBBA")]
[Address(RVA = "0x1FE2D80", Offset = "0x1FE1B80", VA = "0x181FE2D80")]
public ShakeDigest(int bitLength)
{
/*
An exception occurred when decompiling this method (0600BBBA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShakeDigest::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_18:
stloc:ArgumentException(var_1_23, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_0), ldstr:string("bitLength")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BBBB RID: 48059 RVA: 0x002A9104 File Offset: 0x002A7304
[Token(Token = "0x600BBBB")]
[Address(RVA = "0x1FE2E70", Offset = "0x1FE1C70", VA = "0x181FE2E70")]
public ShakeDigest(ShakeDigest source)
: base(source)
{
}
// Token: 0x17001D23 RID: 7459
// (get) Token: 0x0600BBBC RID: 48060 RVA: 0x002A9118 File Offset: 0x002A7318
[Token(Token = "0x17001D23")]
public override string AlgorithmName
{
[Token(Token = "0x600BBBC")]
[Address(RVA = "0x1FE2F60", Offset = "0x1FE1D60", VA = "0x181FE2F60", Slot = "13")]
get
{
int fixedOutputLength = this.fixedOutputLength;
return "SHAKE" + fixedOutputLength;
}
}
// Token: 0x0600BBBD RID: 48061 RVA: 0x002A9138 File Offset: 0x002A7338
[Token(Token = "0x600BBBD")]
[Address(RVA = "0x1FE2A70", Offset = "0x1FE1870", VA = "0x181FE2A70", Slot = "17")]
public override int DoFinal(byte[] output, int outOff)
{
string algorithmName = this.AlgorithmName;
int num;
return num;
}
// Token: 0x0600BBBE RID: 48062 RVA: 0x002A9150 File Offset: 0x002A7350
[Token(Token = "0x600BBBE")]
[Address(RVA = "0x1FE2C40", Offset = "0x1FE1A40", VA = "0x181FE2C40", Slot = "25")]
public virtual int DoFinal(byte[] output, int outOff, int outLen)
{
int num = this.DoFinal(output, outOff, outLen);
return outLen;
}
// Token: 0x0600BBBF RID: 48063 RVA: 0x002A9168 File Offset: 0x002A7368
[Token(Token = "0x600BBBF")]
[Address(RVA = "0x1FE2D10", Offset = "0x1FE1B10", VA = "0x181FE2D10", Slot = "26")]
public virtual int DoOutput(byte[] output, int outOff, int outLen)
{
base.AbsorbBits(15, 4);
base.Squeeze(output, outOff, (long)outLen);
return outLen;
}
// Token: 0x0600BBC0 RID: 48064 RVA: 0x002A9188 File Offset: 0x002A7388
[Token(Token = "0x600BBC0")]
[Address(RVA = "0x1FE2C90", Offset = "0x1FE1A90", VA = "0x181FE2C90", Slot = "18")]
protected override int DoFinal(byte[] output, int outOff, byte partialByte, int partialBits)
{
string algorithmName = this.AlgorithmName;
int num;
return num;
}
// Token: 0x0600BBC1 RID: 48065 RVA: 0x002A91A0 File Offset: 0x002A73A0
[Token(Token = "0x600BBC1")]
[Address(RVA = "0x1FE2AD0", Offset = "0x1FE18D0", VA = "0x181FE2AD0", Slot = "27")]
protected virtual int DoFinal(byte[] output, int outOff, int outLen, byte partialByte, int partialBits)
{
uint num;
byte[] array = new byte[] { (byte)num };
int num2 = 0;
uint num3;
base.Absorb(array, num2, (int)num3);
base.Squeeze(output, outOff, (long)outLen);
return outLen;
}
// Token: 0x0600BBC2 RID: 48066 RVA: 0x002A91E4 File Offset: 0x002A73E4
[Token(Token = "0x600BBC2")]
[Address(RVA = "0x1FE29E0", Offset = "0x1FE17E0", VA = "0x181FE29E0", Slot = "21")]
public override IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BBC2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShakeDigest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:ShakeDigest(var_0_06, newobj:ShakeDigest(ShakeDigest::.ctor, ldloc:ShakeDigest[exp:int32](this)))
}
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
*/;
}
}
}
@@ -0,0 +1,138 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CFC RID: 7420
[Token(Token = "0x2001CFC")]
public class ShortenedDigest : IDigest
{
// Token: 0x0600BBC3 RID: 48067 RVA: 0x002A91F8 File Offset: 0x002A73F8
[Token(Token = "0x600BBC3")]
[Address(RVA = "0x1FE3210", Offset = "0x1FE2010", VA = "0x181FE3210")]
public ShortenedDigest(IDigest baseDigest, int length)
{
/*
An exception occurred when decompiling this method (0600BBC3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.ShortenedDigest::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_19:
stloc:ArgumentNullException(var_0_23, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("baseDigest")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001D24 RID: 7460
// (get) Token: 0x0600BBC4 RID: 48068 RVA: 0x002A9228 File Offset: 0x002A7428
[Token(Token = "0x17001D24")]
public string AlgorithmName
{
[Token(Token = "0x600BBC4")]
[Address(RVA = "0x1FE32F0", Offset = "0x1FE20F0", VA = "0x181FE32F0", Slot = "4")]
get
{
object[] array = new object[4];
IDigest digest = this.baseDigest;
if (array != 0)
{
}
array[0] = array;
if ("(" != 0)
{
}
array[1] = "(";
int num = this.length;
if (num != 0)
{
}
array[2] = num;
if (")" != 0)
{
}
array[3] = ")";
return string.Concat(array);
}
}
// Token: 0x0600BBC5 RID: 48069 RVA: 0x002A9298 File Offset: 0x002A7498
[Token(Token = "0x600BBC5")]
[Address(RVA = "0x40B720", Offset = "0x40A520", VA = "0x18040B720", Slot = "5")]
public int GetDigestSize()
{
return this.length;
}
// Token: 0x0600BBC6 RID: 48070 RVA: 0x002A92AC File Offset: 0x002A74AC
[Token(Token = "0x600BBC6")]
[Address(RVA = "0x1FE31B0", Offset = "0x1FE1FB0", VA = "0x181FE31B0", Slot = "7")]
public void Update(byte input)
{
IDigest digest = this.baseDigest;
throw new NullReferenceException();
}
// Token: 0x0600BBC7 RID: 48071 RVA: 0x002A92C8 File Offset: 0x002A74C8
[Token(Token = "0x600BBC7")]
[Address(RVA = "0x1FE2FC0", Offset = "0x1FE1DC0", VA = "0x181FE2FC0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
IDigest digest = this.baseDigest;
}
// Token: 0x0600BBC8 RID: 48072 RVA: 0x002A92E4 File Offset: 0x002A74E4
[Token(Token = "0x600BBC8")]
[Address(RVA = "0x1FE3040", Offset = "0x1FE1E40", VA = "0x181FE3040", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
IDigest digest = this.baseDigest;
byte[] array = new byte[0];
IDigest digest2 = this.baseDigest;
int num = this.length;
int num2 = 0;
Array.Copy(array, num2, output, outOff, num);
return this.length;
}
// Token: 0x0600BBC9 RID: 48073 RVA: 0x002A932C File Offset: 0x002A752C
[Token(Token = "0x600BBC9")]
[Address(RVA = "0x1FE3160", Offset = "0x1FE1F60", VA = "0x181FE3160", Slot = "10")]
public void Reset()
{
IDigest digest = this.baseDigest;
throw new NullReferenceException();
}
// Token: 0x0600BBCA RID: 48074 RVA: 0x002A9348 File Offset: 0x002A7548
[Token(Token = "0x600BBCA")]
[Address(RVA = "0x1FE3110", Offset = "0x1FE1F10", VA = "0x181FE3110", Slot = "6")]
public int GetByteLength()
{
IDigest digest = this.baseDigest;
throw new NullReferenceException();
}
// Token: 0x04007742 RID: 30530
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007742")]
private IDigest baseDigest;
// Token: 0x04007743 RID: 30531
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007743")]
private int length;
}
}
@@ -0,0 +1,214 @@
using System;
using System.Collections;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CFD RID: 7421
[Token(Token = "0x2001CFD")]
public class SkeinDigest : IDigest, IMemoable
{
// Token: 0x0600BBCB RID: 48075 RVA: 0x002A9364 File Offset: 0x002A7564
[Token(Token = "0x600BBCB")]
[Address(RVA = "0x1FE39F0", Offset = "0x1FE27F0", VA = "0x181FE39F0")]
public SkeinDigest(int stateSizeBits, int digestSizeBits)
{
SkeinEngine skeinEngine = new SkeinEngine(stateSizeBits, digestSizeBits);
this.engine = skeinEngine;
int num = 0;
skeinEngine.chain = num;
skeinEngine.key = num;
skeinEngine.preMessageParameters = num;
skeinEngine.postMessageParameters = num;
skeinEngine.CreateInitialState();
skeinEngine.UbiInit(48);
}
// Token: 0x0600BBCC RID: 48076 RVA: 0x002A93B8 File Offset: 0x002A75B8
[Token(Token = "0x600BBCC")]
[Address(RVA = "0x1FE3930", Offset = "0x1FE2730", VA = "0x181FE3930")]
public SkeinDigest(SkeinDigest digest)
{
SkeinEngine skeinEngine = digest.engine;
bool isPartialBlockOkay = skeinEngine.threefish.IsPartialBlockOkay;
SkeinEngine skeinEngine2;
skeinEngine2.CopyIn(skeinEngine);
this.engine = skeinEngine2;
}
// Token: 0x0600BBCD RID: 48077 RVA: 0x002A93F4 File Offset: 0x002A75F4
[Token(Token = "0x600BBCD")]
[Address(RVA = "0x1FE3730", Offset = "0x1FE2530", VA = "0x181FE3730", Slot = "12")]
public void Reset(IMemoable other)
{
int num;
SkeinEngine skeinEngine;
for (;;)
{
num = 0;
if (other != 0)
{
skeinEngine = this.engine;
if (other == 0 || other != 0)
{
ThreefishEngine threefish = skeinEngine.threefish;
bool isPartialBlockOkay = threefish.IsPartialBlockOkay;
bool isPartialBlockOkay2 = threefish.IsPartialBlockOkay;
if (isPartialBlockOkay == isPartialBlockOkay2 && skeinEngine.outputSizeBytes == (isPartialBlockOkay2 ? 1 : 0))
{
break;
}
}
}
}
skeinEngine.CopyIn(num);
}
// Token: 0x0600BBCE RID: 48078 RVA: 0x002A9454 File Offset: 0x002A7654
[Token(Token = "0x600BBCE")]
[Address(RVA = "0x1FE34E0", Offset = "0x1FE22E0", VA = "0x181FE34E0", Slot = "11")]
public IMemoable Copy()
{
SkeinEngine skeinEngine = this.engine;
bool isPartialBlockOkay = skeinEngine.threefish.IsPartialBlockOkay;
SkeinEngine skeinEngine2;
skeinEngine2.CopyIn(skeinEngine);
SkeinDigest skeinDigest;
skeinDigest.engine = skeinEngine2;
throw new NullReferenceException();
}
// Token: 0x17001D25 RID: 7461
// (get) Token: 0x0600BBCF RID: 48079 RVA: 0x002A9488 File Offset: 0x002A7688
[Token(Token = "0x17001D25")]
public string AlgorithmName
{
[Token(Token = "0x600BBCF")]
[Address(RVA = "0x1FE3AC0", Offset = "0x1FE28C0", VA = "0x181FE3AC0", Slot = "4")]
get
{
object[] array = new object[4];
if ("Skein-" != 0)
{
}
array[0] = "Skein-";
bool isPartialBlockOkay = this.engine.threefish.IsPartialBlockOkay;
if (isPartialBlockOkay)
{
}
array[1] = isPartialBlockOkay;
if ("-" != 0)
{
}
array[2] = "-";
int outputSizeBytes = this.engine.outputSizeBytes;
if (outputSizeBytes != 0)
{
}
array[3] = outputSizeBytes;
return string.Concat(array);
}
}
// Token: 0x0600BBD0 RID: 48080 RVA: 0x002A9508 File Offset: 0x002A7708
[Token(Token = "0x600BBD0")]
[Address(RVA = "0x40DB30", Offset = "0x40C930", VA = "0x18040DB30", Slot = "5")]
public int GetDigestSize()
{
return this.engine.outputSizeBytes;
}
// Token: 0x0600BBD1 RID: 48081 RVA: 0x002A9528 File Offset: 0x002A7728
[Token(Token = "0x600BBD1")]
[Address(RVA = "0x1FE35C0", Offset = "0x1FE23C0", VA = "0x181FE35C0", Slot = "6")]
public int GetByteLength()
{
string algorithmName = ((IBlockCipher)this.engine.threefish).AlgorithmName;
throw new NullReferenceException();
}
// Token: 0x0600BBD2 RID: 48082 RVA: 0x002A954C File Offset: 0x002A774C
[Token(Token = "0x600BBD2")]
[Address(RVA = "0x1FE3600", Offset = "0x1FE2400", VA = "0x181FE3600")]
public void Init(SkeinParameters parameters)
{
SkeinEngine skeinEngine = this.engine;
int num = 0;
skeinEngine.chain = num;
skeinEngine.key = num;
skeinEngine.preMessageParameters = num;
skeinEngine.postMessageParameters = num;
if (parameters != 0)
{
byte[] key = parameters.GetKey();
IDictionary parameters2 = parameters.parameters;
skeinEngine.InitParams(parameters2);
}
skeinEngine.CreateInitialState();
skeinEngine.UbiInit(48);
}
// Token: 0x0600BBD3 RID: 48083 RVA: 0x002A95AC File Offset: 0x002A77AC
[Token(Token = "0x600BBD3")]
[Address(RVA = "0x1FE36D0", Offset = "0x1FE24D0", VA = "0x181FE36D0", Slot = "10")]
public void Reset()
{
SkeinEngine skeinEngine = this.engine;
ulong[] chain = skeinEngine.chain;
int length = chain.Length;
int num = 0;
ulong[] initialState = skeinEngine.initialState;
int num2 = 0;
Array.Copy(initialState, num2, chain, num, length);
skeinEngine.UbiInit(48);
}
// Token: 0x0600BBD4 RID: 48084 RVA: 0x002A95F8 File Offset: 0x002A77F8
[Token(Token = "0x600BBD4")]
[Address(RVA = "0x1FE38D0", Offset = "0x1FE26D0", VA = "0x181FE38D0", Slot = "7")]
public void Update(byte inByte)
{
SkeinEngine skeinEngine = this.engine;
skeinEngine.singleByte[0] = inByte;
byte[] singleByte = skeinEngine.singleByte;
int num = 0;
skeinEngine.Update(singleByte, num, 1);
}
// Token: 0x0600BBD5 RID: 48085 RVA: 0x002A9634 File Offset: 0x002A7834
[Token(Token = "0x600BBD5")]
[Address(RVA = "0x1C30790", Offset = "0x1C2F590", VA = "0x181C30790", Slot = "8")]
public void BlockUpdate(byte[] inBytes, int inOff, int len)
{
this.engine.Update(inBytes, inOff, len);
}
// Token: 0x0600BBD6 RID: 48086 RVA: 0x002A9658 File Offset: 0x002A7858
[Token(Token = "0x600BBD6")]
[Address(RVA = "0x1C307C0", Offset = "0x1C2F5C0", VA = "0x181C307C0", Slot = "9")]
public int DoFinal(byte[] outBytes, int outOff)
{
return this.engine.DoFinal(outBytes, outOff);
}
// Token: 0x04007744 RID: 30532
[Token(Token = "0x4007744")]
public const int SKEIN_256 = 256;
// Token: 0x04007745 RID: 30533
[Token(Token = "0x4007745")]
public const int SKEIN_512 = 512;
// Token: 0x04007746 RID: 30534
[Token(Token = "0x4007746")]
public const int SKEIN_1024 = 1024;
// Token: 0x04007747 RID: 30535
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007747")]
private readonly SkeinEngine engine;
}
}
@@ -0,0 +1,1124 @@
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001CFE RID: 7422
[Token(Token = "0x2001CFE")]
public class SkeinEngine : IMemoable
{
// Token: 0x0600BBD7 RID: 48087 RVA: 0x002A9678 File Offset: 0x002A7878
[Token(Token = "0x600BBD7")]
[Address(RVA = "0x1FE5870", Offset = "0x1FE4670", VA = "0x181FE5870")]
static SkeinEngine()
{
ulong[] array = new ulong[4];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.FCDDAA37B8499E00EB7B606D8540AA64DE5AE4D4).FieldHandle);
SkeinEngine.InitialState(256, 128, array);
RuntimeHelpers.InitializeArray(new ulong[4], fieldof(<PrivateImplementationDetails>.3C3704DB6466D48DD40FE189070F1896D1D45C8B).FieldHandle);
RuntimeHelpers.InitializeArray(new ulong[4], fieldof(<PrivateImplementationDetails>.FD9088D5287E3E3A6699200CB6E5DE3E9FDEDD9F).FieldHandle);
ulong[] array2 = new ulong[4];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0B1E7265E67D2458D8EB536A4B36380A5BF6E731).FieldHandle);
SkeinEngine.InitialState(256, 256, array2);
ulong[] array3 = new ulong[8];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.DA7CFA4F9698F5D02C5D90A5858F65EE43B4D564).FieldHandle);
SkeinEngine.InitialState(512, 128, array3);
ulong[] array4 = new ulong[8];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.959C1F7BD85779AAF7AA136A20A9C399A5019AEC).FieldHandle);
SkeinEngine.InitialState(512, 160, array4);
ulong[] array5 = new ulong[8];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.5318DA9ACB77B4E0953DA6BF6B04DF138D74EA1E).FieldHandle);
SkeinEngine.InitialState(512, 224, array5);
ulong[] array6 = new ulong[8];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.F0AEF81E2E3EC0843206EBA7D65BCD1AF83DE7C9).FieldHandle);
SkeinEngine.InitialState(512, 384, array6);
ulong[] array7 = new ulong[8];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.118FE9754A9699004D478E4BF686021154D96EAD).FieldHandle);
SkeinEngine.InitialState(512, 512, array7);
}
// Token: 0x0600BBD8 RID: 48088 RVA: 0x002A97AC File Offset: 0x002A79AC
[Token(Token = "0x600BBD8")]
[Address(RVA = "0x1FE5120", Offset = "0x1FE3F20", VA = "0x181FE5120")]
private static void InitialState(int blockSize, int outputSize, ulong[] state)
{
IDictionary initial_STATES = SkeinEngine.INITIAL_STATES;
int num = 0;
if (num < state)
{
num += num;
num++;
}
}
// Token: 0x0600BBD9 RID: 48089 RVA: 0x002A97D4 File Offset: 0x002A79D4
[Token(Token = "0x600BBD9")]
[Address(RVA = "0x1FE5860", Offset = "0x1FE4660", VA = "0x181FE5860")]
private static int VariantIdentifier(int blockSizeBytes, int outputSizeBytes)
{
return outputSizeBytes;
}
// Token: 0x0600BBDA RID: 48090 RVA: 0x002A97E4 File Offset: 0x002A79E4
[Token(Token = "0x600BBDA")]
[Address(RVA = "0x1FE5AE0", Offset = "0x1FE48E0", VA = "0x181FE5AE0")]
public SkeinEngine(int blockSizeBits, int outputSizeBits)
{
/*
An exception occurred when decompiling this method (0600BBDA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::.ctor(System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A7:
stloc:ArgumentException(var_12_B7, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Output size must be a multiple of 8 bits. :"), ldloc:int32[exp:object](outputSizeBits))))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BBDB RID: 48091 RVA: 0x002A98AC File Offset: 0x002A7AAC
[Token(Token = "0x600BBDB")]
[Address(RVA = "0x1FE5CD0", Offset = "0x1FE4AD0", VA = "0x181FE5CD0")]
public SkeinEngine(SkeinEngine engine)
{
bool isPartialBlockOkay = engine.threefish.IsPartialBlockOkay;
this.CopyIn(engine);
}
// Token: 0x0600BBDC RID: 48092 RVA: 0x002A98D4 File Offset: 0x002A7AD4
[Token(Token = "0x600BBDC")]
[Address(RVA = "0x1FE3DF0", Offset = "0x1FE2BF0", VA = "0x181FE3DF0")]
private void CopyIn(SkeinEngine engine)
{
SkeinEngine.UBI ubi = this.ubi;
SkeinEngine.UBI ubi2 = engine.ubi;
byte[] currentBlock = ubi2.currentBlock;
byte[] currentBlock2 = ubi.currentBlock;
byte[] array = Arrays.Clone(currentBlock, currentBlock2);
ulong[] message = ubi.message;
ubi.currentBlock = array;
int currentOffset = ubi2.currentOffset;
ubi.currentOffset = currentOffset;
ulong[] array2 = Arrays.Clone(ubi2.message, message);
ubi.message = array2;
SkeinEngine.UbiTweak tweak = ubi.tweak;
SkeinEngine.UbiTweak tweak2 = ubi2.tweak;
ulong[] tweak3 = tweak2.tweak;
ulong[] tweak4 = tweak.tweak;
ulong[] array3 = Arrays.Clone(tweak3, tweak4);
tweak.tweak = array3;
bool extendedPosition = tweak2.extendedPosition;
tweak.extendedPosition = extendedPosition;
ulong[] array4 = engine.chain;
ulong[] array5 = this.chain;
ulong[] array6 = Arrays.Clone(array4, array5);
ulong[] array7 = this.initialState;
this.chain = array6;
ulong[] array8 = Arrays.Clone(engine.initialState, array7);
byte[] array9 = this.key;
this.initialState = array8;
byte[] array10 = Arrays.Clone(engine.key, array9);
SkeinEngine.Parameter[] array11 = this.preMessageParameters;
this.key = array10;
SkeinEngine.Parameter[] array12 = SkeinEngine.Clone(engine.preMessageParameters, array11);
SkeinEngine.Parameter[] array13 = this.postMessageParameters;
this.preMessageParameters = array12;
SkeinEngine.Parameter[] array14 = SkeinEngine.Clone(engine.postMessageParameters, array13);
this.postMessageParameters = array14;
}
// Token: 0x0600BBDD RID: 48093 RVA: 0x002A9A2C File Offset: 0x002A7C2C
[Token(Token = "0x600BBDD")]
[Address(RVA = "0x1FE3D50", Offset = "0x1FE2B50", VA = "0x181FE3D50")]
private static SkeinEngine.Parameter[] Clone(SkeinEngine.Parameter[] data, SkeinEngine.Parameter[] existing)
{
if (data != 0)
{
if (existing != 0)
{
int length = data.Length;
if (existing.Length == length)
{
goto IL_24;
}
}
SkeinEngine.Parameter[] array = new SkeinEngine.Parameter[data.Length];
IL_24:
int length2 = array.Length;
int num = 0;
int num2 = 0;
Array.Copy(data, num2, array, num, length2);
return array;
}
throw new NullReferenceException();
}
// Token: 0x0600BBDE RID: 48094 RVA: 0x002A9A80 File Offset: 0x002A7C80
[Token(Token = "0x600BBDE")]
[Address(RVA = "0x1FE4000", Offset = "0x1FE2E00", VA = "0x181FE4000", Slot = "4")]
public IMemoable Copy()
{
bool isPartialBlockOkay = this.threefish.IsPartialBlockOkay;
SkeinEngine skeinEngine;
skeinEngine.CopyIn(this);
throw new NullReferenceException();
}
// Token: 0x0600BBDF RID: 48095 RVA: 0x002A9AA8 File Offset: 0x002A7CA8
[Token(Token = "0x600BBDF")]
[Address(RVA = "0x1FE5510", Offset = "0x1FE4310", VA = "0x181FE5510", Slot = "5")]
public void Reset(IMemoable other)
{
/*
An exception occurred when decompiling this method (0600BBDF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::Reset(BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2D:
stloc:MemoableResetException(var_4_37, newobj:MemoableResetException(MemoableResetException::.ctor, ldstr:string("Incompatible parameters in provided SkeinEngine.")))
}
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: 0x17001D26 RID: 7462
// (get) Token: 0x0600BBE0 RID: 48096 RVA: 0x002A9AF0 File Offset: 0x002A7CF0
[Token(Token = "0x17001D26")]
public int OutputSize
{
[Token(Token = "0x600BBE0")]
[Address(RVA = "0x40B720", Offset = "0x40A520", VA = "0x18040B720")]
get
{
return this.outputSizeBytes;
}
}
// Token: 0x17001D27 RID: 7463
// (get) Token: 0x0600BBE1 RID: 48097 RVA: 0x002A9B04 File Offset: 0x002A7D04
[Token(Token = "0x17001D27")]
public int BlockSize
{
[Token(Token = "0x600BBE1")]
[Address(RVA = "0x5F5E10", Offset = "0x5F4C10", VA = "0x1805F5E10")]
get
{
string algorithmName = ((IBlockCipher)this.threefish).AlgorithmName;
throw new NullReferenceException();
}
}
// Token: 0x0600BBE2 RID: 48098 RVA: 0x002A9B24 File Offset: 0x002A7D24
[Token(Token = "0x600BBE2")]
[Address(RVA = "0x1FE5060", Offset = "0x1FE3E60", VA = "0x181FE5060")]
public void Init(SkeinParameters parameters)
{
int num = 0;
this.chain = num;
this.key = num;
this.preMessageParameters = num;
this.postMessageParameters = num;
if (parameters != 0)
{
byte[] array = parameters.GetKey();
IDictionary parameters2 = parameters.parameters;
this.InitParams(parameters2);
}
this.CreateInitialState();
this.UbiInit(48);
}
// Token: 0x0600BBE3 RID: 48099 RVA: 0x002A9B7C File Offset: 0x002A7D7C
[Token(Token = "0x600BBE3")]
[Address(RVA = "0x1FE4C60", Offset = "0x1FE3A60", VA = "0x181FE4C60")]
private void InitParams(IDictionary parameters)
{
int num;
int num3;
do
{
IList list = Platform.CreateArrayList();
IList list2 = Platform.CreateArrayList();
num = 0;
if (num < parameters)
{
num += num;
num++;
}
int num2 = 0;
if (list2 == 0)
{
goto IL_8C;
}
if (num < num2)
{
num += num;
num++;
}
num3 = num;
num += num;
num++;
if (num == 0)
{
num += 19;
num++;
num += 19;
num += 19;
}
}
while (num == 0);
if (num3 != 0)
{
SkeinEngine.Parameter parameter;
parameter.type = num3;
parameter.value = num;
}
IL_8C:
SkeinEngine.Parameter[] array = new SkeinEngine.Parameter[0];
SkeinEngine.Parameter[] array2 = new SkeinEngine.Parameter[array];
}
// Token: 0x0600BBE4 RID: 48100 RVA: 0x002A9C34 File Offset: 0x002A7E34
[Token(Token = "0x600BBE4")]
[Address(RVA = "0x1FE40A0", Offset = "0x1FE2EA0", VA = "0x181FE40A0")]
private void CreateInitialState()
{
bool isPartialBlockOkay;
int num2;
do
{
ThreefishEngine threefishEngine = this.threefish;
IDictionary initial_STATES = SkeinEngine.INITIAL_STATES;
isPartialBlockOkay = threefishEngine.IsPartialBlockOkay;
int num = this.outputSizeBytes;
num2 = 0;
if (!isPartialBlockOkay)
{
}
}
while (!isPartialBlockOkay);
if (this.key == num2 && isPartialBlockOkay)
{
ulong[] array;
this.chain = array;
}
bool isPartialBlockOkay2 = this.threefish.IsPartialBlockOkay;
ulong[] array2 = new ulong[0];
byte[] array3 = this.key;
this.chain = array2;
int length;
int num5;
if (array3 != 0)
{
int num3 = 0;
this.UbiInit(num3);
SkeinEngine.UBI ubi = this.ubi;
ulong[] array4 = this.chain;
int num4 = 0;
length = array3.Length;
ubi.Update(array3, num4, length, array4);
SkeinEngine.UBI ubi2 = this.ubi;
ulong[] array5 = this.chain;
num5 = 0;
ubi2.DoFinal(array5);
}
byte[] array6 = new byte[32];
int num6 = 0;
SkeinEngine.Configuration configuration;
configuration.bytes = array6;
configuration.FieldGetter(num6, num5, length);
byte[] bytes = configuration.bytes;
byte[] bytes2 = configuration.bytes;
byte[] bytes3 = configuration.bytes;
byte[] bytes4 = configuration.bytes;
byte[] bytes5 = configuration.bytes;
configuration.bytes[0] = (byte)num2;
byte[] bytes6 = configuration.bytes;
this.UbiInit(4);
SkeinEngine.UBI ubi3 = this.ubi;
ulong[] array7 = this.chain;
int num7 = 0;
int length2 = bytes6.Length;
ubi3.Update(bytes6, num7, length2, array7);
SkeinEngine.UBI ubi4 = this.ubi;
ulong[] array8 = this.chain;
ubi4.DoFinal(array8);
SkeinEngine.Parameter[] array9 = this.preMessageParameters;
if (array9 != 0 && num2 < array9.Length)
{
SkeinEngine.Parameter parameter = array9[num2];
SkeinEngine.UBI ubi5 = this.ubi;
byte[] value = parameter.value;
int type = parameter.type;
SkeinEngine.UbiTweak tweak = ubi5.tweak;
tweak.tweak[0] = (ulong)num2;
tweak.tweak[1] = (ulong)num2;
ulong[] tweak2 = tweak.tweak;
tweak.extendedPosition = num2 != 0;
ubi5.tweak.tweak[1] = (ulong)type;
ubi5.currentOffset = num2;
SkeinEngine.UBI ubi6 = this.ubi;
ulong[] array10 = this.chain;
int num8 = 0;
int length3 = value.Length;
ubi6.Update(value, num8, length3, array10);
SkeinEngine.UBI ubi7 = this.ubi;
ulong[] array11 = this.chain;
int num9 = ubi7.currentOffset;
int length4 = ubi7.currentBlock.Length;
if (num9 < length4)
{
num9++;
}
ulong[] tweak3 = ubi7.tweak.tweak;
ubi7.ProcessBlock(array11);
SkeinEngine.Parameter[] array12 = this.preMessageParameters;
num2++;
}
ulong[] array13 = Arrays.Clone(this.chain);
this.initialState = array13;
}
// Token: 0x0600BBE5 RID: 48101 RVA: 0x002A9EE0 File Offset: 0x002A80E0
[Token(Token = "0x600BBE5")]
[Address(RVA = "0x1FE54C0", Offset = "0x1FE42C0", VA = "0x181FE54C0")]
public void Reset()
{
ulong[] array = this.chain;
int length = array.Length;
int num = 0;
ulong[] array2 = this.initialState;
int num2 = 0;
Array.Copy(array2, num2, array, num, length);
this.UbiInit(48);
}
// Token: 0x0600BBE6 RID: 48102 RVA: 0x002A9F20 File Offset: 0x002A8120
[Token(Token = "0x600BBE6")]
[Address(RVA = "0x1FE5630", Offset = "0x1FE4430", VA = "0x181FE5630")]
private void UbiComplete(int type, byte[] value)
{
this.UbiInit(type);
SkeinEngine.UBI ubi = this.ubi;
ulong[] array = this.chain;
int num = 0;
int length = value.Length;
ubi.Update(value, num, length, array);
SkeinEngine.UBI ubi2 = this.ubi;
ulong[] array2 = this.chain;
ubi2.DoFinal(array2);
}
// Token: 0x0600BBE7 RID: 48103 RVA: 0x002A9F74 File Offset: 0x002A8174
[Token(Token = "0x600BBE7")]
[Address(RVA = "0x1FE56D0", Offset = "0x1FE44D0", VA = "0x181FE56D0")]
private void UbiInit(int type)
{
SkeinEngine.UBI ubi = this.ubi;
ubi.tweak.Reset();
ubi.tweak.tweak[1] = (ulong)type;
ubi.currentOffset = (int)((ulong)0L);
}
// Token: 0x0600BBE8 RID: 48104 RVA: 0x002A9FB4 File Offset: 0x002A81B4
[Token(Token = "0x600BBE8")]
[Address(RVA = "0x1FE56A0", Offset = "0x1FE44A0", VA = "0x181FE56A0")]
private void UbiFinal()
{
SkeinEngine.UBI ubi = this.ubi;
ulong[] array = this.chain;
ubi.DoFinal(array);
}
// Token: 0x0600BBE9 RID: 48105 RVA: 0x002A9FDC File Offset: 0x002A81DC
[Token(Token = "0x600BBE9")]
[Address(RVA = "0x1FE3CE0", Offset = "0x1FE2AE0", VA = "0x181FE3CE0")]
private void CheckInitialised()
{
/*
An exception occurred when decompiling this method (0600BBE9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::CheckInitialised()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0C:
stloc:ArgumentException(var_0_16, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Skein engine is 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BBEA RID: 48106 RVA: 0x002AA000 File Offset: 0x002A8200
[Token(Token = "0x600BBEA")]
[Address(RVA = "0x1FE5810", Offset = "0x1FE4610", VA = "0x181FE5810")]
public void Update(byte inByte)
{
this.singleByte[0] = inByte;
byte[] array = this.singleByte;
int num = 0;
this.Update(array, num, 1);
}
// Token: 0x0600BBEB RID: 48107 RVA: 0x002AA034 File Offset: 0x002A8234
[Token(Token = "0x600BBEB")]
[Address(RVA = "0x1FE5760", Offset = "0x1FE4560", VA = "0x181FE5760")]
public void Update(byte[] inBytes, int inOff, int len)
{
/*
An exception occurred when decompiling this method (0600BBEB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::Update(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1D:
stloc:ArgumentException(var_3_27, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Skein engine is 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BBEC RID: 48108 RVA: 0x002AA068 File Offset: 0x002A8268
[Token(Token = "0x600BBEC")]
[Address(RVA = "0x1FE4710", Offset = "0x1FE3510", VA = "0x181FE4710")]
public int DoFinal(byte[] outBytes, int outOff)
{
/*
An exception occurred when decompiling this method (0600BBEC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.SkeinEngine::DoFinal(System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_243:
stloc:ArgumentException(var_37_24D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Skein engine is 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600BBED RID: 48109 RVA: 0x002AA2C4 File Offset: 0x002A84C4
[Token(Token = "0x600BBED")]
[Address(RVA = "0x1FE5260", Offset = "0x1FE4060", VA = "0x181FE5260")]
private void Output(ulong outputSequence, byte[] outBytes, int outOff, int outputBytes)
{
byte[] array = new byte[8];
int num = 0;
ThreefishEngine.WordToBytes(outputSequence, array, num);
ulong[] array2 = new ulong[this.chain.Length];
this.UbiInit(63);
SkeinEngine.UBI ubi = this.ubi;
int length = array.Length;
int num2 = 0;
ubi.Update(array, num2, length, array2);
this.ubi.DoFinal(array2);
int num3 = 0;
array2 += array2;
if (array2 > 0)
{
int num4;
if (num4 != 8)
{
ulong num5 = array2[num3];
int num6 = 0;
ThreefishEngine.WordToBytes(num5, array, num6);
}
ThreefishEngine.WordToBytes(array2[num3], outBytes, outOff);
num3++;
}
}
// Token: 0x04007748 RID: 30536
[Token(Token = "0x4007748")]
public const int SKEIN_256 = 256;
// Token: 0x04007749 RID: 30537
[Token(Token = "0x4007749")]
public const int SKEIN_512 = 512;
// Token: 0x0400774A RID: 30538
[Token(Token = "0x400774A")]
public const int SKEIN_1024 = 1024;
// Token: 0x0400774B RID: 30539
[Token(Token = "0x400774B")]
private const int PARAM_TYPE_KEY = 0;
// Token: 0x0400774C RID: 30540
[Token(Token = "0x400774C")]
private const int PARAM_TYPE_CONFIG = 4;
// Token: 0x0400774D RID: 30541
[Token(Token = "0x400774D")]
private const int PARAM_TYPE_MESSAGE = 48;
// Token: 0x0400774E RID: 30542
[Token(Token = "0x400774E")]
private const int PARAM_TYPE_OUTPUT = 63;
// Token: 0x0400774F RID: 30543
[Token(Token = "0x400774F")]
private static readonly IDictionary INITIAL_STATES = Platform.CreateHashtable();
// Token: 0x04007750 RID: 30544
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007750")]
private readonly ThreefishEngine threefish;
// Token: 0x04007751 RID: 30545
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007751")]
private readonly int outputSizeBytes;
// Token: 0x04007752 RID: 30546
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007752")]
private ulong[] chain;
// Token: 0x04007753 RID: 30547
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007753")]
private ulong[] initialState;
// Token: 0x04007754 RID: 30548
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007754")]
private byte[] key;
// Token: 0x04007755 RID: 30549
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007755")]
private SkeinEngine.Parameter[] preMessageParameters;
// Token: 0x04007756 RID: 30550
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007756")]
private SkeinEngine.Parameter[] postMessageParameters;
// Token: 0x04007757 RID: 30551
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007757")]
private readonly SkeinEngine.UBI ubi;
// Token: 0x04007758 RID: 30552
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007758")]
private readonly byte[] singleByte;
// Token: 0x02001CFF RID: 7423
[Token(Token = "0x2001CFF")]
private class Configuration
{
// Token: 0x0600BBEE RID: 48110 RVA: 0x002AA36C File Offset: 0x002A856C
[Token(Token = "0x600BBEE")]
[Address(RVA = "0x1FD39C0", Offset = "0x1FD27C0", VA = "0x181FD39C0")]
public Configuration(long outputSizeBits)
{
byte[] array = new byte[32];
this.bytes = array;
base..ctor();
byte[] array2 = this.bytes;
byte[] array3 = this.bytes;
byte[] array4 = this.bytes;
byte[] array5 = this.bytes;
byte[] array6 = this.bytes;
byte[] array7 = this.bytes;
byte[] array8 = this.bytes;
ThreefishEngine.WordToBytes((ulong)outputSizeBits, array8, 8);
}
// Token: 0x17001D28 RID: 7464
// (get) Token: 0x0600BBEF RID: 48111 RVA: 0x002AA3D4 File Offset: 0x002A85D4
[Token(Token = "0x17001D28")]
public byte[] Bytes
{
[Token(Token = "0x600BBEF")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")]
get
{
return this.bytes;
}
}
// Token: 0x04007759 RID: 30553
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007759")]
private byte[] bytes;
}
// Token: 0x02001D00 RID: 7424
[Token(Token = "0x2001D00")]
public class Parameter
{
// Token: 0x0600BBF0 RID: 48112 RVA: 0x002AA3E8 File Offset: 0x002A85E8
[Token(Token = "0x600BBF0")]
[Address(RVA = "0x4E6E10", Offset = "0x4E5C10", VA = "0x1804E6E10")]
public Parameter(int type, byte[] value)
{
this.type = type;
this.value = value;
}
// Token: 0x17001D29 RID: 7465
// (get) Token: 0x0600BBF1 RID: 48113 RVA: 0x002AA40C File Offset: 0x002A860C
[Token(Token = "0x17001D29")]
public int Type
{
[Token(Token = "0x600BBF1")]
[Address(RVA = "0x3FA560", Offset = "0x3F9360", VA = "0x1803FA560")]
get
{
return this.type;
}
}
// Token: 0x17001D2A RID: 7466
// (get) Token: 0x0600BBF2 RID: 48114 RVA: 0x002AA420 File Offset: 0x002A8620
[Token(Token = "0x17001D2A")]
public byte[] Value
{
[Token(Token = "0x600BBF2")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40")]
get
{
return this.value;
}
}
// Token: 0x0400775A RID: 30554
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400775A")]
private int type;
// Token: 0x0400775B RID: 30555
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400775B")]
private byte[] value;
}
// Token: 0x02001D01 RID: 7425
[Token(Token = "0x2001D01")]
private class UbiTweak
{
// Token: 0x0600BBF3 RID: 48115 RVA: 0x002AA434 File Offset: 0x002A8634
[Token(Token = "0x600BBF3")]
[Address(RVA = "0x1FE8B90", Offset = "0x1FE7990", VA = "0x181FE8B90")]
public UbiTweak()
{
ulong[] array = new ulong[2];
this.tweak = array;
base..ctor();
this.Reset();
}
// Token: 0x0600BBF4 RID: 48116 RVA: 0x002AA45C File Offset: 0x002A865C
[Token(Token = "0x600BBF4")]
[Address(RVA = "0x1FE8810", Offset = "0x1FE7610", VA = "0x181FE8810")]
public void Reset(SkeinEngine.UbiTweak tweak)
{
ulong[] array = this.tweak;
ulong[] array2 = Arrays.Clone(tweak.tweak, array);
this.tweak = array2;
bool flag = tweak.extendedPosition;
this.extendedPosition = flag;
}
// Token: 0x0600BBF5 RID: 48117 RVA: 0x002AA498 File Offset: 0x002A8698
[Token(Token = "0x600BBF5")]
[Address(RVA = "0x1FE8780", Offset = "0x1FE7580", VA = "0x181FE8780")]
public void Reset()
{
ulong[] array = this.tweak;
int num = 0;
array[0] = (ulong)num;
this.tweak[1] = (ulong)num;
ulong[] array2 = this.tweak;
this.extendedPosition = num != 0;
}
// Token: 0x17001D2B RID: 7467
// (get) Token: 0x0600BBF6 RID: 48118 RVA: 0x002AA4D8 File Offset: 0x002A86D8
// (set) Token: 0x0600BBF7 RID: 48119 RVA: 0x002AA4F8 File Offset: 0x002A86F8
[Token(Token = "0x17001D2B")]
public uint Type
{
[Token(Token = "0x600BBF6")]
[Address(RVA = "0x1FE8C70", Offset = "0x1FE7A70", VA = "0x181FE8C70")]
get
{
ulong num = this.tweak[1];
throw new NullReferenceException();
}
[Token(Token = "0x600BBF7")]
[Address(RVA = "0x1FE8D90", Offset = "0x1FE7B90", VA = "0x181FE8D90")]
set
{
this.tweak[1] = (ulong)value;
}
}
// Token: 0x17001D2C RID: 7468
// (get) Token: 0x0600BBF8 RID: 48120 RVA: 0x002AA518 File Offset: 0x002A8718
// (set) Token: 0x0600BBF9 RID: 48121 RVA: 0x002AA534 File Offset: 0x002A8734
[Token(Token = "0x17001D2C")]
public bool First
{
[Token(Token = "0x600BBF8")]
[Address(RVA = "0x1FE8C30", Offset = "0x1FE7A30", VA = "0x181FE8C30")]
get
{
ulong[] array = this.tweak;
throw new NullReferenceException();
}
[Token(Token = "0x600BBF9")]
[Address(RVA = "0x1FE8D20", Offset = "0x1FE7B20", VA = "0x181FE8D20")]
set
{
ulong[] array = this.tweak;
if (!value)
{
return;
}
}
}
// Token: 0x17001D2D RID: 7469
// (get) Token: 0x0600BBFA RID: 48122 RVA: 0x002AA554 File Offset: 0x002A8754
// (set) Token: 0x0600BBFB RID: 48123 RVA: 0x002AA570 File Offset: 0x002A8770
[Token(Token = "0x17001D2D")]
public bool Final
{
[Token(Token = "0x600BBFA")]
[Address(RVA = "0x1FE8BF0", Offset = "0x1FE79F0", VA = "0x181FE8BF0")]
get
{
ulong[] array = this.tweak;
throw new IndexOutOfRangeException();
}
[Token(Token = "0x600BBFB")]
[Address(RVA = "0x1FE8CB0", Offset = "0x1FE7AB0", VA = "0x181FE8CB0")]
set
{
ulong[] array = this.tweak;
if (!value)
{
return;
}
}
}
// Token: 0x0600BBFC RID: 48124 RVA: 0x002AA590 File Offset: 0x002A8790
[Token(Token = "0x600BBFC")]
[Address(RVA = "0x1FE84E0", Offset = "0x1FE72E0", VA = "0x181FE84E0")]
public void AdvancePosition(int advance)
{
if (!this.extendedPosition)
{
this.tweak[0] = (ulong)advance;
ulong num;
if ((ulong)advance > num)
{
this.extendedPosition = true;
}
return;
}
ulong[] array = new ulong[3];
ulong num2 = this.tweak[0];
array[0] = num2;
ulong num3 = this.tweak[0];
array[1] = num3;
ulong num4 = this.tweak[1];
array[2] = num4;
int num5 = 0;
int length = array.Length;
if (num5 < length)
{
num5++;
}
ulong[] array2 = this.tweak;
ulong num6 = array[1];
array2[0] = num6;
ulong[] array3 = this.tweak;
ulong num7 = array[2];
array3[1] = num7;
}
// Token: 0x0600BBFD RID: 48125 RVA: 0x002AA65C File Offset: 0x002A885C
[Token(Token = "0x600BBFD")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")]
public ulong[] GetWords()
{
return this.tweak;
}
// Token: 0x0600BBFE RID: 48126 RVA: 0x002AA670 File Offset: 0x002A8870
[Token(Token = "0x600BBFE")]
[Address(RVA = "0x1FE88B0", Offset = "0x1FE76B0", VA = "0x181FE88B0", Slot = "3")]
public override string ToString()
{
object[] array = new object[5];
ulong num = this.tweak[1];
if (num != (ulong)0L)
{
}
array[0] = num;
if (" first: " != 0)
{
}
array[1] = " first: ";
ulong[] array2 = this.tweak;
string text;
if (text != 0)
{
}
array[2] = text;
if (", final: " != 0)
{
}
array[3] = ", final: ";
ulong[] array3 = this.tweak;
string text2;
if (text2 != 0)
{
}
array[4] = text2;
return string.Concat(array);
}
// Token: 0x0400775C RID: 30556
[Token(Token = "0x400775C")]
private const ulong LOW_RANGE = 18446744069414584320UL;
// Token: 0x0400775D RID: 30557
[Token(Token = "0x400775D")]
private const ulong T1_FINAL = 9223372036854775808UL;
// Token: 0x0400775E RID: 30558
[Token(Token = "0x400775E")]
private const ulong T1_FIRST = 4611686018427387904UL;
// Token: 0x0400775F RID: 30559
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400775F")]
private ulong[] tweak;
// Token: 0x04007760 RID: 30560
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007760")]
private bool extendedPosition;
}
// Token: 0x02001D02 RID: 7426
[Token(Token = "0x2001D02")]
private class UBI
{
// Token: 0x0600BBFF RID: 48127 RVA: 0x002AA700 File Offset: 0x002A8900
[Token(Token = "0x600BBFF")]
[Address(RVA = "0x1FE83F0", Offset = "0x1FE71F0", VA = "0x181FE83F0")]
public UBI(SkeinEngine engine, int blockSize)
{
SkeinEngine.UbiTweak ubiTweak = new SkeinEngine.UbiTweak();
ulong[] array = new ulong[2];
ubiTweak.tweak = array;
ubiTweak.Reset();
this.tweak = ubiTweak;
base..ctor();
this.engine = engine;
byte[] array2 = new byte[blockSize];
this.currentBlock = array2;
int length = array2.Length;
ulong[] array3 = new ulong[blockSize];
this.message = array3;
}
// Token: 0x0600BC00 RID: 48128 RVA: 0x002AA768 File Offset: 0x002A8968
[Token(Token = "0x600BC00")]
[Address(RVA = "0x1FE80C0", Offset = "0x1FE6EC0", VA = "0x181FE80C0")]
public void Reset(SkeinEngine.UBI ubi)
{
byte[] array = ubi.currentBlock;
byte[] array2 = this.currentBlock;
byte[] array3 = Arrays.Clone(array, array2);
ulong[] array4 = this.message;
this.currentBlock = array3;
int num = ubi.currentOffset;
this.currentOffset = num;
ulong[] array5 = Arrays.Clone(ubi.message, array4);
this.message = array5;
SkeinEngine.UbiTweak ubiTweak = this.tweak;
SkeinEngine.UbiTweak ubiTweak2 = ubi.tweak;
ulong[] array6 = ubiTweak2.tweak;
ulong[] array7 = ubiTweak.tweak;
ulong[] array8 = Arrays.Clone(array6, array7);
ubiTweak.tweak = array8;
bool extendedPosition = ubiTweak2.extendedPosition;
ubiTweak.extendedPosition = extendedPosition;
}
// Token: 0x0600BC01 RID: 48129 RVA: 0x002AA810 File Offset: 0x002A8A10
[Token(Token = "0x600BC01")]
[Address(RVA = "0x1FE81E0", Offset = "0x1FE6FE0", VA = "0x181FE81E0")]
public void Reset(int type)
{
this.tweak.Reset();
this.tweak.tweak[1] = (ulong)type;
this.currentOffset = (int)((ulong)0L);
}
// Token: 0x0600BC02 RID: 48130 RVA: 0x002AA84C File Offset: 0x002A8A4C
[Token(Token = "0x600BC02")]
[Address(RVA = "0x1FE8270", Offset = "0x1FE7070", VA = "0x181FE8270")]
public void Update(byte[] value, int offset, int len, ulong[] output)
{
int num = 0;
if (len > 0)
{
byte[] array = this.currentBlock;
int num2 = this.currentOffset;
if (num2 == array.Length)
{
ulong[] array2 = this.tweak.tweak;
this.currentOffset = (int)((ulong)0L);
}
int num3 = array.Length;
num3 -= num2;
int num4 = Math.Min(len, num3);
int num5 = this.currentOffset;
byte[] array3 = this.currentBlock;
Array.Copy(value, 0, array3, num5, num4);
SkeinEngine.UbiTweak ubiTweak = this.tweak;
num += num4;
ubiTweak.AdvancePosition(num4);
}
}
// Token: 0x0600BC03 RID: 48131 RVA: 0x002AA8DC File Offset: 0x002A8ADC
[Token(Token = "0x600BC03")]
[Address(RVA = "0x1FE7F20", Offset = "0x1FE6D20", VA = "0x181FE7F20")]
private void ProcessBlock(ulong[] output)
{
SkeinEngine skeinEngine = this.engine;
SkeinEngine.UbiTweak ubiTweak = this.tweak;
ThreefishEngine threefish = skeinEngine.threefish;
ulong[] array = ubiTweak.tweak;
int num = 0;
ulong[] chain = skeinEngine.chain;
threefish.Init(16777216 != 0, chain, array);
ulong[] array2 = this.message;
ulong[] array3;
if (num < array2.Length)
{
ulong num2 = ThreefishEngine.BytesToWord(this.currentBlock, 16777216);
num++;
array2[0] = num2;
array3 = this.message;
}
int num3 = this.engine.threefish.ProcessBlock(array3, output);
int length = output.Length;
if (num < length)
{
ulong num4 = this.message[num];
num++;
}
}
// Token: 0x0600BC04 RID: 48132 RVA: 0x002AA99C File Offset: 0x002A8B9C
[Token(Token = "0x600BC04")]
[Address(RVA = "0x1FE7E80", Offset = "0x1FE6C80", VA = "0x181FE7E80")]
public void DoFinal(ulong[] output)
{
byte[] array = this.currentBlock;
int num = this.currentOffset;
if (num < array.Length)
{
num++;
byte[] array2 = this.currentBlock;
}
ulong[] array3 = this.tweak.tweak;
this.ProcessBlock(output);
}
// Token: 0x04007761 RID: 30561
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007761")]
private readonly SkeinEngine.UbiTweak tweak;
// Token: 0x04007762 RID: 30562
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007762")]
private readonly SkeinEngine engine;
// Token: 0x04007763 RID: 30563
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007763")]
private byte[] currentBlock;
// Token: 0x04007764 RID: 30564
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007764")]
private int currentOffset;
// Token: 0x04007765 RID: 30565
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007765")]
private ulong[] message;
}
}
}
@@ -0,0 +1,620 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001D03 RID: 7427
[Token(Token = "0x2001D03")]
public class TigerDigest : IDigest, IMemoable
{
// Token: 0x0600BC05 RID: 48133 RVA: 0x002AA9E4 File Offset: 0x002A8BE4
[Token(Token = "0x600BC05")]
[Address(RVA = "0x1FE7DE0", Offset = "0x1FE6BE0", VA = "0x181FE7DE0")]
public TigerDigest()
{
byte[] array = new byte[8];
this.Buffer = array;
long[] array2 = new long[8];
this.x = array2;
base..ctor();
this.Reset();
}
// Token: 0x0600BC06 RID: 48134 RVA: 0x002AAA1C File Offset: 0x002A8C1C
[Token(Token = "0x600BC06")]
[Address(RVA = "0x1FE7C70", Offset = "0x1FE6A70", VA = "0x181FE7C70")]
public TigerDigest(TigerDigest t)
{
do
{
byte[] array = new byte[8];
this.Buffer = array;
long[] array2 = new long[8];
this.x = array2;
base..ctor();
}
while (t == 0);
long num = t.a;
this.a = num;
long num2 = t.b;
this.b = num2;
long num3 = t.c;
this.c = num3;
long[] array3 = t.x;
int length = array3.Length;
int num4 = 0;
long[] array4 = this.x;
int num5 = 0;
Array.Copy(array3, num5, array4, num4, length);
int num6 = t.xOff;
this.xOff = num6;
byte[] buffer = t.Buffer;
int length2 = buffer.Length;
int num7 = 0;
byte[] buffer2 = this.Buffer;
int num8 = 0;
Array.Copy(buffer, num8, buffer2, num7, length2);
int num9 = t.bOff;
this.bOff = num9;
long num10 = t.byteCount;
this.byteCount = num10;
}
// Token: 0x17001D2E RID: 7470
// (get) Token: 0x0600BC07 RID: 48135 RVA: 0x002AAB14 File Offset: 0x002A8D14
[Token(Token = "0x17001D2E")]
public string AlgorithmName
{
[Token(Token = "0x600BC07")]
[Address(RVA = "0x1FE7E50", Offset = "0x1FE6C50", VA = "0x181FE7E50", Slot = "4")]
get
{
return "Tiger";
}
}
// Token: 0x0600BC08 RID: 48136 RVA: 0x002AAB28 File Offset: 0x002A8D28
[Token(Token = "0x600BC08")]
[Address(RVA = "0x4B5FE0", Offset = "0x4B4DE0", VA = "0x1804B5FE0", Slot = "5")]
public int GetDigestSize()
{
return 24;
}
// Token: 0x0600BC09 RID: 48137 RVA: 0x002AAB38 File Offset: 0x002A8D38
[Token(Token = "0x600BC09")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x0600BC0A RID: 48138 RVA: 0x002AAB48 File Offset: 0x002A8D48
[Token(Token = "0x600BC0A")]
[Address(RVA = "0x1FE6E50", Offset = "0x1FE5C50", VA = "0x181FE6E50")]
private void ProcessWord(byte[] b, int off)
{
int num = this.xOff;
long[] array = this.x;
int num2 = num + 1;
this.xOff = num2;
int length = b.Length;
int num3 = off + 1;
byte b2;
array[0] = (long)b2;
int length2 = this.x.Length;
if (this.xOff == length2)
{
this.ProcessBlock();
}
this.bOff = (int)((ulong)0L);
}
// Token: 0x0600BC0B RID: 48139 RVA: 0x002AABB0 File Offset: 0x002A8DB0
[Token(Token = "0x600BC0B")]
[Address(RVA = "0x1FE7AF0", Offset = "0x1FE68F0", VA = "0x181FE7AF0", Slot = "7")]
public void Update(byte input)
{
byte[] buffer = this.Buffer;
int num = this.bOff + 1;
this.bOff = num;
byte[] buffer2 = this.Buffer;
int length = buffer2.Length;
if (this.bOff == length)
{
int num2 = 0;
this.ProcessWord(buffer2, num2);
}
}
// Token: 0x0600BC0C RID: 48140 RVA: 0x002AAC00 File Offset: 0x002A8E00
[Token(Token = "0x600BC0C")]
[Address(RVA = "0x1FE5D40", Offset = "0x1FE4B40", VA = "0x181FE5D40", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
int num = this.bOff;
int num2;
if (num != 0 && length > 0)
{
byte[] buffer = this.Buffer;
num2 = num + 1;
this.bOff = num2;
num2 = num;
byte[] buffer2 = this.Buffer;
int num3 = this.bOff;
if (num3 == buffer2.Length)
{
int num4 = 0;
this.ProcessWord(buffer2, num4);
}
while (num3 != 0)
{
}
}
if (length > 8)
{
num2++;
this.ProcessWord(input, inOff);
while (length != 8)
{
}
}
if (length > 0)
{
int num5 = this.bOff;
byte[] buffer3 = this.Buffer;
num2 = inOff;
int num6 = num5 + 1;
this.bOff = num6;
byte[] buffer4 = this.Buffer;
int length2 = buffer4.Length;
if (this.bOff == length2)
{
int num7 = 0;
this.ProcessWord(buffer4, num7);
}
}
}
// Token: 0x0600BC0D RID: 48141 RVA: 0x002AACC4 File Offset: 0x002A8EC4
[Token(Token = "0x600BC0D")]
[Address(RVA = "0x1FE7270", Offset = "0x1FE6070", VA = "0x181FE7270")]
private void RoundABC(long x, long mul)
{
long num = this.a;
long[] array = TigerDigest.t1;
long num2 = this.c;
long[] array2 = TigerDigest.t2;
long num3 = this.c;
long[] array3 = TigerDigest.t3;
long num4 = TigerDigest.t4[(int)num3];
num -= num4;
this.a = num;
long[] array4 = TigerDigest.t4;
long[] array5 = TigerDigest.t3;
long[] array6 = TigerDigest.t2;
long num5 = TigerDigest.t1[(int)num3] * mul;
this.b = num5;
}
// Token: 0x0600BC0E RID: 48142 RVA: 0x002AAD48 File Offset: 0x002A8F48
[Token(Token = "0x600BC0E")]
[Address(RVA = "0x1FE74D0", Offset = "0x1FE62D0", VA = "0x181FE74D0")]
private void RoundBCA(long x, long mul)
{
long num = this.b;
long[] array = TigerDigest.t1;
long num2 = this.a;
long[] array2 = TigerDigest.t2;
long num3 = this.a;
long[] array3 = TigerDigest.t3;
long num4 = TigerDigest.t4[(int)num3];
num -= num4;
this.b = num;
long[] array4 = TigerDigest.t4;
long[] array5 = TigerDigest.t3;
long[] array6 = TigerDigest.t2;
long num5 = TigerDigest.t1[(int)num3] * mul;
this.c = num5;
}
// Token: 0x0600BC0F RID: 48143 RVA: 0x002AADCC File Offset: 0x002A8FCC
[Token(Token = "0x600BC0F")]
[Address(RVA = "0x1FE7730", Offset = "0x1FE6530", VA = "0x181FE7730")]
private void RoundCAB(long x, long mul)
{
long num = this.c;
long[] array = TigerDigest.t1;
long num2 = this.b;
long[] array2 = TigerDigest.t2;
long num3 = this.b;
long[] array3 = TigerDigest.t3;
long num4 = TigerDigest.t4[(int)num3];
num -= num4;
this.c = num;
long[] array4 = TigerDigest.t4;
long[] array5 = TigerDigest.t3;
long[] array6 = TigerDigest.t2;
long num5 = TigerDigest.t1[(int)num3] * mul;
this.a = num5;
}
// Token: 0x0600BC10 RID: 48144 RVA: 0x002AAE50 File Offset: 0x002A9050
[Token(Token = "0x600BC10")]
[Address(RVA = "0x1FE6340", Offset = "0x1FE5140", VA = "0x181FE6340")]
private void KeySchedule()
{
long[] array = this.x;
int length = array.Length;
long num = array[0];
long num2 = array[7];
num -= num2;
array[0] = num;
long[] array2 = this.x;
long[] array3 = this.x;
long[] array4 = this.x;
int length2 = array4.Length;
long num3 = array4[3];
long num4 = array4[1];
num3 -= num4;
array4[3] = num3;
long[] array5 = this.x;
long[] array6 = this.x;
long[] array7 = this.x;
int length3 = array7.Length;
long num5 = array7[6];
long num6 = array7[4];
num5 -= num6;
array7[6] = num5;
long[] array8 = this.x;
long[] array9 = this.x;
int length4 = array9.Length;
long num7 = array9[0];
array9[0] = num7;
long[] array10 = this.x;
int length5 = array10.Length;
long num8 = array10[1];
long num9 = array10[7];
num8 -= num9;
array10[1] = num8;
long[] array11 = this.x;
long[] array12 = this.x;
long[] array13 = this.x;
int length6 = array13.Length;
long num10 = array13[4];
long num11 = array13[2];
num10 -= num11;
array13[4] = num10;
long[] array14 = this.x;
long[] array15 = this.x;
long num12 = this.x[6];
}
// Token: 0x0600BC11 RID: 48145 RVA: 0x002AAFE0 File Offset: 0x002A91E0
[Token(Token = "0x600BC11")]
[Address(RVA = "0x1FE67D0", Offset = "0x1FE55D0", VA = "0x181FE67D0")]
private void ProcessBlock()
{
long num = this.x[0];
long num2 = this.x[1];
long num3 = this.x[2];
long num4 = this.x[3];
long num5 = this.x[4];
long num6 = this.x[5];
long num7 = this.x[6];
long num8 = this.x[7];
this.KeySchedule();
long num9 = this.x[0];
long num10 = this.x[1];
long num11 = this.x[2];
long num12 = this.x[3];
long num13 = this.x[4];
long num14 = this.x[5];
long num15 = this.x[6];
long num16 = this.x[7];
this.KeySchedule();
long num17 = this.x[0];
long num18 = this.x[1];
long num19 = this.x[2];
long num20 = this.x[3];
long num21 = this.x[4];
long num22 = this.x[5];
long num23 = this.x[6];
long num24 = this.x[7];
long[] array = this.x;
int num25 = 0;
this.xOff = num25;
if (num25 != array.Length)
{
num25++;
array[0] = (long)num25;
long[] array2 = this.x;
}
}
// Token: 0x0600BC12 RID: 48146 RVA: 0x002AB184 File Offset: 0x002A9384
[Token(Token = "0x600BC12")]
[Address(RVA = "0x1FE7990", Offset = "0x1FE6790", VA = "0x181FE7990")]
private void UnpackWord(long r, byte[] output, int outOff)
{
int num = outOff + 1;
}
// Token: 0x0600BC13 RID: 48147 RVA: 0x002AB19C File Offset: 0x002A939C
[Token(Token = "0x600BC13")]
[Address(RVA = "0x1FE6E10", Offset = "0x1FE5C10", VA = "0x181FE6E10")]
private void ProcessLength(long bitLength)
{
this.x[7] = bitLength;
}
// Token: 0x0600BC14 RID: 48148 RVA: 0x002AB1BC File Offset: 0x002A93BC
[Token(Token = "0x600BC14")]
[Address(RVA = "0x1FE6220", Offset = "0x1FE5020", VA = "0x181FE6220")]
private void Finish()
{
long num;
for (;;)
{
num = this.byteCount;
byte[] buffer = this.Buffer;
int num2 = this.bOff + 1;
this.bOff = num2;
byte[] buffer2 = this.Buffer;
int num3 = this.bOff;
if (num3 == buffer2.Length)
{
int num4 = 0;
this.ProcessWord(buffer2, num4);
}
if (num3 == 0)
{
break;
}
byte[] buffer3 = this.Buffer;
int num5 = num3 + 1;
this.bOff = num5;
byte[] buffer4 = this.Buffer;
if (this.bOff == buffer4.Length)
{
int num6 = 0;
this.ProcessWord(buffer4, num6);
if (this.bOff == 0)
{
break;
}
}
}
this.x[7] = num;
this.ProcessBlock();
}
// Token: 0x0600BC15 RID: 48149 RVA: 0x002AB274 File Offset: 0x002A9474
[Token(Token = "0x600BC15")]
[Address(RVA = "0x1FE6080", Offset = "0x1FE4E80", VA = "0x181FE6080", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
long num;
for (;;)
{
num = this.byteCount;
byte[] buffer = this.Buffer;
int num2 = this.bOff + 1;
this.bOff = num2;
byte[] buffer2 = this.Buffer;
int num3 = this.bOff;
if (num3 == buffer2.Length)
{
int num4 = 0;
this.ProcessWord(buffer2, num4);
}
if (num3 == 0)
{
break;
}
byte[] buffer3 = this.Buffer;
int num5 = num3 + 1;
this.bOff = num5;
byte[] buffer4 = this.Buffer;
if (this.bOff == buffer4.Length)
{
int num6 = 0;
this.ProcessWord(buffer4, num6);
if (this.bOff == 0)
{
break;
}
}
}
this.x[7] = num;
this.ProcessBlock();
long num7 = this.a;
this.UnpackWord(num7, output, outOff);
long num8 = this.b;
this.UnpackWord(num8, output, outOff);
long num9 = this.c;
this.UnpackWord(num9, output, outOff);
this.Reset();
return 24;
}
// Token: 0x0600BC16 RID: 48150 RVA: 0x002AB370 File Offset: 0x002A9570
[Token(Token = "0x600BC16")]
[Address(RVA = "0x1FE7060", Offset = "0x1FE5E60", VA = "0x181FE7060", Slot = "10")]
public void Reset()
{
int num;
do
{
num = 0;
this.a = (long)((ulong)81985529216486895L);
this.xOff = num;
this.b = (long)((ulong)(-81985529216486896L));
this.c = (long)((ulong)(-1110518062304271993L));
long[] array = this.x;
if (num != array.Length)
{
num++;
array[0] = (long)num;
long[] array2 = this.x;
}
byte[] buffer = this.Buffer;
this.bOff = num;
if (num == buffer.Length)
{
break;
}
num++;
}
while (this.Buffer != 0);
this.byteCount = (long)num;
}
// Token: 0x0600BC17 RID: 48151 RVA: 0x002AB410 File Offset: 0x002A9610
[Token(Token = "0x600BC17")]
[Address(RVA = "0x1FE5EF0", Offset = "0x1FE4CF0", VA = "0x181FE5EF0", Slot = "11")]
public IMemoable Copy()
{
TigerDigest tigerDigest;
do
{
tigerDigest = new TigerDigest();
byte[] array = new byte[8];
tigerDigest.Buffer = array;
long[] array2 = new long[8];
tigerDigest.x = array2;
}
while (this == 0);
long num = this.a;
tigerDigest.a = num;
long num2 = this.b;
tigerDigest.b = num2;
long num3 = this.c;
tigerDigest.c = num3;
long[] array3 = this.x;
int length = array3.Length;
int num4 = 0;
long[] array4 = tigerDigest.x;
int num5 = 0;
Array.Copy(array3, num5, array4, num4, length);
int num6 = this.xOff;
tigerDigest.xOff = num6;
byte[] buffer = this.Buffer;
int length2 = buffer.Length;
int num7 = 0;
byte[] buffer2 = tigerDigest.Buffer;
int num8 = 0;
Array.Copy(buffer, num8, buffer2, num7, length2);
int num9 = this.bOff;
tigerDigest.bOff = num9;
long num10 = this.byteCount;
tigerDigest.byteCount = num10;
throw new NullReferenceException();
}
// Token: 0x0600BC18 RID: 48152 RVA: 0x002AB508 File Offset: 0x002A9708
[Token(Token = "0x600BC18")]
[Address(RVA = "0x1FE7150", Offset = "0x1FE5F50", VA = "0x181FE7150", Slot = "12")]
public void Reset(IMemoable other)
{
int num;
do
{
num = 0;
}
while (other == 0);
this.a = (long)num;
this.b = (long)num;
this.c = (long)num;
this.xOff = num;
this.bOff = num;
this.byteCount = (long)num;
}
// Token: 0x0600BC19 RID: 48153 RVA: 0x002AB54C File Offset: 0x002A974C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600BC19")]
[Address(RVA = "0x1FE7B60", Offset = "0x1FE6960", VA = "0x181FE7B60")]
static TigerDigest()
{
long[] array = new long[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.A0FABB8173BA247898A9FA267D0CE05500B667A0).FieldHandle);
TigerDigest.t1 = array;
long[] array2 = new long[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.467C6758F235D3193618192A64129CBB602C9067).FieldHandle);
TigerDigest.t2 = array2;
long[] array3 = new long[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.1648F737A4CFFDA4E6C83A3D742109BF9DBC2446).FieldHandle);
TigerDigest.t3 = array3;
long[] array4 = new long[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.C079C42AC966756C902EC38C4D7989F3C20D3625).FieldHandle);
TigerDigest.t4 = array4;
}
// Token: 0x04007766 RID: 30566
[Token(Token = "0x4007766")]
private const int MyByteLength = 64;
// Token: 0x04007767 RID: 30567
[Token(Token = "0x4007767")]
private static readonly long[] t1;
// Token: 0x04007768 RID: 30568
[Token(Token = "0x4007768")]
private static readonly long[] t2;
// Token: 0x04007769 RID: 30569
[Token(Token = "0x4007769")]
private static readonly long[] t3;
// Token: 0x0400776A RID: 30570
[Token(Token = "0x400776A")]
private static readonly long[] t4;
// Token: 0x0400776B RID: 30571
[Token(Token = "0x400776B")]
private const int DigestLength = 24;
// Token: 0x0400776C RID: 30572
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400776C")]
private long a;
// Token: 0x0400776D RID: 30573
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400776D")]
private long b;
// Token: 0x0400776E RID: 30574
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400776E")]
private long c;
// Token: 0x0400776F RID: 30575
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400776F")]
private long byteCount;
// Token: 0x04007770 RID: 30576
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007770")]
private byte[] Buffer;
// Token: 0x04007771 RID: 30577
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007771")]
private int bOff;
// Token: 0x04007772 RID: 30578
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007772")]
private long[] x;
// Token: 0x04007773 RID: 30579
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007773")]
private int xOff;
}
}
@@ -0,0 +1,648 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
{
// Token: 0x02001D04 RID: 7428
[Token(Token = "0x2001D04")]
public sealed class WhirlpoolDigest : IDigest, IMemoable
{
// Token: 0x0600BC1A RID: 48154 RVA: 0x002AB5CC File Offset: 0x002A97CC
[Token(Token = "0x600BC1A")]
[Address(RVA = "0x1FE95A0", Offset = "0x1FE83A0", VA = "0x181FE95A0")]
static WhirlpoolDigest()
{
int[] array = new int[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.840B3A53AAF3595FDF3313D46FFD246A7EA6E89E).FieldHandle);
WhirlpoolDigest.SBOX = array;
WhirlpoolDigest.C0 = new long[256];
WhirlpoolDigest.C1 = new long[256];
WhirlpoolDigest.C2 = new long[256];
WhirlpoolDigest.C3 = new long[256];
WhirlpoolDigest.C4 = new long[256];
WhirlpoolDigest.C5 = new long[256];
WhirlpoolDigest.C6 = new long[256];
WhirlpoolDigest.C7 = new long[256];
WhirlpoolDigest.EIGHT = new short[32];
short[] eight = WhirlpoolDigest.EIGHT;
int num = 0;
eight[7] = (short)((uint)8);
int[] sbox = WhirlpoolDigest.SBOX;
int num2 = sbox[num];
WhirlpoolDigest.C0[0] = (long)num2;
WhirlpoolDigest.C1[0] = sbox;
WhirlpoolDigest.C2[0] = sbox;
WhirlpoolDigest.C3[0] = sbox;
WhirlpoolDigest.C4[0] = sbox;
WhirlpoolDigest.C5[0] = (long)num2;
WhirlpoolDigest.C6[0] = sbox;
long[] c = WhirlpoolDigest.C7;
num++;
c[0] = (long)num2;
}
// Token: 0x0600BC1B RID: 48155 RVA: 0x002AB70C File Offset: 0x002A990C
[Token(Token = "0x600BC1B")]
[Address(RVA = "0x1FE9CB0", Offset = "0x1FE8AB0", VA = "0x181FE9CB0")]
public WhirlpoolDigest()
{
long[] array = new long[11];
this._rc = array;
byte[] array2 = new byte[64];
this._buffer = array2;
short[] array3 = new short[32];
this._bitCount = array3;
long[] array4 = new long[8];
this._hash = array4;
long[] array5 = new long[8];
this._K = array5;
long[] array6 = new long[8];
this._L = array6;
long[] array7 = new long[8];
this._block = array7;
long[] array8 = new long[8];
this._state = array8;
base..ctor();
long[] rc = this._rc;
long[] rc2 = this._rc;
long[] c = WhirlpoolDigest.C0;
long[] c2 = WhirlpoolDigest.C1;
long[] c3 = WhirlpoolDigest.C2;
long[] c4 = WhirlpoolDigest.C3;
long[] c5 = WhirlpoolDigest.C4;
long[] c6 = WhirlpoolDigest.C5;
long[] c7 = WhirlpoolDigest.C6;
uint num2;
long num = WhirlpoolDigest.C7[(int)num2];
num2 += (uint)8;
rc2[0] = num;
ulong num3;
num3 += (ulong)1L;
while (num2 <= (uint)80)
{
}
}
// Token: 0x0600BC1C RID: 48156 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600BC1C")]
[Address(RVA = "0x1FEA690", Offset = "0x1FE9490", VA = "0x181FEA690")]
private static long packIntoLong(int b7, int b6, int b5, int b4, int b3, int b2, int b1, int b0)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600BC1D RID: 48157 RVA: 0x002AB814 File Offset: 0x002A9A14
[Token(Token = "0x600BC1D")]
[Address(RVA = "0x1FEA670", Offset = "0x1FE9470", VA = "0x181FEA670")]
private static int maskWithReductionPolynomial(int input)
{
return input;
}
// Token: 0x0600BC1E RID: 48158 RVA: 0x002AB824 File Offset: 0x002A9A24
[Token(Token = "0x600BC1E")]
[Address(RVA = "0x1FE9BB0", Offset = "0x1FE89B0", VA = "0x181FE9BB0")]
public WhirlpoolDigest(WhirlpoolDigest originalDigest)
{
long[] array = new long[11];
this._rc = array;
byte[] array2 = new byte[64];
this._buffer = array2;
short[] array3 = new short[32];
this._bitCount = array3;
long[] array4 = new long[8];
this._hash = array4;
long[] array5 = new long[8];
this._K = array5;
long[] array6 = new long[8];
this._L = array6;
long[] array7 = new long[8];
this._block = array7;
long[] array8 = new long[8];
this._state = array8;
base..ctor();
this.Reset(originalDigest);
}
// Token: 0x17001D2F RID: 7471
// (get) Token: 0x0600BC1F RID: 48159 RVA: 0x002AB8BC File Offset: 0x002A9ABC
[Token(Token = "0x17001D2F")]
public string AlgorithmName
{
[Token(Token = "0x600BC1F")]
[Address(RVA = "0x1FEA4F0", Offset = "0x1FE92F0", VA = "0x181FEA4F0", Slot = "4")]
get
{
return "Whirlpool";
}
}
// Token: 0x0600BC20 RID: 48160 RVA: 0x002AB8D0 File Offset: 0x002A9AD0
[Token(Token = "0x600BC20")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "5")]
public int GetDigestSize()
{
return 64;
}
// Token: 0x0600BC21 RID: 48161 RVA: 0x002AB8E0 File Offset: 0x002A9AE0
[Token(Token = "0x600BC21")]
[Address(RVA = "0x1FE8F90", Offset = "0x1FE7D90", VA = "0x181FE8F90", Slot = "9")]
public int DoFinal(byte[] output, int outOff)
{
this.finish();
int num = 0;
long num2 = this._hash[num];
int num3 = 0;
num3++;
num++;
short[] bitCount = this._bitCount;
int length = bitCount.Length;
int num4 = 0;
Array.Clear(bitCount, num4, length);
byte[] buffer = this._buffer;
int length2 = buffer.Length;
int num5 = 0;
Array.Clear(buffer, num5, length2);
long[] hash = this._hash;
int length3 = hash.Length;
int num6 = 0;
Array.Clear(hash, num6, length3);
long[] k = this._K;
int length4 = k.Length;
int num7 = 0;
Array.Clear(k, num7, length4);
long[] l = this._L;
int length5 = l.Length;
int num8 = 0;
Array.Clear(l, num8, length5);
long[] block = this._block;
int length6 = block.Length;
int num9 = 0;
Array.Clear(block, num9, length6);
long[] state = this._state;
int length7 = state.Length;
int num10 = 0;
Array.Clear(state, num10, length7);
throw new NullReferenceException();
}
// Token: 0x0600BC22 RID: 48162 RVA: 0x002AB9E8 File Offset: 0x002A9BE8
[Token(Token = "0x600BC22")]
[Address(RVA = "0x1FE9170", Offset = "0x1FE7F70", VA = "0x181FE9170", Slot = "10")]
public void Reset()
{
this._bufferPos = (int)((ulong)0L);
short[] bitCount = this._bitCount;
int length = bitCount.Length;
int num = 0;
Array.Clear(bitCount, num, length);
byte[] buffer = this._buffer;
int length2 = buffer.Length;
int num2 = 0;
Array.Clear(buffer, num2, length2);
long[] hash = this._hash;
int length3 = hash.Length;
int num3 = 0;
Array.Clear(hash, num3, length3);
long[] k = this._K;
int length4 = k.Length;
int num4 = 0;
Array.Clear(k, num4, length4);
long[] l = this._L;
int length5 = l.Length;
int num5 = 0;
Array.Clear(l, num5, length5);
long[] block = this._block;
int length6 = block.Length;
int num6 = 0;
Array.Clear(block, num6, length6);
long[] state = this._state;
int length7 = state.Length;
int num7 = 0;
Array.Clear(state, num7, length7);
}
// Token: 0x0600BC23 RID: 48163 RVA: 0x002ABAD4 File Offset: 0x002A9CD4
[Token(Token = "0x600BC23")]
[Address(RVA = "0x1FEB440", Offset = "0x1FEA240", VA = "0x181FEB440")]
private void processFilledBuffer()
{
long[] state = this._state;
int num = 0;
int num2 = 0;
if (num2 < state.Length)
{
long[] block = this._block;
byte[] buffer = this._buffer;
num++;
long num3;
block[0] = num3;
long[] state2 = this._state;
}
this.processBlock();
byte[] buffer2 = this._buffer;
this._bufferPos = (int)((ulong)0L);
int length = buffer2.Length;
int num4 = 0;
Array.Clear(buffer2, num4, length);
}
// Token: 0x0600BC24 RID: 48164 RVA: 0x002ABB54 File Offset: 0x002A9D54
[Token(Token = "0x600BC24")]
[Address(RVA = "0x1FEA0B0", Offset = "0x1FE8EB0", VA = "0x181FEA0B0")]
private static long bytesToLongFromBuffer(byte[] buffer, int startPos)
{
int length = buffer.Length;
int num = startPos + 1;
throw new NullReferenceException();
}
// Token: 0x0600BC25 RID: 48165 RVA: 0x002ABB74 File Offset: 0x002A9D74
[Token(Token = "0x600BC25")]
[Address(RVA = "0x1FEA260", Offset = "0x1FE9060", VA = "0x181FEA260")]
private static void convertLongToByteArray(long inputLong, byte[] outputArray, int offSet)
{
}
// Token: 0x0600BC26 RID: 48166 RVA: 0x002ABB88 File Offset: 0x002A9D88
[Token(Token = "0x600BC26")]
[Address(RVA = "0x1FEA6F0", Offset = "0x1FE94F0", VA = "0x181FEA6F0")]
private void processBlock()
{
int num = 0;
long[] block = this._block;
long[] state = this._state;
long[] hash = this._hash;
long[] k = this._K;
long num2 = hash[num];
k[0] = num2;
num++;
state[0] = num2;
this._L[0] = (long)num;
long[] l = this._L;
long[] k2 = this._K;
long[] c = WhirlpoolDigest.C0;
long[] l2 = this._L;
long[] c2 = WhirlpoolDigest.C1;
long[] k3 = this._K;
long[] l3 = this._L;
long[] c3 = WhirlpoolDigest.C2;
long[] k4 = this._K;
long[] l4 = this._L;
long[] c4 = WhirlpoolDigest.C3;
long[] k5 = this._K;
long[] l5 = this._L;
long[] c5 = WhirlpoolDigest.C4;
long[] k6 = this._K;
long[] l6 = this._L;
long[] c6 = WhirlpoolDigest.C5;
long[] k7 = this._K;
long[] l7 = this._L;
long[] c7 = WhirlpoolDigest.C6;
long[] k8 = this._K;
long[] l8 = this._L;
long[] c8 = WhirlpoolDigest.C7;
long[] k9 = this._K;
num++;
long[] k10 = this._K;
int length = k10.Length;
int num3 = 0;
long[] l9 = this._L;
int num4 = 0;
Array.Copy(l9, num4, k10, num3, length);
long[] k11 = this._K;
long[] rc = this._rc;
long[] k12 = this._K;
long[] l10 = this._L;
long num5 = k12[num];
l10[0] = num5;
long[] l11 = this._L;
long[] state2 = this._state;
long[] c9 = WhirlpoolDigest.C0;
long[] l12 = this._L;
long[] c10 = WhirlpoolDigest.C1;
long[] state3 = this._state;
long[] l13 = this._L;
long[] c11 = WhirlpoolDigest.C2;
long[] state4 = this._state;
long[] l14 = this._L;
long[] c12 = WhirlpoolDigest.C3;
long[] state5 = this._state;
long[] l15 = this._L;
long[] c13 = WhirlpoolDigest.C4;
long[] state6 = this._state;
long[] l16 = this._L;
long[] c14 = WhirlpoolDigest.C5;
long[] state7 = this._state;
long[] l17 = this._L;
long[] c15 = WhirlpoolDigest.C6;
long[] state8 = this._state;
long[] l18 = this._L;
long[] c16 = WhirlpoolDigest.C7;
long[] state9 = this._state;
num++;
long[] state10 = this._state;
int length2 = state10.Length;
int num6 = 0;
long[] l19 = this._L;
int num7 = 0;
Array.Copy(l19, num7, state10, num6, length2);
while ((ulong)((uint)1) <= (ulong)10L)
{
}
long[] hash2 = this._hash;
long[] state11 = this._state;
long num8 = this._block[num];
num++;
}
// Token: 0x0600BC27 RID: 48167 RVA: 0x002ABE1C File Offset: 0x002AA01C
[Token(Token = "0x600BC27")]
[Address(RVA = "0x1FE9400", Offset = "0x1FE8200", VA = "0x181FE9400", Slot = "7")]
public void Update(byte input)
{
byte[] buffer = this._buffer;
int bufferPos = this._bufferPos;
int num = this._bufferPos;
byte[] buffer2 = this._buffer;
num++;
this._bufferPos = num;
if (num == buffer2.Length)
{
this.processFilledBuffer();
}
int length = this._bitCount.Length;
short[] bitCount = this._bitCount;
short[] eight = WhirlpoolDigest.EIGHT;
short[] bitCount2 = this._bitCount;
}
// Token: 0x0600BC28 RID: 48168 RVA: 0x002ABE8C File Offset: 0x002AA08C
[Token(Token = "0x600BC28")]
[Address(RVA = "0x1FEA520", Offset = "0x1FE9320", VA = "0x181FEA520")]
private void increment()
{
int length = this._bitCount.Length;
short[] bitCount = this._bitCount;
short[] eight = WhirlpoolDigest.EIGHT;
short[] bitCount2 = this._bitCount;
}
// Token: 0x0600BC29 RID: 48169 RVA: 0x002ABEC0 File Offset: 0x002AA0C0
[Token(Token = "0x600BC29")]
[Address(RVA = "0x1FE8DF0", Offset = "0x1FE7BF0", VA = "0x181FE8DF0", Slot = "8")]
public void BlockUpdate(byte[] input, int inOff, int length)
{
if (length > 0)
{
byte b;
this.Update(b);
}
}
// Token: 0x0600BC2A RID: 48170 RVA: 0x002ABEE0 File Offset: 0x002AA0E0
[Token(Token = "0x600BC2A")]
[Address(RVA = "0x1FEA370", Offset = "0x1FE9170", VA = "0x181FEA370")]
private void finish()
{
byte[] array = new byte[32];
int num = 0;
int num2 = 0;
int length = array.Length;
if (num2 < length)
{
short num3 = this._bitCount[num];
num++;
}
int bufferPos = this._bufferPos;
byte[] buffer = this._buffer;
int num4 = bufferPos + 1;
this._bufferPos = num4;
byte[] buffer2 = this._buffer;
int bufferPos2;
if (this._bufferPos == buffer2.Length)
{
this.processFilledBuffer();
bufferPos2 = this._bufferPos;
}
if (bufferPos2 > 32)
{
if (bufferPos2 == 0)
{
goto IL_A4;
}
int num5 = 0;
this.Update((byte)num5);
while (this.C3 != (ulong)0L)
{
}
}
int num6 = 0;
this.Update((byte)num6);
while (this.C3 <= (ulong)32L)
{
}
IL_A4:
int length2 = array.Length;
byte[] buffer3 = this._buffer;
int num7 = 0;
Array.Copy(array, num7, buffer3, 32, length2);
this.processFilledBuffer();
}
// Token: 0x0600BC2B RID: 48171 RVA: 0x002ABFC0 File Offset: 0x002AA1C0
[Token(Token = "0x600BC2B")]
[Address(RVA = "0x1FEA2D0", Offset = "0x1FE90D0", VA = "0x181FEA2D0")]
private byte[] copyBitLength()
{
byte[] array = new byte[32];
int num = 0;
int length = array.Length;
if (num < length)
{
short num2 = this._bitCount[num];
num++;
}
return array;
}
// Token: 0x0600BC2C RID: 48172 RVA: 0x002ABFFC File Offset: 0x002AA1FC
[Token(Token = "0x600BC2C")]
[Address(RVA = "0x1B31440", Offset = "0x1B30240", VA = "0x181B31440", Slot = "6")]
public int GetByteLength()
{
return 64;
}
// Token: 0x0600BC2D RID: 48173 RVA: 0x002AC00C File Offset: 0x002AA20C
[Token(Token = "0x600BC2D")]
[Address(RVA = "0x1FE8E70", Offset = "0x1FE7C70", VA = "0x181FE8E70", Slot = "11")]
public IMemoable Copy()
{
/*
An exception occurred when decompiling this method (0600BC2D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IMemoable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests.WhirlpoolDigest::Copy()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:WhirlpoolDigest(var_0_05, newobj:WhirlpoolDigest(WhirlpoolDigest::.ctor))
stloc:int64[](var_1_0D, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(11)))
stfld:int64[](WhirlpoolDigest::_rc, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_1_0D))
stloc:uint8[](var_2_1C, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(64)))
stfld:uint8[](WhirlpoolDigest::_buffer, ldloc:WhirlpoolDigest(var_0_05), ldloc:uint8[](var_2_1C))
stloc:int16[](var_3_2B, newarr:int16[]([mscorlib]System.Int16, ldc.i4:int32(32)))
stfld:int16[](WhirlpoolDigest::_bitCount, ldloc:WhirlpoolDigest(var_0_05), ldloc:int16[](var_3_2B))
stloc:int64[](var_4_39, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
stfld:int64[](WhirlpoolDigest::_hash, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_4_39))
stloc:int64[](var_5_49, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
stfld:int64[](WhirlpoolDigest::_K, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_5_49))
stloc:int64[](var_6_59, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
stfld:int64[](WhirlpoolDigest::_L, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_6_59))
stloc:int64[](var_7_69, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
stfld:int64[](WhirlpoolDigest::_block, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_7_69))
stloc:int64[](var_8_79, newarr:int64[]([mscorlib]System.Int64, ldc.i4:int32(8)))
stfld:int64[](WhirlpoolDigest::_state, ldloc:WhirlpoolDigest(var_0_05), ldloc:int64[](var_8_79))
call:void(WhirlpoolDigest::Reset, ldloc:WhirlpoolDigest(var_0_05), ldloc:WhirlpoolDigest[exp:IMemoable](this))
}
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: 0x0600BC2E RID: 48174 RVA: 0x002AC0A4 File Offset: 0x002AA2A4
[Token(Token = "0x600BC2E")]
[Address(RVA = "0x1FE9240", Offset = "0x1FE8040", VA = "0x181FE9240", Slot = "12")]
public void Reset(IMemoable other)
{
while (other == 0)
{
}
int length = this._rc.Length;
int length2 = this._buffer.Length;
short[] bitCount = this._bitCount;
this._bufferPos = length2;
int length3 = bitCount.Length;
int length4 = this._hash.Length;
int length5 = this._K.Length;
int length6 = this._L.Length;
int length7 = this._block.Length;
int length8 = this._state.Length;
}
// Token: 0x04007774 RID: 30580
[Token(Token = "0x4007774")]
private const int BYTE_LENGTH = 64;
// Token: 0x04007775 RID: 30581
[Token(Token = "0x4007775")]
private const int DIGEST_LENGTH_BYTES = 64;
// Token: 0x04007776 RID: 30582
[Token(Token = "0x4007776")]
private const int ROUNDS = 10;
// Token: 0x04007777 RID: 30583
[Token(Token = "0x4007777")]
private const int REDUCTION_POLYNOMIAL = 285;
// Token: 0x04007778 RID: 30584
[Token(Token = "0x4007778")]
private static readonly int[] SBOX;
// Token: 0x04007779 RID: 30585
[Token(Token = "0x4007779")]
private static readonly long[] C0;
// Token: 0x0400777A RID: 30586
[Token(Token = "0x400777A")]
private static readonly long[] C1;
// Token: 0x0400777B RID: 30587
[Token(Token = "0x400777B")]
private static readonly long[] C2;
// Token: 0x0400777C RID: 30588
[Token(Token = "0x400777C")]
private static readonly long[] C3;
// Token: 0x0400777D RID: 30589
[Token(Token = "0x400777D")]
private static readonly long[] C4;
// Token: 0x0400777E RID: 30590
[Token(Token = "0x400777E")]
private static readonly long[] C5;
// Token: 0x0400777F RID: 30591
[Token(Token = "0x400777F")]
private static readonly long[] C6;
// Token: 0x04007780 RID: 30592
[Token(Token = "0x4007780")]
private static readonly long[] C7;
// Token: 0x04007781 RID: 30593
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007781")]
private readonly long[] _rc;
// Token: 0x04007782 RID: 30594
[Token(Token = "0x4007782")]
private static readonly short[] EIGHT;
// Token: 0x04007783 RID: 30595
[Token(Token = "0x4007783")]
private const int BITCOUNT_ARRAY_SIZE = 32;
// Token: 0x04007784 RID: 30596
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007784")]
private byte[] _buffer;
// Token: 0x04007785 RID: 30597
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007785")]
private int _bufferPos;
// Token: 0x04007786 RID: 30598
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007786")]
private short[] _bitCount;
// Token: 0x04007787 RID: 30599
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007787")]
private long[] _hash;
// Token: 0x04007788 RID: 30600
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007788")]
private long[] _K;
// Token: 0x04007789 RID: 30601
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007789")]
private long[] _L;
// Token: 0x0400778A RID: 30602
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400778A")]
private long[] _block;
// Token: 0x0400778B RID: 30603
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400778B")]
private long[] _state;
}
}
@@ -0,0 +1,1630 @@
using System;
using System.Collections;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Sec;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Endo;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.EC
{
// Token: 0x02001CBF RID: 7359
[Token(Token = "0x2001CBF")]
public sealed class CustomNamedCurves
{
// Token: 0x0600B992 RID: 47506 RVA: 0x0029B4A4 File Offset: 0x002996A4
[Token(Token = "0x600B992")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
private CustomNamedCurves()
{
}
// Token: 0x0600B993 RID: 47507 RVA: 0x0029B4B8 File Offset: 0x002996B8
[Token(Token = "0x600B993")]
[Address(RVA = "0x1A71F30", Offset = "0x1A70D30", VA = "0x181A71F30")]
private static BigInteger FromHex(string hex)
{
byte[] array = Hex.Decode(hex);
return new BigInteger(1, array);
}
// Token: 0x0600B994 RID: 47508 RVA: 0x0029B4D4 File Offset: 0x002996D4
[Token(Token = "0x600B994")]
[Address(RVA = "0x434BD0", Offset = "0x4339D0", VA = "0x180434BD0")]
private static ECCurve ConfigureCurve(ECCurve curve)
{
return curve;
}
// Token: 0x0600B995 RID: 47509 RVA: 0x0029B4E4 File Offset: 0x002996E4
[Token(Token = "0x600B995")]
[Address(RVA = "0x1A71AA0", Offset = "0x1A708A0", VA = "0x181A71AA0")]
private static ECCurve ConfigureCurveGlv(ECCurve c, GlvTypeBParameters p)
{
GlvTypeBEndomorphism glvTypeBEndomorphism = new GlvTypeBEndomorphism(c, p);
ECCurve eccurve;
return eccurve;
}
// Token: 0x0600B996 RID: 47510 RVA: 0x0029B500 File Offset: 0x00299700
[Token(Token = "0x600B996")]
[Address(RVA = "0x1A71E50", Offset = "0x1A70C50", VA = "0x181A71E50")]
private static void DefineCurve(string name, X9ECParametersHolder holder)
{
IList list = CustomNamedCurves.names;
string text = Platform.ToUpperInvariant(name);
IDictionary dictionary = CustomNamedCurves.nameToCurve;
}
// Token: 0x0600B997 RID: 47511 RVA: 0x0029B528 File Offset: 0x00299728
[Token(Token = "0x600B997")]
[Address(RVA = "0x1A71CC0", Offset = "0x1A70AC0", VA = "0x181A71CC0")]
private static void DefineCurveWithOid(string name, DerObjectIdentifier oid, X9ECParametersHolder holder)
{
IList list = CustomNamedCurves.names;
IDictionary dictionary = CustomNamedCurves.oidToName;
IDictionary dictionary2 = CustomNamedCurves.oidToCurve;
string text = Platform.ToUpperInvariant(name);
IDictionary dictionary3 = CustomNamedCurves.nameToOid;
IDictionary dictionary4 = CustomNamedCurves.nameToCurve;
}
// Token: 0x0600B998 RID: 47512 RVA: 0x0029B564 File Offset: 0x00299764
[Token(Token = "0x600B998")]
[Address(RVA = "0x1A71B50", Offset = "0x1A70950", VA = "0x181A71B50")]
private static void DefineCurveAlias(string name, DerObjectIdentifier oid)
{
IDictionary dictionary = CustomNamedCurves.oidToCurve;
string text = Platform.ToUpperInvariant(name);
IDictionary dictionary2 = CustomNamedCurves.nameToOid;
IDictionary dictionary3 = CustomNamedCurves.nameToCurve;
}
// Token: 0x0600B999 RID: 47513 RVA: 0x0029B598 File Offset: 0x00299798
[Token(Token = "0x600B999")]
[Address(RVA = "0x1A72350", Offset = "0x1A71150", VA = "0x181A72350")]
static CustomNamedCurves()
{
IDictionary dictionary = Platform.CreateHashtable();
CustomNamedCurves.nameToCurve = dictionary;
IDictionary dictionary2 = Platform.CreateHashtable();
CustomNamedCurves.nameToOid = dictionary2;
IDictionary dictionary3 = Platform.CreateHashtable();
CustomNamedCurves.oidToCurve = dictionary3;
IDictionary dictionary4 = Platform.CreateHashtable();
CustomNamedCurves.oidToName = dictionary4;
CustomNamedCurves.names = Platform.CreateArrayList();
IList list = CustomNamedCurves.names;
string text = Platform.ToUpperInvariant("curve25519");
IDictionary dictionary5 = CustomNamedCurves.nameToCurve;
DerObjectIdentifier secT163r = SecObjectIdentifiers.SecT163r2;
CustomNamedCurves.DefineCurveAlias("B-163", secT163r);
DerObjectIdentifier secT233r = SecObjectIdentifiers.SecT233r1;
CustomNamedCurves.DefineCurveAlias("B-233", secT233r);
DerObjectIdentifier secT283r = SecObjectIdentifiers.SecT283r1;
CustomNamedCurves.DefineCurveAlias("B-283", secT283r);
DerObjectIdentifier secT409r = SecObjectIdentifiers.SecT409r1;
CustomNamedCurves.DefineCurveAlias("B-409", secT409r);
DerObjectIdentifier secT571r = SecObjectIdentifiers.SecT571r1;
CustomNamedCurves.DefineCurveAlias("B-571", secT571r);
DerObjectIdentifier secT163k = SecObjectIdentifiers.SecT163k1;
CustomNamedCurves.DefineCurveAlias("K-163", secT163k);
DerObjectIdentifier secT233k = SecObjectIdentifiers.SecT233k1;
CustomNamedCurves.DefineCurveAlias("K-233", secT233k);
DerObjectIdentifier secT283k = SecObjectIdentifiers.SecT283k1;
CustomNamedCurves.DefineCurveAlias("K-283", secT283k);
DerObjectIdentifier secT409k = SecObjectIdentifiers.SecT409k1;
CustomNamedCurves.DefineCurveAlias("K-409", secT409k);
DerObjectIdentifier secT571k = SecObjectIdentifiers.SecT571k1;
CustomNamedCurves.DefineCurveAlias("K-571", secT571k);
DerObjectIdentifier secP192r = SecObjectIdentifiers.SecP192r1;
CustomNamedCurves.DefineCurveAlias("P-192", secP192r);
DerObjectIdentifier secP224r = SecObjectIdentifiers.SecP224r1;
CustomNamedCurves.DefineCurveAlias("P-224", secP224r);
DerObjectIdentifier secP256r = SecObjectIdentifiers.SecP256r1;
CustomNamedCurves.DefineCurveAlias("P-256", secP256r);
DerObjectIdentifier secP384r = SecObjectIdentifiers.SecP384r1;
CustomNamedCurves.DefineCurveAlias("P-384", secP384r);
DerObjectIdentifier secP521r = SecObjectIdentifiers.SecP521r1;
CustomNamedCurves.DefineCurveAlias("P-521", secP521r);
}
// Token: 0x0600B99A RID: 47514 RVA: 0x0029B730 File Offset: 0x00299930
[Token(Token = "0x600B99A")]
[Address(RVA = "0x1A71FC0", Offset = "0x1A70DC0", VA = "0x181A71FC0")]
public static X9ECParameters GetByName(string name)
{
string text;
do
{
IDictionary dictionary = CustomNamedCurves.nameToCurve;
text = Platform.ToUpperInvariant(name);
if (text == 0)
{
goto IL_19;
}
}
while (text == 0);
X9ECParameters x9ECParameters;
return x9ECParameters;
IL_19:
throw new NullReferenceException();
}
// Token: 0x0600B99B RID: 47515 RVA: 0x0029B760 File Offset: 0x00299960
[Token(Token = "0x600B99B")]
[Address(RVA = "0x1A720D0", Offset = "0x1A70ED0", VA = "0x181A720D0")]
public static X9ECParameters GetByOid(DerObjectIdentifier oid)
{
IDictionary dictionary = CustomNamedCurves.oidToCurve;
IDictionary dictionary2 = CustomNamedCurves.nameToCurve;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B99C RID: 47516 RVA: 0x0029B788 File Offset: 0x00299988
[Token(Token = "0x600B99C")]
[Address(RVA = "0x1A72250", Offset = "0x1A71050", VA = "0x181A72250")]
public static DerObjectIdentifier GetOid(string name)
{
string text;
do
{
IDictionary dictionary = CustomNamedCurves.nameToOid;
text = Platform.ToUpperInvariant(name);
if (text == 0)
{
}
}
while (text == 0);
throw new NullReferenceException();
}
// Token: 0x0600B99D RID: 47517 RVA: 0x0029B7B4 File Offset: 0x002999B4
[Token(Token = "0x600B99D")]
[Address(RVA = "0x1A721B0", Offset = "0x1A70FB0", VA = "0x181A721B0")]
public static string GetName(DerObjectIdentifier oid)
{
IDictionary dictionary = CustomNamedCurves.oidToName;
throw new NullReferenceException();
}
// Token: 0x17001D07 RID: 7431
// (get) Token: 0x0600B99E RID: 47518 RVA: 0x0029B7CC File Offset: 0x002999CC
[Token(Token = "0x17001D07")]
public static IEnumerable Names
{
[Token(Token = "0x600B99E")]
[Address(RVA = "0x1A73250", Offset = "0x1A72050", VA = "0x181A73250")]
get
{
/*
An exception occurred when decompiling this method (0600B99E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.IEnumerable BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.EC.CustomNamedCurves::get_Names()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:EnumerableProxy(var_0_0A, newobj:EnumerableProxy(EnumerableProxy::.ctor, ldsfld:IList[exp:IEnumerable](CustomNamedCurves::names)))
}
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: 0x0400761B RID: 30235
[Token(Token = "0x400761B")]
private static readonly IDictionary nameToCurve;
// Token: 0x0400761C RID: 30236
[Token(Token = "0x400761C")]
private static readonly IDictionary nameToOid;
// Token: 0x0400761D RID: 30237
[Token(Token = "0x400761D")]
private static readonly IDictionary oidToCurve;
// Token: 0x0400761E RID: 30238
[Token(Token = "0x400761E")]
private static readonly IDictionary oidToName;
// Token: 0x0400761F RID: 30239
[Token(Token = "0x400761F")]
private static readonly IList names;
// Token: 0x02001CC0 RID: 7360
[Token(Token = "0x2001CC0")]
internal class Curve25519Holder : X9ECParametersHolder
{
// Token: 0x0600B99F RID: 47519 RVA: 0x0029B7E4 File Offset: 0x002999E4
[Token(Token = "0x600B99F")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private Curve25519Holder()
{
}
// Token: 0x0600B9A0 RID: 47520 RVA: 0x0029B7F8 File Offset: 0x002999F8
[Token(Token = "0x600B9A0")]
[Address(RVA = "0x1A718F0", Offset = "0x1A706F0", VA = "0x181A718F0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
Curve25519 curve = new Curve25519();
byte[] array = Hex.Decode("042AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD245A20AE19A1B8A086B4E01EDD2C7748D14C923D4D7E6D7C61B229E9C5A27ECED3D9");
X9ECPoint x9ECPoint = new X9ECPoint(curve, array);
ECFieldElement b = curve.B;
BigInteger order = curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9A1 RID: 47521 RVA: 0x0029B838 File Offset: 0x00299A38
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9A1")]
[Address(RVA = "0x1A71A40", Offset = "0x1A70840", VA = "0x181A71A40")]
static Curve25519Holder()
{
CustomNamedCurves.Curve25519Holder curve25519Holder = new CustomNamedCurves.Curve25519Holder();
}
// Token: 0x04007620 RID: 30240
[Token(Token = "0x4007620")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC1 RID: 7361
[Token(Token = "0x2001CC1")]
internal class SecP128R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9A2 RID: 47522 RVA: 0x0029B84C File Offset: 0x00299A4C
[Token(Token = "0x600B9A2")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP128R1Holder()
{
}
// Token: 0x0600B9A3 RID: 47523 RVA: 0x0029B860 File Offset: 0x00299A60
[Token(Token = "0x600B9A3")]
[Address(RVA = "0x1A76620", Offset = "0x1A75420", VA = "0x181A76620", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("000E0D4D696E6768756151750CC03A4473D03679");
SecP128R1Curve secP128R1Curve = new SecP128R1Curve();
byte[] array2 = Hex.Decode("04161FF7528B899B2D0C28607CA52C5B86CF5AC8395BAFEB13C02DA292DDED7A83");
X9ECPoint x9ECPoint = new X9ECPoint(secP128R1Curve, array2);
ECFieldElement b = secP128R1Curve.B;
BigInteger order = secP128R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9A4 RID: 47524 RVA: 0x0029B8AC File Offset: 0x00299AAC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9A4")]
[Address(RVA = "0x1A76780", Offset = "0x1A75580", VA = "0x181A76780")]
static SecP128R1Holder()
{
CustomNamedCurves.SecP128R1Holder secP128R1Holder = new CustomNamedCurves.SecP128R1Holder();
}
// Token: 0x04007621 RID: 30241
[Token(Token = "0x4007621")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC2 RID: 7362
[Token(Token = "0x2001CC2")]
internal class SecP160K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9A5 RID: 47525 RVA: 0x0029B8C0 File Offset: 0x00299AC0
[Token(Token = "0x600B9A5")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP160K1Holder()
{
}
// Token: 0x0600B9A6 RID: 47526 RVA: 0x0029B8D4 File Offset: 0x00299AD4
[Token(Token = "0x600B9A6")]
[Address(RVA = "0x1A767E0", Offset = "0x1A755E0", VA = "0x181A767E0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
BigInteger bigInteger = new BigInteger("9ba48cba5ebcb9b6bd33b92830b2a2e0e192f10a", 16);
BigInteger bigInteger2 = new BigInteger("c39c6c3b3a36d7701b9c71a1f5804ae5d0003f4", 16);
BigInteger[] array = new BigInteger[2];
BigInteger bigInteger3 = new BigInteger("9162fbe73984472a0a9e", 16);
if (bigInteger3 != 0)
{
}
array[0] = bigInteger3;
BigInteger bigInteger4 = new BigInteger("-96341f1138933bc2f505", 16);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
BigInteger[] array2 = new BigInteger[2];
BigInteger bigInteger5 = new BigInteger("127971af8721782ecffa3", 16);
if (bigInteger5 != 0)
{
}
array2[0] = bigInteger5;
BigInteger bigInteger6 = new BigInteger("9162fbe73984472a0a9e", 16);
if (bigInteger6 != 0)
{
}
array2[1] = bigInteger6;
BigInteger bigInteger7 = new BigInteger("9162fbe73984472a0a9d0590", 16);
BigInteger bigInteger8 = new BigInteger("96341f1138933bc2f503fd44", 16);
ulong num;
GlvTypeBParameters glvTypeBParameters = new GlvTypeBParameters(bigInteger, bigInteger2, array, array2, bigInteger7, bigInteger8, (int)num);
ECCurve eccurve = CustomNamedCurves.ConfigureCurveGlv(new SecP160K1Curve(), glvTypeBParameters);
byte[] array3 = Hex.Decode("043B4C382CE37AA192A4019E763036F4F5DD4D7EBB938CF935318FDCED6BC28286531733C3F03C4FEE");
X9ECPoint x9ECPoint = new X9ECPoint(eccurve, array3);
ECFieldElement b = eccurve.B;
BigInteger order = eccurve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9A7 RID: 47527 RVA: 0x0029B9E8 File Offset: 0x00299BE8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9A7")]
[Address(RVA = "0x1A76C20", Offset = "0x1A75A20", VA = "0x181A76C20")]
static SecP160K1Holder()
{
CustomNamedCurves.SecP160K1Holder secP160K1Holder = new CustomNamedCurves.SecP160K1Holder();
}
// Token: 0x04007622 RID: 30242
[Token(Token = "0x4007622")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC3 RID: 7363
[Token(Token = "0x2001CC3")]
internal class SecP160R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9A8 RID: 47528 RVA: 0x0029B9FC File Offset: 0x00299BFC
[Token(Token = "0x600B9A8")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP160R1Holder()
{
}
// Token: 0x0600B9A9 RID: 47529 RVA: 0x0029BA10 File Offset: 0x00299C10
[Token(Token = "0x600B9A9")]
[Address(RVA = "0x1A76C80", Offset = "0x1A75A80", VA = "0x181A76C80", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("1053CDE42C14D696E67687561517533BF3F83345");
SecP160R1Curve secP160R1Curve = new SecP160R1Curve();
byte[] array2 = Hex.Decode("044A96B5688EF573284664698968C38BB913CBFC8223A628553168947D59DCC912042351377AC5FB32");
X9ECPoint x9ECPoint = new X9ECPoint(secP160R1Curve, array2);
ECFieldElement b = secP160R1Curve.B;
BigInteger order = secP160R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9AA RID: 47530 RVA: 0x0029BA5C File Offset: 0x00299C5C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9AA")]
[Address(RVA = "0x1A76DE0", Offset = "0x1A75BE0", VA = "0x181A76DE0")]
static SecP160R1Holder()
{
CustomNamedCurves.SecP160R1Holder secP160R1Holder = new CustomNamedCurves.SecP160R1Holder();
}
// Token: 0x04007623 RID: 30243
[Token(Token = "0x4007623")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC4 RID: 7364
[Token(Token = "0x2001CC4")]
internal class SecP160R2Holder : X9ECParametersHolder
{
// Token: 0x0600B9AB RID: 47531 RVA: 0x0029BA70 File Offset: 0x00299C70
[Token(Token = "0x600B9AB")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP160R2Holder()
{
}
// Token: 0x0600B9AC RID: 47532 RVA: 0x0029BA84 File Offset: 0x00299C84
[Token(Token = "0x600B9AC")]
[Address(RVA = "0x1A76E40", Offset = "0x1A75C40", VA = "0x181A76E40", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("B99B99B099B323E02709A4D696E6768756151751");
SecP160R2Curve secP160R2Curve = new SecP160R2Curve();
byte[] array2 = Hex.Decode("0452DCB034293A117E1F4FF11B30F7199D3144CE6DFEAFFEF2E331F296E071FA0DF9982CFEA7D43F2E");
X9ECPoint x9ECPoint = new X9ECPoint(secP160R2Curve, array2);
ECFieldElement b = secP160R2Curve.B;
BigInteger order = secP160R2Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9AD RID: 47533 RVA: 0x0029BAD0 File Offset: 0x00299CD0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9AD")]
[Address(RVA = "0x1A76FA0", Offset = "0x1A75DA0", VA = "0x181A76FA0")]
static SecP160R2Holder()
{
CustomNamedCurves.SecP160R2Holder secP160R2Holder = new CustomNamedCurves.SecP160R2Holder();
}
// Token: 0x04007624 RID: 30244
[Token(Token = "0x4007624")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC5 RID: 7365
[Token(Token = "0x2001CC5")]
internal class SecP192K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9AE RID: 47534 RVA: 0x0029BAE4 File Offset: 0x00299CE4
[Token(Token = "0x600B9AE")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP192K1Holder()
{
}
// Token: 0x0600B9AF RID: 47535 RVA: 0x0029BAF8 File Offset: 0x00299CF8
[Token(Token = "0x600B9AF")]
[Address(RVA = "0x1A77000", Offset = "0x1A75E00", VA = "0x181A77000", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
BigInteger bigInteger = new BigInteger("bb85691939b869c1d087f601554b96b80cb4f55b35f433c2", 16);
BigInteger bigInteger2 = new BigInteger("3d84f26c12238d7b4f3d516613c1759033b1a5800175d0b1", 16);
BigInteger[] array = new BigInteger[2];
BigInteger bigInteger3 = new BigInteger("71169be7330b3038edb025f1", 16);
if (bigInteger3 != 0)
{
}
array[0] = bigInteger3;
BigInteger bigInteger4 = new BigInteger("-b3fb3400dec5c4adceb8655c", 16);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
BigInteger[] array2 = new BigInteger[2];
BigInteger bigInteger5 = new BigInteger("12511cfe811d0f4e6bc688b4d", 16);
if (bigInteger5 != 0)
{
}
array2[0] = bigInteger5;
BigInteger bigInteger6 = new BigInteger("71169be7330b3038edb025f1", 16);
if (bigInteger6 != 0)
{
}
array2[1] = bigInteger6;
BigInteger bigInteger7 = new BigInteger("71169be7330b3038edb025f1d0f9", 16);
BigInteger bigInteger8 = new BigInteger("b3fb3400dec5c4adceb8655d4c94", 16);
ulong num;
GlvTypeBParameters glvTypeBParameters = new GlvTypeBParameters(bigInteger, bigInteger2, array, array2, bigInteger7, bigInteger8, (int)num);
ECCurve eccurve = CustomNamedCurves.ConfigureCurveGlv(new SecP192K1Curve(), glvTypeBParameters);
byte[] array3 = Hex.Decode("04DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D");
X9ECPoint x9ECPoint = new X9ECPoint(eccurve, array3);
ECFieldElement b = eccurve.B;
BigInteger order = eccurve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9B0 RID: 47536 RVA: 0x0029BC0C File Offset: 0x00299E0C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9B0")]
[Address(RVA = "0x1A77440", Offset = "0x1A76240", VA = "0x181A77440")]
static SecP192K1Holder()
{
CustomNamedCurves.SecP192K1Holder secP192K1Holder = new CustomNamedCurves.SecP192K1Holder();
}
// Token: 0x04007625 RID: 30245
[Token(Token = "0x4007625")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC6 RID: 7366
[Token(Token = "0x2001CC6")]
internal class SecP192R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9B1 RID: 47537 RVA: 0x0029BC20 File Offset: 0x00299E20
[Token(Token = "0x600B9B1")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP192R1Holder()
{
}
// Token: 0x0600B9B2 RID: 47538 RVA: 0x0029BC34 File Offset: 0x00299E34
[Token(Token = "0x600B9B2")]
[Address(RVA = "0x1A774A0", Offset = "0x1A762A0", VA = "0x181A774A0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("3045AE6FC8422F64ED579528D38120EAE12196D5");
SecP192R1Curve secP192R1Curve = new SecP192R1Curve();
byte[] array2 = Hex.Decode("04188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF101207192B95FFC8DA78631011ED6B24CDD573F977A11E794811");
X9ECPoint x9ECPoint = new X9ECPoint(secP192R1Curve, array2);
ECFieldElement b = secP192R1Curve.B;
BigInteger order = secP192R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9B3 RID: 47539 RVA: 0x0029BC80 File Offset: 0x00299E80
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9B3")]
[Address(RVA = "0x1A77600", Offset = "0x1A76400", VA = "0x181A77600")]
static SecP192R1Holder()
{
CustomNamedCurves.SecP192R1Holder secP192R1Holder = new CustomNamedCurves.SecP192R1Holder();
}
// Token: 0x04007626 RID: 30246
[Token(Token = "0x4007626")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC7 RID: 7367
[Token(Token = "0x2001CC7")]
internal class SecP224K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9B4 RID: 47540 RVA: 0x0029BC94 File Offset: 0x00299E94
[Token(Token = "0x600B9B4")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP224K1Holder()
{
}
// Token: 0x0600B9B5 RID: 47541 RVA: 0x0029BCA8 File Offset: 0x00299EA8
[Token(Token = "0x600B9B5")]
[Address(RVA = "0x1A77660", Offset = "0x1A76460", VA = "0x181A77660", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
BigInteger bigInteger = new BigInteger("fe0e87005b4e83761908c5131d552a850b3f58b749c37cf5b84d6768", 16);
BigInteger bigInteger2 = new BigInteger("60dcd2104c4cbc0be6eeefc2bdd610739ec34e317f9b33046c9e4788", 16);
BigInteger[] array = new BigInteger[2];
BigInteger bigInteger3 = new BigInteger("6b8cf07d4ca75c88957d9d670591", 16);
if (bigInteger3 != 0)
{
}
array[0] = bigInteger3;
BigInteger bigInteger4 = new BigInteger("-b8adf1378a6eb73409fa6c9c637d", 16);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
BigInteger[] array2 = new BigInteger[2];
BigInteger bigInteger5 = new BigInteger("1243ae1b4d71613bc9f780a03690e", 16);
if (bigInteger5 != 0)
{
}
array2[0] = bigInteger5;
BigInteger bigInteger6 = new BigInteger("6b8cf07d4ca75c88957d9d670591", 16);
if (bigInteger6 != 0)
{
}
array2[1] = bigInteger6;
BigInteger bigInteger7 = new BigInteger("6b8cf07d4ca75c88957d9d67059037a4", 16);
BigInteger bigInteger8 = new BigInteger("b8adf1378a6eb73409fa6c9c637ba7f5", 16);
ulong num;
GlvTypeBParameters glvTypeBParameters = new GlvTypeBParameters(bigInteger, bigInteger2, array, array2, bigInteger7, bigInteger8, (int)num);
ECCurve eccurve = CustomNamedCurves.ConfigureCurveGlv(new SecP224K1Curve(), glvTypeBParameters);
byte[] array3 = Hex.Decode("04A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5");
X9ECPoint x9ECPoint = new X9ECPoint(eccurve, array3);
ECFieldElement b = eccurve.B;
BigInteger order = eccurve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9B6 RID: 47542 RVA: 0x0029BDBC File Offset: 0x00299FBC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9B6")]
[Address(RVA = "0x1A77AA0", Offset = "0x1A768A0", VA = "0x181A77AA0")]
static SecP224K1Holder()
{
CustomNamedCurves.SecP224K1Holder secP224K1Holder = new CustomNamedCurves.SecP224K1Holder();
}
// Token: 0x04007627 RID: 30247
[Token(Token = "0x4007627")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC8 RID: 7368
[Token(Token = "0x2001CC8")]
internal class SecP224R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9B7 RID: 47543 RVA: 0x0029BDD0 File Offset: 0x00299FD0
[Token(Token = "0x600B9B7")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP224R1Holder()
{
}
// Token: 0x0600B9B8 RID: 47544 RVA: 0x0029BDE4 File Offset: 0x00299FE4
[Token(Token = "0x600B9B8")]
[Address(RVA = "0x1A77B00", Offset = "0x1A76900", VA = "0x181A77B00", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5");
SecP224R1Curve secP224R1Curve = new SecP224R1Curve();
byte[] array2 = Hex.Decode("04B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34");
X9ECPoint x9ECPoint = new X9ECPoint(secP224R1Curve, array2);
ECFieldElement b = secP224R1Curve.B;
BigInteger order = secP224R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9B9 RID: 47545 RVA: 0x0029BE30 File Offset: 0x0029A030
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9B9")]
[Address(RVA = "0x1A77C60", Offset = "0x1A76A60", VA = "0x181A77C60")]
static SecP224R1Holder()
{
CustomNamedCurves.SecP224R1Holder secP224R1Holder = new CustomNamedCurves.SecP224R1Holder();
}
// Token: 0x04007628 RID: 30248
[Token(Token = "0x4007628")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CC9 RID: 7369
[Token(Token = "0x2001CC9")]
internal class SecP256K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9BA RID: 47546 RVA: 0x0029BE44 File Offset: 0x0029A044
[Token(Token = "0x600B9BA")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP256K1Holder()
{
}
// Token: 0x0600B9BB RID: 47547 RVA: 0x0029BE58 File Offset: 0x0029A058
[Token(Token = "0x600B9BB")]
[Address(RVA = "0x1A77CC0", Offset = "0x1A76AC0", VA = "0x181A77CC0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
BigInteger bigInteger = new BigInteger("7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", 16);
BigInteger bigInteger2 = new BigInteger("5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", 16);
BigInteger[] array = new BigInteger[2];
BigInteger bigInteger3 = new BigInteger("3086d221a7d46bcde86c90e49284eb15", 16);
if (bigInteger3 != 0)
{
}
array[0] = bigInteger3;
BigInteger bigInteger4 = new BigInteger("-e4437ed6010e88286f547fa90abfe4c3", 16);
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
BigInteger[] array2 = new BigInteger[2];
BigInteger bigInteger5 = new BigInteger("114ca50f7a8e2f3f657c1108d9d44cfd8", 16);
if (bigInteger5 != 0)
{
}
array2[0] = bigInteger5;
BigInteger bigInteger6 = new BigInteger("3086d221a7d46bcde86c90e49284eb15", 16);
if (bigInteger6 != 0)
{
}
array2[1] = bigInteger6;
BigInteger bigInteger7 = new BigInteger("3086d221a7d46bcde86c90e49284eb153dab", 16);
BigInteger bigInteger8 = new BigInteger("e4437ed6010e88286f547fa90abfe4c42212", 16);
ulong num;
GlvTypeBParameters glvTypeBParameters = new GlvTypeBParameters(bigInteger, bigInteger2, array, array2, bigInteger7, bigInteger8, (int)num);
ECCurve eccurve = CustomNamedCurves.ConfigureCurveGlv(new SecP256K1Curve(), glvTypeBParameters);
byte[] array3 = Hex.Decode("0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8");
X9ECPoint x9ECPoint = new X9ECPoint(eccurve, array3);
ECFieldElement b = eccurve.B;
BigInteger order = eccurve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9BC RID: 47548 RVA: 0x0029BF6C File Offset: 0x0029A16C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9BC")]
[Address(RVA = "0x1A78100", Offset = "0x1A76F00", VA = "0x181A78100")]
static SecP256K1Holder()
{
CustomNamedCurves.SecP256K1Holder secP256K1Holder = new CustomNamedCurves.SecP256K1Holder();
}
// Token: 0x04007629 RID: 30249
[Token(Token = "0x4007629")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CCA RID: 7370
[Token(Token = "0x2001CCA")]
internal class SecP256R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9BD RID: 47549 RVA: 0x0029BF80 File Offset: 0x0029A180
[Token(Token = "0x600B9BD")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP256R1Holder()
{
}
// Token: 0x0600B9BE RID: 47550 RVA: 0x0029BF94 File Offset: 0x0029A194
[Token(Token = "0x600B9BE")]
[Address(RVA = "0x1A78160", Offset = "0x1A76F60", VA = "0x181A78160", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("C49D360886E704936A6678E1139D26B7819F7E90");
SecP256R1Curve secP256R1Curve = new SecP256R1Curve();
byte[] array2 = Hex.Decode("046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5");
X9ECPoint x9ECPoint = new X9ECPoint(secP256R1Curve, array2);
ECFieldElement b = secP256R1Curve.B;
BigInteger order = secP256R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9BF RID: 47551 RVA: 0x0029BFE0 File Offset: 0x0029A1E0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9BF")]
[Address(RVA = "0x1A782C0", Offset = "0x1A770C0", VA = "0x181A782C0")]
static SecP256R1Holder()
{
CustomNamedCurves.SecP256R1Holder secP256R1Holder = new CustomNamedCurves.SecP256R1Holder();
}
// Token: 0x0400762A RID: 30250
[Token(Token = "0x400762A")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CCB RID: 7371
[Token(Token = "0x2001CCB")]
internal class SecP384R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9C0 RID: 47552 RVA: 0x0029BFF4 File Offset: 0x0029A1F4
[Token(Token = "0x600B9C0")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP384R1Holder()
{
}
// Token: 0x0600B9C1 RID: 47553 RVA: 0x0029C008 File Offset: 0x0029A208
[Token(Token = "0x600B9C1")]
[Address(RVA = "0x1A78320", Offset = "0x1A77120", VA = "0x181A78320", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("A335926AA319A27A1D00896A6773A4827ACDAC73");
SecP384R1Curve secP384R1Curve = new SecP384R1Curve();
byte[] array2 = Hex.Decode("04AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB73617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F");
X9ECPoint x9ECPoint = new X9ECPoint(secP384R1Curve, array2);
ECFieldElement b = secP384R1Curve.B;
BigInteger order = secP384R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9C2 RID: 47554 RVA: 0x0029C054 File Offset: 0x0029A254
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9C2")]
[Address(RVA = "0x1A78480", Offset = "0x1A77280", VA = "0x181A78480")]
static SecP384R1Holder()
{
CustomNamedCurves.SecP384R1Holder secP384R1Holder = new CustomNamedCurves.SecP384R1Holder();
}
// Token: 0x0400762B RID: 30251
[Token(Token = "0x400762B")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CCC RID: 7372
[Token(Token = "0x2001CCC")]
internal class SecP521R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9C3 RID: 47555 RVA: 0x0029C068 File Offset: 0x0029A268
[Token(Token = "0x600B9C3")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecP521R1Holder()
{
}
// Token: 0x0600B9C4 RID: 47556 RVA: 0x0029C07C File Offset: 0x0029A27C
[Token(Token = "0x600B9C4")]
[Address(RVA = "0x1A784E0", Offset = "0x1A772E0", VA = "0x181A784E0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("D09E8800291CB85396CC6717393284AAA0DA64BA");
SecP521R1Curve secP521R1Curve = new SecP521R1Curve();
byte[] array2 = Hex.Decode("0400C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650");
X9ECPoint x9ECPoint = new X9ECPoint(secP521R1Curve, array2);
ECFieldElement b = secP521R1Curve.B;
BigInteger order = secP521R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9C5 RID: 47557 RVA: 0x0029C0C8 File Offset: 0x0029A2C8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9C5")]
[Address(RVA = "0x1A78640", Offset = "0x1A77440", VA = "0x181A78640")]
static SecP521R1Holder()
{
CustomNamedCurves.SecP521R1Holder secP521R1Holder = new CustomNamedCurves.SecP521R1Holder();
}
// Token: 0x0400762C RID: 30252
[Token(Token = "0x400762C")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CCD RID: 7373
[Token(Token = "0x2001CCD")]
internal class SecT113R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9C6 RID: 47558 RVA: 0x0029C0DC File Offset: 0x0029A2DC
[Token(Token = "0x600B9C6")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT113R1Holder()
{
}
// Token: 0x0600B9C7 RID: 47559 RVA: 0x0029C0F0 File Offset: 0x0029A2F0
[Token(Token = "0x600B9C7")]
[Address(RVA = "0x1A786A0", Offset = "0x1A774A0", VA = "0x181A786A0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("10E723AB14D696E6768756151756FEBF8FCB49A9");
SecT113R1Curve secT113R1Curve = new SecT113R1Curve();
byte[] array2 = Hex.Decode("04009D73616F35F4AB1407D73562C10F00A52830277958EE84D1315ED31886");
X9ECPoint x9ECPoint = new X9ECPoint(secT113R1Curve, array2);
ECFieldElement b = secT113R1Curve.B;
BigInteger order = secT113R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9C8 RID: 47560 RVA: 0x0029C13C File Offset: 0x0029A33C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9C8")]
[Address(RVA = "0x1A78800", Offset = "0x1A77600", VA = "0x181A78800")]
static SecT113R1Holder()
{
CustomNamedCurves.SecT113R1Holder secT113R1Holder = new CustomNamedCurves.SecT113R1Holder();
}
// Token: 0x0400762D RID: 30253
[Token(Token = "0x400762D")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CCE RID: 7374
[Token(Token = "0x2001CCE")]
internal class SecT113R2Holder : X9ECParametersHolder
{
// Token: 0x0600B9C9 RID: 47561 RVA: 0x0029C150 File Offset: 0x0029A350
[Token(Token = "0x600B9C9")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT113R2Holder()
{
}
// Token: 0x0600B9CA RID: 47562 RVA: 0x0029C164 File Offset: 0x0029A364
[Token(Token = "0x600B9CA")]
[Address(RVA = "0x1A78860", Offset = "0x1A77660", VA = "0x181A78860", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("10C0FB15760860DEF1EEF4D696E676875615175D");
SecT113R2Curve secT113R2Curve = new SecT113R2Curve();
byte[] array2 = Hex.Decode("0401A57A6A7B26CA5EF52FCDB816479700B3ADC94ED1FE674C06E695BABA1D");
X9ECPoint x9ECPoint = new X9ECPoint(secT113R2Curve, array2);
ECFieldElement b = secT113R2Curve.B;
BigInteger order = secT113R2Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9CB RID: 47563 RVA: 0x0029C1B0 File Offset: 0x0029A3B0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9CB")]
[Address(RVA = "0x1A789C0", Offset = "0x1A777C0", VA = "0x181A789C0")]
static SecT113R2Holder()
{
CustomNamedCurves.SecT113R2Holder secT113R2Holder = new CustomNamedCurves.SecT113R2Holder();
}
// Token: 0x0400762E RID: 30254
[Token(Token = "0x400762E")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CCF RID: 7375
[Token(Token = "0x2001CCF")]
internal class SecT131R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9CC RID: 47564 RVA: 0x0029C1C4 File Offset: 0x0029A3C4
[Token(Token = "0x600B9CC")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT131R1Holder()
{
}
// Token: 0x0600B9CD RID: 47565 RVA: 0x0029C1D8 File Offset: 0x0029A3D8
[Token(Token = "0x600B9CD")]
[Address(RVA = "0x1A78A20", Offset = "0x1A77820", VA = "0x181A78A20", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("4D696E676875615175985BD3ADBADA21B43A97E2");
SecT131R1Curve secT131R1Curve = new SecT131R1Curve();
byte[] array2 = Hex.Decode("040081BAF91FDF9833C40F9C181343638399078C6E7EA38C001F73C8134B1B4EF9E150");
X9ECPoint x9ECPoint = new X9ECPoint(secT131R1Curve, array2);
ECFieldElement b = secT131R1Curve.B;
BigInteger order = secT131R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9CE RID: 47566 RVA: 0x0029C224 File Offset: 0x0029A424
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9CE")]
[Address(RVA = "0x1A78B80", Offset = "0x1A77980", VA = "0x181A78B80")]
static SecT131R1Holder()
{
CustomNamedCurves.SecT131R1Holder secT131R1Holder = new CustomNamedCurves.SecT131R1Holder();
}
// Token: 0x0400762F RID: 30255
[Token(Token = "0x400762F")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD0 RID: 7376
[Token(Token = "0x2001CD0")]
internal class SecT131R2Holder : X9ECParametersHolder
{
// Token: 0x0600B9CF RID: 47567 RVA: 0x0029C238 File Offset: 0x0029A438
[Token(Token = "0x600B9CF")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT131R2Holder()
{
}
// Token: 0x0600B9D0 RID: 47568 RVA: 0x0029C24C File Offset: 0x0029A44C
[Token(Token = "0x600B9D0")]
[Address(RVA = "0x1A78BE0", Offset = "0x1A779E0", VA = "0x181A78BE0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("985BD3ADBAD4D696E676875615175A21B43A97E3");
SecT131R2Curve secT131R2Curve = new SecT131R2Curve();
byte[] array2 = Hex.Decode("040356DCD8F2F95031AD652D23951BB366A80648F06D867940A5366D9E265DE9EB240F");
X9ECPoint x9ECPoint = new X9ECPoint(secT131R2Curve, array2);
ECFieldElement b = secT131R2Curve.B;
BigInteger order = secT131R2Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9D1 RID: 47569 RVA: 0x0029C298 File Offset: 0x0029A498
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9D1")]
[Address(RVA = "0x1A78D40", Offset = "0x1A77B40", VA = "0x181A78D40")]
static SecT131R2Holder()
{
CustomNamedCurves.SecT131R2Holder secT131R2Holder = new CustomNamedCurves.SecT131R2Holder();
}
// Token: 0x04007630 RID: 30256
[Token(Token = "0x4007630")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD1 RID: 7377
[Token(Token = "0x2001CD1")]
internal class SecT163K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9D2 RID: 47570 RVA: 0x0029C2AC File Offset: 0x0029A4AC
[Token(Token = "0x600B9D2")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT163K1Holder()
{
}
// Token: 0x0600B9D3 RID: 47571 RVA: 0x0029C2C0 File Offset: 0x0029A4C0
[Token(Token = "0x600B9D3")]
[Address(RVA = "0x1A78DA0", Offset = "0x1A77BA0", VA = "0x181A78DA0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SecT163K1Curve secT163K1Curve = new SecT163K1Curve();
byte[] array = Hex.Decode("0402FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE80289070FB05D38FF58321F2E800536D538CCDAA3D9");
X9ECPoint x9ECPoint = new X9ECPoint(secT163K1Curve, array);
ECFieldElement b = secT163K1Curve.B;
BigInteger order = secT163K1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9D4 RID: 47572 RVA: 0x0029C300 File Offset: 0x0029A500
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9D4")]
[Address(RVA = "0x1A78EF0", Offset = "0x1A77CF0", VA = "0x181A78EF0")]
static SecT163K1Holder()
{
CustomNamedCurves.SecT163K1Holder secT163K1Holder = new CustomNamedCurves.SecT163K1Holder();
}
// Token: 0x04007631 RID: 30257
[Token(Token = "0x4007631")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD2 RID: 7378
[Token(Token = "0x2001CD2")]
internal class SecT163R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9D5 RID: 47573 RVA: 0x0029C314 File Offset: 0x0029A514
[Token(Token = "0x600B9D5")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT163R1Holder()
{
}
// Token: 0x0600B9D6 RID: 47574 RVA: 0x0029C328 File Offset: 0x0029A528
[Token(Token = "0x600B9D6")]
[Address(RVA = "0x1A78F50", Offset = "0x1A77D50", VA = "0x181A78F50", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("24B7B137C8A14D696E6768756151756FD0DA2E5C");
SecT163R1Curve secT163R1Curve = new SecT163R1Curve();
byte[] array2 = Hex.Decode("040369979697AB43897789566789567F787A7876A65400435EDB42EFAFB2989D51FEFCE3C80988F41FF883");
X9ECPoint x9ECPoint = new X9ECPoint(secT163R1Curve, array2);
ECFieldElement b = secT163R1Curve.B;
BigInteger order = secT163R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9D7 RID: 47575 RVA: 0x0029C374 File Offset: 0x0029A574
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9D7")]
[Address(RVA = "0x1A790B0", Offset = "0x1A77EB0", VA = "0x181A790B0")]
static SecT163R1Holder()
{
CustomNamedCurves.SecT163R1Holder secT163R1Holder = new CustomNamedCurves.SecT163R1Holder();
}
// Token: 0x04007632 RID: 30258
[Token(Token = "0x4007632")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD3 RID: 7379
[Token(Token = "0x2001CD3")]
internal class SecT163R2Holder : X9ECParametersHolder
{
// Token: 0x0600B9D8 RID: 47576 RVA: 0x0029C388 File Offset: 0x0029A588
[Token(Token = "0x600B9D8")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT163R2Holder()
{
}
// Token: 0x0600B9D9 RID: 47577 RVA: 0x0029C39C File Offset: 0x0029A59C
[Token(Token = "0x600B9D9")]
[Address(RVA = "0x1A79110", Offset = "0x1A77F10", VA = "0x181A79110", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("85E25BFE5C86226CDB12016F7553F9D0E693A268");
SecT163R2Curve secT163R2Curve = new SecT163R2Curve();
byte[] array2 = Hex.Decode("0403F0EBA16286A2D57EA0991168D4994637E8343E3600D51FBC6C71A0094FA2CDD545B11C5C0C797324F1");
X9ECPoint x9ECPoint = new X9ECPoint(secT163R2Curve, array2);
ECFieldElement b = secT163R2Curve.B;
BigInteger order = secT163R2Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9DA RID: 47578 RVA: 0x0029C3E8 File Offset: 0x0029A5E8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9DA")]
[Address(RVA = "0x1A79270", Offset = "0x1A78070", VA = "0x181A79270")]
static SecT163R2Holder()
{
CustomNamedCurves.SecT163R2Holder secT163R2Holder = new CustomNamedCurves.SecT163R2Holder();
}
// Token: 0x04007633 RID: 30259
[Token(Token = "0x4007633")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD4 RID: 7380
[Token(Token = "0x2001CD4")]
internal class SecT193R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9DB RID: 47579 RVA: 0x0029C3FC File Offset: 0x0029A5FC
[Token(Token = "0x600B9DB")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT193R1Holder()
{
}
// Token: 0x0600B9DC RID: 47580 RVA: 0x0029C410 File Offset: 0x0029A610
[Token(Token = "0x600B9DC")]
[Address(RVA = "0x1A792D0", Offset = "0x1A780D0", VA = "0x181A792D0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("103FAEC74D696E676875615175777FC5B191EF30");
SecT193R1Curve secT193R1Curve = new SecT193R1Curve();
byte[] array2 = Hex.Decode("0401F481BC5F0FF84A74AD6CDF6FDEF4BF6179625372D8C0C5E10025E399F2903712CCF3EA9E3A1AD17FB0B3201B6AF7CE1B05");
X9ECPoint x9ECPoint = new X9ECPoint(secT193R1Curve, array2);
ECFieldElement b = secT193R1Curve.B;
BigInteger order = secT193R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9DD RID: 47581 RVA: 0x0029C45C File Offset: 0x0029A65C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9DD")]
[Address(RVA = "0x1A79430", Offset = "0x1A78230", VA = "0x181A79430")]
static SecT193R1Holder()
{
CustomNamedCurves.SecT193R1Holder secT193R1Holder = new CustomNamedCurves.SecT193R1Holder();
}
// Token: 0x04007634 RID: 30260
[Token(Token = "0x4007634")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD5 RID: 7381
[Token(Token = "0x2001CD5")]
internal class SecT193R2Holder : X9ECParametersHolder
{
// Token: 0x0600B9DE RID: 47582 RVA: 0x0029C470 File Offset: 0x0029A670
[Token(Token = "0x600B9DE")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT193R2Holder()
{
}
// Token: 0x0600B9DF RID: 47583 RVA: 0x0029C484 File Offset: 0x0029A684
[Token(Token = "0x600B9DF")]
[Address(RVA = "0x1A79490", Offset = "0x1A78290", VA = "0x181A79490", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("10B7B4D696E676875615175137C8A16FD0DA2211");
SecT193R2Curve secT193R2Curve = new SecT193R2Curve();
byte[] array2 = Hex.Decode("0400D9B67D192E0367C803F39E1A7E82CA14A651350AAE617E8F01CE94335607C304AC29E7DEFBD9CA01F596F927224CDECF6C");
X9ECPoint x9ECPoint = new X9ECPoint(secT193R2Curve, array2);
ECFieldElement b = secT193R2Curve.B;
BigInteger order = secT193R2Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9E0 RID: 47584 RVA: 0x0029C4D0 File Offset: 0x0029A6D0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9E0")]
[Address(RVA = "0x1A795F0", Offset = "0x1A783F0", VA = "0x181A795F0")]
static SecT193R2Holder()
{
CustomNamedCurves.SecT193R2Holder secT193R2Holder = new CustomNamedCurves.SecT193R2Holder();
}
// Token: 0x04007635 RID: 30261
[Token(Token = "0x4007635")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD6 RID: 7382
[Token(Token = "0x2001CD6")]
internal class SecT233K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9E1 RID: 47585 RVA: 0x0029C4E4 File Offset: 0x0029A6E4
[Token(Token = "0x600B9E1")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT233K1Holder()
{
}
// Token: 0x0600B9E2 RID: 47586 RVA: 0x0029C4F8 File Offset: 0x0029A6F8
[Token(Token = "0x600B9E2")]
[Address(RVA = "0x1A79650", Offset = "0x1A78450", VA = "0x181A79650", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SecT233K1Curve secT233K1Curve = new SecT233K1Curve();
byte[] array = Hex.Decode("04017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD612601DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3");
X9ECPoint x9ECPoint = new X9ECPoint(secT233K1Curve, array);
ECFieldElement b = secT233K1Curve.B;
BigInteger order = secT233K1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9E3 RID: 47587 RVA: 0x0029C538 File Offset: 0x0029A738
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9E3")]
[Address(RVA = "0x1A797A0", Offset = "0x1A785A0", VA = "0x181A797A0")]
static SecT233K1Holder()
{
CustomNamedCurves.SecT233K1Holder secT233K1Holder = new CustomNamedCurves.SecT233K1Holder();
}
// Token: 0x04007636 RID: 30262
[Token(Token = "0x4007636")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD7 RID: 7383
[Token(Token = "0x2001CD7")]
internal class SecT233R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9E4 RID: 47588 RVA: 0x0029C54C File Offset: 0x0029A74C
[Token(Token = "0x600B9E4")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT233R1Holder()
{
}
// Token: 0x0600B9E5 RID: 47589 RVA: 0x0029C560 File Offset: 0x0029A760
[Token(Token = "0x600B9E5")]
[Address(RVA = "0x1A79800", Offset = "0x1A78600", VA = "0x181A79800", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("74D59FF07F6B413D0EA14B344B20A2DB049B50C3");
SecT233R1Curve secT233R1Curve = new SecT233R1Curve();
byte[] array2 = Hex.Decode("0400FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052");
X9ECPoint x9ECPoint = new X9ECPoint(secT233R1Curve, array2);
ECFieldElement b = secT233R1Curve.B;
BigInteger order = secT233R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9E6 RID: 47590 RVA: 0x0029C5AC File Offset: 0x0029A7AC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9E6")]
[Address(RVA = "0x1A79960", Offset = "0x1A78760", VA = "0x181A79960")]
static SecT233R1Holder()
{
CustomNamedCurves.SecT233R1Holder secT233R1Holder = new CustomNamedCurves.SecT233R1Holder();
}
// Token: 0x04007637 RID: 30263
[Token(Token = "0x4007637")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD8 RID: 7384
[Token(Token = "0x2001CD8")]
internal class SecT239K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9E7 RID: 47591 RVA: 0x0029C5C0 File Offset: 0x0029A7C0
[Token(Token = "0x600B9E7")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT239K1Holder()
{
}
// Token: 0x0600B9E8 RID: 47592 RVA: 0x0029C5D4 File Offset: 0x0029A7D4
[Token(Token = "0x600B9E8")]
[Address(RVA = "0x1A799C0", Offset = "0x1A787C0", VA = "0x181A799C0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SecT239K1Curve secT239K1Curve = new SecT239K1Curve();
byte[] array = Hex.Decode("0429A0B6A887A983E9730988A68727A8B2D126C44CC2CC7B2A6555193035DC76310804F12E549BDB011C103089E73510ACB275FC312A5DC6B76553F0CA");
X9ECPoint x9ECPoint = new X9ECPoint(secT239K1Curve, array);
ECFieldElement b = secT239K1Curve.B;
BigInteger order = secT239K1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9E9 RID: 47593 RVA: 0x0029C614 File Offset: 0x0029A814
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9E9")]
[Address(RVA = "0x1A79B10", Offset = "0x1A78910", VA = "0x181A79B10")]
static SecT239K1Holder()
{
CustomNamedCurves.SecT239K1Holder secT239K1Holder = new CustomNamedCurves.SecT239K1Holder();
}
// Token: 0x04007638 RID: 30264
[Token(Token = "0x4007638")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CD9 RID: 7385
[Token(Token = "0x2001CD9")]
internal class SecT283K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9EA RID: 47594 RVA: 0x0029C628 File Offset: 0x0029A828
[Token(Token = "0x600B9EA")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT283K1Holder()
{
}
// Token: 0x0600B9EB RID: 47595 RVA: 0x0029C63C File Offset: 0x0029A83C
[Token(Token = "0x600B9EB")]
[Address(RVA = "0x1A79B70", Offset = "0x1A78970", VA = "0x181A79B70", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SecT283K1Curve secT283K1Curve = new SecT283K1Curve();
byte[] array = Hex.Decode("040503213F78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC245849283601CCDA380F1C9E318D90F95D07E5426FE87E45C0E8184698E45962364E34116177DD2259");
X9ECPoint x9ECPoint = new X9ECPoint(secT283K1Curve, array);
ECFieldElement b = secT283K1Curve.B;
BigInteger order = secT283K1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9EC RID: 47596 RVA: 0x0029C67C File Offset: 0x0029A87C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9EC")]
[Address(RVA = "0x1A79CC0", Offset = "0x1A78AC0", VA = "0x181A79CC0")]
static SecT283K1Holder()
{
CustomNamedCurves.SecT283K1Holder secT283K1Holder = new CustomNamedCurves.SecT283K1Holder();
}
// Token: 0x04007639 RID: 30265
[Token(Token = "0x4007639")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CDA RID: 7386
[Token(Token = "0x2001CDA")]
internal class SecT283R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9ED RID: 47597 RVA: 0x0029C690 File Offset: 0x0029A890
[Token(Token = "0x600B9ED")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT283R1Holder()
{
}
// Token: 0x0600B9EE RID: 47598 RVA: 0x0029C6A4 File Offset: 0x0029A8A4
[Token(Token = "0x600B9EE")]
[Address(RVA = "0x1A79D20", Offset = "0x1A78B20", VA = "0x181A79D20", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("77E2B07370EB0F832A6DD5B62DFC88CD06BB84BE");
SecT283R1Curve secT283R1Curve = new SecT283R1Curve();
byte[] array2 = Hex.Decode("0405F939258DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B1205303676854FE24141CB98FE6D4B20D02B4516FF702350EDDB0826779C813F0DF45BE8112F4");
X9ECPoint x9ECPoint = new X9ECPoint(secT283R1Curve, array2);
ECFieldElement b = secT283R1Curve.B;
BigInteger order = secT283R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9EF RID: 47599 RVA: 0x0029C6F0 File Offset: 0x0029A8F0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9EF")]
[Address(RVA = "0x1A79E80", Offset = "0x1A78C80", VA = "0x181A79E80")]
static SecT283R1Holder()
{
CustomNamedCurves.SecT283R1Holder secT283R1Holder = new CustomNamedCurves.SecT283R1Holder();
}
// Token: 0x0400763A RID: 30266
[Token(Token = "0x400763A")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CDB RID: 7387
[Token(Token = "0x2001CDB")]
internal class SecT409K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9F0 RID: 47600 RVA: 0x0029C704 File Offset: 0x0029A904
[Token(Token = "0x600B9F0")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT409K1Holder()
{
}
// Token: 0x0600B9F1 RID: 47601 RVA: 0x0029C718 File Offset: 0x0029A918
[Token(Token = "0x600B9F1")]
[Address(RVA = "0x1A79EE0", Offset = "0x1A78CE0", VA = "0x181A79EE0", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SecT409K1Curve secT409K1Curve = new SecT409K1Curve();
byte[] array = Hex.Decode("040060F05F658F49C1AD3AB1890F7184210EFD0987E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE902374601E369050B7C4E42ACBA1DACBF04299C3460782F918EA427E6325165E9EA10E3DA5F6C42E9C55215AA9CA27A5863EC48D8E0286B");
X9ECPoint x9ECPoint = new X9ECPoint(secT409K1Curve, array);
ECFieldElement b = secT409K1Curve.B;
BigInteger order = secT409K1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9F2 RID: 47602 RVA: 0x0029C758 File Offset: 0x0029A958
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9F2")]
[Address(RVA = "0x1A7A030", Offset = "0x1A78E30", VA = "0x181A7A030")]
static SecT409K1Holder()
{
CustomNamedCurves.SecT409K1Holder secT409K1Holder = new CustomNamedCurves.SecT409K1Holder();
}
// Token: 0x0400763B RID: 30267
[Token(Token = "0x400763B")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CDC RID: 7388
[Token(Token = "0x2001CDC")]
internal class SecT409R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9F3 RID: 47603 RVA: 0x0029C76C File Offset: 0x0029A96C
[Token(Token = "0x600B9F3")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT409R1Holder()
{
}
// Token: 0x0600B9F4 RID: 47604 RVA: 0x0029C780 File Offset: 0x0029A980
[Token(Token = "0x600B9F4")]
[Address(RVA = "0x1A7A090", Offset = "0x1A78E90", VA = "0x181A7A090", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("4099B5A457F9D69F79213D094C4BCD4D4262210B");
SecT409R1Curve secT409R1Curve = new SecT409R1Curve();
byte[] array2 = Hex.Decode("04015D4860D088DDB3496B0C6064756260441CDE4AF1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A70061B1CFAB6BE5F32BBFA78324ED106A7636B9C5A7BD198D0158AA4F5488D08F38514F1FDF4B4F40D2181B3681C364BA0273C706");
X9ECPoint x9ECPoint = new X9ECPoint(secT409R1Curve, array2);
ECFieldElement b = secT409R1Curve.B;
BigInteger order = secT409R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9F5 RID: 47605 RVA: 0x0029C7CC File Offset: 0x0029A9CC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9F5")]
[Address(RVA = "0x1A7A1F0", Offset = "0x1A78FF0", VA = "0x181A7A1F0")]
static SecT409R1Holder()
{
CustomNamedCurves.SecT409R1Holder secT409R1Holder = new CustomNamedCurves.SecT409R1Holder();
}
// Token: 0x0400763C RID: 30268
[Token(Token = "0x400763C")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CDD RID: 7389
[Token(Token = "0x2001CDD")]
internal class SecT571K1Holder : X9ECParametersHolder
{
// Token: 0x0600B9F6 RID: 47606 RVA: 0x0029C7E0 File Offset: 0x0029A9E0
[Token(Token = "0x600B9F6")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT571K1Holder()
{
}
// Token: 0x0600B9F7 RID: 47607 RVA: 0x0029C7F4 File Offset: 0x0029A9F4
[Token(Token = "0x600B9F7")]
[Address(RVA = "0x1A7A250", Offset = "0x1A79050", VA = "0x181A7A250", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SecT571K1Curve secT571K1Curve = new SecT571K1Curve();
byte[] array = Hex.Decode("04026EB7A859923FBC82189631F8103FE4AC9CA2970012D5D46024804801841CA44370958493B205E647DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C89720349DC807F4FBF374F4AEADE3BCA95314DD58CEC9F307A54FFC61EFC006D8A2C9D4979C0AC44AEA74FBEBBB9F772AEDCB620B01A7BA7AF1B320430C8591984F601CD4C143EF1C7A3");
X9ECPoint x9ECPoint = new X9ECPoint(secT571K1Curve, array);
ECFieldElement b = secT571K1Curve.B;
BigInteger order = secT571K1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9F8 RID: 47608 RVA: 0x0029C834 File Offset: 0x0029AA34
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9F8")]
[Address(RVA = "0x1A7A3A0", Offset = "0x1A791A0", VA = "0x181A7A3A0")]
static SecT571K1Holder()
{
CustomNamedCurves.SecT571K1Holder secT571K1Holder = new CustomNamedCurves.SecT571K1Holder();
}
// Token: 0x0400763D RID: 30269
[Token(Token = "0x400763D")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CDE RID: 7390
[Token(Token = "0x2001CDE")]
internal class SecT571R1Holder : X9ECParametersHolder
{
// Token: 0x0600B9F9 RID: 47609 RVA: 0x0029C848 File Offset: 0x0029AA48
[Token(Token = "0x600B9F9")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SecT571R1Holder()
{
}
// Token: 0x0600B9FA RID: 47610 RVA: 0x0029C85C File Offset: 0x0029AA5C
[Token(Token = "0x600B9FA")]
[Address(RVA = "0x1A7A400", Offset = "0x1A79200", VA = "0x181A7A400", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
byte[] array = Hex.Decode("2AA058F73A0E33AB486B0F610410C53A7F132310");
SecT571R1Curve secT571R1Curve = new SecT571R1Curve();
byte[] array2 = Hex.Decode("040303001D34B856296C16C0D40D3CD7750A93D1D2955FA80AA5F40FC8DB7B2ABDBDE53950F4C0D293CDD711A35B67FB1499AE60038614F1394ABFA3B4C850D927E1E7769C8EEC2D19037BF27342DA639B6DCCFFFEB73D69D78C6C27A6009CBBCA1980F8533921E8A684423E43BAB08A576291AF8F461BB2A8B3531D2F0485C19B16E2F1516E23DD3C1A4827AF1B8AC15B");
X9ECPoint x9ECPoint = new X9ECPoint(secT571R1Curve, array2);
ECFieldElement b = secT571R1Curve.B;
BigInteger order = secT571R1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9FB RID: 47611 RVA: 0x0029C8A8 File Offset: 0x0029AAA8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9FB")]
[Address(RVA = "0x1A7A560", Offset = "0x1A79360", VA = "0x181A7A560")]
static SecT571R1Holder()
{
CustomNamedCurves.SecT571R1Holder secT571R1Holder = new CustomNamedCurves.SecT571R1Holder();
}
// Token: 0x0400763E RID: 30270
[Token(Token = "0x400763E")]
internal static readonly X9ECParametersHolder Instance;
}
// Token: 0x02001CDF RID: 7391
[Token(Token = "0x2001CDF")]
internal class SM2P256V1Holder : X9ECParametersHolder
{
// Token: 0x0600B9FC RID: 47612 RVA: 0x0029C8BC File Offset: 0x0029AABC
[Token(Token = "0x600B9FC")]
[Address(RVA = "0x4093D0", Offset = "0x4081D0", VA = "0x1804093D0")]
private SM2P256V1Holder()
{
}
// Token: 0x0600B9FD RID: 47613 RVA: 0x0029C8D0 File Offset: 0x0029AAD0
[Token(Token = "0x600B9FD")]
[Address(RVA = "0x1A76470", Offset = "0x1A75270", VA = "0x181A76470", Slot = "4")]
protected override X9ECParameters CreateParameters()
{
SM2P256V1Curve sm2P256V1Curve = new SM2P256V1Curve();
byte[] array = Hex.Decode("0432C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0");
X9ECPoint x9ECPoint = new X9ECPoint(sm2P256V1Curve, array);
ECFieldElement b = sm2P256V1Curve.B;
BigInteger order = sm2P256V1Curve.Order;
X9ECParameters x9ECParameters;
return x9ECParameters;
}
// Token: 0x0600B9FE RID: 47614 RVA: 0x0029C910 File Offset: 0x0029AB10
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B9FE")]
[Address(RVA = "0x1A765C0", Offset = "0x1A753C0", VA = "0x181A765C0")]
static SM2P256V1Holder()
{
CustomNamedCurves.SM2P256V1Holder sm2P256V1Holder = new CustomNamedCurves.SM2P256V1Holder();
}
// Token: 0x0400763F RID: 30271
[Token(Token = "0x400763F")]
internal static readonly X9ECParametersHolder Instance;
}
}
}
@@ -0,0 +1,270 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings
{
// Token: 0x02001CBC RID: 7356
[Token(Token = "0x2001CBC")]
public class ISO9796d1Encoding : IAsymmetricBlockCipher
{
// Token: 0x0600B967 RID: 47463 RVA: 0x0029A444 File Offset: 0x00298644
[Token(Token = "0x600B967")]
[Address(RVA = "0x3FFB80", Offset = "0x3FE980", VA = "0x1803FFB80")]
public ISO9796d1Encoding(IAsymmetricBlockCipher cipher)
{
this.engine = cipher;
}
// Token: 0x17001D03 RID: 7427
// (get) Token: 0x0600B968 RID: 47464 RVA: 0x0029A460 File Offset: 0x00298660
[Token(Token = "0x17001D03")]
public string AlgorithmName
{
[Token(Token = "0x600B968")]
[Address(RVA = "0x1A740B0", Offset = "0x1A72EB0", VA = "0x181A740B0", Slot = "4")]
get
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
return 0 + "/ISO9796-1Padding";
}
}
// Token: 0x0600B969 RID: 47465 RVA: 0x0029A488 File Offset: 0x00298688
[Token(Token = "0x600B969")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20")]
public IAsymmetricBlockCipher GetUnderlyingCipher()
{
return this.engine;
}
// Token: 0x0600B96A RID: 47466 RVA: 0x0029A49C File Offset: 0x0029869C
[Token(Token = "0x600B96A")]
[Address(RVA = "0x1A73D30", Offset = "0x1A72B30", VA = "0x181A73D30", Slot = "5")]
public void Init(bool forEncryption, ICipherParameters parameters)
{
while (parameters != 0)
{
if ((parameters != 0 || parameters != 0) && parameters != 0 && parameters != 0)
{
if (parameters == 0)
{
IL_2A:
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
this.modulus = (uint)1;
this.forEncryption = forEncryption;
int num;
this.bitSize = num;
return;
}
if (parameters != 0)
{
break;
}
}
}
goto IL_2A;
}
// Token: 0x0600B96B RID: 47467 RVA: 0x0029A4F8 File Offset: 0x002986F8
[Token(Token = "0x600B96B")]
[Address(RVA = "0x1A73C70", Offset = "0x1A72A70", VA = "0x181A73C70", Slot = "6")]
public int GetInputBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (this.inverse != (ulong)0L)
{
}
throw new NullReferenceException();
}
// Token: 0x0600B96C RID: 47468 RVA: 0x0029A51C File Offset: 0x0029871C
[Token(Token = "0x600B96C")]
[Address(RVA = "0x1A73CD0", Offset = "0x1A72AD0", VA = "0x181A73CD0", Slot = "7")]
public int GetOutputBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (this.inverse == (ulong)0L)
{
}
throw new NullReferenceException();
}
// Token: 0x0600B96D RID: 47469 RVA: 0x0029A540 File Offset: 0x00298740
[Token(Token = "0x600B96D")]
[Address(RVA = "0x1A73F50", Offset = "0x1A72D50", VA = "0x181A73F50")]
public void SetPadBits(int padBits)
{
this.padBits = padBits;
}
// Token: 0x0600B96E RID: 47470 RVA: 0x0029A560 File Offset: 0x00298760
[Token(Token = "0x600B96E")]
[Address(RVA = "0x3F7310", Offset = "0x3F6110", VA = "0x1803F7310")]
public int GetPadBits()
{
return this.padBits;
}
// Token: 0x0600B96F RID: 47471 RVA: 0x0029A574 File Offset: 0x00298774
[Token(Token = "0x600B96F")]
[Address(RVA = "0x1A73F20", Offset = "0x1A72D20", VA = "0x181A73F20", Slot = "8")]
public byte[] ProcessBlock(byte[] input, int inOff, int length)
{
if (this.inverse == (ulong)0L)
{
return this.DecodeBlock(input, inOff, length);
}
return this.EncodeBlock(input, inOff, length);
}
// Token: 0x0600B970 RID: 47472 RVA: 0x0029A5A0 File Offset: 0x002987A0
[Token(Token = "0x600B970")]
[Address(RVA = "0x1A738E0", Offset = "0x1A726E0", VA = "0x181A738E0")]
private byte[] EncodeBlock(byte[] input, int inOff, int inLen)
{
int num = this.bitSize;
num += 7;
byte[] array = new byte[input];
int num2 = this.padBits;
int num3 = this.bitSize;
num2++;
num3 += 13;
int num4 = 0;
num3 += input;
if (num3 > 0)
{
num3 -= inLen;
int num5 = array.Length;
num5 -= num4;
num5 -= inLen;
int num6 = array.Length;
num6 -= inLen;
num4 += inLen;
num3 = inLen - inLen;
}
int num7 = array.Length;
num7 -= num3;
int length = array.Length;
int num8;
if (num7 != length)
{
num3 = num7;
num3 -= 0;
num3 -= num3;
num8 = ISO9796d1Encoding.shadows.Length;
num8 = num7;
num8++;
num7 += 2;
}
byte b;
num8 -= (int)b;
int length2 = array.Length;
if (length2 - 1 < length2)
{
}
uint num9;
byte b2;
num9 -= (uint)b2;
int length3 = array.Length;
if (num9 == (uint)8)
{
array[0] = (byte)((ulong)0L);
}
uint num10;
array[0] = (byte)num10;
uint num11;
array[0] = (byte)num11;
int num12 = 0;
int num13 = array.Length;
num13 -= num12;
throw new NullReferenceException();
}
// Token: 0x0600B971 RID: 47473 RVA: 0x0029A6B8 File Offset: 0x002988B8
[Token(Token = "0x600B971")]
[Address(RVA = "0x1A732E0", Offset = "0x1A720E0", VA = "0x181A732E0")]
private byte[] DecodeBlock(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600B971)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.ISO9796d1Encoding::DecodeBlock(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_140:
stloc:InvalidCipherTextException(var_33_14A, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("resulting integer iS or (modulus - iS) is not congruent to 6 mod 16")))
}
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: 0x0600B972 RID: 47474 RVA: 0x0029A810 File Offset: 0x00298A10
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B972")]
[Address(RVA = "0x1A73FC0", Offset = "0x1A72DC0", VA = "0x181A73FC0")]
static ISO9796d1Encoding()
{
BigInteger bigInteger;
ISO9796d1Encoding.Sixteen = bigInteger;
BigInteger bigInteger2;
ISO9796d1Encoding.Six = bigInteger2;
byte[] array = new byte[16];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.27C3AB82CCA6CE2F199F4F670BF19513A3825B87).FieldHandle);
ISO9796d1Encoding.shadows = array;
byte[] array2 = new byte[16];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.30F65A149AF7DE938A9287048498B966AEBE54D4).FieldHandle);
ISO9796d1Encoding.inverse = array2;
}
// Token: 0x04007602 RID: 30210
[Token(Token = "0x4007602")]
private static readonly BigInteger Sixteen;
// Token: 0x04007603 RID: 30211
[Token(Token = "0x4007603")]
private static readonly BigInteger Six;
// Token: 0x04007604 RID: 30212
[Token(Token = "0x4007604")]
private static readonly byte[] shadows;
// Token: 0x04007605 RID: 30213
[Token(Token = "0x4007605")]
private static readonly byte[] inverse;
// Token: 0x04007606 RID: 30214
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007606")]
private readonly IAsymmetricBlockCipher engine;
// Token: 0x04007607 RID: 30215
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007607")]
private bool forEncryption;
// Token: 0x04007608 RID: 30216
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4007608")]
private int bitSize;
// Token: 0x04007609 RID: 30217
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007609")]
private int padBits;
// Token: 0x0400760A RID: 30218
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400760A")]
private BigInteger modulus;
}
}
@@ -0,0 +1,360 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings
{
// Token: 0x02001CBD RID: 7357
[Token(Token = "0x2001CBD")]
public class OaepEncoding : IAsymmetricBlockCipher
{
// Token: 0x0600B973 RID: 47475 RVA: 0x0029A85C File Offset: 0x00298A5C
[Token(Token = "0x600B973")]
[Address(RVA = "0x1A74C00", Offset = "0x1A73A00", VA = "0x181A74C00")]
public OaepEncoding(IAsymmetricBlockCipher cipher)
{
Sha1Digest sha1Digest = new Sha1Digest();
}
// Token: 0x0600B974 RID: 47476 RVA: 0x0029A870 File Offset: 0x00298A70
[Token(Token = "0x600B974")]
[Address(RVA = "0x1A74BE0", Offset = "0x1A739E0", VA = "0x181A74BE0")]
public OaepEncoding(IAsymmetricBlockCipher cipher, IDigest hash)
{
}
// Token: 0x0600B975 RID: 47477 RVA: 0x0029A880 File Offset: 0x00298A80
[Token(Token = "0x600B975")]
[Address(RVA = "0x1A74C80", Offset = "0x1A73A80", VA = "0x181A74C80")]
public OaepEncoding(IAsymmetricBlockCipher cipher, IDigest hash, byte[] encodingParams)
{
this.engine = cipher;
this.mgf1Hash = hash;
byte[] array = new byte[0];
this.defHash = array;
if (encodingParams != 0)
{
int length = encodingParams.Length;
}
throw new NullReferenceException();
}
// Token: 0x0600B976 RID: 47478 RVA: 0x0029A8C4 File Offset: 0x00298AC4
[Token(Token = "0x600B976")]
[Address(RVA = "0x1A74AF0", Offset = "0x1A738F0", VA = "0x181A74AF0")]
public OaepEncoding(IAsymmetricBlockCipher cipher, IDigest hash, IDigest mgf1Hash, byte[] encodingParams)
{
this.engine = cipher;
this.mgf1Hash = mgf1Hash;
byte[] array = new byte[0];
this.defHash = array;
throw new NullReferenceException();
}
// Token: 0x0600B977 RID: 47479 RVA: 0x0029A8FC File Offset: 0x00298AFC
[Token(Token = "0x600B977")]
[Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")]
public IAsymmetricBlockCipher GetUnderlyingCipher()
{
return this.engine;
}
// Token: 0x17001D04 RID: 7428
// (get) Token: 0x0600B978 RID: 47480 RVA: 0x0029A910 File Offset: 0x00298B10
[Token(Token = "0x17001D04")]
public string AlgorithmName
{
[Token(Token = "0x600B978")]
[Address(RVA = "0x1A74D70", Offset = "0x1A73B70", VA = "0x181A74D70", Slot = "4")]
get
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
return 0 + "/OAEPPadding";
}
}
// Token: 0x0600B979 RID: 47481 RVA: 0x0029A938 File Offset: 0x00298B38
[Token(Token = "0x600B979")]
[Address(RVA = "0x1A749A0", Offset = "0x1A737A0", VA = "0x181A749A0", Slot = "5")]
public void Init(bool forEncryption, ICipherParameters param)
{
while (param != 0 && param != 0 && param == 0)
{
}
SecureRandom secureRandom = new SecureRandom();
this.random = secureRandom;
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
this.forEncryption = forEncryption;
}
// Token: 0x0600B97A RID: 47482 RVA: 0x0029A978 File Offset: 0x00298B78
[Token(Token = "0x600B97A")]
[Address(RVA = "0x1A748C0", Offset = "0x1A736C0", VA = "0x181A748C0", Slot = "6")]
public int GetInputBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (this.forEncryption)
{
int num = this.defHash.Length;
num += num;
uint num2;
num2 -= (uint)num;
}
throw new NullReferenceException();
}
// Token: 0x0600B97B RID: 47483 RVA: 0x0029A9B0 File Offset: 0x00298BB0
[Token(Token = "0x600B97B")]
[Address(RVA = "0x1A74930", Offset = "0x1A73730", VA = "0x181A74930", Slot = "7")]
public int GetOutputBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (!this.forEncryption)
{
int num = this.defHash.Length;
num += num;
}
throw new NullReferenceException();
}
// Token: 0x0600B97C RID: 47484 RVA: 0x0029A9E4 File Offset: 0x00298BE4
[Token(Token = "0x600B97C")]
[Address(RVA = "0x1A74AC0", Offset = "0x1A738C0", VA = "0x181A74AC0", Slot = "8")]
public byte[] ProcessBlock(byte[] inBytes, int inOff, int inLen)
{
if (!this.forEncryption)
{
return this.DecodeBlock(inBytes, inOff, inLen);
}
return this.EncodeBlock(inBytes, inOff, inLen);
}
// Token: 0x0600B97D RID: 47485 RVA: 0x0029AA10 File Offset: 0x00298C10
[Token(Token = "0x600B97D")]
[Address(RVA = "0x1A74520", Offset = "0x1A73320", VA = "0x181A74520")]
private byte[] EncodeBlock(byte[] inBytes, int inOff, int inLen)
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
uint num2;
if (this.forEncryption)
{
int num = this.defHash.Length;
num += num;
num2 -= (uint)num;
}
Check.DataLength(inLen > (int)num2, "input data too long");
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.engine;
byte[] array = this.defHash;
if (this.forEncryption)
{
int num3 = array.Length;
num3 += num3;
}
int num4 = array.Length;
num4 += num4;
num4++;
byte[] array2 = new byte[0];
int num5 = array2.Length;
int num6 = 0;
num5 -= inLen;
Array.Copy(inBytes, inOff, array2, num5, inLen);
int num7 = array2.Length;
num7 -= inLen;
byte[] array3 = this.defHash;
int length = array3.Length;
int num8 = 0;
Array.Copy(array3, num8, array2, length, length);
byte[] array4 = this.defHash;
SecureRandom secureRandom = this.random;
int length2 = array4.Length;
byte[] nextBytes = SecureRandom.GetNextBytes(secureRandom, length2);
byte[] array5 = this.defHash;
int length3 = array2.Length;
int num9 = 0;
int length4 = nextBytes.Length;
byte[] array6 = this.maskGeneratorFunction1(nextBytes, num9, length4, length3);
int num10 = this.defHash.Length;
if (num10 != array2.Length)
{
byte[] array7 = this.defHash;
num10++;
}
int length5 = this.defHash.Length;
int num11 = 0;
int num12 = 0;
Array.Copy(nextBytes, num12, array2, num11, length5);
int length6 = this.defHash.Length;
int num13 = array2.Length;
num13 -= length6;
byte[] array8 = this.maskGeneratorFunction1(array2, length6, num13, length6);
byte[] array9 = this.defHash;
if (num6 != array9.Length)
{
num6++;
byte[] array10 = this.defHash;
}
IAsymmetricBlockCipher asymmetricBlockCipher3 = this.engine;
int length7 = array2.Length;
throw new IndexOutOfRangeException();
}
// Token: 0x0600B97E RID: 47486 RVA: 0x0029ABE8 File Offset: 0x00298DE8
[Token(Token = "0x600B97E")]
[Address(RVA = "0x1A74110", Offset = "0x1A72F10", VA = "0x181A74110")]
private byte[] DecodeBlock(byte[] inBytes, int inOff, int inLen)
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.engine;
byte[] array = new byte[0];
int length = this.defHash.Length;
int num = array.Length;
num -= typeof(IAsymmetricBlockCipher).TypeHandle;
int num2 = 0;
int length2 = this.defHash.Length;
int num3 = array.Length;
num3 -= length2;
byte[] array2 = this.maskGeneratorFunction1(array, length2, num3, length2);
byte[] array3 = this.defHash;
byte[] array4;
if (num2 != array3.Length)
{
num2++;
array4 = this.defHash;
}
int num4 = array.Length;
int num5 = 0;
int length3 = array4.Length;
num4 -= length3;
byte[] array5 = this.maskGeneratorFunction1(array, num5, length3, num4);
int num6 = this.defHash.Length;
int num7 = array.Length;
if (num6 != num7)
{
byte[] array6 = this.defHash;
num7 = num6;
num6++;
}
int length4 = this.defHash.Length;
if (num2 != length4)
{
num2++;
}
if (num2 != num7)
{
num2++;
bool flag = num7 == num7;
}
num7++;
int num8 = num7 - 1;
num7 -= num7;
byte[] array7 = new byte[num7];
int length5 = array7.Length;
int num9 = 0;
Array.Copy(array, num7, array7, num9, length5);
return array7;
}
// Token: 0x0600B97F RID: 47487 RVA: 0x0029AD44 File Offset: 0x00298F44
[Token(Token = "0x600B97F")]
[Address(RVA = "0x189BD10", Offset = "0x189AB10", VA = "0x18189BD10")]
private void ItoOSP(int i, byte[] sp)
{
sp[0] = (byte)i;
sp[0] = (byte)i;
sp[0] = (byte)i;
sp[0] = (byte)i;
}
// Token: 0x0600B980 RID: 47488 RVA: 0x0029AD78 File Offset: 0x00298F78
[Token(Token = "0x600B980")]
[Address(RVA = "0x1A74DD0", Offset = "0x1A73BD0", VA = "0x181A74DD0")]
private byte[] maskGeneratorFunction1(byte[] Z, int zOff, int zLen, int length)
{
byte[] array = new byte[0];
IDigest digest = this.mgf1Hash;
byte[] array2 = new byte[array];
byte[] array3 = new byte[4];
IDigest digest2 = this.mgf1Hash;
int num = 0;
int num2 = 0;
int length2 = array2.Length;
array3[0] = (byte)num;
array3[0] = (byte)num;
array3[0] = (byte)num;
array3[0] = (byte)num;
IDigest digest3 = this.mgf1Hash;
if (num2 < num2)
{
num2 += num2;
num2++;
}
IDigest digest4 = this.mgf1Hash;
int num3 = 0;
num3 += num3;
num3++;
int num4 = 0;
IDigest digest5 = this.mgf1Hash;
int num5 = 0;
if (num5 < num4)
{
num5 += num5;
num5++;
}
int num6 = array2.Length;
int num7 = num6 * num;
int num8 = 0;
Array.Copy(array2, num8, array, num7, num6);
num++;
num8 += num8;
num6 += 4;
num6 += 19;
num8 += num8;
num6 += 4;
num6 += 19;
num8 += num8;
num6 += 5;
num6 += 19;
array3[0] = (byte)num;
array3[0] = (byte)num;
array3[0] = (byte)num;
array3[0] = (byte)num;
IDigest digest6 = this.mgf1Hash;
IDigest digest7 = this.mgf1Hash;
int length3 = array3.Length;
IDigest digest8 = this.mgf1Hash;
int length4 = array2.Length;
int num9 = array.Length;
int num10 = 0;
int num11 = length4 * num;
num9 -= num11;
Array.Copy(array2, num10, array, num11, num9);
return array;
}
// Token: 0x0400760B RID: 30219
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400760B")]
private byte[] defHash;
// Token: 0x0400760C RID: 30220
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400760C")]
private IDigest mgf1Hash;
// Token: 0x0400760D RID: 30221
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400760D")]
private IAsymmetricBlockCipher engine;
// Token: 0x0400760E RID: 30222
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400760E")]
private SecureRandom random;
// Token: 0x0400760F RID: 30223
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400760F")]
private bool forEncryption;
}
}
@@ -0,0 +1,355 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings
{
// Token: 0x02001CBE RID: 7358
[Token(Token = "0x2001CBE")]
public class Pkcs1Encoding : IAsymmetricBlockCipher
{
// Token: 0x17001D05 RID: 7429
// (get) Token: 0x0600B981 RID: 47489 RVA: 0x0029AF18 File Offset: 0x00299118
// (set) Token: 0x0600B982 RID: 47490 RVA: 0x0029AF40 File Offset: 0x00299140
[Token(Token = "0x17001D05")]
public static bool StrictLengthEnabled
{
[Token(Token = "0x600B981")]
[Address(RVA = "0x1A76370", Offset = "0x1A75170", VA = "0x181A76370")]
get
{
bool[] array = Pkcs1Encoding.strictLengthEnabled;
return "{il2cpp array field local0->}" != (ulong)0L;
}
[Token(Token = "0x600B982")]
[Address(RVA = "0x1A763F0", Offset = "0x1A751F0", VA = "0x181A763F0")]
set
{
Pkcs1Encoding.strictLengthEnabled[0] = value;
}
}
// Token: 0x0600B983 RID: 47491 RVA: 0x0029AF60 File Offset: 0x00299160
[Token(Token = "0x600B983")]
[Address(RVA = "0x1A76090", Offset = "0x1A74E90", VA = "0x181A76090")]
static Pkcs1Encoding()
{
string environmentVariable = Platform.GetEnvironmentVariable("BestHTTP.SecureProtocol.Org.BouncyCastle.Pkcs1.Strict");
bool[] array = new bool[1];
if (environmentVariable == 0)
{
}
bool flag = environmentVariable.Equals("true");
array[0] = flag;
Pkcs1Encoding.strictLengthEnabled = array;
}
// Token: 0x0600B984 RID: 47492 RVA: 0x0029AFA4 File Offset: 0x002991A4
[Token(Token = "0x600B984")]
[Address(RVA = "0x1A76290", Offset = "0x1A75090", VA = "0x181A76290")]
public Pkcs1Encoding(IAsymmetricBlockCipher cipher)
{
this.engine = cipher;
bool flag = Pkcs1Encoding.StrictLengthEnabled;
this.useStrictLength = flag;
}
// Token: 0x0600B985 RID: 47493 RVA: 0x0029AFE0 File Offset: 0x002991E0
[Token(Token = "0x600B985")]
[Address(RVA = "0x1A76160", Offset = "0x1A74F60", VA = "0x181A76160")]
public Pkcs1Encoding(IAsymmetricBlockCipher cipher, int pLen)
{
this.engine = cipher;
bool flag = Pkcs1Encoding.StrictLengthEnabled;
this.pLen = pLen;
this.useStrictLength = flag;
}
// Token: 0x0600B986 RID: 47494 RVA: 0x0029B020 File Offset: 0x00299220
[Token(Token = "0x600B986")]
[Address(RVA = "0x1A761F0", Offset = "0x1A74FF0", VA = "0x181A761F0")]
public Pkcs1Encoding(IAsymmetricBlockCipher cipher, byte[] fallback)
{
this.engine = cipher;
bool flag = Pkcs1Encoding.StrictLengthEnabled;
this.useStrictLength = flag;
this.fallback = fallback;
int length = fallback.Length;
this.pLen = length;
}
// Token: 0x0600B987 RID: 47495 RVA: 0x0029B074 File Offset: 0x00299274
[Token(Token = "0x600B987")]
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40")]
public IAsymmetricBlockCipher GetUnderlyingCipher()
{
return this.engine;
}
// Token: 0x17001D06 RID: 7430
// (get) Token: 0x0600B988 RID: 47496 RVA: 0x0029B088 File Offset: 0x00299288
[Token(Token = "0x17001D06")]
public string AlgorithmName
{
[Token(Token = "0x600B988")]
[Address(RVA = "0x1A76310", Offset = "0x1A75110", VA = "0x181A76310", Slot = "4")]
get
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
return 0 + "/PKCS1Padding";
}
}
// Token: 0x0600B989 RID: 47497 RVA: 0x0029B0B0 File Offset: 0x002992B0
[Token(Token = "0x600B989")]
[Address(RVA = "0x1A75DF0", Offset = "0x1A74BF0", VA = "0x181A75DF0", Slot = "5")]
public void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B989)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_84:
stloc:ArgumentException(var_8_8E, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("encoder requires random")))
}
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: 0x0600B98A RID: 47498 RVA: 0x0029B14C File Offset: 0x0029934C
[Token(Token = "0x600B98A")]
[Address(RVA = "0x1A75D30", Offset = "0x1A74B30", VA = "0x181A75D30", Slot = "6")]
public int GetInputBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (this.forEncryption)
{
}
throw new NullReferenceException();
}
// Token: 0x0600B98B RID: 47499 RVA: 0x0029B170 File Offset: 0x00299370
[Token(Token = "0x600B98B")]
[Address(RVA = "0x1A75D90", Offset = "0x1A74B90", VA = "0x181A75D90", Slot = "7")]
public int GetOutputBlockSize()
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (!this.forEncryption)
{
}
throw new NullReferenceException();
}
// Token: 0x0600B98C RID: 47500 RVA: 0x0029B194 File Offset: 0x00299394
[Token(Token = "0x600B98C")]
[Address(RVA = "0x1A76060", Offset = "0x1A74E60", VA = "0x181A76060", Slot = "8")]
public byte[] ProcessBlock(byte[] input, int inOff, int length)
{
if (this.forEncryption)
{
return this.EncodeBlock(input, inOff, length);
}
return this.DecodeBlock(input, inOff, length);
}
// Token: 0x0600B98D RID: 47501 RVA: 0x0029B1C0 File Offset: 0x002993C0
[Token(Token = "0x600B98D")]
[Address(RVA = "0x1A759B0", Offset = "0x1A747B0", VA = "0x181A759B0")]
private byte[] EncodeBlock(byte[] input, int inOff, int inLen)
{
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
if (this.forEncryption)
{
}
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.engine;
byte[] array = new byte[0];
if (!this.forPrivateKey)
{
double num = this.random.NextDouble();
array[0] = (byte)((ulong)2L);
int num2 = array.Length;
num2 -= inLen;
uint num3;
if (num3 == (uint)num2)
{
goto IL_83;
}
int length = array.Length;
SecureRandom secureRandom = this.random;
num3 += (uint)1;
}
int num4 = array.Length;
num4 -= inLen;
uint num5;
if (num5 != (uint)num4)
{
num5 += (uint)1;
}
IL_83:
num4 -= inLen;
int num6 = num4 - 1;
int num7 = array.Length;
num7 -= inLen;
num4 = inOff;
Array.Copy(input, num4, array, num7, inLen);
IAsymmetricBlockCipher asymmetricBlockCipher3 = this.engine;
int length2 = array.Length;
throw new NullReferenceException();
}
// Token: 0x0600B98E RID: 47502 RVA: 0x0029B294 File Offset: 0x00299494
[Token(Token = "0x600B98E")]
[Address(RVA = "0x1A752A0", Offset = "0x1A740A0", VA = "0x181A752A0")]
private static int CheckPkcs1Encoding(byte[] encoded, int pLen)
{
int num = encoded.Length;
num -= pLen;
uint num2;
if (num - 1 > (int)num2)
{
num2 += (uint)1;
}
int num3 = num - 1;
throw new NullReferenceException();
}
// Token: 0x0600B98F RID: 47503 RVA: 0x0029B2C0 File Offset: 0x002994C0
[Token(Token = "0x600B98F")]
[Address(RVA = "0x1A75390", Offset = "0x1A74190", VA = "0x181A75390")]
private byte[] DecodeBlockOrRandom(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600B98F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding::DecodeBlockOrRandom(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_C7:
stloc:InvalidCipherTextException(var_18_D1, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("sorry, this method is only for decryption, not for signing")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B990 RID: 47504 RVA: 0x0029B3A0 File Offset: 0x002995A0
[Token(Token = "0x600B990")]
[Address(RVA = "0x1A756A0", Offset = "0x1A744A0", VA = "0x181A756A0")]
private byte[] DecodeBlock(byte[] input, int inOff, int inLen)
{
/*
An exception occurred when decompiling this method (0600B990)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding::DecodeBlock(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_C5:
stloc:InvalidCipherTextException(var_20_CF, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("block incorrect size")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B991 RID: 47505 RVA: 0x0029B480 File Offset: 0x00299680
[Token(Token = "0x600B991")]
[Address(RVA = "0x1A75C80", Offset = "0x1A74A80", VA = "0x181A75C80")]
private int FindStart(byte type, byte[] block)
{
int length = block.Length;
if ((uint)1 != (uint)length)
{
}
return -1;
}
// Token: 0x04007610 RID: 30224
[Token(Token = "0x4007610")]
public const string StrictLengthEnabledProperty = "BestHTTP.SecureProtocol.Org.BouncyCastle.Pkcs1.Strict";
// Token: 0x04007611 RID: 30225
[Token(Token = "0x4007611")]
private const int HeaderLength = 10;
// Token: 0x04007612 RID: 30226
[Token(Token = "0x4007612")]
private static readonly bool[] strictLengthEnabled;
// Token: 0x04007613 RID: 30227
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007613")]
private SecureRandom random;
// Token: 0x04007614 RID: 30228
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007614")]
private IAsymmetricBlockCipher engine;
// Token: 0x04007615 RID: 30229
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007615")]
private bool forEncryption;
// Token: 0x04007616 RID: 30230
[FieldOffset(Offset = "0x21")]
[Token(Token = "0x4007616")]
private bool forPrivateKey;
// Token: 0x04007617 RID: 30231
[FieldOffset(Offset = "0x22")]
[Token(Token = "0x4007617")]
private bool useStrictLength;
// Token: 0x04007618 RID: 30232
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4007618")]
private int pLen = (int)((ulong)4294967295L);
// Token: 0x04007619 RID: 30233
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007619")]
private byte[] fallback;
// Token: 0x0400761A RID: 30234
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400761A")]
private byte[] blockBuffer;
}
}
@@ -0,0 +1,637 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C80 RID: 7296
[Token(Token = "0x2001C80")]
public class AesEngine : IBlockCipher
{
// Token: 0x0600B6BA RID: 46778 RVA: 0x00281598 File Offset: 0x0027F798
[Token(Token = "0x600B6BA")]
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
private static uint Shift(uint r, int shift)
{
return r;
}
// Token: 0x0600B6BB RID: 46779 RVA: 0x002815A8 File Offset: 0x0027F7A8
[Token(Token = "0x600B6BB")]
[Address(RVA = "0x1A5ED00", Offset = "0x1A5DB00", VA = "0x181A5ED00")]
private static uint FFmulX(uint x)
{
/*
An exception occurred when decompiling this method (0600B6BB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::FFmulX(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
}
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: 0x0600B6BC RID: 46780 RVA: 0x002815BC File Offset: 0x0027F7BC
[Token(Token = "0x600B6BC")]
[Address(RVA = "0x1A5ECD0", Offset = "0x1A5DAD0", VA = "0x181A5ECD0")]
private static uint FFmulX2(uint x)
{
return x;
}
// Token: 0x0600B6BD RID: 46781 RVA: 0x002815CC File Offset: 0x0027F7CC
[Token(Token = "0x600B6BD")]
[Address(RVA = "0x1A60500", Offset = "0x1A5F300", VA = "0x181A60500")]
private static uint Inv_Mcol(uint x)
{
return x;
}
// Token: 0x0600B6BE RID: 46782 RVA: 0x002815DC File Offset: 0x0027F7DC
[Token(Token = "0x600B6BE")]
[Address(RVA = "0x1A607D0", Offset = "0x1A5F5D0", VA = "0x181A607D0")]
private static uint SubWord(uint x)
{
int length = AesEngine.S.Length;
throw new NullReferenceException();
}
// Token: 0x0600B6BF RID: 46783 RVA: 0x002815FC File Offset: 0x0027F7FC
[Token(Token = "0x600B6BF")]
[Address(RVA = "0x1A5ED20", Offset = "0x1A5DB20", VA = "0x181A5ED20")]
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
{
uint[][] array;
int i;
for (;;)
{
if (key.Length == 7)
{
this.ROUNDS = key;
array = new uint[key][];
i = 0;
uint[] array2 = new uint[4];
if (array2 != 0)
{
}
i++;
array[0] = array2;
while (i <= this.rcon)
{
}
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_3FB;
}
if (typeof(uint[]).TypeHandle != 0)
{
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_1E5;
}
uint num;
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
{
break;
}
}
}
}
uint[] array3 = array[0];
array3[0] = (uint)i;
uint[] array4 = array[0];
array4[0] = array3;
uint[] array5 = array[0];
array5[1] = array4;
uint[] array6 = array[0];
array6[1] = array5;
uint[] array7 = array[1];
array7[0] = array6;
uint[] array8 = array[1];
array8[0] = array7;
uint[] array9 = array[1];
array9[1] = array8;
array[1][1] = array9;
uint num2;
num2 += num2;
uint num3 = AesEngine.SubWord(array9);
ulong num4;
array[(int)num4][0] = i;
array[(int)num4][0] = array3;
array[(int)num4][1] = array4;
array[(int)num4][1] = array5;
uint num5 = AesEngine.SubWord(array5);
ulong num6 = num4 + 1UL;
array[(int)num6][0] = array6;
array[(int)num6][0] = array7;
array[(int)num6][1] = array8;
array[(int)num6][1] = array9;
uint num7 = AesEngine.SubWord(array9);
array[14][0] = (uint)i;
array[14][0] = array3;
array[14][1] = array4;
uint[] array10 = array[14];
array10[1] = array5;
IL_1E5:
uint[] array11 = array[0];
array11[0] = array10;
uint[] array12 = array[0];
array12[0] = array11;
uint[] array13 = array[0];
array13[1] = array12;
uint[] array14 = array[0];
array14[1] = array13;
uint[] array15 = array[1];
array15[0] = array14;
array[1][0] = array15;
uint num8 = AesEngine.SubWord(array15);
array[1][1] = num8;
array[1][1] = array11;
array[2][0] = array12;
array[2][0] = array13;
array[2][1] = array14;
array[2][1] = array15;
ulong num9;
num9 += num9;
uint num10 = AesEngine.SubWord(array15);
uint num11;
array[(int)num11][0] = num8;
array[(int)num11][0] = array11;
array[(int)num11][1] = array12;
array[(int)num11][1] = array13;
uint num12 = num11 + 1U;
array[(int)num12][0] = array14;
array[(int)num12][0] = array15;
num9 += num9;
uint num13 = AesEngine.SubWord(array15);
array[(int)num12][1] = num8;
array[(int)num12][1] = array11;
num11 += (uint)2;
array[(int)num11][0] = array12;
array[(int)num11][0] = array13;
array[(int)num11][1] = array14;
uint[] array16 = array[(int)num11];
num11 += (uint)3;
array16[1] = array15;
uint num14 = AesEngine.SubWord(array15);
array[12][0] = num8;
array[12][0] = array11;
array[12][1] = array12;
uint[] array17 = array[12];
array17[1] = array13;
IL_3FB:
uint[] array18 = array[0];
array18[0] = array17;
uint[] array19 = array[0];
array19[0] = array18;
uint[] array20 = array[0];
array20[1] = array19;
array[0][1] = array20;
uint num15 = AesEngine.SubWord(array20);
byte[] array21 = AesEngine.rcon;
uint num17;
uint num16 = num17 - 1U;
array[(int)num17][0] = array17;
array[(int)num17][0] = array18;
array[(int)num17][1] = array19;
uint[] array22 = array[(int)num17];
num17 += (uint)1;
array22[1] = array20;
while (num17 <= (uint)10)
{
}
int num18 = 0;
uint[] array23 = array[(int)num17];
uint num19 = AesEngine.Inv_Mcol(array23[num18]);
num18++;
array23[0] = num19;
num17 += (uint)1;
return array;
}
// Token: 0x0600B6C0 RID: 46784 RVA: 0x00281AF0 File Offset: 0x0027FCF0
[Token(Token = "0x600B6C0")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public AesEngine()
{
this.Reset();
}
// Token: 0x0600B6C1 RID: 46785 RVA: 0x00281B04 File Offset: 0x0027FD04
[Token(Token = "0x600B6C1")]
[Address(RVA = "0x1A60350", Offset = "0x1A5F150", VA = "0x181A60350", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B6C1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_5_49, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_4))))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CB4 RID: 7348
// (get) Token: 0x0600B6C2 RID: 46786 RVA: 0x00281B5C File Offset: 0x0027FD5C
[Token(Token = "0x17001CB4")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B6C2")]
[Address(RVA = "0x1A60AA0", Offset = "0x1A5F8A0", VA = "0x181A60AA0", Slot = "11")]
get
{
return "AES";
}
}
// Token: 0x17001CB5 RID: 7349
// (get) Token: 0x0600B6C3 RID: 46787 RVA: 0x00281B70 File Offset: 0x0027FD70
[Token(Token = "0x17001CB5")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B6C3")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B6C4 RID: 46788 RVA: 0x00281B80 File Offset: 0x0027FD80
[Token(Token = "0x600B6C4")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600B6C5 RID: 46789 RVA: 0x00281B90 File Offset: 0x0027FD90
[Token(Token = "0x600B6C5")]
[Address(RVA = "0x1A60630", Offset = "0x1A5F430", VA = "0x181A60630", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B6C5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B6C6 RID: 46790 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B6C6")]
[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: 0x0600B6C7 RID: 46791 RVA: 0x00281C08 File Offset: 0x0027FE08
[Token(Token = "0x600B6C7")]
[Address(RVA = "0x1A608F0", Offset = "0x1A5F6F0", VA = "0x181A608F0")]
private void UnPackBlock(byte[] bytes, int off)
{
}
// Token: 0x0600B6C8 RID: 46792 RVA: 0x00281C18 File Offset: 0x0027FE18
[Token(Token = "0x600B6C8")]
[Address(RVA = "0x1A605C0", Offset = "0x1A5F3C0", VA = "0x181A605C0")]
private void PackBlock(byte[] bytes, int off)
{
Ed25519.Encode32(this.C0, bytes, off);
Ed25519.Encode32(this.C1, bytes, off);
Ed25519.Encode32(this.C2, bytes, off);
Ed25519.Encode32(this.C3, bytes, off);
}
// Token: 0x0600B6C9 RID: 46793 RVA: 0x00281C5C File Offset: 0x0027FE5C
[Token(Token = "0x600B6C9")]
[Address(RVA = "0x1A5D9B0", Offset = "0x1A5C7B0", VA = "0x181A5D9B0")]
private void EncryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array = KW[0];
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
if (array > (uint)1)
{
uint[] t = AesEngine.T0;
int length3 = t.Length;
num2 = num4;
uint[] array2;
int length4 = array2.Length;
uint num5 = t[(int)num2];
num2 = num5;
uint num6 = t[(int)num2];
num2 = num6;
num = num2;
num2 = num3;
num6 = num2;
num2 = num4;
num5 = num2;
num2 = num;
uint num7 = t[(int)num2];
uint num8 = t[(int)num5];
uint num9 = t[(int)num6];
num = num3;
num2 = num4;
num9 = num2;
num2 = num;
num8 = num2;
uint num10 = t[(int)num2];
uint num11 = t[(int)num8];
uint num12 = t[(int)num9];
num2 = num12;
num12 = num;
num11 = num2;
uint num13 = t[(int)num3];
num = num13;
uint num14 = t[(int)num11];
uint num15 = t[(int)num12];
uint num16;
num16 += (uint)1;
num15 = num7;
num7 = num10;
num14 = num7;
uint num17 = t[(int)num14];
uint num18 = t[(int)num15];
num7 = num18;
num3 = num7;
num7 = num10;
num18 = num7;
num7 = num;
num17 = num7;
uint num19 = t[(int)num17];
uint num20 = t[(int)num18];
num7 = num;
num20 = num7;
num19 = num7;
uint num21 = t[(int)num19];
num7 = t[(int)num20];
}
uint[] t2 = AesEngine.T0;
int length5 = t2.Length;
num = num2;
uint num22 = t2[(int)num];
num2 = num3;
num = num2;
num2 = num4;
uint num23 = t2[(int)num2];
uint[] array3;
int length6 = array3.Length;
num2 = num;
uint num24 = t2[(int)num2];
num24 = num3;
uint num25 = t2[(int)num24];
num25 = num2;
uint num26 = t2[(int)num25];
uint num27 = t2[(int)num3];
uint num28;
num28 += (uint)1;
int length7 = AesEngine.S.Length;
int length8 = AesEngine.S.Length;
int length9 = AesEngine.S.Length;
byte[] array4 = AesEngine.S;
}
// Token: 0x0600B6CA RID: 46794 RVA: 0x00281F34 File Offset: 0x00280134
[Token(Token = "0x600B6CA")]
[Address(RVA = "0x1A5C6A0", Offset = "0x1A5B4A0", VA = "0x181A5C6A0")]
private void DecryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array;
int length2 = array.Length;
uint num = array[0];
uint num2 = array[1];
uint num3 = array[1];
if (array > (ulong)1L)
{
uint[] array2 = KW[array];
uint[] tinv = AesEngine.Tinv0;
int length3 = tinv.Length;
num3 = num2;
int length4 = array2.Length;
uint num4 = tinv[(int)num3];
uint num5 = tinv[(int)num3];
num3 = num5;
uint num6 = tinv[(int)num3];
num3 = num;
num6 = num3;
num5 = num3;
uint num7 = tinv[(int)num5];
uint num8 = tinv[(int)num6];
num3 = num8;
num = num2;
num8 = num3;
num3 = num;
num7 = num3;
uint num9 = tinv[(int)num7];
uint num10 = tinv[(int)num8];
num3 = num10;
num10 = num2;
num = tinv[(int)num];
uint num11 = tinv[(int)num9];
uint num12 = tinv[(int)num10];
num2 = num4;
num12 = num;
num11 = num;
uint num13 = tinv[(int)num11];
uint num14 = tinv[(int)num12];
num = num4;
num14 = num;
num13 = num;
uint num15 = tinv[(int)num];
uint num16 = tinv[(int)num13];
uint num17 = tinv[(int)num14];
num = num17;
num16 = num;
num = num4;
num17 = num;
num = tinv[(int)num16];
num = tinv[(int)num17];
}
uint[] array3 = KW[1];
uint[] tinv2 = AesEngine.Tinv0;
int length5 = tinv2.Length;
num = num3;
uint num18 = tinv2[(int)num];
num3 = num2;
num = num3;
uint num19 = tinv2[(int)num3];
int length6 = array3.Length;
num3 = num;
num19 = num3;
uint num20 = tinv2[(int)num19];
num3 = num2;
uint num21 = tinv2[(int)num3];
num3 = num20;
num21 = num2;
uint num22 = tinv2[(int)num21];
num22 = num3;
uint num23 = tinv2[(int)num22];
num20 = num23;
num22 = num2;
uint num24 = tinv2[(int)num22];
uint num25 = tinv2[(int)num22];
uint num26 = tinv2[(int)num];
int length7 = AesEngine.Si.Length;
byte[] si = AesEngine.Si;
num23 = num20;
int length8 = AesEngine.Si.Length;
byte b = AesEngine.Si[(int)num23];
}
// Token: 0x0600B6CB RID: 46795 RVA: 0x002821E4 File Offset: 0x002803E4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B6CB")]
[Address(RVA = "0x1A60960", Offset = "0x1A5F760", VA = "0x181A60960")]
static AesEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesEngine.rcon = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
AesEngine.T0 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
AesEngine.Tinv0 = array5;
}
// Token: 0x040073C8 RID: 29640
[Token(Token = "0x40073C8")]
private static readonly byte[] S;
// Token: 0x040073C9 RID: 29641
[Token(Token = "0x40073C9")]
private static readonly byte[] Si;
// Token: 0x040073CA RID: 29642
[Token(Token = "0x40073CA")]
private static readonly byte[] rcon;
// Token: 0x040073CB RID: 29643
[Token(Token = "0x40073CB")]
private static readonly uint[] T0;
// Token: 0x040073CC RID: 29644
[Token(Token = "0x40073CC")]
private static readonly uint[] Tinv0;
// Token: 0x040073CD RID: 29645
[Token(Token = "0x40073CD")]
private const uint m1 = 2155905152U;
// Token: 0x040073CE RID: 29646
[Token(Token = "0x40073CE")]
private const uint m2 = 2139062143U;
// Token: 0x040073CF RID: 29647
[Token(Token = "0x40073CF")]
private const uint m3 = 27U;
// Token: 0x040073D0 RID: 29648
[Token(Token = "0x40073D0")]
private const uint m4 = 3233857728U;
// Token: 0x040073D1 RID: 29649
[Token(Token = "0x40073D1")]
private const uint m5 = 1061109567U;
// Token: 0x040073D2 RID: 29650
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40073D2")]
private int ROUNDS;
// Token: 0x040073D3 RID: 29651
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40073D3")]
private uint[][] WorkingKey;
// Token: 0x040073D4 RID: 29652
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40073D4")]
private uint C0;
// Token: 0x040073D5 RID: 29653
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40073D5")]
private uint C1;
// Token: 0x040073D6 RID: 29654
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40073D6")]
private uint C2;
// Token: 0x040073D7 RID: 29655
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40073D7")]
private uint C3;
// Token: 0x040073D8 RID: 29656
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40073D8")]
private bool forEncryption;
// Token: 0x040073D9 RID: 29657
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40073D9")]
private byte[] s;
// Token: 0x040073DA RID: 29658
[Token(Token = "0x40073DA")]
private const int BLOCK_SIZE = 16;
}
}
@@ -0,0 +1,673 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C81 RID: 7297
[Token(Token = "0x2001C81")]
[Obsolete]
public class AesFastEngine : IBlockCipher
{
// Token: 0x0600B6CC RID: 46796 RVA: 0x00282280 File Offset: 0x00280480
[Token(Token = "0x600B6CC")]
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
private static uint Shift(uint r, int shift)
{
return r;
}
// Token: 0x0600B6CD RID: 46797 RVA: 0x00282290 File Offset: 0x00280490
[Token(Token = "0x600B6CD")]
[Address(RVA = "0x1A5ED00", Offset = "0x1A5DB00", VA = "0x181A5ED00")]
private static uint FFmulX(uint x)
{
/*
An exception occurred when decompiling this method (0600B6CD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::FFmulX(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
}
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: 0x0600B6CE RID: 46798 RVA: 0x002822A4 File Offset: 0x002804A4
[Token(Token = "0x600B6CE")]
[Address(RVA = "0x1A5ECD0", Offset = "0x1A5DAD0", VA = "0x181A5ECD0")]
private static uint FFmulX2(uint x)
{
return x;
}
// Token: 0x0600B6CF RID: 46799 RVA: 0x002822B4 File Offset: 0x002804B4
[Token(Token = "0x600B6CF")]
[Address(RVA = "0x1A64690", Offset = "0x1A63490", VA = "0x181A64690")]
private static uint Inv_Mcol(uint x)
{
return x;
}
// Token: 0x0600B6D0 RID: 46800 RVA: 0x002822C4 File Offset: 0x002804C4
[Token(Token = "0x600B6D0")]
[Address(RVA = "0x1A648D0", Offset = "0x1A636D0", VA = "0x181A648D0")]
private static uint SubWord(uint x)
{
int length = AesFastEngine.S.Length;
throw new NullReferenceException();
}
// Token: 0x0600B6D1 RID: 46801 RVA: 0x002822E4 File Offset: 0x002804E4
[Token(Token = "0x600B6D1")]
[Address(RVA = "0x1A62F50", Offset = "0x1A61D50", VA = "0x181A62F50")]
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
{
uint[][] array;
int i;
for (;;)
{
if (key.Length == 7)
{
this.ROUNDS = key;
array = new uint[key][];
i = 0;
uint[] array2 = new uint[4];
if (array2 != 0)
{
}
i++;
array[0] = array2;
while (i <= this.ROUNDS)
{
}
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_3FB;
}
if (typeof(uint[]).TypeHandle != 0)
{
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_1E5;
}
uint num;
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
{
break;
}
}
}
}
uint[] array3 = array[0];
array3[0] = (uint)i;
uint[] array4 = array[0];
array4[0] = array3;
uint[] array5 = array[0];
array5[1] = array4;
uint[] array6 = array[0];
array6[1] = array5;
uint[] array7 = array[1];
array7[0] = array6;
uint[] array8 = array[1];
array8[0] = array7;
uint[] array9 = array[1];
array9[1] = array8;
array[1][1] = array9;
uint num2;
num2 += num2;
uint num3 = AesFastEngine.SubWord(array9);
ulong num4;
array[(int)num4][0] = i;
array[(int)num4][0] = array3;
array[(int)num4][1] = array4;
array[(int)num4][1] = array5;
uint num5 = AesFastEngine.SubWord(array5);
ulong num6 = num4 + 1UL;
array[(int)num6][0] = array6;
array[(int)num6][0] = array7;
array[(int)num6][1] = array8;
array[(int)num6][1] = array9;
uint num7 = AesFastEngine.SubWord(array9);
array[14][0] = (uint)i;
array[14][0] = array3;
array[14][1] = array4;
uint[] array10 = array[14];
array10[1] = array5;
IL_1E5:
uint[] array11 = array[0];
array11[0] = array10;
uint[] array12 = array[0];
array12[0] = array11;
uint[] array13 = array[0];
array13[1] = array12;
uint[] array14 = array[0];
array14[1] = array13;
uint[] array15 = array[1];
array15[0] = array14;
array[1][0] = array15;
uint num8 = AesFastEngine.SubWord(array15);
array[1][1] = num8;
array[1][1] = array11;
array[2][0] = array12;
array[2][0] = array13;
array[2][1] = array14;
array[2][1] = array15;
ulong num9;
num9 += num9;
uint num10 = AesFastEngine.SubWord(array15);
uint num11;
array[(int)num11][0] = num8;
array[(int)num11][0] = array11;
array[(int)num11][1] = array12;
array[(int)num11][1] = array13;
uint num12 = num11 + 1U;
array[(int)num12][0] = array14;
array[(int)num12][0] = array15;
num9 += num9;
uint num13 = AesFastEngine.SubWord(array15);
array[(int)num12][1] = num8;
array[(int)num12][1] = array11;
num11 += (uint)2;
array[(int)num11][0] = array12;
array[(int)num11][0] = array13;
array[(int)num11][1] = array14;
uint[] array16 = array[(int)num11];
num11 += (uint)3;
array16[1] = array15;
uint num14 = AesFastEngine.SubWord(array15);
array[12][0] = num8;
array[12][0] = array11;
array[12][1] = array12;
uint[] array17 = array[12];
array17[1] = array13;
IL_3FB:
uint[] array18 = array[0];
array18[0] = array17;
uint[] array19 = array[0];
array19[0] = array18;
uint[] array20 = array[0];
array20[1] = array19;
array[0][1] = array20;
uint num15 = AesFastEngine.SubWord(array20);
byte[] array21 = AesFastEngine.rcon;
uint num17;
uint num16 = num17 - 1U;
array[(int)num17][0] = array17;
array[(int)num17][0] = array18;
array[(int)num17][1] = array19;
uint[] array22 = array[(int)num17];
num17 += (uint)1;
array22[1] = array20;
while (num17 <= (uint)10)
{
}
int num18 = 0;
uint[] array23 = array[(int)num17];
uint num19 = AesFastEngine.Inv_Mcol(array23[num18]);
num18++;
array23[0] = num19;
num17 += (uint)1;
return array;
}
// Token: 0x0600B6D2 RID: 46802 RVA: 0x002827D8 File Offset: 0x002809D8
[Token(Token = "0x600B6D2")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public AesFastEngine()
{
this.Reset();
}
// Token: 0x0600B6D3 RID: 46803 RVA: 0x002827EC File Offset: 0x002809EC
[Token(Token = "0x600B6D3")]
[Address(RVA = "0x1A64580", Offset = "0x1A63380", VA = "0x181A64580", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B6D3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_22:
stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3))))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CB6 RID: 7350
// (get) Token: 0x0600B6D4 RID: 46804 RVA: 0x0028282C File Offset: 0x00280A2C
[Token(Token = "0x17001CB6")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B6D4")]
[Address(RVA = "0x1A64C80", Offset = "0x1A63A80", VA = "0x181A64C80", Slot = "11")]
get
{
return "AES";
}
}
// Token: 0x17001CB7 RID: 7351
// (get) Token: 0x0600B6D5 RID: 46805 RVA: 0x00282840 File Offset: 0x00280A40
[Token(Token = "0x17001CB7")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B6D5")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B6D6 RID: 46806 RVA: 0x00282850 File Offset: 0x00280A50
[Token(Token = "0x600B6D6")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600B6D7 RID: 46807 RVA: 0x00282860 File Offset: 0x00280A60
[Token(Token = "0x600B6D7")]
[Address(RVA = "0x1A64750", Offset = "0x1A63550", VA = "0x181A64750", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B6D7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesFastEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B6D8 RID: 46808 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B6D8")]
[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: 0x0600B6D9 RID: 46809 RVA: 0x002828D8 File Offset: 0x00280AD8
[Token(Token = "0x600B6D9")]
[Address(RVA = "0x1A608F0", Offset = "0x1A5F6F0", VA = "0x181A608F0")]
private void UnPackBlock(byte[] bytes, int off)
{
}
// Token: 0x0600B6DA RID: 46810 RVA: 0x002828E8 File Offset: 0x00280AE8
[Token(Token = "0x600B6DA")]
[Address(RVA = "0x1A605C0", Offset = "0x1A5F3C0", VA = "0x181A605C0")]
private void PackBlock(byte[] bytes, int off)
{
Ed25519.Encode32(this.C0, bytes, off);
Ed25519.Encode32(this.C1, bytes, off);
Ed25519.Encode32(this.C2, bytes, off);
Ed25519.Encode32(this.C3, bytes, off);
}
// Token: 0x0600B6DB RID: 46811 RVA: 0x0028292C File Offset: 0x00280B2C
[Token(Token = "0x600B6DB")]
[Address(RVA = "0x1A61D00", Offset = "0x1A60B00", VA = "0x181A61D00")]
private void EncryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array = KW[0];
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
if (array > (uint)1)
{
uint[] t = AesFastEngine.T0;
int length3 = t.Length;
uint[] t2 = AesFastEngine.T1;
int length4 = t2.Length;
uint[] t3 = AesFastEngine.T2;
int length5 = t3.Length;
num2 = num3;
num = num2;
uint[] t4 = AesFastEngine.T3;
int length6 = t4.Length;
uint[] array2;
int length7 = array2.Length;
num2 = num;
uint num5 = t4[(int)num2];
num2 = num4;
num = num2;
uint num6 = t4[(int)num];
num2 = num4;
num = num2;
int length8 = t4.Length;
uint num7 = t4[(int)num];
int length9 = t.Length;
int length10 = t3.Length;
uint num8 = t4[(int)num3];
uint num9;
num9 += (uint)1;
int length11 = t2.Length;
num5 = num6;
num4 = num5;
int length12 = t4.Length;
num5 = num4;
uint num10 = t3[(int)num5];
int length13 = t.Length;
num5 = num8;
uint num11 = t3[(int)num5];
num5 = num6;
uint num12 = t2[(int)num5];
num = num5;
}
uint[] t5 = AesFastEngine.T0;
int length14 = t5.Length;
uint num13 = t5[(int)num];
uint[] t6 = AesFastEngine.T1;
int length15 = t6.Length;
num13 = num2;
uint num14 = t6[(int)num13];
uint[] t7 = AesFastEngine.T2;
int length16 = t7.Length;
num14 = num3;
uint[] t8 = AesFastEngine.T3;
uint num15 = t7[(int)num14];
int length17 = t8.Length;
num15 = num4;
uint num16 = t8[(int)num15];
uint[] array3;
int length18 = array3.Length;
uint num17 = array3[0];
num16 = num2;
uint num18 = t5[(int)num16];
num16 = num3;
uint num19 = t6[(int)num16];
num19 = num4;
num16 = num19;
uint num20 = t7[(int)num16];
uint num21 = t8[(int)num];
uint num22 = array3[0];
num21 = num3;
uint num23 = t5[(int)num21];
num23 = num4;
num21 = num23;
uint num24 = t6[(int)num21];
num = num2;
int length19 = t8.Length;
uint num25 = t8[(int)num];
uint num26 = array3[1];
uint num27 = array3[1];
uint num28;
num28 += (uint)1;
int length20 = AesFastEngine.S.Length;
int length21 = AesFastEngine.S.Length;
int length22 = AesFastEngine.S.Length;
int length23 = AesFastEngine.S.Length;
}
// Token: 0x0600B6DC RID: 46812 RVA: 0x00282C30 File Offset: 0x00280E30
[Token(Token = "0x600B6DC")]
[Address(RVA = "0x1A60AD0", Offset = "0x1A5F8D0", VA = "0x181A60AD0")]
private void DecryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array;
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
if (array > (ulong)1L)
{
uint[] array2 = KW[array];
uint[] tinv = AesFastEngine.Tinv0;
int length3 = tinv.Length;
int length4 = AesFastEngine.Tinv1.Length;
uint[] tinv2 = AesFastEngine.Tinv2;
int length5 = tinv2.Length;
num = num3;
uint[] tinv3 = AesFastEngine.Tinv3;
int length6 = tinv3.Length;
int length7 = array2.Length;
num3 = num;
uint num4 = tinv3[(int)num3];
num3 = num;
num = num3;
uint num5 = tinv3[(int)num];
num3 = num2;
int length8 = tinv3.Length;
num = num3;
uint num6 = tinv3[(int)num];
int length9 = tinv.Length;
int length10 = tinv2.Length;
uint num7 = tinv3[(int)num];
int length11 = tinv3.Length;
uint num8 = tinv3[(int)num5];
num4 = num7;
num8 = num4;
uint num9 = tinv2[(int)num8];
num3 = num7;
}
uint[] array3 = KW[1];
uint[] tinv4 = AesFastEngine.Tinv0;
int length12 = tinv4.Length;
uint num10 = tinv4[(int)num];
uint[] tinv5 = AesFastEngine.Tinv1;
int length13 = tinv5.Length;
num10 = num3;
uint num11 = tinv5[(int)num10];
uint[] tinv6 = AesFastEngine.Tinv2;
int length14 = tinv6.Length;
uint[] tinv7 = AesFastEngine.Tinv3;
uint num12 = tinv6[(int)num11];
num12 = num2;
uint num13 = tinv7[(int)num12];
int length15 = array3.Length;
uint num14 = array3[0];
num13 = num2;
uint num15 = tinv4[(int)num13];
num13 = num;
uint num16 = tinv5[(int)num13];
num16 = num3;
num13 = num16;
uint num17 = tinv6[(int)num13];
uint num18 = tinv7[(int)num17];
uint num19 = array3[0];
uint num20 = tinv4[(int)num18];
num18 = num2;
uint num21 = tinv5[(int)num18];
int length16 = tinv7.Length;
num = num3;
uint num22 = tinv7[(int)num];
uint num23 = array3[1];
uint num24 = array3[1];
int length17 = AesFastEngine.Si.Length;
int length18 = AesFastEngine.Si.Length;
int length19 = AesFastEngine.Si.Length;
int length20 = AesFastEngine.Si.Length;
}
// Token: 0x0600B6DD RID: 46813 RVA: 0x00282EEC File Offset: 0x002810EC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B6DD")]
[Address(RVA = "0x1A649F0", Offset = "0x1A637F0", VA = "0x181A649F0")]
static AesFastEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesFastEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesFastEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesFastEngine.rcon = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B68637EF60D499620B99E336C59E4865FFC4C5D7).FieldHandle);
AesFastEngine.T0 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.102C522344FCAC1545BDA50C0FC675C502FFEC53).FieldHandle);
AesFastEngine.T1 = array5;
uint[] array6 = new uint[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.29EC5E8FCA12DB9EC0B5E6D2DE67B624D2E2372C).FieldHandle);
AesFastEngine.T2 = array6;
uint[] array7 = new uint[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.95CA85749ADCFBF9A2B82C0381DBCF95D175524C).FieldHandle);
AesFastEngine.T3 = array7;
uint[] array8 = new uint[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.1AFB455399A50580CF1039188ABA6BE82F309543).FieldHandle);
AesFastEngine.Tinv0 = array8;
uint[] array9 = new uint[256];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.D9C221237B647EC215A7BCDED447349810E6BF9C).FieldHandle);
AesFastEngine.Tinv1 = array9;
uint[] array10 = new uint[256];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.E43F6BA634642FB90FEEE1A8F9905E957741960C).FieldHandle);
AesFastEngine.Tinv2 = array10;
uint[] array11 = new uint[256];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.04D2A79C8A779AFAA779125335E9334C245EBB46).FieldHandle);
AesFastEngine.Tinv3 = array11;
}
// Token: 0x040073DB RID: 29659
[Token(Token = "0x40073DB")]
private static readonly byte[] S;
// Token: 0x040073DC RID: 29660
[Token(Token = "0x40073DC")]
private static readonly byte[] Si;
// Token: 0x040073DD RID: 29661
[Token(Token = "0x40073DD")]
private static readonly byte[] rcon;
// Token: 0x040073DE RID: 29662
[Token(Token = "0x40073DE")]
private static readonly uint[] T0;
// Token: 0x040073DF RID: 29663
[Token(Token = "0x40073DF")]
private static readonly uint[] T1;
// Token: 0x040073E0 RID: 29664
[Token(Token = "0x40073E0")]
private static readonly uint[] T2;
// Token: 0x040073E1 RID: 29665
[Token(Token = "0x40073E1")]
private static readonly uint[] T3;
// Token: 0x040073E2 RID: 29666
[Token(Token = "0x40073E2")]
private static readonly uint[] Tinv0;
// Token: 0x040073E3 RID: 29667
[Token(Token = "0x40073E3")]
private static readonly uint[] Tinv1;
// Token: 0x040073E4 RID: 29668
[Token(Token = "0x40073E4")]
private static readonly uint[] Tinv2;
// Token: 0x040073E5 RID: 29669
[Token(Token = "0x40073E5")]
private static readonly uint[] Tinv3;
// Token: 0x040073E6 RID: 29670
[Token(Token = "0x40073E6")]
private const uint m1 = 2155905152U;
// Token: 0x040073E7 RID: 29671
[Token(Token = "0x40073E7")]
private const uint m2 = 2139062143U;
// Token: 0x040073E8 RID: 29672
[Token(Token = "0x40073E8")]
private const uint m3 = 27U;
// Token: 0x040073E9 RID: 29673
[Token(Token = "0x40073E9")]
private const uint m4 = 3233857728U;
// Token: 0x040073EA RID: 29674
[Token(Token = "0x40073EA")]
private const uint m5 = 1061109567U;
// Token: 0x040073EB RID: 29675
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40073EB")]
private int ROUNDS;
// Token: 0x040073EC RID: 29676
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40073EC")]
private uint[][] WorkingKey;
// Token: 0x040073ED RID: 29677
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40073ED")]
private uint C0;
// Token: 0x040073EE RID: 29678
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40073EE")]
private uint C1;
// Token: 0x040073EF RID: 29679
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40073EF")]
private uint C2;
// Token: 0x040073F0 RID: 29680
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40073F0")]
private uint C3;
// Token: 0x040073F1 RID: 29681
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40073F1")]
private bool forEncryption;
// Token: 0x040073F2 RID: 29682
[Token(Token = "0x40073F2")]
private const int BLOCK_SIZE = 16;
}
}
@@ -0,0 +1,580 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C82 RID: 7298
[Token(Token = "0x2001C82")]
public class AesLightEngine : IBlockCipher
{
// Token: 0x0600B6DE RID: 46814 RVA: 0x00283040 File Offset: 0x00281240
[Token(Token = "0x600B6DE")]
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
private static uint Shift(uint r, int shift)
{
return r;
}
// Token: 0x0600B6DF RID: 46815 RVA: 0x00283050 File Offset: 0x00281250
[Token(Token = "0x600B6DF")]
[Address(RVA = "0x1A5ED00", Offset = "0x1A5DB00", VA = "0x181A5ED00")]
private static uint FFmulX(uint x)
{
/*
An exception occurred when decompiling this method (0600B6DF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::FFmulX(System.UInt32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_05, mul:uint32[exp:int64](ldloc:uint32(x), conv.u4:uint32(ldc.i4:int32[exp:uint32](27))))
}
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: 0x0600B6E0 RID: 46816 RVA: 0x00283064 File Offset: 0x00281264
[Token(Token = "0x600B6E0")]
[Address(RVA = "0x1A5ECD0", Offset = "0x1A5DAD0", VA = "0x181A5ECD0")]
private static uint FFmulX2(uint x)
{
return x;
}
// Token: 0x0600B6E1 RID: 46817 RVA: 0x00283074 File Offset: 0x00281274
[Token(Token = "0x600B6E1")]
[Address(RVA = "0x1A68B10", Offset = "0x1A67910", VA = "0x181A68B10")]
private static uint Mcol(uint x)
{
return x;
}
// Token: 0x0600B6E2 RID: 46818 RVA: 0x00283084 File Offset: 0x00281284
[Token(Token = "0x600B6E2")]
[Address(RVA = "0x1A68A50", Offset = "0x1A67850", VA = "0x181A68A50")]
private static uint Inv_Mcol(uint x)
{
return x;
}
// Token: 0x0600B6E3 RID: 46819 RVA: 0x00283094 File Offset: 0x00281294
[Token(Token = "0x600B6E3")]
[Address(RVA = "0x1A68D20", Offset = "0x1A67B20", VA = "0x181A68D20")]
private static uint SubWord(uint x)
{
int length = AesLightEngine.S.Length;
throw new NullReferenceException();
}
// Token: 0x0600B6E4 RID: 46820 RVA: 0x002830B4 File Offset: 0x002812B4
[Token(Token = "0x600B6E4")]
[Address(RVA = "0x1A67310", Offset = "0x1A66110", VA = "0x181A67310")]
private uint[][] GenerateWorkingKey(byte[] key, bool forEncryption)
{
uint[][] array;
int i;
for (;;)
{
if (key.Length == 7)
{
this.ROUNDS = key;
array = new uint[key][];
i = 0;
uint[] array2 = new uint[4];
if (array2 != 0)
{
}
i++;
array[0] = array2;
while (i <= this.rcon)
{
}
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_3FB;
}
if (typeof(uint[]).TypeHandle != 0)
{
if (typeof(uint[]).TypeHandle == 0)
{
goto IL_1E5;
}
uint num;
if (typeof(uint[]).TypeHandle != 0 && typeof(uint[]).TypeHandle == num)
{
break;
}
}
}
}
uint[] array3 = array[0];
array3[0] = (uint)i;
uint[] array4 = array[0];
array4[0] = array3;
uint[] array5 = array[0];
array5[1] = array4;
uint[] array6 = array[0];
array6[1] = array5;
uint[] array7 = array[1];
array7[0] = array6;
uint[] array8 = array[1];
array8[0] = array7;
uint[] array9 = array[1];
array9[1] = array8;
array[1][1] = array9;
uint num2;
num2 += num2;
uint num3 = AesLightEngine.SubWord(array9);
ulong num4;
array[(int)num4][0] = i;
array[(int)num4][0] = array3;
array[(int)num4][1] = array4;
array[(int)num4][1] = array5;
uint num5 = AesLightEngine.SubWord(array5);
ulong num6 = num4 + 1UL;
array[(int)num6][0] = array6;
array[(int)num6][0] = array7;
array[(int)num6][1] = array8;
array[(int)num6][1] = array9;
uint num7 = AesLightEngine.SubWord(array9);
array[14][0] = (uint)i;
array[14][0] = array3;
array[14][1] = array4;
uint[] array10 = array[14];
array10[1] = array5;
IL_1E5:
uint[] array11 = array[0];
array11[0] = array10;
uint[] array12 = array[0];
array12[0] = array11;
uint[] array13 = array[0];
array13[1] = array12;
uint[] array14 = array[0];
array14[1] = array13;
uint[] array15 = array[1];
array15[0] = array14;
array[1][0] = array15;
uint num8 = AesLightEngine.SubWord(array15);
array[1][1] = num8;
array[1][1] = array11;
array[2][0] = array12;
array[2][0] = array13;
array[2][1] = array14;
array[2][1] = array15;
ulong num9;
num9 += num9;
uint num10 = AesLightEngine.SubWord(array15);
uint num11;
array[(int)num11][0] = num8;
array[(int)num11][0] = array11;
array[(int)num11][1] = array12;
array[(int)num11][1] = array13;
uint num12 = num11 + 1U;
array[(int)num12][0] = array14;
array[(int)num12][0] = array15;
num9 += num9;
uint num13 = AesLightEngine.SubWord(array15);
array[(int)num12][1] = num8;
array[(int)num12][1] = array11;
num11 += (uint)2;
array[(int)num11][0] = array12;
array[(int)num11][0] = array13;
array[(int)num11][1] = array14;
uint[] array16 = array[(int)num11];
num11 += (uint)3;
array16[1] = array15;
uint num14 = AesLightEngine.SubWord(array15);
array[12][0] = num8;
array[12][0] = array11;
array[12][1] = array12;
uint[] array17 = array[12];
array17[1] = array13;
IL_3FB:
uint[] array18 = array[0];
array18[0] = array17;
uint[] array19 = array[0];
array19[0] = array18;
uint[] array20 = array[0];
array20[1] = array19;
array[0][1] = array20;
uint num15 = AesLightEngine.SubWord(array20);
byte[] array21 = AesLightEngine.rcon;
uint num17;
uint num16 = num17 - 1U;
array[(int)num17][0] = array17;
array[(int)num17][0] = array18;
array[(int)num17][1] = array19;
uint[] array22 = array[(int)num17];
num17 += (uint)1;
array22[1] = array20;
while (num17 <= (uint)10)
{
}
int num18 = 0;
uint[] array23 = array[(int)num17];
uint num19 = AesLightEngine.Inv_Mcol(array23[num18]);
num18++;
array23[0] = num19;
num17 += (uint)1;
return array;
}
// Token: 0x0600B6E5 RID: 46821 RVA: 0x002835A8 File Offset: 0x002817A8
[Token(Token = "0x600B6E5")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public AesLightEngine()
{
this.Reset();
}
// Token: 0x0600B6E6 RID: 46822 RVA: 0x002835BC File Offset: 0x002817BC
[Token(Token = "0x600B6E6")]
[Address(RVA = "0x1A68940", Offset = "0x1A67740", VA = "0x181A68940", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B6E6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_22:
stloc:ArgumentException(var_4_32, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to AES init - "), ldloc:string(var_3))))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CB8 RID: 7352
// (get) Token: 0x0600B6E7 RID: 46823 RVA: 0x002835FC File Offset: 0x002817FC
[Token(Token = "0x17001CB8")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B6E7")]
[Address(RVA = "0x1A68F10", Offset = "0x1A67D10", VA = "0x181A68F10", Slot = "11")]
get
{
return "AES";
}
}
// Token: 0x17001CB9 RID: 7353
// (get) Token: 0x0600B6E8 RID: 46824 RVA: 0x00283610 File Offset: 0x00281810
[Token(Token = "0x17001CB9")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B6E8")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B6E9 RID: 46825 RVA: 0x00283620 File Offset: 0x00281820
[Token(Token = "0x600B6E9")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600B6EA RID: 46826 RVA: 0x00283630 File Offset: 0x00281830
[Token(Token = "0x600B6EA")]
[Address(RVA = "0x1A68BA0", Offset = "0x1A679A0", VA = "0x181A68BA0", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B6EA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.AesLightEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5D:
stloc:InvalidOperationException(var_7_67, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AES 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B6EB RID: 46827 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B6EB")]
[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: 0x0600B6EC RID: 46828 RVA: 0x002836A8 File Offset: 0x002818A8
[Token(Token = "0x600B6EC")]
[Address(RVA = "0x1A608F0", Offset = "0x1A5F6F0", VA = "0x181A608F0")]
private void UnPackBlock(byte[] bytes, int off)
{
}
// Token: 0x0600B6ED RID: 46829 RVA: 0x002836B8 File Offset: 0x002818B8
[Token(Token = "0x600B6ED")]
[Address(RVA = "0x1A605C0", Offset = "0x1A5F3C0", VA = "0x181A605C0")]
private void PackBlock(byte[] bytes, int off)
{
Ed25519.Encode32(this.C0, bytes, off);
Ed25519.Encode32(this.C1, bytes, off);
Ed25519.Encode32(this.C2, bytes, off);
Ed25519.Encode32(this.C3, bytes, off);
}
// Token: 0x0600B6EE RID: 46830 RVA: 0x002836FC File Offset: 0x002818FC
[Token(Token = "0x600B6EE")]
[Address(RVA = "0x1A65FD0", Offset = "0x1A64DD0", VA = "0x181A65FD0")]
private void EncryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array = KW[0];
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
if (array > (uint)1)
{
int length3 = AesLightEngine.S.Length;
num2 = num4;
byte b;
uint num5 = AesLightEngine.Mcol((uint)b);
uint[] array2;
uint num6 = array2[0];
int length4 = AesLightEngine.S.Length;
byte b2;
uint num7 = AesLightEngine.Mcol((uint)b2);
uint num8 = array2[0];
int length5 = AesLightEngine.S.Length;
num4 = num2;
byte b3;
uint num9 = AesLightEngine.Mcol((uint)b3);
uint num10 = array2[1];
int length6 = AesLightEngine.S.Length;
byte b4;
uint num11 = AesLightEngine.Mcol((uint)b4);
uint num12 = array2[1];
int length7 = AesLightEngine.S.Length;
byte b5;
uint num13 = AesLightEngine.Mcol((uint)b5);
int length8 = AesLightEngine.S.Length;
byte b6;
uint num14 = AesLightEngine.Mcol((uint)b6);
int length9 = AesLightEngine.S.Length;
byte b7;
uint num15 = AesLightEngine.Mcol((uint)b7);
int length10 = AesLightEngine.S.Length;
byte b8;
uint num16 = AesLightEngine.Mcol((uint)b8);
}
int length11 = AesLightEngine.S.Length;
byte b9;
uint num17 = AesLightEngine.Mcol((uint)b9);
uint[] array3;
uint num18 = array3[0];
int length12 = AesLightEngine.S.Length;
byte b10;
uint num19 = AesLightEngine.Mcol((uint)b10);
uint num20 = array3[0];
int length13 = AesLightEngine.S.Length;
byte b11;
uint num21 = AesLightEngine.Mcol((uint)b11);
uint num22 = array3[1];
int length14 = AesLightEngine.S.Length;
byte b12;
uint num23 = AesLightEngine.Mcol((uint)b12);
uint num24 = array3[1];
uint num25;
num25 += (uint)1;
int length15 = AesLightEngine.S.Length;
int length16 = AesLightEngine.S.Length;
int length17 = AesLightEngine.S.Length;
int length18 = AesLightEngine.S.Length;
}
// Token: 0x0600B6EF RID: 46831 RVA: 0x0028397C File Offset: 0x00281B7C
[Token(Token = "0x600B6EF")]
[Address(RVA = "0x1A64CB0", Offset = "0x1A63AB0", VA = "0x181A64CB0")]
private void DecryptBlock(uint[][] KW)
{
int length = KW.Length;
uint[] array;
int length2 = array.Length;
uint num = array[0];
uint num2 = array[0];
uint num3 = array[1];
uint num4 = array[1];
uint[] array2 = KW[array];
int length3 = AesLightEngine.Si.Length;
byte b;
uint num5 = AesLightEngine.Inv_Mcol((uint)b);
uint num6 = array2[0];
int length4 = AesLightEngine.Si.Length;
byte b2;
uint num7 = AesLightEngine.Inv_Mcol((uint)b2);
uint num8 = array2[0];
int length5 = AesLightEngine.Si.Length;
byte b3;
uint num9 = AesLightEngine.Inv_Mcol((uint)b3);
uint num10 = array2[1];
int length6 = AesLightEngine.Si.Length;
byte b4;
uint num11 = AesLightEngine.Inv_Mcol((uint)b4);
uint num12 = array2[1];
int length7 = AesLightEngine.Si.Length;
byte b5;
uint num13 = AesLightEngine.Inv_Mcol((uint)b5);
int length8 = AesLightEngine.Si.Length;
byte b6;
uint num14 = AesLightEngine.Inv_Mcol((uint)b6);
int length9 = AesLightEngine.Si.Length;
byte b7;
uint num15 = AesLightEngine.Inv_Mcol((uint)b7);
int length10 = AesLightEngine.Si.Length;
byte b8;
uint num16 = AesLightEngine.Inv_Mcol((uint)b8);
uint[] array3 = KW[1];
int length11 = AesLightEngine.Si.Length;
byte b9;
uint num17 = AesLightEngine.Inv_Mcol((uint)b9);
uint num18 = array3[0];
int length12 = AesLightEngine.Si.Length;
byte b10;
uint num19 = AesLightEngine.Inv_Mcol((uint)b10);
uint num20 = array3[0];
int length13 = AesLightEngine.Si.Length;
byte b11;
uint num21 = AesLightEngine.Inv_Mcol((uint)b11);
uint num22 = array3[1];
int length14 = AesLightEngine.Si.Length;
byte b12;
uint num23 = AesLightEngine.Inv_Mcol((uint)b12);
uint num24 = array3[1];
int length15 = AesLightEngine.Si.Length;
int length16 = AesLightEngine.Si.Length;
int length17 = AesLightEngine.Si.Length;
int length18 = AesLightEngine.Si.Length;
}
// Token: 0x0600B6F0 RID: 46832 RVA: 0x00283BF4 File Offset: 0x00281DF4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B6F0")]
[Address(RVA = "0x1A68E40", Offset = "0x1A67C40", VA = "0x181A68E40")]
static AesLightEngine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.8F22C9ECE1331718CBD268A9BBFD2F5E451441E3).FieldHandle);
AesLightEngine.S = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.0C4110BC17D746F018F47B49E0EB0D6590F69939).FieldHandle);
AesLightEngine.Si = array2;
byte[] array3 = new byte[30];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.B8DB0CB599EDD82A386D1A154FB3EB9235513DAD).FieldHandle);
AesLightEngine.rcon = array3;
}
// Token: 0x040073F3 RID: 29683
[Token(Token = "0x40073F3")]
private static readonly byte[] S;
// Token: 0x040073F4 RID: 29684
[Token(Token = "0x40073F4")]
private static readonly byte[] Si;
// Token: 0x040073F5 RID: 29685
[Token(Token = "0x40073F5")]
private static readonly byte[] rcon;
// Token: 0x040073F6 RID: 29686
[Token(Token = "0x40073F6")]
private const uint m1 = 2155905152U;
// Token: 0x040073F7 RID: 29687
[Token(Token = "0x40073F7")]
private const uint m2 = 2139062143U;
// Token: 0x040073F8 RID: 29688
[Token(Token = "0x40073F8")]
private const uint m3 = 27U;
// Token: 0x040073F9 RID: 29689
[Token(Token = "0x40073F9")]
private const uint m4 = 3233857728U;
// Token: 0x040073FA RID: 29690
[Token(Token = "0x40073FA")]
private const uint m5 = 1061109567U;
// Token: 0x040073FB RID: 29691
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40073FB")]
private int ROUNDS;
// Token: 0x040073FC RID: 29692
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40073FC")]
private uint[][] WorkingKey;
// Token: 0x040073FD RID: 29693
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40073FD")]
private uint C0;
// Token: 0x040073FE RID: 29694
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40073FE")]
private uint C1;
// Token: 0x040073FF RID: 29695
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40073FF")]
private uint C2;
// Token: 0x04007400 RID: 29696
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4007400")]
private uint C3;
// Token: 0x04007401 RID: 29697
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007401")]
private bool forEncryption;
// Token: 0x04007402 RID: 29698
[Token(Token = "0x4007402")]
private const int BLOCK_SIZE = 16;
}
}
@@ -0,0 +1,20 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C83 RID: 7299
[Token(Token = "0x2001C83")]
public class AesWrapEngine : Rfc3394WrapEngine
{
// Token: 0x0600B6F1 RID: 46833 RVA: 0x00283C54 File Offset: 0x00281E54
[Token(Token = "0x600B6F1")]
[Address(RVA = "0x1A68F40", Offset = "0x1A67D40", VA = "0x181A68F40")]
public AesWrapEngine()
{
AesEngine aesEngine;
aesEngine.Reset();
base..ctor(aesEngine);
}
}
}
@@ -0,0 +1,375 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C84 RID: 7300
[Token(Token = "0x2001C84")]
public sealed class BlowfishEngine : IBlockCipher
{
// Token: 0x0600B6F2 RID: 46834 RVA: 0x00283C70 File Offset: 0x00281E70
[Token(Token = "0x600B6F2")]
[Address(RVA = "0x1A69EB0", Offset = "0x1A68CB0", VA = "0x181A69EB0")]
public BlowfishEngine()
{
this.Reset();
uint[] array = new uint[BlowfishEngine.SBOX_SK];
this.S0 = array;
uint[] array2 = new uint[BlowfishEngine.SBOX_SK];
this.S1 = array2;
uint[] array3 = new uint[BlowfishEngine.SBOX_SK];
this.S2 = array3;
uint[] array4 = new uint[BlowfishEngine.SBOX_SK];
this.S3 = array4;
uint[] array5 = new uint[BlowfishEngine.P_SZ];
this.P = array5;
}
// Token: 0x0600B6F3 RID: 46835 RVA: 0x00283CE0 File Offset: 0x00281EE0
[Token(Token = "0x600B6F3")]
[Address(RVA = "0x1A69400", Offset = "0x1A68200", VA = "0x181A69400", Slot = "5")]
public void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B6F3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.BlowfishEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2C:
stloc:ArgumentException(var_5_3D, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to Blowfish init - "), ldloc:string(var_4))))
}
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: 0x17001CBA RID: 7354
// (get) Token: 0x0600B6F4 RID: 46836 RVA: 0x00283D2C File Offset: 0x00281F2C
[Token(Token = "0x17001CBA")]
public string AlgorithmName
{
[Token(Token = "0x600B6F4")]
[Address(RVA = "0x1A69FB0", Offset = "0x1A68DB0", VA = "0x181A69FB0", Slot = "4")]
get
{
return "Blowfish";
}
}
// Token: 0x17001CBB RID: 7355
// (get) Token: 0x0600B6F5 RID: 46837 RVA: 0x00283D40 File Offset: 0x00281F40
[Token(Token = "0x17001CBB")]
public bool IsPartialBlockOkay
{
[Token(Token = "0x600B6F5")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "7")]
get
{
}
}
// Token: 0x0600B6F6 RID: 46838 RVA: 0x00283D50 File Offset: 0x00281F50
[Token(Token = "0x600B6F6")]
[Address(RVA = "0x1A695A0", Offset = "0x1A683A0", VA = "0x181A695A0", Slot = "8")]
public int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B6F6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.BlowfishEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_25:
stloc:InvalidOperationException(var_1_2F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Blowfish 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B6F7 RID: 46839 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B6F7")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "9")]
public void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B6F8 RID: 46840 RVA: 0x00283D8C File Offset: 0x00281F8C
[Token(Token = "0x600B6F8")]
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "6")]
public int GetBlockSize()
{
return 8;
}
// Token: 0x0600B6F9 RID: 46841 RVA: 0x00283D9C File Offset: 0x00281F9C
[Token(Token = "0x600B6F9")]
[Address(RVA = "0x1A69340", Offset = "0x1A68140", VA = "0x181A69340")]
private uint F(uint x)
{
uint[] s = this.S0;
uint[] s2 = this.S1;
uint[] s3 = this.S2;
uint[] s4 = this.S3;
return x;
}
// Token: 0x0600B6FA RID: 46842 RVA: 0x00283DCC File Offset: 0x00281FCC
[Token(Token = "0x600B6FA")]
[Address(RVA = "0x1A696A0", Offset = "0x1A684A0", VA = "0x181A696A0")]
private void ProcessTable(uint xl, uint xr, uint[] table)
{
int length = table.Length;
int num = 0;
if (length > 0)
{
uint[] p = this.P;
uint num2 = this.F(xl);
uint[] p2 = this.P;
uint num3 = this.F(xl);
uint[] p3 = this.P;
uint num5;
uint num4 = num5 + 1U;
uint num6 = p3[(int)num4];
num5 += (uint)2;
uint[] p4 = this.P;
num3 += (uint)1;
uint num7 = p4[(int)num3];
table[0] = num7;
table[0] = xl;
num += 2;
}
}
// Token: 0x0600B6FB RID: 46843 RVA: 0x00283E60 File Offset: 0x00282060
[Token(Token = "0x600B6FB")]
[Address(RVA = "0x1A698E0", Offset = "0x1A686E0", VA = "0x181A698E0")]
private void SetKey(byte[] key)
{
int num = 0;
uint[] s = this.S0;
int num2 = 0;
int num3 = 0;
int sbox_SK = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS0, num3, s, num2, sbox_SK);
int num4 = 0;
uint[] s2 = this.S1;
int num5 = 0;
int sbox_SK2 = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS1, num5, s2, num4, sbox_SK2);
int num6 = 0;
uint[] s3 = this.S2;
int num7 = 0;
int sbox_SK3 = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS2, num7, s3, num6, sbox_SK3);
int num8 = 0;
uint[] s4 = this.S3;
int num9 = 0;
int sbox_SK4 = BlowfishEngine.SBOX_SK;
Array.Copy(BlowfishEngine.KS3, num9, s4, num8, sbox_SK4);
int num10 = 0;
uint[] p = this.P;
int num11 = 0;
int p_SZ = BlowfishEngine.P_SZ;
Array.Copy(BlowfishEngine.KP, num11, p, num10, p_SZ);
int length = key.Length;
int length2 = key.Length;
num++;
uint[] p2 = this.P;
num++;
uint[] p3 = this.P;
int num12 = 0;
int num13 = 0;
this.ProcessTable((uint)num13, (uint)num12, p3);
uint[] p4 = this.P;
int p_SZ2 = BlowfishEngine.P_SZ;
uint num14 = this.P[p_SZ2];
uint[] s5 = this.S0;
uint num15;
this.ProcessTable(num15, num14, s5);
uint[] s6 = this.S0;
int sbox_SK5 = BlowfishEngine.SBOX_SK;
int length3 = s6.Length;
uint num16 = s6[(int)num14];
uint num17 = s6[sbox_SK5];
uint[] s7 = this.S1;
this.ProcessTable(num16, num17, s7);
uint[] s8 = this.S1;
int sbox_SK6 = BlowfishEngine.SBOX_SK;
int length4 = s8.Length;
uint num18 = s8[(int)num17];
uint num19 = s8[sbox_SK6];
uint[] s9 = this.S2;
this.ProcessTable(num18, num19, s9);
uint[] s10 = this.S2;
int sbox_SK7 = BlowfishEngine.SBOX_SK;
int length5 = s10.Length;
uint num20 = s10[(int)num19];
uint num21 = s10[sbox_SK7];
uint[] s11 = this.S3;
this.ProcessTable(num20, num21, s11);
}
// Token: 0x0600B6FC RID: 46844 RVA: 0x00284064 File Offset: 0x00282264
[Token(Token = "0x600B6FC")]
[Address(RVA = "0x1A69160", Offset = "0x1A67F60", VA = "0x181A69160")]
private void EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] p = this.P;
uint num3 = this.F(num);
uint[] p2 = this.P;
num = num2;
uint num4 = this.F(num);
uint[] p3 = this.P;
uint num6;
uint num5 = num6 + 1U;
uint num7 = p3[(int)num5];
num6 += (uint)2;
uint[] p4 = this.P;
num4 += (uint)1;
uint num8 = p4[(int)num4];
}
// Token: 0x0600B6FD RID: 46845 RVA: 0x002840E8 File Offset: 0x002822E8
[Token(Token = "0x600B6FD")]
[Address(RVA = "0x1A68FA0", Offset = "0x1A67DA0", VA = "0x181A68FA0")]
private void DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] p = this.P;
int rounds = BlowfishEngine.ROUNDS;
int num3 = rounds + 1;
if (rounds > 0)
{
uint num4 = this.F(num);
uint[] p2 = this.P;
num = num2;
uint num5 = this.F(num);
uint[] p3 = this.P;
int num6 = rounds - 1;
}
uint num7 = this.P[0];
}
// Token: 0x0600B6FE RID: 46846 RVA: 0x0028415C File Offset: 0x0028235C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B6FE")]
[Address(RVA = "0x1A69D30", Offset = "0x1A68B30", VA = "0x181A69D30")]
static BlowfishEngine()
{
uint[] array = new uint[18];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.643A9D76937E94519B73BE072D65E79BAFF3C213).FieldHandle);
BlowfishEngine.KP = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.E117A40BF9A3AE32474AD7B22EB4C60E95D3BE2A).FieldHandle);
BlowfishEngine.KS0 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.6F576E8737EAAC9B6B12BDFC370048CD205E2CDD).FieldHandle);
BlowfishEngine.KS1 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.E2F8F75B7ABE5A6E4ECF5E32B935909BE2CC9F4B).FieldHandle);
BlowfishEngine.KS2 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.1C1237F52E2ED7B4D229AE3978DA144B9E653F5E).FieldHandle);
BlowfishEngine.KS3 = array5;
int num = BlowfishEngine.ROUNDS;
num += 2;
BlowfishEngine.P_SZ = num;
}
// Token: 0x04007403 RID: 29699
[Token(Token = "0x4007403")]
private static readonly uint[] KP;
// Token: 0x04007404 RID: 29700
[Token(Token = "0x4007404")]
private static readonly uint[] KS0;
// Token: 0x04007405 RID: 29701
[Token(Token = "0x4007405")]
private static readonly uint[] KS1;
// Token: 0x04007406 RID: 29702
[Token(Token = "0x4007406")]
private static readonly uint[] KS2;
// Token: 0x04007407 RID: 29703
[Token(Token = "0x4007407")]
private static readonly uint[] KS3;
// Token: 0x04007408 RID: 29704
[Token(Token = "0x4007408")]
private static readonly int ROUNDS;
// Token: 0x04007409 RID: 29705
[Token(Token = "0x4007409")]
private const int BLOCK_SIZE = 8;
// Token: 0x0400740A RID: 29706
[Token(Token = "0x400740A")]
private static readonly int SBOX_SK;
// Token: 0x0400740B RID: 29707
[Token(Token = "0x400740B")]
private static readonly int P_SZ;
// Token: 0x0400740C RID: 29708
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400740C")]
private readonly uint[] S0;
// Token: 0x0400740D RID: 29709
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400740D")]
private readonly uint[] S1;
// Token: 0x0400740E RID: 29710
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400740E")]
private readonly uint[] S2;
// Token: 0x0400740F RID: 29711
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400740F")]
private readonly uint[] S3;
// Token: 0x04007410 RID: 29712
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007410")]
private readonly uint[] P;
// Token: 0x04007411 RID: 29713
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007411")]
private bool encrypting;
// Token: 0x04007412 RID: 29714
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007412")]
private byte[] workingKey;
}
}
@@ -0,0 +1,560 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C85 RID: 7301
[Token(Token = "0x2001C85")]
public class CamelliaEngine : IBlockCipher
{
// Token: 0x0600B6FF RID: 46847 RVA: 0x00284210 File Offset: 0x00282410
[Token(Token = "0x600B6FF")]
[Address(RVA = "0x1A6BDB0", Offset = "0x1A6ABB0", VA = "0x181A6BDB0")]
private static uint rightRotate(uint x, int s)
{
return x;
}
// Token: 0x0600B700 RID: 46848 RVA: 0x00284220 File Offset: 0x00282420
[Token(Token = "0x600B700")]
[Address(RVA = "0x1A6B260", Offset = "0x1A6A060", VA = "0x181A6B260")]
private static uint leftRotate(uint x, int s)
{
return x;
}
// Token: 0x0600B701 RID: 46849 RVA: 0x00284230 File Offset: 0x00282430
[Token(Token = "0x600B701")]
[Address(RVA = "0x1A6BDD0", Offset = "0x1A6ABD0", VA = "0x181A6BDD0")]
private static void roldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num4];
ko[0] = num5;
int length4 = ki.Length;
ko[0] = num5;
uint num6;
ki[0] = num6;
uint num7;
ki[0] = num7;
ki[0] = num7;
}
// Token: 0x0600B702 RID: 46850 RVA: 0x002842D0 File Offset: 0x002824D0
[Token(Token = "0x600B702")]
[Address(RVA = "0x1A6ABC0", Offset = "0x1A699C0", VA = "0x181A6ABC0")]
private static void decroldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num];
uint num6 = ki[(int)num4];
ko[0] = num6;
int length4 = ki.Length;
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
ki[0] = num8;
}
// Token: 0x0600B703 RID: 46851 RVA: 0x00284370 File Offset: 0x00282570
[Token(Token = "0x600B703")]
[Address(RVA = "0x1A6C110", Offset = "0x1A6AF10", VA = "0x181A6C110")]
private static void roldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9 = ko[(int)num3];
ki[0] = num9;
}
// Token: 0x0600B704 RID: 46852 RVA: 0x0028441C File Offset: 0x0028261C
[Token(Token = "0x600B704")]
[Address(RVA = "0x1A6AF00", Offset = "0x1A69D00", VA = "0x181A6AF00")]
private static void decroldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9;
ki[0] = num9;
}
// Token: 0x0600B705 RID: 46853 RVA: 0x002844B8 File Offset: 0x002826B8
[Token(Token = "0x600B705")]
[Address(RVA = "0x1A6A410", Offset = "0x1A69210", VA = "0x181A6A410")]
private static uint bytes2uint(byte[] src, int offset)
{
int num = 0;
byte b;
num += (int)b;
throw new NullReferenceException();
}
// Token: 0x0600B706 RID: 46854 RVA: 0x002844D0 File Offset: 0x002826D0
[Token(Token = "0x600B706")]
[Address(RVA = "0x1A6E280", Offset = "0x1A6D080", VA = "0x181A6E280")]
private static void uint2bytes(uint word, byte[] dst, int offset)
{
int num = 0;
num++;
}
// Token: 0x0600B707 RID: 46855 RVA: 0x002844EC File Offset: 0x002826EC
[Token(Token = "0x600B707")]
[Address(RVA = "0x1A6A470", Offset = "0x1A69270", VA = "0x181A6A470")]
private static void camelliaF2(uint[] s, uint[] skey, int keyoff)
{
uint num = skey[keyoff];
uint[] sbox4_ = CamelliaEngine.SBOX4_4404;
uint[] sbox3_ = CamelliaEngine.SBOX3_3033;
uint num2 = sbox4_[(int)num];
uint[] sbox2_ = CamelliaEngine.SBOX2_0222;
uint[] sbox1_ = CamelliaEngine.SBOX1_1110;
int length = s.Length;
int num3 = keyoff + 1;
uint num4 = skey[num3];
num4 += num4;
s[1] = num4;
uint num5 = skey[(int)num4];
uint[] sbox4_2 = CamelliaEngine.SBOX4_4404;
uint[] sbox3_2 = CamelliaEngine.SBOX3_3033;
uint[] sbox2_2 = CamelliaEngine.SBOX2_0222;
int length2 = CamelliaEngine.SBOX1_1110.Length;
uint num6 = skey[(int)num5];
uint num7 = s[0];
s[0] = num7;
num6 += num7;
s[0] = num6;
}
// Token: 0x0600B708 RID: 46856 RVA: 0x002845B8 File Offset: 0x002827B8
[Token(Token = "0x600B708")]
[Address(RVA = "0x1A6A9E0", Offset = "0x1A697E0", VA = "0x181A6A9E0")]
private static void camelliaFLs(uint[] s, uint[] fkey, int keyoff)
{
s[0] = typeof(CamelliaEngine).TypeHandle;
int length = s.Length;
int num = keyoff + 1;
uint num2 = fkey[num];
s[1] = num2;
}
// Token: 0x0600B709 RID: 46857 RVA: 0x002845F4 File Offset: 0x002827F4
[Token(Token = "0x600B709")]
[Address(RVA = "0x1A6C440", Offset = "0x1A6B240", VA = "0x181A6C440")]
private void setKey(bool forEncryption, byte[] key)
{
/*
An exception occurred when decompiling this method (0600B709)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::setKey(System.Boolean,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A98:
stloc:uint32(var_223_A9F, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_169_824), ldc.i4:int32(0), ldloc:uint32(var_223_A9F))
stloc:uint32[](var_224_AB1, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
stloc:uint32(var_225_ABA, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_224_AB1), ldc.i4:int32(0), ldloc:uint32(var_225_ABA))
stloc:uint32[](var_226_ACC, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
stloc:uint32(var_227_AD5, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_226_ACC), ldc.i4:int32(1), ldloc:uint32(var_227_AD5))
stloc:uint32[](var_228_AE7, ldfld:uint32[](CamelliaEngine::kw, ldloc:CamelliaEngine(this)))
stloc:uint32(var_229_AF0, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_228_AE7), ldc.i4:int32(1), ldloc:uint32(var_229_AF0))
stloc:uint32[](var_230_B02, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:int32(var_231_B05, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_231_B05), ldloc:uint32[](var_230_B02), ldloc:uint64[exp:int32](var_232))
stloc:uint32[](var_233_B1B, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:int32(var_234_B1E, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(30), ldloc:uint32[](var_1_06), ldloc:int32(var_234_B1E), ldloc:uint32[](var_233_B1B), ldloc:uint64[exp:int32](var_235))
stloc:int32(var_236_B2F, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_236_B2F), ldloc:uint32[](var_7_1C), ldloc:int32(var_9_259))
stloc:uint32[](var_237_B45, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:uint32(var_238_B4F, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_237_B45), ldc.i4:int32(9), ldloc:uint32(var_238_B4F))
stloc:uint32[](var_239_B62, ldfld:uint32[](CamelliaEngine::subkey, ldloc:CamelliaEngine(this)))
stloc:uint32(var_240_B6C, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_239_B62), ldc.i4:int32(9), ldloc:uint32(var_240_B6C))
stloc:int32(var_241_B7A, ldc.i4:int32(0))
stloc:uint32[](var_242_B82, ldfld:uint32[](CamelliaEngine::ke, ldloc:CamelliaEngine(this)))
call:void(CamelliaEngine::roldq, ldc.i4:int32(17), ldloc:uint32[](var_1_06), ldloc:int32(var_241_B7A), ldloc:uint32[](var_242_B82), ldloc:uint64[exp:int32](var_243))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B70A RID: 46858 RVA: 0x00285194 File Offset: 0x00283394
[Token(Token = "0x600B70A")]
[Address(RVA = "0x1A6B280", Offset = "0x1A6A080", VA = "0x181A6B280")]
private int processBlock128(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.state;
uint[] array5 = this.subkey;
int num2 = 0;
CamelliaEngine.camelliaF2(array4, array5, num2);
uint[] array6 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array6, 4);
uint[] array7 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array7, 8);
uint[] array8 = this.ke;
uint[] array9 = this.state;
int num3 = 0;
CamelliaEngine.camelliaFLs(array9, array8, num3);
uint[] array10 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array10, 12);
uint[] array11 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array11, 16);
uint[] array12 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array12, 20);
uint[] array13 = this.ke;
CamelliaEngine.camelliaFLs(this.state, array13, 4);
uint[] array14 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array14, 24);
uint[] array15 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array15, 28);
uint[] array16 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array16, 32);
uint[] array17 = this.state;
uint[] array18 = this.kw;
uint[] array19 = this.state;
uint[] array20 = this.kw;
uint[] array21 = this.state;
uint[] array22 = this.kw;
uint[] array23 = this.state;
uint[] array24 = this.kw;
uint[] array25 = this.state;
num++;
uint[] array26 = this.state;
num++;
uint[] array27 = this.state;
num++;
uint[] array28 = this.state;
num++;
throw new NullReferenceException();
}
// Token: 0x0600B70B RID: 46859 RVA: 0x0028534C File Offset: 0x0028354C
[Token(Token = "0x600B70B")]
[Address(RVA = "0x1A6B7F0", Offset = "0x1A6A5F0", VA = "0x181A6B7F0")]
private int processBlock192or256(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.state;
uint[] array5 = this.subkey;
int num2 = 0;
CamelliaEngine.camelliaF2(array4, array5, num2);
uint[] array6 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array6, 4);
uint[] array7 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array7, 8);
uint[] array8 = this.ke;
uint[] array9 = this.state;
int num3 = 0;
CamelliaEngine.camelliaFLs(array9, array8, num3);
uint[] array10 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array10, 12);
uint[] array11 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array11, 16);
uint[] array12 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array12, 20);
uint[] array13 = this.ke;
CamelliaEngine.camelliaFLs(this.state, array13, 4);
uint[] array14 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array14, 24);
uint[] array15 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array15, 28);
uint[] array16 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array16, 32);
uint[] array17 = this.ke;
CamelliaEngine.camelliaFLs(this.state, array17, 8);
uint[] array18 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array18, 36);
uint[] array19 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array19, 40);
uint[] array20 = this.subkey;
CamelliaEngine.camelliaF2(this.state, array20, 44);
uint[] array21 = this.state;
uint[] array22 = this.kw;
uint[] array23 = this.state;
uint[] array24 = this.kw;
uint[] array25 = this.state;
uint[] array26 = this.kw;
uint[] array27 = this.state;
uint[] array28 = this.kw;
uint[] array29 = this.state;
num++;
uint[] array30 = this.state;
num++;
uint[] array31 = this.state;
num++;
uint[] array32 = this.state;
num++;
throw new NullReferenceException();
}
// Token: 0x0600B70C RID: 46860 RVA: 0x00285560 File Offset: 0x00283760
[Token(Token = "0x600B70C")]
[Address(RVA = "0x1A6A380", Offset = "0x1A69180", VA = "0x181A6A380")]
public CamelliaEngine()
{
uint[] array = new uint[96];
this.subkey = array;
uint[] array2 = new uint[8];
this.kw = array2;
uint[] array3 = new uint[12];
this.ke = array3;
uint[] array4 = new uint[4];
this.state = array4;
this.Reset();
}
// Token: 0x0600B70D RID: 46861 RVA: 0x002855B0 File Offset: 0x002837B0
[Token(Token = "0x600B70D")]
[Address(RVA = "0x1A69FE0", Offset = "0x1A68DE0", VA = "0x181A69FE0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B70D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:ArgumentException(var_4_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("only simple KeyParameter expected.")))
}
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: 0x17001CBC RID: 7356
// (get) Token: 0x0600B70E RID: 46862 RVA: 0x002855F0 File Offset: 0x002837F0
[Token(Token = "0x17001CBC")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B70E")]
[Address(RVA = "0x1A6B230", Offset = "0x1A6A030", VA = "0x181A6B230", Slot = "11")]
get
{
return "Camellia";
}
}
// Token: 0x17001CBD RID: 7357
// (get) Token: 0x0600B70F RID: 46863 RVA: 0x00285604 File Offset: 0x00283804
[Token(Token = "0x17001CBD")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B70F")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B710 RID: 46864 RVA: 0x00285614 File Offset: 0x00283814
[Token(Token = "0x600B710")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "13")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600B711 RID: 46865 RVA: 0x00285624 File Offset: 0x00283824
[Token(Token = "0x600B711")]
[Address(RVA = "0x1A6A140", Offset = "0x1A68F40", VA = "0x181A6A140", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B711)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24:
stloc:InvalidOperationException(var_3_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Camellia 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: 0x0600B712 RID: 46866 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B712")]
[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: 0x0600B713 RID: 46867 RVA: 0x00285660 File Offset: 0x00283860
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B713")]
[Address(RVA = "0x1A6A240", Offset = "0x1A69040", VA = "0x181A6A240")]
static CamelliaEngine()
{
uint[] array = new uint[12];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AE843E1C1136C908565A6D4E04E8564B69465B3B).FieldHandle);
CamelliaEngine.SIGMA = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.B1108EE6609DB783B2EC606B3BFDD544A7D4C2B3).FieldHandle);
CamelliaEngine.SBOX1_1110 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.14F6FAB1B4065EBADBBA4A3661ADE689FF444EDD).FieldHandle);
CamelliaEngine.SBOX4_4404 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B718C95C87C6B65DFA29D58A10442CEC9EBBDF1F).FieldHandle);
CamelliaEngine.SBOX2_0222 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.124B1C35B19149213F8F7D40AA8E0ABA15DD70EC).FieldHandle);
CamelliaEngine.SBOX3_3033 = array5;
}
// Token: 0x04007413 RID: 29715
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007413")]
private bool initialised;
// Token: 0x04007414 RID: 29716
[FieldOffset(Offset = "0x11")]
[Token(Token = "0x4007414")]
private bool _keyIs128;
// Token: 0x04007415 RID: 29717
[Token(Token = "0x4007415")]
private const int BLOCK_SIZE = 16;
// Token: 0x04007416 RID: 29718
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007416")]
private uint[] subkey;
// Token: 0x04007417 RID: 29719
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007417")]
private uint[] kw;
// Token: 0x04007418 RID: 29720
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007418")]
private uint[] ke;
// Token: 0x04007419 RID: 29721
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007419")]
private uint[] state;
// Token: 0x0400741A RID: 29722
[Token(Token = "0x400741A")]
private static readonly uint[] SIGMA;
// Token: 0x0400741B RID: 29723
[Token(Token = "0x400741B")]
private static readonly uint[] SBOX1_1110;
// Token: 0x0400741C RID: 29724
[Token(Token = "0x400741C")]
private static readonly uint[] SBOX4_4404;
// Token: 0x0400741D RID: 29725
[Token(Token = "0x400741D")]
private static readonly uint[] SBOX2_0222;
// Token: 0x0400741E RID: 29726
[Token(Token = "0x400741E")]
private static readonly uint[] SBOX3_3033;
}
}
@@ -0,0 +1,643 @@
using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C86 RID: 7302
[Token(Token = "0x2001C86")]
public class CamelliaLightEngine : IBlockCipher
{
// Token: 0x0600B714 RID: 46868 RVA: 0x002856FC File Offset: 0x002838FC
[Token(Token = "0x600B714")]
[Address(RVA = "0x1A6BDB0", Offset = "0x1A6ABB0", VA = "0x181A6BDB0")]
private static uint rightRotate(uint x, int s)
{
return x;
}
// Token: 0x0600B715 RID: 46869 RVA: 0x0028570C File Offset: 0x0028390C
[Token(Token = "0x600B715")]
[Address(RVA = "0x1A6B260", Offset = "0x1A6A060", VA = "0x181A6B260")]
private static uint leftRotate(uint x, int s)
{
return x;
}
// Token: 0x0600B716 RID: 46870 RVA: 0x0028571C File Offset: 0x0028391C
[Token(Token = "0x600B716")]
[Address(RVA = "0x1A6BDD0", Offset = "0x1A6ABD0", VA = "0x181A6BDD0")]
private static void roldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num4];
ko[0] = num5;
int length4 = ki.Length;
ko[0] = num5;
uint num6;
ki[0] = num6;
uint num7;
ki[0] = num7;
ki[0] = num7;
}
// Token: 0x0600B717 RID: 46871 RVA: 0x002857BC File Offset: 0x002839BC
[Token(Token = "0x600B717")]
[Address(RVA = "0x1A6ABC0", Offset = "0x1A699C0", VA = "0x181A6ABC0")]
private static void decroldq(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
uint num = ki[ioff];
int num2 = ioff + 1;
uint num3 = ki[num2];
ko[0] = num3;
int length2 = ki.Length;
uint num4 = ki[(int)num];
ko[0] = num4;
int length3 = ki.Length;
uint num5 = ki[(int)num];
uint num6 = ki[(int)num4];
ko[0] = num6;
int length4 = ki.Length;
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
ki[0] = num8;
}
// Token: 0x0600B718 RID: 46872 RVA: 0x0028585C File Offset: 0x00283A5C
[Token(Token = "0x600B718")]
[Address(RVA = "0x1A6C110", Offset = "0x1A6AF10", VA = "0x181A6C110")]
private static void roldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9 = ko[(int)num3];
ki[0] = num9;
}
// Token: 0x0600B719 RID: 46873 RVA: 0x00285908 File Offset: 0x00283B08
[Token(Token = "0x600B719")]
[Address(RVA = "0x1A6AF00", Offset = "0x1A69D00", VA = "0x181A6AF00")]
private static void decroldqo32(int rot, uint[] ki, int ioff, uint[] ko, int ooff)
{
int length = ki.Length;
int num = ioff + 1;
uint num2;
ko[0] = num2;
int length2 = ki.Length;
uint num3 = ki[(int)num2];
ko[0] = num3;
int length3 = ki.Length;
uint num4 = ki[(int)num2];
uint num5 = ki[ioff];
ko[0] = num5;
int length4 = ki.Length;
uint num6 = ki[num];
ko[0] = num6;
uint num7;
ki[0] = num7;
uint num8;
ki[0] = num8;
uint num9;
ki[0] = num9;
}
// Token: 0x0600B71A RID: 46874 RVA: 0x002859A4 File Offset: 0x00283BA4
[Token(Token = "0x600B71A")]
[Address(RVA = "0x1A6A410", Offset = "0x1A69210", VA = "0x181A6A410")]
private static uint bytes2uint(byte[] src, int offset)
{
int num = 0;
byte b;
num += (int)b;
throw new NullReferenceException();
}
// Token: 0x0600B71B RID: 46875 RVA: 0x002859BC File Offset: 0x00283BBC
[Token(Token = "0x600B71B")]
[Address(RVA = "0x1A6E280", Offset = "0x1A6D080", VA = "0x181A6E280")]
private static void uint2bytes(uint word, byte[] dst, int offset)
{
int num = 0;
num++;
}
// Token: 0x0600B71C RID: 46876 RVA: 0x002859D8 File Offset: 0x00283BD8
[Token(Token = "0x600B71C")]
[Address(RVA = "0x1A6ED20", Offset = "0x1A6DB20", VA = "0x181A6ED20")]
private byte lRot8(byte v, int rot)
{
uint num;
num -= (uint)rot;
return v;
}
// Token: 0x0600B71D RID: 46877 RVA: 0x002859EC File Offset: 0x00283BEC
[Token(Token = "0x600B71D")]
[Address(RVA = "0x1A6F8F0", Offset = "0x1A6E6F0", VA = "0x181A6F8F0")]
private uint sbox2(int x)
{
byte[] sbox = CamelliaLightEngine.SBOX1;
throw new NullReferenceException();
}
// Token: 0x0600B71E RID: 46878 RVA: 0x00285A04 File Offset: 0x00283C04
[Token(Token = "0x600B71E")]
[Address(RVA = "0x1A6F980", Offset = "0x1A6E780", VA = "0x181A6F980")]
private uint sbox3(int x)
{
byte[] sbox = CamelliaLightEngine.SBOX1;
throw new NullReferenceException();
}
// Token: 0x0600B71F RID: 46879 RVA: 0x00285A1C File Offset: 0x00283C1C
[Token(Token = "0x600B71F")]
[Address(RVA = "0x1A6FA10", Offset = "0x1A6E810", VA = "0x181A6FA10")]
private uint sbox4(int x)
{
byte[] sbox = CamelliaLightEngine.SBOX1;
throw new NullReferenceException();
}
// Token: 0x0600B720 RID: 46880 RVA: 0x00285A34 File Offset: 0x00283C34
[Token(Token = "0x600B720")]
[Address(RVA = "0x1A6E660", Offset = "0x1A6D460", VA = "0x181A6E660")]
private void camelliaF2(uint[] s, uint[] skey, int keyoff)
{
uint num = skey[keyoff];
uint num2 = this.sbox4((int)num);
uint num3 = this.sbox3((int)num);
uint num4 = this.sbox2((int)num);
int length = CamelliaLightEngine.SBOX1.Length;
int num5 = keyoff + 1;
uint num6 = skey[num5];
num3 = this.sbox4((int)num6);
uint num7 = this.sbox3((int)num6);
uint num8 = this.sbox2((int)num6);
num8 += num8;
num6 = num8;
num6 += num8;
byte b;
b += b;
num6 += num6;
s[1] = num6;
b += b;
uint num9 = skey[(int)b];
num6 = num9;
num7 = this.sbox4((int)num6);
num6 = num9;
num3 = this.sbox3((int)num6);
num6 = num9;
uint num10 = this.sbox2((int)num6);
int length2 = CamelliaLightEngine.SBOX1.Length;
num3 = this.sbox4((int)num10);
uint num11 = this.sbox3((int)num10);
uint num12 = this.sbox2((int)num10);
num12 += num12;
num10 = num12;
num10 += num12;
byte b2;
b2 += b2;
num10 += num10;
s[0] = num10;
b2 += b2;
}
// Token: 0x0600B721 RID: 46881 RVA: 0x00285B60 File Offset: 0x00283D60
[Token(Token = "0x600B721")]
[Address(RVA = "0x1A6EB10", Offset = "0x1A6D910", VA = "0x181A6EB10")]
private void camelliaFLs(uint[] s, uint[] fkey, int keyoff)
{
s[0] = typeof(CamelliaLightEngine).TypeHandle;
int length = s.Length;
int num = keyoff + 1;
uint num2 = fkey[num];
s[1] = num2;
}
// Token: 0x0600B722 RID: 46882 RVA: 0x00285B9C File Offset: 0x00283D9C
[Token(Token = "0x600B722")]
[Address(RVA = "0x1A6FAA0", Offset = "0x1A6E8A0", VA = "0x181A6FAA0")]
private void setKey(bool forEncryption, byte[] key)
{
/*
An exception occurred when decompiling this method (0600B722)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::setKey(System.Boolean,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A9D:
stloc:uint32(var_225_AA4, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_171_829), ldc.i4:int32(0), ldloc:uint32(var_225_AA4))
stloc:uint32[](var_226_AB6, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_227_ABF, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(0)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_226_AB6), ldc.i4:int32(0), ldloc:uint32(var_227_ABF))
stloc:uint32[](var_228_AD1, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_229_ADA, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_228_AD1), ldc.i4:int32(1), ldloc:uint32(var_229_ADA))
stloc:uint32[](var_230_AEC, ldfld:uint32[](CamelliaLightEngine::kw, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_231_AF5, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_1_06), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_230_AEC), ldc.i4:int32(1), ldloc:uint32(var_231_AF5))
stloc:uint32[](var_232_B07, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:int32(var_233_B0A, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_233_B0A), ldloc:uint32[](var_232_B07), ldloc:uint64[exp:int32](var_234))
stloc:uint32[](var_235_B20, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:int32(var_236_B23, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(30), ldloc:uint32[](var_1_06), ldloc:int32(var_236_B23), ldloc:uint32[](var_235_B20), ldloc:uint64[exp:int32](var_237))
stloc:int32(var_238_B34, ldc.i4:int32(0))
call:void(CamelliaEngine::roldq, ldc.i4:int32(15), ldloc:uint32[](var_1_06), ldloc:int32(var_238_B34), ldloc:uint32[](var_7_1C), ldloc:int32(var_9_25A))
stloc:uint32[](var_239_B4A, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_240_B54, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_239_B4A), ldc.i4:int32(9), ldloc:uint32(var_240_B54))
stloc:uint32[](var_241_B67, ldfld:uint32[](CamelliaLightEngine::subkey, ldloc:CamelliaLightEngine(this)))
stloc:uint32(var_242_B71, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_7_1C), ldc.i4:int32(1)))
stelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_241_B67), ldc.i4:int32(9), ldloc:uint32(var_242_B71))
stloc:int32(var_243_B7F, ldc.i4:int32(0))
stloc:uint32[](var_244_B87, ldfld:uint32[](CamelliaLightEngine::ke, ldloc:CamelliaLightEngine(this)))
call:void(CamelliaEngine::roldq, ldc.i4:int32(17), ldloc:uint32[](var_1_06), ldloc:int32(var_243_B7F), ldloc:uint32[](var_244_B87), ldloc:uint64[exp:int32](var_245))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B723 RID: 46883 RVA: 0x00286740 File Offset: 0x00284940
[Token(Token = "0x600B723")]
[Address(RVA = "0x1A6ED50", Offset = "0x1A6DB50", VA = "0x181A6ED50")]
private int processBlock128(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.subkey;
int num2 = 0;
uint[] array5 = this.state;
this.camelliaF2(array5, array4, num2);
uint[] array6 = this.subkey;
uint[] array7 = this.state;
uint num3;
this.camelliaF2(array7, array6, (int)num3);
uint[] array8 = this.subkey;
uint[] array9 = this.state;
uint num4;
this.camelliaF2(array9, array8, (int)num4);
uint[] array10 = this.ke;
int num5 = 0;
uint[] array11 = this.state;
this.camelliaFLs(array11, array10, num5);
uint[] array12 = this.subkey;
uint[] array13 = this.state;
uint num6;
this.camelliaF2(array13, array12, (int)num6);
uint[] array14 = this.subkey;
uint[] array15 = this.state;
uint num7;
this.camelliaF2(array15, array14, (int)num7);
uint[] array16 = this.subkey;
uint[] array17 = this.state;
uint num8;
this.camelliaF2(array17, array16, (int)num8);
uint[] array18 = this.ke;
uint[] array19 = this.state;
uint num9;
this.camelliaFLs(array19, array18, (int)num9);
uint[] array20 = this.subkey;
uint[] array21 = this.state;
uint num10;
this.camelliaF2(array21, array20, (int)num10);
uint[] array22 = this.subkey;
uint[] array23 = this.state;
uint num11;
this.camelliaF2(array23, array22, (int)num11);
uint[] array24 = this.subkey;
uint[] array25 = this.state;
uint num12;
this.camelliaF2(array25, array24, (int)num12);
uint[] array26 = this.state;
uint[] array27 = this.kw;
uint[] array28 = this.state;
uint[] array29 = this.kw;
uint[] array30 = this.state;
uint[] array31 = this.kw;
uint[] array32 = this.state;
uint[] array33 = this.kw;
uint[] array34 = this.state;
num++;
uint num13 = this.state[1];
output[0] = (byte)num13;
num++;
uint num14 = this.state[0];
output[0] = (byte)num14;
num++;
uint num15 = this.state[0];
output[0] = (byte)num15;
num++;
throw new NullReferenceException();
}
// Token: 0x0600B724 RID: 46884 RVA: 0x00286958 File Offset: 0x00284B58
[Token(Token = "0x600B724")]
[Address(RVA = "0x1A6F2F0", Offset = "0x1A6E0F0", VA = "0x181A6F2F0")]
private int processBlock192or256(byte[] input, int inOff, byte[] output, int outOff)
{
int num = 0;
uint[] array = this.state;
num++;
byte b;
num += (int)b;
array[0] = (uint)num;
uint[] array2 = this.state;
uint[] array3 = this.kw;
num++;
uint[] array4 = this.subkey;
int num2 = 0;
uint[] array5 = this.state;
this.camelliaF2(array5, array4, num2);
uint[] array6 = this.subkey;
uint[] array7 = this.state;
uint num3;
this.camelliaF2(array7, array6, (int)num3);
uint[] array8 = this.subkey;
uint[] array9 = this.state;
uint num4;
this.camelliaF2(array9, array8, (int)num4);
uint[] array10 = this.ke;
int num5 = 0;
uint[] array11 = this.state;
this.camelliaFLs(array11, array10, num5);
uint[] array12 = this.subkey;
uint[] array13 = this.state;
uint num6;
this.camelliaF2(array13, array12, (int)num6);
uint[] array14 = this.subkey;
uint[] array15 = this.state;
uint num7;
this.camelliaF2(array15, array14, (int)num7);
uint[] array16 = this.subkey;
uint[] array17 = this.state;
uint num8;
this.camelliaF2(array17, array16, (int)num8);
uint[] array18 = this.ke;
uint[] array19 = this.state;
uint num9;
this.camelliaFLs(array19, array18, (int)num9);
uint[] array20 = this.subkey;
uint[] array21 = this.state;
uint num10;
this.camelliaF2(array21, array20, (int)num10);
uint[] array22 = this.subkey;
uint[] array23 = this.state;
uint num11;
this.camelliaF2(array23, array22, (int)num11);
uint[] array24 = this.subkey;
uint[] array25 = this.state;
uint num12;
this.camelliaF2(array25, array24, (int)num12);
uint[] array26 = this.ke;
uint[] array27 = this.state;
uint num13;
this.camelliaFLs(array27, array26, (int)num13);
uint[] array28 = this.subkey;
uint[] array29 = this.state;
uint num14;
this.camelliaF2(array29, array28, (int)num14);
uint[] array30 = this.subkey;
uint[] array31 = this.state;
uint num15;
this.camelliaF2(array31, array30, (int)num15);
uint[] array32 = this.subkey;
uint[] array33 = this.state;
uint num16;
this.camelliaF2(array33, array32, (int)num16);
uint[] array34 = this.state;
uint[] array35 = this.kw;
uint[] array36 = this.state;
uint[] array37 = this.kw;
uint[] array38 = this.state;
uint[] array39 = this.kw;
uint[] array40 = this.state;
uint[] array41 = this.kw;
uint[] array42 = this.state;
num++;
uint num17 = this.state[1];
output[0] = (byte)num17;
num++;
uint num18 = this.state[0];
output[0] = (byte)num18;
num++;
uint num19 = this.state[0];
output[0] = (byte)num19;
num++;
throw new NullReferenceException();
}
// Token: 0x0600B725 RID: 46885 RVA: 0x00286BE0 File Offset: 0x00284DE0
[Token(Token = "0x600B725")]
[Address(RVA = "0x1A6E5D0", Offset = "0x1A6D3D0", VA = "0x181A6E5D0")]
public CamelliaLightEngine()
{
uint[] array = new uint[96];
this.subkey = array;
uint[] array2 = new uint[8];
this.kw = array2;
uint[] array3 = new uint[12];
this.ke = array3;
uint[] array4 = new uint[4];
this.state = array4;
this.Reset();
this.initialised = false;
}
// Token: 0x17001CBE RID: 7358
// (get) Token: 0x0600B726 RID: 46886 RVA: 0x00286C34 File Offset: 0x00284E34
[Token(Token = "0x17001CBE")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B726")]
[Address(RVA = "0x1A6ECF0", Offset = "0x1A6DAF0", VA = "0x181A6ECF0", Slot = "10")]
get
{
return "Camellia";
}
}
// Token: 0x17001CBF RID: 7359
// (get) Token: 0x0600B727 RID: 46887 RVA: 0x00286C48 File Offset: 0x00284E48
[Token(Token = "0x17001CBF")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B727")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "11")]
get
{
}
}
// Token: 0x0600B728 RID: 46888 RVA: 0x00286C58 File Offset: 0x00284E58
[Token(Token = "0x600B728")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "12")]
public virtual int GetBlockSize()
{
return 16;
}
// Token: 0x0600B729 RID: 46889 RVA: 0x00286C68 File Offset: 0x00284E68
[Token(Token = "0x600B729")]
[Address(RVA = "0x1A6E2D0", Offset = "0x1A6D0D0", VA = "0x181A6E2D0", Slot = "13")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B729)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:ArgumentException(var_4_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("only simple KeyParameter expected.")))
}
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: 0x0600B72A RID: 46890 RVA: 0x00286CA8 File Offset: 0x00284EA8
[Token(Token = "0x600B72A")]
[Address(RVA = "0x1A6E430", Offset = "0x1A6D230", VA = "0x181A6E430", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B72A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.CamelliaLightEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24:
stloc:InvalidOperationException(var_3_2E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Camellia 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: 0x0600B72B RID: 46891 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B72B")]
[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: 0x0600B72C RID: 46892 RVA: 0x00286CE4 File Offset: 0x00284EE4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B72C")]
[Address(RVA = "0x1A6E530", Offset = "0x1A6D330", VA = "0x181A6E530")]
static CamelliaLightEngine()
{
uint[] array = new uint[12];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.AE843E1C1136C908565A6D4E04E8564B69465B3B).FieldHandle);
CamelliaLightEngine.SIGMA = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.81FDCC6319440C75C8E422A1FE4E3F1A80B89F5F).FieldHandle);
CamelliaLightEngine.SBOX1 = array2;
}
// Token: 0x0400741F RID: 29727
[Token(Token = "0x400741F")]
private const int BLOCK_SIZE = 16;
// Token: 0x04007420 RID: 29728
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007420")]
private bool initialised;
// Token: 0x04007421 RID: 29729
[FieldOffset(Offset = "0x11")]
[Token(Token = "0x4007421")]
private bool _keyis128;
// Token: 0x04007422 RID: 29730
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007422")]
private uint[] subkey;
// Token: 0x04007423 RID: 29731
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007423")]
private uint[] kw;
// Token: 0x04007424 RID: 29732
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007424")]
private uint[] ke;
// Token: 0x04007425 RID: 29733
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007425")]
private uint[] state;
// Token: 0x04007426 RID: 29734
[Token(Token = "0x4007426")]
private static readonly uint[] SIGMA;
// Token: 0x04007427 RID: 29735
[Token(Token = "0x4007427")]
private static readonly byte[] SBOX1;
}
}
@@ -0,0 +1,19 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C87 RID: 7303
[Token(Token = "0x2001C87")]
public class CamelliaWrapEngine : Rfc3394WrapEngine
{
// Token: 0x0600B72D RID: 46893 RVA: 0x00286D28 File Offset: 0x00284F28
[Token(Token = "0x600B72D")]
[Address(RVA = "0x1DBA100", Offset = "0x1DB8F00", VA = "0x181DBA100")]
public CamelliaWrapEngine()
{
CamelliaEngine camelliaEngine = new CamelliaEngine();
base..ctor(camelliaEngine);
}
}
}
@@ -0,0 +1,617 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C88 RID: 7304
[Token(Token = "0x2001C88")]
public class Cast5Engine : IBlockCipher
{
// Token: 0x0600B72E RID: 46894 RVA: 0x00286D44 File Offset: 0x00284F44
[Token(Token = "0x600B72E")]
[Address(RVA = "0x1DC1DD0", Offset = "0x1DC0BD0", VA = "0x181DC1DD0")]
public Cast5Engine()
{
int[] array = new int[17];
this._Kr = array;
uint[] array2 = new uint[17];
this._Km = array2;
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
this._rounds = max_ROUNDS;
this.Reset();
}
// Token: 0x0600B72F RID: 46895 RVA: 0x00286D84 File Offset: 0x00284F84
[Token(Token = "0x600B72F")]
[Address(RVA = "0x1DBADA0", Offset = "0x1DB9BA0", VA = "0x181DBADA0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B72F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_30:
stloc:ArgumentException(var_8_37, newobj:ArgumentException(ArgumentException::.ctor, 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: 0x17001CC0 RID: 7360
// (get) Token: 0x0600B730 RID: 46896 RVA: 0x00286DCC File Offset: 0x00284FCC
[Token(Token = "0x17001CC0")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B730")]
[Address(RVA = "0x1DC1E70", Offset = "0x1DC0C70", VA = "0x181DC1E70", Slot = "11")]
get
{
return "CAST5";
}
}
// Token: 0x17001CC1 RID: 7361
// (get) Token: 0x0600B731 RID: 46897 RVA: 0x00286DE0 File Offset: 0x00284FE0
[Token(Token = "0x17001CC1")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B731")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B732 RID: 46898 RVA: 0x00286DF0 File Offset: 0x00284FF0
[Token(Token = "0x600B732")]
[Address(RVA = "0x1DBB030", Offset = "0x1DB9E30", VA = "0x181DBB030", Slot = "13")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B732)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_25:
stloc:InvalidOperationException(var_4_2B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_3)))
}
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: 0x0600B733 RID: 46899 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B733")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B734 RID: 46900 RVA: 0x00286E2C File Offset: 0x0028502C
[Token(Token = "0x600B734")]
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "15")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600B735 RID: 46901 RVA: 0x00286E3C File Offset: 0x0028503C
[Token(Token = "0x600B735")]
[Address(RVA = "0x1DBB190", Offset = "0x1DB9F90", VA = "0x181DBB190", Slot = "16")]
internal virtual void SetKey(byte[] key)
{
/*
An exception occurred when decompiling this method (0600B735)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Cast5Engine::SetKey(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:int32(var_6_40, ldc.i4:int32(0))
stloc:uint32(var_7_4A, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldloc:int32(var_6_40)))
stloc:uint32(var_8_53, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_9_5C, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(8)))
stloc:uint32(var_10_66, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(12)))
stloc:uint32[](var_11_6D, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_12_75, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:int32(var_13_7E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_14_85, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_15_8E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32[](var_16_95, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_17_9E, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_18_A5, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_19_AE, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:int32(var_20_B7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_21_C2, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_16_95), ldloc:int32(var_20_B7)))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1), ldloc:uint32[exp:int32](var_21_C2))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1), ldloc:uint32[exp:int32](var_21_C2))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_21_C2))
stelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0), ldloc:uint32[exp:int32](var_21_C2))
stloc:int32(var_22_EE, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_23_F5, ldsfld:uint32[](Cast5Engine::S5))
stloc:uint32[](var_24_FC, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_25_105, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32[](var_26_10C, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_27_115, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32(var_28_120, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_26_10C), ldloc:int32(var_27_115)))
stloc:uint32[](var_29_127, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_30_130, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:int32(var_31_139, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_29_127), ldloc:int32(var_31_139)), ldloc:int32[](var_1_1E), ldc.i4:int32(4))
stloc:int32(var_32_151, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_33_158, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_34_161, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_35_168, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_36_171, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_37_178, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_38_181, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_39_188, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_40_191, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:int32(var_41_19A, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_33_158), ldloc:int32(var_41_19A)), ldloc:int32[](var_1_1E), ldc.i4:int32(8))
stloc:int32(var_42_1B2, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_43_1B9, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_44_1C2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_45_1C9, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_46_1D2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32[](var_47_1D9, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_48_1E2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_49_1E9, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_50_1F2, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:int32(var_51_1FB, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_45_1C9), ldloc:int32(var_51_1FB)), ldloc:int32[](var_1_1E), ldc.i4:int32(12))
stloc:int32(var_52_214, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_53_21B, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_54_224, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32[](var_55_22B, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_56_234, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32[](var_57_23B, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_58_244, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_59_24B, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_60_254, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:int32(var_61_25D, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32(var_62_268, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_53_21B), ldloc:int32(var_61_25D)))
stloc:int32(var_63_270, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_64_277, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_65_280, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_66_287, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_67_290, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(5)))
stloc:uint32[](var_68_297, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_69_2A0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_70_2A7, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_71_2B0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32(var_72_2BB, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_70_2A7), ldloc:int32(var_71_2B0)))
stloc:int32(var_73_2C4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:int32(var_74_2CC, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_75_2D3, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_76_2DC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
stloc:uint32[](var_77_2E3, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_78_2EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
stloc:uint32[](var_79_2F3, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_80_2FC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32[](var_81_303, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_82_30C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32(var_83_317, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_81_303), ldloc:int32(var_82_30C)))
stloc:int32(var_84_320, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:int32(var_85_328, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_86_32F, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_87_338, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(7)))
stloc:uint32[](var_88_33F, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_89_348, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(7)))
stloc:uint32[](var_90_34F, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_91_358, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32[](var_92_35F, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_93_368, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32(var_94_373, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_92_35F), ldloc:int32(var_93_368)))
stloc:int32(var_95_37C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(6)))
stloc:int32(var_96_37F, ldc.i4:int32(0))
stloc:uint32(var_97_389, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldloc:int32(var_96_37F)))
stloc:uint32(var_10_392, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(4)))
stloc:uint32(var_98_39B, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(8)))
stloc:uint32(var_8_3A5, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_1_1E), ldc.i4:int32(12)))
stloc:int32(var_99_3AD, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_100_3B4, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_101_3BD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_102_3C4, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_103_3CD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_104_3D4, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_105_3DD, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
stloc:uint32[](var_106_3E4, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_107_3ED, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:int32(var_108_3F6, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32(var_109_401, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_104_3D4), ldloc:int32(var_108_3F6)))
stloc:int32(var_110_404, ldc.i4:int32(0))
call:void(Cast5Engine::Bits32ToInts, ldloc:uint32(var_109_401), ldloc:int32[](var_2_26), ldloc:int32(var_110_404))
stloc:int32(var_111_416, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_112_41D, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_113_426, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_114_42D, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_115_436, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:uint32[](var_116_43D, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_117_446, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_118_44D, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_119_456, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:int32(var_120_45F, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_118_44D), ldloc:int32(var_120_45F)), ldloc:int32[](var_2_26), ldc.i4:int32(4))
stloc:int32(var_121_477, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_122_47E, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_123_487, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_124_48E, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_125_497, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_126_49E, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_127_4A7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:uint32[](var_128_4AE, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_129_4B7, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:int32(var_130_4C0, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_122_47E), ldloc:int32(var_130_4C0)), ldloc:int32[](var_2_26), ldc.i4:int32(8))
stloc:int32(var_131_4D8, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_132_4DF, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_133_4E8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32[](var_134_4EF, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_135_4F8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32[](var_136_4FF, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_137_508, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32(var_138_513, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_136_4FF), ldloc:int32(var_137_508)))
stloc:uint32[](var_139_51A, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_140_523, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:int32(var_141_52C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_134_4EF), ldloc:int32(var_141_52C)), ldloc:int32[](var_2_26), ldc.i4:int32(12))
stloc:int32(var_142_545, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_143_54C, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_144_555, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:uint32[](var_145_55C, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_146_565, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:uint32[](var_147_56C, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_148_575, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_149_57C, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_150_585, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32(var_151_590, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_149_57C), ldloc:int32(var_150_585)))
stloc:int32(var_152_599, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:int32(var_153_5A1, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_154_5A8, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_155_5B1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_156_5B8, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_157_5C1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(0)))
stloc:uint32[](var_158_5C8, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_159_5D1, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32(var_160_5DC, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_158_5C8), ldloc:int32(var_159_5D1)))
stloc:uint32[](var_161_5E3, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_162_5EC, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32(var_163_5F7, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_161_5E3), ldloc:int32(var_162_5EC)))
stloc:int32(var_164_600, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:int32(var_165_608, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_166_60F, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_167_618, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_168_61F, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_169_628, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:uint32[](var_170_62F, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_171_638, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32[](var_172_63F, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_173_648, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_174_653, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_172_63F), ldloc:int32(var_173_648)))
stloc:int32(var_175_65C, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(1)))
stloc:int32(var_176_664, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_177_66B, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_178_674, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:uint32[](var_179_67B, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_180_684, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(2)))
stloc:uint32[](var_181_68B, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_182_694, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32[](var_183_69B, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_184_6A4, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
stloc:uint32(var_185_6AF, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_183_69B), ldloc:int32(var_184_6A4)))
stloc:int32(var_186_6B8, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(3)))
stloc:int32(var_187_6BB, ldc.i4:int32(0))
stloc:uint32(var_188_6C5, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldloc:int32(var_187_6BB)))
stloc:uint32(var_8_6CE, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_97_6D7, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(8)))
stloc:uint32(var_10_6E1, call:uint32(Cast5Engine::IntsTo32bits, ldloc:int32[](var_2_26), ldc.i4:int32(12)))
stloc:int32(var_189_6E9, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_2_26)))
stloc:uint32[](var_190_6F0, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_191_6F9, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_192_700, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_193_709, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:uint32[](var_194_710, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_195_719, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(6)))
stloc:uint32[](var_196_720, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_197_729, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(7)))
stloc:int32(var_198_732, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(4)))
stloc:uint32(var_199_73D, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_194_710), ldloc:int32(var_198_732)))
stloc:int32(var_200_740, ldc.i4:int32(0))
call:void(Cast5Engine::Bits32ToInts, ldloc:uint32(var_199_73D), ldloc:int32[](var_1_1E), ldloc:int32(var_200_740))
stloc:int32(var_201_752, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_202_759, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_203_762, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32[](var_204_769, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_205_772, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:uint32[](var_206_779, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_207_782, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(0)))
stloc:uint32[](var_208_789, ldsfld:uint32[](Cast5Engine::S8))
stloc:int32(var_209_792, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(1)))
stloc:int32(var_210_79B, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_2_26), ldc.i4:int32(5)))
call:void(Cast5Engine::Bits32ToInts, ldelem:uint32([mscorlib]System.UInt32, ldloc:uint32[](var_208_789), ldloc:int32(var_210_79B)), ldloc:int32[](var_1_1E), ldc.i4:int32(4))
stloc:int32(var_211_7B3, callgetter:int32(Array::get_Length, ldloc:int32[][exp:Array](var_1_1E)))
stloc:uint32[](var_212_7BA, ldsfld:uint32[](Cast5Engine::S5))
stloc:int32(var_213_7C3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_214_7CA, ldsfld:uint32[](Cast5Engine::S6))
stloc:int32(var_215_7D3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(3)))
stloc:uint32[](var_216_7DA, ldsfld:uint32[](Cast5Engine::S7))
stloc:int32(var_217_7E3, ldelem:int32([mscorlib]System.Int32, ldloc:int32[](var_1_1E), ldc.i4:int32(2)))
}
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: 0x0600B736 RID: 46902 RVA: 0x00287630 File Offset: 0x00285830
[Token(Token = "0x600B736")]
[Address(RVA = "0x1DBA8D0", Offset = "0x1DB96D0", VA = "0x181DBA8D0", Slot = "17")]
internal virtual int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[2];
this.CAST_Encipher(num, num2, array);
uint num3 = array[0];
uint num4 = array[0];
return 8;
}
// Token: 0x0600B737 RID: 46903 RVA: 0x00287678 File Offset: 0x00285878
[Token(Token = "0x600B737")]
[Address(RVA = "0x1DBA7C0", Offset = "0x1DB95C0", VA = "0x181DBA7C0", Slot = "18")]
internal virtual int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[2];
this.CAST_Decipher(num, num2, array);
uint num3 = array[0];
uint num4 = array[0];
return 8;
}
// Token: 0x0600B738 RID: 46904 RVA: 0x002876C0 File Offset: 0x002858C0
[Token(Token = "0x600B738")]
[Address(RVA = "0x1DBA9E0", Offset = "0x1DB97E0", VA = "0x181DBA9E0")]
internal static uint F1(uint D, uint Kmi, int Kri)
{
uint[] s = Cast5Engine.S1;
uint num = Cast5Engine.S2[(int)Kmi];
uint num2 = Cast5Engine.S3[(int)Kmi];
uint num3 = Cast5Engine.S4[(int)Kmi];
num3 += num;
return num3 - num2;
}
// Token: 0x0600B739 RID: 46905 RVA: 0x00287708 File Offset: 0x00285908
[Token(Token = "0x600B739")]
[Address(RVA = "0x1DBAB20", Offset = "0x1DB9920", VA = "0x181DBAB20")]
internal static uint F2(uint D, uint Kmi, int Kri)
{
uint num = Cast5Engine.S1[(int)Kmi];
uint num2 = Cast5Engine.S2[(int)Kmi];
uint num3 = Cast5Engine.S3[(int)Kmi];
uint num4 = Cast5Engine.S4[(int)Kmi];
num3 -= num2;
num3 += num;
return num4;
}
// Token: 0x0600B73A RID: 46906 RVA: 0x00287754 File Offset: 0x00285954
[Token(Token = "0x600B73A")]
[Address(RVA = "0x1DBAC60", Offset = "0x1DB9A60", VA = "0x181DBAC60")]
internal static uint F3(uint D, uint Kmi, int Kri)
{
uint[] s = Cast5Engine.S1;
uint[] s2 = Cast5Engine.S2;
uint[] s3 = Cast5Engine.S3;
uint[] s4 = Cast5Engine.S4;
return D;
}
// Token: 0x0600B73B RID: 46907 RVA: 0x00287780 File Offset: 0x00285980
[Token(Token = "0x600B73B")]
[Address(RVA = "0x1DBA4F0", Offset = "0x1DB92F0", VA = "0x181DBA4F0")]
internal void CAST_Encipher(uint L0, uint R0, uint[] result)
{
uint num;
if (num - 1U <= (uint)15)
{
uint num2 = num - 1U;
uint num3 = this._Km[(int)num];
int num4 = this._Kr[(int)num];
uint num5 = Cast5Engine.F2(R0, num3, num4);
uint[] km = this._Km;
int[] kr = this._Kr;
uint num6 = Cast5Engine.F3(R0, num3, num4);
uint[] km2 = this._Km;
int[] kr2 = this._Kr;
uint num7 = Cast5Engine.F1(R0, num3, num4);
}
num += (uint)1;
while (num <= this.S7)
{
}
result[0] = R0;
result[0] = L0;
}
// Token: 0x0600B73C RID: 46908 RVA: 0x00287818 File Offset: 0x00285A18
[Token(Token = "0x600B73C")]
[Address(RVA = "0x1DBA210", Offset = "0x1DB9010", VA = "0x181DBA210")]
internal void CAST_Decipher(uint L16, uint R16, uint[] result)
{
int rounds = this._rounds;
if (rounds > 0)
{
int num = rounds - 1;
if (num <= 15)
{
uint num2 = this._Km[rounds];
int[] kr = this._Kr;
uint num3 = Cast5Engine.F2(R16, num2, rounds);
uint[] km = this._Km;
int[] kr2 = this._Kr;
uint num4 = Cast5Engine.F3(R16, num2, rounds);
uint[] km2 = this._Km;
int[] kr3 = this._Kr;
uint num5 = Cast5Engine.F1(R16, num2, rounds);
}
}
result[0] = R16;
result[0] = L16;
}
// Token: 0x0600B73D RID: 46909 RVA: 0x002878A4 File Offset: 0x00285AA4
[Token(Token = "0x600B73D")]
[Address(RVA = "0x1DBA160", Offset = "0x1DB8F60", VA = "0x181DBA160")]
internal static void Bits32ToInts(uint inData, int[] b, int offset)
{
b[0] = (int)inData;
b[0] = (int)inData;
int num = offset + 1;
b[0] = (int)inData;
b[0] = (int)inData;
}
// Token: 0x0600B73E RID: 46910 RVA: 0x002878DC File Offset: 0x00285ADC
[Token(Token = "0x600B73E")]
[Address(RVA = "0x1DBAF80", Offset = "0x1DB9D80", VA = "0x181DBAF80")]
internal static uint IntsTo32bits(int[] b, int i)
{
int length = b.Length;
int num = i + 1;
throw new NullReferenceException();
}
// Token: 0x0600B73F RID: 46911 RVA: 0x002878FC File Offset: 0x00285AFC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B73F")]
[Address(RVA = "0x1DC1BC0", Offset = "0x1DC09C0", VA = "0x181DC1BC0")]
static Cast5Engine()
{
uint[] array = new uint[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.37454D933508E238CFB980F1077B24ADA4A480F4).FieldHandle);
Cast5Engine.S1 = array;
uint[] array2 = new uint[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.555BD8216452A1A1E3CB7AD8F4DAE8F41FB30380).FieldHandle);
Cast5Engine.S2 = array2;
uint[] array3 = new uint[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EF813A47B13574822D335279EF445343654A4F04).FieldHandle);
Cast5Engine.S3 = array3;
uint[] array4 = new uint[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.A47DBBBB6655DAA5E024374BB9C8AA44FF40D444).FieldHandle);
Cast5Engine.S4 = array4;
uint[] array5 = new uint[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.84F6B4137736E2F6671FC8787A500AC5C6E1D6AC).FieldHandle);
Cast5Engine.S5 = array5;
uint[] array6 = new uint[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.17651A9FA4DEA6C24D1287324CF4A640D080FE8E).FieldHandle);
Cast5Engine.S6 = array6;
uint[] array7 = new uint[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.7FF0A15672FF2807983AB77C0DA74928986427C0).FieldHandle);
Cast5Engine.S7 = array7;
uint[] array8 = new uint[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.B539B4DC5A69E3FE6AB10F668DDCA96E9D51235B).FieldHandle);
Cast5Engine.S8 = array8;
}
// Token: 0x04007428 RID: 29736
[Token(Token = "0x4007428")]
private static readonly uint[] S1;
// Token: 0x04007429 RID: 29737
[Token(Token = "0x4007429")]
private static readonly uint[] S2;
// Token: 0x0400742A RID: 29738
[Token(Token = "0x400742A")]
private static readonly uint[] S3;
// Token: 0x0400742B RID: 29739
[Token(Token = "0x400742B")]
private static readonly uint[] S4;
// Token: 0x0400742C RID: 29740
[Token(Token = "0x400742C")]
private static readonly uint[] S5;
// Token: 0x0400742D RID: 29741
[Token(Token = "0x400742D")]
private static readonly uint[] S6;
// Token: 0x0400742E RID: 29742
[Token(Token = "0x400742E")]
private static readonly uint[] S7;
// Token: 0x0400742F RID: 29743
[Token(Token = "0x400742F")]
private static readonly uint[] S8;
// Token: 0x04007430 RID: 29744
[Token(Token = "0x4007430")]
internal static readonly int MAX_ROUNDS;
// Token: 0x04007431 RID: 29745
[Token(Token = "0x4007431")]
internal static readonly int RED_ROUNDS;
// Token: 0x04007432 RID: 29746
[Token(Token = "0x4007432")]
private const int BLOCK_SIZE = 8;
// Token: 0x04007433 RID: 29747
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007433")]
private int[] _Kr;
// Token: 0x04007434 RID: 29748
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007434")]
private uint[] _Km;
// Token: 0x04007435 RID: 29749
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007435")]
private bool _encrypting;
// Token: 0x04007436 RID: 29750
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007436")]
private byte[] _workingKey;
// Token: 0x04007437 RID: 29751
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007437")]
private int _rounds;
}
}
@@ -0,0 +1,388 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C89 RID: 7305
[Token(Token = "0x2001C89")]
public sealed class Cast6Engine : Cast5Engine
{
// Token: 0x0600B740 RID: 46912 RVA: 0x002879F8 File Offset: 0x00285BF8
[Token(Token = "0x600B740")]
[Address(RVA = "0x1DC3B30", Offset = "0x1DC2930", VA = "0x181DC3B30")]
public Cast6Engine()
{
int[] array = new int[48];
this._Kr = array;
uint[] array2 = new uint[48];
this._Km = array2;
int[] array3 = new int[192];
this._Tr = array3;
uint[] array4 = new uint[192];
this._Tm = array4;
uint[] array5 = new uint[8];
this._workingKey = array5;
int[] array6 = new int[17];
this._Kr = array6;
uint[] array7 = new uint[17];
this._Km = array7;
int max_ROUNDS = Cast5Engine.MAX_ROUNDS;
this._rounds = max_ROUNDS;
this.Reset();
}
// Token: 0x17001CC2 RID: 7362
// (get) Token: 0x0600B741 RID: 46913 RVA: 0x00287A90 File Offset: 0x00285C90
[Token(Token = "0x17001CC2")]
public override string AlgorithmName
{
[Token(Token = "0x600B741")]
[Address(RVA = "0x1DC3C70", Offset = "0x1DC2A70", VA = "0x181DC3C70", Slot = "11")]
get
{
return "CAST6";
}
}
// Token: 0x0600B742 RID: 46914 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B742")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "14")]
public override void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B743 RID: 46915 RVA: 0x00287AA4 File Offset: 0x00285CA4
[Token(Token = "0x600B743")]
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "15")]
public override int GetBlockSize()
{
return 16;
}
// Token: 0x0600B744 RID: 46916 RVA: 0x00287AB4 File Offset: 0x00285CB4
[Token(Token = "0x600B744")]
[Address(RVA = "0x1DC2B20", Offset = "0x1DC1920", VA = "0x181DC2B20", Slot = "16")]
internal override void SetKey(byte[] key)
{
int num = 0;
uint num2;
this._Tm[0] = num2;
num2 += (uint)1859775393;
uint num3;
this._Tr[0] = (int)num3;
num++;
num3 += (uint)(-15);
num += 8;
byte[] array = new byte[64];
uint[] workingKey = this._workingKey;
num++;
uint num4;
workingKey[0] = num4;
uint[] workingKey2 = this._workingKey;
int length = workingKey2.Length;
uint[] tm = this._Tm;
uint num5 = workingKey2[3];
uint num6 = tm[num];
int num7 = this._Tr[num];
uint num8 = Cast5Engine.F1(num5, num6, num7);
workingKey2[3] = num8;
uint[] workingKey3 = this._workingKey;
int length2 = workingKey3.Length;
uint[] tm2 = this._Tm;
int[] tr = this._Tr;
uint num10;
int num11;
uint num9 = Cast5Engine.F2(workingKey3[3], num10, num11);
workingKey3[2] = num9;
uint[] workingKey4 = this._workingKey;
int length3 = workingKey4.Length;
uint[] tm3 = this._Tm;
int[] tr2 = this._Tr;
uint num13;
int num14;
uint num12 = Cast5Engine.F3(workingKey4[2], num13, num14);
workingKey4[2] = num12;
uint[] workingKey5 = this._workingKey;
int length4 = workingKey5.Length;
uint[] tm4 = this._Tm;
int[] tr3 = this._Tr;
uint num16;
int num17;
uint num15 = Cast5Engine.F1(workingKey5[2], num16, num17);
workingKey5[1] = num15;
uint[] workingKey6 = this._workingKey;
int length5 = workingKey6.Length;
uint[] tm5 = this._Tm;
int[] tr4 = this._Tr;
uint num19;
int num20;
uint num18 = Cast5Engine.F2(workingKey6[1], num19, num20);
workingKey6[1] = num18;
uint[] workingKey7 = this._workingKey;
int length6 = workingKey7.Length;
uint[] tm6 = this._Tm;
int[] tr5 = this._Tr;
uint num22;
int num23;
uint num21 = Cast5Engine.F3(workingKey7[1], num22, num23);
workingKey7[0] = num21;
uint[] workingKey8 = this._workingKey;
int length7 = workingKey8.Length;
uint[] tm7 = this._Tm;
int[] tr6 = this._Tr;
uint num25;
int num26;
uint num24 = Cast5Engine.F1(workingKey8[0], num25, num26);
workingKey8[0] = num24;
uint[] workingKey9 = this._workingKey;
int length8 = workingKey9.Length;
uint[] tm8 = this._Tm;
int[] tr7 = this._Tr;
uint num28;
int num29;
uint num27 = Cast5Engine.F2(workingKey9[0], num28, num29);
workingKey9[3] = num27;
uint[] workingKey10 = this._workingKey;
int length9 = workingKey10.Length;
uint[] tm9 = this._Tm;
int[] tr8 = this._Tr;
uint num30 = Cast5Engine.F1(workingKey10[3], (uint)num, 8);
workingKey10[3] = num30;
uint[] workingKey11 = this._workingKey;
int length10 = workingKey11.Length;
uint[] tm10 = this._Tm;
int[] tr9 = this._Tr;
uint num32;
int num33;
uint num31 = Cast5Engine.F2(workingKey11[3], num32, num33);
workingKey11[2] = num31;
uint[] workingKey12 = this._workingKey;
int length11 = workingKey12.Length;
uint[] tm11 = this._Tm;
int[] tr10 = this._Tr;
uint num35;
int num36;
uint num34 = Cast5Engine.F3(workingKey12[2], num35, num36);
workingKey12[2] = num34;
uint[] workingKey13 = this._workingKey;
int length12 = workingKey13.Length;
uint[] tm12 = this._Tm;
int[] tr11 = this._Tr;
uint num38;
int num39;
uint num37 = Cast5Engine.F1(workingKey13[2], num38, num39);
workingKey13[1] = num37;
uint[] workingKey14 = this._workingKey;
int length13 = workingKey14.Length;
uint[] tm13 = this._Tm;
int[] tr12 = this._Tr;
uint num41;
int num42;
uint num40 = Cast5Engine.F2(workingKey14[1], num41, num42);
workingKey14[1] = num40;
uint[] workingKey15 = this._workingKey;
int length14 = workingKey15.Length;
uint[] tm14 = this._Tm;
int[] tr13 = this._Tr;
uint num44;
int num45;
uint num43 = Cast5Engine.F3(workingKey15[1], num44, num45);
workingKey15[0] = num43;
uint[] workingKey16 = this._workingKey;
int length15 = workingKey16.Length;
uint[] tm15 = this._Tm;
int[] tr14 = this._Tr;
uint num47;
int num48;
uint num46 = Cast5Engine.F1(workingKey16[0], num47, num48);
workingKey16[0] = num46;
uint[] workingKey17 = this._workingKey;
int length16 = workingKey17.Length;
uint[] tm16 = this._Tm;
num += 15;
int num49 = this._Tr[num];
uint num50 = workingKey17[0];
uint num51 = tm16[num];
uint num52 = Cast5Engine.F2(num50, num51, num49);
workingKey17[3] = num52;
uint[] workingKey18 = this._workingKey;
int[] kr = this._Kr;
uint num53 = workingKey18[0];
num.m_value = (int)num53;
uint[] workingKey19 = this._workingKey;
int[] kr2 = this._Kr;
uint num54 = workingKey19[1];
kr2[0] = (int)num54;
uint[] workingKey20 = this._workingKey;
int[] kr3 = this._Kr;
uint num55 = workingKey20[2];
kr3[0] = (int)num55;
uint[] workingKey21 = this._workingKey;
int[] kr4 = this._Kr;
uint num56 = workingKey21[3];
kr4[0] = (int)num56;
uint[] workingKey22 = this._workingKey;
uint[] km = this._Km;
uint num57 = workingKey22[3];
num.m_value = (int)num57;
uint[] workingKey23 = this._workingKey;
uint[] km2 = this._Km;
uint num58 = workingKey23[2];
km2[0] = num58;
uint[] workingKey24 = this._workingKey;
uint[] km3 = this._Km;
uint num59 = workingKey24[1];
km3[0] = num59;
uint[] workingKey25 = this._workingKey;
uint[] km4 = this._Km;
uint num60 = workingKey25[0];
num++;
km4[0] = num60;
}
// Token: 0x0600B745 RID: 46917 RVA: 0x0028804C File Offset: 0x0028624C
[Token(Token = "0x600B745")]
[Address(RVA = "0x1DC2970", Offset = "0x1DC1770", VA = "0x181DC2970", Slot = "17")]
internal override int EncryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[4];
this.CAST_Encipher(num, num2, num3, num4, array);
uint num5 = array[0];
uint num6 = array[0];
uint num7 = array[1];
uint num8 = array[1];
return 16;
}
// Token: 0x0600B746 RID: 46918 RVA: 0x002880C0 File Offset: 0x002862C0
[Token(Token = "0x600B746")]
[Address(RVA = "0x1DC27C0", Offset = "0x1DC15C0", VA = "0x181DC27C0", Slot = "18")]
internal override int DecryptBlock(byte[] src, int srcIndex, byte[] dst, int dstIndex)
{
uint num = Pack.BE_To_UInt32(src, srcIndex);
uint num2 = Pack.BE_To_UInt32(src, srcIndex);
uint num3 = Pack.BE_To_UInt32(src, srcIndex);
uint num4 = Pack.BE_To_UInt32(src, srcIndex);
uint[] array = new uint[4];
this.CAST_Decipher(num, num2, num3, num4, array);
uint num5 = array[0];
uint num6 = array[0];
uint num7 = array[1];
uint num8 = array[1];
return 16;
}
// Token: 0x0600B747 RID: 46919 RVA: 0x00288134 File Offset: 0x00286334
[Token(Token = "0x600B747")]
[Address(RVA = "0x1DC2330", Offset = "0x1DC1130", VA = "0x181DC2330")]
private void CAST_Encipher(uint A, uint B, uint C, uint D, uint[] result)
{
int num = 0;
uint[] km = this._Km;
int[] kr = this._Kr;
uint[] km2 = this._Km;
int[] kr2 = this._Kr;
uint num3;
int num4;
uint num2 = Cast5Engine.F2(C, num3, num4);
uint[] km3 = this._Km;
int[] kr3 = this._Kr;
uint[] km4 = this._Km;
num += 3;
int[] kr4 = this._Kr;
uint num5 = km4[num];
int num6 = kr4[num];
uint num7 = Cast5Engine.F1(A, num5, num6);
num += 4;
uint[] km5 = this._Km;
int[] kr5 = this._Kr;
uint num8 = Cast5Engine.F1(A, num5, num6);
uint[] km6 = this._Km;
int[] kr6 = this._Kr;
uint[] km7 = this._Km;
uint num10;
uint num9 = num10 + 1U;
int num11 = this._Kr[(int)num9];
uint num12 = km7[(int)num9];
uint num13 = Cast5Engine.F2(C, num12, num11);
uint[] km8 = this._Km;
int[] kr7 = this._Kr;
num10 += (uint)4;
}
// Token: 0x0600B748 RID: 46920 RVA: 0x00288234 File Offset: 0x00286434
[Token(Token = "0x600B748")]
[Address(RVA = "0x1DC1EA0", Offset = "0x1DC0CA0", VA = "0x181DC1EA0")]
private void CAST_Decipher(uint A, uint B, uint C, uint D, uint[] result)
{
uint[] km = this._Km;
int[] kr = this._Kr;
uint[] km2 = this._Km;
uint num2;
uint num = num2 + 1U;
int num3 = this._Kr[(int)num];
uint num4 = km2[(int)num];
uint num5 = Cast5Engine.F2(C, num4, num3);
uint[] km3 = this._Km;
int[] kr2 = this._Kr;
uint[] km4 = this._Km;
num2 += (uint)3;
int[] kr3 = this._Kr;
uint num6 = km4[(int)num2];
int num7 = kr3[(int)num2];
uint num8 = Cast5Engine.F1(A, num6, num7);
uint[] km5 = this._Km;
int[] kr4 = this._Kr;
uint num9 = Cast5Engine.F1(A, num6, num7);
uint[] km6 = this._Km;
int[] kr5 = this._Kr;
uint[] km7 = this._Km;
uint num11;
uint num10 = num11 + 1U;
int num12 = this._Kr[(int)num10];
uint num13 = km7[(int)num10];
uint num14 = Cast5Engine.F2(C, num13, num12);
uint[] km8 = this._Km;
int[] kr6 = this._Kr;
}
// Token: 0x04007438 RID: 29752
[Token(Token = "0x4007438")]
private const int ROUNDS = 12;
// Token: 0x04007439 RID: 29753
[Token(Token = "0x4007439")]
private const int BLOCK_SIZE = 16;
// Token: 0x0400743A RID: 29754
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400743A")]
private int[] _Kr;
// Token: 0x0400743B RID: 29755
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400743B")]
private uint[] _Km;
// Token: 0x0400743C RID: 29756
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400743C")]
private int[] _Tr;
// Token: 0x0400743D RID: 29757
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x400743D")]
private uint[] _Tm;
// Token: 0x0400743E RID: 29758
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x400743E")]
private uint[] _workingKey;
}
}
@@ -0,0 +1,127 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C8A RID: 7306
[Token(Token = "0x2001C8A")]
public class ChaCha7539Engine : Salsa20Engine
{
// Token: 0x0600B749 RID: 46921 RVA: 0x00288340 File Offset: 0x00286540
[Token(Token = "0x600B749")]
[Address(RVA = "0x1DC3EC0", Offset = "0x1DC2CC0", VA = "0x181DC3EC0")]
public ChaCha7539Engine()
{
}
// Token: 0x17001CC3 RID: 7363
// (get) Token: 0x0600B74A RID: 46922 RVA: 0x00288354 File Offset: 0x00286554
[Token(Token = "0x17001CC3")]
public override string AlgorithmName
{
[Token(Token = "0x600B74A")]
[Address(RVA = "0x1DC3F20", Offset = "0x1DC2D20", VA = "0x181DC3F20", Slot = "11")]
get
{
int rounds = this.rounds;
return "ChaCha7539" + rounds;
}
}
// Token: 0x17001CC4 RID: 7364
// (get) Token: 0x0600B74B RID: 46923 RVA: 0x00288374 File Offset: 0x00286574
[Token(Token = "0x17001CC4")]
protected override int NonceSize
{
[Token(Token = "0x600B74B")]
[Address(RVA = "0x4B1E00", Offset = "0x4B0C00", VA = "0x1804B1E00", Slot = "10")]
get
{
return 12;
}
}
// Token: 0x0600B74C RID: 46924 RVA: 0x00288384 File Offset: 0x00286584
[Token(Token = "0x600B74C")]
[Address(RVA = "0x1DC3CA0", Offset = "0x1DC2AA0", VA = "0x181DC3CA0", Slot = "13")]
protected override void AdvanceCounter()
{
/*
An exception occurred when decompiling this method (0600B74C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine::AdvanceCounter()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_16:
stloc:InvalidOperationException(var_0_20, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("attempt to increase counter past 2^32.")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B74D RID: 46925 RVA: 0x002883B4 File Offset: 0x002865B4
[Token(Token = "0x600B74D")]
[Address(RVA = "0x1DC3D70", Offset = "0x1DC2B70", VA = "0x181DC3D70", Slot = "16")]
protected override void ResetCounter()
{
uint[] engineState = this.engineState;
}
// Token: 0x0600B74E RID: 46926 RVA: 0x002883D0 File Offset: 0x002865D0
[Token(Token = "0x600B74E")]
[Address(RVA = "0x1DC3DB0", Offset = "0x1DC2BB0", VA = "0x181DC3DB0", Slot = "17")]
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
{
/*
An exception occurred when decompiling this method (0600B74E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ChaCha7539Engine::SetKey(System.Byte[],System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_51:
stloc:ArgumentException(var_12_58, newobj:ArgumentException(ArgumentException::.ctor, ldloc:string(var_11)))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B74F RID: 46927 RVA: 0x00288438 File Offset: 0x00286638
[Token(Token = "0x600B74F")]
[Address(RVA = "0x1DC3D30", Offset = "0x1DC2B30", VA = "0x181DC3D30", Slot = "18")]
protected override void GenerateKeyStream(byte[] output)
{
uint[] x = this.x;
uint[] engineState = this.engineState;
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
uint[] x2 = this.x;
int num = 0;
Pack.UInt32_To_LE(x2, output, num);
}
}
}
@@ -0,0 +1,205 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C8B RID: 7307
[Token(Token = "0x2001C8B")]
public class ChaChaEngine : Salsa20Engine
{
// Token: 0x0600B750 RID: 46928 RVA: 0x00288474 File Offset: 0x00286674
[Token(Token = "0x600B750")]
[Address(RVA = "0x1DC4B40", Offset = "0x1DC3940", VA = "0x181DC4B40")]
public ChaChaEngine()
{
}
// Token: 0x0600B751 RID: 46929 RVA: 0x00288488 File Offset: 0x00286688
[Token(Token = "0x600B751")]
[Address(RVA = "0x1DC4AE0", Offset = "0x1DC38E0", VA = "0x181DC4AE0")]
public ChaChaEngine(int rounds)
: base(rounds)
{
}
// Token: 0x17001CC5 RID: 7365
// (get) Token: 0x0600B752 RID: 46930 RVA: 0x0028849C File Offset: 0x0028669C
[Token(Token = "0x17001CC5")]
public override string AlgorithmName
{
[Token(Token = "0x600B752")]
[Address(RVA = "0x1DC4BA0", Offset = "0x1DC39A0", VA = "0x181DC4BA0", Slot = "11")]
get
{
int rounds = this.rounds;
return "ChaCha" + rounds;
}
}
// Token: 0x0600B753 RID: 46931 RVA: 0x002884BC File Offset: 0x002866BC
[Token(Token = "0x600B753")]
[Address(RVA = "0x1DC3F80", Offset = "0x1DC2D80", VA = "0x181DC3F80", Slot = "13")]
protected override void AdvanceCounter()
{
if (this.engineState.Length == 12)
{
uint[] engineState = this.engineState;
}
}
// Token: 0x0600B754 RID: 46932 RVA: 0x002884E8 File Offset: 0x002866E8
[Token(Token = "0x600B754")]
[Address(RVA = "0x1DC4950", Offset = "0x1DC3750", VA = "0x181DC4950", Slot = "16")]
protected override void ResetCounter()
{
uint[] engineState = this.engineState;
int num = 0;
engineState[6] = (uint)num;
engineState[6] = (uint)num;
}
// Token: 0x0600B755 RID: 46933 RVA: 0x00288514 File Offset: 0x00286714
[Token(Token = "0x600B755")]
[Address(RVA = "0x1DC49B0", Offset = "0x1DC37B0", VA = "0x181DC49B0", Slot = "17")]
protected override void SetKey(byte[] keyBytes, byte[] ivBytes)
{
if (keyBytes != 0)
{
int length = keyBytes.Length;
uint[] engineState = this.engineState;
int num = 0;
base.PackTauOrSigma(length, engineState, num);
uint[] engineState2 = this.engineState;
int num2 = 0;
ulong num3;
Pack.LE_To_UInt32(keyBytes, num2, engineState2, 4, (int)num3);
int length2 = keyBytes.Length;
uint[] engineState3 = this.engineState;
ulong num4;
Pack.LE_To_UInt32(keyBytes, length2, engineState3, 8, (int)num4);
}
uint[] engineState4 = this.engineState;
int num5 = 0;
uint num6;
ulong num7;
Pack.LE_To_UInt32(ivBytes, num5, engineState4, (int)num6, (int)num7);
}
// Token: 0x0600B756 RID: 46934 RVA: 0x00288598 File Offset: 0x00286798
[Token(Token = "0x600B756")]
[Address(RVA = "0x1DC3D30", Offset = "0x1DC2B30", VA = "0x181DC3D30", Slot = "18")]
protected override void GenerateKeyStream(byte[] output)
{
uint[] x = this.x;
uint[] engineState = this.engineState;
ChaChaEngine.ChachaCore(this.rounds, engineState, x);
uint[] x2 = this.x;
int num = 0;
Pack.UInt32_To_LE(x2, output, num);
}
// Token: 0x0600B757 RID: 46935 RVA: 0x002885D4 File Offset: 0x002867D4
[Token(Token = "0x600B757")]
[Address(RVA = "0x1DC3FE0", Offset = "0x1DC2DE0", VA = "0x181DC3FE0")]
internal static void ChachaCore(int rounds, uint[] input, uint[] x)
{
while (input.Length != 16 || rounds != 1)
{
}
uint num = input[2];
uint num2 = input[6];
uint num3 = input[5];
uint num4 = input[6];
uint num5 = input[0];
uint num6 = input[0];
uint num7 = input[2];
uint num8 = input[4];
uint num9 = input[3];
uint num10 = input[4];
uint num11 = input[3];
uint num12 = input[7];
uint num13 = input[1];
uint num14 = input[5];
uint num15 = input[7];
uint num16 = input[1];
if (rounds > 0)
{
int num17 = rounds - 1;
num17++;
num5 += num7;
num10 += num5;
num5 += num5;
num10 += num5;
num4 = num10;
num8 = num5;
num8 += num5;
num6 += num5;
num8 = num5;
num10 = num5;
num8 += num10;
num6 = num8;
num5 = num8;
num14 += num5;
num13 += num14;
num14 += num14;
num12 = num14;
num13 = num14;
num5 = num14;
num3 += num5;
num16 += num3;
num5 = num3;
num3 += num5;
num5 += num6;
num16 = num3;
num5 = num3;
num14 += num5;
num5 += num14;
num15 = num14;
num14 += num15;
num6 += num13;
num3 += num14;
num6 += num14;
num3 += num14;
num13 += num16;
num10 += num14;
num13 += num14;
num10 += num14;
num15 = num10;
num8 += num14;
num5 = num14;
num14 = num8;
num16 += num14;
num14 = num5;
num5 = num14;
num8 += num14;
num14 = num8;
num7 = num14;
}
uint num18 = input[0];
num5 += num18;
uint num19 = input[0];
num19 += num6;
uint num20 = input[1];
num20 += num13;
uint num21 = input[1];
num21 += num16;
uint num22 = input[2];
num22 += num7;
uint num23 = input[4];
num23 += num10;
uint num24 = input[4];
num24 += num8;
uint num25 = input[5];
num25 += num14;
uint num26 = input[5];
num26 += num3;
uint num27 = input[6];
num27 += num4;
uint num28 = input[7];
num28 += num12;
uint num29 = input[7];
num29 += num15;
}
}
}
@@ -0,0 +1,131 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C8C RID: 7308
[Token(Token = "0x2001C8C")]
public class DesEdeEngine : DesEngine
{
// Token: 0x0600B758 RID: 46936 RVA: 0x002888C4 File Offset: 0x00286AC4
[Token(Token = "0x600B758")]
[Address(RVA = "0x1DC4C00", Offset = "0x1DC3A00", VA = "0x181DC4C00", Slot = "11")]
public override void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B758)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_D5:
stloc:ArgumentException(var_24_DF, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("key size must be 16 or 24 bytes.")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CC6 RID: 7366
// (get) Token: 0x0600B759 RID: 46937 RVA: 0x002889B4 File Offset: 0x00286BB4
[Token(Token = "0x17001CC6")]
public override string AlgorithmName
{
[Token(Token = "0x600B759")]
[Address(RVA = "0x1DC5150", Offset = "0x1DC3F50", VA = "0x181DC5150", Slot = "12")]
get
{
return "DESede";
}
}
// Token: 0x0600B75A RID: 46938 RVA: 0x002889C8 File Offset: 0x00286BC8
[Token(Token = "0x600B75A")]
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "14")]
public override int GetBlockSize()
{
return 8;
}
// Token: 0x0600B75B RID: 46939 RVA: 0x002889D8 File Offset: 0x00286BD8
[Token(Token = "0x600B75B")]
[Address(RVA = "0x1DC4F20", Offset = "0x1DC3D20", VA = "0x181DC4F20", Slot = "15")]
public override int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B75B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7C:
stloc:InvalidOperationException(var_7_86, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("DESede 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B75C RID: 46940 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B75C")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "16")]
public override void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B75D RID: 46941 RVA: 0x00288A6C File Offset: 0x00286C6C
[Token(Token = "0x600B75D")]
[Address(RVA = "0x1DC50F0", Offset = "0x1DC3EF0", VA = "0x181DC50F0")]
public DesEdeEngine()
{
this.Reset();
}
// Token: 0x0400743F RID: 29759
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400743F")]
private int[] workingKey1;
// Token: 0x04007440 RID: 29760
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007440")]
private int[] workingKey2;
// Token: 0x04007441 RID: 29761
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007441")]
private int[] workingKey3;
// Token: 0x04007442 RID: 29762
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007442")]
private bool forEncryption;
}
}
@@ -0,0 +1,215 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C8D RID: 7309
[Token(Token = "0x2001C8D")]
public class DesEdeWrapEngine : IWrapper
{
// Token: 0x0600B75E RID: 46942 RVA: 0x00288A80 File Offset: 0x00286C80
[Token(Token = "0x600B75E")]
[Address(RVA = "0x1DC52E0", Offset = "0x1DC40E0", VA = "0x181DC52E0", Slot = "8")]
public virtual void Init(bool forWrapping, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B75E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_E5:
stloc:ArgumentException(var_16_F4, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("IV is not 8 octets"), ldstr:string("parameters")))
}
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: 0x17001CC7 RID: 7367
// (get) Token: 0x0600B75F RID: 46943 RVA: 0x00288B84 File Offset: 0x00286D84
[Token(Token = "0x17001CC7")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B75F")]
[Address(RVA = "0x1DC5F10", Offset = "0x1DC4D10", VA = "0x181DC5F10", Slot = "9")]
get
{
return "DESede";
}
}
// Token: 0x0600B760 RID: 46944 RVA: 0x00288B98 File Offset: 0x00286D98
[Token(Token = "0x600B760")]
[Address(RVA = "0x1DC5B00", Offset = "0x1DC4900", VA = "0x181DC5B00", Slot = "10")]
public virtual byte[] Wrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600B760)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_19D:
stloc:InvalidOperationException(var_34_1A7, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not multiple of block length")))
}
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: 0x0600B761 RID: 46945 RVA: 0x00288D50 File Offset: 0x00286F50
[Token(Token = "0x600B761")]
[Address(RVA = "0x1DC56A0", Offset = "0x1DC44A0", VA = "0x181DC56A0", Slot = "11")]
public virtual byte[] Unwrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600B761)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEdeWrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1C0:
stloc:InvalidCipherTextException(var_39_1D0, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Ciphertext not multiple of "), ldloc:int32[exp:object](var_2))))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B762 RID: 46946 RVA: 0x00288F30 File Offset: 0x00287130
[Token(Token = "0x600B762")]
[Address(RVA = "0x1DC5180", Offset = "0x1DC3F80", VA = "0x181DC5180")]
private byte[] CalculateCmsKeyChecksum(byte[] key)
{
IDigest digest = this.sha1;
int length = key.Length;
IDigest digest2 = this.sha1;
byte[] array = new byte[8];
byte[] array2 = this.digest;
int num = 0;
int num2 = 0;
ulong num3;
Array.Copy(array2, num2, array, num, (int)num3);
return array;
}
// Token: 0x0600B763 RID: 46947 RVA: 0x00288F80 File Offset: 0x00287180
[Token(Token = "0x600B763")]
[Address(RVA = "0x1DC5260", Offset = "0x1DC4060", VA = "0x181DC5260")]
private bool CheckCmsKeyChecksum(byte[] key, byte[] checksum)
{
return Arrays.ConstantTimeAreEqual(this.CalculateCmsKeyChecksum(key), checksum);
}
// Token: 0x0600B764 RID: 46948 RVA: 0x00288F9C File Offset: 0x0028719C
[Token(Token = "0x600B764")]
[Address(RVA = "0x1DC5F40", Offset = "0x1DC4D40", VA = "0x181DC5F40")]
private static byte[] reverse(byte[] bs)
{
byte[] array = new byte[bs.Length];
int num = 0;
int num2 = bs.Length;
if (num < num2)
{
num2 -= num;
num++;
}
return array;
}
// Token: 0x0600B765 RID: 46949 RVA: 0x00288FD4 File Offset: 0x002871D4
[Token(Token = "0x600B765")]
[Address(RVA = "0x1DC5EA0", Offset = "0x1DC4CA0", VA = "0x181DC5EA0")]
public DesEdeWrapEngine()
{
Sha1Digest sha1Digest = new Sha1Digest();
this.sha1 = sha1Digest;
byte[] array = new byte[20];
this.digest = array;
base..ctor();
}
// Token: 0x0600B766 RID: 46950 RVA: 0x00289004 File Offset: 0x00287204
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B766")]
[Address(RVA = "0x1DC5E40", Offset = "0x1DC4C40", VA = "0x181DC5E40")]
static DesEdeWrapEngine()
{
byte[] array = new byte[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6DFD60679846B0E2064404E9EA3E1DDCE2C5709D).FieldHandle);
DesEdeWrapEngine.IV2 = array;
}
// Token: 0x04007443 RID: 29763
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007443")]
private CbcBlockCipher engine;
// Token: 0x04007444 RID: 29764
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007444")]
private KeyParameter param;
// Token: 0x04007445 RID: 29765
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007445")]
private ParametersWithIV paramPlusIV;
// Token: 0x04007446 RID: 29766
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007446")]
private byte[] iv;
// Token: 0x04007447 RID: 29767
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007447")]
private bool forWrapping;
// Token: 0x04007448 RID: 29768
[Token(Token = "0x4007448")]
private static readonly byte[] IV2;
// Token: 0x04007449 RID: 29769
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007449")]
private readonly IDigest sha1;
// Token: 0x0400744A RID: 29770
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400744A")]
private readonly byte[] digest;
}
}
@@ -0,0 +1,305 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C8E RID: 7310
[Token(Token = "0x2001C8E")]
public class DesEngine : IBlockCipher
{
// Token: 0x0600B767 RID: 46951 RVA: 0x0028902C File Offset: 0x0028722C
[Token(Token = "0x600B767")]
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "10")]
public virtual int[] GetWorkingKey()
{
return this.workingKey;
}
// Token: 0x0600B768 RID: 46952 RVA: 0x00289040 File Offset: 0x00287240
[Token(Token = "0x600B768")]
[Address(RVA = "0x1DC6D70", Offset = "0x1DC5B70", VA = "0x181DC6D70", Slot = "11")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B768)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_28:
stloc:ArgumentException(var_6_39, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to DES init - "), ldloc:string(var_5))))
}
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: 0x17001CC8 RID: 7368
// (get) Token: 0x0600B769 RID: 46953 RVA: 0x00289088 File Offset: 0x00287288
[Token(Token = "0x17001CC8")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B769")]
[Address(RVA = "0x1DC7360", Offset = "0x1DC6160", VA = "0x181DC7360", Slot = "12")]
get
{
return "DES";
}
}
// Token: 0x17001CC9 RID: 7369
// (get) Token: 0x0600B76A RID: 46954 RVA: 0x0028909C File Offset: 0x0028729C
[Token(Token = "0x17001CC9")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B76A")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "13")]
get
{
}
}
// Token: 0x0600B76B RID: 46955 RVA: 0x002890AC File Offset: 0x002872AC
[Token(Token = "0x600B76B")]
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "14")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600B76C RID: 46956 RVA: 0x002890BC File Offset: 0x002872BC
[Token(Token = "0x600B76C")]
[Address(RVA = "0x1DC6F30", Offset = "0x1DC5D30", VA = "0x181DC6F30", Slot = "15")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B76C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.DesEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_21:
stloc:InvalidOperationException(var_4_2B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("DES 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B76D RID: 46957 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B76D")]
[Address(RVA = "0x402080", Offset = "0x400E80", VA = "0x180402080", Slot = "16")]
public virtual void Reset()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600B76E RID: 46958 RVA: 0x002890F8 File Offset: 0x002872F8
[Token(Token = "0x600B76E")]
[Address(RVA = "0x1DC6640", Offset = "0x1DC5440", VA = "0x181DC6640")]
protected static int[] GenerateWorkingKey(bool encrypting, byte[] key)
{
int[] array = new int[32];
bool[] array2 = new bool[56];
bool[] array3 = new bool[56];
int num = 0;
byte[] array4 = DesEngine.pc1;
short[] array5 = DesEngine.bytebit;
num++;
array[0] = num;
array[0] = num;
byte[] array6 = DesEngine.totrot;
int length = array2.Length;
byte b = (byte)((int)b + num);
num++;
byte[] array7 = DesEngine.totrot;
int length2 = array2.Length;
uint num2;
byte b2 = (byte)((uint)b2 + num2);
num2 += (uint)1;
byte b3 = DesEngine.pc2[num];
if ("{il2cpp array field local7->}" != (ulong)0L)
{
int num3 = DesEngine.bigbyte[num];
array[0] = num3;
}
byte[] array8 = DesEngine.pc2;
if ("{il2cpp array field local7->}" != (ulong)0L)
{
int num4 = DesEngine.bigbyte[num];
array[0] = num4;
}
num++;
num++;
uint num5;
if (num5 > (uint)(-2))
{
}
int num6 = 0;
int num7 = array.Length;
int num8;
num7 = num8;
array[0] = num8;
num6 += 2;
array[0] = num7;
while (num6 != 32)
{
}
return array;
}
// Token: 0x0600B76F RID: 46959 RVA: 0x00289220 File Offset: 0x00287420
[Token(Token = "0x600B76F")]
[Address(RVA = "0x1DC5FF0", Offset = "0x1DC4DF0", VA = "0x181DC5FF0")]
internal static void DesFunc(int[] wKey, byte[] input, int inOff, byte[] outBytes, int outOff)
{
uint num = Pack.BE_To_UInt32(input, inOff);
uint num2 = Pack.BE_To_UInt32(input, inOff);
int num3 = 0;
uint[] sp = DesEngine.SP7;
uint[] sp2 = DesEngine.SP5;
uint[] sp3 = DesEngine.SP3;
uint[] sp4 = DesEngine.SP1;
uint[] sp5 = DesEngine.SP8;
uint[] sp6 = DesEngine.SP6;
uint[] sp7 = DesEngine.SP4;
uint[] sp8 = DesEngine.SP2;
num3 += 4;
}
// Token: 0x0600B770 RID: 46960 RVA: 0x0028929C File Offset: 0x0028749C
[Token(Token = "0x600B770")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public DesEngine()
{
this.Reset();
}
// Token: 0x0600B771 RID: 46961 RVA: 0x002892B0 File Offset: 0x002874B0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B771")]
[Address(RVA = "0x1DC7060", Offset = "0x1DC5E60", VA = "0x181DC7060")]
static DesEngine()
{
short[] array = new short[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.4FFC8339E09825A68B861995F9C660EB11DBF13D).FieldHandle);
DesEngine.bytebit = array;
int[] array2 = new int[24];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.C105B70BED997DB5D36E1D2E84C1EFCB445A428C).FieldHandle);
DesEngine.bigbyte = array2;
byte[] array3 = new byte[56];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.DC2B830D8CD59AD6A4E4332D21CA0DCA2821AD82).FieldHandle);
DesEngine.pc1 = array3;
byte[] array4 = new byte[16];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.B4FBD02AAB5B16E0F4BD858DA5D9E348F3CE501D).FieldHandle);
DesEngine.totrot = array4;
byte[] array5 = new byte[48];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.62BAB0F245E66C3EB982CF5A7015F0A7C3382283).FieldHandle);
DesEngine.pc2 = array5;
uint[] array6 = new uint[64];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.04B9E6B1364BBA4125AE2866E09C57C9E8CD6DA6).FieldHandle);
DesEngine.SP1 = array6;
uint[] array7 = new uint[64];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.3D6EB645BC212077C1B37A3A32CA2A62F7B39018).FieldHandle);
DesEngine.SP2 = array7;
uint[] array8 = new uint[64];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.821D1E62CD072AE9EC73D238C7DE19C5C5F3A7D8).FieldHandle);
DesEngine.SP3 = array8;
uint[] array9 = new uint[64];
RuntimeHelpers.InitializeArray(array9, fieldof(<PrivateImplementationDetails>.64354464C9074B5BB4369689AAA131961CD1EF19).FieldHandle);
DesEngine.SP4 = array9;
uint[] array10 = new uint[64];
RuntimeHelpers.InitializeArray(array10, fieldof(<PrivateImplementationDetails>.3F653EBF39CFCB2FD7FF335DC96E82F3CDFDF0C7).FieldHandle);
DesEngine.SP5 = array10;
uint[] array11 = new uint[64];
RuntimeHelpers.InitializeArray(array11, fieldof(<PrivateImplementationDetails>.6D7292FF64ED402BBFFF5E7534C0980BEBF0EEB1).FieldHandle);
DesEngine.SP6 = array11;
uint[] array12 = new uint[64];
RuntimeHelpers.InitializeArray(array12, fieldof(<PrivateImplementationDetails>.FC9EEBC457831129D4AF4FF84333B481F4BED60E).FieldHandle);
DesEngine.SP7 = array12;
uint[] array13 = new uint[64];
RuntimeHelpers.InitializeArray(array13, fieldof(<PrivateImplementationDetails>.4C44594E2C603D85EC6195B1A7A6C5876CBB58E2).FieldHandle);
DesEngine.SP8 = array13;
}
// Token: 0x0400744B RID: 29771
[Token(Token = "0x400744B")]
internal const int BLOCK_SIZE = 8;
// Token: 0x0400744C RID: 29772
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400744C")]
private int[] workingKey;
// Token: 0x0400744D RID: 29773
[Token(Token = "0x400744D")]
private static readonly short[] bytebit;
// Token: 0x0400744E RID: 29774
[Token(Token = "0x400744E")]
private static readonly int[] bigbyte;
// Token: 0x0400744F RID: 29775
[Token(Token = "0x400744F")]
private static readonly byte[] pc1;
// Token: 0x04007450 RID: 29776
[Token(Token = "0x4007450")]
private static readonly byte[] totrot;
// Token: 0x04007451 RID: 29777
[Token(Token = "0x4007451")]
private static readonly byte[] pc2;
// Token: 0x04007452 RID: 29778
[Token(Token = "0x4007452")]
private static readonly uint[] SP1;
// Token: 0x04007453 RID: 29779
[Token(Token = "0x4007453")]
private static readonly uint[] SP2;
// Token: 0x04007454 RID: 29780
[Token(Token = "0x4007454")]
private static readonly uint[] SP3;
// Token: 0x04007455 RID: 29781
[Token(Token = "0x4007455")]
private static readonly uint[] SP4;
// Token: 0x04007456 RID: 29782
[Token(Token = "0x4007456")]
private static readonly uint[] SP5;
// Token: 0x04007457 RID: 29783
[Token(Token = "0x4007457")]
private static readonly uint[] SP6;
// Token: 0x04007458 RID: 29784
[Token(Token = "0x4007458")]
private static readonly uint[] SP7;
// Token: 0x04007459 RID: 29785
[Token(Token = "0x4007459")]
private static readonly uint[] SP8;
}
}
@@ -0,0 +1,867 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C8F RID: 7311
[Token(Token = "0x2001C8F")]
public class Dstu7624Engine : IBlockCipher
{
// Token: 0x0600B772 RID: 46962 RVA: 0x0028941C File Offset: 0x0028761C
[Token(Token = "0x600B772")]
[Address(RVA = "0x1DCB460", Offset = "0x1DCA260", VA = "0x181DCB460")]
public Dstu7624Engine(int blockSizeBits)
{
/*
An exception occurred when decompiling this method (0600B772)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:ArgumentException(var_2_30, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B773 RID: 46963 RVA: 0x0028945C File Offset: 0x0028765C
[Token(Token = "0x600B773")]
[Address(RVA = "0x1DC82B0", Offset = "0x1DC70B0", VA = "0x181DC82B0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B773)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A8:
stloc:ArgumentException(var_23_1B2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Unsupported key length")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B774 RID: 46964 RVA: 0x0028961C File Offset: 0x0028781C
[Token(Token = "0x600B774")]
[Address(RVA = "0x1DCAE30", Offset = "0x1DC9C30", VA = "0x181DCAE30")]
private void WorkingKeyExpandKT(ulong[] workingKey, ulong[] tempKeys)
{
do
{
ulong[] array = new ulong[this.wordsInBlock];
ulong[] array2 = new ulong[this.wordsInBlock];
ulong[] array3 = new ulong[this.wordsInBlock];
this.internalState = array3;
int num = this.wordsInBlock;
num++;
int num2 = this.wordsInBlock;
if (num2 != this.wordsInKey)
{
int num3 = 0;
int num4 = 0;
Array.Copy(workingKey, num4, array, num3, num2);
}
int length = array.Length;
int num5 = 0;
int num6 = 0;
Array.Copy(workingKey, num6, array, num5, length);
int length2 = array2.Length;
int num7 = 0;
int num8 = 0;
Array.Copy(workingKey, num7, array2, num8, length2);
ulong[] array4 = this.internalState;
int num9 = 0;
int num10 = 0;
if (num10 < array4.Length)
{
num9++;
ulong[] array5 = this.internalState;
}
this.EncryptionRound();
ulong[] array6 = this.internalState;
int num11 = 0;
int num12 = 0;
if (num12 < array6.Length)
{
num11++;
if (this.internalState != 0)
{
continue;
}
}
this.EncryptionRound();
ulong[] array7 = this.internalState;
int num13 = 0;
int num14 = 0;
if (num14 >= array7.Length)
{
break;
}
num13++;
}
while (this.internalState != 0);
this.EncryptionRound();
int num15 = this.wordsInBlock;
int num16 = 0;
ulong[] array8 = this.internalState;
int num17 = 0;
Array.Copy(array8, num17, tempKeys, num16, num15);
}
// Token: 0x0600B775 RID: 46965 RVA: 0x0028978C File Offset: 0x0028798C
[Token(Token = "0x600B775")]
[Address(RVA = "0x1DCA850", Offset = "0x1DC9650", VA = "0x181DCA850")]
private void WorkingKeyExpandEven(ulong[] workingKey, ulong[] tempKey)
{
ulong[] array;
ulong[] array2;
int num2;
ulong num6;
for (;;)
{
array = new ulong[this.wordsInKey];
array2 = new ulong[this.wordsInBlock];
int num = this.wordsInKey;
num2 = 0;
int num3 = 0;
int num4 = 0;
Array.Copy(workingKey, num4, array, num3, num);
if (this.wordsInBlock > 0)
{
ulong num5 = tempKey[num2];
num2++;
num5 += num6;
array2[0] = num5;
if (this.wordsInBlock > 0)
{
ulong[] array3 = this.internalState;
ulong num7 = array2[num2];
num2++;
array3[0] = num7;
}
this.EncryptionRound();
if (this.T1 > num2)
{
ulong[] array4 = this.internalState;
num2++;
}
this.EncryptionRound();
int num8;
if (this.wordsInBlock > 0)
{
ulong[] array5 = this.internalState;
num2++;
num8 = this.wordsInBlock;
}
ulong[][] array6 = this.roundKeys;
int num9 = 0;
int num10 = 0;
ulong[] array7 = array6[num2];
Array.Copy(this.internalState, num10, array7, num9, num8);
if (this.T2 == num2)
{
return;
}
int num11 = this.wordsInBlock;
if (this.wordsInKey == num11)
{
goto IL_1DE;
}
num2 += 2;
num6 += num6;
if (num11 > 0)
{
break;
}
}
}
ulong num12 = tempKey[num2];
num2++;
num12 += num6;
array2[0] = num12;
if (this.wordsInBlock > 0)
{
ulong[] array8 = this.internalState;
num2++;
ulong num13 = array[(int)num12];
array8[0] = num13;
int num14 = this.wordsInBlock;
}
this.EncryptionRound();
if (this.T1 > num2)
{
ulong[] array9 = this.internalState;
num2++;
}
this.EncryptionRound();
int num15;
if (this.wordsInBlock > 0)
{
ulong[] array10 = this.internalState;
num2++;
num15 = this.wordsInBlock;
}
ulong[][] array11 = this.roundKeys;
int num16 = 0;
int num17 = 0;
ulong[] array12 = array11[num2];
Array.Copy(this.internalState, num17, array12, num16, num15);
if (this.T2 == num2)
{
return;
}
IL_1DE:
num2 += 2;
num6 += num6;
ulong num18 = array[0];
int length = array.Length;
uint num19;
ulong num21;
if (num19 < (uint)length)
{
uint num20 = num19 - 1U;
num21 = array[(int)num19];
num19 += (uint)1;
array[0] = num21;
}
ulong num22 = num21 - 1UL;
array[0] = num18;
}
// Token: 0x0600B776 RID: 46966 RVA: 0x002899D0 File Offset: 0x00287BD0
[Token(Token = "0x600B776")]
[Address(RVA = "0x1DCB150", Offset = "0x1DC9F50", VA = "0x181DCB150")]
private void WorkingKeyExpandOdd()
{
uint num;
if (this.T2 > num)
{
ulong[][] array = this.roundKeys;
int length = array.Length;
uint num2 = num - 1U;
ulong[] array2 = array[(int)num];
ulong[] array3 = array[(int)num2];
this.RotateLeft(array3, array2);
num += (uint)2;
}
}
// Token: 0x0600B777 RID: 46967 RVA: 0x00289A20 File Offset: 0x00287C20
[Token(Token = "0x600B777")]
[Address(RVA = "0x1DC95E0", Offset = "0x1DC83E0", VA = "0x181DC95E0", Slot = "11")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B777)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12B:
stloc:InvalidOperationException(var_21_135, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Dstu7624Engine 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: 0x0600B778 RID: 46968 RVA: 0x00289B64 File Offset: 0x00287D64
[Token(Token = "0x600B778")]
[Address(RVA = "0x1DC81B0", Offset = "0x1DC6FB0", VA = "0x181DC81B0")]
private void EncryptionRound()
{
this.SubBytes();
this.ShiftRows();
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num2 = Dstu7624Engine.MixColumn(array[num]);
num++;
array[0] = num2;
}
}
// Token: 0x0600B779 RID: 46969 RVA: 0x00289BB0 File Offset: 0x00287DB0
[Token(Token = "0x600B779")]
[Address(RVA = "0x1DC7A60", Offset = "0x1DC6860", VA = "0x181DC7A60")]
private void DecryptionRound()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num3;
ulong num2 = Dstu7624Engine.MixColumnInv(num3);
num++;
}
this.InvShiftRows();
this.InvSubBytes();
}
// Token: 0x0600B77A RID: 46970 RVA: 0x00289BEC File Offset: 0x00287DEC
[Token(Token = "0x600B77A")]
[Address(RVA = "0x1DC7420", Offset = "0x1DC6220", VA = "0x181DC7420")]
private void DecryptBlock_128(byte[] input, int inOff, byte[] output, int outOff)
{
ulong num = Pack.LE_To_UInt64(input, inOff);
ulong num2 = Pack.LE_To_UInt64(input, inOff);
ulong[][] array = this.roundKeys;
int num3 = this.roundsAmount;
int length = array[num3].Length;
ulong num4 = Dstu7624Engine.MixColumnInv(num);
num = num2;
ulong num5 = Dstu7624Engine.MixColumnInv(num);
int length2 = Dstu7624Engine.T0.Length;
int length3 = Dstu7624Engine.T1.Length;
int length4 = Dstu7624Engine.T2.Length;
byte[] t = Dstu7624Engine.T3;
int length5 = t.Length;
if (num4 != (ulong)t.Length)
{
}
byte b;
byte b2;
b -= b2;
b2 = b;
byte b3;
b2 = b3;
}
// Token: 0x0600B77B RID: 46971 RVA: 0x00289CAC File Offset: 0x00287EAC
[Token(Token = "0x600B77B")]
[Address(RVA = "0x1DC7B60", Offset = "0x1DC6960", VA = "0x181DC7B60")]
private void EncryptBlock_128(byte[] input, int inOff, byte[] output, int outOff)
{
ulong num = Pack.LE_To_UInt64(input, inOff);
ulong num2 = Pack.LE_To_UInt64(input, inOff);
int length = this.roundKeys[0].Length;
int length2 = Dstu7624Engine.S0.Length;
int length3 = Dstu7624Engine.S1.Length;
int length4 = Dstu7624Engine.S2.Length;
int length5 = Dstu7624Engine.S3.Length;
byte b;
num = Dstu7624Engine.MixColumn((ulong)b);
byte b2;
b = b2;
ulong num3 = Dstu7624Engine.MixColumn((ulong)b);
ulong num4;
num4 += (ulong)1L;
if (num4 != num3)
{
}
b = (byte)((ulong)b + num);
}
// Token: 0x0600B77C RID: 46972 RVA: 0x00289D44 File Offset: 0x00287F44
[Token(Token = "0x600B77C")]
[Address(RVA = "0x1DCA4A0", Offset = "0x1DC92A0", VA = "0x181DCA4A0")]
private void SubBytes()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
int length = Dstu7624Engine.S0.Length;
int length2 = Dstu7624Engine.S1.Length;
int length3 = Dstu7624Engine.S2.Length;
int length4 = Dstu7624Engine.S3.Length;
ulong[] array2 = this.internalState;
num++;
byte b;
num.m_value = (int)b;
}
}
// Token: 0x0600B77D RID: 46973 RVA: 0x00289DAC File Offset: 0x00287FAC
[Token(Token = "0x600B77D")]
[Address(RVA = "0x1DC8D40", Offset = "0x1DC7B40", VA = "0x181DC8D40")]
private void InvSubBytes()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
int length = Dstu7624Engine.T0.Length;
int length2 = Dstu7624Engine.T1.Length;
int length3 = Dstu7624Engine.T2.Length;
int length4 = Dstu7624Engine.T3.Length;
ulong[] array2 = this.internalState;
num++;
byte b;
num.m_value = (int)b;
}
}
// Token: 0x0600B77E RID: 46974 RVA: 0x00289E14 File Offset: 0x00288014
[Token(Token = "0x600B77E")]
[Address(RVA = "0x1DC9E10", Offset = "0x1DC8C10", VA = "0x181DC9E10")]
private void ShiftRows()
{
/*
An exception occurred when decompiling this method (0600B77E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::ShiftRows()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_145:
stloc:InvalidOperationException(var_14_14F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B77F RID: 46975 RVA: 0x00289F74 File Offset: 0x00288174
[Token(Token = "0x600B77F")]
[Address(RVA = "0x1DC86C0", Offset = "0x1DC74C0", VA = "0x181DC86C0")]
private void InvShiftRows()
{
/*
An exception occurred when decompiling this method (0600B77F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::InvShiftRows()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_161:
stloc:InvalidOperationException(var_18_16B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B780 RID: 46976 RVA: 0x0028A0F0 File Offset: 0x002882F0
[Token(Token = "0x600B780")]
[Address(RVA = "0x1DC7390", Offset = "0x1DC6190", VA = "0x181DC7390")]
private void AddRoundKey(int round)
{
ulong[][] array = this.roundKeys;
int num = 0;
if (this.T1 > num)
{
ulong[] array2 = array[round];
ulong[] array3 = this.internalState;
num++;
}
}
// Token: 0x0600B781 RID: 46977 RVA: 0x0028A128 File Offset: 0x00288328
[Token(Token = "0x600B781")]
[Address(RVA = "0x1DCA7C0", Offset = "0x1DC95C0", VA = "0x181DCA7C0")]
private void SubRoundKey(int round)
{
ulong[][] array = this.roundKeys;
int num = 0;
if (this.T1 > num)
{
ulong[] array2 = array[round];
ulong[] array3 = this.internalState;
num++;
}
}
// Token: 0x0600B782 RID: 46978 RVA: 0x0028A160 File Offset: 0x00288360
[Token(Token = "0x600B782")]
[Address(RVA = "0x1DCB1E0", Offset = "0x1DC9FE0", VA = "0x181DCB1E0")]
private void XorRoundKey(int round)
{
ulong[][] array = this.roundKeys;
int num = 0;
if (this.T1 > num)
{
ulong[] array2 = array[round];
ulong[] array3 = this.internalState;
num++;
}
}
// Token: 0x0600B783 RID: 46979 RVA: 0x0028A198 File Offset: 0x00288398
[Token(Token = "0x600B783")]
[Address(RVA = "0x1DC9270", Offset = "0x1DC8070", VA = "0x181DC9270")]
private static ulong MixColumn(ulong c)
{
return c;
}
// Token: 0x0600B784 RID: 46980 RVA: 0x0028A1A8 File Offset: 0x002883A8
[Token(Token = "0x600B784")]
[Address(RVA = "0x1DC9480", Offset = "0x1DC8280", VA = "0x181DC9480")]
private void MixColumns()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num2 = Dstu7624Engine.MixColumn(array[num]);
num++;
array[0] = num2;
}
}
// Token: 0x0600B785 RID: 46981 RVA: 0x0028A1E8 File Offset: 0x002883E8
[Token(Token = "0x600B785")]
[Address(RVA = "0x1DC9060", Offset = "0x1DC7E60", VA = "0x181DC9060")]
private static ulong MixColumnInv(ulong c)
{
/*
An exception occurred when decompiling this method (0600B785)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MixColumnInv(System.UInt64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(c), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
stloc:int64(var_0_0A, add:int64(ldloc:int64(var_0_06), ldloc:int64(var_0_06)))
stloc:int64(var_1_11, mul:int64(ldloc:int64(var_0_0A), conv.u8:uint64[exp:int64](ldc.i8:int64[exp:uint64](29))))
stloc:int64(var_1_15, add:int64(ldloc:int64(var_1_11), ldloc:int64(var_1_11)))
stloc:int64(var_2_1C, mul:uint64[exp:int64](ldloc:uint64(c), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
}
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: 0x0600B786 RID: 46982 RVA: 0x0028A214 File Offset: 0x00288414
[Token(Token = "0x600B786")]
[Address(RVA = "0x1DC93A0", Offset = "0x1DC81A0", VA = "0x181DC93A0")]
private void MixColumnsInv()
{
int num = 0;
if (this.T1 > num)
{
ulong[] array = this.internalState;
ulong num2 = Dstu7624Engine.MixColumnInv(array[num]);
num++;
array[0] = num2;
}
}
// Token: 0x0600B787 RID: 46983 RVA: 0x0028A254 File Offset: 0x00288454
[Token(Token = "0x600B787")]
[Address(RVA = "0x1DC95B0", Offset = "0x1DC83B0", VA = "0x181DC95B0")]
private static ulong MulX(ulong n)
{
/*
An exception occurred when decompiling this method (0600B787)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MulX(System.UInt64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(n), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
}
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: 0x0600B788 RID: 46984 RVA: 0x0028A268 File Offset: 0x00288468
[Token(Token = "0x600B788")]
[Address(RVA = "0x1DC9560", Offset = "0x1DC8360", VA = "0x181DC9560")]
private static ulong MulX2(ulong n)
{
/*
An exception occurred when decompiling this method (0600B788)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.UInt64 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::MulX2(System.UInt64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int64(var_0_06, mul:uint64[exp:int64](ldloc:uint64(n), conv.u8:uint64(ldc.i8:int64[exp:uint64](29))))
}
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: 0x0600B789 RID: 46985 RVA: 0x0028A27C File Offset: 0x0028847C
[Token(Token = "0x600B789")]
[Address(RVA = "0x1B36FF0", Offset = "0x1B35DF0", VA = "0x181B36FF0")]
private static ulong Rotate(int n, ulong x)
{
return x;
}
// Token: 0x0600B78A RID: 46986 RVA: 0x0028A28C File Offset: 0x0028848C
[Token(Token = "0x600B78A")]
[Address(RVA = "0x1DC9920", Offset = "0x1DC8720", VA = "0x181DC9920")]
private void RotateLeft(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600B78A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624Engine::RotateLeft(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_140:
stloc:InvalidOperationException(var_17_14A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CCA RID: 7370
// (get) Token: 0x0600B78B RID: 46987 RVA: 0x0028A3E4 File Offset: 0x002885E4
[Token(Token = "0x17001CCA")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B78B")]
[Address(RVA = "0x1DCB510", Offset = "0x1DCA310", VA = "0x181DCB510", Slot = "12")]
get
{
return "DSTU7624";
}
}
// Token: 0x0600B78C RID: 46988 RVA: 0x0028A3F8 File Offset: 0x002885F8
[Token(Token = "0x600B78C")]
[Address(RVA = "0x1DC82A0", Offset = "0x1DC70A0", VA = "0x181DC82A0", Slot = "13")]
public virtual int GetBlockSize()
{
return this.wordsInBlock;
}
// Token: 0x17001CCB RID: 7371
// (get) Token: 0x0600B78D RID: 46989 RVA: 0x0028A40C File Offset: 0x0028860C
[Token(Token = "0x17001CCB")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B78D")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "14")]
get
{
}
}
// Token: 0x0600B78E RID: 46990 RVA: 0x0028A41C File Offset: 0x0028861C
[Token(Token = "0x600B78E")]
[Address(RVA = "0x1DC98F0", Offset = "0x1DC86F0", VA = "0x181DC98F0", Slot = "15")]
public virtual void Reset()
{
ulong[] array = this.internalState;
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
}
// Token: 0x0600B78F RID: 46991 RVA: 0x0028A448 File Offset: 0x00288648
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B78F")]
[Address(RVA = "0x1DCB270", Offset = "0x1DCA070", VA = "0x181DCB270")]
static Dstu7624Engine()
{
byte[] array = new byte[256];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6F5D2C37DFCDB1E72B86BC606C0E717C70E188A4).FieldHandle);
Dstu7624Engine.S0 = array;
byte[] array2 = new byte[256];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.79039C5C22F863E8EAE0E08E1318F343680E50A8).FieldHandle);
Dstu7624Engine.S1 = array2;
byte[] array3 = new byte[256];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.340B4B55E1DFD4BADC69CA57007FC1A4CDBA7943).FieldHandle);
Dstu7624Engine.S2 = array3;
byte[] array4 = new byte[256];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.5CFF612F2058DE2C287ECA5C6407ECC471F65576).FieldHandle);
Dstu7624Engine.S3 = array4;
byte[] array5 = new byte[256];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.C1C8DE48D8C0FA876F4ED0086BB93D7EAF61E4B2).FieldHandle);
Dstu7624Engine.T0 = array5;
byte[] array6 = new byte[256];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.9F198D04FF67738AE583484145F45103ECE550CC).FieldHandle);
Dstu7624Engine.T1 = array6;
byte[] array7 = new byte[256];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.C2443D9DBCD3810F90475C6F404BEDCFEF58661E).FieldHandle);
Dstu7624Engine.T2 = array7;
byte[] array8 = new byte[256];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.BD0C733AC85AB335526865FA6269790347865705).FieldHandle);
Dstu7624Engine.T3 = array8;
}
// Token: 0x0400745A RID: 29786
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400745A")]
private ulong[] internalState;
// Token: 0x0400745B RID: 29787
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400745B")]
private ulong[] workingKey;
// Token: 0x0400745C RID: 29788
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400745C")]
private ulong[][] roundKeys;
// Token: 0x0400745D RID: 29789
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400745D")]
private int wordsInBlock;
// Token: 0x0400745E RID: 29790
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400745E")]
private int wordsInKey;
// Token: 0x0400745F RID: 29791
[Token(Token = "0x400745F")]
private const int ROUNDS_128 = 10;
// Token: 0x04007460 RID: 29792
[Token(Token = "0x4007460")]
private const int ROUNDS_256 = 14;
// Token: 0x04007461 RID: 29793
[Token(Token = "0x4007461")]
private const int ROUNDS_512 = 18;
// Token: 0x04007462 RID: 29794
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007462")]
private int roundsAmount;
// Token: 0x04007463 RID: 29795
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4007463")]
private bool forEncryption;
// Token: 0x04007464 RID: 29796
[Token(Token = "0x4007464")]
private const ulong mdsMatrix = 290207332435296513UL;
// Token: 0x04007465 RID: 29797
[Token(Token = "0x4007465")]
private const ulong mdsInvMatrix = 14616231584692868525UL;
// Token: 0x04007466 RID: 29798
[Token(Token = "0x4007466")]
private static readonly byte[] S0;
// Token: 0x04007467 RID: 29799
[Token(Token = "0x4007467")]
private static readonly byte[] S1;
// Token: 0x04007468 RID: 29800
[Token(Token = "0x4007468")]
private static readonly byte[] S2;
// Token: 0x04007469 RID: 29801
[Token(Token = "0x4007469")]
private static readonly byte[] S3;
// Token: 0x0400746A RID: 29802
[Token(Token = "0x400746A")]
private static readonly byte[] T0;
// Token: 0x0400746B RID: 29803
[Token(Token = "0x400746B")]
private static readonly byte[] T1;
// Token: 0x0400746C RID: 29804
[Token(Token = "0x400746C")]
private static readonly byte[] T2;
// Token: 0x0400746D RID: 29805
[Token(Token = "0x400746D")]
private static readonly byte[] T3;
}
}
@@ -0,0 +1,157 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C90 RID: 7312
[Token(Token = "0x2001C90")]
public class Dstu7624WrapEngine : IWrapper
{
// Token: 0x0600B790 RID: 46992 RVA: 0x0028A544 File Offset: 0x00288744
[Token(Token = "0x600B790")]
[Address(RVA = "0x1DCC4A0", Offset = "0x1DCB2A0", VA = "0x181DCC4A0")]
public Dstu7624WrapEngine(int blockSizeBits)
{
/*
An exception occurred when decompiling this method (0600B790)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::.ctor(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4A:
stloc:ArgumentException(var_3_54, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("unsupported block length: only 128/256/512 are allowed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CCC RID: 7372
// (get) Token: 0x0600B791 RID: 46993 RVA: 0x0028A5A8 File Offset: 0x002887A8
[Token(Token = "0x17001CCC")]
public string AlgorithmName
{
[Token(Token = "0x600B791")]
[Address(RVA = "0x1DCC5A0", Offset = "0x1DCB3A0", VA = "0x181DCC5A0", Slot = "4")]
get
{
return "Dstu7624WrapEngine";
}
}
// Token: 0x0600B792 RID: 46994 RVA: 0x0028A5BC File Offset: 0x002887BC
[Token(Token = "0x600B792")]
[Address(RVA = "0x1DCB540", Offset = "0x1DCA340", VA = "0x181DCB540", Slot = "5")]
public void Init(bool forWrapping, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B792)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2D:
stloc:ArgumentException(var_4_37, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Bad parameters passed to Dstu7624WrapEngine")))
}
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: 0x0600B793 RID: 46995 RVA: 0x0028A604 File Offset: 0x00288804
[Token(Token = "0x600B793")]
[Address(RVA = "0x1DCBDF0", Offset = "0x1DCABF0", VA = "0x181DCBDF0", Slot = "6")]
public byte[] Wrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600B793)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Wrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_289:
stloc:InvalidOperationException(var_43_293, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Not set for wrapping")))
}
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: 0x0600B794 RID: 46996 RVA: 0x0028A8A8 File Offset: 0x00288AA8
[Token(Token = "0x600B794")]
[Address(RVA = "0x1DCB670", Offset = "0x1DCA470", VA = "0x181DCB670", Slot = "7")]
public byte[] Unwrap(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600B794)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Dstu7624WrapEngine::Unwrap(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_292:
stloc:InvalidCipherTextException(var_44_29C, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("checksum failed")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0400746E RID: 29806
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400746E")]
private KeyParameter param;
// Token: 0x0400746F RID: 29807
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400746F")]
private Dstu7624Engine engine;
// Token: 0x04007470 RID: 29808
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007470")]
private bool forWrapping;
// Token: 0x04007471 RID: 29809
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4007471")]
private int blockSize;
}
}
@@ -0,0 +1,132 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C91 RID: 7313
[Token(Token = "0x2001C91")]
public class ElGamalEngine : IAsymmetricBlockCipher
{
// Token: 0x17001CCD RID: 7373
// (get) Token: 0x0600B795 RID: 46997 RVA: 0x0028AB54 File Offset: 0x00288D54
[Token(Token = "0x17001CCD")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B795")]
[Address(RVA = "0x1DCCE30", Offset = "0x1DCBC30", VA = "0x181DCCE30", Slot = "9")]
get
{
return "ElGamal";
}
}
// Token: 0x0600B796 RID: 46998 RVA: 0x0028AB68 File Offset: 0x00288D68
[Token(Token = "0x600B796")]
[Address(RVA = "0x1DCC630", Offset = "0x1DCB430", VA = "0x181DCC630", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B796)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ElGamalEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_BD:
stloc:ArgumentException(var_13_C7, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ElGamalPublicKeyParameters are required for encryption.")))
}
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: 0x0600B797 RID: 46999 RVA: 0x0028AC40 File Offset: 0x00288E40
[Token(Token = "0x600B797")]
[Address(RVA = "0x1DCC5D0", Offset = "0x1DCB3D0", VA = "0x181DCC5D0", Slot = "11")]
public virtual int GetInputBlockSize()
{
int num = this.bitSize;
if (!this.forEncryption)
{
num += 7;
return num + num;
}
return num;
}
// Token: 0x0600B798 RID: 47000 RVA: 0x0028AC68 File Offset: 0x00288E68
[Token(Token = "0x600B798")]
[Address(RVA = "0x1DCC600", Offset = "0x1DCB400", VA = "0x181DCC600", Slot = "12")]
public virtual int GetOutputBlockSize()
{
int num = this.bitSize;
if (!this.forEncryption)
{
return num;
}
num += 7;
return num + num;
}
// Token: 0x0600B799 RID: 47001 RVA: 0x0028AC90 File Offset: 0x00288E90
[Token(Token = "0x600B799")]
[Address(RVA = "0x1DCC920", Offset = "0x1DCB720", VA = "0x181DCC920", Slot = "13")]
public virtual byte[] ProcessBlock(byte[] input, int inOff, int length)
{
/*
An exception occurred when decompiling this method (0600B799)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.ElGamalEngine::ProcessBlock(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_16D:
stloc:DataLengthException(var_33_177, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("input too large for ElGamal cipher.\n")))
}
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: 0x0600B79A RID: 47002 RVA: 0x0028AE18 File Offset: 0x00289018
[Token(Token = "0x600B79A")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public ElGamalEngine()
{
}
// Token: 0x04007472 RID: 29810
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007472")]
private ElGamalKeyParameters key;
// Token: 0x04007473 RID: 29811
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007473")]
private SecureRandom random;
// Token: 0x04007474 RID: 29812
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007474")]
private bool forEncryption;
// Token: 0x04007475 RID: 29813
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4007475")]
private int bitSize;
}
}
@@ -0,0 +1,398 @@
using System;
using System.Collections;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C92 RID: 7314
[Token(Token = "0x2001C92")]
public class Gost28147Engine : IBlockCipher
{
// Token: 0x0600B79B RID: 47003 RVA: 0x0028AE2C File Offset: 0x0028902C
[Token(Token = "0x600B79B")]
[Address(RVA = "0x1DCDE40", Offset = "0x1DCCC40", VA = "0x181DCDE40")]
static Gost28147Engine()
{
byte[] array = new byte[128];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D3BA31FA2132E3CD69D057D38B3E3ACF0A6C8A13).FieldHandle);
Gost28147Engine.Sbox_Default = array;
byte[] array2 = new byte[128];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.CC53D7FE00E6AC1385AF09521629229467BCCC86).FieldHandle);
Gost28147Engine.ESbox_Test = array2;
byte[] array3 = new byte[128];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.2BA9E4B370D477F8C7FE286262D7ADC69CAF290E).FieldHandle);
Gost28147Engine.ESbox_A = array3;
byte[] array4 = new byte[128];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.1005BA20F99323E3F050E781BB81D1A4479AB037).FieldHandle);
Gost28147Engine.ESbox_B = array4;
byte[] array5 = new byte[128];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.E17D18DCD8392C99D47823F8CB9F43896D115FB8).FieldHandle);
Gost28147Engine.ESbox_C = array5;
byte[] array6 = new byte[128];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.7CFF7A50C8F8981091791CDB210243E8F465BC80).FieldHandle);
Gost28147Engine.ESbox_D = array6;
byte[] array7 = new byte[128];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.D3BA31FA2132E3CD69D057D38B3E3ACF0A6C8A13).FieldHandle);
Gost28147Engine.DSbox_Test = array7;
byte[] array8 = new byte[128];
RuntimeHelpers.InitializeArray(array8, fieldof(<PrivateImplementationDetails>.3A38ADC6BCFB84DE23160C1E50212DACBCD25A11).FieldHandle);
Gost28147Engine.DSbox_A = array8;
Gost28147Engine.sBoxes = Platform.CreateHashtable();
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
Gost28147Engine.AddSBox("Default", sbox_Default);
byte[] esbox_Test = Gost28147Engine.ESbox_Test;
Gost28147Engine.AddSBox("E-TEST", esbox_Test);
byte[] esbox_A = Gost28147Engine.ESbox_A;
Gost28147Engine.AddSBox("E-A", esbox_A);
byte[] esbox_B = Gost28147Engine.ESbox_B;
Gost28147Engine.AddSBox("E-B", esbox_B);
byte[] esbox_C = Gost28147Engine.ESbox_C;
Gost28147Engine.AddSBox("E-C", esbox_C);
byte[] esbox_D = Gost28147Engine.ESbox_D;
Gost28147Engine.AddSBox("E-D", esbox_D);
byte[] dsbox_Test = Gost28147Engine.DSbox_Test;
Gost28147Engine.AddSBox("D-TEST", dsbox_Test);
byte[] dsbox_A = Gost28147Engine.DSbox_A;
Gost28147Engine.AddSBox("D-A", dsbox_A);
}
// Token: 0x0600B79C RID: 47004 RVA: 0x0028AFCC File Offset: 0x002891CC
[Token(Token = "0x600B79C")]
[Address(RVA = "0x1DCCE60", Offset = "0x1DCBC60", VA = "0x181DCCE60")]
private static void AddSBox(string sBoxName, byte[] sBox)
{
IDictionary dictionary = Gost28147Engine.sBoxes;
string text = Platform.ToUpperInvariant(sBoxName);
int num = 0;
num += num;
num++;
object obj = dictionary[text];
}
// Token: 0x0600B79D RID: 47005 RVA: 0x0028B004 File Offset: 0x00289204
[Token(Token = "0x600B79D")]
[Address(RVA = "0x1DCE170", Offset = "0x1DCCF70", VA = "0x181DCE170")]
public Gost28147Engine()
{
byte[] sbox_Default = Gost28147Engine.Sbox_Default;
this.S = sbox_Default;
this.Reset();
}
// Token: 0x0600B79E RID: 47006 RVA: 0x0028B024 File Offset: 0x00289224
[Token(Token = "0x600B79E")]
[Address(RVA = "0x1DCDA30", Offset = "0x1DCC830", VA = "0x181DCDA30", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B79E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_62:
stloc:ArgumentException(var_11_6C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("invalid S-box passed to GOST28147 init")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CCE RID: 7374
// (get) Token: 0x0600B79F RID: 47007 RVA: 0x0028B0A0 File Offset: 0x002892A0
[Token(Token = "0x17001CCE")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B79F")]
[Address(RVA = "0x1DCE2F0", Offset = "0x1DCD0F0", VA = "0x181DCE2F0", Slot = "11")]
get
{
return "Gost28147";
}
}
// Token: 0x17001CCF RID: 7375
// (get) Token: 0x0600B7A0 RID: 47008 RVA: 0x0028B0B4 File Offset: 0x002892B4
[Token(Token = "0x17001CCF")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B7A0")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B7A1 RID: 47009 RVA: 0x0028B0C4 File Offset: 0x002892C4
[Token(Token = "0x600B7A1")]
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "13")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600B7A2 RID: 47010 RVA: 0x0028B0D4 File Offset: 0x002892D4
[Token(Token = "0x600B7A2")]
[Address(RVA = "0x1DCDD30", Offset = "0x1DCCB30", VA = "0x181DCDD30", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B7A2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A:
stloc:InvalidOperationException(var_3_24, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Gost28147 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B7A3 RID: 47011 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B7A3")]
[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: 0x0600B7A4 RID: 47012 RVA: 0x0028B108 File Offset: 0x00289308
[Token(Token = "0x600B7A4")]
[Address(RVA = "0x1DCE1E0", Offset = "0x1DCCFE0", VA = "0x181DCE1E0")]
private int[] generateWorkingKey(bool forEncryption, byte[] userKey)
{
/*
An exception occurred when decompiling this method (0600B7A4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::generateWorkingKey(System.Boolean,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_32:
stloc:ArgumentException(var_2_3C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Key length invalid. Key needs to be 32 byte - 256 bit!!!")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B7A5 RID: 47013 RVA: 0x0028B154 File Offset: 0x00289354
[Token(Token = "0x600B7A5")]
[Address(RVA = "0x1DCD7F0", Offset = "0x1DCC5F0", VA = "0x181DCD7F0")]
private int Gost28147_mainStep(int n1, int key)
{
int length = this.S.Length;
byte b;
byte b2;
b += b2;
b += b2;
b += b2;
b += b2;
b += b2;
b += b2;
b += b2;
b2 = b;
throw new NullReferenceException();
}
// Token: 0x0600B7A6 RID: 47014 RVA: 0x0028B190 File Offset: 0x00289390
[Token(Token = "0x600B7A6")]
[Address(RVA = "0x1DCD450", Offset = "0x1DCC250", VA = "0x181DCD450")]
private void Gost28147Func(int[] workingKey, byte[] inBytes, int inOff, byte[] outBytes, int outOff)
{
int num = 0;
if ((this.forEncryption ? 1 : 0) == num)
{
int num2 = workingKey[num];
int num3 = this.Gost28147_mainStep(inOff, num2);
num++;
uint num4;
if (num != 2 || num4 != (uint)0)
{
int num5 = workingKey[(int)num4];
num3 = this.Gost28147_mainStep(inOff, num5);
}
num++;
}
int num6 = workingKey[num];
int num7 = this.Gost28147_mainStep(inOff, num6);
num++;
num++;
uint num9;
int num8 = workingKey[(int)num9];
num7 = this.Gost28147_mainStep(inOff, num8);
int num10 = workingKey[0];
int num11 = this.Gost28147_mainStep(inOff, num10);
}
// Token: 0x0600B7A7 RID: 47015 RVA: 0x0028B240 File Offset: 0x00289440
[Token(Token = "0x600B7A7")]
[Address(RVA = "0x1C278B0", Offset = "0x1C266B0", VA = "0x181C278B0")]
private static int bytesToint(byte[] inBytes, int inOff)
{
int length = inBytes.Length;
byte b = inBytes[inBytes];
byte b2 = inBytes[inBytes];
int num = inOff + 1;
b += b2;
b += b2;
byte b3;
b += b3;
throw new NullReferenceException();
}
// Token: 0x0600B7A8 RID: 47016 RVA: 0x0028B27C File Offset: 0x0028947C
[Token(Token = "0x600B7A8")]
[Address(RVA = "0x1C27DF0", Offset = "0x1C26BF0", VA = "0x181C27DF0")]
private static void intTobytes(int num, byte[] outBytes, int outOff)
{
int num2 = outOff + 1;
}
// Token: 0x0600B7A9 RID: 47017 RVA: 0x0028B294 File Offset: 0x00289494
[Token(Token = "0x600B7A9")]
[Address(RVA = "0x1DCD310", Offset = "0x1DCC110", VA = "0x181DCD310")]
public static byte[] GetSBox(string sBoxName)
{
/*
An exception occurred when decompiling this method (0600B7A9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBox(System.String)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1D:
stloc:ArgumentException(var_3_27, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Unknown S-Box - possible types: \"Default\", \"E-Test\", \"E-A\", \"E-B\", \"E-C\", \"E-D\", \"D-Test\", \"D-A\".")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B7AA RID: 47018 RVA: 0x0028B2C8 File Offset: 0x002894C8
[Token(Token = "0x600B7AA")]
[Address(RVA = "0x1DCCF90", Offset = "0x1DCBD90", VA = "0x181DCCF90")]
public static string GetSBoxName(byte[] sBox)
{
/*
An exception occurred when decompiling this method (0600B7AA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Gost28147Engine::GetSBoxName(System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_72:
stloc:ArgumentException(var_8_7C, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("SBOX provided did not map to a known one")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x04007476 RID: 29814
[Token(Token = "0x4007476")]
private const int BlockSize = 8;
// Token: 0x04007477 RID: 29815
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007477")]
private int[] workingKey;
// Token: 0x04007478 RID: 29816
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007478")]
private bool forEncryption;
// Token: 0x04007479 RID: 29817
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007479")]
private byte[] S;
// Token: 0x0400747A RID: 29818
[Token(Token = "0x400747A")]
private static readonly byte[] Sbox_Default;
// Token: 0x0400747B RID: 29819
[Token(Token = "0x400747B")]
private static readonly byte[] ESbox_Test;
// Token: 0x0400747C RID: 29820
[Token(Token = "0x400747C")]
private static readonly byte[] ESbox_A;
// Token: 0x0400747D RID: 29821
[Token(Token = "0x400747D")]
private static readonly byte[] ESbox_B;
// Token: 0x0400747E RID: 29822
[Token(Token = "0x400747E")]
private static readonly byte[] ESbox_C;
// Token: 0x0400747F RID: 29823
[Token(Token = "0x400747F")]
private static readonly byte[] ESbox_D;
// Token: 0x04007480 RID: 29824
[Token(Token = "0x4007480")]
private static readonly byte[] DSbox_Test;
// Token: 0x04007481 RID: 29825
[Token(Token = "0x4007481")]
private static readonly byte[] DSbox_A;
// Token: 0x04007482 RID: 29826
[Token(Token = "0x4007482")]
private static readonly IDictionary sBoxes;
}
}
@@ -0,0 +1,343 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C93 RID: 7315
[Token(Token = "0x2001C93")]
public class HC128Engine : IStreamCipher
{
// Token: 0x0600B7AB RID: 47019 RVA: 0x0028B354 File Offset: 0x00289554
[Token(Token = "0x600B7AB")]
[Address(RVA = "0x1DCE330", Offset = "0x1DCD130", VA = "0x181DCE330")]
private static uint F1(uint x)
{
return x;
}
// Token: 0x0600B7AC RID: 47020 RVA: 0x0028B364 File Offset: 0x00289564
[Token(Token = "0x600B7AC")]
[Address(RVA = "0x1DCE360", Offset = "0x1DCD160", VA = "0x181DCE360")]
private static uint F2(uint x)
{
return x;
}
// Token: 0x0600B7AD RID: 47021 RVA: 0x0028B374 File Offset: 0x00289574
[Token(Token = "0x600B7AD")]
[Address(RVA = "0x1DCE390", Offset = "0x1DCD190", VA = "0x181DCE390")]
private uint G1(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600B7AE RID: 47022 RVA: 0x0028B384 File Offset: 0x00289584
[Token(Token = "0x600B7AE")]
[Address(RVA = "0x1DCE3C0", Offset = "0x1DCD1C0", VA = "0x181DCE3C0")]
private uint G2(uint x, uint y, uint z)
{
return x;
}
// Token: 0x0600B7AF RID: 47023 RVA: 0x0028B394 File Offset: 0x00289594
[Token(Token = "0x600B7AF")]
[Address(RVA = "0x1B45B80", Offset = "0x1B44980", VA = "0x181B45B80")]
private static uint RotateLeft(uint x, int bits)
{
return x;
}
// Token: 0x0600B7B0 RID: 47024 RVA: 0x0028B3A4 File Offset: 0x002895A4
[Token(Token = "0x600B7B0")]
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
private static uint RotateRight(uint x, int bits)
{
return x;
}
// Token: 0x0600B7B1 RID: 47025 RVA: 0x0028B3B4 File Offset: 0x002895B4
[Token(Token = "0x600B7B1")]
[Address(RVA = "0x1DCE460", Offset = "0x1DCD260", VA = "0x181DCE460")]
private uint H1(uint x)
{
uint[] array = this.q;
int length = array.Length;
uint num = array[(int)x];
uint num2 = array[(int)x];
return num2 + num;
}
// Token: 0x0600B7B2 RID: 47026 RVA: 0x0028B3EC File Offset: 0x002895EC
[Token(Token = "0x600B7B2")]
[Address(RVA = "0x1DCE4D0", Offset = "0x1DCD2D0", VA = "0x181DCE4D0")]
private uint H2(uint x)
{
uint[] array = this.p;
int length = array.Length;
uint num = array[(int)x];
uint num2 = array[(int)x];
return num2 + num;
}
// Token: 0x0600B7B3 RID: 47027 RVA: 0x0028B424 File Offset: 0x00289624
[Token(Token = "0x600B7B3")]
[Address(RVA = "0x1DCEC70", Offset = "0x1DCDA70", VA = "0x181DCEC70")]
private static uint Mod1024(uint x)
{
return x;
}
// Token: 0x0600B7B4 RID: 47028 RVA: 0x0028B434 File Offset: 0x00289634
[Token(Token = "0x600B7B4")]
[Address(RVA = "0x1DCEC80", Offset = "0x1DCDA80", VA = "0x181DCEC80")]
private static uint Mod512(uint x)
{
return x;
}
// Token: 0x0600B7B5 RID: 47029 RVA: 0x0028B444 File Offset: 0x00289644
[Token(Token = "0x600B7B5")]
[Address(RVA = "0x1DCE320", Offset = "0x1DCD120", VA = "0x181DCE320")]
private static uint Dim(uint x, uint y)
{
return x;
}
// Token: 0x0600B7B6 RID: 47030 RVA: 0x0028B454 File Offset: 0x00289654
[Token(Token = "0x600B7B6")]
[Address(RVA = "0x1DCEF00", Offset = "0x1DCDD00", VA = "0x181DCEF00")]
private uint Step()
{
uint num = this.cnt;
uint[] array = this.q;
int length = array.Length;
uint num2 = num + 1U;
uint num3 = array[(int)num2];
uint num4;
num3 += num4;
uint num5;
num5 += num3;
uint[] array2 = this.q;
int length2 = array2.Length;
uint[] array3 = this.p;
int length3 = array3.Length;
num3 += (uint)256;
uint num6 = array3[(int)num3];
int length4 = array3.Length;
uint num7 = array3[(int)num6];
uint num8 = num + 1U;
uint num9 = array3[(int)num8];
uint num10;
num9 += num10;
num7 += num9;
array2.m_value = num7;
int length5 = this.p.Length;
uint[] array4 = this.q;
int length6 = array4.Length;
uint num11 = array4[(int)num9];
num9 += (uint)256;
uint num12 = array4[(int)num9];
num12 += num11;
uint num13 = this.cnt;
num13 += (uint)1;
this.cnt = num13;
return num12;
}
// Token: 0x0600B7B7 RID: 47031 RVA: 0x0028B56C File Offset: 0x0028976C
[Token(Token = "0x600B7B7")]
[Address(RVA = "0x1DCE540", Offset = "0x1DCD340", VA = "0x181DCE540")]
private void Init()
{
/*
An exception occurred when decompiling this method (0600B7B7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_12B:
stloc:ArgumentException(var_26_135, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128 bits long")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CD0 RID: 7376
// (get) Token: 0x0600B7B8 RID: 47032 RVA: 0x0028B6B0 File Offset: 0x002898B0
[Token(Token = "0x17001CD0")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B7B8")]
[Address(RVA = "0x1DCF340", Offset = "0x1DCE140", VA = "0x181DCF340", Slot = "9")]
get
{
return "HC-128";
}
}
// Token: 0x0600B7B9 RID: 47033 RVA: 0x0028B6C4 File Offset: 0x002898C4
[Token(Token = "0x600B7B9")]
[Address(RVA = "0x1DCE950", Offset = "0x1DCD750", VA = "0x181DCE950", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B7B9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7B:
stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC128 init - "), ldloc:string(var_11)), ldstr:string("parameters")))
}
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: 0x0600B7BA RID: 47034 RVA: 0x0028B764 File Offset: 0x00289964
[Token(Token = "0x600B7BA")]
[Address(RVA = "0x1DCE3F0", Offset = "0x1DCD1F0", VA = "0x181DCE3F0")]
private byte GetByte()
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600B7BB RID: 47035 RVA: 0x0028B7B0 File Offset: 0x002899B0
[Token(Token = "0x600B7BB")]
[Address(RVA = "0x1DCEC90", Offset = "0x1DCDA90", VA = "0x181DCEC90", Slot = "11")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B7BB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_54:
stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B7BC RID: 47036 RVA: 0x0028B81C File Offset: 0x00289A1C
[Token(Token = "0x600B7BC")]
[Address(RVA = "0x1DCEE70", Offset = "0x1DCDC70", VA = "0x181DCEE70", Slot = "12")]
public virtual void Reset()
{
this.Init();
}
// Token: 0x0600B7BD RID: 47037 RVA: 0x0028B830 File Offset: 0x00289A30
[Token(Token = "0x600B7BD")]
[Address(RVA = "0x1DCEE80", Offset = "0x1DCDC80", VA = "0x181DCEE80", Slot = "13")]
public virtual byte ReturnByte(byte input)
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600B7BE RID: 47038 RVA: 0x0028B87C File Offset: 0x00289A7C
[Token(Token = "0x600B7BE")]
[Address(RVA = "0x1DCF2C0", Offset = "0x1DCE0C0", VA = "0x181DCF2C0")]
public HC128Engine()
{
uint[] array = new uint[512];
this.p = array;
uint[] array2 = new uint[512];
this.q = array2;
byte[] array3 = new byte[4];
this.buf = array3;
base..ctor();
}
// Token: 0x04007483 RID: 29827
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007483")]
private uint[] p;
// Token: 0x04007484 RID: 29828
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007484")]
private uint[] q;
// Token: 0x04007485 RID: 29829
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007485")]
private uint cnt;
// Token: 0x04007486 RID: 29830
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007486")]
private byte[] key;
// Token: 0x04007487 RID: 29831
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007487")]
private byte[] iv;
// Token: 0x04007488 RID: 29832
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007488")]
private bool initialised;
// Token: 0x04007489 RID: 29833
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007489")]
private byte[] buf;
// Token: 0x0400748A RID: 29834
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x400748A")]
private int idx;
}
}
@@ -0,0 +1,266 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C94 RID: 7316
[Token(Token = "0x2001C94")]
public class HC256Engine : IStreamCipher
{
// Token: 0x0600B7BF RID: 47039 RVA: 0x0028B8C4 File Offset: 0x00289AC4
[Token(Token = "0x600B7BF")]
[Address(RVA = "0x1DCFDD0", Offset = "0x1DCEBD0", VA = "0x181DCFDD0")]
private uint Step()
{
uint num = this.cnt;
uint[] array = this.q;
int length = array.Length;
uint num2 = array[this];
uint num3 = num + 1U;
uint num4 = array[(int)num3];
uint[] array2 = this.p;
uint num5 = array[(int)num3];
num3 = num4;
num3 += num5;
uint[] array3 = this.q;
int length2 = array3.Length;
uint[] array4 = this.p;
int length3 = array4.Length;
num4 = num2;
num4 += (uint)256;
uint num6 = array4[(int)num4];
num4 = num2;
num4 += (uint)512;
num2 += (uint)768;
uint num7 = array4[(int)num2];
uint num8 = num + 1U;
uint[] array5 = this.q;
array3 += num6;
uint[] array6 = this.p;
int length4 = array6.Length;
uint[] array7 = this.q;
uint num9 = array6[(int)num2];
int length5 = array7.Length;
uint num10 = array7[(int)num9];
num2 = num9;
num9 = num2;
num9 += (uint)256;
uint num11 = array7[(int)num9];
num2 = num9;
num9 = num2;
num9 += (uint)512;
num2 = num9;
num2 += (uint)768;
num2 += num11;
num2 += num10;
uint num12 = this.cnt;
num12 += (uint)1;
this.cnt = num12;
return num2;
}
// Token: 0x0600B7C0 RID: 47040 RVA: 0x0028BA24 File Offset: 0x00289C24
[Token(Token = "0x600B7C0")]
[Address(RVA = "0x1DCF3E0", Offset = "0x1DCE1E0", VA = "0x181DCF3E0")]
private void Init()
{
/*
An exception occurred when decompiling this method (0600B7C0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1AF:
stloc:ArgumentException(var_38_1B9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128/256 bits long")))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CD1 RID: 7377
// (get) Token: 0x0600B7C1 RID: 47041 RVA: 0x0028BBEC File Offset: 0x00289DEC
[Token(Token = "0x17001CD1")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B7C1")]
[Address(RVA = "0x1DD0350", Offset = "0x1DCF150", VA = "0x181DD0350", Slot = "9")]
get
{
return "HC-256";
}
}
// Token: 0x0600B7C2 RID: 47042 RVA: 0x0028BC00 File Offset: 0x00289E00
[Token(Token = "0x600B7C2")]
[Address(RVA = "0x1DCF840", Offset = "0x1DCE640", VA = "0x181DCF840", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B7C2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7B:
stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC256 init - "), ldloc:string(var_11)), ldstr:string("parameters")))
}
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: 0x0600B7C3 RID: 47043 RVA: 0x0028BCA0 File Offset: 0x00289EA0
[Token(Token = "0x600B7C3")]
[Address(RVA = "0x1DCF370", Offset = "0x1DCE170", VA = "0x181DCF370")]
private byte GetByte()
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600B7C4 RID: 47044 RVA: 0x0028BCEC File Offset: 0x00289EEC
[Token(Token = "0x600B7C4")]
[Address(RVA = "0x1DCFB60", Offset = "0x1DCE960", VA = "0x181DCFB60", Slot = "11")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B7C4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_54:
stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B7C5 RID: 47045 RVA: 0x0028BD58 File Offset: 0x00289F58
[Token(Token = "0x600B7C5")]
[Address(RVA = "0x1DCFD40", Offset = "0x1DCEB40", VA = "0x181DCFD40", Slot = "12")]
public virtual void Reset()
{
this.Init();
}
// Token: 0x0600B7C6 RID: 47046 RVA: 0x0028BD6C File Offset: 0x00289F6C
[Token(Token = "0x600B7C6")]
[Address(RVA = "0x1DCFD50", Offset = "0x1DCEB50", VA = "0x181DCFD50", Slot = "13")]
public virtual byte ReturnByte(byte input)
{
if (this.idx == 0)
{
uint num = this.Step();
byte[] array = this.buf;
Pack.UInt32_To_LE(num, array);
}
byte[] array2 = this.buf;
int num2 = this.idx + 1;
this.idx = num2;
byte b;
return b;
}
// Token: 0x0600B7C7 RID: 47047 RVA: 0x0028BDB8 File Offset: 0x00289FB8
[Token(Token = "0x600B7C7")]
[Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")]
private static uint RotateRight(uint x, int bits)
{
return x;
}
// Token: 0x0600B7C8 RID: 47048 RVA: 0x0028BDC8 File Offset: 0x00289FC8
[Token(Token = "0x600B7C8")]
[Address(RVA = "0x1DD02D0", Offset = "0x1DCF0D0", VA = "0x181DD02D0")]
public HC256Engine()
{
uint[] array = new uint[1024];
this.p = array;
uint[] array2 = new uint[1024];
this.q = array2;
byte[] array3 = new byte[4];
this.buf = array3;
base..ctor();
}
// Token: 0x0400748B RID: 29835
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400748B")]
private uint[] p;
// Token: 0x0400748C RID: 29836
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400748C")]
private uint[] q;
// Token: 0x0400748D RID: 29837
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400748D")]
private uint cnt;
// Token: 0x0400748E RID: 29838
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400748E")]
private byte[] key;
// Token: 0x0400748F RID: 29839
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400748F")]
private byte[] iv;
// Token: 0x04007490 RID: 29840
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007490")]
private bool initialised;
// Token: 0x04007491 RID: 29841
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007491")]
private byte[] buf;
// Token: 0x04007492 RID: 29842
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007492")]
private int idx;
}
}
@@ -0,0 +1,361 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C96 RID: 7318
[Token(Token = "0x2001C96")]
public class IdeaEngine : IBlockCipher
{
// Token: 0x0600B7D3 RID: 47059 RVA: 0x0028C3F4 File Offset: 0x0028A5F4
[Token(Token = "0x600B7D3")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public IdeaEngine()
{
this.Reset();
}
// Token: 0x0600B7D4 RID: 47060 RVA: 0x0028C408 File Offset: 0x0028A608
[Token(Token = "0x600B7D4")]
[Address(RVA = "0x1DD0CE0", Offset = "0x1DCFAE0", VA = "0x181DD0CE0", Slot = "10")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B7D4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IdeaEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_36:
stloc:ArgumentException(var_7_47, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to IDEA init - "), ldloc:string(var_6))))
}
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: 0x17001CD3 RID: 7379
// (get) Token: 0x0600B7D5 RID: 47061 RVA: 0x0028C460 File Offset: 0x0028A660
[Token(Token = "0x17001CD3")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B7D5")]
[Address(RVA = "0x1DD1A50", Offset = "0x1DD0850", VA = "0x181DD1A50", Slot = "11")]
get
{
return "IDEA";
}
}
// Token: 0x17001CD4 RID: 7380
// (get) Token: 0x0600B7D6 RID: 47062 RVA: 0x0028C474 File Offset: 0x0028A674
[Token(Token = "0x17001CD4")]
public virtual bool IsPartialBlockOkay
{
[Token(Token = "0x600B7D6")]
[Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "12")]
get
{
}
}
// Token: 0x0600B7D7 RID: 47063 RVA: 0x0028C484 File Offset: 0x0028A684
[Token(Token = "0x600B7D7")]
[Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "13")]
public virtual int GetBlockSize()
{
return 8;
}
// Token: 0x0600B7D8 RID: 47064 RVA: 0x0028C494 File Offset: 0x0028A694
[Token(Token = "0x600B7D8")]
[Address(RVA = "0x1DD1890", Offset = "0x1DD0690", VA = "0x181DD1890", Slot = "14")]
public virtual int ProcessBlock(byte[] input, int inOff, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B7D8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IdeaEngine::ProcessBlock(System.Byte[],System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A:
stloc:InvalidOperationException(var_3_24, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("IDEA 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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x0600B7D9 RID: 47065 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600B7D9")]
[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: 0x0600B7DA RID: 47066 RVA: 0x0028C4C8 File Offset: 0x0028A6C8
[Token(Token = "0x600B7DA")]
[Address(RVA = "0x1DD03E0", Offset = "0x1DCF1E0", VA = "0x181DD03E0")]
private int BytesToWord(byte[] input, int inOff)
{
int length = input.Length;
byte b;
byte b2;
b += b2;
throw new NullReferenceException();
}
// Token: 0x0600B7DB RID: 47067 RVA: 0x0028C4E8 File Offset: 0x0028A6E8
[Token(Token = "0x600B7DB")]
[Address(RVA = "0x1DD19A0", Offset = "0x1DD07A0", VA = "0x181DD19A0")]
private void WordToBytes(int word, byte[] outBytes, int outOff)
{
}
// Token: 0x0600B7DC RID: 47068 RVA: 0x0028C4FC File Offset: 0x0028A6FC
[Token(Token = "0x600B7DC")]
[Address(RVA = "0x1DD1770", Offset = "0x1DD0570", VA = "0x181DD1770")]
private int Mul(int x, int y)
{
if (x != 0)
{
if (y != 0)
{
int num = x * y;
int mask = IdeaEngine.MASK;
bool flag = mask < num;
flag = (flag ? 1 : 0) - num != 0;
flag = (flag ? 1 : 0) + mask != 0;
}
int num2 = IdeaEngine.BASE;
num2 -= x;
}
int num3 = IdeaEngine.BASE;
num3 -= y;
return IdeaEngine.MASK;
}
// Token: 0x0600B7DD RID: 47069 RVA: 0x0028C544 File Offset: 0x0028A744
[Token(Token = "0x600B7DD")]
[Address(RVA = "0x1DD07A0", Offset = "0x1DCF5A0", VA = "0x181DD07A0")]
private void IdeaFunc(int[] workingKey, byte[] input, int inOff, byte[] outBytes, int outOff)
{
int num = 0;
int length = input.Length;
int num2 = inOff + 1;
byte b;
byte b2;
b += b2;
byte b3;
b3 += b2;
byte b4;
b4 += b2;
byte b5;
b5 += b2;
int num3 = workingKey[num];
int num4 = this.Mul((int)b, num3);
int length2 = workingKey.Length;
int num5;
num5 += (int)b3;
int length3 = workingKey.Length;
int num6;
num6 += (int)b4;
num += 3;
int num7 = workingKey[num];
num += 4;
int num8 = workingKey[num];
int num9;
num6 = num9;
int num10;
num6 += num10;
num++;
int mask = IdeaEngine.MASK;
int num11 = workingKey[num];
int num12;
num12 += mask;
int num13;
int num14;
num13 += num14;
num += 3;
int num15 = workingKey[num];
}
// Token: 0x0600B7DE RID: 47070 RVA: 0x0028C60C File Offset: 0x0028A80C
[Token(Token = "0x600B7DE")]
[Address(RVA = "0x1DD0440", Offset = "0x1DCF240", VA = "0x181DD0440")]
private int[] ExpandKey(byte[] uKey)
{
int[] array = new int[52];
int num = 0;
if (uKey.Length < 16)
{
byte[] array2 = new byte[0];
int length = uKey.Length;
int num2 = array2.Length;
int num3 = 0;
num2 -= length;
Array.Copy(uKey, num3, array2, num2, length);
}
int length2 = uKey.Length;
num += 2;
byte b;
byte b2;
b += b2;
num++;
array[0] = (int)b;
int length3 = array.Length;
uint num4;
if (num4 != (uint)6)
{
int length4 = array.Length;
}
int length5 = array.Length;
int length6 = array.Length;
num4 += (uint)1;
int num5;
array[0] = num5;
return array;
}
// Token: 0x0600B7DF RID: 47071 RVA: 0x0028C6B8 File Offset: 0x0028A8B8
[Token(Token = "0x600B7DF")]
[Address(RVA = "0x1DD15F0", Offset = "0x1DD03F0", VA = "0x181DD15F0")]
private int MulInv(int x)
{
int num = IdeaEngine.BASE;
uint num2;
if (x != (int)num2)
{
int num3 = x * x;
num2 += (uint)num3;
if (x == (int)num2)
{
return x;
}
int num4 = x * (int)num2;
num = x + num4;
}
num2 -= (uint)num;
return IdeaEngine.MASK;
}
// Token: 0x0600B7E0 RID: 47072 RVA: 0x0028C6F8 File Offset: 0x0028A8F8
[Token(Token = "0x600B7E0")]
[Address(RVA = "0x1DD0380", Offset = "0x1DCF180", VA = "0x181DD0380")]
private int AddInv(int x)
{
return IdeaEngine.MASK;
}
// Token: 0x0600B7E1 RID: 47073 RVA: 0x0028C70C File Offset: 0x0028A90C
[Token(Token = "0x600B7E1")]
[Address(RVA = "0x1DD0E90", Offset = "0x1DCFC90", VA = "0x181DD0E90")]
private int[] InvertKey(int[] inKey)
{
int[] array = new int[52];
int num = inKey[0];
int num2 = this.MulInv(num);
int mask = IdeaEngine.MASK;
int num3 = inKey[1];
int num4 = inKey[1];
int num5 = this.MulInv(num4);
array[25] = num5;
array[25] = num3;
array[24] = mask;
array[24] = num2;
int length = inKey.Length;
uint num7;
int num6 = inKey[(int)num7];
uint num8 = num7 + 1U;
uint num10;
uint num9 = num10 - 1U;
int num11 = inKey[(int)num8];
array[0] = num11;
num7 += (uint)2;
array[0] = num6;
int num12 = inKey[(int)num7];
int num13 = this.MulInv(num12);
num7 += (uint)3;
uint num14 = num7 + 1U;
int mask2 = IdeaEngine.MASK;
uint num15 = num14 + 1U;
int num16 = inKey[(int)num14];
num15 += (uint)1;
int num17 = inKey[(int)num15];
int num18;
array[0] = num18;
array[0] = mask2;
array[0] = num16;
ulong num19;
num19 += (ulong)1L;
array[0] = num13;
int length2 = inKey.Length;
int num20 = inKey[(int)num15];
uint num21 = num15 + 1U;
int num22 = inKey[(int)num21];
int num23 = num16 - 1;
array[0] = num22;
array[0] = num20;
int num24 = inKey[num23];
num15 += (uint)4;
int mask3 = IdeaEngine.MASK;
int num25 = inKey[(int)num15];
num16 += -4;
int num26;
array[0] = num26;
array[0] = num25;
array[0] = mask3;
int num27;
array[0] = num27;
return array;
}
// Token: 0x0600B7E2 RID: 47074 RVA: 0x0028C8C0 File Offset: 0x0028AAC0
[Token(Token = "0x600B7E2")]
[Address(RVA = "0x1DD0760", Offset = "0x1DCF560", VA = "0x181DD0760")]
private int[] GenerateWorkingKey(bool forEncryption, byte[] userKey)
{
int[] array = this.ExpandKey(userKey);
if (!forEncryption)
{
int[] array2 = this.InvertKey(array);
}
return array;
}
// Token: 0x0400749E RID: 29854
[Token(Token = "0x400749E")]
private const int BLOCK_SIZE = 8;
// Token: 0x0400749F RID: 29855
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400749F")]
private int[] workingKey;
// Token: 0x040074A0 RID: 29856
[Token(Token = "0x40074A0")]
private static readonly int MASK;
// Token: 0x040074A1 RID: 29857
[Token(Token = "0x40074A1")]
private static readonly int BASE;
}
}
@@ -0,0 +1,230 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C97 RID: 7319
[Token(Token = "0x2001C97")]
public class IesEngine
{
// Token: 0x0600B7E4 RID: 47076 RVA: 0x0028C8F4 File Offset: 0x0028AAF4
[Token(Token = "0x600B7E4")]
[Address(RVA = "0x1DD2870", Offset = "0x1DD1670", VA = "0x181DD2870")]
public IesEngine(IBasicAgreement agree, IDerivationFunction kdf, IMac mac)
{
this.agree = agree;
this.kdf = kdf;
this.mac = mac;
byte[] array = new byte[0];
this.macBuf = array;
}
// Token: 0x0600B7E5 RID: 47077 RVA: 0x0028C930 File Offset: 0x0028AB30
[Token(Token = "0x600B7E5")]
[Address(RVA = "0x1DD27D0", Offset = "0x1DD15D0", VA = "0x181DD27D0")]
public IesEngine(IBasicAgreement agree, IDerivationFunction kdf, IMac mac, BufferedBlockCipher cipher)
{
this.agree = agree;
this.kdf = kdf;
this.mac = mac;
byte[] array = new byte[0];
this.macBuf = array;
this.cipher = 0;
}
// Token: 0x0600B7E6 RID: 47078 RVA: 0x0028C974 File Offset: 0x0028AB74
[Token(Token = "0x600B7E6")]
[Address(RVA = "0x1DD2520", Offset = "0x1DD1320", VA = "0x181DD2520", Slot = "4")]
public virtual void Init(bool forEncryption, ICipherParameters privParameters, ICipherParameters pubParameters, ICipherParameters iesParameters)
{
this.forEncryption = forEncryption;
this.privParam = privParameters;
this.pubParam = pubParameters;
this.param = 0;
}
// Token: 0x0600B7E7 RID: 47079 RVA: 0x0028C9A0 File Offset: 0x0028ABA0
[Token(Token = "0x600B7E7")]
[Address(RVA = "0x1DD1A80", Offset = "0x1DD0880", VA = "0x181DD1A80")]
private byte[] DecryptBlock(byte[] in_enc, int inOff, int inLen, byte[] z)
{
/*
An exception occurred when decompiling this method (0600B7E7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IesEngine::DecryptBlock(System.Byte[],System.Int32,System.Int32,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_130:
stloc:InvalidCipherTextException(var_34_13A, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("Invalid MAC.")))
}
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: 0x0600B7E8 RID: 47080 RVA: 0x0028CAE8 File Offset: 0x0028ACE8
[Token(Token = "0x600B7E8")]
[Address(RVA = "0x1DD1F70", Offset = "0x1DD0D70", VA = "0x181DD1F70")]
private byte[] EncryptBlock(byte[] input, int inOff, int inLen, byte[] z)
{
int num;
int num2;
for (;;)
{
byte[] derivation = this.param.derivation;
IesParameters iesParameters = this.param;
num = iesParameters.macKeySize;
if (this.cipher == (ulong)0L)
{
goto IL_A2;
}
if (iesParameters != 0)
{
num2 = 0;
if (iesParameters != 0)
{
break;
}
}
}
num += typeof(IesWithCipherParameters).TypeHandle;
KdfParameters kdfParameters;
byte[] array = this.GenerateKdfBytes(kdfParameters, num2);
string algorithmName = this.cipher.AlgorithmName;
int blockSize = this.cipher.GetBlockSize();
byte[] array2 = new byte[inLen];
BufferedBlockCipher bufferedBlockCipher = this.cipher;
BufferedBlockCipher bufferedBlockCipher2 = this.cipher;
IMac mac = this.mac;
byte[] array3 = new byte[0];
int num3 = 0;
int num4 = 0;
Array.Copy(array2, num4, array3, num3, inLen);
IL_A2:
IMac mac2 = this.mac;
byte[] array4 = new byte[0];
int num5 = 0;
if (inLen != 0)
{
num5++;
while (num5 != inLen)
{
}
}
byte[] array5;
KeyParameter keyParameter = new KeyParameter(array5, inLen, num);
IesParameters iesParameters2 = this.param;
IMac mac3 = this.mac;
byte[] encoding = iesParameters2.encoding;
IMac mac4 = this.mac;
IMac mac5 = this.mac;
int length = encoding.Length;
IMac mac6 = this.mac;
return array4;
}
// Token: 0x0600B7E9 RID: 47081 RVA: 0x0028CC08 File Offset: 0x0028AE08
[Token(Token = "0x600B7E9")]
[Address(RVA = "0x1DD2410", Offset = "0x1DD1210", VA = "0x181DD2410")]
private byte[] GenerateKdfBytes(KdfParameters kParam, int length)
{
byte[] array = new byte[length];
IDerivationFunction derivationFunction = this.kdf;
IDerivationFunction derivationFunction2 = this.kdf;
int num = 0;
int length2 = array.Length;
if (num < derivationFunction)
{
num += num;
num++;
}
return array;
}
// Token: 0x0600B7EA RID: 47082 RVA: 0x0028CC4C File Offset: 0x0028AE4C
[Token(Token = "0x600B7EA")]
[Address(RVA = "0x1DD25E0", Offset = "0x1DD13E0", VA = "0x181DD25E0", Slot = "5")]
public virtual byte[] ProcessBlock(byte[] input, int inOff, int inLen)
{
int num;
byte[] array3;
do
{
num = 0;
IBasicAgreement basicAgreement = this.agree;
IBasicAgreement basicAgreement2 = this.agree;
ICipherParameters cipherParameters = this.pubParam;
if (num < basicAgreement)
{
num += num;
num++;
}
IBasicAgreement basicAgreement3 = this.agree;
byte[] array2;
if (this.forEncryption)
{
byte[] array = this.EncryptBlock(input, inOff, inLen, array2);
}
array3 = this.DecryptBlock(input, inOff, inLen, array2);
int length = array2.Length;
int num2 = 0;
Array.Clear(array2, num2, length);
}
while (num != 0);
return array3;
}
// Token: 0x040074A2 RID: 29858
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40074A2")]
private readonly IBasicAgreement agree;
// Token: 0x040074A3 RID: 29859
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40074A3")]
private readonly IDerivationFunction kdf;
// Token: 0x040074A4 RID: 29860
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40074A4")]
private readonly IMac mac;
// Token: 0x040074A5 RID: 29861
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40074A5")]
private readonly BufferedBlockCipher cipher;
// Token: 0x040074A6 RID: 29862
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40074A6")]
private readonly byte[] macBuf;
// Token: 0x040074A7 RID: 29863
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40074A7")]
private bool forEncryption;
// Token: 0x040074A8 RID: 29864
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40074A8")]
private ICipherParameters privParam;
// Token: 0x040074A9 RID: 29865
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40074A9")]
private ICipherParameters pubParam;
// Token: 0x040074AA RID: 29866
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40074AA")]
private IesParameters param;
}
}
@@ -0,0 +1,335 @@
using System;
using System.Runtime.Serialization.Formatters.Binary;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines
{
// Token: 0x02001C95 RID: 7317
[Token(Token = "0x2001C95")]
public class IsaacEngine : IStreamCipher
{
// Token: 0x0600B7C9 RID: 47049 RVA: 0x0028BE10 File Offset: 0x0028A010
[Token(Token = "0x600B7C9")]
[Address(RVA = "0x1DD2910", Offset = "0x1DD1710", VA = "0x181DD2910", Slot = "9")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B7C9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IsaacEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_18:
stloc:ArgumentException(var_4_2D, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("invalid parameter passed to ISAAC Init - "), ldloc:string(var_3)), ldstr:string("parameters")))
}
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: 0x0600B7CA RID: 47050 RVA: 0x0028BE4C File Offset: 0x0028A04C
[Token(Token = "0x600B7CA")]
[Address(RVA = "0x1DD2C50", Offset = "0x1DD1A50", VA = "0x181DD2C50", Slot = "10")]
public virtual byte ReturnByte(byte input)
{
if (this.index == 0)
{
this.isaac();
byte[] array = Pack.UInt32_To_BE(this.results);
this.keyStream = array;
}
byte[] array2 = this.keyStream;
int num = this.index + 1;
this.index = num;
byte b;
return b;
}
// Token: 0x0600B7CB RID: 47051 RVA: 0x0028BE9C File Offset: 0x0028A09C
[Token(Token = "0x600B7CB")]
[Address(RVA = "0x1DD2A60", Offset = "0x1DD1860", VA = "0x181DD2A60", Slot = "11")]
public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B7CB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.IsaacEngine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_63:
stloc:InvalidOperationException(var_7_6A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6)))
}
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.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
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: 0x17001CD2 RID: 7378
// (get) Token: 0x0600B7CC RID: 47052 RVA: 0x0028BF14 File Offset: 0x0028A114
[Token(Token = "0x17001CD2")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B7CC")]
[Address(RVA = "0x1DD2DA0", Offset = "0x1DD1BA0", VA = "0x181DD2DA0", Slot = "12")]
get
{
return "ISAAC";
}
}
// Token: 0x0600B7CD RID: 47053 RVA: 0x0028BF28 File Offset: 0x0028A128
[Token(Token = "0x600B7CD")]
[Address(RVA = "0x1DD2C40", Offset = "0x1DD1A40", VA = "0x181DD2C40", Slot = "13")]
public virtual void Reset()
{
byte[] array = this.workingKey;
this.setKey(array);
}
// Token: 0x0600B7CE RID: 47054 RVA: 0x0028BF44 File Offset: 0x0028A144
[Token(Token = "0x600B7CE")]
[Address(RVA = "0x1DD3500", Offset = "0x1DD2300", VA = "0x181DD3500")]
private void setKey(byte[] keyBytes)
{
this.workingKey = keyBytes;
if (this.engineState == (ulong)0L)
{
uint[] array = new uint[IsaacEngine.stateArraySize];
this.engineState = array;
}
if (this.results == (ulong)0L)
{
uint[] array2 = new uint[IsaacEngine.stateArraySize];
this.results = array2;
}
int num = 0;
uint[] array3 = this.results;
uint[] array4 = this.engineState;
array3[0] = (uint)num;
array4[0] = (uint)num;
num++;
this.b = (uint)num;
this.a = (uint)num;
this.index = num;
byte[] array5 = new byte[keyBytes.Length];
int length = keyBytes.Length;
int num2 = 0;
int num3 = 0;
Array.Copy(keyBytes, num3, array5, num2, length);
if (num < array5.Length)
{
uint[] array6 = this.results;
int @int = SerializationHeaderRecord.GetInt32(array5, num);
num += 4;
array6[0] = (uint)@int;
}
uint[] array7 = new uint[IsaacEngine.sizeL];
num++;
array7[0] = (uint)((ulong)2654435769L);
this.mix(array7);
while (num != array7.Length)
{
}
num -= num;
if (num < 1)
{
uint[] array8 = this.results;
}
uint[] array9 = this.engineState;
num++;
this.mix(array7);
uint[] array10 = this.engineState;
num++;
uint num4 = array7[num];
array10[0] = num4;
num++;
this.isaac();
this.initialised = true;
}
// Token: 0x0600B7CF RID: 47055 RVA: 0x0028C0B4 File Offset: 0x0028A2B4
[Token(Token = "0x600B7CF")]
[Address(RVA = "0x1DD2DD0", Offset = "0x1DD1BD0", VA = "0x181DD2DD0")]
private void isaac()
{
uint num = this.c;
num += (uint)1;
int num2 = 0;
this.c = num;
uint[] array = this.engineState;
uint num3 = array[num2];
if (num2 != array.Length && num2 != array.Length && (num2 == array.Length || num2 == 1))
{
this.a = (uint)num2;
}
uint num4;
this.a = num4;
int length = array.Length;
uint num5 = array[(int)num3];
num5 += num4;
array.m_value = num5;
uint[] array2 = this.engineState;
uint[] array3 = this.results;
num3 = num5;
uint num6 = array2[(int)num3];
num6 += num3;
this.b = num6;
array3.m_value = num6;
num2++;
}
// Token: 0x0600B7D0 RID: 47056 RVA: 0x0028C174 File Offset: 0x0028A374
[Token(Token = "0x600B7D0")]
[Address(RVA = "0x1DD2FC0", Offset = "0x1DD1DC0", VA = "0x181DD2FC0")]
private void mix(uint[] x)
{
int length = x.Length;
uint num = x[0];
x[0] = num;
int length2 = x.Length;
uint num2 = x[0];
uint num3 = x[1];
num3 += num2;
x[0] = num3;
int length3 = x.Length;
uint num4 = x[1];
x[0] = num4;
int length4 = x.Length;
uint num5 = x[1];
uint num6 = x[1];
num6 += num5;
x[1] = num6;
int length5 = x.Length;
uint num7 = x[1];
x[1] = num7;
int length6 = x.Length;
uint num8 = x[1];
uint num9 = x[2];
num9 += num8;
x[1] = num9;
int length7 = x.Length;
uint num10 = x[2];
x[1] = num10;
int length8 = x.Length;
uint num11 = x[2];
uint num12 = x[2];
num12 += num11;
x[2] = num12;
int length9 = x.Length;
uint num13 = x[2];
x[2] = num13;
int length10 = x.Length;
uint num14 = x[2];
x[2] = num14;
int length11 = x.Length;
uint num15 = x[3];
x[2] = num15;
int length12 = x.Length;
uint num16 = x[0];
num15 += num16;
x[0] = num15;
int length13 = x.Length;
uint num17 = x[3];
x[3] = num17;
int length14 = x.Length;
uint num18 = x[3];
x[3] = num18;
int length15 = x.Length;
uint num19 = x[0];
num18 += num19;
x[0] = num18;
uint num20 = x[0];
x[3] = num20;
uint num21 = x[0];
x[3] = num21;
int length16 = x.Length;
uint num22 = x[1];
num21 += num22;
x[1] = num21;
int length17 = x.Length;
uint num23 = x[0];
x[0] = num23;
}
// Token: 0x0600B7D1 RID: 47057 RVA: 0x0028C3B4 File Offset: 0x0028A5B4
[Token(Token = "0x600B7D1")]
[Address(RVA = "0x1DD2D20", Offset = "0x1DD1B20", VA = "0x181DD2D20")]
public IsaacEngine()
{
byte[] array = new byte[IsaacEngine.stateArraySize];
this.keyStream = array;
base..ctor();
}
// Token: 0x04007493 RID: 29843
[Token(Token = "0x4007493")]
private static readonly int sizeL;
// Token: 0x04007494 RID: 29844
[Token(Token = "0x4007494")]
private static readonly int stateArraySize = IsaacEngine.sizeL;
// Token: 0x04007495 RID: 29845
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007495")]
private uint[] engineState;
// Token: 0x04007496 RID: 29846
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4007496")]
private uint[] results;
// Token: 0x04007497 RID: 29847
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007497")]
private uint a;
// Token: 0x04007498 RID: 29848
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4007498")]
private uint b;
// Token: 0x04007499 RID: 29849
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007499")]
private uint c;
// Token: 0x0400749A RID: 29850
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x400749A")]
private int index;
// Token: 0x0400749B RID: 29851
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400749B")]
private byte[] keyStream;
// Token: 0x0400749C RID: 29852
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400749C")]
private byte[] workingKey;
// Token: 0x0400749D RID: 29853
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x400749D")]
private bool initialised;
}
}

Some files were not shown because too many files have changed in this diff Show More