m
This commit is contained in:
+270
@@ -0,0 +1,270 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings
|
||||
{
|
||||
// Token: 0x02001D9C RID: 7580
|
||||
[Token(Token = "0x2001D9C")]
|
||||
public class ISO9796d1Encoding : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600BD35 RID: 48437 RVA: 0x002A2DEC File Offset: 0x002A0FEC
|
||||
[Token(Token = "0x600BD35")]
|
||||
[Address(RVA = "0x493D90", Offset = "0x492D90", VA = "0x180493D90")]
|
||||
public ISO9796d1Encoding(IAsymmetricBlockCipher cipher)
|
||||
{
|
||||
this.engine = cipher;
|
||||
}
|
||||
|
||||
// Token: 0x17001DA0 RID: 7584
|
||||
// (get) Token: 0x0600BD36 RID: 48438 RVA: 0x002A2E08 File Offset: 0x002A1008
|
||||
[Token(Token = "0x17001DA0")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD36")]
|
||||
[Address(RVA = "0x249F640", Offset = "0x249E640", VA = "0x18249F640", Slot = "4")]
|
||||
get
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
return 0 + "/ISO9796-1Padding";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD37 RID: 48439 RVA: 0x002A2E30 File Offset: 0x002A1030
|
||||
[Token(Token = "0x600BD37")]
|
||||
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530")]
|
||||
public IAsymmetricBlockCipher GetUnderlyingCipher()
|
||||
{
|
||||
return this.engine;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD38 RID: 48440 RVA: 0x002A2E44 File Offset: 0x002A1044
|
||||
[Token(Token = "0x600BD38")]
|
||||
[Address(RVA = "0x249F2C0", Offset = "0x249E2C0", VA = "0x18249F2C0", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
while (parameters != 0)
|
||||
{
|
||||
if ((parameters != 0 || parameters != 0) && parameters != 0 && parameters != 0)
|
||||
{
|
||||
if (parameters == 0)
|
||||
{
|
||||
IL_2A:
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
this.modulus = (uint)1;
|
||||
this.forEncryption = forEncryption;
|
||||
int num;
|
||||
this.bitSize = num;
|
||||
return;
|
||||
}
|
||||
if (parameters != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
goto IL_2A;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD39 RID: 48441 RVA: 0x002A2EA0 File Offset: 0x002A10A0
|
||||
[Token(Token = "0x600BD39")]
|
||||
[Address(RVA = "0x249F200", Offset = "0x249E200", VA = "0x18249F200", Slot = "6")]
|
||||
public int GetInputBlockSize()
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (this.inverse != (ulong)0L)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD3A RID: 48442 RVA: 0x002A2EC4 File Offset: 0x002A10C4
|
||||
[Token(Token = "0x600BD3A")]
|
||||
[Address(RVA = "0x249F260", Offset = "0x249E260", VA = "0x18249F260", Slot = "7")]
|
||||
public int GetOutputBlockSize()
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (this.inverse == (ulong)0L)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD3B RID: 48443 RVA: 0x002A2EE8 File Offset: 0x002A10E8
|
||||
[Token(Token = "0x600BD3B")]
|
||||
[Address(RVA = "0x249F4E0", Offset = "0x249E4E0", VA = "0x18249F4E0")]
|
||||
public void SetPadBits(int padBits)
|
||||
{
|
||||
this.padBits = padBits;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD3C RID: 48444 RVA: 0x002A2F08 File Offset: 0x002A1108
|
||||
[Token(Token = "0x600BD3C")]
|
||||
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70")]
|
||||
public int GetPadBits()
|
||||
{
|
||||
return this.padBits;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD3D RID: 48445 RVA: 0x002A2F1C File Offset: 0x002A111C
|
||||
[Token(Token = "0x600BD3D")]
|
||||
[Address(RVA = "0x249F4B0", Offset = "0x249E4B0", VA = "0x18249F4B0", Slot = "8")]
|
||||
public byte[] ProcessBlock(byte[] input, int inOff, int length)
|
||||
{
|
||||
if (this.inverse == (ulong)0L)
|
||||
{
|
||||
return this.DecodeBlock(input, inOff, length);
|
||||
}
|
||||
return this.EncodeBlock(input, inOff, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600BD3E RID: 48446 RVA: 0x002A2F48 File Offset: 0x002A1148
|
||||
[Token(Token = "0x600BD3E")]
|
||||
[Address(RVA = "0x249EE70", Offset = "0x249DE70", VA = "0x18249EE70")]
|
||||
private byte[] EncodeBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
int num = this.bitSize;
|
||||
num += 7;
|
||||
byte[] array = new byte[input];
|
||||
int num2 = this.padBits;
|
||||
int num3 = this.bitSize;
|
||||
num2++;
|
||||
num3 += 13;
|
||||
int num4 = 0;
|
||||
num3 += input;
|
||||
if (num3 > 0)
|
||||
{
|
||||
num3 -= inLen;
|
||||
int num5 = array.Length;
|
||||
num5 -= num4;
|
||||
num5 -= inLen;
|
||||
int num6 = array.Length;
|
||||
num6 -= inLen;
|
||||
num4 += inLen;
|
||||
num3 = inLen - inLen;
|
||||
}
|
||||
int num7 = array.Length;
|
||||
num7 -= num3;
|
||||
int length = array.Length;
|
||||
int num8;
|
||||
if (num7 != length)
|
||||
{
|
||||
num3 = num7;
|
||||
num3 -= 0;
|
||||
num3 -= num3;
|
||||
num8 = ISO9796d1Encoding.shadows.Length;
|
||||
num8 = num7;
|
||||
num8++;
|
||||
num7 += 2;
|
||||
}
|
||||
byte b;
|
||||
num8 -= (int)b;
|
||||
int length2 = array.Length;
|
||||
if (length2 - 1 < length2)
|
||||
{
|
||||
}
|
||||
uint num9;
|
||||
byte b2;
|
||||
num9 -= (uint)b2;
|
||||
int length3 = array.Length;
|
||||
if (num9 == (uint)8)
|
||||
{
|
||||
array[0] = (byte)((ulong)0L);
|
||||
}
|
||||
uint num10;
|
||||
array[0] = (byte)num10;
|
||||
uint num11;
|
||||
array[0] = (byte)num11;
|
||||
int num12 = 0;
|
||||
int num13 = array.Length;
|
||||
num13 -= num12;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD3F RID: 48447 RVA: 0x002A3060 File Offset: 0x002A1260
|
||||
[Token(Token = "0x600BD3F")]
|
||||
[Address(RVA = "0x249E870", Offset = "0x249D870", VA = "0x18249E870")]
|
||||
private byte[] DecodeBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD3F)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.ISO9796d1Encoding::DecodeBlock(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_140:
|
||||
stloc:InvalidCipherTextException(var_33_14A, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("resulting integer iS or (modulus - iS) is not congruent to 6 mod 16")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD40 RID: 48448 RVA: 0x002A31B8 File Offset: 0x002A13B8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600BD40")]
|
||||
[Address(RVA = "0x249F550", Offset = "0x249E550", VA = "0x18249F550")]
|
||||
static ISO9796d1Encoding()
|
||||
{
|
||||
BigInteger bigInteger;
|
||||
ISO9796d1Encoding.Sixteen = bigInteger;
|
||||
BigInteger bigInteger2;
|
||||
ISO9796d1Encoding.Six = bigInteger2;
|
||||
byte[] array = new byte[16];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.27C3AB82CCA6CE2F199F4F670BF19513A3825B87).FieldHandle);
|
||||
ISO9796d1Encoding.shadows = array;
|
||||
byte[] array2 = new byte[16];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.30F65A149AF7DE938A9287048498B966AEBE54D4).FieldHandle);
|
||||
ISO9796d1Encoding.inverse = array2;
|
||||
}
|
||||
|
||||
// Token: 0x040077BB RID: 30651
|
||||
[Token(Token = "0x40077BB")]
|
||||
private static readonly BigInteger Sixteen;
|
||||
|
||||
// Token: 0x040077BC RID: 30652
|
||||
[Token(Token = "0x40077BC")]
|
||||
private static readonly BigInteger Six;
|
||||
|
||||
// Token: 0x040077BD RID: 30653
|
||||
[Token(Token = "0x40077BD")]
|
||||
private static readonly byte[] shadows;
|
||||
|
||||
// Token: 0x040077BE RID: 30654
|
||||
[Token(Token = "0x40077BE")]
|
||||
private static readonly byte[] inverse;
|
||||
|
||||
// Token: 0x040077BF RID: 30655
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40077BF")]
|
||||
private readonly IAsymmetricBlockCipher engine;
|
||||
|
||||
// Token: 0x040077C0 RID: 30656
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40077C0")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040077C1 RID: 30657
|
||||
[FieldOffset(Offset = "0x1C")]
|
||||
[Token(Token = "0x40077C1")]
|
||||
private int bitSize;
|
||||
|
||||
// Token: 0x040077C2 RID: 30658
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40077C2")]
|
||||
private int padBits;
|
||||
|
||||
// Token: 0x040077C3 RID: 30659
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40077C3")]
|
||||
private BigInteger modulus;
|
||||
}
|
||||
}
|
||||
+360
@@ -0,0 +1,360 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings
|
||||
{
|
||||
// Token: 0x02001D9D RID: 7581
|
||||
[Token(Token = "0x2001D9D")]
|
||||
public class OaepEncoding : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x0600BD41 RID: 48449 RVA: 0x002A3204 File Offset: 0x002A1404
|
||||
[Token(Token = "0x600BD41")]
|
||||
[Address(RVA = "0x24A0190", Offset = "0x249F190", VA = "0x1824A0190")]
|
||||
public OaepEncoding(IAsymmetricBlockCipher cipher)
|
||||
{
|
||||
Sha1Digest sha1Digest = new Sha1Digest();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD42 RID: 48450 RVA: 0x002A3218 File Offset: 0x002A1418
|
||||
[Token(Token = "0x600BD42")]
|
||||
[Address(RVA = "0x24A0170", Offset = "0x249F170", VA = "0x1824A0170")]
|
||||
public OaepEncoding(IAsymmetricBlockCipher cipher, IDigest hash)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600BD43 RID: 48451 RVA: 0x002A3228 File Offset: 0x002A1428
|
||||
[Token(Token = "0x600BD43")]
|
||||
[Address(RVA = "0x24A0210", Offset = "0x249F210", VA = "0x1824A0210")]
|
||||
public OaepEncoding(IAsymmetricBlockCipher cipher, IDigest hash, byte[] encodingParams)
|
||||
{
|
||||
this.engine = cipher;
|
||||
this.mgf1Hash = hash;
|
||||
byte[] array = new byte[0];
|
||||
this.defHash = array;
|
||||
if (encodingParams != 0)
|
||||
{
|
||||
int length = encodingParams.Length;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD44 RID: 48452 RVA: 0x002A326C File Offset: 0x002A146C
|
||||
[Token(Token = "0x600BD44")]
|
||||
[Address(RVA = "0x24A0080", Offset = "0x249F080", VA = "0x1824A0080")]
|
||||
public OaepEncoding(IAsymmetricBlockCipher cipher, IDigest hash, IDigest mgf1Hash, byte[] encodingParams)
|
||||
{
|
||||
this.engine = cipher;
|
||||
this.mgf1Hash = mgf1Hash;
|
||||
byte[] array = new byte[0];
|
||||
this.defHash = array;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD45 RID: 48453 RVA: 0x002A32A4 File Offset: 0x002A14A4
|
||||
[Token(Token = "0x600BD45")]
|
||||
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
|
||||
public IAsymmetricBlockCipher GetUnderlyingCipher()
|
||||
{
|
||||
return this.engine;
|
||||
}
|
||||
|
||||
// Token: 0x17001DA1 RID: 7585
|
||||
// (get) Token: 0x0600BD46 RID: 48454 RVA: 0x002A32B8 File Offset: 0x002A14B8
|
||||
[Token(Token = "0x17001DA1")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD46")]
|
||||
[Address(RVA = "0x24A0300", Offset = "0x249F300", VA = "0x1824A0300", Slot = "4")]
|
||||
get
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
return 0 + "/OAEPPadding";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD47 RID: 48455 RVA: 0x002A32E0 File Offset: 0x002A14E0
|
||||
[Token(Token = "0x600BD47")]
|
||||
[Address(RVA = "0x249FF30", Offset = "0x249EF30", VA = "0x18249FF30", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters param)
|
||||
{
|
||||
while (param != 0 && param != 0 && param == 0)
|
||||
{
|
||||
}
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
this.random = secureRandom;
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
this.forEncryption = forEncryption;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD48 RID: 48456 RVA: 0x002A3320 File Offset: 0x002A1520
|
||||
[Token(Token = "0x600BD48")]
|
||||
[Address(RVA = "0x249FE50", Offset = "0x249EE50", VA = "0x18249FE50", Slot = "6")]
|
||||
public int GetInputBlockSize()
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
int num = this.defHash.Length;
|
||||
num += num;
|
||||
uint num2;
|
||||
num2 -= (uint)num;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD49 RID: 48457 RVA: 0x002A3358 File Offset: 0x002A1558
|
||||
[Token(Token = "0x600BD49")]
|
||||
[Address(RVA = "0x249FEC0", Offset = "0x249EEC0", VA = "0x18249FEC0", Slot = "7")]
|
||||
public int GetOutputBlockSize()
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
int num = this.defHash.Length;
|
||||
num += num;
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD4A RID: 48458 RVA: 0x002A338C File Offset: 0x002A158C
|
||||
[Token(Token = "0x600BD4A")]
|
||||
[Address(RVA = "0x24A0050", Offset = "0x249F050", VA = "0x1824A0050", Slot = "8")]
|
||||
public byte[] ProcessBlock(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
return this.DecodeBlock(inBytes, inOff, inLen);
|
||||
}
|
||||
return this.EncodeBlock(inBytes, inOff, inLen);
|
||||
}
|
||||
|
||||
// Token: 0x0600BD4B RID: 48459 RVA: 0x002A33B8 File Offset: 0x002A15B8
|
||||
[Token(Token = "0x600BD4B")]
|
||||
[Address(RVA = "0x249FAB0", Offset = "0x249EAB0", VA = "0x18249FAB0")]
|
||||
private byte[] EncodeBlock(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
uint num2;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
int num = this.defHash.Length;
|
||||
num += num;
|
||||
num2 -= (uint)num;
|
||||
}
|
||||
Check.DataLength(inLen > (int)num2, "input data too long");
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.engine;
|
||||
byte[] array = this.defHash;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
int num3 = array.Length;
|
||||
num3 += num3;
|
||||
}
|
||||
int num4 = array.Length;
|
||||
num4 += num4;
|
||||
num4++;
|
||||
byte[] array2 = new byte[0];
|
||||
int num5 = array2.Length;
|
||||
int num6 = 0;
|
||||
num5 -= inLen;
|
||||
Array.Copy(inBytes, inOff, array2, num5, inLen);
|
||||
int num7 = array2.Length;
|
||||
num7 -= inLen;
|
||||
byte[] array3 = this.defHash;
|
||||
int length = array3.Length;
|
||||
int num8 = 0;
|
||||
Array.Copy(array3, num8, array2, length, length);
|
||||
byte[] array4 = this.defHash;
|
||||
SecureRandom secureRandom = this.random;
|
||||
int length2 = array4.Length;
|
||||
byte[] nextBytes = SecureRandom.GetNextBytes(secureRandom, length2);
|
||||
byte[] array5 = this.defHash;
|
||||
int length3 = array2.Length;
|
||||
int num9 = 0;
|
||||
int length4 = nextBytes.Length;
|
||||
byte[] array6 = this.maskGeneratorFunction1(nextBytes, num9, length4, length3);
|
||||
int num10 = this.defHash.Length;
|
||||
if (num10 != array2.Length)
|
||||
{
|
||||
byte[] array7 = this.defHash;
|
||||
num10++;
|
||||
}
|
||||
int length5 = this.defHash.Length;
|
||||
int num11 = 0;
|
||||
int num12 = 0;
|
||||
Array.Copy(nextBytes, num12, array2, num11, length5);
|
||||
int length6 = this.defHash.Length;
|
||||
int num13 = array2.Length;
|
||||
num13 -= length6;
|
||||
byte[] array8 = this.maskGeneratorFunction1(array2, length6, num13, length6);
|
||||
byte[] array9 = this.defHash;
|
||||
if (num6 != array9.Length)
|
||||
{
|
||||
num6++;
|
||||
byte[] array10 = this.defHash;
|
||||
}
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher3 = this.engine;
|
||||
int length7 = array2.Length;
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD4C RID: 48460 RVA: 0x002A3590 File Offset: 0x002A1790
|
||||
[Token(Token = "0x600BD4C")]
|
||||
[Address(RVA = "0x249F6A0", Offset = "0x249E6A0", VA = "0x18249F6A0")]
|
||||
private byte[] DecodeBlock(byte[] inBytes, int inOff, int inLen)
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.engine;
|
||||
byte[] array = new byte[0];
|
||||
int length = this.defHash.Length;
|
||||
int num = array.Length;
|
||||
num -= typeof(IAsymmetricBlockCipher).TypeHandle;
|
||||
int num2 = 0;
|
||||
int length2 = this.defHash.Length;
|
||||
int num3 = array.Length;
|
||||
num3 -= length2;
|
||||
byte[] array2 = this.maskGeneratorFunction1(array, length2, num3, length2);
|
||||
byte[] array3 = this.defHash;
|
||||
byte[] array4;
|
||||
if (num2 != array3.Length)
|
||||
{
|
||||
num2++;
|
||||
array4 = this.defHash;
|
||||
}
|
||||
int num4 = array.Length;
|
||||
int num5 = 0;
|
||||
int length3 = array4.Length;
|
||||
num4 -= length3;
|
||||
byte[] array5 = this.maskGeneratorFunction1(array, num5, length3, num4);
|
||||
int num6 = this.defHash.Length;
|
||||
int num7 = array.Length;
|
||||
if (num6 != num7)
|
||||
{
|
||||
byte[] array6 = this.defHash;
|
||||
num7 = num6;
|
||||
num6++;
|
||||
}
|
||||
int length4 = this.defHash.Length;
|
||||
if (num2 != length4)
|
||||
{
|
||||
num2++;
|
||||
}
|
||||
if (num2 != num7)
|
||||
{
|
||||
num2++;
|
||||
bool flag = num7 == num7;
|
||||
}
|
||||
num7++;
|
||||
int num8 = num7 - 1;
|
||||
num7 -= num7;
|
||||
byte[] array7 = new byte[num7];
|
||||
int length5 = array7.Length;
|
||||
int num9 = 0;
|
||||
Array.Copy(array, num7, array7, num9, length5);
|
||||
return array7;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD4D RID: 48461 RVA: 0x002A36EC File Offset: 0x002A18EC
|
||||
[Token(Token = "0x600BD4D")]
|
||||
[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: 0x0600BD4E RID: 48462 RVA: 0x002A3720 File Offset: 0x002A1920
|
||||
[Token(Token = "0x600BD4E")]
|
||||
[Address(RVA = "0x24A0360", Offset = "0x249F360", VA = "0x1824A0360")]
|
||||
private byte[] maskGeneratorFunction1(byte[] Z, int zOff, int zLen, int length)
|
||||
{
|
||||
byte[] array = new byte[0];
|
||||
IDigest digest = this.mgf1Hash;
|
||||
byte[] array2 = new byte[array];
|
||||
byte[] array3 = new byte[4];
|
||||
IDigest digest2 = this.mgf1Hash;
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
int length2 = array2.Length;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
IDigest digest3 = this.mgf1Hash;
|
||||
if (num2 < num2)
|
||||
{
|
||||
num2 += num2;
|
||||
num2++;
|
||||
}
|
||||
IDigest digest4 = this.mgf1Hash;
|
||||
int num3 = 0;
|
||||
num3 += num3;
|
||||
num3++;
|
||||
int num4 = 0;
|
||||
IDigest digest5 = this.mgf1Hash;
|
||||
int num5 = 0;
|
||||
if (num5 < num4)
|
||||
{
|
||||
num5 += num5;
|
||||
num5++;
|
||||
}
|
||||
int num6 = array2.Length;
|
||||
int num7 = num6 * num;
|
||||
int num8 = 0;
|
||||
Array.Copy(array2, num8, array, num7, num6);
|
||||
num++;
|
||||
num8 += num8;
|
||||
num6 += 4;
|
||||
num6 += 19;
|
||||
num8 += num8;
|
||||
num6 += 4;
|
||||
num6 += 19;
|
||||
num8 += num8;
|
||||
num6 += 5;
|
||||
num6 += 19;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
IDigest digest6 = this.mgf1Hash;
|
||||
IDigest digest7 = this.mgf1Hash;
|
||||
int length3 = array3.Length;
|
||||
IDigest digest8 = this.mgf1Hash;
|
||||
int length4 = array2.Length;
|
||||
int num9 = array.Length;
|
||||
int num10 = 0;
|
||||
int num11 = length4 * num;
|
||||
num9 -= num11;
|
||||
Array.Copy(array2, num10, array, num11, num9);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x040077C4 RID: 30660
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40077C4")]
|
||||
private byte[] defHash;
|
||||
|
||||
// Token: 0x040077C5 RID: 30661
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40077C5")]
|
||||
private IDigest mgf1Hash;
|
||||
|
||||
// Token: 0x040077C6 RID: 30662
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40077C6")]
|
||||
private IAsymmetricBlockCipher engine;
|
||||
|
||||
// Token: 0x040077C7 RID: 30663
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40077C7")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x040077C8 RID: 30664
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40077C8")]
|
||||
private bool forEncryption;
|
||||
}
|
||||
}
|
||||
+355
@@ -0,0 +1,355 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings
|
||||
{
|
||||
// Token: 0x02001D9E RID: 7582
|
||||
[Token(Token = "0x2001D9E")]
|
||||
public class Pkcs1Encoding : IAsymmetricBlockCipher
|
||||
{
|
||||
// Token: 0x17001DA2 RID: 7586
|
||||
// (get) Token: 0x0600BD4F RID: 48463 RVA: 0x002A38C0 File Offset: 0x002A1AC0
|
||||
// (set) Token: 0x0600BD50 RID: 48464 RVA: 0x002A38E8 File Offset: 0x002A1AE8
|
||||
[Token(Token = "0x17001DA2")]
|
||||
public static bool StrictLengthEnabled
|
||||
{
|
||||
[Token(Token = "0x600BD4F")]
|
||||
[Address(RVA = "0x24A1900", Offset = "0x24A0900", VA = "0x1824A1900")]
|
||||
get
|
||||
{
|
||||
bool[] array = Pkcs1Encoding.strictLengthEnabled;
|
||||
return "{il2cpp array field local0->}" != (ulong)0L;
|
||||
}
|
||||
[Token(Token = "0x600BD50")]
|
||||
[Address(RVA = "0x24A1980", Offset = "0x24A0980", VA = "0x1824A1980")]
|
||||
set
|
||||
{
|
||||
Pkcs1Encoding.strictLengthEnabled[0] = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD51 RID: 48465 RVA: 0x002A3908 File Offset: 0x002A1B08
|
||||
[Token(Token = "0x600BD51")]
|
||||
[Address(RVA = "0x24A1620", Offset = "0x24A0620", VA = "0x1824A1620")]
|
||||
static Pkcs1Encoding()
|
||||
{
|
||||
string environmentVariable = Platform.GetEnvironmentVariable("BestHTTP.SecureProtocol.Org.BouncyCastle.Pkcs1.Strict");
|
||||
bool[] array = new bool[1];
|
||||
if (environmentVariable == 0)
|
||||
{
|
||||
}
|
||||
bool flag = environmentVariable.Equals("true");
|
||||
array[0] = flag;
|
||||
Pkcs1Encoding.strictLengthEnabled = array;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD52 RID: 48466 RVA: 0x002A394C File Offset: 0x002A1B4C
|
||||
[Token(Token = "0x600BD52")]
|
||||
[Address(RVA = "0x24A1820", Offset = "0x24A0820", VA = "0x1824A1820")]
|
||||
public Pkcs1Encoding(IAsymmetricBlockCipher cipher)
|
||||
{
|
||||
this.engine = cipher;
|
||||
bool flag = Pkcs1Encoding.StrictLengthEnabled;
|
||||
this.useStrictLength = flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD53 RID: 48467 RVA: 0x002A3988 File Offset: 0x002A1B88
|
||||
[Token(Token = "0x600BD53")]
|
||||
[Address(RVA = "0x24A16F0", Offset = "0x24A06F0", VA = "0x1824A16F0")]
|
||||
public Pkcs1Encoding(IAsymmetricBlockCipher cipher, int pLen)
|
||||
{
|
||||
this.engine = cipher;
|
||||
bool flag = Pkcs1Encoding.StrictLengthEnabled;
|
||||
this.pLen = pLen;
|
||||
this.useStrictLength = flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD54 RID: 48468 RVA: 0x002A39C8 File Offset: 0x002A1BC8
|
||||
[Token(Token = "0x600BD54")]
|
||||
[Address(RVA = "0x24A1780", Offset = "0x24A0780", VA = "0x1824A1780")]
|
||||
public Pkcs1Encoding(IAsymmetricBlockCipher cipher, byte[] fallback)
|
||||
{
|
||||
this.engine = cipher;
|
||||
bool flag = Pkcs1Encoding.StrictLengthEnabled;
|
||||
this.useStrictLength = flag;
|
||||
this.fallback = fallback;
|
||||
int length = fallback.Length;
|
||||
this.pLen = length;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD55 RID: 48469 RVA: 0x002A3A1C File Offset: 0x002A1C1C
|
||||
[Token(Token = "0x600BD55")]
|
||||
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
|
||||
public IAsymmetricBlockCipher GetUnderlyingCipher()
|
||||
{
|
||||
return this.engine;
|
||||
}
|
||||
|
||||
// Token: 0x17001DA3 RID: 7587
|
||||
// (get) Token: 0x0600BD56 RID: 48470 RVA: 0x002A3A30 File Offset: 0x002A1C30
|
||||
[Token(Token = "0x17001DA3")]
|
||||
public string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600BD56")]
|
||||
[Address(RVA = "0x24A18A0", Offset = "0x24A08A0", VA = "0x1824A18A0", Slot = "4")]
|
||||
get
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
return 0 + "/PKCS1Padding";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600BD57 RID: 48471 RVA: 0x002A3A58 File Offset: 0x002A1C58
|
||||
[Token(Token = "0x600BD57")]
|
||||
[Address(RVA = "0x24A1380", Offset = "0x24A0380", VA = "0x1824A1380", Slot = "5")]
|
||||
public void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD57)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_84:
|
||||
stloc:ArgumentException(var_8_8E, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("encoder requires random")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD58 RID: 48472 RVA: 0x002A3AF4 File Offset: 0x002A1CF4
|
||||
[Token(Token = "0x600BD58")]
|
||||
[Address(RVA = "0x24A12C0", Offset = "0x24A02C0", VA = "0x1824A12C0", Slot = "6")]
|
||||
public int GetInputBlockSize()
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD59 RID: 48473 RVA: 0x002A3B18 File Offset: 0x002A1D18
|
||||
[Token(Token = "0x600BD59")]
|
||||
[Address(RVA = "0x24A1320", Offset = "0x24A0320", VA = "0x1824A1320", Slot = "7")]
|
||||
public int GetOutputBlockSize()
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (!this.forEncryption)
|
||||
{
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD5A RID: 48474 RVA: 0x002A3B3C File Offset: 0x002A1D3C
|
||||
[Token(Token = "0x600BD5A")]
|
||||
[Address(RVA = "0x24A15F0", Offset = "0x24A05F0", VA = "0x1824A15F0", Slot = "8")]
|
||||
public byte[] ProcessBlock(byte[] input, int inOff, int length)
|
||||
{
|
||||
if (this.forEncryption)
|
||||
{
|
||||
return this.EncodeBlock(input, inOff, length);
|
||||
}
|
||||
return this.DecodeBlock(input, inOff, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600BD5B RID: 48475 RVA: 0x002A3B68 File Offset: 0x002A1D68
|
||||
[Token(Token = "0x600BD5B")]
|
||||
[Address(RVA = "0x24A0F40", Offset = "0x249FF40", VA = "0x1824A0F40")]
|
||||
private byte[] EncodeBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.engine;
|
||||
if (this.forEncryption)
|
||||
{
|
||||
}
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher2 = this.engine;
|
||||
byte[] array = new byte[0];
|
||||
if (!this.forPrivateKey)
|
||||
{
|
||||
double num = this.random.NextDouble();
|
||||
array[0] = (byte)((ulong)2L);
|
||||
int num2 = array.Length;
|
||||
num2 -= inLen;
|
||||
uint num3;
|
||||
if (num3 == (uint)num2)
|
||||
{
|
||||
goto IL_83;
|
||||
}
|
||||
int length = array.Length;
|
||||
SecureRandom secureRandom = this.random;
|
||||
num3 += (uint)1;
|
||||
}
|
||||
int num4 = array.Length;
|
||||
num4 -= inLen;
|
||||
uint num5;
|
||||
if (num5 != (uint)num4)
|
||||
{
|
||||
num5 += (uint)1;
|
||||
}
|
||||
IL_83:
|
||||
num4 -= inLen;
|
||||
int num6 = num4 - 1;
|
||||
int num7 = array.Length;
|
||||
num7 -= inLen;
|
||||
num4 = inOff;
|
||||
Array.Copy(input, num4, array, num7, inLen);
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher3 = this.engine;
|
||||
int length2 = array.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD5C RID: 48476 RVA: 0x002A3C3C File Offset: 0x002A1E3C
|
||||
[Token(Token = "0x600BD5C")]
|
||||
[Address(RVA = "0x24A0830", Offset = "0x249F830", VA = "0x1824A0830")]
|
||||
private static int CheckPkcs1Encoding(byte[] encoded, int pLen)
|
||||
{
|
||||
int num = encoded.Length;
|
||||
num -= pLen;
|
||||
uint num2;
|
||||
if (num - 1 > (int)num2)
|
||||
{
|
||||
num2 += (uint)1;
|
||||
}
|
||||
int num3 = num - 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600BD5D RID: 48477 RVA: 0x002A3C68 File Offset: 0x002A1E68
|
||||
[Token(Token = "0x600BD5D")]
|
||||
[Address(RVA = "0x24A0920", Offset = "0x249F920", VA = "0x1824A0920")]
|
||||
private byte[] DecodeBlockOrRandom(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD5D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding::DecodeBlockOrRandom(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_C7:
|
||||
stloc:InvalidCipherTextException(var_18_D1, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("sorry, this method is only for decryption, not for signing")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD5E RID: 48478 RVA: 0x002A3D48 File Offset: 0x002A1F48
|
||||
[Token(Token = "0x600BD5E")]
|
||||
[Address(RVA = "0x24A0C30", Offset = "0x249FC30", VA = "0x1824A0C30")]
|
||||
private byte[] DecodeBlock(byte[] input, int inOff, int inLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600BD5E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding::DecodeBlock(System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_C5:
|
||||
stloc:InvalidCipherTextException(var_20_CF, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("block incorrect size")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600BD5F RID: 48479 RVA: 0x002A3E28 File Offset: 0x002A2028
|
||||
[Token(Token = "0x600BD5F")]
|
||||
[Address(RVA = "0x24A1210", Offset = "0x24A0210", VA = "0x1824A1210")]
|
||||
private int FindStart(byte type, byte[] block)
|
||||
{
|
||||
int length = block.Length;
|
||||
if ((uint)1 != (uint)length)
|
||||
{
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Token: 0x040077C9 RID: 30665
|
||||
[Token(Token = "0x40077C9")]
|
||||
public const string StrictLengthEnabledProperty = "BestHTTP.SecureProtocol.Org.BouncyCastle.Pkcs1.Strict";
|
||||
|
||||
// Token: 0x040077CA RID: 30666
|
||||
[Token(Token = "0x40077CA")]
|
||||
private const int HeaderLength = 10;
|
||||
|
||||
// Token: 0x040077CB RID: 30667
|
||||
[Token(Token = "0x40077CB")]
|
||||
private static readonly bool[] strictLengthEnabled;
|
||||
|
||||
// Token: 0x040077CC RID: 30668
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40077CC")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x040077CD RID: 30669
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40077CD")]
|
||||
private IAsymmetricBlockCipher engine;
|
||||
|
||||
// Token: 0x040077CE RID: 30670
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40077CE")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040077CF RID: 30671
|
||||
[FieldOffset(Offset = "0x21")]
|
||||
[Token(Token = "0x40077CF")]
|
||||
private bool forPrivateKey;
|
||||
|
||||
// Token: 0x040077D0 RID: 30672
|
||||
[FieldOffset(Offset = "0x22")]
|
||||
[Token(Token = "0x40077D0")]
|
||||
private bool useStrictLength;
|
||||
|
||||
// Token: 0x040077D1 RID: 30673
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40077D1")]
|
||||
private int pLen = (int)((ulong)4294967295L);
|
||||
|
||||
// Token: 0x040077D2 RID: 30674
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40077D2")]
|
||||
private byte[] fallback;
|
||||
|
||||
// Token: 0x040077D3 RID: 30675
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40077D3")]
|
||||
private byte[] blockBuffer;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user