https://bugzilla.novell.com/show_bug.cgi?id=419966
User [EMAIL PROTECTED] added comment https://bugzilla.novell.com/show_bug.cgi?id=419966#c2 --- Comment #2 from high six <[EMAIL PROTECTED]> 2008-08-25 08:11:19 MDT --- I rather keep my source closed so here is the dump of the method's body. ldarg.0 ldstr System.Security.Cryptography.MD5 ldc.i4 1 newarr System.Object stloc.s V_4 stloc.s V_5 ldloc.s V_4 ldc.i4 0 ldloc.s V_5 stelem.ref ldloc.s V_4 ldc.i4 0 ldelem.ref castclass System.String ldc.i4 1 newarr System.Object stloc.s V_2 stloc.s V_3 ldloc.s V_2 ldc.i4 0 ldloc.s V_3 stelem.ref ldloc.s V_2 ldc.i4 0 ldelem.ref castclass System.String ldnull call System.Object System.Security.Cryptography.CryptoConfig::CreateFromName(System.String,System.Object[]) castclass System.Security.Cryptography.MD5 stfld System.Security.Cryptography.MD5 ConsoleApplication1.Program::md5 ldarg.0 ldfld System.Security.Cryptography.MD5 ConsoleApplication1.Program::md5 ldsfld System.Text.Encoding System.Text.Encoding::asciiEncoding brtrue Mono.Cecil.Cil.Instruction newobj System.Void System.Text.ASCIIEncoding::.ctor() stsfld System.Text.Encoding System.Text.Encoding::asciiEncoding ldsfld System.Text.Encoding System.Text.Encoding::asciiEncoding ldstr HI! callvirt System.Byte[] System.Text.Encoding::GetBytes(System.String) callvirt System.Byte[] System.Security.Cryptography.HashAlgorithm::ComputeHash(System.Byte[]) stloc.0 ldloc.0 call System.String System.Convert::ToBase64String(System.Byte[]) stloc.1 ldloc.1 ret and here is the exe after that is saved. http://rapidshare.com/files/139997368/ConsoleApplication2.exe.exe.html All I am doing is loading the crypto dll and inlining the static methods. (Inline works fine on local static classes) The code I am using to get the md5 method. (This code I am fine with sharing) List<AssemblyDefinition> Loaded = new List<AssemblyDefinition>(); AssemblyDefinition LoadAssembly(string name, string ver) { for (int a = 0; a < Loaded.Count; a++) { if (name == Loaded[a].Name.Name) { return Loaded[a]; } } string file = Environment.GetEnvironmentVariable("SystemRoot") + "/Microsoft.NET/Framework/" + ver + "/" + name + ".dll"; if (System.IO.File.Exists(file) == false) return null; AssemblyDefinition asm = AssemblyFactory.GetAssembly(file); Loaded.Add(asm); return asm; } MethodDefinition GetDefinition(MethodReference mr, string ver) { TypeReference t = mr.DeclaringType; string file = "ERROR!"; if (t.Scope is AssemblyNameReference) { file = ((AssemblyNameReference)t.Scope).Name; } else if (t.Scope is ModuleDefinition) { file = ((ModuleDefinition)t.Scope).Assembly.Name.Name; } else { } if (file.EndsWith(".dll")) file = file.Substring(0, file.Length - 4); AssemblyDefinition asm = LoadAssembly(file, ver); if (asm == null) return null; for (int a = 0; a < asm.MainModule.Types.Count; a++) { if (t.Namespace == asm.MainModule.Types[a].Namespace && t.Name == asm.MainModule.Types[a].Name) { for (int b = 0; b < asm.MainModule.Types[a].Methods.Count; b++) { if (mr.Name == asm.MainModule.Types[a].Methods[b].Name && ParamCmp(mr.Parameters, asm.MainModule.Types[a].Methods[b].Parameters)) { return asm.MainModule.Types[a].Methods[b]; } } } } return null; } -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
