using System; using System.Runtime.InteropServices; 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: 0x02001785 RID: 6021 [Token(Token = "0x2001785")] [StructLayout(3)] internal class PasswordRecipientInfoGenerator : RecipientInfoGenerator { // Token: 0x0600A2A4 RID: 41636 RVA: 0x0025E308 File Offset: 0x0025C508 [Token(Token = "0x600A2A4")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] internal PasswordRecipientInfoGenerator() { } // Token: 0x1700197B RID: 6523 // (set) Token: 0x0600A2A5 RID: 41637 RVA: 0x0025E31C File Offset: 0x0025C51C [Token(Token = "0x1700197B")] internal AlgorithmIdentifier KeyDerivationAlgorithm { [Token(Token = "0x600A2A5")] [Address(RVA = "0x3C39B0", Offset = "0x3C23B0", VA = "0x1803C39B0")] set { this.keyDerivationAlgorithm = value; } } // Token: 0x1700197C RID: 6524 // (set) Token: 0x0600A2A6 RID: 41638 RVA: 0x0025E330 File Offset: 0x0025C530 [Token(Token = "0x1700197C")] internal KeyParameter KeyEncryptionKey { [Token(Token = "0x600A2A6")] [Address(RVA = "0x3C1280", Offset = "0x3BFC80", VA = "0x1803C1280")] set { this.keyEncryptionKey = value; } } // Token: 0x1700197D RID: 6525 // (set) Token: 0x0600A2A7 RID: 41639 RVA: 0x0025E344 File Offset: 0x0025C544 [Token(Token = "0x1700197D")] internal string KeyEncryptionKeyOID { [Token(Token = "0x600A2A7")] [Address(RVA = "0x3C1260", Offset = "0x3BFC60", VA = "0x1803C1260")] set { this.keyEncryptionKeyOID = value; } } // Token: 0x0600A2A8 RID: 41640 RVA: 0x0025E358 File Offset: 0x0025C558 [Token(Token = "0x600A2A8")] [Address(RVA = "0x661B50", Offset = "0x660550", VA = "0x180661B50", 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: 0x04006AE9 RID: 27369 [Token(Token = "0x4006AE9")] private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance; // Token: 0x04006AEA RID: 27370 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4006AEA")] private AlgorithmIdentifier keyDerivationAlgorithm; // Token: 0x04006AEB RID: 27371 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4006AEB")] private KeyParameter keyEncryptionKey; // Token: 0x04006AEC RID: 27372 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4006AEC")] private string keyEncryptionKeyOID; } }