diff options
author | nils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-03-21 22:06:17 +0000 |
---|---|---|
committer | nils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-03-21 22:06:17 +0000 |
commit | ffc7c45fee1bfa046cd2c605a43c9c5d2cf7eb62 (patch) | |
tree | 15fa804d0f2945a64d5a70bb6c71ce804f231b09 | |
parent | added rsa key generation (diff) | |
download | gpg4usb-ffc7c45fee1bfa046cd2c605a43c9c5d2cf7eb62.tar.gz gpg4usb-ffc7c45fee1bfa046cd2c605a43c9c5d2cf7eb62.zip |
proof of concept for upload key to server
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@859 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r-- | keylist.cpp | 45 | ||||
-rw-r--r-- | keylist.h | 7 | ||||
-rw-r--r-- | mainwindow.cpp | 13 | ||||
-rw-r--r-- | mainwindow.h | 3 |
4 files changed, 68 insertions, 0 deletions
diff --git a/keylist.cpp b/keylist.cpp index 3d93433..204e346 100644 --- a/keylist.cpp +++ b/keylist.cpp @@ -263,3 +263,48 @@ void KeyList::importKeys(QByteArray inBuffer) GpgImportInformation result = mCtx->importKey(inBuffer); new KeyImportDetailDialog(mCtx, result, this); } + +void KeyList::uploadKeyToServer(QByteArray *keys) +{ + QUrl reqUrl("http://localhost:11371/pks/add"); + qnam = new QNetworkAccessManager(this); + + QUrl params; + keys->replace("\n", "%0D%0A") + .replace("(", "%28") + .replace(")", "%29") + .replace("/", "%2F") + .replace(":", "%3A") + .replace("+","%2B") + .replace(' ', '+'); + + params.addEncodedQueryItem("keytext", *keys); + QNetworkRequest req(reqUrl); + + req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded"); + + QNetworkReply *reply = qnam->post(req,params.encodedQuery()); + connect(reply, SIGNAL(finished()), + this, SLOT(uploadFinished())); + qDebug() << "REQURL: " << reqUrl; + qDebug() << "PARAMS.ENCODED: " << params.toEncoded(); +} + +void KeyList::uploadFinished() +{ + QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); + + QByteArray response = reply->readAll(); + qDebug() << "RESPNOSE: " << response.data(); + //reply->readAll(); + qDebug() << "ERROR: " << reply->error(); + if (reply->error()) { + qDebug() << "Error while contacting keyserver!"; + return; + } else { + qDebug() << "Success while contacting keyserver!"; + } + + reply->deleteLater(); + reply = 0; +} @@ -24,6 +24,8 @@ #include "gpgcontext.h" #include "keyimportdetaildialog.h" +#include <QNetworkAccessManager> +#include <QtNetwork> QT_BEGIN_NAMESPACE class QWidget; @@ -53,12 +55,17 @@ public: public slots: void refresh(); + void uploadKeyToServer(QByteArray *keys); private: void importKeys(QByteArray inBuffer); GpgME::GpgContext *mCtx; QTableWidget *mKeyList; QMenu *popupMenu; + QNetworkAccessManager *qnam; + +private slots: + void uploadFinished(); protected: void contextMenuEvent(QContextMenuEvent *event); diff --git a/mainwindow.cpp b/mainwindow.cpp index 6c462e2..52f91a8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -57,6 +57,8 @@ MainWindow::MainWindow() mKeyList->addMenuAction(copyMailAddressToClipboardAct); mKeyList->addMenuAction(showKeyDetailsAct); mKeyList->addMenuAction(refreshKeysFromKeyserverAct); + mKeyList->addMenuAction(uploadKeyToServerAct); + restoreSettings(); // open filename if provided as first command line parameter @@ -354,6 +356,10 @@ void MainWindow::createActions() refreshKeysFromKeyserverAct->setToolTip(tr("Refresh key from default keyserver")); connect(refreshKeysFromKeyserverAct, SIGNAL(triggered()), this, SLOT(refreshKeysFromKeyserver())); + uploadKeyToServerAct = new QAction(tr("Upload Key(s) To Server"), this); + uploadKeyToServerAct->setToolTip(tr("Upload The Selected Keys To Server")); + connect(uploadKeyToServerAct, SIGNAL(triggered()), this, SLOT(uploadKeyToServer())); + /* Key-Shortcuts for Tab-Switchung-Action */ switchTabUpAct = new QAction(this); @@ -904,7 +910,14 @@ void MainWindow::refreshKeysFromKeyserver() KeyServerImportDialog *ksid = new KeyServerImportDialog(mCtx,mKeyList,this); ksid->import(*mKeyList->getSelected()); +} + +void MainWindow::uploadKeyToServer() +{ + QByteArray *keyArray = new QByteArray(); + mCtx->exportKeys(mKeyList->getSelected(), keyArray); + mKeyList->uploadKeyToServer(keyArray); } void MainWindow::fileEncryption() diff --git a/mainwindow.h b/mainwindow.h index 3d21bb2..268245a 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -108,6 +108,8 @@ private slots: void refreshKeysFromKeyserver(); + void uploadKeyToServer(); + void startWizard(); /** @@ -315,6 +317,7 @@ private: QAction *openHelpAct; /** Action to open tutorial */ QAction *showKeyDetailsAct; /** Action to open key-details dialog */ QAction *refreshKeysFromKeyserverAct; /** Action to refresh a key from keyserver */ + QAction *uploadKeyToServerAct; /** Action to append selected keys to edit */ QAction *startWizardAct; /** Action to open the wizard */ QAction *cutPgpHeaderAct; /** Action for cutting the PGP header */ QAction *addPgpHeaderAct; /** Action for adding the PGP header */ |