S>C 0x50 SID_AUTH_INFO

Transport Layer:Transmission Control Protocol (TCP)
Application Layer:Battle.net v1 TCP Messages (SID)
Message Id:0x50
Message Name:SID_AUTH_INFO
Direction:Server to Client
Used By:Starcraft Original, Starcraft Broodwar
Diablo II, Diablo II Lord of Destruction
Warcraft III Reign of Chaos, Warcraft III The Frozen Throne
Message Format:
(does not include protocol header)
  (UINT32) Logon type
  (UINT32) Server token
  (UINT32) UDP value
(FILETIME) CheckRevision MPQ filetime
  (STRING) CheckRevision MPQ filename
  (STRING) CheckRevision Formula

WAR3/W3XP Only:
    (VOID) 128-byte Server signature

Remarks

Returns server parameters and a versioning challenge.

Logon type:

  • 0x00: Broken SHA-1 (STAR/SEXP/D2DV/D2XP)
  • 0x01: NLS Version 1 (WAR3Beta/STAR/SEXP/D2DV/D2XP)
  • 0x02: NLS Version 2 (WAR3/W3XP)

* - Support for NLS Version 1 was added to STAR and SEXP in patch 1.15.2 and has been supported by D2DV and D2XP since at least patch 1.10. Battle.net has never enabled NLS Version 1 for these products.

Server Token: a randomly generated value that is unique to your session and is used to calculate the Hashed Key Data field in C>S SID_AUTH_CHECK as well as the XSHA-1 double-hashed Password Hash field in C>S SID_LOGONRESPONSE2.

UDP value: A randomly generated value used to associate this connection with its corresponding UDP and MCP connections. Used in PKT_CONNTEST2 and MCP_STARTUP.

CheckRevision MPQ filetime and CheckRevision MPQ filename are used by products to send BNFTP requests to obtain CheckRevision.

CheckRevision Formula: This value is the 4th parameter passed to CheckRevision() calls. The formula is always null-terminated, but may contain non-printable and non-UTF8 characters.

128-byte Server signature: This field is an RSA signature that's exclusively sent to and verified by WarCraft III. Its purpose is to prevent WarCraft III clients from connecting to third-party servers. Verification implementation can be found in BNCSUtil's nls_check_signature() function.

After completing the version checking process, the client should proceed with an account logon using the mechanism specified here (SID_LOGONRESPONSE2 for 0x00 and SID_AUTH_ACCOUNTLOGON for 0x01 and 0x02).

Using a different login type than the one given may result in an IP ban.

| Edited: Anonymous

Comments

Caaaaarrrrlll

(This is an old comment which was later clarified, the following may no longer be valid.)

JSTR clients on the IX86 platform receive an empty CheckRevision Formula from official Battle.net, with MPQ set to ver-IX86-0.mpq.

Packet Dump from Wireshark:

00000000  01 ff 50 3a 00 00 00 00  00 36 38 58 49 52 54 53 ..P:.... .68XIRTS
00000010  4a d3 00 00 00 00 00 00  00 c0 a8 00 17 2c 01 00 J....... .....,..
00000020  00 09 04 00 00 09 04 00  00 55 53 41 00 55 6e 69 ........ .USA.Uni
00000030  74 65 64 20 53 74 61 74  65 73 00                ted Stat es.
00000000  ff 25 08 00 de 37 ef 58                          .%...7.X 
00000008  ff 50 28 00 00 00 00 00  a1 8b c6 b7 ee 15 08 00 .P(..... ........
00000018  00 8b 51 03 70 5f c7 01  76 65 72 2d 49 58 38 36 ..Q.p_.. ver-IX86
00000028  2d 30 2e 6d 70 71 00 00                          -0.mpq..