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: 0x02001D5B RID: 7515 [Token(Token = "0x2001D5B")] internal class KeyTransRecipientInfoGenerator : RecipientInfoGenerator { // Token: 0x0600BE5F RID: 48735 RVA: 0x002B6010 File Offset: 0x002B4210 [Token(Token = "0x600BE5F")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] internal KeyTransRecipientInfoGenerator() { } // Token: 0x17001D79 RID: 7545 // (set) Token: 0x0600BE60 RID: 48736 RVA: 0x002B6024 File Offset: 0x002B4224 [Token(Token = "0x17001D79")] internal X509Certificate RecipientCert { [Token(Token = "0x600BE60")] [Address(RVA = "0x20114D0", Offset = "0x20102D0", VA = "0x1820114D0")] 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: 0x17001D7A RID: 7546 // (set) Token: 0x0600BE61 RID: 48737 RVA: 0x002B6068 File Offset: 0x002B4268 [Token(Token = "0x17001D7A")] internal AsymmetricKeyParameter RecipientPublicKey { [Token(Token = "0x600BE61")] [Address(RVA = "0x2011550", Offset = "0x2010350", VA = "0x182011550")] set { this.recipientPublicKey = value; SubjectPublicKeyInfo subjectPublicKeyInfo = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(this.recipientPublicKey); this.info = subjectPublicKeyInfo; } } // Token: 0x17001D7B RID: 7547 // (set) Token: 0x0600BE62 RID: 48738 RVA: 0x002B609C File Offset: 0x002B429C [Token(Token = "0x17001D7B")] internal Asn1OctetString SubjectKeyIdentifier { [Token(Token = "0x600BE62")] [Address(RVA = "0x460F90", Offset = "0x45FD90", VA = "0x180460F90")] set { this.subjectKeyIdentifier = value; } } // Token: 0x0600BE63 RID: 48739 RVA: 0x002B60B0 File Offset: 0x002B42B0 [Token(Token = "0x600BE63")] [Address(RVA = "0x2011200", Offset = "0x2010000", VA = "0x182011200", 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: 0x04007923 RID: 31011 [Token(Token = "0x4007923")] private static readonly CmsEnvelopedHelper Helper = CmsEnvelopedHelper.Instance; // Token: 0x04007924 RID: 31012 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4007924")] private TbsCertificateStructure recipientTbsCert; // Token: 0x04007925 RID: 31013 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4007925")] private AsymmetricKeyParameter recipientPublicKey; // Token: 0x04007926 RID: 31014 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4007926")] private Asn1OctetString subjectKeyIdentifier; // Token: 0x04007927 RID: 31015 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007927")] private SubjectPublicKeyInfo info; } }