255 lines
8.7 KiB
C#
255 lines
8.7 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.IO;
|
|
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.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: 0x02001E0A RID: 7690
|
|
[Token(Token = "0x2001E0A")]
|
|
public class CmsAuthenticatedDataStreamGenerator : CmsAuthenticatedGenerator
|
|
{
|
|
// Token: 0x0600C0D4 RID: 49364 RVA: 0x002B88FC File Offset: 0x002B6AFC
|
|
[Token(Token = "0x600C0D4")]
|
|
[Address(RVA = "0x2140F20", Offset = "0x213FF20", VA = "0x182140F20")]
|
|
public CmsAuthenticatedDataStreamGenerator()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600C0D5 RID: 49365 RVA: 0x002B8910 File Offset: 0x002B6B10
|
|
[Token(Token = "0x600C0D5")]
|
|
[Address(RVA = "0x2140F80", Offset = "0x213FF80", VA = "0x182140F80")]
|
|
public CmsAuthenticatedDataStreamGenerator(SecureRandom rand)
|
|
: base(rand)
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600C0D6 RID: 49366 RVA: 0x002B8924 File Offset: 0x002B6B24
|
|
[Token(Token = "0x600C0D6")]
|
|
[Address(RVA = "0x5AB430", Offset = "0x5AA430", VA = "0x1805AB430")]
|
|
public void SetBufferSize(int bufferSize)
|
|
{
|
|
this._bufferSize = bufferSize;
|
|
}
|
|
|
|
// Token: 0x0600C0D7 RID: 49367 RVA: 0x002B8938 File Offset: 0x002B6B38
|
|
[Token(Token = "0x600C0D7")]
|
|
[Address(RVA = "0x90C8E0", Offset = "0x90B8E0", VA = "0x18090C8E0")]
|
|
public void SetBerEncodeRecipients(bool berEncodeRecipientSet)
|
|
{
|
|
this._berEncodeRecipientSet = berEncodeRecipientSet;
|
|
}
|
|
|
|
// Token: 0x0600C0D8 RID: 49368 RVA: 0x002B894C File Offset: 0x002B6B4C
|
|
[Token(Token = "0x600C0D8")]
|
|
[Address(RVA = "0x2141B00", Offset = "0x2140B00", VA = "0x182141B00")]
|
|
private Stream Open(Stream outStr, string macOid, CipherKeyGenerator keyGen)
|
|
{
|
|
Asn1EncodableVector asn1EncodableVector;
|
|
for (;;)
|
|
{
|
|
byte[] array = keyGen.GenerateKey();
|
|
KeyParameter keyParameter = ParameterUtilities.CreateKeyParameter(macOid, array);
|
|
string text = this.ToString();
|
|
IList recipientInfoGenerators = this.recipientInfoGenerators;
|
|
if (asn1EncodableVector != 0)
|
|
{
|
|
break;
|
|
}
|
|
int num = 0;
|
|
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: 0x0600C0D9 RID: 49369 RVA: 0x002B8A00 File Offset: 0x002B6C00
|
|
[Token(Token = "0x600C0D9")]
|
|
[Address(RVA = "0x2141E90", Offset = "0x2140E90", VA = "0x182141E90")]
|
|
protected Stream Open(Stream outStr, AlgorithmIdentifier macAlgId, ICipherParameters cipherParameters, Asn1EncodableVector recipientInfos)
|
|
{
|
|
int num = 0;
|
|
BerSequenceGenerator berSequenceGenerator = new BerSequenceGenerator(outStr);
|
|
string text = berSequenceGenerator.ToString();
|
|
DerInteger derInteger = new DerInteger(AuthenticatedData.CalculateVersion(0));
|
|
BerSequenceGenerator berSequenceGenerator2;
|
|
string text2 = berSequenceGenerator2.ToString();
|
|
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();
|
|
string text4 = berSequenceGenerator2.ToString();
|
|
BerSequenceGenerator berSequenceGenerator3;
|
|
string text5 = berSequenceGenerator3.ToString();
|
|
IMac mac;
|
|
MacSink macSink = new MacSink(mac);
|
|
Stream stream;
|
|
TeeOutputStream teeOutputStream = new TeeOutputStream(stream, macSink);
|
|
CmsAuthenticatedDataStreamGenerator.CmsAuthenticatedDataOutputStream cmsAuthenticatedDataOutputStream;
|
|
cmsAuthenticatedDataOutputStream.macStream = teeOutputStream;
|
|
cmsAuthenticatedDataOutputStream.mac = mac;
|
|
cmsAuthenticatedDataOutputStream.cGen = berSequenceGenerator;
|
|
cmsAuthenticatedDataOutputStream.authGen = berSequenceGenerator2;
|
|
cmsAuthenticatedDataOutputStream.eiGen = berSequenceGenerator3;
|
|
throw new NullReferenceException();
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600C0DA RID: 49370 RVA: 0x002B8B00 File Offset: 0x002B6D00
|
|
[Token(Token = "0x600C0DA")]
|
|
[Address(RVA = "0x2142580", Offset = "0x2141580", VA = "0x182142580")]
|
|
public Stream Open(Stream outStr, 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(outStr, encryptionOid, keyGenerator);
|
|
}
|
|
|
|
// Token: 0x0600C0DB RID: 49371 RVA: 0x002B8B40 File Offset: 0x002B6D40
|
|
[Token(Token = "0x600C0DB")]
|
|
[Address(RVA = "0x2142490", Offset = "0x2141490", VA = "0x182142490")]
|
|
public Stream Open(Stream outStr, string encryptionOid, int keySize)
|
|
{
|
|
CipherKeyGenerator keyGenerator = GeneratorUtilities.GetKeyGenerator(encryptionOid);
|
|
KeyGenerationParameters keyGenerationParameters = new KeyGenerationParameters(this.rand, keySize);
|
|
keyGenerator.Init(keyGenerationParameters);
|
|
return this.Open(outStr, encryptionOid, keyGenerator);
|
|
}
|
|
|
|
// Token: 0x04007A1E RID: 31262
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007A1E")]
|
|
private int _bufferSize;
|
|
|
|
// Token: 0x04007A1F RID: 31263
|
|
[FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x4007A1F")]
|
|
private bool _berEncodeRecipientSet;
|
|
|
|
// Token: 0x02001E0B RID: 7691
|
|
[Token(Token = "0x2001E0B")]
|
|
private class CmsAuthenticatedDataOutputStream : BaseOutputStream
|
|
{
|
|
// Token: 0x0600C0DC RID: 49372 RVA: 0x002B8B78 File Offset: 0x002B6D78
|
|
[Token(Token = "0x600C0DC")]
|
|
[Address(RVA = "0x2141130", Offset = "0x2140130", VA = "0x182141130")]
|
|
public CmsAuthenticatedDataOutputStream(Stream macStream, IMac mac, BerSequenceGenerator cGen, BerSequenceGenerator authGen, BerSequenceGenerator eiGen)
|
|
{
|
|
this.authGen = 0;
|
|
this.macStream = macStream;
|
|
this.cGen = cGen;
|
|
this.eiGen = 0;
|
|
this.mac = mac;
|
|
}
|
|
|
|
// Token: 0x0600C0DD RID: 49373 RVA: 0x002B8BB0 File Offset: 0x002B6DB0
|
|
[Token(Token = "0x600C0DD")]
|
|
[Address(RVA = "0x21410D0", Offset = "0x21400D0", VA = "0x1821410D0", Slot = "30")]
|
|
public override void WriteByte(byte b)
|
|
{
|
|
bool canRead = this.macStream.CanRead;
|
|
}
|
|
|
|
// Token: 0x0600C0DE RID: 49374 RVA: 0x002B8BD0 File Offset: 0x002B6DD0
|
|
[Token(Token = "0x600C0DE")]
|
|
[Address(RVA = "0x2141100", Offset = "0x2140100", VA = "0x182141100", Slot = "29")]
|
|
public override void Write(byte[] bytes, int off, int len)
|
|
{
|
|
bool canRead = this.macStream.CanRead;
|
|
}
|
|
|
|
// Token: 0x0600C0DF RID: 49375 RVA: 0x002B8BF0 File Offset: 0x002B6DF0
|
|
[Token(Token = "0x600C0DF")]
|
|
[Address(RVA = "0x2140F90", Offset = "0x213FF90", VA = "0x182140F90", Slot = "15")]
|
|
public override void Close()
|
|
{
|
|
Platform.Dispose(this.macStream);
|
|
Stream rawOutputStream = this.eiGen.GetRawOutputStream();
|
|
byte[] array = MacUtilities.DoFinal(this.mac);
|
|
BerSequenceGenerator berSequenceGenerator = this.authGen;
|
|
DerOctetString derOctetString = new DerOctetString(array);
|
|
string text = berSequenceGenerator.ToString();
|
|
Stream rawOutputStream2 = this.authGen.GetRawOutputStream();
|
|
Stream rawOutputStream3 = this.cGen.GetRawOutputStream();
|
|
base.Close();
|
|
}
|
|
|
|
// Token: 0x04007A20 RID: 31264
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4007A20")]
|
|
private readonly Stream macStream;
|
|
|
|
// Token: 0x04007A21 RID: 31265
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4007A21")]
|
|
private readonly IMac mac;
|
|
|
|
// Token: 0x04007A22 RID: 31266
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4007A22")]
|
|
private readonly BerSequenceGenerator cGen;
|
|
|
|
// Token: 0x04007A23 RID: 31267
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4007A23")]
|
|
private readonly BerSequenceGenerator authGen;
|
|
|
|
// Token: 0x04007A24 RID: 31268
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x4007A24")]
|
|
private readonly BerSequenceGenerator eiGen;
|
|
}
|
|
}
|
|
}
|