For an application I want to be able to login to MSN Messenger Service with MSNP18 protocol with requires SSO authentication.
I found some examples in VB and C# and tried to translate them to Delphi (2010). With some testvalues I found on the internet I didn't get the result I should have unit testMsgr; interface uses Windows, Classes, SysUtils, OverbyteIcsSha1; (etc); type ... function DeriveKey(const key, magic: array of byte; const Mlen: integer; var des: array of byte): boolean; ... end; implementation ... .. function TForm1.DeriveKey(const key, Magic: array of byte; const Mlen: integer; var des: array of byte): boolean; var h1, h2, h3, h4: Sha1Digest; I: integer; hm1, hm2: array of byte; begin Result := true; SetLength(hm1, 20 + MLen); SetLength(hm2, 20 + MLen); for I := 0 to SizeOf(Magic) - 1 do mb2[I] := Magic[I]; HMac_Sha1(Magic, SizeOf(Magic), Key, SizeOf(Key), h1); for I := 0 to 19 do hm1[I] := ord(h1[I]); for I := 0 to LenM - 1 do hm1[I + 20] := Magic[I]; HMac_Sha1(hm1, 20 + Mlen, key, SizeOf(key), h2); HMac_Sha1(h1, SizeOf(h1), Key, SizeOf(Key), h3); for I := 0 to 19 do hm2[I] := ord(h3[I]); for I := 0 to LenM - 1 do hm2[I + 20] := Magic[I]; HMac_Sha1(hm2, 20 + Mlen, key, SizeOf(key), h4); //. end; h1 and h3 have the expected result but h2 and h4 don't and when I call the function again they have a different result. I've tried a couple other methods but no difference. Is there some stupid error in my code? Tia, Ger -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be