From dddfabaef2882800d39020c711dedbd78d91223a Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 23 Feb 2016 11:22:56 -0500 Subject: [PATCH] Just in case, also specify the char* length on the server when loading it into the QByteArray. --- src/server/AuthorizationManager.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/AuthorizationManager.cpp b/src/server/AuthorizationManager.cpp index ec4c4c2..44dfba1 100644 --- a/src/server/AuthorizationManager.cpp +++ b/src/server/AuthorizationManager.cpp @@ -354,10 +354,9 @@ QString AuthorizationManager::DecryptSSLString(QString encstring, QString pubkey rsa = PEM_read_bio_RSA_PUBKEY(keybio, &rsa,NULL, NULL); if(rsa==NULL){ qDebug() << " - Invalid RSA key!!"; return ""; } //qDebug() << " - Decrypt string"; - bool ok = (-1 != RSA_public_decrypt(enc.length(), (unsigned char*)(enc.data()), decode, rsa, RSA_PKCS1_PADDING) ); - //qDebug() <<" - Success:" << ok; - if(!ok){ return ""; } - else{ return QString::fromLatin1( (char*)(decode) ); } + int len = RSA_public_decrypt(enc.length(), (unsigned char*)(enc.data()), decode, rsa, RSA_PKCS1_PADDING); + if(len<0){ return ""; } + else{ return QString( QByteArray( (char*)(decode), len) ); } } /*