mirror of
https://github.com/QuasarApp/Qt-Secret.git
synced 2025-04-29 17:14:32 +00:00
87 lines
2.1 KiB
C++
87 lines
2.1 KiB
C++
#include "appcore.h"
|
|
|
|
AppCore::AppCore(QObject *parent, QClipboard *clpbrd) : QObject(parent) {
|
|
|
|
clipboard = clpbrd;
|
|
|
|
connect(this, &AppCore::wrkGenerateKeys, &secWorker, &SecretWorker::generateKeys);
|
|
connect(&secWorker, &SecretWorker::showKeysOnQml, this, &AppCore::printKeys);
|
|
|
|
connect(this, &AppCore::wrkEncryptMessage, &secWorker, &SecretWorker::encryptMessage);
|
|
connect(this, &AppCore::wrkDecryptMessage, &secWorker, &SecretWorker::decryptMessage);
|
|
connect(&secWorker, &SecretWorker::showEncDecResOnQml, this, &AppCore::printEncDecResult);
|
|
|
|
connect(this, &AppCore::wrkSignMessage, &secWorker, &SecretWorker::signMessage);
|
|
connect(this, &AppCore::wrkCheckSign, &secWorker, &SecretWorker::checkSign);
|
|
connect(&secWorker, &SecretWorker::showSignResOnQml, this, &AppCore::printSignResult);
|
|
|
|
secWorker.moveToThread(&workThread);
|
|
workThread.start();
|
|
}
|
|
|
|
AppCore::~AppCore() {
|
|
|
|
workThread.quit();
|
|
workThread.wait();
|
|
}
|
|
|
|
void AppCore::copyToClipboard(QString text) {
|
|
|
|
clipboard->setText(text);
|
|
}
|
|
|
|
// generate keys
|
|
void AppCore::generateKeys(int rsa) {
|
|
|
|
emit qmlOpenPopup();
|
|
emit wrkGenerateKeys(rsa);
|
|
}
|
|
|
|
void AppCore::printKeys() {
|
|
|
|
emit qmlShowKeys(secWorker.pubKey.toHex(), secWorker.privKey.toHex());
|
|
emit qmlClosePopup();
|
|
}
|
|
|
|
// encryption and decryption
|
|
void AppCore::getEncryptDecrypt(bool actionType, QString key, QString message) {
|
|
|
|
emit qmlOpenPopup();
|
|
|
|
// encryption
|
|
if(actionType) {
|
|
emit wrkEncryptMessage(key, message);
|
|
}
|
|
// decryption
|
|
else {
|
|
emit wrkDecryptMessage(key, message);
|
|
}
|
|
}
|
|
|
|
void AppCore::printEncDecResult() {
|
|
|
|
emit qmlShowEncDecResult(secWorker.message);
|
|
emit qmlClosePopup();
|
|
}
|
|
|
|
// sign message and check sign
|
|
void AppCore::getSignCheck(bool actionType, QString key, QString message) {
|
|
|
|
emit qmlOpenPopup();
|
|
|
|
// sign message
|
|
if(actionType) {
|
|
emit wrkSignMessage(key, message);
|
|
}
|
|
// check sign
|
|
else {
|
|
emit wrkCheckSign(key, message);
|
|
}
|
|
}
|
|
|
|
void AppCore::printSignResult() {
|
|
|
|
emit qmlShowSignResult(secWorker.message);
|
|
emit qmlClosePopup();
|
|
}
|