355 lines
13 KiB
C#
355 lines
13 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|