This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,277 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001733 RID: 5939
[Token(Token = "0x2001733")]
[StructLayout(3)]
public class Srp6Client
{
// Token: 0x0600A08C RID: 41100 RVA: 0x00254F7C File Offset: 0x0025317C
[Token(Token = "0x600A08C")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Srp6Client()
{
}
// Token: 0x0600A08D RID: 41101 RVA: 0x00254F90 File Offset: 0x00253190
[Token(Token = "0x600A08D")]
[Address(RVA = "0x669090", Offset = "0x667A90", VA = "0x180669090", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, IDigest digest, SecureRandom random)
{
this.random = 0;
this.N = N;
this.g = g;
this.digest = digest;
}
// Token: 0x0600A08E RID: 41102 RVA: 0x00254FBC File Offset: 0x002531BC
[Token(Token = "0x600A08E")]
[Address(RVA = "0x6690B0", Offset = "0x667AB0", VA = "0x1806690B0", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, IDigest digest, SecureRandom random)
{
string text = this.ToString();
}
// Token: 0x0600A08F RID: 41103 RVA: 0x00254FD8 File Offset: 0x002531D8
[Token(Token = "0x600A08F")]
[Address(RVA = "0x669020", Offset = "0x667A20", VA = "0x180669020", Slot = "6")]
public virtual BigInteger GenerateClientCredentials(byte[] salt, byte[] identity, byte[] password)
{
BigInteger n = this.N;
BigInteger bigInteger = Srp6Utilities.CalculateX(this.digest, n, salt, identity, password);
this.x = bigInteger;
BigInteger bigInteger2 = this.g;
BigInteger bigInteger3;
this.privA = bigInteger3;
BigInteger n2 = this.N;
BigInteger bigInteger4 = bigInteger2.ModPow(bigInteger3, n2);
this.pubA = bigInteger4;
return bigInteger4;
}
// Token: 0x0600A090 RID: 41104 RVA: 0x00255038 File Offset: 0x00253238
[Token(Token = "0x600A090")]
[Address(RVA = "0x668E60", Offset = "0x667860", VA = "0x180668E60", Slot = "7")]
public virtual BigInteger CalculateSecret(BigInteger serverB)
{
BigInteger bigInteger = Srp6Utilities.ValidatePublicValue(this.N, serverB);
BigInteger bigInteger2 = this.pubA;
BigInteger n = this.N;
IDigest digest = this.digest;
this.B = bigInteger;
BigInteger bigInteger3 = Srp6Utilities.CalculateU(digest, n, bigInteger2, bigInteger);
BigInteger bigInteger4 = this.g;
BigInteger n2 = this.N;
IDigest digest2 = this.digest;
this.u = bigInteger3;
BigInteger bigInteger5 = Srp6Utilities.CalculateK(digest2, n2, bigInteger4);
BigInteger bigInteger6 = this.u;
BigInteger bigInteger7 = this.x;
BigInteger bigInteger8 = bigInteger6.Multiply(bigInteger7);
BigInteger bigInteger9 = this.privA;
BigInteger bigInteger10 = bigInteger8.Add(bigInteger9);
BigInteger bigInteger11 = this.g;
BigInteger n3 = this.N;
BigInteger bigInteger12 = this.x;
BigInteger bigInteger13 = bigInteger11.ModPow(bigInteger12, n3).Multiply(bigInteger5);
BigInteger n4 = this.N;
BigInteger bigInteger14 = bigInteger13.Mod(n4);
BigInteger bigInteger15 = this.B.Subtract(bigInteger14);
BigInteger n5 = this.N;
BigInteger bigInteger16 = bigInteger15.Mod(n5);
BigInteger n6 = this.N;
BigInteger bigInteger17 = bigInteger16.ModPow(bigInteger10, n6);
this.S = bigInteger17;
return bigInteger17;
}
// Token: 0x0600A091 RID: 41105 RVA: 0x0025515C File Offset: 0x0025335C
[Token(Token = "0x600A091")]
[Address(RVA = "0x6690F0", Offset = "0x667AF0", VA = "0x1806690F0", Slot = "8")]
protected virtual BigInteger SelectPrivateValue()
{
SecureRandom secureRandom = this.random;
BigInteger bigInteger = this.g;
BigInteger n = this.N;
return Srp6Utilities.GeneratePrivateValue(this.digest, n, bigInteger, secureRandom);
}
// Token: 0x0600A092 RID: 41106 RVA: 0x0025518C File Offset: 0x0025338C
[Token(Token = "0x600A092")]
[Address(RVA = "0x668D60", Offset = "0x667760", VA = "0x180668D60")]
private BigInteger CalculateS()
{
BigInteger bigInteger = this.g;
BigInteger n = this.N;
BigInteger bigInteger2 = Srp6Utilities.CalculateK(this.digest, n, bigInteger);
BigInteger bigInteger3 = this.u;
BigInteger bigInteger4 = this.x;
BigInteger bigInteger5 = bigInteger3.Multiply(bigInteger4);
BigInteger bigInteger6 = this.privA;
BigInteger bigInteger7 = bigInteger5.Add(bigInteger6);
BigInteger bigInteger8 = this.g;
BigInteger n2 = this.N;
BigInteger bigInteger9 = this.x;
BigInteger bigInteger10 = bigInteger8.ModPow(bigInteger9, n2).Multiply(bigInteger2);
BigInteger n3 = this.N;
BigInteger bigInteger11 = bigInteger10.Mod(n3);
BigInteger bigInteger12 = this.B.Subtract(bigInteger11);
BigInteger n4 = this.N;
BigInteger bigInteger13 = bigInteger12.Mod(n4);
BigInteger n5 = this.N;
return bigInteger13.ModPow(bigInteger7, n5);
}
// Token: 0x0600A093 RID: 41107 RVA: 0x0025525C File Offset: 0x0025345C
[Token(Token = "0x600A093")]
[Address(RVA = "0x668CC0", Offset = "0x6676C0", VA = "0x180668CC0", Slot = "9")]
public virtual BigInteger CalculateClientEvidenceMessage()
{
/*
An exception occurred when decompiling this method (0600A093)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::CalculateClientEvidenceMessage()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:CryptoException(var_6_4E, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute M1: some data are missing from the previous operations (A,B,S)")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A094 RID: 41108 RVA: 0x002552B8 File Offset: 0x002534B8
[Token(Token = "0x600A094")]
[Address(RVA = "0x669120", Offset = "0x667B20", VA = "0x180669120", Slot = "10")]
public virtual bool VerifyServerEvidenceMessage(BigInteger serverM2)
{
/*
An exception occurred when decompiling this method (0600A094)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::VerifyServerEvidenceMessage(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:CryptoException(var_5_4D, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute and verify M2: some data are missing from the previous operations (A,M1,S)")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A095 RID: 41109 RVA: 0x00255314 File Offset: 0x00253514
[Token(Token = "0x600A095")]
[Address(RVA = "0x668F90", Offset = "0x667990", VA = "0x180668F90", Slot = "11")]
public virtual BigInteger CalculateSessionKey()
{
/*
An exception occurred when decompiling this method (0600A095)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Client::CalculateSessionKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3F:
stloc:CryptoException(var_3_49, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute Key: some data are missing from the previous operations (S,M1,M2)")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x04006993 RID: 27027
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006993")]
protected BigInteger N;
// Token: 0x04006994 RID: 27028
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006994")]
protected BigInteger g;
// Token: 0x04006995 RID: 27029
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006995")]
protected BigInteger privA;
// Token: 0x04006996 RID: 27030
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006996")]
protected BigInteger pubA;
// Token: 0x04006997 RID: 27031
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006997")]
protected BigInteger B;
// Token: 0x04006998 RID: 27032
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006998")]
protected BigInteger x;
// Token: 0x04006999 RID: 27033
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006999")]
protected BigInteger u;
// Token: 0x0400699A RID: 27034
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x400699A")]
protected BigInteger S;
// Token: 0x0400699B RID: 27035
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x400699B")]
protected BigInteger M1;
// Token: 0x0400699C RID: 27036
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x400699C")]
protected BigInteger M2;
// Token: 0x0400699D RID: 27037
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x400699D")]
protected BigInteger Key;
// Token: 0x0400699E RID: 27038
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x400699E")]
protected IDigest digest;
// Token: 0x0400699F RID: 27039
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x400699F")]
protected SecureRandom random;
}
}
@@ -0,0 +1,279 @@
using System;
using System.Runtime.InteropServices;
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.Agreement.Srp
{
// Token: 0x02001734 RID: 5940
[Token(Token = "0x2001734")]
[StructLayout(3)]
public class Srp6Server
{
// Token: 0x0600A096 RID: 41110 RVA: 0x0025536C File Offset: 0x0025356C
[Token(Token = "0x600A096")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Srp6Server()
{
}
// Token: 0x0600A097 RID: 41111 RVA: 0x00255380 File Offset: 0x00253580
[Token(Token = "0x600A097")]
[Address(RVA = "0x2187FC0", Offset = "0x21869C0", VA = "0x182187FC0", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, BigInteger v, IDigest digest, SecureRandom random)
{
this.random = 0;
this.digest = 0;
this.N = N;
this.g = g;
this.v = v;
}
// Token: 0x0600A098 RID: 41112 RVA: 0x002553B0 File Offset: 0x002535B0
[Token(Token = "0x600A098")]
[Address(RVA = "0x2187F70", Offset = "0x2186970", VA = "0x182187F70", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, BigInteger v, IDigest digest, SecureRandom random)
{
string text = this.ToString();
}
// Token: 0x0600A099 RID: 41113 RVA: 0x002553CC File Offset: 0x002535CC
[Token(Token = "0x600A099")]
[Address(RVA = "0x2187EA0", Offset = "0x21868A0", VA = "0x182187EA0", Slot = "6")]
public virtual BigInteger GenerateServerCredentials()
{
BigInteger n = this.N;
BigInteger bigInteger = this.g;
BigInteger bigInteger2 = Srp6Utilities.HashPaddedPair(this.digest, n, n, bigInteger);
BigInteger bigInteger3;
this.privB = bigInteger3;
BigInteger bigInteger4 = this.v;
BigInteger bigInteger5 = bigInteger2.Multiply(bigInteger4);
BigInteger n2 = this.N;
BigInteger bigInteger6 = bigInteger5.Mod(n2);
BigInteger bigInteger7 = this.g;
BigInteger n3 = this.N;
BigInteger bigInteger8 = this.privB;
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n3);
BigInteger bigInteger10 = bigInteger6.Add(bigInteger9);
BigInteger n4 = this.N;
BigInteger bigInteger11 = bigInteger10.Mod(n4);
this.pubB = bigInteger11;
return bigInteger11;
}
// Token: 0x0600A09A RID: 41114 RVA: 0x00255478 File Offset: 0x00253678
[Token(Token = "0x600A09A")]
[Address(RVA = "0x2187B00", Offset = "0x2186500", VA = "0x182187B00", Slot = "7")]
public virtual BigInteger CalculateSecret(BigInteger clientA)
{
BigInteger n = this.N;
BigInteger bigInteger = clientA.Mod(n);
BigInteger bigInteger2 = this.pubB;
BigInteger n2 = this.N;
IDigest digest = this.digest;
this.A = bigInteger;
BigInteger bigInteger3 = Srp6Utilities.HashPaddedPair(digest, n2, bigInteger, bigInteger2);
BigInteger bigInteger4 = this.v;
this.u = bigInteger3;
BigInteger n3 = this.N;
BigInteger bigInteger5 = bigInteger4.ModPow(bigInteger3, n3);
BigInteger a = this.A;
BigInteger bigInteger6 = bigInteger5.Multiply(a);
BigInteger n4 = this.N;
BigInteger bigInteger7 = bigInteger6.Mod(n4);
BigInteger n5 = this.N;
BigInteger bigInteger8 = this.privB;
BigInteger bigInteger9 = bigInteger7.ModPow(bigInteger8, n5);
this.S = bigInteger9;
return bigInteger9;
}
// Token: 0x0600A09B RID: 41115 RVA: 0x00255544 File Offset: 0x00253744
[Token(Token = "0x600A09B")]
[Address(RVA = "0x2187FE0", Offset = "0x21869E0", VA = "0x182187FE0", Slot = "8")]
protected virtual BigInteger SelectPrivateValue()
{
BigInteger n = this.N;
SecureRandom secureRandom = this.random;
int num = 0;
int num2 = n.BitLength;
num2 -= num;
uint num3;
num2 = Math.Min((int)num3, num2);
BigInteger one = BigInteger.One;
int num4 = num2 - 1;
BigInteger bigInteger = one.ShiftLeft(num4);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger2 = n.Subtract(one2);
return BigIntegers.CreateRandomInRange(bigInteger, bigInteger2, secureRandom);
}
// Token: 0x0600A09C RID: 41116 RVA: 0x002555B0 File Offset: 0x002537B0
[Token(Token = "0x600A09C")]
[Address(RVA = "0x2187A90", Offset = "0x2186490", VA = "0x182187A90")]
private BigInteger CalculateS()
{
BigInteger bigInteger = this.v;
BigInteger n = this.N;
BigInteger bigInteger2 = this.u;
BigInteger bigInteger3 = bigInteger.ModPow(bigInteger2, n);
BigInteger a = this.A;
BigInteger bigInteger4 = bigInteger3.Multiply(a);
BigInteger n2 = this.N;
BigInteger bigInteger5 = bigInteger4.Mod(n2);
BigInteger n3 = this.N;
BigInteger bigInteger6 = this.privB;
return bigInteger5.ModPow(bigInteger6, n3);
}
// Token: 0x0600A09D RID: 41117 RVA: 0x00255624 File Offset: 0x00253824
[Token(Token = "0x600A09D")]
[Address(RVA = "0x21880F0", Offset = "0x2186AF0", VA = "0x1821880F0", Slot = "9")]
public virtual bool VerifyClientEvidenceMessage(BigInteger clientM1)
{
/*
An exception occurred when decompiling this method (0600A09D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::VerifyClientEvidenceMessage(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_43:
stloc:CryptoException(var_5_4D, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute and verify M1: some data are missing from the previous operations (A,B,S)")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A09E RID: 41118 RVA: 0x00255680 File Offset: 0x00253880
[Token(Token = "0x600A09E")]
[Address(RVA = "0x2187C70", Offset = "0x2186670", VA = "0x182187C70", Slot = "10")]
public virtual BigInteger CalculateServerEvidenceMessage()
{
/*
An exception occurred when decompiling this method (0600A09E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::CalculateServerEvidenceMessage()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:CryptoException(var_6_4E, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute M2: some data are missing from the previous operations (A,M1,S)")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A09F RID: 41119 RVA: 0x002556DC File Offset: 0x002538DC
[Token(Token = "0x600A09F")]
[Address(RVA = "0x2187D10", Offset = "0x2186710", VA = "0x182187D10", Slot = "11")]
public virtual BigInteger CalculateSessionKey()
{
/*
An exception occurred when decompiling this method (0600A09F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp.Srp6Server::CalculateSessionKey()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_77:
stloc:CryptoException(var_10_81, newobj:CryptoException(CryptoException::.ctor, ldstr:string("Impossible to compute Key: some data are missing from the previous operations (S,M1,M2)")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x040069A0 RID: 27040
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069A0")]
protected BigInteger N;
// Token: 0x040069A1 RID: 27041
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069A1")]
protected BigInteger g;
// Token: 0x040069A2 RID: 27042
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069A2")]
protected BigInteger v;
// Token: 0x040069A3 RID: 27043
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x40069A3")]
protected SecureRandom random;
// Token: 0x040069A4 RID: 27044
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x40069A4")]
protected IDigest digest;
// Token: 0x040069A5 RID: 27045
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x40069A5")]
protected BigInteger A;
// Token: 0x040069A6 RID: 27046
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x40069A6")]
protected BigInteger privB;
// Token: 0x040069A7 RID: 27047
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x40069A7")]
protected BigInteger pubB;
// Token: 0x040069A8 RID: 27048
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x40069A8")]
protected BigInteger u;
// Token: 0x040069A9 RID: 27049
[global::Cpp2IlInjected.FieldOffset(Offset = "0x58")]
[Token(Token = "0x40069A9")]
protected BigInteger S;
// Token: 0x040069AA RID: 27050
[global::Cpp2IlInjected.FieldOffset(Offset = "0x60")]
[Token(Token = "0x40069AA")]
protected BigInteger M1;
// Token: 0x040069AB RID: 27051
[global::Cpp2IlInjected.FieldOffset(Offset = "0x68")]
[Token(Token = "0x40069AB")]
protected BigInteger M2;
// Token: 0x040069AC RID: 27052
[global::Cpp2IlInjected.FieldOffset(Offset = "0x70")]
[Token(Token = "0x40069AC")]
protected BigInteger Key;
}
}
@@ -0,0 +1,125 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001735 RID: 5941
[Token(Token = "0x2001735")]
[StructLayout(3)]
public class Srp6StandardGroups
{
// Token: 0x0600A0A0 RID: 41120 RVA: 0x0025576C File Offset: 0x0025396C
[Token(Token = "0x600A0A0")]
[Address(RVA = "0x21881D0", Offset = "0x2186BD0", VA = "0x1821881D0")]
private static BigInteger FromHex(string hex)
{
byte[] array = Hex.Decode(hex);
return new BigInteger(1, array);
}
// Token: 0x0600A0A1 RID: 41121 RVA: 0x00255788 File Offset: 0x00253988
[Token(Token = "0x600A0A1")]
[Address(RVA = "0x2188260", Offset = "0x2186C60", VA = "0x182188260")]
private static Srp6GroupParameters FromNG(string hexN, string hexG)
{
BigInteger bigInteger = Srp6StandardGroups.FromHex(hexN);
BigInteger bigInteger2 = Srp6StandardGroups.FromHex(hexG);
return new Srp6GroupParameters(bigInteger, bigInteger2);
}
// Token: 0x0600A0A2 RID: 41122 RVA: 0x002557AC File Offset: 0x002539AC
[Token(Token = "0x600A0A2")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Srp6StandardGroups()
{
}
// Token: 0x040069AD RID: 27053
[Token(Token = "0x40069AD")]
private const string rfc5054_1024_N = "EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3";
// Token: 0x040069AE RID: 27054
[Token(Token = "0x40069AE")]
private const string rfc5054_1024_g = "02";
// Token: 0x040069AF RID: 27055
[Token(Token = "0x40069AF")]
public static readonly Srp6GroupParameters rfc5054_1024 = Srp6StandardGroups.FromNG("EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3", "02");
// Token: 0x040069B0 RID: 27056
[Token(Token = "0x40069B0")]
private const string rfc5054_1536_N = "9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB";
// Token: 0x040069B1 RID: 27057
[Token(Token = "0x40069B1")]
private const string rfc5054_1536_g = "02";
// Token: 0x040069B2 RID: 27058
[Token(Token = "0x40069B2")]
public static readonly Srp6GroupParameters rfc5054_1536 = Srp6StandardGroups.FromNG("9DEF3CAFB939277AB1F12A8617A47BBBDBA51DF499AC4C80BEEEA9614B19CC4D5F4F5F556E27CBDE51C6A94BE4607A291558903BA0D0F84380B655BB9A22E8DCDF028A7CEC67F0D08134B1C8B97989149B609E0BE3BAB63D47548381DBC5B1FC764E3F4B53DD9DA1158BFD3E2B9C8CF56EDF019539349627DB2FD53D24B7C48665772E437D6C7F8CE442734AF7CCB7AE837C264AE3A9BEB87F8A2FE9B8B5292E5A021FFF5E91479E8CE7A28C2442C6F315180F93499A234DCF76E3FED135F9BB", "02");
// Token: 0x040069B3 RID: 27059
[Token(Token = "0x40069B3")]
private const string rfc5054_2048_N = "AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73";
// Token: 0x040069B4 RID: 27060
[Token(Token = "0x40069B4")]
private const string rfc5054_2048_g = "02";
// Token: 0x040069B5 RID: 27061
[Token(Token = "0x40069B5")]
public static readonly Srp6GroupParameters rfc5054_2048 = Srp6StandardGroups.FromNG("AC6BDB41324A9A9BF166DE5E1389582FAF72B6651987EE07FC3192943DB56050A37329CBB4A099ED8193E0757767A13DD52312AB4B03310DCD7F48A9DA04FD50E8083969EDB767B0CF6095179A163AB3661A05FBD5FAAAE82918A9962F0B93B855F97993EC975EEAA80D740ADBF4FF747359D041D5C33EA71D281E446B14773BCA97B43A23FB801676BD207A436C6481F1D2B9078717461A5B9D32E688F87748544523B524B0D57D5EA77A2775D2ECFA032CFBDBF52FB3786160279004E57AE6AF874E7303CE53299CCC041C7BC308D82A5698F3A8D0C38271AE35F8E9DBFBB694B5C803D89F7AE435DE236D525F54759B65E372FCD68EF20FA7111F9E4AFF73", "02");
// Token: 0x040069B6 RID: 27062
[Token(Token = "0x40069B6")]
private const string rfc5054_3072_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF";
// Token: 0x040069B7 RID: 27063
[Token(Token = "0x40069B7")]
private const string rfc5054_3072_g = "05";
// Token: 0x040069B8 RID: 27064
[Token(Token = "0x40069B8")]
public static readonly Srp6GroupParameters rfc5054_3072 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF", "05");
// Token: 0x040069B9 RID: 27065
[Token(Token = "0x40069B9")]
private const string rfc5054_4096_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF";
// Token: 0x040069BA RID: 27066
[Token(Token = "0x40069BA")]
private const string rfc5054_4096_g = "05";
// Token: 0x040069BB RID: 27067
[Token(Token = "0x40069BB")]
public static readonly Srp6GroupParameters rfc5054_4096 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF", "05");
// Token: 0x040069BC RID: 27068
[Token(Token = "0x40069BC")]
private const string rfc5054_6144_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF";
// Token: 0x040069BD RID: 27069
[Token(Token = "0x40069BD")]
private const string rfc5054_6144_g = "05";
// Token: 0x040069BE RID: 27070
[Token(Token = "0x40069BE")]
public static readonly Srp6GroupParameters rfc5054_6144 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DCC4024FFFFFFFFFFFFFFFF", "05");
// Token: 0x040069BF RID: 27071
[Token(Token = "0x40069BF")]
private const string rfc5054_8192_N = "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF";
// Token: 0x040069C0 RID: 27072
[Token(Token = "0x40069C0")]
private const string rfc5054_8192_g = "13";
// Token: 0x040069C1 RID: 27073
[Token(Token = "0x40069C1")]
public static readonly Srp6GroupParameters rfc5054_8192 = Srp6StandardGroups.FromNG("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C93402849236C3FAB4D27C7026C1D4DCB2602646DEC9751E763DBA37BDF8FF9406AD9E530EE5DB382F413001AEB06A53ED9027D831179727B0865A8918DA3EDBEBCF9B14ED44CE6CBACED4BB1BDB7F1447E6CC254B332051512BD7AF426FB8F401378CD2BF5983CA01C64B92ECF032EA15D1721D03F482D7CE6E74FEF6D55E702F46980C82B5A84031900B1C9E59E7C97FBEC7E8F323A97A7E36CC88BE0F1D45B7FF585AC54BD407B22B4154AACC8F6D7EBF48E1D814CC5ED20F8037E0A79715EEF29BE32806A1D58BB7C5DA76F550AA3D8A1FBFF0EB19CCB1A313D55CDA56C9EC2EF29632387FE8D76E3C0468043E8F663F4860EE12BF2D5B0B7474D6E694F91E6DBE115974A3926F12FEE5E438777CB6A932DF8CD8BEC4D073B931BA3BC832B68D9DD300741FA7BF8AFC47ED2576F6936BA424663AAB639C5AE4F5683423B4742BF1C978238F16CBE39D652DE3FDB8BEFC848AD922222E04A4037C0713EB57A81A23F0C73473FC646CEA306B4BCBC8862F8385DDFA9D4B7FA2C087E879683303ED5BDD3A062B3CF5B3A278A66D2A13F83F44F82DDF310EE074AB6A364597E899A0255DC164F31CC50846851DF9AB48195DED7EA1B1D510BD7EE74D73FAF36BC31ECFA268359046F4EB879F924009438B481C6CD7889A002ED5EE382BC9190DA6FC026E479558E4475677E9AA9E3050E2765694DFC81F56E880B96E7160C980DD98EDD3DFFFFFFFFFFFFFFFFF", "13");
}
}
@@ -0,0 +1,165 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001736 RID: 5942
[Token(Token = "0x2001736")]
[StructLayout(3)]
public class Srp6Utilities
{
// Token: 0x0600A0A4 RID: 41124 RVA: 0x0025585C File Offset: 0x00253A5C
[Token(Token = "0x600A0A4")]
[Address(RVA = "0x2188440", Offset = "0x2186E40", VA = "0x182188440")]
public static BigInteger CalculateK(IDigest digest, BigInteger N, BigInteger g)
{
return Srp6Utilities.HashPaddedPair(digest, N, N, g);
}
// Token: 0x0600A0A5 RID: 41125 RVA: 0x00255874 File Offset: 0x00253A74
[Token(Token = "0x600A0A5")]
[Address(RVA = "0x2188580", Offset = "0x2186F80", VA = "0x182188580")]
public static BigInteger CalculateU(IDigest digest, BigInteger N, BigInteger A, BigInteger B)
{
return Srp6Utilities.HashPaddedPair(digest, N, A, B);
}
// Token: 0x0600A0A6 RID: 41126 RVA: 0x0025588C File Offset: 0x00253A8C
[Token(Token = "0x600A0A6")]
[Address(RVA = "0x2188590", Offset = "0x2186F90", VA = "0x182188590")]
public static BigInteger CalculateX(IDigest digest, BigInteger N, byte[] salt, byte[] identity, byte[] password)
{
byte[] array = new byte[0];
int length = identity.Length;
int num = 0;
if (num < identity)
{
num += num;
num++;
}
int length2 = salt.Length;
int length3 = array.Length;
return new BigInteger(1, array);
}
// Token: 0x0600A0A7 RID: 41127 RVA: 0x002558D4 File Offset: 0x00253AD4
[Token(Token = "0x600A0A7")]
[Address(RVA = "0x21887B0", Offset = "0x21871B0", VA = "0x1821887B0")]
public static BigInteger GeneratePrivateValue(IDigest digest, BigInteger N, BigInteger g, SecureRandom random)
{
int num = 0;
int num2 = N.BitLength;
num2 -= num;
uint num3;
num2 = Math.Min((int)num3, num2);
BigInteger one = BigInteger.One;
int num4 = num2 - 1;
BigInteger bigInteger = one.ShiftLeft(num4);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger2 = N.Subtract(one2);
return BigIntegers.CreateRandomInRange(bigInteger, bigInteger2, random);
}
// Token: 0x0600A0A8 RID: 41128 RVA: 0x0025592C File Offset: 0x00253B2C
[Token(Token = "0x600A0A8")]
[Address(RVA = "0x2188C70", Offset = "0x2187670", VA = "0x182188C70")]
public static BigInteger ValidatePublicValue(BigInteger N, BigInteger val)
{
return val.Mod(N);
}
// Token: 0x0600A0A9 RID: 41129 RVA: 0x00255954 File Offset: 0x00253B54
[Token(Token = "0x600A0A9")]
[Address(RVA = "0x2188570", Offset = "0x2186F70", VA = "0x182188570")]
public static BigInteger CalculateM1(IDigest digest, BigInteger N, BigInteger A, BigInteger B, BigInteger S)
{
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600A0AA RID: 41130 RVA: 0x00255964 File Offset: 0x00253B64
[Token(Token = "0x600A0AA")]
[Address(RVA = "0x2188570", Offset = "0x2186F70", VA = "0x182188570")]
public static BigInteger CalculateM2(IDigest digest, BigInteger N, BigInteger A, BigInteger M1, BigInteger S)
{
BigInteger bigInteger;
return bigInteger;
}
// Token: 0x0600A0AB RID: 41131 RVA: 0x00255974 File Offset: 0x00253B74
[Token(Token = "0x600A0AB")]
[Address(RVA = "0x2188460", Offset = "0x2186E60", VA = "0x182188460")]
public static BigInteger CalculateKey(IDigest digest, BigInteger N, BigInteger S)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num += num2;
byte[] padded = Srp6Utilities.GetPadded(S, num);
int length = padded.Length;
byte[] array = new byte[padded];
return new BigInteger(1, array);
}
// Token: 0x0600A0AC RID: 41132 RVA: 0x002559BC File Offset: 0x00253BBC
[Token(Token = "0x600A0AC")]
[Address(RVA = "0x2188AC0", Offset = "0x21874C0", VA = "0x182188AC0")]
private static BigInteger HashPaddedTriplet(IDigest digest, BigInteger N, BigInteger n1, BigInteger n2, BigInteger n3)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num2 += num;
byte[] padded = Srp6Utilities.GetPadded(n1, num2);
byte[] padded2 = Srp6Utilities.GetPadded(n2, num2);
int length = padded.Length;
int length2 = padded2.Length;
byte[] array2;
byte[] array = new byte[array2.Length];
return new BigInteger(1, array);
}
// Token: 0x0600A0AD RID: 41133 RVA: 0x00255A1C File Offset: 0x00253C1C
[Token(Token = "0x600A0AD")]
[Address(RVA = "0x2188960", Offset = "0x2187360", VA = "0x182188960")]
private static BigInteger HashPaddedPair(IDigest digest, BigInteger N, BigInteger n1, BigInteger n2)
{
int num = 0;
int num2 = N.BitLength;
num2 += 7;
num2 += num;
byte[] padded = Srp6Utilities.GetPadded(n1, num2);
byte[] padded2 = Srp6Utilities.GetPadded(n2, num2);
int length = padded.Length;
byte[] array = new byte[padded2.Length];
return new BigInteger(1, array);
}
// Token: 0x0600A0AE RID: 41134 RVA: 0x00255A70 File Offset: 0x00253C70
[Token(Token = "0x600A0AE")]
[Address(RVA = "0x21888C0", Offset = "0x21872C0", VA = "0x1821888C0")]
private static byte[] GetPadded(BigInteger n, int length)
{
byte[] array = BigIntegers.AsUnsignedByteArray(n);
if (array.Length < length)
{
byte[] array2 = new byte[length];
int length2 = array.Length;
int num = 0;
Array.Copy(array, num, array2, length, length2);
}
return array;
}
// Token: 0x0600A0AF RID: 41135 RVA: 0x00255AB0 File Offset: 0x00253CB0
[Token(Token = "0x600A0AF")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Srp6Utilities()
{
}
}
}
@@ -0,0 +1,66 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Agreement.Srp
{
// Token: 0x02001737 RID: 5943
[Token(Token = "0x2001737")]
[StructLayout(3)]
public class Srp6VerifierGenerator
{
// Token: 0x0600A0B0 RID: 41136 RVA: 0x00255AC4 File Offset: 0x00253CC4
[Token(Token = "0x600A0B0")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Srp6VerifierGenerator()
{
}
// Token: 0x0600A0B1 RID: 41137 RVA: 0x00255AD8 File Offset: 0x00253CD8
[Token(Token = "0x600A0B1")]
[Address(RVA = "0x2188DA0", Offset = "0x21877A0", VA = "0x182188DA0", Slot = "4")]
public virtual void Init(BigInteger N, BigInteger g, IDigest digest)
{
this.N = N;
this.g = g;
this.digest = digest;
}
// Token: 0x0600A0B2 RID: 41138 RVA: 0x00255AFC File Offset: 0x00253CFC
[Token(Token = "0x600A0B2")]
[Address(RVA = "0x2188DB0", Offset = "0x21877B0", VA = "0x182188DB0", Slot = "5")]
public virtual void Init(Srp6GroupParameters group, IDigest digest)
{
string text = this.ToString();
}
// Token: 0x0600A0B3 RID: 41139 RVA: 0x00255B18 File Offset: 0x00253D18
[Token(Token = "0x600A0B3")]
[Address(RVA = "0x2188D50", Offset = "0x2187750", VA = "0x182188D50", Slot = "6")]
public virtual BigInteger GenerateVerifier(byte[] salt, byte[] identity, byte[] password)
{
BigInteger n = this.N;
BigInteger bigInteger = Srp6Utilities.CalculateX(this.digest, n, salt, identity, password);
BigInteger bigInteger2 = this.g;
BigInteger n2 = this.N;
return bigInteger2.ModPow(bigInteger, n2);
}
// Token: 0x040069C2 RID: 27074
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40069C2")]
protected BigInteger N;
// Token: 0x040069C3 RID: 27075
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40069C3")]
protected BigInteger g;
// Token: 0x040069C4 RID: 27076
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40069C4")]
protected IDigest digest;
}
}