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: 0x02001D62 RID: 7522 [Token(Token = "0x2001D62")] internal class PasswordRecipientInfoGenerator : RecipientInfoGenerator { // Token: 0x0600BE7E RID: 48766 RVA: 0x002B6710 File Offset: 0x002B4910 [Token(Token = "0x600BE7E")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] internal PasswordRecipientInfoGenerator() { } // Token: 0x17001D7C RID: 7548 // (set) Token: 0x0600BE7F RID: 48767 RVA: 0x002B6724 File Offset: 0x002B4924 [Token(Token = "0x17001D7C")] internal AlgorithmIdentifier KeyDerivationAlgorithm { [Token(Token = "0x600BE7F")] [Address(RVA = "0x3F7200", Offset = "0x3F6000", VA = "0x1803F7200")] set { this.keyDerivationAlgorithm = value; } } // Token: 0x17001D7D RID: 7549 // (set) Token: 0x0600BE80 RID: 48768 RVA: 0x002B6738 File Offset: 0x002B4938 [Token(Token = "0x17001D7D")] internal KeyParameter KeyEncryptionKey { [Token(Token = "0x600BE80")] [Address(RVA = "0x3F7210", Offset = "0x3F6010", VA = "0x1803F7210")] set { this.keyEncryptionKey = value; } } // Token: 0x17001D7E RID: 7550 // (set) Token: 0x0600BE81 RID: 48769 RVA: 0x002B674C File Offset: 0x002B494C [Token(Token = "0x17001D7E")] internal string KeyEncryptionKeyOID { [Token(Token = "0x600BE81")] [Address(RVA = "0x460F90", Offset = "0x45FD90", VA = "0x180460F90")] set { this.keyEncryptionKeyOID = value; } } // Token: 0x0600BE82 RID: 48770 RVA: 0x002B6760 File Offset: 0x002B4960 [Token(Token = "0x600BE82")] [Address(RVA = "0x2012650", Offset = "0x2011450", VA = "0x182012650", 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: 0x0400792C RID: 31020 [Token(Token = "0x400792C")] private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance; // Token: 0x0400792D RID: 31021 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400792D")] private AlgorithmIdentifier keyDerivationAlgorithm; // Token: 0x0400792E RID: 31022 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400792E")] private KeyParameter keyEncryptionKey; // Token: 0x0400792F RID: 31023 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400792F")] private string keyEncryptionKeyOID; } }