m
This commit is contained in:
@@ -0,0 +1,421 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D3E RID: 7486
|
||||
[Token(Token = "0x2001D3E")]
|
||||
public sealed class BCrypt
|
||||
{
|
||||
// Token: 0x0600B9D2 RID: 47570 RVA: 0x002858F8 File Offset: 0x00283AF8
|
||||
[Token(Token = "0x600B9D2")]
|
||||
[Address(RVA = "0x257CAF0", Offset = "0x257BAF0", VA = "0x18257CAF0")]
|
||||
private BCrypt()
|
||||
{
|
||||
uint[] array = new uint[1024];
|
||||
this.S = array;
|
||||
uint[] array2 = new uint[18];
|
||||
this.P = array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D3 RID: 47571 RVA: 0x0028592C File Offset: 0x00283B2C
|
||||
[Token(Token = "0x600B9D3")]
|
||||
[Address(RVA = "0x257BF80", Offset = "0x257AF80", VA = "0x18257BF80")]
|
||||
private uint F(uint x)
|
||||
{
|
||||
int length = this.S.Length;
|
||||
return x;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D4 RID: 47572 RVA: 0x0028594C File Offset: 0x00283B4C
|
||||
[Token(Token = "0x600B9D4")]
|
||||
[Address(RVA = "0x257C7B0", Offset = "0x257B7B0", VA = "0x18257C7B0")]
|
||||
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;
|
||||
int length2 = p3.Length;
|
||||
uint num5;
|
||||
uint num4 = num5 + 1U;
|
||||
num5 += (uint)2;
|
||||
uint num6 = p3[8];
|
||||
num++;
|
||||
table[0] = xl;
|
||||
num += 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D5 RID: 47573 RVA: 0x002859C4 File Offset: 0x00283BC4
|
||||
[Token(Token = "0x600B9D5")]
|
||||
[Address(RVA = "0x257C250", Offset = "0x257B250", VA = "0x18257C250")]
|
||||
private void InitState()
|
||||
{
|
||||
uint[] s = this.S;
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
ulong num3;
|
||||
Array.Copy(BCrypt.KS0, num2, s, num, (int)num3);
|
||||
uint[] s2 = this.S;
|
||||
int num4 = 0;
|
||||
ulong num5;
|
||||
Array.Copy(BCrypt.KS1, num4, s2, 256, (int)num5);
|
||||
uint[] s3 = this.S;
|
||||
int num6 = 0;
|
||||
ulong num7;
|
||||
Array.Copy(BCrypt.KS2, num6, s3, 512, (int)num7);
|
||||
uint[] s4 = this.S;
|
||||
int num8 = 0;
|
||||
ulong num9;
|
||||
Array.Copy(BCrypt.KS3, num8, s4, 768, (int)num9);
|
||||
int num10 = 0;
|
||||
uint[] p = this.P;
|
||||
int num11 = 0;
|
||||
ulong num12;
|
||||
Array.Copy(BCrypt.KP, num11, p, num10, (int)num12);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D6 RID: 47574 RVA: 0x00285A70 File Offset: 0x00283C70
|
||||
[Token(Token = "0x600B9D6")]
|
||||
[Address(RVA = "0x257B480", Offset = "0x257A480", VA = "0x18257B480")]
|
||||
private void CyclicXorKey(byte[] key)
|
||||
{
|
||||
int length = key.Length;
|
||||
int num = 0;
|
||||
int length2 = key.Length;
|
||||
int num2 = 0;
|
||||
num2++;
|
||||
uint[] p = this.P;
|
||||
num++;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D7 RID: 47575 RVA: 0x00285AAC File Offset: 0x00283CAC
|
||||
[Token(Token = "0x600B9D7")]
|
||||
[Address(RVA = "0x257BAB0", Offset = "0x257AAB0", VA = "0x18257BAB0")]
|
||||
private byte[] EncryptMagicString()
|
||||
{
|
||||
uint[] array = new uint[6];
|
||||
uint num = BCrypt.MAGIC_STRING[0];
|
||||
array[0] = num;
|
||||
uint num2 = BCrypt.MAGIC_STRING[0];
|
||||
array[0] = num2;
|
||||
uint num3 = BCrypt.MAGIC_STRING[1];
|
||||
array[1] = num3;
|
||||
uint num4 = BCrypt.MAGIC_STRING[1];
|
||||
array[1] = num4;
|
||||
uint num5 = BCrypt.MAGIC_STRING[2];
|
||||
array[2] = num5;
|
||||
uint num6 = BCrypt.MAGIC_STRING[2];
|
||||
array[2] = num6;
|
||||
int num7 = 0;
|
||||
int length = array.Length;
|
||||
uint num8 = this.P[0];
|
||||
num7 += 8;
|
||||
uint num9 = this.F(num8);
|
||||
uint[] p = this.P;
|
||||
uint num10 = this.F(num8);
|
||||
uint[] p2 = this.P;
|
||||
int length2 = p2.Length;
|
||||
uint num12;
|
||||
uint num11 = num12 + 1U;
|
||||
num12 += (uint)2;
|
||||
uint num13 = p2[8];
|
||||
num7.m_value = (int)num13;
|
||||
num7 += 2;
|
||||
array[0] = num8;
|
||||
ulong num14;
|
||||
num14 += (ulong)1L;
|
||||
byte[] array2 = new byte[24];
|
||||
int num15 = 0;
|
||||
Pack.UInt32_To_BE(array, array2, num15);
|
||||
int length3 = array.Length;
|
||||
int num16 = 0;
|
||||
Array.Clear(array, num16, length3);
|
||||
uint[] p3 = this.P;
|
||||
int length4 = p3.Length;
|
||||
int num17 = 0;
|
||||
Array.Clear(p3, num17, length4);
|
||||
uint[] s = this.S;
|
||||
int length5 = s.Length;
|
||||
int num18 = 0;
|
||||
Array.Clear(s, num18, length5);
|
||||
return array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D8 RID: 47576 RVA: 0x00285C34 File Offset: 0x00283E34
|
||||
[Token(Token = "0x600B9D8")]
|
||||
[Address(RVA = "0x257C400", Offset = "0x257B400", VA = "0x18257C400")]
|
||||
private void ProcessTableWithSalt(uint[] table, uint[] salt32Bit, uint iv1, uint iv2)
|
||||
{
|
||||
int length = salt32Bit.Length;
|
||||
uint num = salt32Bit[0];
|
||||
int length2 = table.Length;
|
||||
int num2 = 0;
|
||||
if (length2 > 0)
|
||||
{
|
||||
uint[] p = this.P;
|
||||
uint num3 = this.F(iv1);
|
||||
uint[] p2 = this.P;
|
||||
uint num4 = this.F(iv1);
|
||||
int length3 = this.P.Length;
|
||||
uint num6;
|
||||
uint num5 = num6 + 1U;
|
||||
num6 += (uint)2;
|
||||
table[0] = num;
|
||||
table[0] = iv1;
|
||||
int length4 = salt32Bit.Length;
|
||||
num2 += 2;
|
||||
uint num7 = this.P[0];
|
||||
uint num8 = this.F(num7);
|
||||
uint[] p3 = this.P;
|
||||
uint num9 = this.F(iv1);
|
||||
int length5 = this.P.Length;
|
||||
uint num11;
|
||||
uint num10 = num11 + 1U;
|
||||
num11 += (uint)2;
|
||||
table[0] = iv1;
|
||||
table[0] = iv1;
|
||||
int length6 = salt32Bit.Length;
|
||||
num2 += 4;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B9D9 RID: 47577 RVA: 0x00285D24 File Offset: 0x00283F24
|
||||
[Token(Token = "0x600B9D9")]
|
||||
[Address(RVA = "0x257B540", Offset = "0x257A540", VA = "0x18257B540")]
|
||||
private byte[] DeriveRawKey(int cost, byte[] salt, byte[] psw)
|
||||
{
|
||||
while (salt.Length != 16)
|
||||
{
|
||||
}
|
||||
if (psw.Length == 0)
|
||||
{
|
||||
byte[] array = new byte[4];
|
||||
}
|
||||
int num = 0;
|
||||
uint[] s = this.S;
|
||||
int num2 = 0;
|
||||
int num3 = 0;
|
||||
ulong num4;
|
||||
Array.Copy(BCrypt.KS0, num3, s, num2, (int)num4);
|
||||
uint[] s2 = this.S;
|
||||
int num5 = 0;
|
||||
ulong num6;
|
||||
Array.Copy(BCrypt.KS1, num5, s2, 256, (int)num6);
|
||||
uint[] s3 = this.S;
|
||||
int num7 = 0;
|
||||
ulong num8;
|
||||
Array.Copy(BCrypt.KS2, num7, s3, 512, (int)num8);
|
||||
uint[] s4 = this.S;
|
||||
int num9 = 0;
|
||||
ulong num10;
|
||||
Array.Copy(BCrypt.KS3, num9, s4, 768, (int)num10);
|
||||
int num11 = 0;
|
||||
uint[] p = this.P;
|
||||
int num12 = 0;
|
||||
ulong num13;
|
||||
Array.Copy(BCrypt.KP, num12, p, num11, (int)num13);
|
||||
uint[] array2 = new uint[0];
|
||||
int num14 = 0;
|
||||
Pack.BE_To_UInt32(salt, num14, array2);
|
||||
uint[] array3 = new uint[salt.Length];
|
||||
uint num15 = array2[1];
|
||||
array3[0] = num15;
|
||||
uint num16 = array2[1];
|
||||
array3[0] = num16;
|
||||
uint num17 = array2[0];
|
||||
array3[1] = num17;
|
||||
uint num18 = array2[0];
|
||||
array3[1] = num18;
|
||||
this.CyclicXorKey(psw);
|
||||
uint[] p2 = this.P;
|
||||
int num19 = 0;
|
||||
this.ProcessTableWithSalt(p2, array2, (uint)num19, (uint)num);
|
||||
int num20 = array2.Length;
|
||||
int num21 = 0;
|
||||
Array.Clear(array2, num21, num20);
|
||||
uint[] p3 = this.P;
|
||||
num20 = p3.Length;
|
||||
uint num22 = p3[num21];
|
||||
uint num23 = p3[num20];
|
||||
uint[] s5 = this.S;
|
||||
this.ProcessTableWithSalt(s5, array3, num22, num23);
|
||||
int length = array3.Length;
|
||||
int num24 = 0;
|
||||
Array.Clear(array3, num24, length);
|
||||
this.CyclicXorKey(psw);
|
||||
uint[] p4 = this.P;
|
||||
int num25 = 0;
|
||||
int num26 = 0;
|
||||
this.ProcessTable((uint)num26, (uint)num25, p4);
|
||||
uint[] p5 = this.P;
|
||||
int length2 = p5.Length;
|
||||
uint[] s6 = this.S;
|
||||
uint num27 = p5[8];
|
||||
uint num28 = p5[8];
|
||||
this.ProcessTable(num28, num27, s6);
|
||||
this.CyclicXorKey(salt);
|
||||
uint[] p6 = this.P;
|
||||
int num29 = 0;
|
||||
int num30 = 0;
|
||||
this.ProcessTable((uint)num30, (uint)num29, p6);
|
||||
uint[] p7 = this.P;
|
||||
int length3 = p7.Length;
|
||||
uint[] s7 = this.S;
|
||||
uint num31 = p7[8];
|
||||
uint num32 = p7[8];
|
||||
this.ProcessTable(num32, num31, s7);
|
||||
num++;
|
||||
while (num != 1)
|
||||
{
|
||||
}
|
||||
return this.EncryptMagicString();
|
||||
}
|
||||
|
||||
// Token: 0x0600B9DA RID: 47578 RVA: 0x00285FB0 File Offset: 0x002841B0
|
||||
[Token(Token = "0x600B9DA")]
|
||||
[Address(RVA = "0x257C390", Offset = "0x257B390", VA = "0x18257C390")]
|
||||
public static byte[] PasswordToByteArray(char[] password)
|
||||
{
|
||||
byte[] array = Strings.ToUtf8ByteArray(password);
|
||||
int num = 0;
|
||||
return Arrays.Append(array, (byte)num);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9DB RID: 47579 RVA: 0x00285FD0 File Offset: 0x002841D0
|
||||
[Token(Token = "0x600B9DB")]
|
||||
[Address(RVA = "0x257C050", Offset = "0x257B050", VA = "0x18257C050")]
|
||||
public static byte[] Generate(byte[] password, byte[] salt, int cost)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B9DB)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.BCrypt::Generate(System.Byte[],System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_43:
|
||||
stloc:ArgumentNullException(var_4_4D, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("password")))
|
||||
stloc:ArgumentException(var_5_5E, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("BCrypt cost must be from 4..31"), ldstr:string("cost")))
|
||||
}
|
||||
|
||||
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: 0x0600B9DC RID: 47580 RVA: 0x0028603C File Offset: 0x0028423C
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B9DC")]
|
||||
[Address(RVA = "0x257C970", Offset = "0x257B970", VA = "0x18257C970")]
|
||||
static BCrypt()
|
||||
{
|
||||
uint[] array = new uint[6];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.007AFA4B68442DD6E0877DE7624D0A5F508C474F).FieldHandle);
|
||||
BCrypt.MAGIC_STRING = array;
|
||||
uint[] array2 = new uint[18];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.643A9D76937E94519B73BE072D65E79BAFF3C213).FieldHandle);
|
||||
BCrypt.KP = array2;
|
||||
uint[] array3 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.E117A40BF9A3AE32474AD7B22EB4C60E95D3BE2A).FieldHandle);
|
||||
BCrypt.KS0 = array3;
|
||||
uint[] array4 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.6F576E8737EAAC9B6B12BDFC370048CD205E2CDD).FieldHandle);
|
||||
BCrypt.KS1 = array4;
|
||||
uint[] array5 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.E2F8F75B7ABE5A6E4ECF5E32B935909BE2CC9F4B).FieldHandle);
|
||||
BCrypt.KS2 = array5;
|
||||
uint[] array6 = new uint[256];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.1C1237F52E2ED7B4D229AE3978DA144B9E653F5E).FieldHandle);
|
||||
BCrypt.KS3 = array6;
|
||||
}
|
||||
|
||||
// Token: 0x04007525 RID: 29989
|
||||
[Token(Token = "0x4007525")]
|
||||
private static readonly uint[] MAGIC_STRING;
|
||||
|
||||
// Token: 0x04007526 RID: 29990
|
||||
[Token(Token = "0x4007526")]
|
||||
internal const int MAGIC_STRING_LENGTH = 6;
|
||||
|
||||
// Token: 0x04007527 RID: 29991
|
||||
[Token(Token = "0x4007527")]
|
||||
private static readonly uint[] KP;
|
||||
|
||||
// Token: 0x04007528 RID: 29992
|
||||
[Token(Token = "0x4007528")]
|
||||
private static readonly uint[] KS0;
|
||||
|
||||
// Token: 0x04007529 RID: 29993
|
||||
[Token(Token = "0x4007529")]
|
||||
private static readonly uint[] KS1;
|
||||
|
||||
// Token: 0x0400752A RID: 29994
|
||||
[Token(Token = "0x400752A")]
|
||||
private static readonly uint[] KS2;
|
||||
|
||||
// Token: 0x0400752B RID: 29995
|
||||
[Token(Token = "0x400752B")]
|
||||
private static readonly uint[] KS3;
|
||||
|
||||
// Token: 0x0400752C RID: 29996
|
||||
[Token(Token = "0x400752C")]
|
||||
private const int ROUNDS = 16;
|
||||
|
||||
// Token: 0x0400752D RID: 29997
|
||||
[Token(Token = "0x400752D")]
|
||||
private const int SBOX_SK = 256;
|
||||
|
||||
// Token: 0x0400752E RID: 29998
|
||||
[Token(Token = "0x400752E")]
|
||||
private const int SBOX_SK2 = 512;
|
||||
|
||||
// Token: 0x0400752F RID: 29999
|
||||
[Token(Token = "0x400752F")]
|
||||
private const int SBOX_SK3 = 768;
|
||||
|
||||
// Token: 0x04007530 RID: 30000
|
||||
[Token(Token = "0x4007530")]
|
||||
private const int P_SZ = 18;
|
||||
|
||||
// Token: 0x04007531 RID: 30001
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007531")]
|
||||
private readonly uint[] S;
|
||||
|
||||
// Token: 0x04007532 RID: 30002
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007532")]
|
||||
private readonly uint[] P;
|
||||
|
||||
// Token: 0x04007533 RID: 30003
|
||||
[Token(Token = "0x4007533")]
|
||||
internal const int SALT_SIZE_BYTES = 16;
|
||||
|
||||
// Token: 0x04007534 RID: 30004
|
||||
[Token(Token = "0x4007534")]
|
||||
internal const int MIN_COST = 4;
|
||||
|
||||
// Token: 0x04007535 RID: 30005
|
||||
[Token(Token = "0x4007535")]
|
||||
internal const int MAX_COST = 31;
|
||||
|
||||
// Token: 0x04007536 RID: 30006
|
||||
[Token(Token = "0x4007536")]
|
||||
internal const int MAX_PASSWORD_BYTES = 72;
|
||||
}
|
||||
}
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D3F RID: 7487
|
||||
[Token(Token = "0x2001D3F")]
|
||||
public class BaseKdfBytesGenerator : IDerivationFunction
|
||||
{
|
||||
// Token: 0x0600B9DD RID: 47581 RVA: 0x002860F0 File Offset: 0x002842F0
|
||||
[Token(Token = "0x600B9DD")]
|
||||
[Address(RVA = "0x49A4C0", Offset = "0x4994C0", VA = "0x18049A4C0")]
|
||||
public BaseKdfBytesGenerator(int counterStart, IDigest digest)
|
||||
{
|
||||
this.counterStart = counterStart;
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9DE RID: 47582 RVA: 0x00286114 File Offset: 0x00284314
|
||||
[Token(Token = "0x600B9DE")]
|
||||
[Address(RVA = "0x257CF30", Offset = "0x257BF30", VA = "0x18257CF30", Slot = "7")]
|
||||
public virtual void Init(IDerivationParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B9DE)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.BaseKdfBytesGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_3B:
|
||||
stloc:ArgumentException(var_5_45, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("KDF parameters required for KDF Generator")))
|
||||
}
|
||||
|
||||
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: 0x17001D4E RID: 7502
|
||||
// (get) Token: 0x0600B9DF RID: 47583 RVA: 0x00286168 File Offset: 0x00284368
|
||||
[Token(Token = "0x17001D4E")]
|
||||
public virtual IDigest Digest
|
||||
{
|
||||
[Token(Token = "0x600B9DF")]
|
||||
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "8")]
|
||||
get
|
||||
{
|
||||
return this.digest;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E0 RID: 47584 RVA: 0x0028617C File Offset: 0x0028437C
|
||||
[Token(Token = "0x600B9E0")]
|
||||
[Address(RVA = "0x257CB50", Offset = "0x257BB50", VA = "0x18257CB50", Slot = "9")]
|
||||
public virtual int GenerateBytes(byte[] output, int outOff, int length)
|
||||
{
|
||||
int num = output.Length;
|
||||
num -= length;
|
||||
IDigest digest = this.digest;
|
||||
IDigest digest2 = this.digest;
|
||||
int num2 = length - 1;
|
||||
num2 += num;
|
||||
byte[] array = new byte[num2];
|
||||
byte[] array2 = new byte[4];
|
||||
int num3 = this.counterStart;
|
||||
int num4 = 0;
|
||||
Pack.UInt32_To_BE((uint)num3, array2, num4);
|
||||
int num5 = this.counterStart;
|
||||
int num6 = 0;
|
||||
if (num2 > 0)
|
||||
{
|
||||
byte[] array3 = this.shared;
|
||||
IDigest digest3 = this.digest;
|
||||
if (num6 < num4)
|
||||
{
|
||||
num6 += num6;
|
||||
num6++;
|
||||
}
|
||||
int num7 = 0;
|
||||
IDigest digest4 = this.digest;
|
||||
int num8 = 0;
|
||||
if (num8 < num7)
|
||||
{
|
||||
num8 += num8;
|
||||
num8++;
|
||||
}
|
||||
byte[] array4 = this.iv;
|
||||
if (array4 != 0)
|
||||
{
|
||||
IDigest digest5 = this.digest;
|
||||
int length2 = array4.Length;
|
||||
}
|
||||
IDigest digest6 = this.digest;
|
||||
num8 += 4;
|
||||
num8 += 19;
|
||||
num8 += 4;
|
||||
num8 += 19;
|
||||
if (array2.Length == 3)
|
||||
{
|
||||
num5 += 256;
|
||||
int num9 = 0;
|
||||
Pack.UInt32_To_BE((uint)num5, array2, num9);
|
||||
}
|
||||
num6++;
|
||||
}
|
||||
IDigest digest7 = this.digest;
|
||||
return length;
|
||||
}
|
||||
|
||||
// Token: 0x04007537 RID: 30007
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007537")]
|
||||
private int counterStart;
|
||||
|
||||
// Token: 0x04007538 RID: 30008
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007538")]
|
||||
private IDigest digest;
|
||||
|
||||
// Token: 0x04007539 RID: 30009
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007539")]
|
||||
private byte[] shared;
|
||||
|
||||
// Token: 0x0400753A RID: 30010
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400753A")]
|
||||
private byte[] iv;
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D40 RID: 7488
|
||||
[Token(Token = "0x2001D40")]
|
||||
public class DHBasicKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600B9E1 RID: 47585 RVA: 0x002862A4 File Offset: 0x002844A4
|
||||
[Token(Token = "0x600B9E1")]
|
||||
[Address(RVA = "0x257D220", Offset = "0x257C220", VA = "0x18257D220", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
while (parameters != 0)
|
||||
{
|
||||
if (parameters != 0)
|
||||
{
|
||||
this.param = parameters;
|
||||
return;
|
||||
}
|
||||
}
|
||||
int num = 0;
|
||||
this.param = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E2 RID: 47586 RVA: 0x002862CC File Offset: 0x002844CC
|
||||
[Token(Token = "0x600B9E2")]
|
||||
[Address(RVA = "0x257D0D0", Offset = "0x257C0D0", VA = "0x18257D0D0", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
DHKeyGenerationParameters dhkeyGenerationParameters = this.param;
|
||||
DHParameters parameters = dhkeyGenerationParameters.parameters;
|
||||
SecureRandom random = dhkeyGenerationParameters.random;
|
||||
BigInteger g = parameters.g;
|
||||
BigInteger p = parameters.p;
|
||||
BigInteger bigInteger;
|
||||
DHPublicKeyParameters dhpublicKeyParameters = new DHPublicKeyParameters(g.ModPow(bigInteger, p), parameters);
|
||||
DHPrivateKeyParameters dhprivateKeyParameters = new DHPrivateKeyParameters(bigInteger, parameters);
|
||||
return new AsymmetricCipherKeyPair(dhpublicKeyParameters, dhprivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E3 RID: 47587 RVA: 0x00286328 File Offset: 0x00284528
|
||||
[Token(Token = "0x600B9E3")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public DHBasicKeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400753B RID: 30011
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400753B")]
|
||||
private DHKeyGenerationParameters param;
|
||||
}
|
||||
}
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D41 RID: 7489
|
||||
[Token(Token = "0x2001D41")]
|
||||
internal class DHKeyGeneratorHelper
|
||||
{
|
||||
// Token: 0x0600B9E4 RID: 47588 RVA: 0x0028633C File Offset: 0x0028453C
|
||||
[Token(Token = "0x600B9E4")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
private DHKeyGeneratorHelper()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E5 RID: 47589 RVA: 0x00286350 File Offset: 0x00284550
|
||||
[Token(Token = "0x600B9E5")]
|
||||
[Address(RVA = "0x257D2C0", Offset = "0x257C2C0", VA = "0x18257D2C0")]
|
||||
internal BigInteger CalculatePrivate(DHParameters dhParams, SecureRandom random)
|
||||
{
|
||||
int l = dhParams.l;
|
||||
if (l == 0)
|
||||
{
|
||||
int m = dhParams.m;
|
||||
BigInteger two = BigInteger.Two;
|
||||
if (m != 0)
|
||||
{
|
||||
BigInteger one = BigInteger.One;
|
||||
int num = m - 1;
|
||||
BigInteger bigInteger = one.ShiftLeft(num);
|
||||
}
|
||||
BigInteger p;
|
||||
if (dhParams.q == 0)
|
||||
{
|
||||
p = dhParams.p;
|
||||
}
|
||||
BigInteger two2 = BigInteger.Two;
|
||||
BigInteger bigInteger2 = p.Subtract(two2);
|
||||
int bitLength = bigInteger2.BitLength;
|
||||
BigInteger bigInteger3 = BigIntegers.CreateRandomInRange(two, bigInteger2, random);
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger3);
|
||||
return bigInteger3;
|
||||
}
|
||||
BigInteger bigInteger4 = new BigInteger(l, random);
|
||||
int num2 = l - 1;
|
||||
int nafWeight2 = WNafUtilities.GetNafWeight(bigInteger4.SetBit(num2));
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E6 RID: 47590 RVA: 0x002863F4 File Offset: 0x002845F4
|
||||
[Token(Token = "0x600B9E6")]
|
||||
[Address(RVA = "0x257D4C0", Offset = "0x257C4C0", VA = "0x18257D4C0")]
|
||||
internal BigInteger CalculatePublic(DHParameters dhParams, BigInteger x)
|
||||
{
|
||||
BigInteger g = dhParams.g;
|
||||
BigInteger p = dhParams.p;
|
||||
return g.ModPow(x, p);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E7 RID: 47591 RVA: 0x00286420 File Offset: 0x00284620
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B9E7")]
|
||||
[Address(RVA = "0x257D4F0", Offset = "0x257C4F0", VA = "0x18257D4F0")]
|
||||
static DHKeyGeneratorHelper()
|
||||
{
|
||||
DHKeyGeneratorHelper dhkeyGeneratorHelper = new DHKeyGeneratorHelper();
|
||||
}
|
||||
|
||||
// Token: 0x0400753C RID: 30012
|
||||
[Token(Token = "0x400753C")]
|
||||
internal static readonly DHKeyGeneratorHelper Instance;
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D42 RID: 7490
|
||||
[Token(Token = "0x2001D42")]
|
||||
public class DHKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600B9E8 RID: 47592 RVA: 0x00286434 File Offset: 0x00284634
|
||||
[Token(Token = "0x600B9E8")]
|
||||
[Address(RVA = "0x257D6A0", Offset = "0x257C6A0", VA = "0x18257D6A0", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
while (parameters != 0)
|
||||
{
|
||||
if (parameters != 0)
|
||||
{
|
||||
this.param = parameters;
|
||||
return;
|
||||
}
|
||||
}
|
||||
int num = 0;
|
||||
this.param = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9E9 RID: 47593 RVA: 0x0028645C File Offset: 0x0028465C
|
||||
[Token(Token = "0x600B9E9")]
|
||||
[Address(RVA = "0x257D550", Offset = "0x257C550", VA = "0x18257D550", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
DHKeyGenerationParameters dhkeyGenerationParameters = this.param;
|
||||
DHParameters parameters = dhkeyGenerationParameters.parameters;
|
||||
SecureRandom random = dhkeyGenerationParameters.random;
|
||||
BigInteger g = parameters.g;
|
||||
BigInteger p = parameters.p;
|
||||
BigInteger bigInteger;
|
||||
DHPublicKeyParameters dhpublicKeyParameters = new DHPublicKeyParameters(g.ModPow(bigInteger, p), parameters);
|
||||
DHPrivateKeyParameters dhprivateKeyParameters = new DHPrivateKeyParameters(bigInteger, parameters);
|
||||
return new AsymmetricCipherKeyPair(dhpublicKeyParameters, dhprivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9EA RID: 47594 RVA: 0x002864B8 File Offset: 0x002846B8
|
||||
[Token(Token = "0x600B9EA")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public DHKeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400753D RID: 30013
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400753D")]
|
||||
private DHKeyGenerationParameters param;
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D43 RID: 7491
|
||||
[Token(Token = "0x2001D43")]
|
||||
public class DHParametersGenerator
|
||||
{
|
||||
// Token: 0x0600B9EB RID: 47595 RVA: 0x002864CC File Offset: 0x002846CC
|
||||
[Token(Token = "0x600B9EB")]
|
||||
[Address(RVA = "0x257D890", Offset = "0x257C890", VA = "0x18257D890", Slot = "4")]
|
||||
public virtual void Init(int size, int certainty, SecureRandom random)
|
||||
{
|
||||
this.size = size;
|
||||
this.certainty = certainty;
|
||||
this.random = random;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9EC RID: 47596 RVA: 0x002864F0 File Offset: 0x002846F0
|
||||
[Token(Token = "0x600B9EC")]
|
||||
[Address(RVA = "0x257D740", Offset = "0x257C740", VA = "0x18257D740", Slot = "5")]
|
||||
public virtual DHParameters GenerateParameters()
|
||||
{
|
||||
int num = this.size;
|
||||
int num2 = this.certainty;
|
||||
SecureRandom secureRandom = this.random;
|
||||
BigInteger[] array = DHParametersHelper.GenerateSafePrimes(num, num2, secureRandom);
|
||||
int length = array.Length;
|
||||
BigInteger bigInteger = array[0];
|
||||
BigInteger bigInteger2 = array[1];
|
||||
SecureRandom secureRandom2 = this.random;
|
||||
BigInteger bigInteger3 = DHParametersHelper.SelectGenerator(bigInteger, bigInteger2, secureRandom2);
|
||||
BigInteger two = BigInteger.Two;
|
||||
int num3;
|
||||
DHParameters dhparameters = new DHParameters(bigInteger, bigInteger3, bigInteger2, two, num3);
|
||||
num3 = 0;
|
||||
return dhparameters;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9ED RID: 47597 RVA: 0x00286570 File Offset: 0x00284770
|
||||
[Token(Token = "0x600B9ED")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public DHParametersGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400753E RID: 30014
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400753E")]
|
||||
private int size;
|
||||
|
||||
// Token: 0x0400753F RID: 30015
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x400753F")]
|
||||
private int certainty;
|
||||
|
||||
// Token: 0x04007540 RID: 30016
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007540")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D44 RID: 7492
|
||||
[Token(Token = "0x2001D44")]
|
||||
internal class DHParametersHelper
|
||||
{
|
||||
// Token: 0x0600B9EE RID: 47598 RVA: 0x00286584 File Offset: 0x00284784
|
||||
[Token(Token = "0x600B9EE")]
|
||||
[Address(RVA = "0x257D8A0", Offset = "0x257C8A0", VA = "0x18257D8A0")]
|
||||
private static BigInteger[] ConstructBigPrimeProducts(int[] primeProducts)
|
||||
{
|
||||
BigInteger[] array = new BigInteger[primeProducts.Length];
|
||||
int num = 0;
|
||||
if (num < array.Length)
|
||||
{
|
||||
BigInteger bigInteger = BigInteger.ValueOf((long)primeProducts[num]);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9EF RID: 47599 RVA: 0x002865D0 File Offset: 0x002847D0
|
||||
[Token(Token = "0x600B9EF")]
|
||||
[Address(RVA = "0x257D9A0", Offset = "0x257C9A0", VA = "0x18257D9A0")]
|
||||
internal static BigInteger[] GenerateSafePrimes(int size, int certainty, SecureRandom random)
|
||||
{
|
||||
BigInteger bigInteger9;
|
||||
BigInteger bigInteger11;
|
||||
ulong num10;
|
||||
do
|
||||
{
|
||||
int num = size - 1;
|
||||
if (size > 32)
|
||||
{
|
||||
int num2 = 0;
|
||||
int num3;
|
||||
BigInteger bigInteger = new BigInteger(certainty, num3, random);
|
||||
num3 = 0;
|
||||
int[][] array = DHParametersHelper.primeLists;
|
||||
BigInteger bigInteger6;
|
||||
if (num2 < array.Length)
|
||||
{
|
||||
BigInteger[] bigPrimeProducts = DHParametersHelper.BigPrimeProducts;
|
||||
BigInteger bigInteger3;
|
||||
BigInteger bigInteger2 = bigInteger.Remainder(bigInteger3);
|
||||
int num4 = 0;
|
||||
int intValue = bigInteger2.IntValue;
|
||||
if (num2 == 0 && size != 2)
|
||||
{
|
||||
BigInteger bigInteger4 = BigInteger.ValueOf((long)size);
|
||||
BigInteger bigInteger5 = bigInteger.Add(bigInteger4);
|
||||
int[] array2 = DHParametersHelper.primeProducts;
|
||||
}
|
||||
int[][] array3 = DHParametersHelper.primeLists;
|
||||
if (num4 != 0 && num4 != random)
|
||||
{
|
||||
num2++;
|
||||
num2++;
|
||||
}
|
||||
BigInteger six = DHParametersHelper.Six;
|
||||
bigInteger6 = bigInteger.Add(six);
|
||||
}
|
||||
uint num5;
|
||||
ulong num6;
|
||||
if (bigInteger6.BitLength != num || !bigInteger6.RabinMillerTest((int)num5, random, num6 != 0UL))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
BigInteger bigInteger7 = bigInteger6.ShiftLeft(1);
|
||||
BigInteger one = BigInteger.One;
|
||||
BigInteger bigInteger8 = bigInteger7.Add(one);
|
||||
ulong num7;
|
||||
ulong num8;
|
||||
if (!bigInteger8.RabinMillerTest(certainty, random, num7 != 0UL) || (certainty > 2 && !bigInteger6.RabinMillerTest(certainty, random, num8 != 0UL)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger8);
|
||||
BigInteger[] array4 = new BigInteger[2];
|
||||
}
|
||||
bigInteger9 = new BigInteger(certainty, 2, random);
|
||||
BigInteger bigInteger10 = bigInteger9.ShiftLeft(1);
|
||||
BigInteger one2 = BigInteger.One;
|
||||
bigInteger11 = bigInteger10.Add(one2);
|
||||
ulong num9;
|
||||
if (!bigInteger11.IsProbablePrime(certainty, num9 != 0UL))
|
||||
{
|
||||
break;
|
||||
}
|
||||
while (certainty <= 2)
|
||||
{
|
||||
}
|
||||
}
|
||||
while (bigInteger9.IsProbablePrime(certainty, num10 != 0UL));
|
||||
uint num11;
|
||||
BigInteger bigInteger12 = new BigInteger(certainty, (int)num11, random);
|
||||
bigInteger12.nBitLength = bigInteger11;
|
||||
if (bigInteger12 != 0)
|
||||
{
|
||||
}
|
||||
return bigInteger12;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F0 RID: 47600 RVA: 0x0028674C File Offset: 0x0028494C
|
||||
[Token(Token = "0x600B9F0")]
|
||||
[Address(RVA = "0x257DFB0", Offset = "0x257CFB0", VA = "0x18257DFB0")]
|
||||
internal static BigInteger SelectGenerator(BigInteger p, BigInteger q, SecureRandom random)
|
||||
{
|
||||
BigInteger two = BigInteger.Two;
|
||||
BigInteger bigInteger = p.Subtract(two);
|
||||
BigInteger bigInteger2 = BigIntegers.CreateRandomInRange(BigInteger.Two, bigInteger, random);
|
||||
BigInteger two2 = BigInteger.Two;
|
||||
BigInteger bigInteger3 = bigInteger2.ModPow(two2, p);
|
||||
while (bigInteger3 != 0)
|
||||
{
|
||||
}
|
||||
return bigInteger3;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F1 RID: 47601 RVA: 0x00286794 File Offset: 0x00284994
|
||||
[Token(Token = "0x600B9F1")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public DHParametersHelper()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F2 RID: 47602 RVA: 0x002867A8 File Offset: 0x002849A8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600B9F2")]
|
||||
[Address(RVA = "0x257E0F0", Offset = "0x257D0F0", VA = "0x18257E0F0")]
|
||||
static DHParametersHelper()
|
||||
{
|
||||
BigInteger bigInteger;
|
||||
DHParametersHelper.Six = bigInteger;
|
||||
DHParametersHelper.primeLists = BigInteger.primeLists;
|
||||
DHParametersHelper.primeProducts = BigInteger.primeProducts;
|
||||
int[] array = DHParametersHelper.primeProducts;
|
||||
BigInteger[] array2 = new BigInteger[array.Length];
|
||||
int num = 0;
|
||||
if (num < array2.Length)
|
||||
{
|
||||
BigInteger bigInteger2 = BigInteger.ValueOf((long)array[num]);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
DHParametersHelper.BigPrimeProducts = array2;
|
||||
}
|
||||
|
||||
// Token: 0x04007541 RID: 30017
|
||||
[Token(Token = "0x4007541")]
|
||||
private static readonly BigInteger Six;
|
||||
|
||||
// Token: 0x04007542 RID: 30018
|
||||
[Token(Token = "0x4007542")]
|
||||
private static readonly int[][] primeLists;
|
||||
|
||||
// Token: 0x04007543 RID: 30019
|
||||
[Token(Token = "0x4007543")]
|
||||
private static readonly int[] primeProducts;
|
||||
|
||||
// Token: 0x04007544 RID: 30020
|
||||
[Token(Token = "0x4007544")]
|
||||
private static readonly BigInteger[] BigPrimeProducts;
|
||||
}
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D45 RID: 7493
|
||||
[Token(Token = "0x2001D45")]
|
||||
public class DesEdeKeyGenerator : DesKeyGenerator
|
||||
{
|
||||
// Token: 0x0600B9F3 RID: 47603 RVA: 0x0028681C File Offset: 0x00284A1C
|
||||
[Token(Token = "0x600B9F3")]
|
||||
[Address(RVA = "0x257E2B0", Offset = "0x257D2B0", VA = "0x18257E2B0")]
|
||||
public DesEdeKeyGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F4 RID: 47604 RVA: 0x00286830 File Offset: 0x00284A30
|
||||
[Token(Token = "0x600B9F4")]
|
||||
[Address(RVA = "0x257E2C0", Offset = "0x257D2C0", VA = "0x18257E2C0")]
|
||||
internal DesEdeKeyGenerator(int defaultStrength)
|
||||
: base(defaultStrength)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F5 RID: 47605 RVA: 0x00286844 File Offset: 0x00284A44
|
||||
[Token(Token = "0x600B9F5")]
|
||||
[Address(RVA = "0x257E3A0", Offset = "0x257D3A0", VA = "0x18257E3A0", Slot = "4")]
|
||||
protected override void engineInit(KeyGenerationParameters parameters)
|
||||
{
|
||||
SecureRandom random = parameters.random;
|
||||
this.random = random;
|
||||
int num = parameters.strength;
|
||||
num += 7;
|
||||
num += parameters;
|
||||
this.strength = num;
|
||||
if (num != 0 && num != 21)
|
||||
{
|
||||
if (num != 14)
|
||||
{
|
||||
num += -16;
|
||||
if (num != -9)
|
||||
{
|
||||
object[] array = new object[5];
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
this.strength = (int)((ulong)16L);
|
||||
return;
|
||||
}
|
||||
this.strength = (int)((ulong)24L);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F6 RID: 47606 RVA: 0x00286918 File Offset: 0x00284B18
|
||||
[Token(Token = "0x600B9F6")]
|
||||
[Address(RVA = "0x257E2D0", Offset = "0x257D2D0", VA = "0x18257E2D0", Slot = "5")]
|
||||
protected override byte[] engineGenerateKey()
|
||||
{
|
||||
byte[] array;
|
||||
for (;;)
|
||||
{
|
||||
array = new byte[this.strength];
|
||||
double num = this.random.NextDouble();
|
||||
DesParameters.SetOddParity(array);
|
||||
int length = array.Length;
|
||||
int num2 = 0;
|
||||
if (!DesEdeParameters.IsWeakKey(array, num2, length))
|
||||
{
|
||||
int num3 = 0;
|
||||
if (DesEdeParameters.IsRealEdeKey(array, num3))
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
}
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D46 RID: 7494
|
||||
[Token(Token = "0x2001D46")]
|
||||
public class DesKeyGenerator : CipherKeyGenerator
|
||||
{
|
||||
// Token: 0x0600B9F7 RID: 47607 RVA: 0x0028696C File Offset: 0x00284B6C
|
||||
[Token(Token = "0x600B9F7")]
|
||||
[Address(RVA = "0x257E2B0", Offset = "0x257D2B0", VA = "0x18257E2B0")]
|
||||
public DesKeyGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F8 RID: 47608 RVA: 0x00286980 File Offset: 0x00284B80
|
||||
[Token(Token = "0x600B9F8")]
|
||||
[Address(RVA = "0x257E2C0", Offset = "0x257D2C0", VA = "0x18257E2C0")]
|
||||
internal DesKeyGenerator(int defaultStrength)
|
||||
: base(defaultStrength)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600B9F9 RID: 47609 RVA: 0x00286994 File Offset: 0x00284B94
|
||||
[Token(Token = "0x600B9F9")]
|
||||
[Address(RVA = "0x257E630", Offset = "0x257D630", VA = "0x18257E630", Slot = "4")]
|
||||
protected override void engineInit(KeyGenerationParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B9F9)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.DesKeyGenerator::engineInit(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.KeyGenerationParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_24:
|
||||
stloc:ArgumentException(var_3_39, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("DES key must be "), ldloc:int32[exp:object](var_2), ldstr:string[exp:object](" 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: 0x0600B9FA RID: 47610 RVA: 0x002869DC File Offset: 0x00284BDC
|
||||
[Token(Token = "0x600B9FA")]
|
||||
[Address(RVA = "0x257E580", Offset = "0x257D580", VA = "0x18257E580", Slot = "5")]
|
||||
protected override byte[] engineGenerateKey()
|
||||
{
|
||||
byte[] array;
|
||||
int num2;
|
||||
do
|
||||
{
|
||||
array = new byte[8];
|
||||
double num = this.random.NextDouble();
|
||||
DesParameters.SetOddParity(array);
|
||||
num2 = 0;
|
||||
}
|
||||
while (DesParameters.IsWeakKey(array, num2));
|
||||
return array;
|
||||
}
|
||||
}
|
||||
}
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D47 RID: 7495
|
||||
[Token(Token = "0x2001D47")]
|
||||
public class DsaKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600B9FB RID: 47611 RVA: 0x00286A18 File Offset: 0x00284C18
|
||||
[Token(Token = "0x600B9FB")]
|
||||
[Address(RVA = "0x257EA00", Offset = "0x257DA00", VA = "0x18257EA00", Slot = "4")]
|
||||
public void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B9FB)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.DsaKeyPairGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.KeyGenerationParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_12:
|
||||
stloc:ArgumentNullException(var_1_1C, 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.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: 0x0600B9FC RID: 47612 RVA: 0x00286A44 File Offset: 0x00284C44
|
||||
[Token(Token = "0x600B9FC")]
|
||||
[Address(RVA = "0x257E720", Offset = "0x257D720", VA = "0x18257E720", Slot = "5")]
|
||||
public AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
DsaKeyGenerationParameters dsaKeyGenerationParameters = this.param;
|
||||
DsaParameters parameters = dsaKeyGenerationParameters.parameters;
|
||||
BigInteger q = parameters.q;
|
||||
SecureRandom random = dsaKeyGenerationParameters.random;
|
||||
int bitLength = q.BitLength;
|
||||
BigInteger one = DsaKeyPairGenerator.One;
|
||||
BigInteger bigInteger = q.Subtract(one);
|
||||
BigInteger bigInteger2 = BigIntegers.CreateRandomInRange(one, bigInteger, random);
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger2);
|
||||
BigInteger g = parameters.g;
|
||||
BigInteger p = parameters.p;
|
||||
DsaPublicKeyParameters dsaPublicKeyParameters = new DsaPublicKeyParameters(g.ModPow(bigInteger2, p), parameters);
|
||||
DsaPrivateKeyParameters dsaPrivateKeyParameters = new DsaPrivateKeyParameters(bigInteger2, parameters);
|
||||
return new AsymmetricCipherKeyPair(dsaPublicKeyParameters, dsaPrivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9FD RID: 47613 RVA: 0x00286AD8 File Offset: 0x00284CD8
|
||||
[Token(Token = "0x600B9FD")]
|
||||
[Address(RVA = "0x257E910", Offset = "0x257D910", VA = "0x18257E910")]
|
||||
private static BigInteger GeneratePrivateKey(BigInteger q, SecureRandom random)
|
||||
{
|
||||
int bitLength = q.BitLength;
|
||||
BigInteger one = DsaKeyPairGenerator.One;
|
||||
BigInteger bigInteger = q.Subtract(one);
|
||||
BigInteger bigInteger2 = BigIntegers.CreateRandomInRange(one, bigInteger, random);
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger2);
|
||||
return bigInteger2;
|
||||
}
|
||||
|
||||
// Token: 0x0600B9FE RID: 47614 RVA: 0x00286B14 File Offset: 0x00284D14
|
||||
[Token(Token = "0x600B9FE")]
|
||||
[Address(RVA = "0x257E6F0", Offset = "0x257D6F0", VA = "0x18257E6F0")]
|
||||
private static BigInteger CalculatePublicKey(BigInteger p, BigInteger g, BigInteger x)
|
||||
{
|
||||
return g.ModPow(x, p);
|
||||
}
|
||||
|
||||
// Token: 0x0600B9FF RID: 47615 RVA: 0x00286B30 File Offset: 0x00284D30
|
||||
[Token(Token = "0x600B9FF")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public DsaKeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007545 RID: 30021
|
||||
[Token(Token = "0x4007545")]
|
||||
private static readonly BigInteger One = BigInteger.One;
|
||||
|
||||
// Token: 0x04007546 RID: 30022
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007546")]
|
||||
private DsaKeyGenerationParameters param;
|
||||
}
|
||||
}
|
||||
+347
@@ -0,0 +1,347 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D48 RID: 7496
|
||||
[Token(Token = "0x2001D48")]
|
||||
public class DsaParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA01 RID: 47617 RVA: 0x00286B5C File Offset: 0x00284D5C
|
||||
[Token(Token = "0x600BA01")]
|
||||
[Address(RVA = "0x2580100", Offset = "0x257F100", VA = "0x182580100")]
|
||||
public DsaParametersGenerator()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
base..ctor();
|
||||
this.digest = sha1Digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA02 RID: 47618 RVA: 0x00286B7C File Offset: 0x00284D7C
|
||||
[Token(Token = "0x600BA02")]
|
||||
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
||||
public DsaParametersGenerator(IDigest digest)
|
||||
{
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA03 RID: 47619 RVA: 0x00286B98 File Offset: 0x00284D98
|
||||
[Token(Token = "0x600BA03")]
|
||||
[Address(RVA = "0x257FDB0", Offset = "0x257EDB0", VA = "0x18257FDB0", Slot = "4")]
|
||||
public virtual void Init(int size, int certainty, SecureRandom random)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA03)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator::Init(System.Int32,System.Int32,BestHTTP.SecureProtocol.Org.BouncyCastle.Security.SecureRandom)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2E:
|
||||
stloc:ArgumentException(var_0_3D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("size must be from 512 - 1024 and a multiple of 64"), ldstr:string("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.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: 0x00286BE4 File Offset: 0x00284DE4
|
||||
[Token(Token = "0x600BA04")]
|
||||
[Address(RVA = "0x257FE70", Offset = "0x257EE70", VA = "0x18257FE70", Slot = "5")]
|
||||
public virtual void Init(DsaParameterGenerationParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA04)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.DsaParameterGenerationParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_D8:
|
||||
stloc:ArgumentException(var_9_E2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("N must be 256 for L = 3072")))
|
||||
}
|
||||
|
||||
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: 0x0600BA05 RID: 47621 RVA: 0x00286CD4 File Offset: 0x00284ED4
|
||||
[Token(Token = "0x600BA05")]
|
||||
[Address(RVA = "0x257FC70", Offset = "0x257EC70", VA = "0x18257FC70", Slot = "6")]
|
||||
public virtual DsaParameters GenerateParameters()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA05)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.DsaParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator::GenerateParameters()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_00:
|
||||
brtrue(IL_00, logicnot:bool(ldfld:bool(DsaParametersGenerator::use186_3, ldloc:DsaParametersGenerator(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.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: 0x0600BA06 RID: 47622 RVA: 0x00286CEC File Offset: 0x00284EEC
|
||||
[Token(Token = "0x600BA06")]
|
||||
[Address(RVA = "0x257EF50", Offset = "0x257DF50", VA = "0x18257EF50", Slot = "7")]
|
||||
protected virtual DsaParameters GenerateParameters_FIPS186_2()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA06)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.DsaParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator::GenerateParameters_FIPS186_2()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_233:
|
||||
stloc:InvalidOperationException(var_58_23D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("can only use SHA-1 for generating FIPS 186-2 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: 0x0600BA07 RID: 47623 RVA: 0x00286F38 File Offset: 0x00285138
|
||||
[Token(Token = "0x600BA07")]
|
||||
[Address(RVA = "0x257EB30", Offset = "0x257DB30", VA = "0x18257EB30", Slot = "8")]
|
||||
protected virtual BigInteger CalculateGenerator_FIPS186_2(BigInteger p, BigInteger q, SecureRandom r)
|
||||
{
|
||||
BigInteger bigInteger3;
|
||||
do
|
||||
{
|
||||
BigInteger one = BigInteger.One;
|
||||
BigInteger bigInteger = p.Subtract(one).Divide(q);
|
||||
BigInteger two = BigInteger.Two;
|
||||
BigInteger bigInteger2 = p.Subtract(two);
|
||||
bigInteger3 = BigIntegers.CreateRandomInRange(BigInteger.Two, bigInteger2, r).ModPow(bigInteger, p);
|
||||
}
|
||||
while (bigInteger3.BitLength <= 1);
|
||||
return bigInteger3;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA08 RID: 47624 RVA: 0x00286F90 File Offset: 0x00285190
|
||||
[Token(Token = "0x600BA08")]
|
||||
[Address(RVA = "0x257F660", Offset = "0x257E660", VA = "0x18257F660", Slot = "9")]
|
||||
protected virtual DsaParameters GenerateParameters_FIPS186_3()
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
int n = this.N;
|
||||
byte[] array = new byte[0];
|
||||
int l = this.L;
|
||||
byte[] array2 = new byte[l];
|
||||
double num = this.random.NextDouble();
|
||||
int length = array.Length;
|
||||
BigInteger bigInteger = new BigInteger(1, array2);
|
||||
BigInteger one = BigInteger.One;
|
||||
int n2 = this.N;
|
||||
BigInteger bigInteger2 = one.ShiftLeft(n2);
|
||||
BigInteger bigInteger3 = bigInteger.Mod(bigInteger2);
|
||||
int num2 = 0;
|
||||
BigInteger bigInteger4 = bigInteger3.SetBit(num2);
|
||||
int n3 = this.N;
|
||||
BigInteger bigInteger5 = bigInteger4.SetBit(n3);
|
||||
int num3 = this.certainty;
|
||||
if (bigInteger5.IsProbablePrime(num3))
|
||||
{
|
||||
byte[] array3 = Arrays.Clone(array);
|
||||
int num4 = 0;
|
||||
if (this.L > 0)
|
||||
{
|
||||
int i = 0;
|
||||
int num5 = 0;
|
||||
BigInteger zero = BigInteger.Zero;
|
||||
DsaParametersGenerator.Inc(array3);
|
||||
DsaParametersGenerator.Hash(digest, array3, array2);
|
||||
BigInteger bigInteger6 = new BigInteger(1, array2);
|
||||
if (i == l)
|
||||
{
|
||||
BigInteger one2 = BigInteger.One;
|
||||
BigInteger bigInteger8;
|
||||
BigInteger bigInteger7 = bigInteger6.Mod(bigInteger8);
|
||||
}
|
||||
BigInteger bigInteger9 = bigInteger6.ShiftLeft(num5);
|
||||
BigInteger bigInteger10 = zero.Add(bigInteger9);
|
||||
i++;
|
||||
while (i <= l)
|
||||
{
|
||||
}
|
||||
BigInteger one3 = BigInteger.One;
|
||||
int l2 = this.L;
|
||||
BigInteger bigInteger11 = one3.ShiftLeft(l2);
|
||||
BigInteger bigInteger12 = bigInteger10.Add(bigInteger11);
|
||||
BigInteger bigInteger13 = bigInteger5.ShiftLeft(1);
|
||||
BigInteger bigInteger14 = bigInteger12.Mod(bigInteger13);
|
||||
BigInteger one4 = BigInteger.One;
|
||||
BigInteger bigInteger15 = bigInteger14.Subtract(one4);
|
||||
BigInteger bigInteger16 = bigInteger12.Subtract(bigInteger15);
|
||||
if (bigInteger16.BitLength == this.L)
|
||||
{
|
||||
int num6 = this.certainty;
|
||||
if (bigInteger16.IsProbablePrime(num6))
|
||||
{
|
||||
goto IL_19F;
|
||||
}
|
||||
}
|
||||
num4++;
|
||||
}
|
||||
}
|
||||
SecureRandom secureRandom = this.random;
|
||||
IL_19F:
|
||||
if (this.usageIndex != 0)
|
||||
{
|
||||
DsaParameters dsaParameters;
|
||||
return dsaParameters;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA09 RID: 47625 RVA: 0x0000220F File Offset: 0x0000040F
|
||||
[Token(Token = "0x600BA09")]
|
||||
[Address(RVA = "0x257EC80", Offset = "0x257DC80", VA = "0x18257EC80", Slot = "10")]
|
||||
protected virtual BigInteger CalculateGenerator_FIPS186_3_Unverifiable(BigInteger p, BigInteger q, SecureRandom r)
|
||||
{
|
||||
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
||||
}
|
||||
|
||||
// Token: 0x0600BA0A RID: 47626 RVA: 0x00287150 File Offset: 0x00285350
|
||||
[Token(Token = "0x600BA0A")]
|
||||
[Address(RVA = "0x257ECA0", Offset = "0x257DCA0", VA = "0x18257ECA0", Slot = "11")]
|
||||
protected virtual BigInteger CalculateGenerator_FIPS186_3_Verifiable(IDigest d, BigInteger p, BigInteger q, byte[] seed, int index)
|
||||
{
|
||||
BigInteger one = BigInteger.One;
|
||||
BigInteger bigInteger = p.Subtract(one).Divide(q);
|
||||
byte[] array = Hex.Decode("6767656E");
|
||||
int num = array.Length;
|
||||
num += 3;
|
||||
byte[] array2 = new byte[num];
|
||||
int num2 = 0;
|
||||
int length = array.Length;
|
||||
int num3 = 0;
|
||||
Array.Copy(array, num3, array2, num2, length);
|
||||
int length2 = array2.Length;
|
||||
byte[] array3 = new byte[0];
|
||||
if (array2.Length == array2.Length)
|
||||
{
|
||||
}
|
||||
DsaParametersGenerator.Hash(d, array2, array3);
|
||||
BigInteger bigInteger2 = new BigInteger(1, array3).ModPow(bigInteger, p);
|
||||
BigInteger two = BigInteger.Two;
|
||||
int num4 = bigInteger2.CompareTo(two);
|
||||
uint num5;
|
||||
num5 += (uint)1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA0B RID: 47627 RVA: 0x0028720C File Offset: 0x0028540C
|
||||
[Token(Token = "0x600BA0B")]
|
||||
[Address(RVA = "0x25800D0", Offset = "0x257F0D0", VA = "0x1825800D0")]
|
||||
private static bool IsValidDsaStrength(int strength)
|
||||
{
|
||||
return strength == 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA0C RID: 47628 RVA: 0x00287220 File Offset: 0x00285420
|
||||
[Token(Token = "0x600BA0C")]
|
||||
[Address(RVA = "0x257FCC0", Offset = "0x257ECC0", VA = "0x18257FCC0")]
|
||||
protected static void Hash(IDigest d, byte[] input, byte[] output)
|
||||
{
|
||||
int length = input.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA0D RID: 47629 RVA: 0x0028723C File Offset: 0x0028543C
|
||||
[Token(Token = "0x600BA0D")]
|
||||
[Address(RVA = "0x257FCA0", Offset = "0x257ECA0", VA = "0x18257FCA0")]
|
||||
private static int GetDefaultN(int L)
|
||||
{
|
||||
return 256;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA0E RID: 47630 RVA: 0x00287250 File Offset: 0x00285450
|
||||
[Token(Token = "0x600BA0E")]
|
||||
[Address(RVA = "0x257FD60", Offset = "0x257ED60", VA = "0x18257FD60")]
|
||||
protected static void Inc(byte[] buf)
|
||||
{
|
||||
if (buf.Length == buf.Length)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04007547 RID: 30023
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007547")]
|
||||
private IDigest digest;
|
||||
|
||||
// Token: 0x04007548 RID: 30024
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007548")]
|
||||
private int L;
|
||||
|
||||
// Token: 0x04007549 RID: 30025
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x4007549")]
|
||||
private int N;
|
||||
|
||||
// Token: 0x0400754A RID: 30026
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400754A")]
|
||||
private int certainty;
|
||||
|
||||
// Token: 0x0400754B RID: 30027
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400754B")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x0400754C RID: 30028
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400754C")]
|
||||
private bool use186_3;
|
||||
|
||||
// Token: 0x0400754D RID: 30029
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x400754D")]
|
||||
private int usageIndex;
|
||||
}
|
||||
}
|
||||
+226
@@ -0,0 +1,226 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X9;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.EC;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D49 RID: 7497
|
||||
[Token(Token = "0x2001D49")]
|
||||
public class ECKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA0F RID: 47631 RVA: 0x00287274 File Offset: 0x00285474
|
||||
[Token(Token = "0x600BA0F")]
|
||||
[Address(RVA = "0x2580A80", Offset = "0x257FA80", VA = "0x182580A80")]
|
||||
public ECKeyPairGenerator()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA0F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.ECKeyPairGenerator::.ctor()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_21:
|
||||
stloc:ArgumentNullException(var_1_2B, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("algorithm")))
|
||||
}
|
||||
|
||||
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: 0x0600BA10 RID: 47632 RVA: 0x002872AC File Offset: 0x002854AC
|
||||
[Token(Token = "0x600BA10")]
|
||||
[Address(RVA = "0x25809D0", Offset = "0x257F9D0", VA = "0x1825809D0")]
|
||||
public ECKeyPairGenerator(string algorithm)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA10)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.ECKeyPairGenerator::.ctor(System.String)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_19:
|
||||
stloc:ArgumentNullException(var_1_23, newobj:ArgumentNullException(ArgumentNullException::.ctor, ldstr:string("algorithm")))
|
||||
}
|
||||
|
||||
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: 0x0600BA11 RID: 47633 RVA: 0x002872DC File Offset: 0x002854DC
|
||||
[Token(Token = "0x600BA11")]
|
||||
[Address(RVA = "0x25805F0", Offset = "0x257F5F0", VA = "0x1825805F0", Slot = "4")]
|
||||
public void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (parameters == 0)
|
||||
{
|
||||
int strength = parameters.strength;
|
||||
if (strength <= 239 || strength == 256)
|
||||
{
|
||||
}
|
||||
DerObjectIdentifier prime239v = X9ObjectIdentifiers.Prime239v1;
|
||||
X9ECParameters byOid;
|
||||
if (CustomNamedCurves.GetByOid(prime239v) == 0)
|
||||
{
|
||||
byOid = ECNamedCurveTable.GetByOid(prime239v);
|
||||
}
|
||||
this.publicKeyParamSet = prime239v;
|
||||
ECCurve curve = byOid.curve;
|
||||
ECPoint g = byOid.G;
|
||||
BigInteger n = byOid.n;
|
||||
BigInteger h = byOid.h;
|
||||
byte[] seed = byOid.seed;
|
||||
ECDomainParameters ecdomainParameters = new ECDomainParameters(curve, g, n, h, seed);
|
||||
}
|
||||
}
|
||||
while (parameters == 0);
|
||||
if (parameters.random == 0)
|
||||
{
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA12 RID: 47634 RVA: 0x00287390 File Offset: 0x00285590
|
||||
[Token(Token = "0x600BA12")]
|
||||
[Address(RVA = "0x2580220", Offset = "0x257F220", VA = "0x182580220", Slot = "5")]
|
||||
public AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
BigInteger n = this.parameters.n;
|
||||
int bitLength = n.BitLength;
|
||||
int bitLength2 = n.BitLength;
|
||||
SecureRandom secureRandom = this.random;
|
||||
BigInteger bigInteger = new BigInteger(bitLength2, secureRandom);
|
||||
BigInteger two = BigInteger.Two;
|
||||
int num = bigInteger.CompareTo(two);
|
||||
int num2 = 0;
|
||||
int num3 = bigInteger.CompareTo(n);
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger);
|
||||
AsymmetricCipherKeyPair asymmetricCipherKeyPair = this.GenerateKeyPair();
|
||||
ECDomainParameters ecdomainParameters = this.parameters;
|
||||
int num4 = 0;
|
||||
if (num4 < num2)
|
||||
{
|
||||
num4 += num4;
|
||||
num4++;
|
||||
}
|
||||
ECPrivateKeyParameters ecprivateKeyParameters;
|
||||
if (this.publicKeyParamSet == 0)
|
||||
{
|
||||
string text = this.algorithm;
|
||||
ECDomainParameters ecdomainParameters2 = this.parameters;
|
||||
ecprivateKeyParameters = new ECPrivateKeyParameters(text, bigInteger, ecdomainParameters2);
|
||||
text += text;
|
||||
}
|
||||
string text2 = this.algorithm;
|
||||
DerObjectIdentifier derObjectIdentifier = this.publicKeyParamSet;
|
||||
ECPrivateKeyParameters ecprivateKeyParameters2 = new ECPrivateKeyParameters(text2, bigInteger, derObjectIdentifier);
|
||||
return new AsymmetricCipherKeyPair(ecprivateKeyParameters, ecprivateKeyParameters2);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA13 RID: 47635 RVA: 0x00287470 File Offset: 0x00285670
|
||||
[Token(Token = "0x600BA13")]
|
||||
[Address(RVA = "0x2580160", Offset = "0x257F160", VA = "0x182580160", Slot = "6")]
|
||||
protected virtual ECMultiplier CreateBasePointMultiplier()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA13)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.ECKeyPairGenerator::CreateBasePointMultiplier()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:FixedPointCombMultiplier(var_0_05, newobj:FixedPointCombMultiplier(FixedPointCombMultiplier::.ctor))
|
||||
}
|
||||
|
||||
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: 0x0600BA14 RID: 47636 RVA: 0x00287484 File Offset: 0x00285684
|
||||
[Token(Token = "0x600BA14")]
|
||||
[Address(RVA = "0x25801B0", Offset = "0x257F1B0", VA = "0x1825801B0")]
|
||||
internal static X9ECParameters FindECCurveByOid(DerObjectIdentifier oid)
|
||||
{
|
||||
X9ECParameters byOid = CustomNamedCurves.GetByOid(oid);
|
||||
if (byOid == 0)
|
||||
{
|
||||
return ECNamedCurveTable.GetByOid(oid);
|
||||
}
|
||||
return byOid;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA15 RID: 47637 RVA: 0x002874A4 File Offset: 0x002856A4
|
||||
[Token(Token = "0x600BA15")]
|
||||
[Address(RVA = "0x25804F0", Offset = "0x257F4F0", VA = "0x1825804F0")]
|
||||
internal static ECPublicKeyParameters GetCorrespondingPublicKey(ECPrivateKeyParameters privKey)
|
||||
{
|
||||
ECDomainParameters ecdomainParameters = privKey.parameters;
|
||||
FixedPointCombMultiplier fixedPointCombMultiplier = new FixedPointCombMultiplier();
|
||||
BigInteger d = privKey.d;
|
||||
ECPoint g = ecdomainParameters.g;
|
||||
ECPoint ecpoint = fixedPointCombMultiplier.Multiply(g, d);
|
||||
DerObjectIdentifier derObjectIdentifier = privKey.publicKeyParamSet;
|
||||
ECPublicKeyParameters ecpublicKeyParameters = new ECPublicKeyParameters(privKey.algorithm, ecpoint, ecdomainParameters);
|
||||
if (derObjectIdentifier == 0)
|
||||
{
|
||||
return ecpublicKeyParameters;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0400754E RID: 30030
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400754E")]
|
||||
private readonly string algorithm;
|
||||
|
||||
// Token: 0x0400754F RID: 30031
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400754F")]
|
||||
private ECDomainParameters parameters;
|
||||
|
||||
// Token: 0x04007550 RID: 30032
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007550")]
|
||||
private DerObjectIdentifier publicKeyParamSet;
|
||||
|
||||
// Token: 0x04007551 RID: 30033
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007551")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D4A RID: 7498
|
||||
[Token(Token = "0x2001D4A")]
|
||||
public class Ed25519KeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA16 RID: 47638 RVA: 0x002874FC File Offset: 0x002856FC
|
||||
[Token(Token = "0x600BA16")]
|
||||
[Address(RVA = "0x1A8F6B0", Offset = "0x1A8E6B0", VA = "0x181A8F6B0", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
SecureRandom secureRandom = parameters.random;
|
||||
this.random = secureRandom;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA17 RID: 47639 RVA: 0x00287520 File Offset: 0x00285720
|
||||
[Token(Token = "0x600BA17")]
|
||||
[Address(RVA = "0x2580B50", Offset = "0x257FB50", VA = "0x182580B50", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
Ed25519PrivateKeyParameters ed25519PrivateKeyParameters = new Ed25519PrivateKeyParameters(this.random);
|
||||
return new AsymmetricCipherKeyPair(ed25519PrivateKeyParameters.GeneratePublicKey(), ed25519PrivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA18 RID: 47640 RVA: 0x0028754C File Offset: 0x0028574C
|
||||
[Token(Token = "0x600BA18")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public Ed25519KeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007552 RID: 30034
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007552")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D4B RID: 7499
|
||||
[Token(Token = "0x2001D4B")]
|
||||
public class Ed448KeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA19 RID: 47641 RVA: 0x00287560 File Offset: 0x00285760
|
||||
[Token(Token = "0x600BA19")]
|
||||
[Address(RVA = "0x1A8F6B0", Offset = "0x1A8E6B0", VA = "0x181A8F6B0", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
SecureRandom secureRandom = parameters.random;
|
||||
this.random = secureRandom;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA1A RID: 47642 RVA: 0x00287584 File Offset: 0x00285784
|
||||
[Token(Token = "0x600BA1A")]
|
||||
[Address(RVA = "0x2580BF0", Offset = "0x257FBF0", VA = "0x182580BF0", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
Ed448PrivateKeyParameters ed448PrivateKeyParameters = new Ed448PrivateKeyParameters(this.random);
|
||||
return new AsymmetricCipherKeyPair(ed448PrivateKeyParameters.GeneratePublicKey(), ed448PrivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA1B RID: 47643 RVA: 0x002875B0 File Offset: 0x002857B0
|
||||
[Token(Token = "0x600BA1B")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public Ed448KeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007553 RID: 30035
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007553")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D4C RID: 7500
|
||||
[Token(Token = "0x2001D4C")]
|
||||
public class ElGamalKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA1C RID: 47644 RVA: 0x002875C4 File Offset: 0x002857C4
|
||||
[Token(Token = "0x600BA1C")]
|
||||
[Address(RVA = "0x2580E30", Offset = "0x257FE30", VA = "0x182580E30", Slot = "4")]
|
||||
public void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
while (parameters != 0)
|
||||
{
|
||||
if (parameters != 0)
|
||||
{
|
||||
this.param = parameters;
|
||||
return;
|
||||
}
|
||||
}
|
||||
int num = 0;
|
||||
this.param = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA1D RID: 47645 RVA: 0x002875EC File Offset: 0x002857EC
|
||||
[Token(Token = "0x600BA1D")]
|
||||
[Address(RVA = "0x2580C90", Offset = "0x257FC90", VA = "0x182580C90", Slot = "5")]
|
||||
public AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
ElGamalParameters parameters = this.param.parameters;
|
||||
BigInteger p = parameters.p;
|
||||
BigInteger g = parameters.g;
|
||||
int l = parameters.l;
|
||||
int num;
|
||||
int num2;
|
||||
DHParameters dhparameters = new DHParameters(p, g, num, num2, l);
|
||||
num = 0;
|
||||
num2 = 0;
|
||||
SecureRandom random = this.param.random;
|
||||
BigInteger g2 = dhparameters.g;
|
||||
BigInteger p2 = dhparameters.p;
|
||||
BigInteger bigInteger;
|
||||
ElGamalPublicKeyParameters elGamalPublicKeyParameters = new ElGamalPublicKeyParameters(g2.ModPow(bigInteger, p2), parameters);
|
||||
ElGamalPrivateKeyParameters elGamalPrivateKeyParameters = new ElGamalPrivateKeyParameters(bigInteger, parameters);
|
||||
return new AsymmetricCipherKeyPair(elGamalPublicKeyParameters, elGamalPrivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA1E RID: 47646 RVA: 0x0028767C File Offset: 0x0028587C
|
||||
[Token(Token = "0x600BA1E")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public ElGamalKeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007554 RID: 30036
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007554")]
|
||||
private ElGamalKeyGenerationParameters param;
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D4D RID: 7501
|
||||
[Token(Token = "0x2001D4D")]
|
||||
public class ElGamalParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA1F RID: 47647 RVA: 0x00287690 File Offset: 0x00285890
|
||||
[Token(Token = "0x600BA1F")]
|
||||
[Address(RVA = "0x257D890", Offset = "0x257C890", VA = "0x18257D890")]
|
||||
public void Init(int size, int certainty, SecureRandom random)
|
||||
{
|
||||
this.size = size;
|
||||
this.certainty = certainty;
|
||||
this.random = random;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA20 RID: 47648 RVA: 0x002876B4 File Offset: 0x002858B4
|
||||
[Token(Token = "0x600BA20")]
|
||||
[Address(RVA = "0x2580ED0", Offset = "0x257FED0", VA = "0x182580ED0")]
|
||||
public ElGamalParameters GenerateParameters()
|
||||
{
|
||||
int num = this.size;
|
||||
int num2 = this.certainty;
|
||||
SecureRandom secureRandom = this.random;
|
||||
BigInteger[] array = DHParametersHelper.GenerateSafePrimes(num, num2, secureRandom);
|
||||
int length = array.Length;
|
||||
BigInteger bigInteger = array[0];
|
||||
SecureRandom secureRandom2 = this.random;
|
||||
BigInteger bigInteger2 = array[1];
|
||||
BigInteger bigInteger3 = DHParametersHelper.SelectGenerator(bigInteger, bigInteger2, secureRandom2);
|
||||
return new ElGamalParameters(bigInteger, bigInteger3);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA21 RID: 47649 RVA: 0x00287720 File Offset: 0x00285920
|
||||
[Token(Token = "0x600BA21")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public ElGamalParametersGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007555 RID: 30037
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007555")]
|
||||
private int size;
|
||||
|
||||
// Token: 0x04007556 RID: 30038
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x4007556")]
|
||||
private int certainty;
|
||||
|
||||
// Token: 0x04007557 RID: 30039
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007557")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.CryptoPro;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D4E RID: 7502
|
||||
[Token(Token = "0x2001D4E")]
|
||||
public class Gost3410KeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA22 RID: 47650 RVA: 0x00287734 File Offset: 0x00285934
|
||||
[Token(Token = "0x600BA22")]
|
||||
[Address(RVA = "0x25811E0", Offset = "0x25801E0", VA = "0x1825811E0", Slot = "4")]
|
||||
public void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
if (parameters == 0)
|
||||
{
|
||||
SecureRandom random = parameters.random;
|
||||
DerObjectIdentifier gostR3410x94CryptoProA = CryptoProObjectIdentifiers.GostR3410x94CryptoProA;
|
||||
Gost3410KeyGenerationParameters gost3410KeyGenerationParameters = new Gost3410KeyGenerationParameters(random, gostR3410x94CryptoProA);
|
||||
BigInteger p = gost3410KeyGenerationParameters.parameters.p;
|
||||
int bitLength = p.BitLength;
|
||||
this.param = gost3410KeyGenerationParameters;
|
||||
return;
|
||||
}
|
||||
this.param = 0;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA23 RID: 47651 RVA: 0x00287798 File Offset: 0x00285998
|
||||
[Token(Token = "0x600BA23")]
|
||||
[Address(RVA = "0x2580FD0", Offset = "0x257FFD0", VA = "0x182580FD0", Slot = "5")]
|
||||
public AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
Gost3410KeyGenerationParameters gost3410KeyGenerationParameters = this.param;
|
||||
Gost3410Parameters parameters = gost3410KeyGenerationParameters.parameters;
|
||||
SecureRandom random = gost3410KeyGenerationParameters.random;
|
||||
BigInteger q = parameters.q;
|
||||
BigInteger bigInteger = new BigInteger(256, random);
|
||||
int num = bigInteger.CompareTo(q);
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger);
|
||||
BigInteger a = parameters.a;
|
||||
BigInteger p = parameters.p;
|
||||
BigInteger bigInteger2 = a.ModPow(bigInteger, p);
|
||||
DerObjectIdentifier publicKeyParamSet = this.param.publicKeyParamSet;
|
||||
if (publicKeyParamSet == 0)
|
||||
{
|
||||
Gost3410PublicKeyParameters gost3410PublicKeyParameters = new Gost3410PublicKeyParameters(bigInteger2, parameters);
|
||||
Gost3410PrivateKeyParameters gost3410PrivateKeyParameters = new Gost3410PrivateKeyParameters(bigInteger, parameters);
|
||||
return new AsymmetricCipherKeyPair(gost3410PublicKeyParameters, gost3410PrivateKeyParameters);
|
||||
}
|
||||
Gost3410PublicKeyParameters gost3410PublicKeyParameters2 = new Gost3410PublicKeyParameters(bigInteger2, publicKeyParamSet);
|
||||
DerObjectIdentifier publicKeyParamSet2 = this.param.publicKeyParamSet;
|
||||
Gost3410PrivateKeyParameters gost3410PrivateKeyParameters2 = new Gost3410PrivateKeyParameters(bigInteger, publicKeyParamSet2);
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA24 RID: 47652 RVA: 0x00287858 File Offset: 0x00285A58
|
||||
[Token(Token = "0x600BA24")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public Gost3410KeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007558 RID: 30040
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007558")]
|
||||
private Gost3410KeyGenerationParameters param;
|
||||
}
|
||||
}
|
||||
+335
@@ -0,0 +1,335 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D4F RID: 7503
|
||||
[Token(Token = "0x2001D4F")]
|
||||
public class Gost3410ParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA25 RID: 47653 RVA: 0x0028786C File Offset: 0x00285A6C
|
||||
[Token(Token = "0x600BA25")]
|
||||
[Address(RVA = "0x257D890", Offset = "0x257C890", VA = "0x18257D890")]
|
||||
public void Init(int size, int typeProcedure, SecureRandom random)
|
||||
{
|
||||
this.size = size;
|
||||
this.typeproc = typeProcedure;
|
||||
this.init_random = random;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA26 RID: 47654 RVA: 0x00287890 File Offset: 0x00285A90
|
||||
[Token(Token = "0x600BA26")]
|
||||
[Address(RVA = "0x2581680", Offset = "0x2580680", VA = "0x182581680")]
|
||||
private int procedure_A(int x0, int c, BigInteger[] pq, int size)
|
||||
{
|
||||
if (x0 > 65536)
|
||||
{
|
||||
SecureRandom secureRandom = this.init_random;
|
||||
}
|
||||
if (c > 65536 || c == 65536)
|
||||
{
|
||||
SecureRandom secureRandom2 = this.init_random;
|
||||
}
|
||||
BigInteger bigInteger = BigInteger.ValueOf((long)c);
|
||||
uint num;
|
||||
BigInteger bigInteger2 = BigInteger.ValueOf((long)num);
|
||||
BigInteger[] array = new BigInteger[1];
|
||||
BigInteger bigInteger3 = BigInteger.ValueOf((long)x0);
|
||||
if (bigInteger3 != 0)
|
||||
{
|
||||
}
|
||||
array[0] = bigInteger3;
|
||||
int[] array2 = new int[1];
|
||||
int num2 = 0;
|
||||
int num3 = array2.Length;
|
||||
num3++;
|
||||
int[] array3 = new int[num3];
|
||||
int length = array2.Length;
|
||||
int num4 = 0;
|
||||
int num5 = 0;
|
||||
Array.Copy(array2, num5, array3, num4, length);
|
||||
int[] array4 = new int[array3.Length];
|
||||
int length2 = array3.Length;
|
||||
int num6 = 0;
|
||||
int num7 = 0;
|
||||
Array.Copy(array3, num7, array4, num6, length2);
|
||||
int length3 = array4.Length;
|
||||
int num8 = array4[num2];
|
||||
num8 -= num7;
|
||||
array4[0] = num8;
|
||||
BigInteger[] array5 = new BigInteger[num7];
|
||||
BigInteger bigInteger4 = new BigInteger("8003", 16);
|
||||
if (bigInteger4 != 0)
|
||||
{
|
||||
}
|
||||
array5[0] = bigInteger4;
|
||||
if (1 <= 0)
|
||||
{
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
int num9 = array4[num2];
|
||||
BigInteger[] array6 = new BigInteger[array.Length];
|
||||
int length4 = array.Length;
|
||||
int num10 = 0;
|
||||
int num11 = 0;
|
||||
int num12 = 0;
|
||||
Array.Copy(array, num12, array6, num11, length4);
|
||||
BigInteger[] array7 = new BigInteger[num9 + 1];
|
||||
int length5 = array6.Length;
|
||||
int num13 = 0;
|
||||
int num14 = 0;
|
||||
Array.Copy(array6, num14, array7, num13, length5);
|
||||
if (num9 > 0)
|
||||
{
|
||||
BigInteger bigInteger5 = array7[num10].Multiply(bigInteger2).Add(bigInteger);
|
||||
BigInteger bigInteger6 = BigInteger.Two.Pow(16);
|
||||
BigInteger bigInteger7 = bigInteger5.Mod(bigInteger6);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
int num15 = 0;
|
||||
BigInteger zero = BigInteger.Zero;
|
||||
if (num9 > 0)
|
||||
{
|
||||
BigInteger bigInteger8 = array7[num15].ShiftLeft(num15);
|
||||
BigInteger bigInteger9 = zero.Add(bigInteger8);
|
||||
num15++;
|
||||
}
|
||||
BigInteger bigInteger10 = array7[num9];
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA27 RID: 47655 RVA: 0x00287BD4 File Offset: 0x00285DD4
|
||||
[Token(Token = "0x600BA27")]
|
||||
[Address(RVA = "0x2582180", Offset = "0x2581180", VA = "0x182582180")]
|
||||
private long procedure_Aa(long x0, long c, BigInteger[] pq, int size)
|
||||
{
|
||||
ulong num;
|
||||
if (x0 > (long)num)
|
||||
{
|
||||
SecureRandom secureRandom = this.init_random;
|
||||
}
|
||||
if (c > (long)num || c == (long)num)
|
||||
{
|
||||
SecureRandom secureRandom2 = this.init_random;
|
||||
}
|
||||
uint num2;
|
||||
BigInteger bigInteger = BigInteger.ValueOf((long)num2);
|
||||
BigInteger[] array = new BigInteger[1];
|
||||
BigInteger bigInteger2;
|
||||
if (bigInteger2 != 0)
|
||||
{
|
||||
}
|
||||
array[0] = bigInteger2;
|
||||
int[] array2 = new int[1];
|
||||
int num3 = 0;
|
||||
int num4 = array2.Length;
|
||||
num4++;
|
||||
int[] array3 = new int[num4];
|
||||
int length = array2.Length;
|
||||
int num5 = 0;
|
||||
int num6 = 0;
|
||||
Array.Copy(array2, num6, array3, num5, length);
|
||||
int[] array4 = new int[array3.Length];
|
||||
int length2 = array3.Length;
|
||||
int num7 = 0;
|
||||
int num8 = 0;
|
||||
Array.Copy(array3, num8, array4, num7, length2);
|
||||
int length3 = array4.Length;
|
||||
int num9 = array4[num3];
|
||||
num9 -= num8;
|
||||
array4[0] = num9;
|
||||
BigInteger[] array5 = new BigInteger[num8];
|
||||
BigInteger bigInteger3 = new BigInteger("8000000B", 16);
|
||||
if (bigInteger3 != 0)
|
||||
{
|
||||
}
|
||||
array5[0] = bigInteger3;
|
||||
if (1 <= 0)
|
||||
{
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
int num10 = array4[num3];
|
||||
BigInteger[] array6 = new BigInteger[array.Length];
|
||||
int length4 = array.Length;
|
||||
int num11 = 0;
|
||||
int num12 = 0;
|
||||
int num13 = 0;
|
||||
Array.Copy(array, num13, array6, num12, length4);
|
||||
BigInteger[] array7 = new BigInteger[num10 + 1];
|
||||
int length5 = array6.Length;
|
||||
int num14 = 0;
|
||||
int num15 = 0;
|
||||
Array.Copy(array6, num15, array7, num14, length5);
|
||||
if (num10 > 0)
|
||||
{
|
||||
BigInteger bigInteger5;
|
||||
BigInteger bigInteger4 = array7[num11].Multiply(bigInteger).Add(bigInteger5);
|
||||
BigInteger bigInteger6 = BigInteger.Two.Pow(32);
|
||||
BigInteger bigInteger7 = bigInteger4.Mod(bigInteger6);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
int num16 = 0;
|
||||
BigInteger zero = BigInteger.Zero;
|
||||
if (num10 > 0)
|
||||
{
|
||||
BigInteger bigInteger8 = array7[num16].ShiftLeft(num16);
|
||||
BigInteger bigInteger9 = zero.Add(bigInteger8);
|
||||
num16++;
|
||||
}
|
||||
BigInteger bigInteger10 = array7[num10];
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA28 RID: 47656 RVA: 0x00287EFC File Offset: 0x002860FC
|
||||
[Token(Token = "0x600BA28")]
|
||||
[Address(RVA = "0x2582C80", Offset = "0x2581C80", VA = "0x182582C80")]
|
||||
private void procedure_B(int x0, int c, BigInteger[] pq)
|
||||
{
|
||||
if (x0 > 65536)
|
||||
{
|
||||
SecureRandom secureRandom = this.init_random;
|
||||
}
|
||||
if (c > 65536 || c == 65536)
|
||||
{
|
||||
SecureRandom secureRandom2 = this.init_random;
|
||||
}
|
||||
BigInteger[] array = new BigInteger[2];
|
||||
BigInteger bigInteger = BigInteger.ValueOf((long)c);
|
||||
uint num;
|
||||
BigInteger bigInteger2 = BigInteger.ValueOf((long)num);
|
||||
ulong num3;
|
||||
int num2 = this.procedure_A(x0, c, array, (int)num3);
|
||||
BigInteger bigInteger3 = array[0];
|
||||
ulong num5;
|
||||
int num4 = this.procedure_A(x0, c, array, (int)num5);
|
||||
BigInteger bigInteger4 = array[0];
|
||||
BigInteger[] array2 = new BigInteger[0];
|
||||
BigInteger bigInteger5 = BigInteger.ValueOf((long)c);
|
||||
if (bigInteger5 != 0)
|
||||
{
|
||||
}
|
||||
array2[0] = bigInteger5;
|
||||
BigInteger bigInteger6 = bigInteger3.Multiply(bigInteger4);
|
||||
int num6 = 0;
|
||||
BigInteger bigInteger7 = array2[num6].Multiply(bigInteger2).Add(bigInteger);
|
||||
BigInteger bigInteger8 = BigInteger.Two.Pow(16);
|
||||
BigInteger bigInteger9 = bigInteger7.Mod(bigInteger8);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA29 RID: 47657 RVA: 0x00288124 File Offset: 0x00286324
|
||||
[Token(Token = "0x600BA29")]
|
||||
[Address(RVA = "0x2583400", Offset = "0x2582400", VA = "0x182583400")]
|
||||
private void procedure_Bb(long x0, long c, BigInteger[] pq)
|
||||
{
|
||||
ulong num;
|
||||
if (x0 > (long)num)
|
||||
{
|
||||
SecureRandom secureRandom = this.init_random;
|
||||
}
|
||||
if (c > (long)num || c == (long)num)
|
||||
{
|
||||
SecureRandom secureRandom2 = this.init_random;
|
||||
}
|
||||
BigInteger[] array = new BigInteger[2];
|
||||
uint num2;
|
||||
BigInteger bigInteger = BigInteger.ValueOf((long)num2);
|
||||
BigInteger bigInteger2 = array[0];
|
||||
BigInteger bigInteger3 = array[0];
|
||||
BigInteger[] array2 = new BigInteger[0];
|
||||
long num3;
|
||||
BigInteger bigInteger4 = BigInteger.ValueOf(num3);
|
||||
if (bigInteger4 != 0)
|
||||
{
|
||||
}
|
||||
array2[0] = bigInteger4;
|
||||
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger3);
|
||||
int num4 = 0;
|
||||
BigInteger bigInteger7;
|
||||
BigInteger bigInteger6 = array2[num4].Multiply(bigInteger).Add(bigInteger7);
|
||||
BigInteger bigInteger8 = BigInteger.Two.Pow(32);
|
||||
BigInteger bigInteger9 = bigInteger6.Mod(bigInteger8);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA2A RID: 47658 RVA: 0x00288320 File Offset: 0x00286520
|
||||
[Token(Token = "0x600BA2A")]
|
||||
[Address(RVA = "0x2583B80", Offset = "0x2582B80", VA = "0x182583B80")]
|
||||
private BigInteger procedure_C(BigInteger p, BigInteger q)
|
||||
{
|
||||
BigInteger bigInteger4;
|
||||
for (;;)
|
||||
{
|
||||
BigInteger one = BigInteger.One;
|
||||
BigInteger bigInteger = p.Subtract(one);
|
||||
BigInteger bigInteger2 = bigInteger.Divide(q);
|
||||
int bitLength = p.BitLength;
|
||||
SecureRandom secureRandom = this.init_random;
|
||||
BigInteger bigInteger3 = new BigInteger(bitLength, secureRandom);
|
||||
BigInteger one2 = BigInteger.One;
|
||||
if (bigInteger3.CompareTo(one2) > 0)
|
||||
{
|
||||
int num = bigInteger3.CompareTo(bigInteger);
|
||||
bigInteger4 = bigInteger3.ModPow(bigInteger2, p);
|
||||
BigInteger one3 = BigInteger.One;
|
||||
if (bigInteger4.CompareTo(one3) != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return bigInteger4;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA2B RID: 47659 RVA: 0x002883A0 File Offset: 0x002865A0
|
||||
[Token(Token = "0x600BA2B")]
|
||||
[Address(RVA = "0x2581350", Offset = "0x2580350", VA = "0x182581350")]
|
||||
public Gost3410Parameters GenerateParameters()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA2B)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.Gost3410Parameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Gost3410ParametersGenerator::GenerateParameters()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_F4:
|
||||
stloc:ArgumentException(var_25_FE, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Ooops! key size 512 or 1024 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.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: 0x0600BA2C RID: 47660 RVA: 0x002884AC File Offset: 0x002866AC
|
||||
[Token(Token = "0x600BA2C")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public Gost3410ParametersGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007559 RID: 30041
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007559")]
|
||||
private int size;
|
||||
|
||||
// Token: 0x0400755A RID: 30042
|
||||
[FieldOffset(Offset = "0x14")]
|
||||
[Token(Token = "0x400755A")]
|
||||
private int typeproc;
|
||||
|
||||
// Token: 0x0400755B RID: 30043
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400755B")]
|
||||
private SecureRandom init_random;
|
||||
}
|
||||
}
|
||||
+160
@@ -0,0 +1,160 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D50 RID: 7504
|
||||
[Token(Token = "0x2001D50")]
|
||||
public class HkdfBytesGenerator : IDerivationFunction
|
||||
{
|
||||
// Token: 0x0600BA2D RID: 47661 RVA: 0x002884C0 File Offset: 0x002866C0
|
||||
[Token(Token = "0x600BA2D")]
|
||||
[Address(RVA = "0x2584450", Offset = "0x2583450", VA = "0x182584450")]
|
||||
public HkdfBytesGenerator(IDigest hash)
|
||||
{
|
||||
HMac hmac = new HMac(hash);
|
||||
this.hMacHash = hmac;
|
||||
this.hashLen = hmac;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA2E RID: 47662 RVA: 0x002884F0 File Offset: 0x002866F0
|
||||
[Token(Token = "0x600BA2E")]
|
||||
[Address(RVA = "0x2584140", Offset = "0x2583140", VA = "0x182584140", Slot = "7")]
|
||||
public virtual void Init(IDerivationParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA2E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.HkdfBytesGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_92:
|
||||
stloc:ArgumentException(var_15_A1, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("HKDF parameters required for HkdfBytesGenerator"), 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: 0x0600BA2F RID: 47663 RVA: 0x002885A0 File Offset: 0x002867A0
|
||||
[Token(Token = "0x600BA2F")]
|
||||
[Address(RVA = "0x2583E70", Offset = "0x2582E70", VA = "0x182583E70")]
|
||||
private KeyParameter Extract(byte[] salt, byte[] ikm)
|
||||
{
|
||||
HMac hmac = this.hMacHash;
|
||||
if (salt == 0)
|
||||
{
|
||||
byte[] array = new byte[this.hashLen];
|
||||
}
|
||||
KeyParameter keyParameter = new KeyParameter(salt);
|
||||
IDigest underlyingDigest = hmac.GetUnderlyingDigest();
|
||||
this.hMacHash.Update(ikm);
|
||||
byte[] array2 = new byte[this.hashLen];
|
||||
HMac hmac2 = this.hMacHash;
|
||||
return new KeyParameter(array2);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA30 RID: 47664 RVA: 0x00288600 File Offset: 0x00286800
|
||||
[Token(Token = "0x600BA30")]
|
||||
[Address(RVA = "0x2583D40", Offset = "0x2582D40", VA = "0x182583D40")]
|
||||
private void ExpandNext()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA30)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.HkdfBytesGenerator::ExpandNext()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_58:
|
||||
stloc:DataLengthException(var_6_62, newobj:DataLengthException(DataLengthException::.ctor, ldstr:string("HKDF cannot generate more than 255 blocks of HashLen 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.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: 0x17001D4F RID: 7503
|
||||
// (get) Token: 0x0600BA31 RID: 47665 RVA: 0x00288670 File Offset: 0x00286870
|
||||
[Token(Token = "0x17001D4F")]
|
||||
public virtual IDigest Digest
|
||||
{
|
||||
[Token(Token = "0x600BA31")]
|
||||
[Address(RVA = "0x4DAE70", Offset = "0x4D9E70", VA = "0x1804DAE70", Slot = "8")]
|
||||
get
|
||||
{
|
||||
string algorithmName = ((IMac)this.hMacHash).AlgorithmName;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA32 RID: 47666 RVA: 0x00288690 File Offset: 0x00286890
|
||||
[Token(Token = "0x600BA32")]
|
||||
[Address(RVA = "0x2583FB0", Offset = "0x2582FB0", VA = "0x182583FB0", Slot = "9")]
|
||||
public virtual int GenerateBytes(byte[] output, int outOff, int len)
|
||||
{
|
||||
int num = this.hashLen;
|
||||
long num2 = (long)(num * (int)((uint)255));
|
||||
if (output == 0)
|
||||
{
|
||||
this.ExpandNext();
|
||||
}
|
||||
num -= output;
|
||||
int num3 = Math.Min(num, len);
|
||||
byte[] array = this.currentT;
|
||||
if (len > 0)
|
||||
{
|
||||
this.ExpandNext();
|
||||
int num4 = this.hashLen;
|
||||
int num5 = Math.Min(num4, len);
|
||||
byte[] array2 = this.currentT;
|
||||
int num6 = 0;
|
||||
Array.Copy(array2, num6, output, len, num5);
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
// Token: 0x0400755C RID: 30044
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400755C")]
|
||||
private HMac hMacHash;
|
||||
|
||||
// Token: 0x0400755D RID: 30045
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400755D")]
|
||||
private int hashLen;
|
||||
|
||||
// Token: 0x0400755E RID: 30046
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400755E")]
|
||||
private byte[] info;
|
||||
|
||||
// Token: 0x0400755F RID: 30047
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400755F")]
|
||||
private byte[] currentT;
|
||||
|
||||
// Token: 0x04007560 RID: 30048
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007560")]
|
||||
private int generatedBytes;
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D51 RID: 7505
|
||||
[Token(Token = "0x2001D51")]
|
||||
public class Kdf1BytesGenerator : BaseKdfBytesGenerator
|
||||
{
|
||||
// Token: 0x0600BA33 RID: 47667 RVA: 0x00288718 File Offset: 0x00286918
|
||||
[Token(Token = "0x600BA33")]
|
||||
[Address(RVA = "0x25844E0", Offset = "0x25834E0", VA = "0x1825844E0")]
|
||||
public Kdf1BytesGenerator(IDigest digest)
|
||||
{
|
||||
this.counterStart = (int)((ulong)0L);
|
||||
this.digest = digest;
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D52 RID: 7506
|
||||
[Token(Token = "0x2001D52")]
|
||||
public class Kdf2BytesGenerator : BaseKdfBytesGenerator
|
||||
{
|
||||
// Token: 0x0600BA34 RID: 47668 RVA: 0x0028873C File Offset: 0x0028693C
|
||||
[Token(Token = "0x600BA34")]
|
||||
[Address(RVA = "0xA83B00", Offset = "0xA82B00", VA = "0x180A83B00")]
|
||||
public Kdf2BytesGenerator(IDigest digest)
|
||||
{
|
||||
this.counterStart = (int)((ulong)1L);
|
||||
this.digest = digest;
|
||||
}
|
||||
}
|
||||
}
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D53 RID: 7507
|
||||
[Token(Token = "0x2001D53")]
|
||||
public class Mgf1BytesGenerator : IDerivationFunction
|
||||
{
|
||||
// Token: 0x0600BA35 RID: 47669 RVA: 0x00288760 File Offset: 0x00286960
|
||||
[Token(Token = "0x600BA35")]
|
||||
[Address(RVA = "0x2584AC0", Offset = "0x2583AC0", VA = "0x182584AC0")]
|
||||
public Mgf1BytesGenerator(IDigest digest)
|
||||
{
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA36 RID: 47670 RVA: 0x00288780 File Offset: 0x00286980
|
||||
[Token(Token = "0x600BA36")]
|
||||
[Address(RVA = "0x25849A0", Offset = "0x25839A0", VA = "0x1825849A0", Slot = "4")]
|
||||
public void Init(IDerivationParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA36)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Mgf1BytesGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDerivationParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_23:
|
||||
stloc:ArgumentException(var_4_2D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("MGF parameters required for MGF1Generator")))
|
||||
}
|
||||
|
||||
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: 0x17001D50 RID: 7504
|
||||
// (get) Token: 0x0600BA37 RID: 47671 RVA: 0x002887BC File Offset: 0x002869BC
|
||||
[Token(Token = "0x17001D50")]
|
||||
public IDigest Digest
|
||||
{
|
||||
[Token(Token = "0x600BA37")]
|
||||
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "5")]
|
||||
get
|
||||
{
|
||||
return this.digest;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA38 RID: 47672 RVA: 0x002887D0 File Offset: 0x002869D0
|
||||
[Token(Token = "0x600BA38")]
|
||||
[Address(RVA = "0x235F650", Offset = "0x235E650", VA = "0x18235F650")]
|
||||
private void ItoOSP(int i, byte[] sp)
|
||||
{
|
||||
sp[0] = (byte)i;
|
||||
sp[0] = (byte)i;
|
||||
sp[0] = (byte)i;
|
||||
sp[0] = (byte)i;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA39 RID: 47673 RVA: 0x00288804 File Offset: 0x00286A04
|
||||
[Token(Token = "0x600BA39")]
|
||||
[Address(RVA = "0x2584510", Offset = "0x2583510", VA = "0x182584510", Slot = "6")]
|
||||
public int GenerateBytes(byte[] output, int outOff, int length)
|
||||
{
|
||||
int num = output.Length;
|
||||
num -= length;
|
||||
byte[] array = new byte[this.hLen];
|
||||
byte[] array2 = new byte[4];
|
||||
IDigest digest = this.digest;
|
||||
int num2 = 0;
|
||||
int num3 = this.hLen;
|
||||
int num11;
|
||||
if (length > num3)
|
||||
{
|
||||
array2[0] = (byte)num2;
|
||||
array2[0] = (byte)num2;
|
||||
array2[0] = (byte)num2;
|
||||
array2[0] = (byte)num2;
|
||||
byte[] array3 = this.seed;
|
||||
IDigest digest2 = this.digest;
|
||||
int num4 = 0;
|
||||
if (num4 < num3)
|
||||
{
|
||||
num4 += num4;
|
||||
num4++;
|
||||
}
|
||||
int num5 = 0;
|
||||
IDigest digest3 = this.digest;
|
||||
int num6 = 0;
|
||||
if (num6 < num5)
|
||||
{
|
||||
num6 += num6;
|
||||
num6++;
|
||||
}
|
||||
int num7 = 0;
|
||||
IDigest digest4 = this.digest;
|
||||
if (num6 < num7)
|
||||
{
|
||||
num6 += num6;
|
||||
num6++;
|
||||
}
|
||||
int num8 = this.hLen;
|
||||
int num9 = num8 * num2;
|
||||
int num10 = 0;
|
||||
Array.Copy(array, num10, output, num9, num8);
|
||||
num11 = this.hLen;
|
||||
}
|
||||
if (num11 < length)
|
||||
{
|
||||
this.ItoOSP(1, array2);
|
||||
byte[] array4 = this.seed;
|
||||
IDigest digest5 = this.digest;
|
||||
int length2 = array4.Length;
|
||||
IDigest digest6 = this.digest;
|
||||
int num12 = array2.Length;
|
||||
IDigest digest7 = this.digest;
|
||||
int num13 = this.hLen;
|
||||
num12 = length - num13;
|
||||
}
|
||||
return length;
|
||||
}
|
||||
|
||||
// Token: 0x04007561 RID: 30049
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007561")]
|
||||
private IDigest digest;
|
||||
|
||||
// Token: 0x04007562 RID: 30050
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007562")]
|
||||
private byte[] seed;
|
||||
|
||||
// Token: 0x04007563 RID: 30051
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4007563")]
|
||||
private int hLen;
|
||||
}
|
||||
}
|
||||
+179
@@ -0,0 +1,179 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D54 RID: 7508
|
||||
[Token(Token = "0x2001D54")]
|
||||
public class NaccacheSternKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA3A RID: 47674 RVA: 0x00288998 File Offset: 0x00286B98
|
||||
[Token(Token = "0x600BA3A")]
|
||||
[Address(RVA = "0x25C0070", Offset = "0x25BF070", VA = "0x1825C0070", Slot = "4")]
|
||||
public void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
while (parameters != 0)
|
||||
{
|
||||
if (parameters != 0)
|
||||
{
|
||||
this.param = parameters;
|
||||
return;
|
||||
}
|
||||
}
|
||||
int num = 0;
|
||||
this.param = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA3B RID: 47675 RVA: 0x002889C0 File Offset: 0x00286BC0
|
||||
[Token(Token = "0x600BA3B")]
|
||||
[Address(RVA = "0x25BEC80", Offset = "0x25BDC80", VA = "0x1825BEC80", Slot = "5")]
|
||||
public AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA3B)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.NaccacheSternKeyPairGenerator::GenerateKeyPair()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_454:
|
||||
stloc:BigInteger(var_72_45C, call:BigInteger(BigInteger::ShiftRight, ldloc:BigInteger(var_47_291), ldc.i4:int32(2)))
|
||||
stloc:BigInteger(var_73_469, call:BigInteger(BigInteger::ModPow, ldloc:BigInteger(var_66), ldloc:BigInteger(var_72_45C), ldloc:BigInteger(var_41_25F)))
|
||||
stloc:BigInteger(var_74_474, call:BigInteger(BigInteger::Divide, ldloc:BigInteger(var_47_291), ldloc:BigInteger(var_27_1BF)))
|
||||
stloc:BigInteger(var_75_481, call:BigInteger(BigInteger::ModPow, ldloc:BigInteger(var_66), ldloc:BigInteger(var_74_474), ldloc:BigInteger(var_41_25F)))
|
||||
stloc:BigInteger(var_76_48C, call:BigInteger(BigInteger::Divide, ldloc:BigInteger(var_47_291), ldloc:BigInteger(var_33_1FA)))
|
||||
stloc:BigInteger(var_77_499, call:BigInteger(BigInteger::ModPow, ldloc:BigInteger(var_66), ldloc:BigInteger(var_76_48C), ldloc:BigInteger(var_41_25F)))
|
||||
stloc:BigInteger(var_78_4A4, call:BigInteger(BigInteger::Divide, ldloc:BigInteger(var_47_291), ldloc:BigInteger(var_21_182)))
|
||||
stloc:BigInteger(var_79_4B1, call:BigInteger(BigInteger::ModPow, ldloc:BigInteger(var_66), ldloc:BigInteger(var_78_4A4), ldloc:BigInteger(var_41_25F)))
|
||||
stloc:BigInteger(var_80_4BC, call:BigInteger(BigInteger::Divide, ldloc:BigInteger(var_47_291), ldloc:BigInteger(var_23_18F)))
|
||||
stloc:BigInteger(var_81_4C9, call:BigInteger(BigInteger::ModPow, ldloc:BigInteger(var_66), ldloc:BigInteger(var_80_4BC), ldloc:BigInteger(var_41_25F)))
|
||||
stloc:int32(var_82_4D2, callgetter:int32(BigInteger::get_BitLength, ldloc:BigInteger(var_18_160)))
|
||||
stloc:NaccacheSternKeyParameters(var_83_4E1, newobj:NaccacheSternKeyParameters(NaccacheSternKeyParameters::.ctor, ldloc:int32[exp:bool](var_85), ldloc:BigInteger(var_66), ldloc:BigInteger(var_41_25F), ldloc:int32(var_82_4D2)))
|
||||
stloc:int32(var_85, ldc.i4:int32(0))
|
||||
stloc:int32(var_82_4F0, callgetter:int32(BigInteger::get_BitLength, ldloc:BigInteger(var_18_160)))
|
||||
stloc:NaccacheSternPrivateKeyParameters(var_86_501, newobj:NaccacheSternPrivateKeyParameters(NaccacheSternPrivateKeyParameters::.ctor, ldloc:BigInteger(var_66), ldloc:BigInteger(var_41_25F), ldloc:int32(var_82_4F0), ldloc:IList(var_9_5F), ldloc:BigInteger(var_47_291)))
|
||||
stloc:AsymmetricCipherKeyPair(var_87_50C, newobj:AsymmetricCipherKeyPair(AsymmetricCipherKeyPair::.ctor, ldloc:NaccacheSternKeyParameters[exp:AsymmetricKeyParameter](var_83_4E1), ldloc:NaccacheSternPrivateKeyParameters[exp:AsymmetricKeyParameter](var_86_501)))
|
||||
}
|
||||
|
||||
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: 0x0600BA3C RID: 47676 RVA: 0x00288EDC File Offset: 0x002870DC
|
||||
[Token(Token = "0x600BA3C")]
|
||||
[Address(RVA = "0x25C02A0", Offset = "0x25BF2A0", VA = "0x1825C02A0")]
|
||||
private static BigInteger generatePrime(int bitLength, int certainty, SecureRandom rand)
|
||||
{
|
||||
return new BigInteger(certainty, certainty, rand);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA3D RID: 47677 RVA: 0x00288EF4 File Offset: 0x002870F4
|
||||
[Token(Token = "0x600BA3D")]
|
||||
[Address(RVA = "0x25C0320", Offset = "0x25BF320", VA = "0x1825C0320")]
|
||||
private static IList permuteList(IList arr, SecureRandom rand)
|
||||
{
|
||||
int num;
|
||||
IList list;
|
||||
do
|
||||
{
|
||||
num = 0;
|
||||
if (num < arr)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
int num2 = 0;
|
||||
if (list != 0)
|
||||
{
|
||||
if (num < num2)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
uint num3;
|
||||
if (num < (int)num3)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
num += num;
|
||||
num++;
|
||||
int num4;
|
||||
num4 += num4;
|
||||
num += 19;
|
||||
num4 += num4;
|
||||
num++;
|
||||
num += 19;
|
||||
num4 += num4;
|
||||
num++;
|
||||
num += 19;
|
||||
num4 += num4;
|
||||
num += 8;
|
||||
num += 19;
|
||||
}
|
||||
if (num != 0)
|
||||
{
|
||||
}
|
||||
}
|
||||
while (num != 0);
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA3E RID: 47678 RVA: 0x00288F94 File Offset: 0x00287194
|
||||
[Token(Token = "0x600BA3E")]
|
||||
[Address(RVA = "0x25C0170", Offset = "0x25BF170", VA = "0x1825C0170")]
|
||||
private static IList findFirstPrimes(int count)
|
||||
{
|
||||
IList list = Platform.CreateArrayList(count);
|
||||
int num = 0;
|
||||
if (count != 0)
|
||||
{
|
||||
BigInteger bigInteger = BigInteger.ValueOf((long)NaccacheSternKeyPairGenerator.smallPrimes[num]);
|
||||
num++;
|
||||
while (num != count)
|
||||
{
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA3F RID: 47679 RVA: 0x00288FD0 File Offset: 0x002871D0
|
||||
[Token(Token = "0x600BA3F")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public NaccacheSternKeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BA40 RID: 47680 RVA: 0x00288FE4 File Offset: 0x002871E4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BA40")]
|
||||
[Address(RVA = "0x25C0110", Offset = "0x25BF110", VA = "0x1825C0110")]
|
||||
static NaccacheSternKeyPairGenerator()
|
||||
{
|
||||
int[] array = new int[101];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6FE282215AF15E3C00DDCAB5E6BD720D1F5BC0BC).FieldHandle);
|
||||
NaccacheSternKeyPairGenerator.smallPrimes = array;
|
||||
}
|
||||
|
||||
// Token: 0x04007564 RID: 30052
|
||||
[Token(Token = "0x4007564")]
|
||||
private static readonly int[] smallPrimes;
|
||||
|
||||
// Token: 0x04007565 RID: 30053
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007565")]
|
||||
private NaccacheSternKeyGenerationParameters param;
|
||||
}
|
||||
}
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Collections;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D55 RID: 7509
|
||||
[Token(Token = "0x2001D55")]
|
||||
public class OpenBsdBCrypt
|
||||
{
|
||||
// Token: 0x0600BA41 RID: 47681 RVA: 0x0028900C File Offset: 0x0028720C
|
||||
[Token(Token = "0x600BA41")]
|
||||
[Address(RVA = "0x25C1860", Offset = "0x25C0860", VA = "0x1825C1860")]
|
||||
static OpenBsdBCrypt()
|
||||
{
|
||||
byte[] array = new byte[64];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.2CDACAA27B7865A56A57B156CFB369245964BD2B).FieldHandle);
|
||||
OpenBsdBCrypt.EncodingTable = array;
|
||||
OpenBsdBCrypt.DecodingTable = new byte[128];
|
||||
OpenBsdBCrypt.DefaultVersion = "2y";
|
||||
OpenBsdBCrypt.AllowedVersions = new HashSet();
|
||||
ISet allowedVersions = OpenBsdBCrypt.AllowedVersions;
|
||||
ISet allowedVersions2 = OpenBsdBCrypt.AllowedVersions;
|
||||
ISet allowedVersions3 = OpenBsdBCrypt.AllowedVersions;
|
||||
int num = 0;
|
||||
byte[] decodingTable = OpenBsdBCrypt.DecodingTable;
|
||||
byte[] decodingTable2;
|
||||
if (num < decodingTable.Length)
|
||||
{
|
||||
num++;
|
||||
decodingTable2 = OpenBsdBCrypt.DecodingTable;
|
||||
}
|
||||
if (num < decodingTable2.Length)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA42 RID: 47682 RVA: 0x002890A4 File Offset: 0x002872A4
|
||||
[Token(Token = "0x600BA42")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public OpenBsdBCrypt()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BA43 RID: 47683 RVA: 0x002890B8 File Offset: 0x002872B8
|
||||
[Token(Token = "0x600BA43")]
|
||||
[Address(RVA = "0x25C0A50", Offset = "0x25BFA50", VA = "0x1825C0A50")]
|
||||
private static string CreateBcryptString(string version, byte[] password, byte[] salt, int cost)
|
||||
{
|
||||
ISet allowedVersions = OpenBsdBCrypt.AllowedVersions;
|
||||
StringBuilder stringBuilder = new StringBuilder(60);
|
||||
StringBuilder stringBuilder2 = stringBuilder.Append(version);
|
||||
string text;
|
||||
StringBuilder stringBuilder3 = stringBuilder.Append(text);
|
||||
string text2 = OpenBsdBCrypt.EncodeData(salt);
|
||||
StringBuilder stringBuilder4 = stringBuilder.Append(text2);
|
||||
byte[] array;
|
||||
string text3 = OpenBsdBCrypt.EncodeData(array);
|
||||
StringBuilder stringBuilder5 = stringBuilder.Append(text3);
|
||||
int hashCode = stringBuilder.GetHashCode();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA44 RID: 47684 RVA: 0x00289134 File Offset: 0x00287334
|
||||
[Token(Token = "0x600BA44")]
|
||||
[Address(RVA = "0x25C14C0", Offset = "0x25C04C0", VA = "0x1825C14C0")]
|
||||
public static string Generate(char[] password, byte[] salt, int cost)
|
||||
{
|
||||
return OpenBsdBCrypt.Generate(OpenBsdBCrypt.DefaultVersion, password, salt, cost);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA45 RID: 47685 RVA: 0x00289150 File Offset: 0x00287350
|
||||
[Token(Token = "0x600BA45")]
|
||||
[Address(RVA = "0x25C1550", Offset = "0x25C0550", VA = "0x1825C1550")]
|
||||
public static string Generate(string version, char[] password, byte[] salt, int cost)
|
||||
{
|
||||
do
|
||||
{
|
||||
ISet allowedVersions = OpenBsdBCrypt.AllowedVersions;
|
||||
}
|
||||
while (password == 0 || salt == 0 || salt.Length != 16);
|
||||
byte[] array = Strings.ToUtf8ByteArray(password);
|
||||
if (array.Length < 72)
|
||||
{
|
||||
}
|
||||
byte[] array2 = new byte[72];
|
||||
int length = array2.Length;
|
||||
int num = Math.Min(array.Length, length);
|
||||
int num2 = 0;
|
||||
int num3 = 0;
|
||||
Array.Copy(array, num3, array2, num2, num);
|
||||
int length2 = array.Length;
|
||||
int num4 = 0;
|
||||
Array.Clear(array, num4, length2);
|
||||
string text = OpenBsdBCrypt.CreateBcryptString(version, array2, salt, cost);
|
||||
int length3 = array2.Length;
|
||||
int num5 = 0;
|
||||
Array.Clear(array2, num5, length3);
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA46 RID: 47686 RVA: 0x00289204 File Offset: 0x00287404
|
||||
[Token(Token = "0x600BA46")]
|
||||
[Address(RVA = "0x25C0670", Offset = "0x25BF670", VA = "0x1825C0670")]
|
||||
public static bool CheckPassword(string bcryptString, char[] password)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA46)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.OpenBsdBCrypt::CheckPassword(System.String,System.Char[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_9D:
|
||||
stloc:ArgumentException(var_14_B3, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Invalid cost factor: "), ldloc:int32[exp:object](var_13), ldstr:string[exp:object](", 4 < cost < 31 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.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: 0x0600BA47 RID: 47687 RVA: 0x002892C8 File Offset: 0x002874C8
|
||||
[Token(Token = "0x600BA47")]
|
||||
[Address(RVA = "0x25C10E0", Offset = "0x25C00E0", VA = "0x1825C10E0")]
|
||||
private static string EncodeData(byte[] data)
|
||||
{
|
||||
int length = data.Length;
|
||||
int num = 0;
|
||||
if (length != 16)
|
||||
{
|
||||
int num2 = length - 1;
|
||||
}
|
||||
byte[] array = new byte[18];
|
||||
int length2 = data.Length;
|
||||
int num3 = 0;
|
||||
int num4 = 0;
|
||||
Array.Copy(data, num4, array, num3, length2);
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
if (array.Length > 0)
|
||||
{
|
||||
int length3 = array.Length;
|
||||
num += 2;
|
||||
byte b = array[num];
|
||||
byte[] encodingTable = OpenBsdBCrypt.EncodingTable;
|
||||
byte[] encodingTable2 = OpenBsdBCrypt.EncodingTable;
|
||||
byte[] encodingTable3 = OpenBsdBCrypt.EncodingTable;
|
||||
byte[] encodingTable4 = OpenBsdBCrypt.EncodingTable;
|
||||
num += 3;
|
||||
}
|
||||
ulong num5;
|
||||
if (num5 != (ulong)0L)
|
||||
{
|
||||
}
|
||||
string text;
|
||||
int stringLength = text.m_stringLength;
|
||||
int num6 = 0;
|
||||
return text.Substring(num6, stringLength);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA48 RID: 47688 RVA: 0x00289378 File Offset: 0x00287578
|
||||
[Token(Token = "0x600BA48")]
|
||||
[Address(RVA = "0x25C0C90", Offset = "0x25BFC90", VA = "0x1825C0C90")]
|
||||
private static byte[] DecodeSaltString(string saltString)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA48)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.OpenBsdBCrypt::DecodeSaltString(System.String)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_C4:
|
||||
stloc:ArgumentException(var_24_DA, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("Salt string contains invalid character: "), ldloc:int32[exp:object](var_23)), ldstr:string("saltString")))
|
||||
}
|
||||
|
||||
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: 0x04007566 RID: 30054
|
||||
[Token(Token = "0x4007566")]
|
||||
private static readonly byte[] EncodingTable;
|
||||
|
||||
// Token: 0x04007567 RID: 30055
|
||||
[Token(Token = "0x4007567")]
|
||||
private static readonly byte[] DecodingTable;
|
||||
|
||||
// Token: 0x04007568 RID: 30056
|
||||
[Token(Token = "0x4007568")]
|
||||
private static readonly string DefaultVersion;
|
||||
|
||||
// Token: 0x04007569 RID: 30057
|
||||
[Token(Token = "0x4007569")]
|
||||
private static readonly ISet AllowedVersions;
|
||||
}
|
||||
}
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D56 RID: 7510
|
||||
[Token(Token = "0x2001D56")]
|
||||
public class OpenSslPbeParametersGenerator : PbeParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA49 RID: 47689 RVA: 0x00289460 File Offset: 0x00287660
|
||||
[Token(Token = "0x600BA49")]
|
||||
[Address(RVA = "0x25C2210", Offset = "0x25C1210", VA = "0x1825C2210")]
|
||||
public OpenSslPbeParametersGenerator()
|
||||
{
|
||||
MD5Digest md5Digest = new MD5Digest();
|
||||
this.digest = md5Digest;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA4A RID: 47690 RVA: 0x00289480 File Offset: 0x00287680
|
||||
[Token(Token = "0x600BA4A")]
|
||||
[Address(RVA = "0x25C21D0", Offset = "0x25C11D0", VA = "0x1825C21D0", Slot = "4")]
|
||||
public override void Init(byte[] password, byte[] salt, int iterationCount)
|
||||
{
|
||||
base.Init(password, salt, 1);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA4B RID: 47691 RVA: 0x00289498 File Offset: 0x00287698
|
||||
[Token(Token = "0x600BA4B")]
|
||||
[Address(RVA = "0x25C21F0", Offset = "0x25C11F0", VA = "0x1825C21F0", Slot = "13")]
|
||||
public virtual void Init(byte[] password, byte[] salt)
|
||||
{
|
||||
base.Init(password, salt, 1);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA4C RID: 47692 RVA: 0x002894B0 File Offset: 0x002876B0
|
||||
[Token(Token = "0x600BA4C")]
|
||||
[Address(RVA = "0x25C1AC0", Offset = "0x25C0AC0", VA = "0x1825C1AC0")]
|
||||
private byte[] GenerateDerivedKey(int bytesNeeded)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = new byte[0];
|
||||
byte[] array2 = new byte[bytesNeeded];
|
||||
byte[] mPassword = this.mPassword;
|
||||
IDigest digest2 = this.digest;
|
||||
int num = 0;
|
||||
if (num < digest)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
int num2 = 0;
|
||||
byte[] mSalt = this.mSalt;
|
||||
IDigest digest3 = this.digest;
|
||||
int num3 = 0;
|
||||
if (num3 < num2)
|
||||
{
|
||||
num3 += num3;
|
||||
num3++;
|
||||
}
|
||||
int num4 = 0;
|
||||
IDigest digest4 = this.digest;
|
||||
int num5 = 0;
|
||||
if (num5 < num4)
|
||||
{
|
||||
num5 += num5;
|
||||
num5++;
|
||||
}
|
||||
int num6 = array.Length;
|
||||
if (bytesNeeded <= num6)
|
||||
{
|
||||
num6 = bytesNeeded;
|
||||
}
|
||||
int num7 = 0;
|
||||
Array.Copy(array, num7, array2, num, num6);
|
||||
num += num6;
|
||||
if (bytesNeeded != num6)
|
||||
{
|
||||
IDigest digest5 = this.digest;
|
||||
if (num5 < array2)
|
||||
{
|
||||
num5 += num5;
|
||||
num5++;
|
||||
}
|
||||
IDigest digest6 = this.digest;
|
||||
int length = array.Length;
|
||||
uint num8;
|
||||
if (num5 < (int)num8)
|
||||
{
|
||||
num5 += num5;
|
||||
num5++;
|
||||
}
|
||||
byte[] mPassword2 = this.mPassword;
|
||||
array += array;
|
||||
array += array;
|
||||
array += array;
|
||||
array += array;
|
||||
array += array;
|
||||
}
|
||||
return array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA4D RID: 47693 RVA: 0x002895D0 File Offset: 0x002877D0
|
||||
[Token(Token = "0x600BA4D")]
|
||||
[Address(RVA = "0x22908C0", Offset = "0x228F8C0", VA = "0x1822908C0", Slot = "8")]
|
||||
[Obsolete]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize)
|
||||
{
|
||||
return base.GenerateDerivedParameters(keySize);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA4E RID: 47694 RVA: 0x002895E4 File Offset: 0x002877E4
|
||||
[Token(Token = "0x600BA4E")]
|
||||
[Address(RVA = "0x25C1F50", Offset = "0x25C0F50", VA = "0x1825C1F50", Slot = "9")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA4E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.OpenSslPbeParametersGenerator::GenerateDerivedParameters(System.String,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_07, call:uint8[](OpenSslPbeParametersGenerator::GenerateDerivedKey, ldloc:OpenSslPbeParametersGenerator(this), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2_09, ldc.i4:int32(0))
|
||||
stloc:KeyParameter(var_3_13, call:KeyParameter(ParameterUtilities::CreateKeyParameter, ldloc:string(algorithm), ldloc:uint8[](var_0_07), ldloc:int32(var_2_09), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x0600BA4F RID: 47695 RVA: 0x00289604 File Offset: 0x00287804
|
||||
[Token(Token = "0x600BA4F")]
|
||||
[Address(RVA = "0x25C1FF0", Offset = "0x25C0FF0", VA = "0x1825C1FF0", Slot = "10")]
|
||||
[Obsolete]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize, int ivSize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA4F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.OpenSslPbeParametersGenerator::GenerateDerivedParameters(System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_07, call:uint8[](OpenSslPbeParametersGenerator::GenerateDerivedKey, ldloc:OpenSslPbeParametersGenerator(this), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x0600BA50 RID: 47696 RVA: 0x00289618 File Offset: 0x00287818
|
||||
[Token(Token = "0x600BA50")]
|
||||
[Address(RVA = "0x25C20D0", Offset = "0x25C10D0", VA = "0x1825C20D0", Slot = "11")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize, int ivSize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA50)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.OpenSslPbeParametersGenerator::GenerateDerivedParameters(System.String,System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32(var_2_01, ldc.i4:int32(0))
|
||||
stloc:ParametersWithIV(var_3_13, newobj:ParametersWithIV(ParametersWithIV::.ctor, call:KeyParameter[exp:ICipherParameters](ParameterUtilities::CreateKeyParameter, ldloc:string(algorithm), ldloc:uint8[](var_0), ldloc:int32(var_2_01), ldloc:int32(ivSize)), ldloc:uint8[](var_0), ldloc:int32(ivSize), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x00289638 File Offset: 0x00287838
|
||||
[Token(Token = "0x600BA51")]
|
||||
[Address(RVA = "0x25C1EC0", Offset = "0x25C0EC0", VA = "0x1825C1EC0", Slot = "12")]
|
||||
public override ICipherParameters GenerateDerivedMacParameters(int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA51)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.OpenSslPbeParametersGenerator::GenerateDerivedMacParameters(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:KeyParameter(var_0_0E, newobj:KeyParameter(KeyParameter::.ctor, call:uint8[](OpenSslPbeParametersGenerator::GenerateDerivedKey, ldloc:OpenSslPbeParametersGenerator(this), ldloc:int32(keySize)), ldloc:int32(var_2), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2, ldc.i4:int32(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: 0x0400756A RID: 30058
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400756A")]
|
||||
private readonly IDigest digest;
|
||||
}
|
||||
}
|
||||
+336
@@ -0,0 +1,336 @@
|
||||
using System;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D57 RID: 7511
|
||||
[Token(Token = "0x2001D57")]
|
||||
public class Pkcs12ParametersGenerator : PbeParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA52 RID: 47698 RVA: 0x00289658 File Offset: 0x00287858
|
||||
[Token(Token = "0x600BA52")]
|
||||
[Address(RVA = "0x25C2D60", Offset = "0x25C1D60", VA = "0x1825C2D60")]
|
||||
public Pkcs12ParametersGenerator(IDigest digest)
|
||||
{
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA53 RID: 47699 RVA: 0x00289678 File Offset: 0x00287878
|
||||
[Token(Token = "0x600BA53")]
|
||||
[Address(RVA = "0x25C2270", Offset = "0x25C1270", VA = "0x1825C2270")]
|
||||
private void Adjust(byte[] a, int aOff, byte[] b)
|
||||
{
|
||||
int num = b.Length - 1;
|
||||
byte b2;
|
||||
byte b3;
|
||||
b2 += b3;
|
||||
num = b.Length;
|
||||
byte b4;
|
||||
b2 += b4;
|
||||
byte b5;
|
||||
b2 += b5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA54 RID: 47700 RVA: 0x002896A8 File Offset: 0x002878A8
|
||||
[Token(Token = "0x600BA54")]
|
||||
[Address(RVA = "0x25C2360", Offset = "0x25C1360", VA = "0x1825C2360")]
|
||||
private byte[] GenerateDerivedKey(int idByte, int n)
|
||||
{
|
||||
int num = this.v;
|
||||
byte[] array = new byte[num];
|
||||
byte[] array2 = new byte[n];
|
||||
int num2 = 0;
|
||||
int length = array.Length;
|
||||
if (num2 != length)
|
||||
{
|
||||
num2++;
|
||||
}
|
||||
byte[] mSalt = this.mSalt;
|
||||
if (mSalt != 0)
|
||||
{
|
||||
int length2 = mSalt.Length;
|
||||
if (length2 != 0)
|
||||
{
|
||||
int num3 = this.v;
|
||||
int num4 = length2 - 1;
|
||||
num4 += num3;
|
||||
int length3 = new byte[length2].Length;
|
||||
if (num2 == length3)
|
||||
{
|
||||
goto IL_81;
|
||||
}
|
||||
byte[] mSalt2 = this.mSalt;
|
||||
num2++;
|
||||
}
|
||||
}
|
||||
byte[] array3 = new byte[0];
|
||||
IL_81:
|
||||
byte[] mPassword = this.mPassword;
|
||||
if (mPassword != 0)
|
||||
{
|
||||
int length4 = mPassword.Length;
|
||||
if (length4 != 0)
|
||||
{
|
||||
int num5 = this.v;
|
||||
int num6 = length4 - 1;
|
||||
num6 += num5;
|
||||
int length5 = new byte[length4].Length;
|
||||
if (num2 == length5)
|
||||
{
|
||||
goto IL_D8;
|
||||
}
|
||||
byte[] mPassword2 = this.mPassword;
|
||||
num2++;
|
||||
}
|
||||
}
|
||||
byte[] array4 = new byte[0];
|
||||
IL_D8:
|
||||
byte[] array5 = new byte[array4.Length];
|
||||
int length6 = array3.Length;
|
||||
int num7 = 0;
|
||||
int num8 = 0;
|
||||
Array.Copy(array3, num8, array5, num7, length6);
|
||||
int length7 = array4.Length;
|
||||
int length8 = array3.Length;
|
||||
int num9 = 0;
|
||||
Array.Copy(array4, num9, array5, length8, length7);
|
||||
int num10 = this.v;
|
||||
byte[] array6 = new byte[num10];
|
||||
int num11 = this.u;
|
||||
int num12 = n - 1;
|
||||
num12 += num11;
|
||||
num10 = num11;
|
||||
byte[] array7 = new byte[num10];
|
||||
IDigest digest = this.digest;
|
||||
int num13 = 0;
|
||||
if (num13 < array5)
|
||||
{
|
||||
num13 += num13;
|
||||
num13++;
|
||||
}
|
||||
int num14 = 0;
|
||||
IDigest digest2 = this.digest;
|
||||
int num15 = 0;
|
||||
if (num15 < num14)
|
||||
{
|
||||
num15 += num15;
|
||||
num15++;
|
||||
}
|
||||
int num16 = 0;
|
||||
IDigest digest3 = this.digest;
|
||||
int num17 = 0;
|
||||
if (num17 < num16)
|
||||
{
|
||||
num17 += num17;
|
||||
num17++;
|
||||
}
|
||||
IDigest digest4 = this.digest;
|
||||
int length9 = array7.Length;
|
||||
IDigest digest5 = this.digest;
|
||||
uint num18;
|
||||
num18 += (uint)1;
|
||||
int length10 = array6.Length;
|
||||
if (num17 != length10)
|
||||
{
|
||||
num17++;
|
||||
num17 += num17;
|
||||
num17 += num17;
|
||||
num17 += num17;
|
||||
}
|
||||
int length11 = array5.Length;
|
||||
int num19 = this.v;
|
||||
if (num17 != length11)
|
||||
{
|
||||
int num20 = num19 * num17;
|
||||
this.Adjust(array5, num20, array6);
|
||||
num17++;
|
||||
}
|
||||
uint num21;
|
||||
if (num21 != (uint)num12)
|
||||
{
|
||||
}
|
||||
int num22 = array2.Length;
|
||||
uint num23 = num21 - 1U;
|
||||
num22 -= (int)num23;
|
||||
int num24 = 0;
|
||||
Array.Copy(array7, num24, array2, (int)num23, num22);
|
||||
num21 += (uint)1;
|
||||
while (num21 <= (uint)num12)
|
||||
{
|
||||
}
|
||||
return array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA55 RID: 47701 RVA: 0x0028992C File Offset: 0x00287B2C
|
||||
[Token(Token = "0x600BA55")]
|
||||
[Address(RVA = "0x25C2A20", Offset = "0x25C1A20", VA = "0x1825C2A20", Slot = "8")]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA55)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs12ParametersGenerator::GenerateDerivedParameters(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:KeyParameter(var_0_0F, newobj:KeyParameter(KeyParameter::.ctor, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(1), ldloc:int32(keySize)), ldloc:int32(var_2), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2, ldc.i4:int32(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: 0x0600BA56 RID: 47702 RVA: 0x0028994C File Offset: 0x00287B4C
|
||||
[Token(Token = "0x600BA56")]
|
||||
[Address(RVA = "0x25C2BC0", Offset = "0x25C1BC0", VA = "0x1825C2BC0", Slot = "9")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA56)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs12ParametersGenerator::GenerateDerivedParameters(System.String,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_08, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(1), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2_0A, ldc.i4:int32(0))
|
||||
stloc:KeyParameter(var_3_14, call:KeyParameter(ParameterUtilities::CreateKeyParameter, ldloc:string(algorithm), ldloc:uint8[](var_0_08), ldloc:int32(var_2_0A), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x0600BA57 RID: 47703 RVA: 0x00289970 File Offset: 0x00287B70
|
||||
[Token(Token = "0x600BA57")]
|
||||
[Address(RVA = "0x25C2C60", Offset = "0x25C1C60", VA = "0x1825C2C60", Slot = "10")]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize, int ivSize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA57)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs12ParametersGenerator::GenerateDerivedParameters(System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_08, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(1), ldloc:int32(ivSize)))
|
||||
stloc:int32(var_1_0A, ldc.i4:int32(0))
|
||||
stloc:uint8[](var_2_13, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(2), ldloc:int32(ivSize)))
|
||||
stloc:KeyParameter(var_3_1D, newobj:KeyParameter(KeyParameter::.ctor, ldloc:uint8[](var_0_08), ldloc:int32(var_5), ldloc:int32(var_1_0A)))
|
||||
stloc:int32(var_5, ldc.i4:int32(0))
|
||||
stloc:ParametersWithIV(var_6_2C, newobj:ParametersWithIV(ParametersWithIV::.ctor, ldloc:KeyParameter[exp:ICipherParameters](var_3_1D), ldloc:uint8[](var_2_13), ldloc:int32(var_7), ldloc:uint64[exp:int32](var_4)))
|
||||
stloc:int32(var_7, ldc.i4:int32(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: 0x0600BA58 RID: 47704 RVA: 0x002899B0 File Offset: 0x00287BB0
|
||||
[Token(Token = "0x600BA58")]
|
||||
[Address(RVA = "0x25C2AB0", Offset = "0x25C1AB0", VA = "0x1825C2AB0", Slot = "11")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize, int ivSize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA58)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs12ParametersGenerator::GenerateDerivedParameters(System.String,System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_08, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(1), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2_0A, ldc.i4:int32(0))
|
||||
stloc:KeyParameter(var_3_14, call:KeyParameter(ParameterUtilities::CreateKeyParameter, ldloc:string(algorithm), ldloc:uint8[](var_0_08), ldloc:int32(var_2_0A), ldloc:int32(keySize)))
|
||||
stloc:uint8[](var_4_1D, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(2), ldloc:int32(var_2_0A)))
|
||||
stloc:ParametersWithIV(var_5_2A, newobj:ParametersWithIV(ParametersWithIV::.ctor, ldloc:KeyParameter[exp:ICipherParameters](var_3_14), ldloc:uint8[](var_4_1D), ldloc:int32(var_6), ldloc:uint64[exp:int32](var_1)))
|
||||
stloc:int32(var_6, ldc.i4:int32(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: 0x0600BA59 RID: 47705 RVA: 0x002899EC File Offset: 0x00287BEC
|
||||
[Token(Token = "0x600BA59")]
|
||||
[Address(RVA = "0x25C2990", Offset = "0x25C1990", VA = "0x1825C2990", Slot = "12")]
|
||||
public override ICipherParameters GenerateDerivedMacParameters(int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA59)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs12ParametersGenerator::GenerateDerivedMacParameters(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:KeyParameter(var_0_0F, newobj:KeyParameter(KeyParameter::.ctor, call:uint8[](Pkcs12ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs12ParametersGenerator(this), ldc.i4:int32(3), ldloc:int32(keySize)), ldloc:int32(var_2), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2, ldc.i4:int32(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: 0x0400756B RID: 30059
|
||||
[Token(Token = "0x400756B")]
|
||||
public const int KeyMaterial = 1;
|
||||
|
||||
// Token: 0x0400756C RID: 30060
|
||||
[Token(Token = "0x400756C")]
|
||||
public const int IVMaterial = 2;
|
||||
|
||||
// Token: 0x0400756D RID: 30061
|
||||
[Token(Token = "0x400756D")]
|
||||
public const int MacMaterial = 3;
|
||||
|
||||
// Token: 0x0400756E RID: 30062
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x400756E")]
|
||||
private readonly IDigest digest;
|
||||
|
||||
// Token: 0x0400756F RID: 30063
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x400756F")]
|
||||
private readonly int u;
|
||||
|
||||
// Token: 0x04007570 RID: 30064
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x4007570")]
|
||||
private readonly int v;
|
||||
}
|
||||
}
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D58 RID: 7512
|
||||
[Token(Token = "0x2001D58")]
|
||||
public class Pkcs5S1ParametersGenerator : PbeParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA5A RID: 47706 RVA: 0x00289A0C File Offset: 0x00287C0C
|
||||
[Token(Token = "0x600BA5A")]
|
||||
[Address(RVA = "0x25C3560", Offset = "0x25C2560", VA = "0x1825C3560")]
|
||||
public Pkcs5S1ParametersGenerator(IDigest digest)
|
||||
{
|
||||
this.digest = digest;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA5B RID: 47707 RVA: 0x00289A28 File Offset: 0x00287C28
|
||||
[Token(Token = "0x600BA5B")]
|
||||
[Address(RVA = "0x25C2DE0", Offset = "0x25C1DE0", VA = "0x1825C2DE0")]
|
||||
private byte[] GenerateDerivedKey()
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = new byte[0];
|
||||
byte[] mPassword = this.mPassword;
|
||||
IDigest digest2 = this.digest;
|
||||
int length = mPassword.Length;
|
||||
int num = 0;
|
||||
byte[] mSalt = this.mSalt;
|
||||
IDigest digest3 = this.digest;
|
||||
int length2 = mSalt.Length;
|
||||
IDigest digest4 = this.digest;
|
||||
IDigest digest5 = this.digest;
|
||||
if (num < digest4)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
int num2 = 0;
|
||||
IDigest digest6 = this.digest;
|
||||
if (num < num2)
|
||||
{
|
||||
num += num;
|
||||
num++;
|
||||
}
|
||||
uint num3;
|
||||
num3 += (uint)1;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA5C RID: 47708 RVA: 0x00289AC4 File Offset: 0x00287CC4
|
||||
[Token(Token = "0x600BA5C")]
|
||||
[Address(RVA = "0x22908C0", Offset = "0x228F8C0", VA = "0x1822908C0", Slot = "8")]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize)
|
||||
{
|
||||
return base.GenerateDerivedParameters(keySize);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA5D RID: 47709 RVA: 0x00289AD8 File Offset: 0x00287CD8
|
||||
[Token(Token = "0x600BA5D")]
|
||||
[Address(RVA = "0x25C32C0", Offset = "0x25C22C0", VA = "0x1825C32C0", Slot = "9")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = this.GenerateDerivedKey();
|
||||
int num = 0;
|
||||
KeyParameter keyParameter = ParameterUtilities.CreateKeyParameter(algorithm, array, num, keySize);
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA5E RID: 47710 RVA: 0x00289B08 File Offset: 0x00287D08
|
||||
[Token(Token = "0x600BA5E")]
|
||||
[Address(RVA = "0x25C3160", Offset = "0x25C2160", VA = "0x1825C3160", Slot = "10")]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize, int ivSize)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = this.GenerateDerivedKey();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA5F RID: 47711 RVA: 0x00289B28 File Offset: 0x00287D28
|
||||
[Token(Token = "0x600BA5F")]
|
||||
[Address(RVA = "0x25C33E0", Offset = "0x25C23E0", VA = "0x1825C33E0", Slot = "11")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize, int ivSize)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = this.GenerateDerivedKey();
|
||||
int num = 0;
|
||||
ulong num2;
|
||||
ParametersWithIV parametersWithIV = new ParametersWithIV(ParameterUtilities.CreateKeyParameter(algorithm, array, num, ivSize), array, ivSize, (int)num2);
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA60 RID: 47712 RVA: 0x00289B60 File Offset: 0x00287D60
|
||||
[Token(Token = "0x600BA60")]
|
||||
[Address(RVA = "0x25C3050", Offset = "0x25C2050", VA = "0x1825C3050", Slot = "12")]
|
||||
public override ICipherParameters GenerateDerivedMacParameters(int keySize)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = this.GenerateDerivedKey();
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x04007571 RID: 30065
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007571")]
|
||||
private readonly IDigest digest;
|
||||
}
|
||||
}
|
||||
+223
@@ -0,0 +1,223 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D59 RID: 7513
|
||||
[Token(Token = "0x2001D59")]
|
||||
public class Pkcs5S2ParametersGenerator : PbeParametersGenerator
|
||||
{
|
||||
// Token: 0x0600BA61 RID: 47713 RVA: 0x00289B80 File Offset: 0x00287D80
|
||||
[Token(Token = "0x600BA61")]
|
||||
[Address(RVA = "0x25C3C70", Offset = "0x25C2C70", VA = "0x1825C3C70")]
|
||||
public Pkcs5S2ParametersGenerator()
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA62 RID: 47714 RVA: 0x00289B94 File Offset: 0x00287D94
|
||||
[Token(Token = "0x600BA62")]
|
||||
[Address(RVA = "0x25C3CD0", Offset = "0x25C2CD0", VA = "0x1825C3CD0")]
|
||||
public Pkcs5S2ParametersGenerator(IDigest digest)
|
||||
{
|
||||
HMac hmac;
|
||||
hmac.digest = digest;
|
||||
hmac.digestSize = hmac;
|
||||
hmac.blockLength = hmac;
|
||||
byte[] array = new byte[hmac];
|
||||
int blockLength = hmac.blockLength;
|
||||
hmac.inputPad = array;
|
||||
byte[] array2 = new byte[blockLength];
|
||||
hmac.outputBuf = array2;
|
||||
this.hMac = hmac;
|
||||
byte[] array3 = new byte[array2];
|
||||
this.state = array3;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA63 RID: 47715 RVA: 0x00289BFC File Offset: 0x00287DFC
|
||||
[Token(Token = "0x600BA63")]
|
||||
[Address(RVA = "0x25C3590", Offset = "0x25C2590", VA = "0x1825C3590")]
|
||||
private void F(byte[] S, int c, byte[] iBuf, byte[] outBytes, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA63)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs5S2ParametersGenerator::F(System.Byte[],System.Int32,System.Byte[],System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_78:
|
||||
stloc:ArgumentException(var_12_82, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("iteration count must be at least 1.")))
|
||||
}
|
||||
|
||||
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: 0x0600BA64 RID: 47716 RVA: 0x00289C8C File Offset: 0x00287E8C
|
||||
[Token(Token = "0x600BA64")]
|
||||
[Address(RVA = "0x25C37E0", Offset = "0x25C27E0", VA = "0x1825C37E0")]
|
||||
private byte[] GenerateDerivedKey(int dkLen)
|
||||
{
|
||||
IMac mac = this.hMac;
|
||||
int num = dkLen - 1;
|
||||
byte[] array = new byte[4];
|
||||
byte[] array2 = new byte[num];
|
||||
byte[] mPassword = this.mPassword;
|
||||
int num2 = 0;
|
||||
KeyParameter keyParameter = new KeyParameter(mPassword);
|
||||
IMac mac2 = this.hMac;
|
||||
uint num3;
|
||||
if (num3 == (uint)array.Length)
|
||||
{
|
||||
}
|
||||
int mIterationCount = this.mIterationCount;
|
||||
byte[] mSalt = this.mSalt;
|
||||
this.F(mSalt, mIterationCount, array, array2, num2);
|
||||
uint num4;
|
||||
num4 += (uint)1;
|
||||
while (num4 <= (uint)num)
|
||||
{
|
||||
}
|
||||
return array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA65 RID: 47717 RVA: 0x00289D10 File Offset: 0x00287F10
|
||||
[Token(Token = "0x600BA65")]
|
||||
[Address(RVA = "0x22908C0", Offset = "0x228F8C0", VA = "0x1822908C0", Slot = "8")]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize)
|
||||
{
|
||||
return base.GenerateDerivedParameters(keySize);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA66 RID: 47718 RVA: 0x00289D24 File Offset: 0x00287F24
|
||||
[Token(Token = "0x600BA66")]
|
||||
[Address(RVA = "0x25C3BD0", Offset = "0x25C2BD0", VA = "0x1825C3BD0", Slot = "9")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA66)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs5S2ParametersGenerator::GenerateDerivedParameters(System.String,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_07, call:uint8[](Pkcs5S2ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs5S2ParametersGenerator(this), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2_09, ldc.i4:int32(0))
|
||||
stloc:KeyParameter(var_3_13, call:KeyParameter(ParameterUtilities::CreateKeyParameter, ldloc:string(algorithm), ldloc:uint8[](var_0_07), ldloc:int32(var_2_09), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x0600BA67 RID: 47719 RVA: 0x00289D44 File Offset: 0x00287F44
|
||||
[Token(Token = "0x600BA67")]
|
||||
[Address(RVA = "0x25C3AF0", Offset = "0x25C2AF0", VA = "0x1825C3AF0", Slot = "10")]
|
||||
public override ICipherParameters GenerateDerivedParameters(int keySize, int ivSize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA67)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs5S2ParametersGenerator::GenerateDerivedParameters(System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:uint8[](var_0_07, call:uint8[](Pkcs5S2ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs5S2ParametersGenerator(this), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x0600BA68 RID: 47720 RVA: 0x00289D58 File Offset: 0x00287F58
|
||||
[Token(Token = "0x600BA68")]
|
||||
[Address(RVA = "0x25C39F0", Offset = "0x25C29F0", VA = "0x1825C39F0", Slot = "11")]
|
||||
public override ICipherParameters GenerateDerivedParameters(string algorithm, int keySize, int ivSize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA68)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs5S2ParametersGenerator::GenerateDerivedParameters(System.String,System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:int32(var_2_01, ldc.i4:int32(0))
|
||||
stloc:ParametersWithIV(var_3_13, newobj:ParametersWithIV(ParametersWithIV::.ctor, call:KeyParameter[exp:ICipherParameters](ParameterUtilities::CreateKeyParameter, ldloc:string(algorithm), ldloc:uint8[](var_0), ldloc:int32(var_2_01), ldloc:int32(ivSize)), ldloc:uint8[](var_0), ldloc:int32(ivSize), ldloc:int32(keySize)))
|
||||
}
|
||||
|
||||
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: 0x0600BA69 RID: 47721 RVA: 0x00289D78 File Offset: 0x00287F78
|
||||
[Token(Token = "0x600BA69")]
|
||||
[Address(RVA = "0x25C3960", Offset = "0x25C2960", VA = "0x1825C3960", Slot = "12")]
|
||||
public override ICipherParameters GenerateDerivedMacParameters(int keySize)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA69)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Pkcs5S2ParametersGenerator::GenerateDerivedMacParameters(System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:KeyParameter(var_0_0E, newobj:KeyParameter(KeyParameter::.ctor, call:uint8[](Pkcs5S2ParametersGenerator::GenerateDerivedKey, ldloc:Pkcs5S2ParametersGenerator(this), ldloc:int32(keySize)), ldloc:int32(var_2), ldloc:int32(keySize)))
|
||||
stloc:int32(var_2, ldc.i4:int32(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: 0x04007572 RID: 30066
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007572")]
|
||||
private readonly IMac hMac;
|
||||
|
||||
// Token: 0x04007573 RID: 30067
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007573")]
|
||||
private readonly byte[] state;
|
||||
}
|
||||
}
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D5A RID: 7514
|
||||
[Token(Token = "0x2001D5A")]
|
||||
public class Poly1305KeyGenerator : CipherKeyGenerator
|
||||
{
|
||||
// Token: 0x0600BA6A RID: 47722 RVA: 0x00289D98 File Offset: 0x00287F98
|
||||
[Token(Token = "0x600BA6A")]
|
||||
[Address(RVA = "0x25C4200", Offset = "0x25C3200", VA = "0x1825C4200", Slot = "4")]
|
||||
protected override void engineInit(KeyGenerationParameters param)
|
||||
{
|
||||
SecureRandom random = param.random;
|
||||
this.random = random;
|
||||
this.strength = (int)((ulong)32L);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA6B RID: 47723 RVA: 0x00289DC4 File Offset: 0x00287FC4
|
||||
[Token(Token = "0x600BA6B")]
|
||||
[Address(RVA = "0x25C40E0", Offset = "0x25C30E0", VA = "0x1825C40E0", Slot = "5")]
|
||||
protected override byte[] engineGenerateKey()
|
||||
{
|
||||
byte[] array;
|
||||
do
|
||||
{
|
||||
array = base.engineGenerateKey();
|
||||
}
|
||||
while (array.Length != 32);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA6C RID: 47724 RVA: 0x00289DEC File Offset: 0x00287FEC
|
||||
[Token(Token = "0x600BA6C")]
|
||||
[Address(RVA = "0x25C3FD0", Offset = "0x25C2FD0", VA = "0x1825C3FD0")]
|
||||
public static void Clamp(byte[] key)
|
||||
{
|
||||
while (key.Length != 32)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA6D RID: 47725 RVA: 0x00289E0C File Offset: 0x0028800C
|
||||
[Token(Token = "0x600BA6D")]
|
||||
[Address(RVA = "0x25C3DF0", Offset = "0x25C2DF0", VA = "0x1825C3DF0")]
|
||||
public static void CheckKey(byte[] key)
|
||||
{
|
||||
while (key.Length != 32)
|
||||
{
|
||||
}
|
||||
byte b = key[0];
|
||||
byte b2 = key[0];
|
||||
byte b3 = key[1];
|
||||
byte b4 = key[1];
|
||||
byte b5 = key[0];
|
||||
byte b6 = key[1];
|
||||
byte b7 = key[1];
|
||||
}
|
||||
|
||||
// Token: 0x0600BA6E RID: 47726 RVA: 0x00289E64 File Offset: 0x00288064
|
||||
[Token(Token = "0x600BA6E")]
|
||||
[Address(RVA = "0x25C3F50", Offset = "0x25C2F50", VA = "0x1825C3F50")]
|
||||
private static void CheckMask(byte b, byte mask)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA6E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator::CheckMask(System.Byte,System.Byte)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_05:
|
||||
stloc:ArgumentException(var_0_0F, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Invalid format for r portion of Poly1305 key.")))
|
||||
}
|
||||
|
||||
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: 0x0600BA6F RID: 47727 RVA: 0x00289E80 File Offset: 0x00288080
|
||||
[Token(Token = "0x600BA6F")]
|
||||
[Address(RVA = "0x257E2B0", Offset = "0x257D2B0", VA = "0x18257E2B0")]
|
||||
public Poly1305KeyGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007574 RID: 30068
|
||||
[Token(Token = "0x4007574")]
|
||||
private const byte R_MASK_LOW_2 = 252;
|
||||
|
||||
// Token: 0x04007575 RID: 30069
|
||||
[Token(Token = "0x4007575")]
|
||||
private const byte R_MASK_HIGH_4 = 15;
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
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.Generators
|
||||
{
|
||||
// Token: 0x02001D5B RID: 7515
|
||||
[Token(Token = "0x2001D5B")]
|
||||
public class RsaBlindingFactorGenerator
|
||||
{
|
||||
// Token: 0x0600BA70 RID: 47728 RVA: 0x00289E94 File Offset: 0x00288094
|
||||
[Token(Token = "0x600BA70")]
|
||||
[Address(RVA = "0x25C51F0", Offset = "0x25C41F0", VA = "0x1825C51F0")]
|
||||
public void Init(ICipherParameters param)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA70)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.RsaBlindingFactorGenerator::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_56:
|
||||
stloc:ArgumentException(var_7_60, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("generator requires RSA public key")))
|
||||
}
|
||||
|
||||
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: 0x0600BA71 RID: 47729 RVA: 0x00289F04 File Offset: 0x00288104
|
||||
[Token(Token = "0x600BA71")]
|
||||
[Address(RVA = "0x25C5050", Offset = "0x25C4050", VA = "0x1825C5050")]
|
||||
public BigInteger GenerateBlindingFactor()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA71)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.RsaBlindingFactorGenerator::GenerateBlindingFactor()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_46:
|
||||
stloc:InvalidOperationException(var_7_50, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("generator 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: 0x0600BA72 RID: 47730 RVA: 0x00289F64 File Offset: 0x00288164
|
||||
[Token(Token = "0x600BA72")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public RsaBlindingFactorGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007576 RID: 30070
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007576")]
|
||||
private RsaKeyParameters key;
|
||||
|
||||
// Token: 0x04007577 RID: 30071
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4007577")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+159
@@ -0,0 +1,159 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D5C RID: 7516
|
||||
[Token(Token = "0x2001D5C")]
|
||||
public class RsaKeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA73 RID: 47731 RVA: 0x00289F78 File Offset: 0x00288178
|
||||
[Token(Token = "0x600BA73")]
|
||||
[Address(RVA = "0x25C5A30", Offset = "0x25C4A30", VA = "0x1825C5A30", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
while (parameters != 0 && parameters != 0)
|
||||
{
|
||||
if (parameters != 0)
|
||||
{
|
||||
this.parameters = parameters;
|
||||
return;
|
||||
}
|
||||
}
|
||||
BigInteger defaultPublicExponent = RsaKeyPairGenerator.DefaultPublicExponent;
|
||||
SecureRandom random = parameters.random;
|
||||
int strength = parameters.strength;
|
||||
ulong num;
|
||||
RsaKeyGenerationParameters rsaKeyGenerationParameters = new RsaKeyGenerationParameters(defaultPublicExponent, random, strength, (int)num);
|
||||
this.parameters = rsaKeyGenerationParameters;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA74 RID: 47732 RVA: 0x00289FD4 File Offset: 0x002881D4
|
||||
[Token(Token = "0x600BA74")]
|
||||
[Address(RVA = "0x25C5650", Offset = "0x25C4650", VA = "0x1825C5650", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
RsaKeyGenerationParameters rsaKeyGenerationParameters = this.parameters;
|
||||
int num = rsaKeyGenerationParameters.strength;
|
||||
int num2 = num + 1;
|
||||
num -= num2;
|
||||
BigInteger publicExponent = rsaKeyGenerationParameters.publicExponent;
|
||||
AsymmetricCipherKeyPair asymmetricCipherKeyPair = this.GenerateKeyPair();
|
||||
AsymmetricCipherKeyPair asymmetricCipherKeyPair2 = this.GenerateKeyPair();
|
||||
BigInteger bigInteger;
|
||||
int bitLength = bigInteger.Abs().BitLength;
|
||||
BigInteger bigInteger2;
|
||||
if (bigInteger2.BitLength == num)
|
||||
{
|
||||
int nafWeight = WNafUtilities.GetNafWeight(bigInteger2);
|
||||
}
|
||||
BigInteger one = RsaKeyPairGenerator.One;
|
||||
BigInteger one2 = RsaKeyPairGenerator.One;
|
||||
BigInteger bigInteger4;
|
||||
BigInteger bigInteger5;
|
||||
BigInteger bigInteger3 = bigInteger4.Gcd(bigInteger5);
|
||||
BigInteger bigInteger6 = bigInteger4.Divide(bigInteger3).Multiply(bigInteger5);
|
||||
BigInteger bigInteger7 = publicExponent.ModInverse(bigInteger6);
|
||||
int bitLength2 = bigInteger7.BitLength;
|
||||
RsaKeyGenerationParameters rsaKeyGenerationParameters2 = this.parameters;
|
||||
BigInteger bigInteger8 = bigInteger7.Remainder(bigInteger4);
|
||||
BigInteger bigInteger9 = bigInteger7.Remainder(bigInteger5);
|
||||
RsaKeyParameters rsaKeyParameters;
|
||||
RsaPrivateCrtKeyParameters rsaPrivateCrtKeyParameters;
|
||||
return new AsymmetricCipherKeyPair(rsaKeyParameters, rsaPrivateCrtKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA75 RID: 47733 RVA: 0x0028A09C File Offset: 0x0028829C
|
||||
[Token(Token = "0x600BA75")]
|
||||
[Address(RVA = "0x25C53D0", Offset = "0x25C43D0", VA = "0x1825C53D0", Slot = "8")]
|
||||
protected virtual BigInteger ChooseRandomPrime(int bitlength, BigInteger e)
|
||||
{
|
||||
BigInteger bigInteger;
|
||||
for (;;)
|
||||
{
|
||||
int bitLength = e.BitLength;
|
||||
int[] special_E_VALUES = RsaKeyPairGenerator.SPECIAL_E_VALUES;
|
||||
int intValue = e.IntValue;
|
||||
bool flag = Arrays.Contains(special_E_VALUES, intValue);
|
||||
SecureRandom random = this.parameters.random;
|
||||
bigInteger = new BigInteger(intValue, 1, random);
|
||||
BigInteger bigInteger2 = bigInteger.Mod(e);
|
||||
int certainty = this.parameters.certainty;
|
||||
if (bigInteger.IsProbablePrime(certainty, true))
|
||||
{
|
||||
if (flag)
|
||||
{
|
||||
break;
|
||||
}
|
||||
BigInteger one = RsaKeyPairGenerator.One;
|
||||
BigInteger bigInteger3 = bigInteger.Subtract(one);
|
||||
if (e.Gcd(bigInteger3) != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return bigInteger;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA76 RID: 47734 RVA: 0x0028A134 File Offset: 0x00288334
|
||||
[Token(Token = "0x600BA76")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public RsaKeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BA77 RID: 47735 RVA: 0x0028A148 File Offset: 0x00288348
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BA77")]
|
||||
[Address(RVA = "0x25C5B90", Offset = "0x25C4B90", VA = "0x1825C5B90")]
|
||||
static RsaKeyPairGenerator()
|
||||
{
|
||||
int[] array = new int[5];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.1D3E73DD251585C4908CBA58A179E1911834C891).FieldHandle);
|
||||
RsaKeyPairGenerator.SPECIAL_E_VALUES = array;
|
||||
int[] special_E_VALUES = RsaKeyPairGenerator.SPECIAL_E_VALUES;
|
||||
int num = special_E_VALUES.Length - 1;
|
||||
RsaKeyPairGenerator.SPECIAL_E_HIGHEST = special_E_VALUES[num];
|
||||
RsaKeyPairGenerator.SPECIAL_E_BITS = BigInteger.ValueOf((long)RsaKeyPairGenerator.SPECIAL_E_HIGHEST).BitLength;
|
||||
RsaKeyPairGenerator.One = BigInteger.One;
|
||||
BigInteger bigInteger;
|
||||
RsaKeyPairGenerator.DefaultPublicExponent = bigInteger;
|
||||
}
|
||||
|
||||
// Token: 0x04007578 RID: 30072
|
||||
[Token(Token = "0x4007578")]
|
||||
private static readonly int[] SPECIAL_E_VALUES;
|
||||
|
||||
// Token: 0x04007579 RID: 30073
|
||||
[Token(Token = "0x4007579")]
|
||||
private static readonly int SPECIAL_E_HIGHEST;
|
||||
|
||||
// Token: 0x0400757A RID: 30074
|
||||
[Token(Token = "0x400757A")]
|
||||
private static readonly int SPECIAL_E_BITS;
|
||||
|
||||
// Token: 0x0400757B RID: 30075
|
||||
[Token(Token = "0x400757B")]
|
||||
protected static readonly BigInteger One;
|
||||
|
||||
// Token: 0x0400757C RID: 30076
|
||||
[Token(Token = "0x400757C")]
|
||||
protected static readonly BigInteger DefaultPublicExponent;
|
||||
|
||||
// Token: 0x0400757D RID: 30077
|
||||
[Token(Token = "0x400757D")]
|
||||
protected const int DefaultTests = 100;
|
||||
|
||||
// Token: 0x0400757E RID: 30078
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400757E")]
|
||||
protected RsaKeyGenerationParameters parameters;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,277 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D5D RID: 7517
|
||||
[Token(Token = "0x2001D5D")]
|
||||
public class SCrypt
|
||||
{
|
||||
// Token: 0x0600BA78 RID: 47736 RVA: 0x0028A1B4 File Offset: 0x002883B4
|
||||
[Token(Token = "0x600BA78")]
|
||||
[Address(RVA = "0x25C5F10", Offset = "0x25C4F10", VA = "0x1825C5F10")]
|
||||
public static byte[] Generate(byte[] P, byte[] S, int N, int r, int p, int dkLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BA78)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators.SCrypt::Generate(System.Byte[],System.Byte[],System.Int32,System.Int32,System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_2D:
|
||||
stloc:ArgumentException(var_4_37, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Cost parameter N must be > 1 and < 65536.")))
|
||||
}
|
||||
|
||||
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.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: 0x0600BA79 RID: 47737 RVA: 0x0028A1FC File Offset: 0x002883FC
|
||||
[Token(Token = "0x600BA79")]
|
||||
[Address(RVA = "0x25C6270", Offset = "0x25C5270", VA = "0x1825C6270")]
|
||||
private static byte[] MFcrypt(byte[] P, byte[] S, int N, int r, int p, int dkLen)
|
||||
{
|
||||
do
|
||||
{
|
||||
int num = 0;
|
||||
byte[] array = SCrypt.SingleIterationPBKDF2(P, S, N);
|
||||
int length = array.Length;
|
||||
uint[] array2 = new uint[length];
|
||||
int num2 = 0;
|
||||
Pack.LE_To_UInt32(array, num2, array2);
|
||||
if (num < length)
|
||||
{
|
||||
num += r;
|
||||
}
|
||||
int num3 = 0;
|
||||
Pack.UInt32_To_LE(array2, array, num3);
|
||||
int num4 = 0;
|
||||
Array[] array3 = new Array[2];
|
||||
if (array != 0)
|
||||
{
|
||||
}
|
||||
array3[0] = array;
|
||||
if (array2 != 0)
|
||||
{
|
||||
}
|
||||
array3[1] = array2;
|
||||
int length2 = array3.Length;
|
||||
if (num4 < length2)
|
||||
{
|
||||
Array array4 = array3[num4];
|
||||
if (array4 != 0)
|
||||
{
|
||||
int num5 = array4.System.Collections.ICollection.Count;
|
||||
int num6 = 0;
|
||||
Array.Clear(array4, num6, num5);
|
||||
}
|
||||
num4++;
|
||||
}
|
||||
}
|
||||
while (r != 0);
|
||||
byte[] array5;
|
||||
return array5;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA7A RID: 47738 RVA: 0x0028A2C0 File Offset: 0x002884C0
|
||||
[Token(Token = "0x600BA7A")]
|
||||
[Address(RVA = "0x25C6A90", Offset = "0x25C5A90", VA = "0x1825C6A90")]
|
||||
private static byte[] SingleIterationPBKDF2(byte[] P, byte[] S, int dkLen)
|
||||
{
|
||||
ICipherParameters cipherParameters;
|
||||
do
|
||||
{
|
||||
string text = new Pkcs5S2ParametersGenerator(new Sha256Digest()).ToString();
|
||||
}
|
||||
while (cipherParameters == 0 || cipherParameters == 0);
|
||||
byte[] array;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA7B RID: 47739 RVA: 0x0028A2F4 File Offset: 0x002884F4
|
||||
[Token(Token = "0x600BA7B")]
|
||||
[Address(RVA = "0x25C64F0", Offset = "0x25C54F0", VA = "0x1825C64F0")]
|
||||
private static void SMix(uint[] B, int BOff, int N, int r)
|
||||
{
|
||||
uint[] array7;
|
||||
do
|
||||
{
|
||||
int num = 0;
|
||||
uint[] array = new uint[0];
|
||||
uint[] array2 = new uint[0];
|
||||
uint[] array3 = new uint[r];
|
||||
uint[] array4 = new uint[r];
|
||||
uint[][] array5 = new uint[r][];
|
||||
if (num < N)
|
||||
{
|
||||
if (array5 != 0 && (array5 == 0 || array5 == 0))
|
||||
{
|
||||
goto IL_144;
|
||||
}
|
||||
array5[0] = num;
|
||||
num++;
|
||||
}
|
||||
if (num < N)
|
||||
{
|
||||
int num2 = array4.Length;
|
||||
uint num3 = array4[num];
|
||||
uint[] array6 = array5[(int)num3];
|
||||
num2--;
|
||||
num++;
|
||||
}
|
||||
int num4 = 0;
|
||||
int length = array5.Length;
|
||||
if (num4 < length)
|
||||
{
|
||||
array7 = array5[num4];
|
||||
if (array7 != 0)
|
||||
{
|
||||
int num5 = 0;
|
||||
Array.Clear(array7, num5, num4);
|
||||
}
|
||||
num4++;
|
||||
}
|
||||
Array[] array8 = new Array[4];
|
||||
if (array4 != 0)
|
||||
{
|
||||
}
|
||||
array8[0] = array4;
|
||||
if (typeof(uint[]).TypeHandle != 0)
|
||||
{
|
||||
}
|
||||
array8[1] = typeof(uint[]).TypeHandle;
|
||||
if (array8 != 0)
|
||||
{
|
||||
}
|
||||
array8[2] = array8;
|
||||
if (array8 != 0)
|
||||
{
|
||||
}
|
||||
array8[3] = array8;
|
||||
int length2 = array8.Length;
|
||||
if (num4 < length2)
|
||||
{
|
||||
Array array9 = array8[num4];
|
||||
if (array9 != 0)
|
||||
{
|
||||
int num6 = array9.System.Collections.ICollection.Count;
|
||||
int num7 = 0;
|
||||
Array.Clear(array9, num7, num6);
|
||||
}
|
||||
num4++;
|
||||
}
|
||||
}
|
||||
while (array7 != 0);
|
||||
return;
|
||||
IL_144:
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BA7C RID: 47740 RVA: 0x0028A494 File Offset: 0x00288694
|
||||
[Token(Token = "0x600BA7C")]
|
||||
[Address(RVA = "0x25C5CE0", Offset = "0x25C4CE0", VA = "0x1825C5CE0")]
|
||||
private static void BlockMix(uint[] B, uint[] X1, uint[] X2, uint[] Y, int r)
|
||||
{
|
||||
int length = B.Length;
|
||||
int num = 0;
|
||||
ulong num2;
|
||||
Array.Copy(B, length, X1, num, (int)num2);
|
||||
int num3 = B.Length;
|
||||
int num4 = 0;
|
||||
int num5 = 0;
|
||||
SCrypt.Xor(X1, B, num4, X2);
|
||||
Salsa20Engine.SalsaCore(8, X2, X1);
|
||||
int num6 = 0;
|
||||
ulong num7;
|
||||
Array.Copy(X1, num6, Y, num5, (int)num7);
|
||||
num3 -= num5;
|
||||
num3 += num4;
|
||||
num4 += 16;
|
||||
int length2 = Y.Length;
|
||||
int num8 = 0;
|
||||
int num9 = 0;
|
||||
Array.Copy(Y, num9, B, num8, (int)num2);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA7D RID: 47741 RVA: 0x0028A51C File Offset: 0x0028871C
|
||||
[Token(Token = "0x600BA7D")]
|
||||
[Address(RVA = "0x25C6C00", Offset = "0x25C5C00", VA = "0x1825C6C00")]
|
||||
private static void Xor(uint[] a, uint[] b, int bOff, uint[] output)
|
||||
{
|
||||
int length = output.Length;
|
||||
uint num = b[bOff];
|
||||
output[0] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA7E RID: 47742 RVA: 0x0028A548 File Offset: 0x00288748
|
||||
[Token(Token = "0x600BA7E")]
|
||||
[Address(RVA = "0x25C5EE0", Offset = "0x25C4EE0", VA = "0x1825C5EE0")]
|
||||
private static void Clear(Array array)
|
||||
{
|
||||
if (array != 0)
|
||||
{
|
||||
int num = array.System.Collections.ICollection.Count;
|
||||
int num2 = 0;
|
||||
Array.Clear(array, num2, num);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA7F RID: 47743 RVA: 0x0028A56C File Offset: 0x0028876C
|
||||
[Token(Token = "0x600BA7F")]
|
||||
[Address(RVA = "0x25C5E60", Offset = "0x25C4E60", VA = "0x1825C5E60")]
|
||||
private static void ClearAll(params Array[] arrays)
|
||||
{
|
||||
int num = 0;
|
||||
int length = arrays.Length;
|
||||
if (num < length)
|
||||
{
|
||||
Array array = arrays[num];
|
||||
if (array != 0)
|
||||
{
|
||||
int num2 = array.System.Collections.ICollection.Count;
|
||||
int num3 = 0;
|
||||
Array.Clear(array, num3, num2);
|
||||
}
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BA80 RID: 47744 RVA: 0x0028A5B0 File Offset: 0x002887B0
|
||||
[Token(Token = "0x600BA80")]
|
||||
[Address(RVA = "0x25C6260", Offset = "0x25C5260", VA = "0x1825C6260")]
|
||||
private static bool IsPowerOf2(int x)
|
||||
{
|
||||
int num = x - 1;
|
||||
return x == num;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA81 RID: 47745 RVA: 0x0028A5C8 File Offset: 0x002887C8
|
||||
[Token(Token = "0x600BA81")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public SCrypt()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D5E RID: 7518
|
||||
[Token(Token = "0x2001D5E")]
|
||||
public class X25519KeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA82 RID: 47746 RVA: 0x0028A5DC File Offset: 0x002887DC
|
||||
[Token(Token = "0x600BA82")]
|
||||
[Address(RVA = "0x1A8F6B0", Offset = "0x1A8E6B0", VA = "0x181A8F6B0", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
SecureRandom secureRandom = parameters.random;
|
||||
this.random = secureRandom;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA83 RID: 47747 RVA: 0x0028A600 File Offset: 0x00288800
|
||||
[Token(Token = "0x600BA83")]
|
||||
[Address(RVA = "0x25CAF70", Offset = "0x25C9F70", VA = "0x1825CAF70", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
X25519PrivateKeyParameters x25519PrivateKeyParameters = new X25519PrivateKeyParameters(this.random);
|
||||
return new AsymmetricCipherKeyPair(x25519PrivateKeyParameters.GeneratePublicKey(), x25519PrivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA84 RID: 47748 RVA: 0x0028A62C File Offset: 0x0028882C
|
||||
[Token(Token = "0x600BA84")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public X25519KeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0400757F RID: 30079
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400757F")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Generators
|
||||
{
|
||||
// Token: 0x02001D5F RID: 7519
|
||||
[Token(Token = "0x2001D5F")]
|
||||
public class X448KeyPairGenerator : IAsymmetricCipherKeyPairGenerator
|
||||
{
|
||||
// Token: 0x0600BA85 RID: 47749 RVA: 0x0028A640 File Offset: 0x00288840
|
||||
[Token(Token = "0x600BA85")]
|
||||
[Address(RVA = "0x1A8F6B0", Offset = "0x1A8E6B0", VA = "0x181A8F6B0", Slot = "6")]
|
||||
public virtual void Init(KeyGenerationParameters parameters)
|
||||
{
|
||||
SecureRandom secureRandom = parameters.random;
|
||||
this.random = secureRandom;
|
||||
}
|
||||
|
||||
// Token: 0x0600BA86 RID: 47750 RVA: 0x0028A664 File Offset: 0x00288864
|
||||
[Token(Token = "0x600BA86")]
|
||||
[Address(RVA = "0x25CB010", Offset = "0x25CA010", VA = "0x1825CB010", Slot = "7")]
|
||||
public virtual AsymmetricCipherKeyPair GenerateKeyPair()
|
||||
{
|
||||
X448PrivateKeyParameters x448PrivateKeyParameters = new X448PrivateKeyParameters(this.random);
|
||||
return new AsymmetricCipherKeyPair(x448PrivateKeyParameters.GeneratePublicKey(), x448PrivateKeyParameters);
|
||||
}
|
||||
|
||||
// Token: 0x0600BA87 RID: 47751 RVA: 0x0028A690 File Offset: 0x00288890
|
||||
[Token(Token = "0x600BA87")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
public X448KeyPairGenerator()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x04007580 RID: 30080
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4007580")]
|
||||
private SecureRandom random;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user