using System; 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: 0x02001A87 RID: 6791 [Token(Token = "0x2001A87")] public sealed class DotNetUtilities { // Token: 0x0600A08A RID: 41098 RVA: 0x00214DA0 File Offset: 0x00212FA0 [Token(Token = "0x600A08A")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] private DotNetUtilities() { } // Token: 0x0600A08B RID: 41099 RVA: 0x00214DB4 File Offset: 0x00212FB4 [Token(Token = "0x600A08B")] [Address(RVA = "0x517900", Offset = "0x516900", VA = "0x180517900")] public static global::System.Security.Cryptography.X509Certificates.X509Certificate ToX509Certificate(X509CertificateStructure x509Struct) { return new global::System.Security.Cryptography.X509Certificates.X509Certificate(x509Struct.GetDerEncoded()); } // Token: 0x0600A08C RID: 41100 RVA: 0x00214DD4 File Offset: 0x00212FD4 [Token(Token = "0x600A08C")] [Address(RVA = "0x517970", Offset = "0x516970", VA = "0x180517970")] 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: 0x0600A08D RID: 41101 RVA: 0x00214DF0 File Offset: 0x00212FF0 [Token(Token = "0x600A08D")] [Address(RVA = "0x516480", Offset = "0x515480", VA = "0x180516480")] 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: 0x0600A08E RID: 41102 RVA: 0x00214E18 File Offset: 0x00213018 [Token(Token = "0x600A08E")] [Address(RVA = "0x516500", Offset = "0x515500", VA = "0x180516500")] public static AsymmetricCipherKeyPair GetDsaKeyPair(DSA dsa) { AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x0600A08F RID: 41103 RVA: 0x00214E2C File Offset: 0x0021302C [Token(Token = "0x600A08F")] [Address(RVA = "0x516570", Offset = "0x515570", VA = "0x180516570")] 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: 0x0600A090 RID: 41104 RVA: 0x00214E8C File Offset: 0x0021308C [Token(Token = "0x600A090")] [Address(RVA = "0x516760", Offset = "0x515760", VA = "0x180516760")] 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: 0x0600A091 RID: 41105 RVA: 0x00214EB8 File Offset: 0x002130B8 [Token(Token = "0x600A091")] [Address(RVA = "0x516920", Offset = "0x515920", VA = "0x180516920")] 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: 0x0600A092 RID: 41106 RVA: 0x00214F04 File Offset: 0x00213104 [Token(Token = "0x600A092")] [Address(RVA = "0x516EE0", Offset = "0x515EE0", VA = "0x180516EE0")] public static AsymmetricCipherKeyPair GetRsaKeyPair(RSA rsa) { byte[] array; byte b = array[0]; byte b2 = array[2]; AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x0600A093 RID: 41107 RVA: 0x00214F28 File Offset: 0x00213128 [Token(Token = "0x600A093")] [Address(RVA = "0x516CB0", Offset = "0x515CB0", VA = "0x180516CB0")] 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: 0x0600A094 RID: 41108 RVA: 0x00214F88 File Offset: 0x00213188 [Token(Token = "0x600A094")] [Address(RVA = "0x516F50", Offset = "0x515F50", VA = "0x180516F50")] 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: 0x0600A095 RID: 41109 RVA: 0x00214FAC File Offset: 0x002131AC [Token(Token = "0x600A095")] [Address(RVA = "0x517050", Offset = "0x516050", VA = "0x180517050")] 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: 0x0600A096 RID: 41110 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x600A096")] [Address(RVA = "0x516AA0", Offset = "0x515AA0", VA = "0x180516AA0")] public static AsymmetricCipherKeyPair GetKeyPair(AsymmetricAlgorithm privateKey) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600A097 RID: 41111 RVA: 0x00214FC8 File Offset: 0x002131C8 [Token(Token = "0x600A097")] [Address(RVA = "0x5176F0", Offset = "0x5166F0", VA = "0x1805176F0")] 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: 0x0600A098 RID: 41112 RVA: 0x00215010 File Offset: 0x00213210 [Token(Token = "0x600A098")] [Address(RVA = "0x5175B0", Offset = "0x5165B0", VA = "0x1805175B0")] 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: 0x0600A099 RID: 41113 RVA: 0x00215060 File Offset: 0x00213260 [Token(Token = "0x600A099")] [Address(RVA = "0x5178B0", Offset = "0x5168B0", VA = "0x1805178B0")] 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: 0x0600A09A RID: 41114 RVA: 0x00215084 File Offset: 0x00213284 [Token(Token = "0x600A09A")] [Address(RVA = "0x517470", Offset = "0x516470", VA = "0x180517470")] 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: 0x0600A09B RID: 41115 RVA: 0x002150B4 File Offset: 0x002132B4 [Token(Token = "0x600A09B")] [Address(RVA = "0x517560", Offset = "0x516560", VA = "0x180517560")] 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: 0x0600A09C RID: 41116 RVA: 0x002150D8 File Offset: 0x002132D8 [Token(Token = "0x600A09C")] [Address(RVA = "0x5177C0", Offset = "0x5167C0", VA = "0x1805177C0")] 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: 0x0600A09D RID: 41117 RVA: 0x00215108 File Offset: 0x00213308 [Token(Token = "0x600A09D")] [Address(RVA = "0x517110", Offset = "0x516110", VA = "0x180517110")] public static RSAParameters ToRSAParameters(RsaKeyParameters rsaKey) { if ("{il2cpp array field il2cppMethodInfo->}" == (ulong)0L) { } rsaKey.privateKey = false; rsaKey.exponent = 0; throw new NullReferenceException(); } // Token: 0x0600A09E RID: 41118 RVA: 0x00215134 File Offset: 0x00213334 [Token(Token = "0x600A09E")] [Address(RVA = "0x517320", Offset = "0x516320", VA = "0x180517320")] 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: 0x0600A09F RID: 41119 RVA: 0x00215160 File Offset: 0x00213360 [Token(Token = "0x600A09F")] [Address(RVA = "0x5171D0", Offset = "0x5161D0", VA = "0x1805171D0")] 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: 0x0600A0A0 RID: 41120 RVA: 0x0021518C File Offset: 0x0021338C [Token(Token = "0x600A0A0")] [Address(RVA = "0x5161C0", Offset = "0x5151C0", VA = "0x1805161C0")] 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: 0x0600A0A1 RID: 41121 RVA: 0x002151CC File Offset: 0x002133CC [Token(Token = "0x600A0A1")] [Address(RVA = "0x516350", Offset = "0x515350", VA = "0x180516350")] 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: 0x0600A0A2 RID: 41122 RVA: 0x0021521C File Offset: 0x0021341C [Token(Token = "0x600A0A2")] [Address(RVA = "0x5162A0", Offset = "0x5152A0", VA = "0x1805162A0")] 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(); } } }