Files
2026-04-08 23:40:05 +02:00

309 lines
10 KiB
C#

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;
}
}
}