added storing password in a secure way
This commit is contained in:
+39
-43
@@ -2,58 +2,54 @@
|
||||
#include "password.h"
|
||||
#include <qt5keychain/keychain.h>
|
||||
#include <qt5keychain/qkeychain_export.h>
|
||||
#include <QSettings>
|
||||
|
||||
using namespace std;
|
||||
extern QApplication a;
|
||||
|
||||
/*Password::Password()
|
||||
QString appName = "RsyncUI";
|
||||
|
||||
static QSettings sett{appName, appName};
|
||||
|
||||
void setPassword(QString account, QString pass)
|
||||
{
|
||||
this->passwdJob->setObjectName(this->appName);
|
||||
this->passwdJob->setAutoDelete(false);
|
||||
this->passwdJob->connect(this->passwdJob, SIGNAL(finished(QKeychain::Job*)), this, SLOT(finished(QKeychain::Job*)));
|
||||
//this->readPass->connect(this->readPass, SIGNAL(finished()))
|
||||
QKeychain::WritePasswordJob write(appName);
|
||||
write.setSettings(&sett);
|
||||
// write.setAutoDelete(false);
|
||||
write.setKey(account);
|
||||
write.setTextData(pass);
|
||||
|
||||
QEventLoop loop;
|
||||
write.connect(&write, &QKeychain::WritePasswordJob::finished, &loop, &QEventLoop::quit);
|
||||
|
||||
write.start();
|
||||
loop.exec();
|
||||
|
||||
if(write.error())
|
||||
cout << "Error writing key1. Error: " << write.errorString().toStdString();
|
||||
}
|
||||
|
||||
void Password::store (QString account, QString password)
|
||||
QString getPassword(const QString& name)
|
||||
{
|
||||
this->passwdJob->setKey(account);
|
||||
this->passwdJob->setTextData(password);
|
||||
this->passwdJob->start();
|
||||
}
|
||||
QKeychain::ReadPasswordJob readPass(appName);
|
||||
readPass.setSettings(&sett);
|
||||
// readPass.setAutoDelete(false);
|
||||
readPass.setKey(name);
|
||||
|
||||
QString Password::read(QString account)
|
||||
{
|
||||
this->readPass->setObjectName("");
|
||||
this->readPass->setKey(account);
|
||||
this->readPass->start();
|
||||
}
|
||||
QEventLoop loop;
|
||||
readPass.connect(&readPass, &QKeychain::ReadPasswordJob::finished, &loop, &QEventLoop::quit);
|
||||
|
||||
bool Password::remove(QString)
|
||||
{
|
||||
readPass.start();
|
||||
loop.exec();
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Password::finished(QKeychain::Job * passwdJob)
|
||||
{
|
||||
if(passwdJob->error()) {
|
||||
QMessageBox::warning(
|
||||
NULL,
|
||||
"RsyncUI",
|
||||
QString(this->mw->tr("Error: Unable to save password!")) + QString(passwdJob->error()));
|
||||
if(readPass.error())
|
||||
{
|
||||
qDebug()<<"KeyHandler~Error reading decrypt Pass. Error: " + readPass.errorString();
|
||||
return "";
|
||||
}
|
||||
else
|
||||
{
|
||||
QString data = readPass.textData();
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
void Password::readReturn()
|
||||
{
|
||||
if(this->readPass->error())
|
||||
{
|
||||
QMessageBox::warning(
|
||||
NULL,
|
||||
"RsyncUI",
|
||||
QString(this->mw->tr("Error: Unable to read password!")) + QString(readPass->error()));
|
||||
}else
|
||||
{
|
||||
this->password = readPass->textData();
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user