X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/cf3954a35eaddf462fbe1247f54c0b4b9f9eac80..45043ba8ae9d21f69209fcb74f1715d97e4fc409:/stglibs/srvconf.lib/netunit.cpp?ds=inline diff --git a/stglibs/srvconf.lib/netunit.cpp b/stglibs/srvconf.lib/netunit.cpp index 43428530..936ebc60 100644 --- a/stglibs/srvconf.lib/netunit.cpp +++ b/stglibs/srvconf.lib/netunit.cpp @@ -58,31 +58,6 @@ NETTRANSACT::NETTRANSACT() dataRxCallBack(NULL) { } -//----------------------------------------------------------------------------- -void NETTRANSACT::EnDecryptInit(const char * passwd, int, BLOWFISH_CTX *ctx) -{ -unsigned char * keyL = NULL; - -keyL = new unsigned char[PASSWD_LEN]; - -memset(keyL, 0, PASSWD_LEN); - -strncpy((char *)keyL, passwd, PASSWD_LEN); - -Blowfish_Init(ctx, keyL, PASSWD_LEN); - -delete[] keyL; -} -//----------------------------------------------------------------------------- -void NETTRANSACT::Encrypt(char * d, const char * s, BLOWFISH_CTX *ctx) -{ -EncodeString(d, s, ctx); -} -//--------------------------------------------------------------------------- -void NETTRANSACT::Decrypt(char * d, const char * s, BLOWFISH_CTX *ctx) -{ -DecodeString(d, s, ctx); -} //--------------------------------------------------------------------------- int NETTRANSACT::Connect() { @@ -293,7 +268,7 @@ int ret; memset(loginZ, 0, ADM_LOGIN_LEN); BLOWFISH_CTX ctx; InitContext(password.c_str(), PASSWD_LEN, &ctx); -EncryptString(loginZ, login.c_str(), std::min(login.length(), ADM_LOGIN_LEN), &ctx); +EncryptString(loginZ, login.c_str(), std::min(login.length() + 1, ADM_LOGIN_LEN), &ctx); if (send(outerSocket, loginZ, ADM_LOGIN_LEN, 0) <= 0) { errorMsg = SEND_LOGIN_ERROR; @@ -345,9 +320,9 @@ int r = strlen(text) % ENC_MSG_LEN; BLOWFISH_CTX ctx; InitContext(password.c_str(), PASSWD_LEN, &ctx); -char buffer[text.length()]; -EncryptString(buffer, text.c_str(), text.length(), &ctx); -if (send(outerSocket, buffer, text.length(), 0) <= 0) +char buffer[text.length() + 9]; +EncryptString(buffer, text.c_str(), text.length() + 1, &ctx); +if (send(outerSocket, buffer, sizeof(buffer), 0) <= 0) { errorMsg = SEND_DATA_ERROR; return st_send_fail; @@ -370,12 +345,12 @@ if (strlen(data)%ENC_MSG_LEN) l++; BLOWFISH_CTX ctx; -InitContext(password.c_str(), PASSWD_LEN, &ctx); +InitContext(passwd, PASSWD_LEN, &ctx); for (int j = 0; j < l; j++) { strncpy(buff, &data[j*ENC_MSG_LEN], ENC_MSG_LEN); - Encrypt(buffS, buff, &ctx); + EncryptBlock(buffS, buff, &ctx); send(outerSocket, buffS, ENC_MSG_LEN, 0); } @@ -390,7 +365,7 @@ char bufferS[ENC_MSG_LEN]; char buffer[ENC_MSG_LEN + 1]; BLOWFISH_CTX ctx; -EnDecryptInit(password.c_str(), PASSWD_LEN, &ctx); +InitContext(password.c_str(), PASSWD_LEN, &ctx); while (1) { @@ -405,7 +380,7 @@ while (1) if (n == ENC_MSG_LEN) { n = 0; - Decrypt(buffer, bufferS, &ctx); + DecryptBlock(buffer, bufferS, &ctx); buffer[ENC_MSG_LEN] = 0; answerList.push_back(buffer);