Skip to content

[WebAPI] implement /auth/getChallenge #183

@veselcraft

Description

@veselcraft

ICQ 7.x requires it to work

endpoint is described here (in russian): https://alexey-m.ru/articles/icq-http-api-authorization

As of today, the official ICQ 7.7 client uses roughly the following scheme:

Upon the first connection, the client requests a realm and a challengeWord; these two parameters are used as salt during the md5 hashing of the password.
HTTP request:

https://api.login.icq.net/auth/getChallenge
POST DATA:
devId=DEVICE_ID // device (client) identifier
&f=xml // return data format (XML/JSON/QS)
&s=UIN // uin\e-mail
The response looks something like this:

<response xmlns="https ://api.login.aol.com">
  <statuscode>200</statuscode>
  <statustext>OK</statustext>
  <data>
    <tid>TyPDkAAAC9gB+tJ7</tid>
    <normalize>false</normalize>
    <truncate>true</truncate>
    <realm>AOL Instant Messenger (SM)</realm>
    <challengeword>1258886032</challengeword>
  </data>
</response>

After this, the client hashes the password using the md5 algorithm (the procedure exactly resembles the function from the binary protocol). Then it sends a new post request to /auth/clientLogin

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions