153 lines
5.1 KiB
C#
153 lines
5.1 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Pkcs;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Pkcs;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO.Pem;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.OpenSsl
|
|
{
|
|
// Token: 0x020013C0 RID: 5056
|
|
[Token(Token = "0x20013C0")]
|
|
[StructLayout(3)]
|
|
public class Pkcs8Generator : PemObjectGenerator
|
|
{
|
|
// Token: 0x060080BA RID: 32954 RVA: 0x001B35C8 File Offset: 0x001B17C8
|
|
[Token(Token = "0x60080BA")]
|
|
[Address(RVA = "0x4E90C0", Offset = "0x4E7AC0", VA = "0x1804E90C0")]
|
|
public Pkcs8Generator(AsymmetricKeyParameter privKey)
|
|
{
|
|
this.privKey = privKey;
|
|
}
|
|
|
|
// Token: 0x060080BB RID: 32955 RVA: 0x001B35E4 File Offset: 0x001B17E4
|
|
[Token(Token = "0x60080BB")]
|
|
[Address(RVA = "0x4E9080", Offset = "0x4E7A80", VA = "0x1804E9080")]
|
|
public Pkcs8Generator(AsymmetricKeyParameter privKey, string algorithm)
|
|
{
|
|
this.privKey = privKey;
|
|
this.algorithm = algorithm;
|
|
this.iterationCount = (int)((ulong)2048L);
|
|
}
|
|
|
|
// Token: 0x17001500 RID: 5376
|
|
// (set) Token: 0x060080BC RID: 32956 RVA: 0x001B3614 File Offset: 0x001B1814
|
|
[Token(Token = "0x17001500")]
|
|
public SecureRandom SecureRandom
|
|
{
|
|
[Token(Token = "0x60080BC")]
|
|
[Address(RVA = "0x3C1290", Offset = "0x3BFC90", VA = "0x1803C1290")]
|
|
set
|
|
{
|
|
this.random = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001501 RID: 5377
|
|
// (set) Token: 0x060080BD RID: 32957 RVA: 0x001B3628 File Offset: 0x001B1828
|
|
[Token(Token = "0x17001501")]
|
|
public char[] Password
|
|
{
|
|
[Token(Token = "0x60080BD")]
|
|
[Address(RVA = "0x3C39B0", Offset = "0x3C23B0", VA = "0x1803C39B0")]
|
|
set
|
|
{
|
|
this.password = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001502 RID: 5378
|
|
// (set) Token: 0x060080BE RID: 32958 RVA: 0x001B363C File Offset: 0x001B183C
|
|
[Token(Token = "0x17001502")]
|
|
public int IterationCount
|
|
{
|
|
[Token(Token = "0x60080BE")]
|
|
[Address(RVA = "0x4E90F0", Offset = "0x4E7AF0", VA = "0x1804E90F0")]
|
|
set
|
|
{
|
|
this.iterationCount = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x060080BF RID: 32959 RVA: 0x001B3650 File Offset: 0x001B1850
|
|
[Token(Token = "0x60080BF")]
|
|
[Address(RVA = "0x4E8D30", Offset = "0x4E7730", VA = "0x1804E8D30", Slot = "4")]
|
|
public PemObject Generate()
|
|
{
|
|
if (this.PbeSha1_2DES != (ulong)0L)
|
|
{
|
|
byte[] array = new byte[20];
|
|
SecureRandom secureRandom = this.random;
|
|
if (secureRandom == 0)
|
|
{
|
|
SecureRandom secureRandom2 = new SecureRandom();
|
|
this.random = secureRandom2;
|
|
}
|
|
double num = secureRandom.NextDouble();
|
|
string text = this.algorithm;
|
|
char[] array2 = this.password;
|
|
int num2 = this.iterationCount;
|
|
int num3 = 0;
|
|
PrivateKeyInfo privateKeyInfo = PrivateKeyInfoFactory.CreatePrivateKeyInfo(this.privKey, num3);
|
|
byte[] encoded = EncryptedPrivateKeyInfoFactory.CreateEncryptedPrivateKeyInfo(text, array2, array, num2, privateKeyInfo).GetEncoded();
|
|
return new PemObject("ENCRYPTED PRIVATE KEY", encoded);
|
|
}
|
|
int num4 = 0;
|
|
byte[] encoded2 = PrivateKeyInfoFactory.CreatePrivateKeyInfo(this.privKey, num4).GetEncoded();
|
|
PemObject pemObject = new PemObject("PRIVATE KEY", encoded2);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x04005B09 RID: 23305
|
|
[Token(Token = "0x4005B09")]
|
|
public static readonly string PbeSha1_RC4_128 = PkcsObjectIdentifiers.PbeWithShaAnd128BitRC4.identifier;
|
|
|
|
// Token: 0x04005B0A RID: 23306
|
|
[Token(Token = "0x4005B0A")]
|
|
public static readonly string PbeSha1_RC4_40 = PkcsObjectIdentifiers.PbeWithShaAnd40BitRC4.identifier;
|
|
|
|
// Token: 0x04005B0B RID: 23307
|
|
[Token(Token = "0x4005B0B")]
|
|
public static readonly string PbeSha1_3DES = PkcsObjectIdentifiers.PbeWithShaAnd3KeyTripleDesCbc.identifier;
|
|
|
|
// Token: 0x04005B0C RID: 23308
|
|
[Token(Token = "0x4005B0C")]
|
|
public static readonly string PbeSha1_2DES = PkcsObjectIdentifiers.PbeWithShaAnd2KeyTripleDesCbc.identifier;
|
|
|
|
// Token: 0x04005B0D RID: 23309
|
|
[Token(Token = "0x4005B0D")]
|
|
public static readonly string PbeSha1_RC2_128 = PkcsObjectIdentifiers.PbeWithShaAnd128BitRC2Cbc.identifier;
|
|
|
|
// Token: 0x04005B0E RID: 23310
|
|
[Token(Token = "0x4005B0E")]
|
|
public static readonly string PbeSha1_RC2_40 = PkcsObjectIdentifiers.PbewithShaAnd40BitRC2Cbc.identifier;
|
|
|
|
// Token: 0x04005B0F RID: 23311
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4005B0F")]
|
|
private char[] password;
|
|
|
|
// Token: 0x04005B10 RID: 23312
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4005B10")]
|
|
private string algorithm;
|
|
|
|
// Token: 0x04005B11 RID: 23313
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4005B11")]
|
|
private int iterationCount;
|
|
|
|
// Token: 0x04005B12 RID: 23314
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4005B12")]
|
|
private AsymmetricKeyParameter privKey;
|
|
|
|
// Token: 0x04005B13 RID: 23315
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4005B13")]
|
|
private SecureRandom random;
|
|
}
|
|
}
|