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; } }