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: 0x020019A7 RID: 6567 [Token(Token = "0x20019A7")] public sealed class DotNetUtilities { // Token: 0x06009CBC RID: 40124 RVA: 0x0020BD08 File Offset: 0x00209F08 [Token(Token = "0x6009CBC")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] private DotNetUtilities() { } // Token: 0x06009CBD RID: 40125 RVA: 0x0020BD1C File Offset: 0x00209F1C [Token(Token = "0x6009CBD")] [Address(RVA = "0x19AD960", Offset = "0x19AC760", VA = "0x1819AD960")] public static global::System.Security.Cryptography.X509Certificates.X509Certificate ToX509Certificate(X509CertificateStructure x509Struct) { return new global::System.Security.Cryptography.X509Certificates.X509Certificate(x509Struct.GetDerEncoded()); } // Token: 0x06009CBE RID: 40126 RVA: 0x0020BD3C File Offset: 0x00209F3C [Token(Token = "0x6009CBE")] [Address(RVA = "0x19AD9D0", Offset = "0x19AC7D0", VA = "0x1819AD9D0")] 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: 0x06009CBF RID: 40127 RVA: 0x0020BD58 File Offset: 0x00209F58 [Token(Token = "0x6009CBF")] [Address(RVA = "0x19AC4E0", Offset = "0x19AB2E0", VA = "0x1819AC4E0")] 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: 0x06009CC0 RID: 40128 RVA: 0x0020BD80 File Offset: 0x00209F80 [Token(Token = "0x6009CC0")] [Address(RVA = "0x19AC560", Offset = "0x19AB360", VA = "0x1819AC560")] public static AsymmetricCipherKeyPair GetDsaKeyPair(DSA dsa) { AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x06009CC1 RID: 40129 RVA: 0x0020BD94 File Offset: 0x00209F94 [Token(Token = "0x6009CC1")] [Address(RVA = "0x19AC5D0", Offset = "0x19AB3D0", VA = "0x1819AC5D0")] 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: 0x06009CC2 RID: 40130 RVA: 0x0020BDF4 File Offset: 0x00209FF4 [Token(Token = "0x6009CC2")] [Address(RVA = "0x19AC7C0", Offset = "0x19AB5C0", VA = "0x1819AC7C0")] 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: 0x06009CC3 RID: 40131 RVA: 0x0020BE20 File Offset: 0x0020A020 [Token(Token = "0x6009CC3")] [Address(RVA = "0x19AC980", Offset = "0x19AB780", VA = "0x1819AC980")] 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: 0x06009CC4 RID: 40132 RVA: 0x0020BE6C File Offset: 0x0020A06C [Token(Token = "0x6009CC4")] [Address(RVA = "0x19ACF40", Offset = "0x19ABD40", VA = "0x1819ACF40")] public static AsymmetricCipherKeyPair GetRsaKeyPair(RSA rsa) { byte[] array; byte b = array[0]; byte b2 = array[2]; AsymmetricCipherKeyPair asymmetricCipherKeyPair; return asymmetricCipherKeyPair; } // Token: 0x06009CC5 RID: 40133 RVA: 0x0020BE90 File Offset: 0x0020A090 [Token(Token = "0x6009CC5")] [Address(RVA = "0x19ACD10", Offset = "0x19ABB10", VA = "0x1819ACD10")] 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: 0x06009CC6 RID: 40134 RVA: 0x0020BEF0 File Offset: 0x0020A0F0 [Token(Token = "0x6009CC6")] [Address(RVA = "0x19ACFB0", Offset = "0x19ABDB0", VA = "0x1819ACFB0")] 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: 0x06009CC7 RID: 40135 RVA: 0x0020BF14 File Offset: 0x0020A114 [Token(Token = "0x6009CC7")] [Address(RVA = "0x19AD0B0", Offset = "0x19ABEB0", VA = "0x1819AD0B0")] 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: 0x06009CC8 RID: 40136 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6009CC8")] [Address(RVA = "0x19ACB00", Offset = "0x19AB900", VA = "0x1819ACB00")] public static AsymmetricCipherKeyPair GetKeyPair(AsymmetricAlgorithm privateKey) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06009CC9 RID: 40137 RVA: 0x0020BF30 File Offset: 0x0020A130 [Token(Token = "0x6009CC9")] [Address(RVA = "0x19AD750", Offset = "0x19AC550", VA = "0x1819AD750")] 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: 0x06009CCA RID: 40138 RVA: 0x0020BF78 File Offset: 0x0020A178 [Token(Token = "0x6009CCA")] [Address(RVA = "0x19AD610", Offset = "0x19AC410", VA = "0x1819AD610")] 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: 0x06009CCB RID: 40139 RVA: 0x0020BFC8 File Offset: 0x0020A1C8 [Token(Token = "0x6009CCB")] [Address(RVA = "0x19AD910", Offset = "0x19AC710", VA = "0x1819AD910")] 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: 0x06009CCC RID: 40140 RVA: 0x0020BFEC File Offset: 0x0020A1EC [Token(Token = "0x6009CCC")] [Address(RVA = "0x19AD4D0", Offset = "0x19AC2D0", VA = "0x1819AD4D0")] 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: 0x06009CCD RID: 40141 RVA: 0x0020C01C File Offset: 0x0020A21C [Token(Token = "0x6009CCD")] [Address(RVA = "0x19AD5C0", Offset = "0x19AC3C0", VA = "0x1819AD5C0")] 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: 0x06009CCE RID: 40142 RVA: 0x0020C040 File Offset: 0x0020A240 [Token(Token = "0x6009CCE")] [Address(RVA = "0x19AD820", Offset = "0x19AC620", VA = "0x1819AD820")] 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: 0x06009CCF RID: 40143 RVA: 0x0020C070 File Offset: 0x0020A270 [Token(Token = "0x6009CCF")] [Address(RVA = "0x19AD170", Offset = "0x19ABF70", VA = "0x1819AD170")] public static RSAParameters ToRSAParameters(RsaKeyParameters rsaKey) { if ("{il2cpp array field il2cppMethodInfo->}" == (ulong)0L) { } rsaKey.privateKey = false; rsaKey.exponent = 0; throw new NullReferenceException(); } // Token: 0x06009CD0 RID: 40144 RVA: 0x0020C09C File Offset: 0x0020A29C [Token(Token = "0x6009CD0")] [Address(RVA = "0x19AD380", Offset = "0x19AC180", VA = "0x1819AD380")] 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: 0x06009CD1 RID: 40145 RVA: 0x0020C0C8 File Offset: 0x0020A2C8 [Token(Token = "0x6009CD1")] [Address(RVA = "0x19AD230", Offset = "0x19AC030", VA = "0x1819AD230")] 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: 0x06009CD2 RID: 40146 RVA: 0x0020C0F4 File Offset: 0x0020A2F4 [Token(Token = "0x6009CD2")] [Address(RVA = "0x19AC220", Offset = "0x19AB020", VA = "0x1819AC220")] 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: 0x06009CD3 RID: 40147 RVA: 0x0020C134 File Offset: 0x0020A334 [Token(Token = "0x6009CD3")] [Address(RVA = "0x19AC3B0", Offset = "0x19AB1B0", VA = "0x1819AC3B0")] 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: 0x06009CD4 RID: 40148 RVA: 0x0020C184 File Offset: 0x0020A384 [Token(Token = "0x6009CD4")] [Address(RVA = "0x19AC300", Offset = "0x19AB100", VA = "0x1819AC300")] 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(); } } }