scripts
This commit is contained in:
+277
@@ -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;
|
||||
}
|
||||
}
|
||||
+279
@@ -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;
|
||||
}
|
||||
}
|
||||
+125
@@ -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");
|
||||
}
|
||||
}
|
||||
+165
@@ -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()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
+66
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user