using System; using System.Collections; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms; 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.Math; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.X509; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms { // Token: 0x02001E3B RID: 7739 [Token(Token = "0x2001E3B")] internal class KeyTransRecipientInfoGenerator : RecipientInfoGenerator { // Token: 0x0600C22D RID: 49709 RVA: 0x002BE908 File Offset: 0x002BCB08 [Token(Token = "0x600C22D")] [Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")] internal KeyTransRecipientInfoGenerator() { } // Token: 0x17001E16 RID: 7702 // (set) Token: 0x0600C22E RID: 49710 RVA: 0x002BE91C File Offset: 0x002BCB1C [Token(Token = "0x17001E16")] internal X509Certificate RecipientCert { [Token(Token = "0x600C22E")] [Address(RVA = "0x2931FD0", Offset = "0x2930FD0", VA = "0x182931FD0")] set { DateTime notAfter = value.NotAfter; Asn1Object asn1Object; TbsCertificateStructure instance = TbsCertificateStructure.GetInstance(asn1Object); this.recipientTbsCert = instance; ICollection collection; this.recipientPublicKey = collection; SubjectPublicKeyInfo subjectPublicKeyInfo = this.recipientTbsCert.subjectPublicKeyInfo; this.info = subjectPublicKeyInfo; } } // Token: 0x17001E17 RID: 7703 // (set) Token: 0x0600C22F RID: 49711 RVA: 0x002BE960 File Offset: 0x002BCB60 [Token(Token = "0x17001E17")] internal AsymmetricKeyParameter RecipientPublicKey { [Token(Token = "0x600C22F")] [Address(RVA = "0x2932050", Offset = "0x2931050", VA = "0x182932050")] set { this.recipientPublicKey = value; SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(this.recipientPublicKey); this.info = subjectPublicKeyInfo; } } // Token: 0x17001E18 RID: 7704 // (set) Token: 0x0600C230 RID: 49712 RVA: 0x002BE994 File Offset: 0x002BCB94 [Token(Token = "0x17001E18")] internal Asn1OctetString SubjectKeyIdentifier { [Token(Token = "0x600C230")] [Address(RVA = "0x415810", Offset = "0x414810", VA = "0x180415810")] set { this.subjectKeyIdentifier = value; } } // Token: 0x0600C231 RID: 49713 RVA: 0x002BE9A8 File Offset: 0x002BCBA8 [Token(Token = "0x600C231")] [Address(RVA = "0x2931D00", Offset = "0x2930D00", VA = "0x182931D00", Slot = "4")] public RecipientInfo Generate(KeyParameter contentEncryptionKey, SecureRandom random) { byte[] key = contentEncryptionKey.GetKey(); AlgorithmIdentifier algID = this.info.algID; CmsEnvelopedHelper helper = KeyTransRecipientInfoGenerator.Helper; Asn1Object asn1Object = algID.ToAsn1Object(); ParametersWithRandom parametersWithRandom = new ParametersWithRandom(this.recipientPublicKey, random); int length = key.Length; TbsCertificateStructure tbsCertificateStructure = this.recipientTbsCert; if (tbsCertificateStructure == 0) { RecipientIdentifier recipientIdentifier = new RecipientIdentifier(this.subjectKeyIdentifier); } X509Name issuer = tbsCertificateStructure.issuer; BigInteger value = tbsCertificateStructure.serialNumber.Value; DerOctetString derOctetString; return new RecipientInfo(new KeyTransRecipientInfo(new RecipientIdentifier(new IssuerAndSerialNumber(issuer, value)), algID, derOctetString)); } // Token: 0x04007ADC RID: 31452 [Token(Token = "0x4007ADC")] private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance; // Token: 0x04007ADD RID: 31453 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4007ADD")] private TbsCertificateStructure recipientTbsCert; // Token: 0x04007ADE RID: 31454 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4007ADE")] private AsymmetricKeyParameter recipientPublicKey; // Token: 0x04007ADF RID: 31455 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4007ADF")] private Asn1OctetString subjectKeyIdentifier; // Token: 0x04007AE0 RID: 31456 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007AE0")] private SubjectPublicKeyInfo info; } }