First character, Trollbaye, created by a 3.3.5a protocol mini-client
A minimal client implements SRP6 authentication, the worldserver's encrypted session and character creation. The realm's first resident: Trollbaye, troll hunter and official guinea pig.
The character
Trollbaye (troll + *cobaye*, French for guinea pig), level 1 troll hunter, Valley of Trials (Durotar). His job: be the guinea pig for every server change.
The mini-client
Instead of writing directly to the database, the character is created through the path a real client takes, so the core applies its own rules (name, race, class, position, starting gear):
- authserver:
AUTH_LOGON_CHALLENGE/AUTH_LOGON_PROOF(SRP6), which yields the session key K. - worldserver:
SMSG_AUTH_CHALLENGE, thenCMSG_AUTH_SESSIONwith the proofSHA1(account, 0, client seed, server seed, K). - Header encryption: RC4 seeded with HMAC-SHA1(fixed key, K), first 1024 bytes dropped.
CMSG_CHAR_CREATEthenCMSG_CHAR_ENUMto check.
Incident
First attempt: no readable answer after the session opened. The two fixed encryption keys were swapped in the client; fixed according to AuthCrypt.cpp (the server encrypts with CC98…, decrypts with C2B3…).
Check
Response 0x2F (success); in the database: map 1, Valley of Trials coordinates, 7 starting items.