[mono-vb] Need a second opinion
Rolf Bjarne Kvinge
rolflists at ya.com
Mon Aug 2 08:20:29 EDT 2010
Hi,
The simple answer is that if it works on windows but not in mono, it's
generally a mono bug and you should file a bug (http://bugzilla.novell.com).
Of course things aren't always simple, but I don't know anything about the
area you're asking about, so I can't be more specific. I'd file a bug in any
case, worst case it'll just be closed as not being a bug.
Rolf
>-----Original Message-----
>From: mono-vb-bounces at lists.ximian.com [mailto:mono-vb-
>bounces at lists.ximian.com] On Behalf Of Quandary
>Sent: sábado, 31 de julio de 2010 1:23
>To: mono-vb at lists.ximian.com
>Subject: [mono-vb] Need a second opinion
>
> I'd like to have a second opinon on encoding problem:
>
>Basically it's C# and not VB, but since it concerns the mono-runtime, it's
just
>as relevant here.
>
>I've downloaded and tried to run
>http://www.lumisoft.ee/lswww/Download/Downloads/MailServer/
>on my Ubuntu 10.04 server.
>
>The author claims he has tested it on Suse Linux with the 0.94 release,
and
>that it worked.
>However, I had to correct all the bugs listed here to get the latest
version
>working:
>http://www.lumisoft.ee/Forum/default.aspx?g=posts&t=673
><http://www.lumisoft.ee/Forum/default.aspx?g=posts&t=673>
>
>I was debugging (without step-through...) this issue all friday evening,
until I
>found the reason.
>It turned out the "bug" was the way the Mailserver's developer converted
>the HmacMd5 to a hex string...
>Now in my opinion, his line:
>return
>Encoding.Default.GetString(kMd5.ComputeHash(Encoding.ASCII.GetBytes(ha
>shKey)));
>is plain wrong, because this causes the byte array to be converted into a
>different encoding on each operating system (1252 on my windows 7,
>UTF-8 on Ubuntu), and the mailserver's programmer then calculates the hex
>string from the string hash with the operating-system specific encoding.
>
>Now since it works with the encoding change on Windows (but not on Linux),
>I'm not sure anymore whether I am right, or whether the server's
>programmer is right, which would mean that the encoding-bug is a bug in
>mono.
>
>I've isolated the code in question below, just switch bCorrectedVersion
>between true and false, and watch how the hash is different on Windows vs.
>Linux when one switches bCorrectedVersion to false...
>BTW, this is the hash used to authenticate pop3/smtp, so it definitely is
not
>good when it's different...
>(That was the issue that kept all my get/send mail request to and from the
>server failing, because authentication failed...)
>
>Who is right ?
>
>Below is the code in question to reproduce the issue:
>
>private void button1_Click(object sender, EventArgs e)
> {
> string m_Key = "TestKey1";
> string result_Password = "TestUser1";
> string hash = "";
>
>
> bool bCorrectedVersion = true;
> if(bCorrectedVersion)
> hash = HmacMd5_corrected(m_Key, result_Password);
> else
> hash = Net_Utils_ToHex(HmacMd5(m_Key, result_Password));
>
> this.textBox2.Text = "Hash: " + hash;
> }
>
> public static string Net_Utils_ToHex(string text)
> {
> if (text == null)
> {
> throw new ArgumentNullException("text");
> }
> // Default encoding: Windows 1252, Linux UTF-8
> return
>BitConverter.ToString(Encoding.Default.GetBytes(text)).ToLower().Replace("
>-","");
> }
>
>
> // corrected version of original
> private string HmacMd5_corrected(string hashKey, string text)
> {
> System.Security.Cryptography.HMACMD5 kMd5 = new
>System.Security.Cryptography.HMACMD5(Encoding.Default.GetBytes(text));
>
>
> string strHash = "";
> foreach (byte x in
>kMd5.ComputeHash(Encoding.ASCII.GetBytes(hashKey)))
> {
> strHash += x.ToString("x2");
>
> }
> return strHash;
> //return
>Encoding.Default.GetString(kMd5.ComputeHash(Encoding.ASCII.GetBytes(ha
>shKey)));
> }
>
>
> // original
> private string HmacMd5(string hashKey, string text)
> {
> System.Security.Cryptography.HMACMD5 kMd5 = new
>System.Security.Cryptography.HMACMD5(Encoding.Default.GetBytes(text));
>
> return
>Encoding.Default.GetString(kMd5.ComputeHash(Encoding.ASCII.GetBytes(ha
>shKey)));
> }
>
>_______________________________________________
>Mono-vb mailing list
>Mono-vb at lists.ximian.com
>http://lists.ximian.com/mailman/listinfo/mono-vb
More information about the Mono-vb
mailing list