using System; using System.Collections; using System.IO; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1; using BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.X509; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IO; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms { // Token: 0x02001759 RID: 5977 [Token(Token = "0x2001759")] [StructLayout(3)] public class CmsEnvelopedDataStreamGenerator : CmsEnvelopedGenerator { // Token: 0x0600A165 RID: 41317 RVA: 0x00258960 File Offset: 0x00256B60 [Token(Token = "0x600A165")] [Address(RVA = "0x1C76CC0", Offset = "0x1C756C0", VA = "0x181C76CC0")] public CmsEnvelopedDataStreamGenerator() { } // Token: 0x0600A166 RID: 41318 RVA: 0x00258974 File Offset: 0x00256B74 [Token(Token = "0x600A166")] [Address(RVA = "0x1C76D20", Offset = "0x1C75720", VA = "0x181C76D20")] public CmsEnvelopedDataStreamGenerator(SecureRandom rand) { IList list = Platform.CreateArrayList(); this.recipientInfoGenerators = list; base..ctor(); this.rand = rand; } // Token: 0x0600A167 RID: 41319 RVA: 0x002589A0 File Offset: 0x00256BA0 [Token(Token = "0x600A167")] [Address(RVA = "0x3D4040", Offset = "0x3D2A40", VA = "0x1803D4040")] public void SetBufferSize(int bufferSize) { this._bufferSize = bufferSize; } // Token: 0x0600A168 RID: 41320 RVA: 0x002589B4 File Offset: 0x00256BB4 [Token(Token = "0x600A168")] [Address(RVA = "0x683A70", Offset = "0x682470", VA = "0x180683A70")] public void SetBerEncodeRecipients(bool berEncodeRecipientSet) { this._berEncodeRecipientSet = berEncodeRecipientSet; } // Token: 0x17001953 RID: 6483 // (get) Token: 0x0600A169 RID: 41321 RVA: 0x002589C8 File Offset: 0x00256BC8 [Token(Token = "0x17001953")] private DerInteger Version { [Token(Token = "0x600A169")] [Address(RVA = "0x1C76DD0", Offset = "0x1C757D0", VA = "0x181C76DD0")] get { if (this._originatorInfo != (ulong)0L || this._unprotectedAttributes == (ulong)0L) { } return new DerInteger(2); } } // Token: 0x0600A16A RID: 41322 RVA: 0x002589F4 File Offset: 0x00256BF4 [Token(Token = "0x600A16A")] [Address(RVA = "0x1C76920", Offset = "0x1C75320", VA = "0x181C76920")] private Stream Open(Stream outStream, string encryptionOid, CipherKeyGenerator keyGen) { Asn1EncodableVector asn1EncodableVector; for (;;) { byte[] array = keyGen.GenerateKey(); KeyParameter keyParameter = ParameterUtilities.CreateKeyParameter(encryptionOid, array); string text = this.ToString(); IList recipientInfoGenerators = this.recipientInfoGenerators; if (asn1EncodableVector != 0) { break; } int num = 0; int num2 = 0; ArrayTypeMismatchException ex; if (ex != 0) { } if (num != -1) { } if (num2 == 0) { Stream stream; return stream; } } if (asn1EncodableVector == 0) { } if (asn1EncodableVector != 0) { Asn1Encodable[] array2 = new Asn1Encodable[1]; SecureRandom rand = this.rand; throw new ArrayTypeMismatchException(); } throw new NullReferenceException(); } // Token: 0x0600A16B RID: 41323 RVA: 0x00258AB4 File Offset: 0x00256CB4 [Token(Token = "0x600A16B")] [Address(RVA = "0x1C76080", Offset = "0x1C74A80", VA = "0x181C76080")] private Stream Open(Stream outStream, AlgorithmIdentifier encAlgID, ICipherParameters cipherParameters, Asn1EncodableVector recipientInfos) { int num = 0; BerSequenceGenerator berSequenceGenerator = new BerSequenceGenerator(outStream); string text = berSequenceGenerator.ToString(); if (this._originatorInfo != (ulong)0L || this._unprotectedAttributes != (ulong)0L) { } DerInteger derInteger = new DerInteger(num); BerSequenceGenerator berSequenceGenerator2; string text2 = berSequenceGenerator2.ToString(); if (this._berEncodeRecipientSet) { } IEnumerator enumerator; DerSetGenerator derSetGenerator; string text3; if (enumerator != 0) { if (num < enumerator) { num += num; num++; } if (enumerator == 0) { num += num; } if (enumerator == 0) { throw new NullReferenceException(); } text3 = derSetGenerator.ToString(); } if (text3 != 0) { } if (num != -1) { } if (num == 0) { Stream rawOutputStream = derSetGenerator.GetRawOutputStream(); BerSequenceGenerator berSequenceGenerator3; string text4 = berSequenceGenerator3.ToString(); string text5 = berSequenceGenerator3.ToString(); BerOctetStringGenerator berOctetStringGenerator; Stream rawOutputStream2 = berOctetStringGenerator.GetRawOutputStream(); Stream stream; int num2; IBufferedCipher bufferedCipher; CipherStream cipherStream = new CipherStream(stream, num2, bufferedCipher); num2 = 0; CmsEnvelopedDataStreamGenerator.CmsEnvelopedDataOutputStream cmsEnvelopedDataOutputStream; cmsEnvelopedDataOutputStream._outer = cmsEnvelopedDataOutputStream; cmsEnvelopedDataOutputStream._out = cipherStream; cmsEnvelopedDataOutputStream._cGen = berSequenceGenerator; cmsEnvelopedDataOutputStream._envGen = cmsEnvelopedDataOutputStream; cmsEnvelopedDataOutputStream._eiGen = berSequenceGenerator3; CmsException ex = new CmsException("exception decoding algorithm parameters.", num2); throw new NullReferenceException(); } throw new NullReferenceException(); } // Token: 0x0600A16C RID: 41324 RVA: 0x00258BF8 File Offset: 0x00256DF8 [Token(Token = "0x600A16C")] [Address(RVA = "0x1C76740", Offset = "0x1C75140", VA = "0x181C76740")] public Stream Open(Stream outStream, string encryptionOid) { CipherKeyGenerator keyGenerator = GeneratorUtilities.GetKeyGenerator(encryptionOid); SecureRandom rand = this.rand; int defaultStrength = keyGenerator.defaultStrength; KeyGenerationParameters keyGenerationParameters = new KeyGenerationParameters(rand, defaultStrength); keyGenerator.Init(keyGenerationParameters); return this.Open(outStream, encryptionOid, keyGenerator); } // Token: 0x0600A16D RID: 41325 RVA: 0x00258C38 File Offset: 0x00256E38 [Token(Token = "0x600A16D")] [Address(RVA = "0x1C76830", Offset = "0x1C75230", VA = "0x181C76830")] public Stream Open(Stream outStream, string encryptionOid, int keySize) { CipherKeyGenerator keyGenerator = GeneratorUtilities.GetKeyGenerator(encryptionOid); KeyGenerationParameters keyGenerationParameters = new KeyGenerationParameters(this.rand, keySize); keyGenerator.Init(keyGenerationParameters); return this.Open(outStream, encryptionOid, keyGenerator); } // Token: 0x04006A3C RID: 27196 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4006A3C")] private object _originatorInfo; // Token: 0x04006A3D RID: 27197 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006A3D")] private object _unprotectedAttributes; // Token: 0x04006A3E RID: 27198 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006A3E")] private int _bufferSize; // Token: 0x04006A3F RID: 27199 [global::Cpp2IlInjected.FieldOffset(Offset = "0x3C")] [Token(Token = "0x4006A3F")] private bool _berEncodeRecipientSet; // Token: 0x0200175A RID: 5978 [Token(Token = "0x200175A")] private class CmsEnvelopedDataOutputStream : BaseOutputStream { // Token: 0x0600A16E RID: 41326 RVA: 0x00258C70 File Offset: 0x00256E70 [Token(Token = "0x600A16E")] [Address(RVA = "0x1C72130", Offset = "0x1C70B30", VA = "0x181C72130")] public CmsEnvelopedDataOutputStream(CmsEnvelopedGenerator outer, CipherStream outStream, BerSequenceGenerator cGen, BerSequenceGenerator envGen, BerSequenceGenerator eiGen) { this._envGen = 0; this._outer = outer; this._cGen = cGen; this._eiGen = 0; this._out = outStream; } // Token: 0x0600A16F RID: 41327 RVA: 0x00258CA8 File Offset: 0x00256EA8 [Token(Token = "0x600A16F")] [Address(RVA = "0x1C75AC0", Offset = "0x1C744C0", VA = "0x181C75AC0", Slot = "30")] public override void WriteByte(byte b) { ((IDisposable)this._out).Dispose(); } // Token: 0x0600A170 RID: 41328 RVA: 0x00258CC8 File Offset: 0x00256EC8 [Token(Token = "0x600A170")] [Address(RVA = "0x1C75AF0", Offset = "0x1C744F0", VA = "0x181C75AF0", Slot = "29")] public override void Write(byte[] bytes, int off, int len) { int num = this._out.Read(bytes, off, len); } // Token: 0x0600A171 RID: 41329 RVA: 0x00258CEC File Offset: 0x00256EEC [Token(Token = "0x600A171")] [Address(RVA = "0x1C75900", Offset = "0x1C74300", VA = "0x181C75900", Slot = "15")] public override void Close() { Platform.Dispose(this._out); Stream rawOutputStream = this._eiGen.GetRawOutputStream(); if (this._outer.unprotectedAttributeGenerator != 0) { IDictionary dictionary = Platform.CreateHashtable(); Asn1EncodableVector asn1EncodableVector; BerSet berSet = new BerSet(asn1EncodableVector); BerSequenceGenerator envGen = this._envGen; int num; DerTaggedObject derTaggedObject = new DerTaggedObject(num != 0, 1, berSet); num = 0; string text = envGen.ToString(); } Stream rawOutputStream2 = this._envGen.GetRawOutputStream(); Stream rawOutputStream3 = this._cGen.GetRawOutputStream(); base.Close(); } // Token: 0x04006A40 RID: 27200 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006A40")] private readonly CmsEnvelopedGenerator _outer; // Token: 0x04006A41 RID: 27201 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006A41")] private readonly CipherStream _out; // Token: 0x04006A42 RID: 27202 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4006A42")] private readonly BerSequenceGenerator _cGen; // Token: 0x04006A43 RID: 27203 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4006A43")] private readonly BerSequenceGenerator _envGen; // Token: 0x04006A44 RID: 27204 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4006A44")] private readonly BerSequenceGenerator _eiGen; } } }