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() { } } }