151 lines
4.9 KiB
C#
151 lines
4.9 KiB
C#
using System;
|
|
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: 0x02001A7D RID: 6781
|
|
[Token(Token = "0x2001A7D")]
|
|
public class Pkcs8Generator : PemObjectGenerator
|
|
{
|
|
// Token: 0x0600A062 RID: 41058 RVA: 0x0021389C File Offset: 0x00211A9C
|
|
[Token(Token = "0x600A062")]
|
|
[Address(RVA = "0x64A990", Offset = "0x649990", VA = "0x18064A990")]
|
|
public Pkcs8Generator(AsymmetricKeyParameter privKey)
|
|
{
|
|
this.privKey = privKey;
|
|
}
|
|
|
|
// Token: 0x0600A063 RID: 41059 RVA: 0x002138B8 File Offset: 0x00211AB8
|
|
[Token(Token = "0x600A063")]
|
|
[Address(RVA = "0x64A950", Offset = "0x649950", VA = "0x18064A950")]
|
|
public Pkcs8Generator(AsymmetricKeyParameter privKey, string algorithm)
|
|
{
|
|
this.privKey = privKey;
|
|
this.algorithm = algorithm;
|
|
this.iterationCount = (int)((ulong)2048L);
|
|
}
|
|
|
|
// Token: 0x1700199E RID: 6558
|
|
// (set) Token: 0x0600A064 RID: 41060 RVA: 0x002138E8 File Offset: 0x00211AE8
|
|
[Token(Token = "0x1700199E")]
|
|
public SecureRandom SecureRandom
|
|
{
|
|
[Token(Token = "0x600A064")]
|
|
[Address(RVA = "0x415830", Offset = "0x414830", VA = "0x180415830")]
|
|
set
|
|
{
|
|
this.random = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700199F RID: 6559
|
|
// (set) Token: 0x0600A065 RID: 41061 RVA: 0x002138FC File Offset: 0x00211AFC
|
|
[Token(Token = "0x1700199F")]
|
|
public char[] Password
|
|
{
|
|
[Token(Token = "0x600A065")]
|
|
[Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")]
|
|
set
|
|
{
|
|
this.password = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170019A0 RID: 6560
|
|
// (set) Token: 0x0600A066 RID: 41062 RVA: 0x00213910 File Offset: 0x00211B10
|
|
[Token(Token = "0x170019A0")]
|
|
public int IterationCount
|
|
{
|
|
[Token(Token = "0x600A066")]
|
|
[Address(RVA = "0x62ADB0", Offset = "0x629DB0", VA = "0x18062ADB0")]
|
|
set
|
|
{
|
|
this.iterationCount = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A067 RID: 41063 RVA: 0x00213924 File Offset: 0x00211B24
|
|
[Token(Token = "0x600A067")]
|
|
[Address(RVA = "0x64A600", Offset = "0x649600", VA = "0x18064A600", 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: 0x04006B05 RID: 27397
|
|
[Token(Token = "0x4006B05")]
|
|
public static readonly string PbeSha1_RC4_128 = PkcsObjectIdentifiers.PbeWithShaAnd128BitRC4.identifier;
|
|
|
|
// Token: 0x04006B06 RID: 27398
|
|
[Token(Token = "0x4006B06")]
|
|
public static readonly string PbeSha1_RC4_40 = PkcsObjectIdentifiers.PbeWithShaAnd40BitRC4.identifier;
|
|
|
|
// Token: 0x04006B07 RID: 27399
|
|
[Token(Token = "0x4006B07")]
|
|
public static readonly string PbeSha1_3DES = PkcsObjectIdentifiers.PbeWithShaAnd3KeyTripleDesCbc.identifier;
|
|
|
|
// Token: 0x04006B08 RID: 27400
|
|
[Token(Token = "0x4006B08")]
|
|
public static readonly string PbeSha1_2DES = PkcsObjectIdentifiers.PbeWithShaAnd2KeyTripleDesCbc.identifier;
|
|
|
|
// Token: 0x04006B09 RID: 27401
|
|
[Token(Token = "0x4006B09")]
|
|
public static readonly string PbeSha1_RC2_128 = PkcsObjectIdentifiers.PbeWithShaAnd128BitRC2Cbc.identifier;
|
|
|
|
// Token: 0x04006B0A RID: 27402
|
|
[Token(Token = "0x4006B0A")]
|
|
public static readonly string PbeSha1_RC2_40 = PkcsObjectIdentifiers.PbewithShaAnd40BitRC2Cbc.identifier;
|
|
|
|
// Token: 0x04006B0B RID: 27403
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4006B0B")]
|
|
private char[] password;
|
|
|
|
// Token: 0x04006B0C RID: 27404
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4006B0C")]
|
|
private string algorithm;
|
|
|
|
// Token: 0x04006B0D RID: 27405
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4006B0D")]
|
|
private int iterationCount;
|
|
|
|
// Token: 0x04006B0E RID: 27406
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4006B0E")]
|
|
private AsymmetricKeyParameter privKey;
|
|
|
|
// Token: 0x04006B0F RID: 27407
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4006B0F")]
|
|
private SecureRandom random;
|
|
}
|
|
}
|