From d057552cc40769f6ba988a9c7a55957dea2e7e2a Mon Sep 17 00:00:00 2001 From: leecher1337 Date: Sat, 4 Mar 2017 19:22:17 +0100 Subject: MSN/skylogin: - Bumped Skype version number to make it login again to the login servers (Microsoft killed off old versions) - Fixed a bug in the skylogin code that prevented correct parsing of credentials - Added more verbose error output on credentials parsing failure --- protocols/MSN/src/skylogin/common.h | 3 ++- protocols/MSN/src/skylogin/credentials.c | 6 +++++- protocols/MSN/src/skylogin/skylogin.c | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/protocols/MSN/src/skylogin/common.h b/protocols/MSN/src/skylogin/common.h index 4a0d6841e4..5396000603 100644 --- a/protocols/MSN/src/skylogin/common.h +++ b/protocols/MSN/src/skylogin/common.h @@ -44,6 +44,7 @@ typedef int BOOL; #include #include #include +#include #ifdef USE_RC4 #include #include @@ -71,7 +72,7 @@ typedef unsigned long ulong; #define RAW_PARAMS 0x41 #define EXT_PARAMS 0x42 -#define VER_STR "0/6.18.0.105" +#define VER_STR "0/7.44.0.104" typedef struct { diff --git a/protocols/MSN/src/skylogin/credentials.c b/protocols/MSN/src/skylogin/credentials.c index 2cd5b42dfd..df80f2cafb 100644 --- a/protocols/MSN/src/skylogin/credentials.c +++ b/protocols/MSN/src/skylogin/credentials.c @@ -138,7 +138,11 @@ int Credentials_Parse(Skype_Inst *pInst, Memory_U Pcred, SResponse *LoginDatas) RSA_free(SkypeRSA); if (PPsZ == -1) { - pInst->pfLog(pInst->pLogStream, "Credentials decryption failed..\n"); + char szErr[256]; + + ERR_load_crypto_strings(); + ERR_error_string(ERR_get_error(), szErr); + pInst->pfLog(pInst->pLogStream, "Credentials decryption failed: %s\n", szErr); free(creds.Memory); return -1; } diff --git a/protocols/MSN/src/skylogin/skylogin.c b/protocols/MSN/src/skylogin/skylogin.c index 2930d350ab..e0bab68c17 100644 --- a/protocols/MSN/src/skylogin/skylogin.c +++ b/protocols/MSN/src/skylogin/skylogin.c @@ -134,7 +134,7 @@ EXPORT int SkyLogin_PerformLoginOAuth(SkyLogin pPInst, const char *OAuth) SResponse LoginDatas; // We don't know user name, so read it from Credentials - if (Credentials_Parse(pInst, creds, &LoginDatas) == 0) + if (Credentials_Parse(pInst, pInst->LoginD.SignedCredentials, &LoginDatas) == 0) { uint Idx; -- cgit v1.2.3