using System; using System.Runtime.InteropServices; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math; using BestHTTP.SecureProtocol.Org.BouncyCastle.X509; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Security { // Token: 0x020013CA RID: 5066 [Token(Token = "0x20013CA")] [StructLayout(3)] public sealed class DotNetUtilities { // Token: 0x060080E2 RID: 32994 RVA: 0x001B4AF0 File Offset: 0x001B2CF0 [Token(Token = "0x60080E2")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] private DotNetUtilities() { } // Token: 0x060080E3 RID: 32995 RVA: 0x001B4B04 File Offset: 0x001B2D04 [Token(Token = "0x60080E3")] [Address(RVA = "0x47A2B0", Offset = "0x478CB0", VA = "0x18047A2B0")] public static global::System.Security.Cryptography.X509Certificates.X509Certificate ToX509Certificate(X509CertificateStructure x509Struct) { return new global::System.Security.Cryptography.X509Certificates.X509Certificate(x509Struct.GetDerEncoded()); } // Token: 0x060080E4 RID: 32996 RVA: 0x001B4B24 File Offset: 0x001B2D24 [Token(Token = "0x60080E4")] [Address(RVA = "0x47A320", Offset = "0x478D20", VA = "0x18047A320")] public static global::System.Security.Cryptography.X509Certificates.X509Certificate ToX509Certificate(BestHTTP.SecureProtocol.Org.BouncyCastle.X509.X509Certificate x509Cert) { AsymmetricKeyParameter publicKey = x509Cert.GetPublicKey(); global::System.Security.Cryptography.X509Certificates.X509Certificate x509Certificate; return x509Certificate; } // Token: 0x060080E5 RID: 32997 RVA: 0x001B4B40 File Offset: 0x001B2D40 [Token(Token = "0x60080E5")] [Address(RVA = "0x478E30", Offset = "0x477830", VA = "0x180478E30")] public static BestHTTP.SecureProtocol.Org.BouncyCastle.X509.X509Certificate FromX509Certificate(global::System.Security.Cryptography.X509Certificates.X509Certificate x509Cert) { X509CertificateParser x509CertificateParser = new X509CertificateParser(); byte[] publicKey = x509Cert.GetPublicKey(); return x509CertificateParser.ReadCertificate(publicKey); } // Token: 0x060080E6 RID: 32998 RVA: 0x001B4B68 File Offset: 0x001B2D68 [Token(Token = "0x60080E6")] [Address(RVA = "0x478EB0", Offset = "0x4778B0", VA = "0x180478EB0")] public static AsymmetricCipherKeyPair GetDsaKeyPair(DSA dsa) { AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x060080E7 RID: 32999 RVA: 0x001B4B7C File Offset: 0x001B2D7C [Token(Token = "0x60080E7")] [Address(RVA = "0x478F20", Offset = "0x477920", VA = "0x180478F20")] public static AsymmetricCipherKeyPair GetDsaKeyPair(DSAParameters dp) { if (dp.Seed != (ulong)0L) { byte[] seed = dp.Seed; } int num = 0; byte[] g; BigInteger bigInteger = new BigInteger(1, g); g = dp.G; BigInteger bigInteger2; BigInteger bigInteger3; DsaParameters dsaParameters = new DsaParameters(bigInteger2, bigInteger3, bigInteger, num); BigInteger bigInteger4; DsaPublicKeyParameters dsaPublicKeyParameters = new DsaPublicKeyParameters(bigInteger4, dsaParameters); BigInteger bigInteger5; DsaPrivateKeyParameters dsaPrivateKeyParameters = new DsaPrivateKeyParameters(bigInteger5, dsaParameters); return new AsymmetricCipherKeyPair(dsaPublicKeyParameters, dsaPrivateKeyParameters); } // Token: 0x060080E8 RID: 33000 RVA: 0x001B4BDC File Offset: 0x001B2DDC [Token(Token = "0x60080E8")] [Address(RVA = "0x479110", Offset = "0x477B10", VA = "0x180479110")] public static DsaPublicKeyParameters GetDsaPublicKey(DSA dsa) { int num = 0; BigInteger bigInteger; BigInteger bigInteger2; BigInteger bigInteger3; DsaParameters dsaParameters = new DsaParameters(bigInteger, bigInteger2, bigInteger3, num); BigInteger bigInteger4; return new DsaPublicKeyParameters(bigInteger4, dsaParameters); } // Token: 0x060080E9 RID: 33001 RVA: 0x001B4C08 File Offset: 0x001B2E08 [Token(Token = "0x60080E9")] [Address(RVA = "0x4792D0", Offset = "0x477CD0", VA = "0x1804792D0")] public static DsaPublicKeyParameters GetDsaPublicKey(DSAParameters dp) { if (dp.Seed != (ulong)0L) { byte[] seed = dp.Seed; } int num = 0; byte[] g; BigInteger bigInteger = new BigInteger(1, g); g = dp.G; BigInteger bigInteger2; BigInteger bigInteger3; DsaParameters dsaParameters = new DsaParameters(bigInteger2, bigInteger3, bigInteger, num); BigInteger bigInteger4; return new DsaPublicKeyParameters(bigInteger4, dsaParameters); } // Token: 0x060080EA RID: 33002 RVA: 0x001B4C54 File Offset: 0x001B2E54 [Token(Token = "0x60080EA")] [Address(RVA = "0x479890", Offset = "0x478290", VA = "0x180479890")] public static AsymmetricCipherKeyPair GetRsaKeyPair(RSA rsa) { byte[] array; byte b = array[0]; byte b2 = array[2]; AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x060080EB RID: 33003 RVA: 0x001B4C78 File Offset: 0x001B2E78 [Token(Token = "0x60080EB")] [Address(RVA = "0x479660", Offset = "0x478060", VA = "0x180479660")] public static AsymmetricCipherKeyPair GetRsaKeyPair(RSAParameters rp) { int num; BigInteger bigInteger; BigInteger bigInteger2; RsaKeyParameters rsaKeyParameters = new RsaKeyParameters(num != 0, bigInteger, bigInteger2); num = 0; byte[] p; BigInteger bigInteger3 = new BigInteger(1, p); p = rp.P; BigInteger bigInteger4 = new BigInteger(1, p); byte[] dp; BigInteger bigInteger5 = new BigInteger(1, dp); dp = rp.DP; BigInteger bigInteger6 = new BigInteger(1, dp); BigInteger bigInteger7 = new BigInteger(1, dp); AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x060080EC RID: 33004 RVA: 0x001B4CD8 File Offset: 0x001B2ED8 [Token(Token = "0x60080EC")] [Address(RVA = "0x479900", Offset = "0x478300", VA = "0x180479900")] public static RsaKeyParameters GetRsaPublicKey(RSA rsa) { int num; BigInteger bigInteger; BigInteger bigInteger2; RsaKeyParameters rsaKeyParameters = new RsaKeyParameters(num != 0, bigInteger, bigInteger2); num = 0; return rsaKeyParameters; } // Token: 0x060080ED RID: 33005 RVA: 0x001B4CFC File Offset: 0x001B2EFC [Token(Token = "0x60080ED")] [Address(RVA = "0x479A00", Offset = "0x478400", VA = "0x180479A00")] public static RsaKeyParameters GetRsaPublicKey(RSAParameters rp) { int num; BigInteger bigInteger; BigInteger bigInteger2; RsaKeyParameters rsaKeyParameters = new RsaKeyParameters(num != 0, bigInteger, bigInteger2); num = 0; return rsaKeyParameters; } // Token: 0x060080EE RID: 33006 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x60080EE")] [Address(RVA = "0x479450", Offset = "0x477E50", VA = "0x180479450")] public static AsymmetricCipherKeyPair GetKeyPair(AsymmetricAlgorithm privateKey) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060080EF RID: 33007 RVA: 0x001B4D18 File Offset: 0x001B2F18 [Token(Token = "0x60080EF")] [Address(RVA = "0x47A0A0", Offset = "0x478AA0", VA = "0x18047A0A0")] public static RSA ToRSA(RsaKeyParameters rsaKey) { int num = 0; byte[] array = rsaKey.modulus.ToByteArrayUnsigned(); BigInteger exponent = rsaKey.exponent; byte[] array2 = exponent.ToByteArrayUnsigned(); int length = array.Length; byte[] array3 = DotNetUtilities.ConvertRSAParametersField(exponent, length); return DotNetUtilities.CreateRSAProvider(num); } // Token: 0x060080F0 RID: 33008 RVA: 0x001B4D60 File Offset: 0x001B2F60 [Token(Token = "0x60080F0")] [Address(RVA = "0x479F60", Offset = "0x478960", VA = "0x180479F60")] public static RSA ToRSA(RsaKeyParameters rsaKey, CspParameters csp) { int num = 0; byte[] array = rsaKey.modulus.ToByteArrayUnsigned(); BigInteger exponent = rsaKey.exponent; byte[] array2 = exponent.ToByteArrayUnsigned(); int length = array.Length; byte[] array3 = DotNetUtilities.ConvertRSAParametersField(exponent, length); RSAParameters rsaparameters = new RSACryptoServiceProvider(csp).ExportParameters(num != 0); throw new NullReferenceException(); } // Token: 0x060080F1 RID: 33009 RVA: 0x001B4DB0 File Offset: 0x001B2FB0 [Token(Token = "0x60080F1")] [Address(RVA = "0x47A260", Offset = "0x478C60", VA = "0x18047A260")] public static RSA ToRSA(RsaPrivateCrtKeyParameters privKey) { RSAParameters rsaparameters; byte[] p = rsaparameters.P; byte[] dp = rsaparameters.DP; byte[] inverseQ = rsaparameters.InverseQ; RSA rsa; return rsa; } // Token: 0x060080F2 RID: 33010 RVA: 0x001B4DD4 File Offset: 0x001B2FD4 [Token(Token = "0x60080F2")] [Address(RVA = "0x479E20", Offset = "0x478820", VA = "0x180479E20")] public static RSA ToRSA(RsaPrivateCrtKeyParameters privKey, CspParameters csp) { RSAParameters rsaparameters; byte[] p = rsaparameters.P; byte[] dp = rsaparameters.DP; byte[] inverseQ = rsaparameters.InverseQ; RSACryptoServiceProvider rsacryptoServiceProvider = new RSACryptoServiceProvider(csp); throw new NullReferenceException(); } // Token: 0x060080F3 RID: 33011 RVA: 0x001B4E04 File Offset: 0x001B3004 [Token(Token = "0x60080F3")] [Address(RVA = "0x479F10", Offset = "0x478910", VA = "0x180479F10")] public static RSA ToRSA(RsaPrivateKeyStructure privKey) { RSAParameters rsaparameters; byte[] p = rsaparameters.P; byte[] dp = rsaparameters.DP; byte[] inverseQ = rsaparameters.InverseQ; RSA rsa; return rsa; } // Token: 0x060080F4 RID: 33012 RVA: 0x001B4E28 File Offset: 0x001B3028 [Token(Token = "0x60080F4")] [Address(RVA = "0x47A170", Offset = "0x478B70", VA = "0x18047A170")] public static RSA ToRSA(RsaPrivateKeyStructure privKey, CspParameters csp) { RSAParameters rsaparameters; byte[] p = rsaparameters.P; byte[] dp = rsaparameters.DP; byte[] inverseQ = rsaparameters.InverseQ; RSACryptoServiceProvider rsacryptoServiceProvider = new RSACryptoServiceProvider(csp); throw new NullReferenceException(); } // Token: 0x060080F5 RID: 33013 RVA: 0x001B4E58 File Offset: 0x001B3058 [Token(Token = "0x60080F5")] [Address(RVA = "0x479AC0", Offset = "0x4784C0", VA = "0x180479AC0")] public static RSAParameters ToRSAParameters(RsaKeyParameters rsaKey) { if ("{il2cpp array field il2cppMethodInfo->}" == (ulong)0L) { } rsaKey.privateKey = false; rsaKey.exponent = 0; throw new NullReferenceException(); } // Token: 0x060080F6 RID: 33014 RVA: 0x001B4E84 File Offset: 0x001B3084 [Token(Token = "0x60080F6")] [Address(RVA = "0x479CD0", Offset = "0x4786D0", VA = "0x180479CD0")] public static RSAParameters ToRSAParameters(RsaPrivateCrtKeyParameters privKey) { byte[] array; privKey.privateKey = array != null; byte[] array2; privKey.exponent = array2; byte[] array3; privKey.p = array3; throw new NullReferenceException(); } // Token: 0x060080F7 RID: 33015 RVA: 0x001B4EB0 File Offset: 0x001B30B0 [Token(Token = "0x60080F7")] [Address(RVA = "0x479B80", Offset = "0x478580", VA = "0x180479B80")] public static RSAParameters ToRSAParameters(RsaPrivateKeyStructure privKey) { byte[] array; privKey.modulus = array; byte[] array2; privKey.privateExponent = array2; byte[] array3; privKey.prime2 = array3; throw new NullReferenceException(); } // Token: 0x060080F8 RID: 33016 RVA: 0x001B4EDC File Offset: 0x001B30DC [Token(Token = "0x60080F8")] [Address(RVA = "0x478B70", Offset = "0x477570", VA = "0x180478B70")] private static byte[] ConvertRSAParametersField(BigInteger n, int size) { byte[] array = n.ToByteArrayUnsigned(); if (array.Length != size) { byte[] array2 = new byte[size]; int length = array.Length; int num = 0; Array.Copy(array, num, array2, size, length); } return array; } // Token: 0x060080F9 RID: 33017 RVA: 0x001B4F1C File Offset: 0x001B311C [Token(Token = "0x60080F9")] [Address(RVA = "0x478D00", Offset = "0x477700", VA = "0x180478D00")] private static RSA CreateRSAProvider(RSAParameters rp) { CspParameters cspParameters = new CspParameters(); Guid guid = Guid.NewGuid(); string text = string.Format("BouncyCastle-{0}", guid); cspParameters.KeyContainerName = text; RSACryptoServiceProvider rsacryptoServiceProvider = new RSACryptoServiceProvider(cspParameters); byte[] p = rp.P; byte[] dp = rp.DP; byte[] inverseQ = rp.InverseQ; throw new NullReferenceException(); } // Token: 0x060080FA RID: 33018 RVA: 0x001B4F6C File Offset: 0x001B316C [Token(Token = "0x60080FA")] [Address(RVA = "0x478C50", Offset = "0x477650", VA = "0x180478C50")] private static RSA CreateRSAProvider(RSAParameters rp, CspParameters csp) { RSACryptoServiceProvider rsacryptoServiceProvider = new RSACryptoServiceProvider(csp); byte[] p = rp.P; byte[] dp = rp.DP; byte[] inverseQ = rp.InverseQ; throw new NullReferenceException(); } } }