diff options
Diffstat (limited to 'plugins/SecureIM/src/svcs_rsa.cpp')
-rw-r--r-- | plugins/SecureIM/src/svcs_rsa.cpp | 97 |
1 files changed, 47 insertions, 50 deletions
diff --git a/plugins/SecureIM/src/svcs_rsa.cpp b/plugins/SecureIM/src/svcs_rsa.cpp index 22035d17bc..b4ca73fb1f 100644 --- a/plugins/SecureIM/src/svcs_rsa.cpp +++ b/plugins/SecureIM/src/svcs_rsa.cpp @@ -8,7 +8,7 @@ RSA_IMPORT imp = rsa_notify
};
-BOOL rsa_4096=0;
+BOOL rsa_4096 = 0;
int __cdecl rsa_inject(HANDLE context, LPCSTR msg)
{
@@ -16,12 +16,12 @@ int __cdecl rsa_inject(HANDLE context, LPCSTR msg) Sent_NetLog("rsa_inject: '%s'", msg);
- int len = (int)strlen(msg)+1;
- LPSTR buf = (LPSTR) mir_alloc(LEN_SECU+len);
- memcpy(buf,SIG_SECU,LEN_SECU);
- memcpy(buf+LEN_SECU,msg,len);
+ int len = (int)strlen(msg) + 1;
+ LPSTR buf = (LPSTR)mir_alloc(LEN_SECU + len);
+ memcpy(buf, SIG_SECU, LEN_SECU);
+ memcpy(buf + LEN_SECU, msg, len);
// отправляем сообщение
- splitMessageSend(ptr,buf);
+ splitMessageSend(ptr, buf);
mir_free(buf);
return 1;
}
@@ -30,41 +30,41 @@ int __cdecl rsa_inject(HANDLE context, LPCSTR msg) int __cdecl rsa_check_pub(HANDLE context, PBYTE pub, int pubLen, PBYTE sig, int sigLen)
{
- int v=0, k=0;
+ int v = 0, k = 0;
pUinKey ptr = getUinCtx(context); if (!ptr) return 0;
- LPSTR cnm = (LPSTR) mir_alloc(NAMSIZE); getContactNameA(ptr->hContact,cnm);
- LPSTR uin = (LPSTR) mir_alloc(KEYSIZE); getContactUinA(ptr->hContact,uin);
- LPSTR msg = (LPSTR) mir_alloc(MSGSIZE);
- LPSTR sha = mir_strdup(to_hex(sig,sigLen));
+ LPSTR cnm = (LPSTR)mir_alloc(NAMSIZE); getContactNameA(ptr->hContact, cnm);
+ LPSTR uin = (LPSTR)mir_alloc(KEYSIZE); getContactUinA(ptr->hContact, uin);
+ LPSTR msg = (LPSTR)mir_alloc(MSGSIZE);
+ LPSTR sha = mir_strdup(to_hex(sig, sigLen));
LPSTR sha_old = NULL;
Sent_NetLog("rsa_check_pub: %s %s %s", cnm, uin, sha);
DBVARIANT dbv;
dbv.type = DBVT_BLOB;
- if (db_get(ptr->hContact,MODULENAME,"rsa_pub",&dbv) == 0) {
+ if (db_get(ptr->hContact, MODULENAME, "rsa_pub", &dbv) == 0) {
k = 1;
- PBYTE buf = (PBYTE) alloca(sigLen); int len;
- exp->rsa_get_hash((PBYTE)dbv.pbVal,dbv.cpbVal,(PBYTE)buf,&len);
- sha_old = mir_strdup(to_hex(buf,len));
+ PBYTE buf = (PBYTE)alloca(sigLen); int len;
+ exp->rsa_get_hash((PBYTE)dbv.pbVal, dbv.cpbVal, (PBYTE)buf, &len);
+ sha_old = mir_strdup(to_hex(buf, len));
db_free(&dbv);
}
if (bAAK) {
- if (k ) mir_snprintf(msg,MSGSIZE,Translate(sim523),cnm,uin,sha,sha_old);
- else mir_snprintf(msg,MSGSIZE,Translate(sim521),cnm,uin,sha);
- showPopupKRmsg(ptr->hContact,msg);
- HistoryLog(ptr->hContact,msg);
+ if (k) mir_snprintf(msg, MSGSIZE, Translate(sim523), cnm, uin, sha, sha_old);
+ else mir_snprintf(msg, MSGSIZE, Translate(sim521), cnm, uin, sha);
+ showPopupKRmsg(ptr->hContact, msg);
+ HistoryLog(ptr->hContact, msg);
v = 1;
#if defined(_DEBUG) || defined(NETLIB_LOG)
Sent_NetLog("rsa_check_pub: auto accepted");
#endif
}
else {
- if (k ) mir_snprintf(msg,MSGSIZE,Translate(sim522),cnm,sha,sha_old);
- else mir_snprintf(msg,MSGSIZE,Translate(sim520),cnm,sha);
- v = (msgbox(0,msg,MODULENAME,MB_YESNO|MB_ICONQUESTION) == IDYES);
+ if (k) mir_snprintf(msg, MSGSIZE, Translate(sim522), cnm, sha, sha_old);
+ else mir_snprintf(msg, MSGSIZE, Translate(sim520), cnm, sha);
+ v = (msgbox(0, msg, MODULENAME, MB_YESNO | MB_ICONQUESTION) == IDYES);
#if defined(_DEBUG) || defined(NETLIB_LOG)
- Sent_NetLog("rsa_check_pub: manual accepted %d",v);
+ Sent_NetLog("rsa_check_pub: manual accepted %d", v);
#endif
}
if (v) {
@@ -82,29 +82,29 @@ int __cdecl rsa_check_pub(HANDLE context, PBYTE pub, int pubLen, PBYTE sig, int void __cdecl rsa_notify(HANDLE context, int state)
{
pUinKey ptr = getUinCtx(context); if (!ptr) return;
- LPCSTR msg=NULL;
+ LPCSTR msg = NULL;
Sent_NetLog("rsa_notify: 0x%x", state);
- switch( state) {
+ switch (state) {
case 1:
showPopupEC(ptr->hContact);
ShowStatusIconNotify(ptr->hContact);
- waitForExchange(ptr,2); // досылаем сообщения из очереди
+ waitForExchange(ptr, 2); // досылаем сообщения из очереди
return;
case -1: // сессия разорвана по ошибке, неверный тип сообщения
- msg=sim501; break;
+ msg = sim501; break;
case -2: // сессия разорвана по ошибке другой стороной
- msg=sim502; break;
+ msg = sim502; break;
case -5: // ошибка декодирования AES сообщения
- msg=sim505; break;
+ msg = sim505; break;
case -6: // ошибка декодирования RSA сообщения
- msg=sim506; break;
+ msg = sim506; break;
case -7: // таймаут установки соединения (10 секунд)
- msg=sim507; break;
+ msg = sim507; break;
case -8: // сессия разорвана по причине "disabled"
- msg=sim508; break;
+ msg = sim508; break;
case -0x10: // сессия разорвана по ошибке
case -0x21:
case -0x22:
@@ -116,14 +116,14 @@ void __cdecl rsa_notify(HANDLE context, int state) case -0x40:
case -0x50:
case -0x60:
- {
- char buf[1024];
- mir_snprintf(buf, SIZEOF(buf), sim510, -state);
- showPopupDCmsg(ptr->hContact, buf);
- ShowStatusIconNotify(ptr->hContact);
- if (ptr->cntx) deleteRSAcntx(ptr);
- waitForExchange(ptr, 3); // досылаем нешифровано
- }
+ {
+ char buf[1024];
+ mir_snprintf(buf, SIZEOF(buf), sim510, -state);
+ showPopupDCmsg(ptr->hContact, buf);
+ ShowStatusIconNotify(ptr->hContact);
+ if (ptr->cntx) deleteRSAcntx(ptr);
+ waitForExchange(ptr, 3); // досылаем нешифровано
+ }
return;
case -3: // соединение разорвано вручную
@@ -131,16 +131,16 @@ void __cdecl rsa_notify(HANDLE context, int state) showPopupDC(ptr->hContact);
ShowStatusIconNotify(ptr->hContact);
if (ptr->cntx) deleteRSAcntx(ptr);
- waitForExchange(ptr,3); // досылаем нешифровано
+ waitForExchange(ptr, 3); // досылаем нешифровано
return;
default:
return;
}
- showPopupDCmsg(ptr->hContact,msg);
+ showPopupDCmsg(ptr->hContact, msg);
ShowStatusIconNotify(ptr->hContact);
if (ptr->cntx) deleteRSAcntx(ptr);
- waitForExchange(ptr,3); // досылаем нешифровано
+ waitForExchange(ptr, 3); // досылаем нешифровано
}
void sttGenerateRSA(LPVOID)
@@ -149,7 +149,7 @@ void sttGenerateRSA(LPVOID) char pub_key[4096]; int pub_len;
exp->rsa_gen_keypair(CPP_MODE_RSA_4096);
- exp->rsa_get_keypair(CPP_MODE_RSA_4096,(PBYTE)&priv_key,&priv_len,(PBYTE)&pub_key,&pub_len);
+ exp->rsa_get_keypair(CPP_MODE_RSA_4096, (PBYTE)&priv_key, &priv_len, (PBYTE)&pub_key, &pub_len);
db_set_blob(NULL, MODULENAME, "rsa_priv", priv_key, priv_len);
db_set_blob(NULL, MODULENAME, "rsa_pub", pub_key, pub_len);
@@ -162,8 +162,8 @@ BYTE loadRSAkey(pUinKey ptr) if (!ptr->keyLoaded) {
DBVARIANT dbv;
dbv.type = DBVT_BLOB;
- if ( db_get(ptr->hContact,MODULENAME,"rsa_pub",&dbv) == 0) {
- ptr->keyLoaded = exp->rsa_set_pubkey(ptr->cntx,dbv.pbVal,dbv.cpbVal);
+ if (db_get(ptr->hContact, MODULENAME, "rsa_pub", &dbv) == 0) {
+ ptr->keyLoaded = exp->rsa_set_pubkey(ptr->cntx, dbv.pbVal, dbv.cpbVal);
Sent_NetLog("loadRSAkey %d", ptr->keyLoaded);
db_free(&dbv);
}
@@ -187,7 +187,7 @@ void resetRSAcntx(pUinKey ptr) cpp_delete_context(ptr->cntx);
ptr->cntx = cpp_create_context(CPP_MODE_RSA);
ptr->keyLoaded = 0;
- }
+ }
}
// удаляет RSA контекст
@@ -197,6 +197,3 @@ void deleteRSAcntx(pUinKey ptr) ptr->cntx = 0;
ptr->keyLoaded = 0;
}
-
-
-// EOF
|