aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/PubkeyGetter.cpp95
-rw-r--r--src/server/api/PubkeyGetter.h52
-rw-r--r--src/server/api/PubkeyUploader.cpp106
-rw-r--r--src/server/api/PubkeyUploader.h51
4 files changed, 0 insertions, 304 deletions
diff --git a/src/server/api/PubkeyGetter.cpp b/src/server/api/PubkeyGetter.cpp
deleted file mode 100644
index e2cb8708..00000000
--- a/src/server/api/PubkeyGetter.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Foobar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from gpg4usb-team.
- * Their source code version also complies with GNU General Public License.
- *
- * The source code version of this software was modified and released
- * by Saturneric<[email protected]> starting on May 12, 2021.
- *
- */
-
-#include "server/api/PubkeyGetter.h"
-
-PubkeyGetter::PubkeyGetter(GpgFrontend::GpgContext *ctx,
- const QVector<QString> &fprs)
- : BaseAPI(ComUtils::GetPubkey), mCtx(ctx), mFprs(fprs) {}
-
-void PubkeyGetter::construct_json() {
- document.SetArray();
- QStringList keyIds;
-
- rapidjson::Document::AllocatorType &allocator = document.GetAllocator();
-
- for (const auto &fprStr : mFprs) {
- rapidjson::Value fpr;
-
- auto fprByteArray = fprStr.toUtf8();
- fpr.SetString(fprByteArray.constData(), fprByteArray.count());
-
- document.PushBack(fpr, allocator);
- keyIds.clear();
- }
-}
-
-void PubkeyGetter::deal_reply() {
- const auto &utils = getUtils();
-
- /**
- * {
- * "pubkeys" : [
- * {
- * "publicKey" : ...,
- * "fpr" : ...,
- * "sha" : ...
- * },
- * ...
- * ]
- * }
- */
-
- if (!utils.checkDataValue("pubkeys")) {
- QMessageBox::critical(nullptr, _("Error"),
- _("The communication content with the server does "
- "not meet the requirements"));
- } else {
- auto &pubkeys = utils.getDataValue("pubkeys");
- qDebug() << "Pubkey Getter" << pubkeys.IsArray()
- << pubkeys.GetArray().Size();
- if (pubkeys.IsArray()) {
- for (const auto &pubkey : pubkeys.GetArray()) {
- if (pubkey.IsObject() && pubkey.HasMember("publicKey") &&
- pubkey.HasMember("fpr") && pubkey.HasMember("sha") &&
- pubkey["publicKey"].IsString() && pubkey["fpr"].IsString() &&
- pubkey["sha"].IsString()) {
- auto pubkeyData = QString(pubkey["publicKey"].GetString());
-
- QCryptographicHash shaGen(QCryptographicHash::Sha256);
- shaGen.addData(pubkeyData.toUtf8());
-
- if (shaGen.result().toHex() == pubkey["sha"].GetString()) {
- mCtx->importKey(pubkeyData.toUtf8());
- }
- }
- }
-
- } else {
- QMessageBox::critical(nullptr, _("Error"),
- _("The communication content with the server does "
- "not meet the requirements"));
- }
- }
-}
diff --git a/src/server/api/PubkeyGetter.h b/src/server/api/PubkeyGetter.h
deleted file mode 100644
index 6a3d50e9..00000000
--- a/src/server/api/PubkeyGetter.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Foobar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from gpg4usb-team.
- * Their source code version also complies with GNU General Public License.
- *
- * The source code version of this software was modified and released
- * by Saturneric<[email protected]> starting on May 12, 2021.
- *
- */
-
-#ifndef GPGFRONTEND_ZH_CN_TS_PUBKEYGETTER_H
-#define GPGFRONTEND_ZH_CN_TS_PUBKEYGETTER_H
-
-#include "GpgFrontend.h"
-#include "gpg/GpgContext.h"
-#include "server/BaseAPI.h"
-
-class ComUtils;
-
-/**
- * Get and Import Pubkey from server
- */
-class PubkeyGetter : public BaseAPI {
- public:
- PubkeyGetter(GpgFrontend::GpgContext *ctx, const QVector<QString> &fprs);
-
- private:
- GpgFrontend::GpgContext *mCtx;
-
- const QVector<QString> &mFprs;
-
- protected:
- void construct_json() final;
-
- void deal_reply() final;
-};
-
-#endif // GPGFRONTEND_ZH_CN_TS_PUBKEYGETTER_H
diff --git a/src/server/api/PubkeyUploader.cpp b/src/server/api/PubkeyUploader.cpp
deleted file mode 100644
index 35f764d8..00000000
--- a/src/server/api/PubkeyUploader.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Foobar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from gpg4usb-team.
- * Their source code version also complies with GNU General Public License.
- *
- * The source code version of this software was modified and released
- * by Saturneric<[email protected]> starting on May 12, 2021.
- *
- */
-
-#include "server/api/PubkeyUploader.h"
-
-PubkeyUploader::PubkeyUploader(GpgFrontend::GpgContext *ctx,
- const QVector<GpgKey> &keys)
- : BaseAPI(ComUtils::UploadPubkey), mCtx(ctx), mKeys(keys) {}
-
-void PubkeyUploader::construct_json() {
- document.SetArray();
- QStringList keyIds;
- QCryptographicHash shaGen(QCryptographicHash::Sha256);
-
- auto &allocator = document.GetAllocator();
-
- QVector<QByteArray> keysData;
- for (const auto &key : mKeys) {
- QByteArray keyDataBuf;
- keyIds << key.id;
-
- // The use of multi-threading brings an improvement in UI smoothness
- gpgme_error_t error;
- auto thread = QThread::create(
- [&]() { error = mCtx->exportKeys(&keyIds, &keyDataBuf); });
- thread->start();
- while (thread->isRunning()) QApplication::processEvents();
- thread->deleteLater();
- keysData.push_back(keyDataBuf);
- keyIds.clear();
- }
-
- int index = 0;
- for (const auto &keyData : keysData) {
- rapidjson::Value publicKeyObj, pubkey, sha, signedFpr;
-
- shaGen.addData(keyData);
- auto shaStr = shaGen.result().toHex();
- shaGen.reset();
-
- auto signFprStr =
- ComUtils::getSignStringBase64(mCtx, mKeys[index].fpr, mKeys[index]);
- qDebug() << "signFprStr" << signFprStr;
-
- pubkey.SetString(keyData.data(), keyData.count(), allocator);
- sha.SetString(shaStr.data(), shaStr.count(), allocator);
- signedFpr.SetString(signFprStr.data(), signFprStr.count(), allocator);
-
- publicKeyObj.SetObject();
- publicKeyObj.AddMember("publicKey", pubkey, allocator);
- publicKeyObj.AddMember("sha", sha, allocator);
- publicKeyObj.AddMember("signedFpr", signedFpr, allocator);
-
- document.PushBack(publicKeyObj, allocator);
- index++;
- }
-}
-
-void PubkeyUploader::deal_reply() {
- const auto &utils = getUtils();
-
- /**
- * {
- * "strings" : [
- * "...",
- * "..."
- * ]
- * }
- */
-
- if (!utils.checkDataValue("strings")) {
- QMessageBox::critical(nullptr, _("Error"),
- _("The communication content with the server does "
- "not meet the requirements"));
- } else {
- auto &strings = utils.getDataValue("strings");
- qDebug() << "Pubkey Uploader" << strings.IsArray()
- << strings.GetArray().Size();
- if (strings.IsArray() && strings.GetArray().Size() == mKeys.size()) {
- good = true;
- } else {
- good = false;
- }
- }
-}
diff --git a/src/server/api/PubkeyUploader.h b/src/server/api/PubkeyUploader.h
deleted file mode 100644
index efad27ac..00000000
--- a/src/server/api/PubkeyUploader.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * This file is part of GpgFrontend.
- *
- * GpgFrontend is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Foobar is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from gpg4usb-team.
- * Their source code version also complies with GNU General Public License.
- *
- * The source code version of this software was modified and released
- * by Saturneric<[email protected]> starting on May 12, 2021.
- *
- */
-
-#ifndef GPGFRONTEND_ZH_CN_TS_PUBKEYUPLOADER_H
-#define GPGFRONTEND_ZH_CN_TS_PUBKEYUPLOADER_H
-
-#include "GpgFrontend.h"
-#include "gpg/GpgContext.h"
-#include "rapidjson/document.h"
-#include "server/BaseAPI.h"
-
-/**
- * Upload pubkey into server
- */
-class PubkeyUploader : public BaseAPI {
- public:
- PubkeyUploader(GpgFrontend::GpgContext *ctx, const QVector<GpgKey> &keys);
-
- private:
- const QVector<GpgKey> &mKeys;
-
- GpgFrontend::GpgContext *mCtx;
-
- protected:
- void construct_json() final;
-
- void deal_reply() final;
-};
-
-#endif // GPGFRONTEND_ZH_CN_TS_PUBKEYUPLOADER_H