added storing password in a secure way

This commit is contained in:
2023-03-09 18:13:46 +01:00
parent bc90ce2269
commit fada0ebeb0
8 changed files with 101 additions and 118 deletions
+39 -43
View File
@@ -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();
}
}
*/