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