116 lines
4.1 KiB
C#
116 lines
4.1 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms;
|
|
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.Security;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms
|
|
{
|
|
// Token: 0x02001E42 RID: 7746
|
|
[Token(Token = "0x2001E42")]
|
|
internal class PasswordRecipientInfoGenerator : RecipientInfoGenerator
|
|
{
|
|
// Token: 0x0600C24C RID: 49740 RVA: 0x002BF008 File Offset: 0x002BD208
|
|
[Token(Token = "0x600C24C")]
|
|
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
|
internal PasswordRecipientInfoGenerator()
|
|
{
|
|
}
|
|
|
|
// Token: 0x17001E19 RID: 7705
|
|
// (set) Token: 0x0600C24D RID: 49741 RVA: 0x002BF01C File Offset: 0x002BD21C
|
|
[Token(Token = "0x17001E19")]
|
|
internal AlgorithmIdentifier KeyDerivationAlgorithm
|
|
{
|
|
[Token(Token = "0x600C24D")]
|
|
[Address(RVA = "0x415800", Offset = "0x414800", VA = "0x180415800")]
|
|
set
|
|
{
|
|
this.keyDerivationAlgorithm = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001E1A RID: 7706
|
|
// (set) Token: 0x0600C24E RID: 49742 RVA: 0x002BF030 File Offset: 0x002BD230
|
|
[Token(Token = "0x17001E1A")]
|
|
internal KeyParameter KeyEncryptionKey
|
|
{
|
|
[Token(Token = "0x600C24E")]
|
|
[Address(RVA = "0x4157F0", Offset = "0x4147F0", VA = "0x1804157F0")]
|
|
set
|
|
{
|
|
this.keyEncryptionKey = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17001E1B RID: 7707
|
|
// (set) Token: 0x0600C24F RID: 49743 RVA: 0x002BF044 File Offset: 0x002BD244
|
|
[Token(Token = "0x17001E1B")]
|
|
internal string KeyEncryptionKeyOID
|
|
{
|
|
[Token(Token = "0x600C24F")]
|
|
[Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")]
|
|
set
|
|
{
|
|
this.keyEncryptionKeyOID = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600C250 RID: 49744 RVA: 0x002BF058 File Offset: 0x002BD258
|
|
[Token(Token = "0x600C250")]
|
|
[Address(RVA = "0x2933150", Offset = "0x2932150", VA = "0x182933150", Slot = "4")]
|
|
public RecipientInfo Generate(KeyParameter contentEncryptionKey, SecureRandom random)
|
|
{
|
|
byte[] key = contentEncryptionKey.GetKey();
|
|
CmsEnvelopedHelper helper = PasswordRecipientInfoGenerator.Helper;
|
|
string text = this.keyEncryptionKeyOID;
|
|
string rfc3211WrapperName = helper.GetRfc3211WrapperName(text);
|
|
IWrapper wrapper = PasswordRecipientInfoGenerator.Helper.CreateWrapper(rfc3211WrapperName);
|
|
bool flag = Platform.StartsWith(rfc3211WrapperName, "DESEDE");
|
|
byte[] array = new byte[8];
|
|
double num = random.NextDouble();
|
|
ParametersWithRandom parametersWithRandom = new ParametersWithRandom(new ParametersWithIV(this.keyEncryptionKey, array), random);
|
|
int length = key.Length;
|
|
Asn1Encodable[] array2 = new Asn1Encodable[2];
|
|
DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this.keyEncryptionKeyOID);
|
|
if (derObjectIdentifier != 0)
|
|
{
|
|
}
|
|
array2[0] = derObjectIdentifier;
|
|
DerOctetString derOctetString = new DerOctetString(array);
|
|
if (derOctetString != 0)
|
|
{
|
|
}
|
|
array2[1] = derOctetString;
|
|
DerSequence derSequence = new DerSequence(array2);
|
|
AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(PkcsObjectIdentifiers.IdAlgPwriKek, derSequence);
|
|
DerOctetString derOctetString2;
|
|
return new RecipientInfo(new PasswordRecipientInfo(this.keyDerivationAlgorithm, algorithmIdentifier, derOctetString2));
|
|
}
|
|
|
|
// Token: 0x04007AE5 RID: 31461
|
|
[Token(Token = "0x4007AE5")]
|
|
private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance;
|
|
|
|
// Token: 0x04007AE6 RID: 31462
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007AE6")]
|
|
private AlgorithmIdentifier keyDerivationAlgorithm;
|
|
|
|
// Token: 0x04007AE7 RID: 31463
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007AE7")]
|
|
private KeyParameter keyEncryptionKey;
|
|
|
|
// Token: 0x04007AE8 RID: 31464
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007AE8")]
|
|
private string keyEncryptionKeyOID;
|
|
}
|
|
}
|