Protocols/OSCAR/SNAC/BUCP LOGIN REQUEST

From NINA Wiki
(Redirected from Protocols/OSCAR/SNAC 17 02)
Jump to navigation Jump to search
OSCAR Protocol
IntroductionTermsClients
Basic
DatatypesFLAPSNACTLV
UUIDsErrorsTool IDs
Host Interaction
Rate LimitsMigrationMessages
Other Services
ADMINADVERTALERT
BARTBOSBUCPCHAT
CHAT_NAV
Tutorials
Sign OnBARTRendezvous
ICBMLocateBuddies
Foodgroups
OSERVICE (0x0001)
LOCATE (0x0002)
BUDDY (0x0003)
ICBM (0x0004)
ADVERT (0x0005)
INVITE (0x0006)
ADMIN (0x0007)
POPUP (0x0008)
PD (0x0009)
USER_LOOKUP (0x000A)
STATS (0x000B)
TRANSLATE (0x000C)
CHAT_NAV (0x000D)
CHAT (0x000E)
ODIR (0x000F)
BART (0x0010)
FEEDBAG (0x0013)
ICQ (0x0015)
BUCP (0x0017)
ALERT (0x0018)
PLUGIN (0x0022)
UNNAMED_FG_24 (0x0024)
MDIR (0x0025)
ARS (0x044A)
ID Origin Name Foodgroup Service Status Version
0x0017, 0x0002 Client BUCP__LOGIN_REQUEST Unspecified BUCP Active 1.15

Client login request.

SNAC Header

Foodgroup uint16 (word) 00 17
Subgroup uint16 (word) 00 02
Flags uint16 (word) 00 00
Request ID uint32 (dword) 00 00 00 00

SNAC Data

Unconfirmed: This SNAC contains no data

From Aleksandr Shutko: SNAC(17,02) BUCP__LOGIN_REQUEST


Client use this snac to login to server (md5 login sequence). Server should reply via SNAC(17,03), containing BOS address/cookie or errorcode. Password hash creating:

You'll need password, authkey from SNAC(17,07) and RFC 1321 md5 routines:

   <font color=red>#define AUTH_SALT_MD5 "AOL Instant Messenger (SM)"</font>

   <font color=gray>/* calculate md5-hash to send to server */</font>
   md5_init(&state);
   md5_append(&state, (const md5_byte_t *)authkey, strlen(authkey));
   md5_append(&state, (const md5_byte_t *)passwd, strlen(passwd));
   md5_append(&state, (const md5_byte_t *)AUTH_SALT_MD5, strlen(AUTH_SALT_MD5));
   md5_finish(&state, (md5_byte_t *)auth_hash);

   <font color=gray>/* Now we ready send to server auth_hash array (16 bytes long) */</font>


 00 17   word   SNAC family
 00 02   word   SNAC subtype
 00 00   word   SNAC flags
 xx xx xx xx   dword   SNAC request-id
 00 01   word   TLV.Type(0x01) - screen name
 xx xx   word   TLV.Length
 xx ..   string   Screen name
 00 03   word   TLV.Type(0x03) - client id string
 xx xx   word   TLV.Length
 xx ..   string   Client id string (name, version)
 00 25   word   TLV.Type(0x25) - password md5 hash
 00 10   word   TLV.Length
      xx xx xx xx
 xx xx xx xx
 xx xx xx xx
 xx xx xx xx
  array   password md5 hash
 00 16   word   TLV.Type(0x16) - client id
 00 02   word   TLV.Length
 xx xx   word   Client id number
 00 17   word   TLV.Type(0x17) - client major version
 00 02   word   TLV.Length
 xx xx   word   Client major version
 00 18   word   TLV.Type(0x18) - client minor version
 00 02   word   TLV.Length
 xx xx   word   Client minor version
 00 19   word   TLV.Type(0x19) - client lesser version
 00 02   word   TLV.Length
 xx xx   word   Client lesser version
 00 1A   word   TLV.Type(0x1A) - client build number
 00 02   word   TLV.Length
 xx xx   word   Client build number
 00 14   word   TLV.Type(0x14) - distribution number
 00 04   word   TLV.Length
 xx xx xx xx   dword   Distribution number
 00 0F   word   TLV.Type(0x0F) - client language (2 symbols)
 xx xx   word   TLV.Length
 xx ..   string   Client language
 00 0E   word   TLV.Type(0x0E) - client country (2 symbols)
 xx xx   word   TLV.Length
 xx ..   string   Client country
 00 0F   word   TLV.Type(0x4A) - SSI use flag
 00 01   word   TLV.Length
 xx   char   SSI flag: 1 - SSI only, 0 - family 0x03
 May contain other tlv from the following list


Example SNAC dump with flap header:


  2A 02 50 0F 00 95 00 17  00 02 00 00 00 00 00 00 *.P.............
  00 01 00 07 36 32 31 38  38 39 35 00 25 00 10 77 ....6218895.%..w
  D2 88 A0 1B 2E 22 D0 8A  75 A6 34 DD 7C 7C A9 00 ....."..u.4.....
  4C 00 00 00 03 00 2D 41  4F 4C 20 49 6E 73 74 61 L.....-AOL Insta
  6E 74 20 4D 65 73 73 65  6E 67 65 72 2C 20 76 65 nt Messenger, ve
  72 73 69 6F 6E 20 35 2E  31 2E 33 30 33 36 2F 57 rsion 5.1.3036/W
  49 4E 33 32 00 16 00 02  01 09 00 17 00 02 00 05 IN32............
  00 18 00 02 00 01 00 19  00 02 00 00 00 1A 00 02 ................
  0B DC 00 14 00 04 00 00  00 D2 00 0F 00 02 65 6E ..............en
  00 0E 00 02 75 73 00 4A  00 01 01                ....us.J...


BUCP SNACs

SNAC List
Subgroup Origin Name
0x0001 Any BUCP__ERR
This is the error SNAC for the BUCP foodgroup.
0x0002 Client BUCP__LOGIN_REQUEST
Client login request.
0x0003 Host BUCP__LOGIN_RESPONSE
Host login response, will contain reconnect information with login cookie or an error code and/or URL.
0x0004 Client BUCP__REGISTER_REQUEST
Client registration for legacy ICQ clients.
0x0005 Host BUCP__REGISTER_RESPONSE
Host response to BUCP__REGISTER_REQUEST. May contain confirmation of registration or an error code and/or URL.
0x0006 Client BUCP__CHALLENGE_REQUEST
Request challenge for login request.
0x0007 Host BUCP__CHALLENGE_RESPONSE
Response to BUCP__CHALLENGE_REQUEST with challenge.
0x0008 Client BUCP__ASASN_REQUEST
AOL Suggest A Screenname Request, suggests screennames based on other parameters.
0x0009 Host BUCP__ASASN_RESPONSE
Response to BUCP__ASASN_REQUEST with a list of suggestions
0x000A Host BUCP__SECURID_REQUEST
Host SecurID request for client to continue logging in.
0x000B Client BUCP__SECURID_RESPONSE
Client response to BUCP__SECURID_RESPONSE with SecurID code.
0x000C Client BUCP__REGISTRATION_IMAGE_REQUEST
Request registration image, or CAPTCHA
0x000D Host BUCP__REGISTRATION_IMAGE_REPLY
Response to BUCP__REGISTRATION_IMAGE_REQUEST containing image information