using System; using System.Collections; using System.IO; 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: 0x02001E16 RID: 7702 [Token(Token = "0x2001E16")] public class CmsEnvelopedDataStreamGenerator : CmsEnvelopedGenerator { // Token: 0x0600C10D RID: 49421 RVA: 0x002B9624 File Offset: 0x002B7824 [Token(Token = "0x600C10D")] [Address(RVA = "0x2145A40", Offset = "0x2144A40", VA = "0x182145A40")] public CmsEnvelopedDataStreamGenerator() { } // Token: 0x0600C10E RID: 49422 RVA: 0x002B9638 File Offset: 0x002B7838 [Token(Token = "0x600C10E")] [Address(RVA = "0x2145AA0", Offset = "0x2144AA0", VA = "0x182145AA0")] public CmsEnvelopedDataStreamGenerator(SecureRandom rand) { IList list = Platform.CreateArrayList(); this.recipientInfoGenerators = list; base..ctor(); this.rand = rand; } // Token: 0x0600C10F RID: 49423 RVA: 0x002B9664 File Offset: 0x002B7864 [Token(Token = "0x600C10F")] [Address(RVA = "0x5C17C0", Offset = "0x5C07C0", VA = "0x1805C17C0")] public void SetBufferSize(int bufferSize) { this._bufferSize = bufferSize; } // Token: 0x0600C110 RID: 49424 RVA: 0x002B9678 File Offset: 0x002B7878 [Token(Token = "0x600C110")] [Address(RVA = "0x8A0F80", Offset = "0x89FF80", VA = "0x1808A0F80")] public void SetBerEncodeRecipients(bool berEncodeRecipientSet) { this._berEncodeRecipientSet = berEncodeRecipientSet; } // Token: 0x17001DF1 RID: 7665 // (get) Token: 0x0600C111 RID: 49425 RVA: 0x002B968C File Offset: 0x002B788C [Token(Token = "0x17001DF1")] private DerInteger Version { [Token(Token = "0x600C111")] [Address(RVA = "0x2145B50", Offset = "0x2144B50", VA = "0x182145B50")] get { if (this._originatorInfo != (ulong)0L || this._unprotectedAttributes == (ulong)0L) { } return new DerInteger(2); } } // Token: 0x0600C112 RID: 49426 RVA: 0x002B96B8 File Offset: 0x002B78B8 [Token(Token = "0x600C112")] [Address(RVA = "0x21456B0", Offset = "0x21446B0", VA = "0x1821456B0")] private Stream Open(Stream outStream, string encryptionOid, CipherKeyGenerator keyGen) { Asn1EncodableVector asn1EncodableVector; for (;;) { int num = 0; byte[] array = keyGen.GenerateKey(); KeyParameter keyParameter = ParameterUtilities.CreateKeyParameter(encryptionOid, array); string text = this.ToString(); IList recipientInfoGenerators = this.recipientInfoGenerators; if (asn1EncodableVector != 0) { break; } ArrayTypeMismatchException ex; if (ex != 0) { } if (num == 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: 0x0600C113 RID: 49427 RVA: 0x002B976C File Offset: 0x002B796C [Token(Token = "0x600C113")] [Address(RVA = "0x2144E80", Offset = "0x2143E80", VA = "0x182144E80")] 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 == 0) { Stream rawOutputStream = derSetGenerator.GetRawOutputStream(); BerSequenceGenerator berSequenceGenerator3; string text4 = berSequenceGenerator3.ToString(); string text5 = berSequenceGenerator3.ToString(); int num2 = 0; SecureRandom rand = this.rand; ParametersWithRandom parametersWithRandom = new ParametersWithRandom(num2, rand); Stream stream; int num3; IBufferedCipher bufferedCipher; CipherStream cipherStream = new CipherStream(stream, num3, bufferedCipher); num3 = 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.", num3); throw new NullReferenceException(); } throw new NullReferenceException(); } // Token: 0x0600C114 RID: 49428 RVA: 0x002B98B4 File Offset: 0x002B7AB4 [Token(Token = "0x600C114")] [Address(RVA = "0x21454D0", Offset = "0x21444D0", VA = "0x1821454D0")] 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: 0x0600C115 RID: 49429 RVA: 0x002B98F4 File Offset: 0x002B7AF4 [Token(Token = "0x600C115")] [Address(RVA = "0x21455C0", Offset = "0x21445C0", VA = "0x1821455C0")] 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: 0x04007A38 RID: 31288 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007A38")] private object _originatorInfo; // Token: 0x04007A39 RID: 31289 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007A39")] private object _unprotectedAttributes; // Token: 0x04007A3A RID: 31290 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007A3A")] private int _bufferSize; // Token: 0x04007A3B RID: 31291 [FieldOffset(Offset = "0x3C")] [Token(Token = "0x4007A3B")] private bool _berEncodeRecipientSet; // Token: 0x02001E17 RID: 7703 [Token(Token = "0x2001E17")] private class CmsEnvelopedDataOutputStream : BaseOutputStream { // Token: 0x0600C116 RID: 49430 RVA: 0x002B992C File Offset: 0x002B7B2C [Token(Token = "0x600C116")] [Address(RVA = "0x2141130", Offset = "0x2140130", VA = "0x182141130")] 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: 0x0600C117 RID: 49431 RVA: 0x002B9964 File Offset: 0x002B7B64 [Token(Token = "0x600C117")] [Address(RVA = "0x21448C0", Offset = "0x21438C0", VA = "0x1821448C0", Slot = "30")] public override void WriteByte(byte b) { ((IDisposable)this._out).Dispose(); } // Token: 0x0600C118 RID: 49432 RVA: 0x002B9984 File Offset: 0x002B7B84 [Token(Token = "0x600C118")] [Address(RVA = "0x21448F0", Offset = "0x21438F0", VA = "0x1821448F0", Slot = "29")] public override void Write(byte[] bytes, int off, int len) { int num = this._out.Read(bytes, off, len); } // Token: 0x0600C119 RID: 49433 RVA: 0x002B99A8 File Offset: 0x002B7BA8 [Token(Token = "0x600C119")] [Address(RVA = "0x2144700", Offset = "0x2143700", VA = "0x182144700", 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: 0x04007A3C RID: 31292 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007A3C")] private readonly CmsEnvelopedGenerator _outer; // Token: 0x04007A3D RID: 31293 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007A3D")] private readonly CipherStream _out; // Token: 0x04007A3E RID: 31294 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007A3E")] private readonly BerSequenceGenerator _cGen; // Token: 0x04007A3F RID: 31295 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007A3F")] private readonly BerSequenceGenerator _envGen; // Token: 0x04007A40 RID: 31296 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4007A40")] private readonly BerSequenceGenerator _eiGen; } } }