Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Cms/PasswordRecipientInfoGenerator.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

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