using System; using System.IO; using System.Runtime.InteropServices; 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.Parameters; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Cms { // Token: 0x02001747 RID: 5959 [Token(Token = "0x2001747")] [StructLayout(3)] internal class CmsAuthEnvelopedData { // Token: 0x0600A10B RID: 41227 RVA: 0x002573D4 File Offset: 0x002555D4 [Token(Token = "0x600A10B")] [Address(RVA = "0x1C71390", Offset = "0x1C6FD90", VA = "0x181C71390")] public CmsAuthEnvelopedData(byte[] authEnvData) { ContentInfo contentInfo = CmsUtilities.ReadContentInfo(new Asn1InputStream(authEnvData)); } // Token: 0x0600A10C RID: 41228 RVA: 0x002573F0 File Offset: 0x002555F0 [Token(Token = "0x600A10C")] [Address(RVA = "0x1C71410", Offset = "0x1C6FE10", VA = "0x181C71410")] public CmsAuthEnvelopedData(Stream authEnvData) { ContentInfo contentInfo = CmsUtilities.ReadContentInfo(new Asn1InputStream(authEnvData, int.MaxValue)); } // Token: 0x0600A10D RID: 41229 RVA: 0x00257410 File Offset: 0x00255610 [Token(Token = "0x600A10D")] [Address(RVA = "0x1C71490", Offset = "0x1C6FE90", VA = "0x181C71490")] public CmsAuthEnvelopedData(ContentInfo contentInfo) { this.contentInfo = contentInfo; AuthEnvelopedData instance = AuthEnvelopedData.GetInstance(contentInfo.content); OriginatorInfo originatorInfo = instance.originatorInfo; this.originator = originatorInfo; EncryptedContentInfo authEncryptedContentInfo = instance.authEncryptedContentInfo; Asn1Set recipientInfos = instance.recipientInfos; AlgorithmIdentifier contentEncryptionAlgorithm = authEncryptedContentInfo.contentEncryptionAlgorithm; this.authEncAlg = contentEncryptionAlgorithm; CmsAuthEnvelopedData.AuthEnvelopedSecureReadable authEnvelopedSecureReadable; authEnvelopedSecureReadable.parent = this; RecipientInformationStore recipientInformationStore = CmsEnvelopedHelper.BuildRecipientInformationStore(recipientInfos, authEnvelopedSecureReadable); this.recipientInfoStore = recipientInformationStore; Asn1Set asn1Set = instance.authAttrs; this.authAttrs = asn1Set; Stream octetStream = instance.mac.GetOctetStream(); this.mac = octetStream; Asn1Set asn1Set2 = instance.unauthAttrs; this.unauthAttrs = asn1Set2; } // Token: 0x04006A06 RID: 27142 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4006A06")] internal RecipientInformationStore recipientInfoStore; // Token: 0x04006A07 RID: 27143 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4006A07")] internal ContentInfo contentInfo; // Token: 0x04006A08 RID: 27144 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4006A08")] private OriginatorInfo originator; // Token: 0x04006A09 RID: 27145 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4006A09")] private AlgorithmIdentifier authEncAlg; // Token: 0x04006A0A RID: 27146 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006A0A")] private Asn1Set authAttrs; // Token: 0x04006A0B RID: 27147 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006A0B")] private byte[] mac; // Token: 0x04006A0C RID: 27148 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4006A0C")] private Asn1Set unauthAttrs; // Token: 0x02001748 RID: 5960 [Token(Token = "0x2001748")] private class AuthEnvelopedSecureReadable : CmsSecureReadable { // Token: 0x0600A10E RID: 41230 RVA: 0x002574B8 File Offset: 0x002556B8 [Token(Token = "0x600A10E")] [Address(RVA = "0x3C3A30", Offset = "0x3C2430", VA = "0x1803C3A30")] internal AuthEnvelopedSecureReadable(CmsAuthEnvelopedData parent) { this.parent = parent; } // Token: 0x17001944 RID: 6468 // (get) Token: 0x0600A10F RID: 41231 RVA: 0x002574D4 File Offset: 0x002556D4 [Token(Token = "0x17001944")] public AlgorithmIdentifier Algorithm { [Token(Token = "0x600A10F")] [Address(RVA = "0x550740", Offset = "0x54F140", VA = "0x180550740", Slot = "4")] get { return this.parent.authEncAlg; } } // Token: 0x17001945 RID: 6469 // (get) Token: 0x0600A110 RID: 41232 RVA: 0x002574F4 File Offset: 0x002556F4 [Token(Token = "0x17001945")] public object CryptoObject { [Token(Token = "0x600A110")] [Address(RVA = "0x3F8880", Offset = "0x3F7280", VA = "0x1803F8880", Slot = "5")] get { } } // Token: 0x0600A111 RID: 41233 RVA: 0x00257504 File Offset: 0x00255704 [Token(Token = "0x600A111")] [Address(RVA = "0x1C71180", Offset = "0x1C6FB80", VA = "0x181C71180", Slot = "6")] public CmsReadable GetReadable(KeyParameter key) { /* An exception occurred when decompiling this method (0600A111) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsReadable BestHTTP.SecureProtocol.Org.BouncyCastle.Cms.CmsAuthEnvelopedData/AuthEnvelopedSecureReadable::GetReadable(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters.KeyParameter) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:CmsException(var_0_0A, newobj:CmsException(CmsException::.ctor, ldstr:string("AuthEnveloped data decryption not yet implemented"))) } 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.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: 0x04006A0D RID: 27149 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4006A0D")] private readonly CmsAuthEnvelopedData parent; } } }