m
This commit is contained in:
+645
@@ -0,0 +1,645 @@
|
||||
using System;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Signers
|
||||
{
|
||||
// Token: 0x02001C94 RID: 7316
|
||||
[Token(Token = "0x2001C94")]
|
||||
public class Iso9796d2PssSigner : ISignerWithRecovery, ISigner
|
||||
{
|
||||
// Token: 0x0600B50C RID: 46348 RVA: 0x00271900 File Offset: 0x0026FB00
|
||||
[Token(Token = "0x600B50C")]
|
||||
[Address(RVA = "0x417720", Offset = "0x416720", VA = "0x180417720", Slot = "5")]
|
||||
public byte[] GetRecoveredMessage()
|
||||
{
|
||||
return this.recoveredMessage;
|
||||
}
|
||||
|
||||
// Token: 0x0600B50D RID: 46349 RVA: 0x00271914 File Offset: 0x0026FB14
|
||||
[Token(Token = "0x600B50D")]
|
||||
[Address(RVA = "0x2360800", Offset = "0x235F800", VA = "0x182360800")]
|
||||
public Iso9796d2PssSigner(IAsymmetricBlockCipher cipher, IDigest digest, int saltLength, bool isImplicit)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B50D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Signers.Iso9796d2PssSigner::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IAsymmetricBlockCipher,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Int32,System.Boolean)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_46:
|
||||
stloc:ArgumentException(var_1_55, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("no valid trailer"), ldstr:string("digest")))
|
||||
}
|
||||
|
||||
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: 0x0600B50E RID: 46350 RVA: 0x00271978 File Offset: 0x0026FB78
|
||||
[Token(Token = "0x600B50E")]
|
||||
[Address(RVA = "0x23606E0", Offset = "0x235F6E0", VA = "0x1823606E0")]
|
||||
public Iso9796d2PssSigner(IAsymmetricBlockCipher cipher, IDigest digest, int saltLength)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B50E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Signers.Iso9796d2PssSigner::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IAsymmetricBlockCipher,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_39:
|
||||
stloc:ArgumentException(var_1_48, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("no valid trailer"), ldstr:string("digest")))
|
||||
}
|
||||
|
||||
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: 0x17001C86 RID: 7302
|
||||
// (get) Token: 0x0600B50F RID: 46351 RVA: 0x002719D0 File Offset: 0x0026FBD0
|
||||
[Token(Token = "0x17001C86")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B50F")]
|
||||
[Address(RVA = "0x2360930", Offset = "0x235F930", VA = "0x182360930", Slot = "14")]
|
||||
get
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
return 0 + "withISO9796-2S2";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B510 RID: 46352 RVA: 0x002719F8 File Offset: 0x0026FBF8
|
||||
[Token(Token = "0x600B510")]
|
||||
[Address(RVA = "0x235F1F0", Offset = "0x235E1F0", VA = "0x18235F1F0", Slot = "15")]
|
||||
public virtual void Init(bool forSigning, ICipherParameters parameters)
|
||||
{
|
||||
while (parameters != 0)
|
||||
{
|
||||
if (parameters == 0)
|
||||
{
|
||||
if ((parameters == 0 && parameters == 0) || !forSigning)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
int num = 0;
|
||||
if (parameters == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
this.standardSalt = num;
|
||||
int num2 = this.saltLength;
|
||||
}
|
||||
if (parameters != 0)
|
||||
{
|
||||
int num3 = 0;
|
||||
if (forSigning)
|
||||
{
|
||||
this.random = num3;
|
||||
break;
|
||||
}
|
||||
IL_5B:
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
|
||||
int num4 = 0;
|
||||
int num5;
|
||||
this.keyBits = num5;
|
||||
num5 += 7;
|
||||
num4 += num5;
|
||||
byte[] array = new byte[num4];
|
||||
this.block = array;
|
||||
if (this.trailer != 188)
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
int num6 = array.Length;
|
||||
num6 -= array;
|
||||
}
|
||||
IDigest digest2 = this.digest;
|
||||
int num7 = array.Length;
|
||||
num7 -= array;
|
||||
byte[] array2 = new byte[num7];
|
||||
this.mBuf = array2;
|
||||
string algorithmName = ((ISigner)this).AlgorithmName;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (forSigning)
|
||||
{
|
||||
SecureRandom secureRandom = new SecureRandom();
|
||||
this.random = secureRandom;
|
||||
goto IL_5B;
|
||||
}
|
||||
goto IL_5B;
|
||||
}
|
||||
|
||||
// Token: 0x0600B511 RID: 46353 RVA: 0x00271AF0 File Offset: 0x0026FCF0
|
||||
[Token(Token = "0x600B511")]
|
||||
[Address(RVA = "0x235F5C0", Offset = "0x235E5C0", VA = "0x18235F5C0")]
|
||||
private bool IsSameAs(byte[] a, byte[] b)
|
||||
{
|
||||
int length = b.Length;
|
||||
if (this.messageLength == length)
|
||||
{
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
if (num2 != length)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
}
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B512 RID: 46354 RVA: 0x00271B24 File Offset: 0x0026FD24
|
||||
[Token(Token = "0x600B512")]
|
||||
[Address(RVA = "0x2342160", Offset = "0x2341160", VA = "0x182342160")]
|
||||
private void ClearBlock(byte[] block)
|
||||
{
|
||||
int length = block.Length;
|
||||
int num = 0;
|
||||
Array.Clear(block, num, length);
|
||||
}
|
||||
|
||||
// Token: 0x0600B513 RID: 46355 RVA: 0x00271B48 File Offset: 0x0026FD48
|
||||
[Token(Token = "0x600B513")]
|
||||
[Address(RVA = "0x235FD00", Offset = "0x235ED00", VA = "0x18235FD00", Slot = "16")]
|
||||
public virtual void UpdateWithRecoveredMessage(byte[] signature)
|
||||
{
|
||||
int length;
|
||||
int num;
|
||||
do
|
||||
{
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
|
||||
length = signature.Length;
|
||||
num = 0;
|
||||
int num2 = this.keyBits;
|
||||
num2 += 7;
|
||||
num2 += typeof(IAsymmetricBlockCipher).TypeHandle;
|
||||
int num3 = new byte[num2].Length;
|
||||
num3 -= typeof(byte[]).TypeHandle;
|
||||
if (asymmetricBlockCipher == 0)
|
||||
{
|
||||
goto IL_59;
|
||||
}
|
||||
}
|
||||
while (IsoTrailers.NoTrailerAvailable(this.digest));
|
||||
int num4 = IsoTrailers.GetTrailer(this.digest);
|
||||
IL_59:
|
||||
byte[] array = new byte[this.hLen];
|
||||
IDigest digest = this.digest;
|
||||
int num5 = this.hLen;
|
||||
digest -= num5;
|
||||
uint num6;
|
||||
digest -= num6;
|
||||
byte[] array2;
|
||||
int length2 = array2.Length;
|
||||
if (num != length2)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
if (num < 0)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
bool flag = num > 1;
|
||||
this.fullMessage = flag;
|
||||
int num7 = array2.Length;
|
||||
num7 -= num;
|
||||
byte[] array3 = new byte[num7];
|
||||
this.recoveredMessage = array3;
|
||||
int length3 = array3.Length;
|
||||
byte[] array4 = this.recoveredMessage;
|
||||
byte[] array5 = this.mBuf;
|
||||
this.preBlock = length;
|
||||
this.preMStart = num;
|
||||
this.preTLength = (int)num6;
|
||||
this.preSig = signature;
|
||||
}
|
||||
|
||||
// Token: 0x0600B514 RID: 46356 RVA: 0x00271C78 File Offset: 0x0026FE78
|
||||
[Token(Token = "0x600B514")]
|
||||
[Address(RVA = "0x2360110", Offset = "0x235F110", VA = "0x182360110", Slot = "17")]
|
||||
public virtual void Update(byte input)
|
||||
{
|
||||
if (this.preSig == (ulong)0L)
|
||||
{
|
||||
byte[] array = this.mBuf;
|
||||
int num = this.messageLength;
|
||||
if (num < array.Length)
|
||||
{
|
||||
int num2 = num + 1;
|
||||
this.messageLength = num2;
|
||||
return;
|
||||
}
|
||||
}
|
||||
IDigest digest = this.digest;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B515 RID: 46357 RVA: 0x00271CC0 File Offset: 0x0026FEC0
|
||||
[Token(Token = "0x600B515")]
|
||||
[Address(RVA = "0x235EC20", Offset = "0x235DC20", VA = "0x18235EC20", Slot = "18")]
|
||||
public virtual void BlockUpdate(byte[] input, int inOff, int length)
|
||||
{
|
||||
if (this.preSig == (ulong)0L)
|
||||
{
|
||||
if (length > 0)
|
||||
{
|
||||
int length2 = this.mBuf.Length;
|
||||
if (this.messageLength >= length2)
|
||||
{
|
||||
goto IL_27;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
IL_27:
|
||||
while (length <= 0)
|
||||
{
|
||||
}
|
||||
IDigest digest = this.digest;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B516 RID: 46358 RVA: 0x00271D04 File Offset: 0x0026FF04
|
||||
[Token(Token = "0x600B516")]
|
||||
[Address(RVA = "0x235FC40", Offset = "0x235EC40", VA = "0x18235FC40", Slot = "19")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = this.mBuf;
|
||||
int num = 0;
|
||||
this.messageLength = num;
|
||||
if (array != 0)
|
||||
{
|
||||
int length = array.Length;
|
||||
int num2 = 0;
|
||||
Array.Clear(array, num2, length);
|
||||
}
|
||||
byte[] array2 = this.recoveredMessage;
|
||||
if (array2 != 0)
|
||||
{
|
||||
int length2 = array2.Length;
|
||||
int num3 = 0;
|
||||
Array.Clear(array2, num3, length2);
|
||||
this.recoveredMessage = num;
|
||||
}
|
||||
this.fullMessage = num != 0;
|
||||
if (this.preSig != num)
|
||||
{
|
||||
byte[] array3 = this.preBlock;
|
||||
this.preSig = num;
|
||||
int length3 = array3.Length;
|
||||
int num4 = 0;
|
||||
Array.Clear(array3, num4, length3);
|
||||
this.preBlock = num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B517 RID: 46359 RVA: 0x00271DB0 File Offset: 0x0026FFB0
|
||||
[Token(Token = "0x600B517")]
|
||||
[Address(RVA = "0x235ED00", Offset = "0x235DD00", VA = "0x18235ED00", Slot = "20")]
|
||||
public virtual byte[] GenerateSignature()
|
||||
{
|
||||
IDigest digest = this.digest;
|
||||
byte[] array = new byte[0];
|
||||
IDigest digest2 = this.digest;
|
||||
int num = 0;
|
||||
byte[] array2 = new byte[0];
|
||||
int num2 = this.messageLength;
|
||||
this.LtoOSP((long)num2, array2);
|
||||
IDigest digest3 = this.digest;
|
||||
int length = array2.Length;
|
||||
IDigest digest4 = this.digest;
|
||||
int num3 = this.messageLength;
|
||||
IDigest digest5 = this.digest;
|
||||
int length2 = array.Length;
|
||||
byte[] array3 = this.standardSalt;
|
||||
if (array3 == 0)
|
||||
{
|
||||
byte[] array4 = new byte[this.saltLength];
|
||||
double num4 = this.random.NextDouble();
|
||||
}
|
||||
IDigest digest6 = this.digest;
|
||||
int length3 = array3.Length;
|
||||
IDigest digest7 = this.digest;
|
||||
byte[] array5 = new byte[length3];
|
||||
IDigest digest8 = this.digest;
|
||||
byte[] array6 = this.block;
|
||||
bool flag = this.trailer != 188;
|
||||
int num5 = array6.Length;
|
||||
num5 -= (flag ? 1 : 0);
|
||||
int num6 = this.messageLength;
|
||||
int num7 = 0;
|
||||
byte[] array7 = this.block;
|
||||
Array.Copy(this.mBuf, num7, array7, num5, num6);
|
||||
int num8 = this.messageLength;
|
||||
int num9 = 0;
|
||||
int length4 = array3.Length;
|
||||
num8 += num5;
|
||||
byte[] array8 = this.block;
|
||||
Array.Copy(array3, num9, array8, num8, length4);
|
||||
int num10 = this.block.Length;
|
||||
int num11 = 0;
|
||||
int length5 = array5.Length;
|
||||
num10 -= (flag ? 1 : 0);
|
||||
int length6 = this.MaskGeneratorFunction1(array5, num11, length5, num10).Length;
|
||||
byte[] array9 = this.block;
|
||||
if (num != length6)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
int num12 = this.hLen;
|
||||
int num13 = 0;
|
||||
int num14 = array9.Length;
|
||||
num14 -= num12;
|
||||
num14 -= (flag ? 1 : 0);
|
||||
Array.Copy(array5, num13, array9, num14, num12);
|
||||
int num15 = this.trailer;
|
||||
byte[] array10 = this.block;
|
||||
int length8;
|
||||
if (num15 != 188)
|
||||
{
|
||||
int length7 = array10.Length;
|
||||
length8 = this.block.Length;
|
||||
int num16 = this.trailer;
|
||||
int num17 = length8 - 1;
|
||||
}
|
||||
int num18 = length8 - 1;
|
||||
byte[] array11 = this.block;
|
||||
byte[] array12 = this.block;
|
||||
IAsymmetricBlockCipher asymmetricBlockCipher = this.cipher;
|
||||
int length9 = array12.Length;
|
||||
byte[] array13 = this.mBuf;
|
||||
int length10 = array13.Length;
|
||||
int num19 = 0;
|
||||
Array.Clear(array13, num19, length10);
|
||||
byte[] array14 = this.block;
|
||||
int length11 = array14.Length;
|
||||
int num20 = 0;
|
||||
Array.Clear(array14, num20, length11);
|
||||
this.messageLength = num;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B518 RID: 46360 RVA: 0x00272018 File Offset: 0x00270218
|
||||
[Token(Token = "0x600B518")]
|
||||
[Address(RVA = "0x23601C0", Offset = "0x235F1C0", VA = "0x1823601C0", Slot = "21")]
|
||||
public virtual bool VerifySignature(byte[] signature)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B518)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Signers.Iso9796d2PssSigner::VerifySignature(System.Byte[])
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_1EF:
|
||||
stloc:InvalidOperationException(var_42_1F9, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("UpdateWithRecoveredMessage called on different signature")))
|
||||
}
|
||||
|
||||
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: 0x0600B519 RID: 46361 RVA: 0x00272220 File Offset: 0x00270420
|
||||
[Token(Token = "0x600B519")]
|
||||
[Address(RVA = "0x51F220", Offset = "0x51E220", VA = "0x18051F220", Slot = "22")]
|
||||
public virtual bool HasFullMessage()
|
||||
{
|
||||
return this.fullMessage;
|
||||
}
|
||||
|
||||
// Token: 0x0600B51A RID: 46362 RVA: 0x00272234 File Offset: 0x00270434
|
||||
[Token(Token = "0x600B51A")]
|
||||
[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: 0x0600B51B RID: 46363 RVA: 0x00272268 File Offset: 0x00270468
|
||||
[Token(Token = "0x600B51B")]
|
||||
[Address(RVA = "0x235F6E0", Offset = "0x235E6E0", VA = "0x18235F6E0")]
|
||||
private void LtoOSP(long l, byte[] sp)
|
||||
{
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
sp[0] = (byte)l;
|
||||
}
|
||||
|
||||
// Token: 0x0600B51C RID: 46364 RVA: 0x002722BC File Offset: 0x002704BC
|
||||
[Token(Token = "0x600B51C")]
|
||||
[Address(RVA = "0x235F820", Offset = "0x235E820", VA = "0x18235F820")]
|
||||
private byte[] MaskGeneratorFunction1(byte[] Z, int zOff, int zLen, int length)
|
||||
{
|
||||
byte[] array = new byte[0];
|
||||
byte[] array2 = new byte[this.hLen];
|
||||
byte[] array3 = new byte[4];
|
||||
IDigest digest = this.digest;
|
||||
int num = 0;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
array3[0] = (byte)num;
|
||||
IDigest digest2 = this.digest;
|
||||
int num2 = 0;
|
||||
if (num2 < digest)
|
||||
{
|
||||
num2 += num2;
|
||||
num2++;
|
||||
}
|
||||
IDigest digest3 = this.digest;
|
||||
int num3 = 0;
|
||||
if (num3 < zOff)
|
||||
{
|
||||
num3 += num3;
|
||||
num3++;
|
||||
}
|
||||
int num4 = 0;
|
||||
IDigest digest4 = this.digest;
|
||||
int num5 = 0;
|
||||
if (num5 < num4)
|
||||
{
|
||||
num5 += num5;
|
||||
num5++;
|
||||
}
|
||||
int num6 = this.hLen;
|
||||
int num7 = num6 * num;
|
||||
int num8 = 0;
|
||||
Array.Copy(array2, num8, array, num7, num6);
|
||||
int num9 = this.hLen;
|
||||
this.ItoOSP(1, array3);
|
||||
IDigest digest5 = this.digest;
|
||||
IDigest digest6 = this.digest;
|
||||
int length2 = array3.Length;
|
||||
IDigest digest7 = this.digest;
|
||||
int num10 = this.hLen;
|
||||
int num11 = array.Length;
|
||||
int num12 = 0;
|
||||
num11 -= num10;
|
||||
Array.Copy(array2, num12, array, num10, num11);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x04007285 RID: 29317
|
||||
[Token(Token = "0x4007285")]
|
||||
[Obsolete]
|
||||
public const int TrailerImplicit = 188;
|
||||
|
||||
// Token: 0x04007286 RID: 29318
|
||||
[Token(Token = "0x4007286")]
|
||||
[Obsolete]
|
||||
public const int TrailerRipeMD160 = 12748;
|
||||
|
||||
// Token: 0x04007287 RID: 29319
|
||||
[Token(Token = "0x4007287")]
|
||||
[Obsolete]
|
||||
public const int TrailerRipeMD128 = 13004;
|
||||
|
||||
// Token: 0x04007288 RID: 29320
|
||||
[Token(Token = "0x4007288")]
|
||||
[Obsolete]
|
||||
public const int TrailerSha1 = 13260;
|
||||
|
||||
// Token: 0x04007289 RID: 29321
|
||||
[Token(Token = "0x4007289")]
|
||||
[Obsolete]
|
||||
public const int TrailerSha256 = 13516;
|
||||
|
||||
// Token: 0x0400728A RID: 29322
|
||||
[Token(Token = "0x400728A")]
|
||||
[Obsolete]
|
||||
public const int TrailerSha512 = 13772;
|
||||
|
||||
// Token: 0x0400728B RID: 29323
|
||||
[Token(Token = "0x400728B")]
|
||||
[Obsolete]
|
||||
public const int TrailerSha384 = 14028;
|
||||
|
||||
// Token: 0x0400728C RID: 29324
|
||||
[Token(Token = "0x400728C")]
|
||||
[Obsolete]
|
||||
public const int TrailerWhirlpool = 14284;
|
||||
|
||||
// Token: 0x0400728D RID: 29325
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x400728D")]
|
||||
private IDigest digest;
|
||||
|
||||
// Token: 0x0400728E RID: 29326
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x400728E")]
|
||||
private IAsymmetricBlockCipher cipher;
|
||||
|
||||
// Token: 0x0400728F RID: 29327
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x400728F")]
|
||||
private SecureRandom random;
|
||||
|
||||
// Token: 0x04007290 RID: 29328
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4007290")]
|
||||
private byte[] standardSalt;
|
||||
|
||||
// Token: 0x04007291 RID: 29329
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4007291")]
|
||||
private int hLen;
|
||||
|
||||
// Token: 0x04007292 RID: 29330
|
||||
[FieldOffset(Offset = "0x34")]
|
||||
[Token(Token = "0x4007292")]
|
||||
private int trailer;
|
||||
|
||||
// Token: 0x04007293 RID: 29331
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x4007293")]
|
||||
private int keyBits;
|
||||
|
||||
// Token: 0x04007294 RID: 29332
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x4007294")]
|
||||
private byte[] block;
|
||||
|
||||
// Token: 0x04007295 RID: 29333
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x4007295")]
|
||||
private byte[] mBuf;
|
||||
|
||||
// Token: 0x04007296 RID: 29334
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x4007296")]
|
||||
private int messageLength;
|
||||
|
||||
// Token: 0x04007297 RID: 29335
|
||||
[FieldOffset(Offset = "0x54")]
|
||||
[Token(Token = "0x4007297")]
|
||||
private readonly int saltLength;
|
||||
|
||||
// Token: 0x04007298 RID: 29336
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x4007298")]
|
||||
private bool fullMessage;
|
||||
|
||||
// Token: 0x04007299 RID: 29337
|
||||
[FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x4007299")]
|
||||
private byte[] recoveredMessage;
|
||||
|
||||
// Token: 0x0400729A RID: 29338
|
||||
[FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x400729A")]
|
||||
private byte[] preSig;
|
||||
|
||||
// Token: 0x0400729B RID: 29339
|
||||
[FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x400729B")]
|
||||
private byte[] preBlock;
|
||||
|
||||
// Token: 0x0400729C RID: 29340
|
||||
[FieldOffset(Offset = "0x78")]
|
||||
[Token(Token = "0x400729C")]
|
||||
private int preMStart;
|
||||
|
||||
// Token: 0x0400729D RID: 29341
|
||||
[FieldOffset(Offset = "0x7C")]
|
||||
[Token(Token = "0x400729D")]
|
||||
private int preTLength;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user