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.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Collections; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using BestHTTP.SecureProtocol.Org.BouncyCastle.X509; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms { // Token: 0x02001D48 RID: 7496 [Token(Token = "0x2001D48")] public class CmsSignedDataStreamGenerator : CmsSignedGenerator { // Token: 0x0600BDD1 RID: 48593 RVA: 0x002B31CC File Offset: 0x002B13CC [Token(Token = "0x600BDD1")] [Address(RVA = "0x166C520", Offset = "0x166B320", VA = "0x18166C520")] public CmsSignedDataStreamGenerator() { IList list = Platform.CreateArrayList(); this._signerInfs = list; HashSet hashSet = new HashSet(); this._messageDigestOids = hashSet; IDictionary dictionary = Platform.CreateHashtable(); this._messageDigests = dictionary; IDictionary dictionary2 = Platform.CreateHashtable(); this._messageHashes = dictionary2; base..ctor(); } // Token: 0x0600BDD2 RID: 48594 RVA: 0x002B3220 File Offset: 0x002B1420 [Token(Token = "0x600BDD2")] [Address(RVA = "0x166C5E0", Offset = "0x166B3E0", VA = "0x18166C5E0")] public CmsSignedDataStreamGenerator(SecureRandom rand) { IList list = Platform.CreateArrayList(); this._signerInfs = list; HashSet hashSet = new HashSet(); this._messageDigestOids = hashSet; IDictionary dictionary = Platform.CreateHashtable(); this._messageDigests = dictionary; IDictionary dictionary2 = Platform.CreateHashtable(); this._messageHashes = dictionary2; base..ctor(rand); } // Token: 0x0600BDD3 RID: 48595 RVA: 0x002B3274 File Offset: 0x002B1474 [Token(Token = "0x600BDD3")] [Address(RVA = "0x731CC0", Offset = "0x730AC0", VA = "0x180731CC0")] public void SetBufferSize(int bufferSize) { this._bufferSize = bufferSize; } // Token: 0x0600BDD4 RID: 48596 RVA: 0x002B3288 File Offset: 0x002B1488 [Token(Token = "0x600BDD4")] [Address(RVA = "0x166A420", Offset = "0x1669220", VA = "0x18166A420")] public void AddDigests(params string[] digestOids) { this.AddDigests(digestOids); } // Token: 0x0600BDD5 RID: 48597 RVA: 0x002B329C File Offset: 0x002B149C [Token(Token = "0x600BDD5")] [Address(RVA = "0x166A430", Offset = "0x1669230", VA = "0x18166A430")] public void AddDigests(IEnumerable digestOids) { int num; do { num = 0; num += num; num++; if (num != 0 && num == 0) { goto IL_2F; } this.ConfigureDigest(num); num += num; num++; num += 19; if (num != 0) { } } while (num != 0); return; IL_2F: throw new NullReferenceException(); } // Token: 0x0600BDD6 RID: 48598 RVA: 0x002B32E0 File Offset: 0x002B14E0 [Token(Token = "0x600BDD6")] [Address(RVA = "0x166ABA0", Offset = "0x16699A0", VA = "0x18166ABA0")] public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string digestOid) { DefaultSignedAttributeTableGenerator defaultSignedAttributeTableGenerator = new DefaultSignedAttributeTableGenerator(); int num = 0; this.AddSigner(privateKey, cert, digestOid, defaultSignedAttributeTableGenerator, num); } // Token: 0x0600BDD7 RID: 48599 RVA: 0x002B3300 File Offset: 0x002B1500 [Token(Token = "0x600BDD7")] [Address(RVA = "0x166A630", Offset = "0x1669430", VA = "0x18166A630")] public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string encryptionOid, string digestOid) { DefaultSignedAttributeTableGenerator defaultSignedAttributeTableGenerator = new DefaultSignedAttributeTableGenerator(); SignerIdentifier signerIdentifier = CmsSignedGenerator.GetSignerIdentifier(cert); } // Token: 0x0600BDD8 RID: 48600 RVA: 0x002B331C File Offset: 0x002B151C [Token(Token = "0x600BDD8")] [Address(RVA = "0x166A7F0", Offset = "0x16695F0", VA = "0x18166A7F0")] public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string digestOid, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr) { } // Token: 0x0600BDD9 RID: 48601 RVA: 0x002B332C File Offset: 0x002B152C [Token(Token = "0x600BDD9")] [Address(RVA = "0x166AAD0", Offset = "0x16698D0", VA = "0x18166AAD0")] public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string encryptionOid, string digestOid, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr) { } // Token: 0x0600BDDA RID: 48602 RVA: 0x002B333C File Offset: 0x002B153C [Token(Token = "0x600BDDA")] [Address(RVA = "0x166A720", Offset = "0x1669520", VA = "0x18166A720")] public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator) { string encOid = CmsSignedDataStreamGenerator.Helper.GetEncOid(privateKey, digestOid); } // Token: 0x0600BDDB RID: 48603 RVA: 0x002B335C File Offset: 0x002B155C [Token(Token = "0x600BDDB")] [Address(RVA = "0x166AE00", Offset = "0x1669C00", VA = "0x18166AE00")] public void AddSigner(AsymmetricKeyParameter privateKey, X509Certificate cert, string encryptionOid, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator) { SignerIdentifier signerIdentifier = CmsSignedGenerator.GetSignerIdentifier(cert); } // Token: 0x0600BDDC RID: 48604 RVA: 0x002B3370 File Offset: 0x002B1570 [Token(Token = "0x600BDDC")] [Address(RVA = "0x166AA30", Offset = "0x1669830", VA = "0x18166AA30")] public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string digestOid) { DefaultSignedAttributeTableGenerator defaultSignedAttributeTableGenerator = new DefaultSignedAttributeTableGenerator(); int num = 0; this.AddSigner(privateKey, subjectKeyID, digestOid, defaultSignedAttributeTableGenerator, num); } // Token: 0x0600BDDD RID: 48605 RVA: 0x002B3390 File Offset: 0x002B1590 [Token(Token = "0x600BDDD")] [Address(RVA = "0x166AC40", Offset = "0x1669A40", VA = "0x18166AC40")] public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string encryptionOid, string digestOid) { DefaultSignedAttributeTableGenerator defaultSignedAttributeTableGenerator = new DefaultSignedAttributeTableGenerator(); SignerIdentifier signerIdentifier = CmsSignedGenerator.GetSignerIdentifier(subjectKeyID); } // Token: 0x0600BDDE RID: 48606 RVA: 0x002B33AC File Offset: 0x002B15AC [Token(Token = "0x600BDDE")] [Address(RVA = "0x166A960", Offset = "0x1669760", VA = "0x18166A960")] public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string digestOid, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable signedAttr, BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable unsignedAttr) { } // Token: 0x0600BDDF RID: 48607 RVA: 0x002B33BC File Offset: 0x002B15BC [Token(Token = "0x600BDDF")] [Address(RVA = "0x166AD30", Offset = "0x1669B30", VA = "0x18166AD30")] public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator) { string encOid = CmsSignedDataStreamGenerator.Helper.GetEncOid(privateKey, digestOid); } // Token: 0x0600BDE0 RID: 48608 RVA: 0x002B33DC File Offset: 0x002B15DC [Token(Token = "0x600BDE0")] [Address(RVA = "0x166A8C0", Offset = "0x16696C0", VA = "0x18166A8C0")] public void AddSigner(AsymmetricKeyParameter privateKey, byte[] subjectKeyID, string encryptionOid, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator) { SignerIdentifier signerIdentifier = CmsSignedGenerator.GetSignerIdentifier(subjectKeyID); } // Token: 0x0600BDE1 RID: 48609 RVA: 0x002B33F0 File Offset: 0x002B15F0 [Token(Token = "0x600BDE1")] [Address(RVA = "0x166B840", Offset = "0x166A640", VA = "0x18166B840")] private void DoAddSigner(AsymmetricKeyParameter privateKey, SignerIdentifier signerIdentifier, string encryptionOid, string digestOid, CmsAttributeTableGenerator signedAttrGenerator, CmsAttributeTableGenerator unsignedAttrGenerator) { IList signerInfs = this._signerInfs; throw new NullReferenceException(); } // Token: 0x0600BDE2 RID: 48610 RVA: 0x002B340C File Offset: 0x002B160C [Token(Token = "0x600BDE2")] [Address(RVA = "0x166A5E0", Offset = "0x16693E0", VA = "0x18166A5E0", Slot = "6")] internal override void AddSignerCallback(SignerInformation si) { Asn1Object asn1Object = si.digestAlgorithm.ToAsn1Object(); } // Token: 0x0600BDE3 RID: 48611 RVA: 0x002B342C File Offset: 0x002B162C [Token(Token = "0x600BDE3")] [Address(RVA = "0x166BCC0", Offset = "0x166AAC0", VA = "0x18166BCC0")] public Stream Open(Stream outStream) { int num = 0; int num2 = 0; string data = CmsSignedGenerator.Data; return this.Open(outStream, data, num2 != 0, num); } // Token: 0x0600BDE4 RID: 48612 RVA: 0x002B3450 File Offset: 0x002B1650 [Token(Token = "0x600BDE4")] [Address(RVA = "0x166BC20", Offset = "0x166AA20", VA = "0x18166BC20")] public Stream Open(Stream outStream, bool encapsulate) { int num = 0; string data = CmsSignedGenerator.Data; return this.Open(outStream, data, encapsulate, num); } // Token: 0x0600BDE5 RID: 48613 RVA: 0x002B3470 File Offset: 0x002B1670 [Token(Token = "0x600BDE5")] [Address(RVA = "0x166BB80", Offset = "0x166A980", VA = "0x18166BB80")] public Stream Open(Stream outStream, bool encapsulate, Stream dataOutputStream) { string data = CmsSignedGenerator.Data; return this.Open(outStream, data, encapsulate, dataOutputStream); } // Token: 0x0600BDE6 RID: 48614 RVA: 0x002B3490 File Offset: 0x002B1690 [Token(Token = "0x600BDE6")] [Address(RVA = "0x166C3E0", Offset = "0x166B1E0", VA = "0x18166C3E0")] public Stream Open(Stream outStream, string signedContentType, bool encapsulate) { int num = 0; return this.Open(outStream, signedContentType, encapsulate, num); } // Token: 0x0600BDE7 RID: 48615 RVA: 0x002B34AC File Offset: 0x002B16AC [Token(Token = "0x600BDE7")] [Address(RVA = "0x166BD50", Offset = "0x166AB50", VA = "0x18166BD50")] public Stream Open(Stream outStream, string signedContentType, bool encapsulate, Stream dataOutputStream) { int num; Asn1EncodableVector asn1EncodableVector; for (;;) { num = 0; if (outStream == 0) { goto IL_E1; } if (outStream.CanSeek) { if (outStream != 0 && !outStream.CanSeek) { goto IL_ED; } this._messageDigestsLocked = true; string text = new BerSequenceGenerator(outStream).ToString(); if (signedContentType == 0) { } DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(signedContentType); DerInteger derInteger = this.CalculateVersion(derObjectIdentifier); BerSequenceGenerator berSequenceGenerator; string text2 = berSequenceGenerator.ToString(); ISet messageDigestOids = this._messageDigestOids; if (asn1EncodableVector != 0) { break; } ArrayTypeMismatchException ex; if (ex != 0) { } if (num == 0) { goto Block_5; } } } Asn1Encodable[] array; if (asn1EncodableVector == 0 || asn1EncodableVector != 0) { array = new Asn1Encodable[1]; DerObjectIdentifier derObjectIdentifier2 = new DerObjectIdentifier(num); DerNull instance = DerNull.Instance; AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(derObjectIdentifier2, instance); throw new ArrayTypeMismatchException(); } throw new NullReferenceException(); Block_5: byte[] encoded = new DerSet(asn1EncodableVector).GetEncoded(); Asn1Object asn1Object = array.ToAsn1Object(); Asn1Object asn1Object2 = array.ToAsn1Object(); BerSequenceGenerator berSequenceGenerator2; string text3 = berSequenceGenerator2.ToString(); IL_E1: ArgumentNullException ex2 = new ArgumentNullException("outStream"); IL_ED: ArgumentException ex3 = new ArgumentException("Expected writeable stream", "dataOutputStream"); throw new IndexOutOfRangeException(); } // Token: 0x0600BDE8 RID: 48616 RVA: 0x002B35D0 File Offset: 0x002B17D0 [Token(Token = "0x600BDE8")] [Address(RVA = "0x166C400", Offset = "0x166B200", VA = "0x18166C400")] private void RegisterDigestOid(string digestOid) { ISet messageDigestOids = this._messageDigestOids; if (!this._messageDigestsLocked) { return; } throw new NullReferenceException(); } // Token: 0x0600BDE9 RID: 48617 RVA: 0x002B3600 File Offset: 0x002B1800 [Token(Token = "0x600BDE9")] [Address(RVA = "0x166B6A0", Offset = "0x166A4A0", VA = "0x18166B6A0")] private void ConfigureDigest(string digestOid) { /* An exception occurred when decompiling this method (0600BDE9) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsSignedDataStreamGenerator::ConfigureDigest(System.String) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_45: stloc:InvalidOperationException(var_4_4F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Cannot configure new digests after the data stream is opened"))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600BDEA RID: 48618 RVA: 0x002B3660 File Offset: 0x002B1860 [Token(Token = "0x600BDEA")] [Address(RVA = "0x166B950", Offset = "0x166A750", VA = "0x18166B950")] internal void Generate(Stream outStream, string eContentType, bool encapsulate, Stream dataOutputStream, CmsProcessable content) { } // Token: 0x0600BDEB RID: 48619 RVA: 0x002B3670 File Offset: 0x002B1870 [Token(Token = "0x600BDEB")] [Address(RVA = "0x166B050", Offset = "0x1669E50", VA = "0x18166B050")] private DerInteger CalculateVersion(DerObjectIdentifier contentOid) { int num; do { num = 0; if (this._certs != 0) { if (num != 0) { goto IL_6D; } if (num != -1) { } if ((ulong)1L != 0UL) { goto IL_60; } } if (this._crls == 0) { break; } if ((uint)(-1) != 0U) { } } while (num != 0); DerObjectIdentifier data = CmsObjectIdentifiers.Data; IList signers = this._signers; if (!this.CheckForVersion3(signers)) { DerInteger derInteger = new DerInteger(5); } DerInteger derInteger2 = new DerInteger(5); DerInteger derInteger3 = new DerInteger(5); IL_60: return new DerInteger(5); IL_6D: throw new NullReferenceException(); } // Token: 0x0600BDEC RID: 48620 RVA: 0x002B36F0 File Offset: 0x002B18F0 [Token(Token = "0x600BDEC")] [Address(RVA = "0x166B450", Offset = "0x166A250", VA = "0x18166B450")] private bool CheckForVersion3(IList signerInfos) { int num; do { num = 0; SignerInfo signerInfo; int intValue = signerInfo.version.Value.IntValue; while (intValue != 3) { } if (intValue != 0) { } } while (num != 0); if (num != -1) { return true; } throw new NullReferenceException(); } // Token: 0x0600BDED RID: 48621 RVA: 0x002B3750 File Offset: 0x002B1950 [Token(Token = "0x600BDED")] [Address(RVA = "0x166AEA0", Offset = "0x1669CA0", VA = "0x18166AEA0")] private static Stream AttachDigestsToOutputStream(ICollection digests, Stream s) { int num; Stream safeTeeOutputStream; do { num = 0; DigestSink digestSink; safeTeeOutputStream = CmsSignedDataStreamGenerator.GetSafeTeeOutputStream(s, digestSink); if (safeTeeOutputStream != 0) { } } while (num != 0); return safeTeeOutputStream; } // Token: 0x0600BDEE RID: 48622 RVA: 0x002B377C File Offset: 0x002B197C [Token(Token = "0x600BDEE")] [Address(RVA = "0x166BA10", Offset = "0x166A810", VA = "0x18166BA10")] private static Stream GetSafeOutputStream(Stream s) { if (s == 0) { NullOutputStream nullOutputStream = new NullOutputStream(); } return s; } // Token: 0x0600BDEF RID: 48623 RVA: 0x002B3794 File Offset: 0x002B1994 [Token(Token = "0x600BDEF")] [Address(RVA = "0x166BA60", Offset = "0x166A860", VA = "0x18166BA60")] private static Stream GetSafeTeeOutputStream(Stream s1, Stream s2) { /* An exception occurred when decompiling this method (0600BDEF) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.IO.Stream BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsSignedDataStreamGenerator::GetSafeTeeOutputStream(System.IO.Stream,System.IO.Stream) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_2: stloc:NullOutputStream(var_1_1B, newobj:NullOutputStream(NullOutputStream::.ctor)) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x040078D3 RID: 30931 [Token(Token = "0x40078D3")] private static readonly CmsSignedHelper Helper = CmsSignedHelper.Instance; // Token: 0x040078D4 RID: 30932 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40078D4")] private readonly IList _signerInfs; // Token: 0x040078D5 RID: 30933 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40078D5")] private readonly ISet _messageDigestOids; // Token: 0x040078D6 RID: 30934 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40078D6")] private readonly IDictionary _messageDigests; // Token: 0x040078D7 RID: 30935 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40078D7")] private readonly IDictionary _messageHashes; // Token: 0x040078D8 RID: 30936 [FieldOffset(Offset = "0x60")] [Token(Token = "0x40078D8")] private bool _messageDigestsLocked; // Token: 0x040078D9 RID: 30937 [FieldOffset(Offset = "0x64")] [Token(Token = "0x40078D9")] private int _bufferSize; // Token: 0x02001D49 RID: 7497 [Token(Token = "0x2001D49")] private class DigestAndSignerInfoGeneratorHolder { // Token: 0x0600BDF1 RID: 48625 RVA: 0x002B37D4 File Offset: 0x002B19D4 [Token(Token = "0x600BDF1")] [Address(RVA = "0x4089A0", Offset = "0x4077A0", VA = "0x1804089A0")] internal DigestAndSignerInfoGeneratorHolder(ISignerInfoGenerator signerInf, string digestOID) { this.signerInf = signerInf; this.digestOID = digestOID; } // Token: 0x17001D6C RID: 7532 // (get) Token: 0x0600BDF2 RID: 48626 RVA: 0x002B37F8 File Offset: 0x002B19F8 [Token(Token = "0x17001D6C")] internal AlgorithmIdentifier DigestAlgorithm { [Token(Token = "0x600BDF2")] [Address(RVA = "0x2008D30", Offset = "0x2007B30", VA = "0x182008D30")] get { DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this.digestOID); DerNull instance = DerNull.Instance; return new AlgorithmIdentifier(derObjectIdentifier, instance); } } // Token: 0x040078DA RID: 30938 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40078DA")] internal readonly ISignerInfoGenerator signerInf; // Token: 0x040078DB RID: 30939 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40078DB")] internal readonly string digestOID; } // Token: 0x02001D4A RID: 7498 [Token(Token = "0x2001D4A")] private class SignerInfoGeneratorImpl : ISignerInfoGenerator { // Token: 0x0600BDF3 RID: 48627 RVA: 0x002B3820 File Offset: 0x002B1A20 [Token(Token = "0x600BDF3")] [Address(RVA = "0x2014BF0", Offset = "0x20139F0", VA = "0x182014BF0")] internal SignerInfoGeneratorImpl(CmsSignedDataStreamGenerator outer, AsymmetricKeyParameter key, SignerIdentifier signerIdentifier, string digestOID, string encOID, CmsAttributeTableGenerator sAttr, CmsAttributeTableGenerator unsAttr) { /* An exception occurred when decompiling this method (0600BDF3) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsSignedDataStreamGenerator/SignerInfoGeneratorImpl::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsSignedDataStreamGenerator,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.AsymmetricKeyParameter,BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.SignerIdentifier,System.String,System.String,BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsAttributeTableGenerator,BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsAttributeTableGenerator) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_E3: stloc:SignatureException(var_12_EA, newobj:SignatureException(SignatureException::.ctor, ldloc:string(var_11))) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600BDF4 RID: 48628 RVA: 0x002B3918 File Offset: 0x002B1B18 [Token(Token = "0x600BDF4")] [Address(RVA = "0x20145B0", Offset = "0x20133B0", VA = "0x1820145B0", Slot = "4")] public SignerInfo Generate(DerObjectIdentifier contentType, AlgorithmIdentifier digestAlgorithm, byte[] calculatedDigest) { CmsSignedHelper helper = CmsSignedDataStreamGenerator.Helper; string digestOID = this._digestOID; string digestAlgName = helper.GetDigestAlgName(digestOID); string encName = this._encName; string text = digestAlgName + "with" + encName; int num = 0; if (this._sAttr == num) { if (!this._encName.Equals("RSA")) { goto IL_98; } byte[] encoded = new DigestInfo(digestAlgorithm, calculatedDigest).GetEncoded("DER"); } string text2 = this.outer.ToString(); CmsAttributeTableGenerator sAttr = this._sAttr; if (contentType == 0 && text2 != 0) { DerObjectIdentifier contentType2 = CmsAttributes.ContentType; BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.Attribute attribute; if (attribute != 0) { IDictionary dictionary; BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable attributeTable = new BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1.Cms.AttributeTable(dictionary); } } CmsSignedDataStreamGenerator cmsSignedDataStreamGenerator = this.outer; IL_98: ISigner sig = this._sig; byte[] array; int length = array.Length; ISigner sig2 = this._sig; int num2 = 0; if (this._unsAttr != num2) { string text3 = this.outer.ToString(); CmsAttributeTableGenerator unsAttr = this._unsAttr; CmsSignedDataStreamGenerator cmsSignedDataStreamGenerator2 = this.outer; } CmsSignedHelper helper2 = CmsSignedDataStreamGenerator.Helper; DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(this._encOID); ISet noParams = CmsSignedHelper.noParams; Asn1Encodable asn1Encodable; AlgorithmIdentifier algorithmIdentifier = new AlgorithmIdentifier(derObjectIdentifier, asn1Encodable); SignerInfo signerInfo; return signerInfo; } // Token: 0x040078DC RID: 30940 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40078DC")] private readonly CmsSignedDataStreamGenerator outer; // Token: 0x040078DD RID: 30941 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40078DD")] private readonly SignerIdentifier _signerIdentifier; // Token: 0x040078DE RID: 30942 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40078DE")] private readonly string _digestOID; // Token: 0x040078DF RID: 30943 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40078DF")] private readonly string _encOID; // Token: 0x040078E0 RID: 30944 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40078E0")] private readonly CmsAttributeTableGenerator _sAttr; // Token: 0x040078E1 RID: 30945 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40078E1")] private readonly CmsAttributeTableGenerator _unsAttr; // Token: 0x040078E2 RID: 30946 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40078E2")] private readonly string _encName; // Token: 0x040078E3 RID: 30947 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40078E3")] private readonly ISigner _sig; } // Token: 0x02001D4B RID: 7499 [Token(Token = "0x2001D4B")] private class CmsSignedDataOutputStream : BaseOutputStream { // Token: 0x0600BDF5 RID: 48629 RVA: 0x002B3ABC File Offset: 0x002B1CBC [Token(Token = "0x600BDF5")] [Address(RVA = "0x2000840", Offset = "0x1FFF640", VA = "0x182000840")] public CmsSignedDataOutputStream(CmsSignedDataStreamGenerator outer, Stream outStream, string contentOID, BerSequenceGenerator sGen, BerSequenceGenerator sigGen, BerSequenceGenerator eiGen) { this.outer = outer; this._out = outStream; DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(contentOID); this._sGen = 0; this._sigGen = 0; this._contentOID = derObjectIdentifier; this._eiGen = 0; } // Token: 0x0600BDF6 RID: 48630 RVA: 0x002B3B00 File Offset: 0x002B1D00 [Token(Token = "0x600BDF6")] [Address(RVA = "0x1663250", Offset = "0x1662050", VA = "0x181663250", Slot = "30")] public override void WriteByte(byte b) { bool canRead = this._out.CanRead; } // Token: 0x0600BDF7 RID: 48631 RVA: 0x002B3B20 File Offset: 0x002B1D20 [Token(Token = "0x600BDF7")] [Address(RVA = "0x1663280", Offset = "0x1662080", VA = "0x181663280", Slot = "29")] public override void Write(byte[] bytes, int off, int len) { bool canRead = this._out.CanRead; } // Token: 0x0600BDF8 RID: 48632 RVA: 0x002B3B40 File Offset: 0x002B1D40 [Token(Token = "0x600BDF8")] [Address(RVA = "0x1FFFD50", Offset = "0x1FFEB50", VA = "0x181FFFD50", Slot = "15")] public override void Close() { this.DoClose(); base.Close(); } // Token: 0x0600BDF9 RID: 48633 RVA: 0x002B3B5C File Offset: 0x002B1D5C [Token(Token = "0x600BDF9")] [Address(RVA = "0x1FFFD70", Offset = "0x1FFEB70", VA = "0x181FFFD70")] private void DoClose() { int num5; Asn1EncodableVector asn1EncodableVector; Asn1Encodable[] array2; AlgorithmIdentifier algorithmIdentifier; for (;;) { int num = 0; Platform.Dispose(this._out); Stream rawOutputStream = this._eiGen.GetRawOutputStream(); IDictionary digests = this.outer._digests; IList certs = this.outer._certs; if (rawOutputStream > 0) { CmsSignedDataStreamGenerator cmsSignedDataStreamGenerator = this.outer; Asn1Set asn1Set = CmsUtilities.CreateDerSetFromList(cmsSignedDataStreamGenerator._certs); Asn1Set asn1Set2 = CmsUtilities.CreateBerSetFromList(cmsSignedDataStreamGenerator._certs); BerSequenceGenerator sigGen = this._sigGen; int num2; int num3; BerTaggedObject berTaggedObject = new BerTaggedObject(num2 != 0, num3, asn1Set2); num3 = 0; num2 = 0; CmsSignedDataStreamGenerator.CmsSignedDataOutputStream.WriteToGenerator(sigGen, berTaggedObject); } CmsSignedDataStreamGenerator cmsSignedDataStreamGenerator2 = this.outer; IList crls = cmsSignedDataStreamGenerator2._crls; if (cmsSignedDataStreamGenerator2 > 0) { IList crls2 = this.outer._crls; Asn1Set asn1Set3 = CmsUtilities.CreateDerSetFromList(crls2); Asn1Set asn1Set4 = CmsUtilities.CreateBerSetFromList(crls2); BerSequenceGenerator sigGen2 = this._sigGen; int num4; BerTaggedObject berTaggedObject2 = new BerTaggedObject(num4 != 0, 1, asn1Set4); num4 = 0; CmsSignedDataStreamGenerator.CmsSignedDataOutputStream.WriteToGenerator(sigGen2, berTaggedObject2); } CmsSignedDataStreamGenerator cmsSignedDataStreamGenerator3 = this.outer; IDictionary messageDigests = cmsSignedDataStreamGenerator3._messageDigests; if (cmsSignedDataStreamGenerator3 != 0) { IDictionary messageHashes = this.outer._messageHashes; } num5 = 0; byte[] array; if (array != 0) { } if (num == 0) { if (num5 != -1) { } IList signerInfs = this.outer._signerInfs; if (asn1EncodableVector != 0) { break; } if (array2 != 0) { } if (algorithmIdentifier == 0) { if (array2 == (ulong)(-1L) || "{il2cpp array field local64->}" == (ulong)511L) { } CmsSignedDataStreamGenerator cmsSignedDataStreamGenerator4 = this.outer; IList signers = cmsSignedDataStreamGenerator4._signers; Asn1Encodable[] array3; if (cmsSignedDataStreamGenerator4 != 0) { if (cmsSignedDataStreamGenerator4 == 0) { } if (cmsSignedDataStreamGenerator4 == 0) { continue; } array3 = new Asn1Encodable[1]; IList crls3 = cmsSignedDataStreamGenerator4._crls; if (crls3 != 0) { } array3[0] = crls3; asn1EncodableVector.Add(array3); } if (array3 != 0) { } if (algorithmIdentifier == 0) { goto Block_9; } } } } DerObjectIdentifier derObjectIdentifier = new DerObjectIdentifier(num5); DerNull instance = DerNull.Instance; algorithmIdentifier = new AlgorithmIdentifier(derObjectIdentifier, instance); IDictionary messageHashes2 = this.outer._messageHashes; CmsSignedHelper helper = CmsSignedDataStreamGenerator.Helper; IDictionary digests2 = this.outer._digests; array2 = new Asn1Encodable[1]; IList v = asn1EncodableVector.v; throw new ArrayTypeMismatchException(); Block_9: BerSequenceGenerator sigGen3 = this._sigGen; DerSet derSet = new DerSet(asn1EncodableVector); CmsSignedDataStreamGenerator.CmsSignedDataOutputStream.WriteToGenerator(sigGen3, derSet); Stream rawOutputStream2 = this._sigGen.GetRawOutputStream(); Stream rawOutputStream3 = this._sGen.GetRawOutputStream(); } // Token: 0x0600BDFA RID: 48634 RVA: 0x002B3DA4 File Offset: 0x002B1FA4 [Token(Token = "0x600BDFA")] [Address(RVA = "0x20007C0", Offset = "0x1FFF5C0", VA = "0x1820007C0")] private static void WriteToGenerator(Asn1Generator ag, Asn1Encodable ae) { byte[] encoded = ae.GetEncoded(); } // Token: 0x040078E4 RID: 30948 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40078E4")] private readonly CmsSignedDataStreamGenerator outer; // Token: 0x040078E5 RID: 30949 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40078E5")] private Stream _out; // Token: 0x040078E6 RID: 30950 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40078E6")] private DerObjectIdentifier _contentOID; // Token: 0x040078E7 RID: 30951 [FieldOffset(Offset = "0x48")] [Token(Token = "0x40078E7")] private BerSequenceGenerator _sGen; // Token: 0x040078E8 RID: 30952 [FieldOffset(Offset = "0x50")] [Token(Token = "0x40078E8")] private BerSequenceGenerator _sigGen; // Token: 0x040078E9 RID: 30953 [FieldOffset(Offset = "0x58")] [Token(Token = "0x40078E9")] private BerSequenceGenerator _eiGen; } } }