aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-08-02 22:08:46 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-08-02 22:08:46 +0000
commit527a227714538c2aaf4bf37f7593b680b7aea85a (patch)
tree592b3650449f96558a2dc80430a06d675cc36748
parentmark private keys works again (diff)
downloadgpg4usb-527a227714538c2aaf4bf37f7593b680b7aea85a.tar.gz
gpg4usb-527a227714538c2aaf4bf37f7593b680b7aea85a.zip
getKeyDetails kind of works
git-svn-id: http://cpunk.de/svn/src/gpg4usb/branches/0.3.2-mac@927 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r--gpgcontext.cpp16
-rw-r--r--gpgcontext.h4
-rw-r--r--keydetailsdialog.cpp40
-rw-r--r--keydetailsdialog.h3
-rwxr-xr-xkeymgmt.cpp10
-rw-r--r--mainwindow.cpp8
-rw-r--r--mainwindow.h1
7 files changed, 50 insertions, 32 deletions
diff --git a/gpgcontext.cpp b/gpgcontext.cpp
index e6666f3..8de7d9c 100644
--- a/gpgcontext.cpp
+++ b/gpgcontext.cpp
@@ -194,7 +194,7 @@ bool GpgContext::exportKeys(QStringList *uidList, QByteArray *outBuffer)
return true;
}
-gpgme_key_t GpgContext::getKeyDetails(QString uid)
+/*gpgme_key_t GpgContext::getKeyDetails(QString uid)
{
gpgme_key_t key;
@@ -205,6 +205,20 @@ gpgme_key_t GpgContext::getKeyDetails(QString uid)
gpgme_get_key(mCtx, uid.toAscii().constData(), &key, 0);
}
return key;
+}*/
+
+KgpgCore::KgpgKey GpgContext::getKeyDetails(QString uid) {
+
+ //KgpgCore::KgpgKey key;
+ // try secret
+ KgpgCore::KgpgKey key = KgpgInterface::readSecretKeys(QStringList() << uid).first();
+
+ // ok, its a public key
+ if (key.id() == "") {
+ KgpgCore::KgpgKey key = KgpgInterface::readPublicKeys(QStringList() << uid).first();
+ }
+ return key;
+
}
diff --git a/gpgcontext.h b/gpgcontext.h
index f9caf61..7bb9a4b 100644
--- a/gpgcontext.h
+++ b/gpgcontext.h
@@ -28,6 +28,7 @@
#include <gpgme.h>
#include <QLinkedList>
#include <QtGui>
+#include "kgpg/kgpgkey.h"
QT_BEGIN_NAMESPACE
class QMessageBox;
@@ -118,7 +119,8 @@ public:
bool decrypt(const QByteArray &inBuffer, QByteArray *outBuffer);
void clearPasswordCache();
void exportSecretKey(QString uid, QByteArray *outBuffer);
- gpgme_key_t getKeyDetails(QString uid);
+ //gpgme_key_t getKeyDetails(QString uid);
+ KgpgCore::KgpgKey getKeyDetails(QString uid);
gpgme_signature_t verify(QByteArray in);
// void decryptVerify(QByteArray in);
bool sign(QStringList *uidList, const QByteArray &inBuffer, QByteArray *outBuffer );
diff --git a/keydetailsdialog.cpp b/keydetailsdialog.cpp
index 5a66122..64d8420 100644
--- a/keydetailsdialog.cpp
+++ b/keydetailsdialog.cpp
@@ -21,11 +21,11 @@
#include "keydetailsdialog.h"
-KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWidget *parent)
+KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, KgpgCore::KgpgKey key, QWidget *parent)
: QDialog(parent)
{
mCtx = ctx;
- keyid = new QString(key->subkeys->keyid);
+ keyid = new QString(key.id());
ownerBox = new QGroupBox(tr("Owner details"));
keyBox = new QGroupBox(tr("Key details"));
@@ -34,29 +34,29 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
buttonBox = new QDialogButtonBox(QDialogButtonBox::Close);
connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
- nameVarLabel = new QLabel(QString::fromUtf8(key->uids->name));
+ nameVarLabel = new QLabel(key.name());
nameVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
- emailVarLabel = new QLabel(QString::fromUtf8(key->uids->email));
+ emailVarLabel = new QLabel(key.email());
emailVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
- commentVarLabel = new QLabel(QString::fromUtf8(key->uids->comment));
+ commentVarLabel = new QLabel(key.comment());
commentVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
- keyidVarLabel = new QLabel(key->subkeys->keyid);
+ keyidVarLabel = new QLabel(key.id());
keyidVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
QString keySizeVal, keyExpireVal, keyCreatedVal, keyAlgoVal;
- if (key->subkeys->expires == 0) {
+ if (key.expirationDate().isNull()) {
keyExpireVal = tr("Never");
} else {
- keyExpireVal = QDateTime::fromTime_t(key->subkeys->expires).toString("dd. MMM. yyyy");
+ keyExpireVal = key.expirationDate().toString("dd. MMM. yyyy");
}
- keyAlgoVal = gpgme_pubkey_algo_name(key->subkeys->pubkey_algo);
- keyCreatedVal = QDateTime::fromTime_t(key->subkeys->timestamp).toString("dd. MMM. yyyy");
+ keyAlgoVal = key.algorithm();
+ keyCreatedVal = key.creationDate().toString("dd. MMM. yyyy");
// have el-gamal key?
- if (key->subkeys->next) {
+ /*if (key->subkeys->next) {
keySizeVal.sprintf("%d / %d", int(key->subkeys->length), int(key->subkeys->next->length));
if (key->subkeys->next->expires == 0) {
keyExpireVal += tr(" / Never");
@@ -67,7 +67,7 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
keyCreatedVal += " / " + QDateTime::fromTime_t(key->subkeys->next->timestamp).toString("dd. MMM. yyyy");
} else {
keySizeVal.setNum(int(key->subkeys->length));
- }
+ }*/
keySizeVarLabel = new QLabel(keySizeVal);
expireVarLabel = new QLabel(keyExpireVal);
@@ -102,7 +102,7 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
keyBox->setLayout(vboxKD);
mvbox->addWidget(keyBox);
- fingerPrintVarLabel = new QLabel(beautifyFingerprint(key->subkeys->fpr));
+ fingerPrintVarLabel = new QLabel(key.fingerprintBeautified());
fingerPrintVarLabel->setTextInteractionFlags(Qt::TextSelectableByMouse);
fingerPrintVarLabel->setStyleSheet("margin-left: 20; margin-right: 20;");
QHBoxLayout *hboxFP = new QHBoxLayout();
@@ -122,7 +122,7 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
mvbox->addWidget(fingerprintBox);
// If key has more than primary uid, also show the other uids
- gpgme_user_id_t addUserIds = key->uids->next;
+ /*gpgme_user_id_t addUserIds = key->uids->next;
if (addUserIds !=NULL) {
QVBoxLayout *vboxUID = new QVBoxLayout();
while (addUserIds != NULL){
@@ -133,9 +133,9 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
}
additionalUidBox->setLayout(vboxUID);
mvbox->addWidget(additionalUidBox);
- }
+ }*/
- if (key->secret) {
+ if (key.secret()) {
QGroupBox *privKeyBox = new QGroupBox(tr("Private Key"));
QVBoxLayout *vboxPK = new QVBoxLayout();
@@ -147,7 +147,7 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
mvbox->addWidget(privKeyBox);
}
- if((key->expired) || (key->revoked)) {
+ /*if((key->expired) || (key->revoked)) {
QHBoxLayout *expBox = new QHBoxLayout();
QIcon icon = QIcon::fromTheme("dialog-warning");
QPixmap pixmap = icon.pixmap(QSize(32,32),QIcon::Normal,QIcon::On);
@@ -168,7 +168,7 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWid
expBox->addWidget(iconLabel);
expBox->addWidget(expLabel);
mvbox->addLayout(expBox);
- }
+ }*/
mvbox->addWidget(buttonBox);
@@ -194,8 +194,8 @@ void KeyDetailsDialog::exportPrivateKey()
if (ret == QMessageBox::Ok) {
QByteArray *keyArray = new QByteArray();
mCtx->exportSecretKey(*keyid, keyArray);
- gpgme_key_t key = mCtx->getKeyDetails(*keyid);
- QString fileString = QString::fromUtf8(key->uids->name) + " " + QString::fromUtf8(key->uids->email) + "(" + QString(key->subkeys->keyid)+ ")_pub_sec.asc";
+ KgpgCore::KgpgKey key = mCtx->getKeyDetails(*keyid);
+ QString fileString = key.name() + " " + key.email() + "(" + key.id()+ ")_pub_sec.asc";
QString fileName = QFileDialog::getSaveFileName(this, tr("Export Key To File"), fileString, tr("Key Files") + " (*.asc *.txt);;All Files (*)");
QFile file(fileName);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
diff --git a/keydetailsdialog.h b/keydetailsdialog.h
index 37edd43..a13257e 100644
--- a/keydetailsdialog.h
+++ b/keydetailsdialog.h
@@ -23,6 +23,7 @@
#define __KEYDETAILSDIALOG_H__
#include "gpgcontext.h"
+#include "kgpg/kgpgkey.h"
#include <gpgme.h>
QT_BEGIN_NAMESPACE
@@ -42,7 +43,7 @@ class KeyDetailsDialog : public QDialog
Q_OBJECT
public:
- KeyDetailsDialog(GpgME::GpgContext* ctx, gpgme_key_t key, QWidget *parent = 0);
+ KeyDetailsDialog(GpgME::GpgContext* ctx, KgpgCore::KgpgKey key, QWidget *parent = 0);
/**
* @details Return QString with a space inserted at every fourth character
diff --git a/keymgmt.cpp b/keymgmt.cpp
index e8b7d94..5330479 100755
--- a/keymgmt.cpp
+++ b/keymgmt.cpp
@@ -212,9 +212,9 @@ void KeyMgmt::deleteKeysWithWarning(QStringList *uidList)
}
QString keynames;
foreach (QString uid, *uidList) {
- keynames.append(QString::fromUtf8(mCtx->getKeyDetails(uid)->uids->name));
+ keynames.append(mCtx->getKeyDetails(uid).name());
keynames.append("<i> &lt;");
- keynames.append(QString::fromUtf8(mCtx->getKeyDetails(uid)->uids->email));
+ keynames.append(mCtx->getKeyDetails(uid).email());
keynames.append("&gt; </i><br/>");
}
@@ -235,7 +235,7 @@ void KeyMgmt::showKeyDetails()
}
// TODO: first...?
- gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
+ KgpgCore::KgpgKey key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
new KeyDetailsDialog(mCtx, key);
}
@@ -246,8 +246,8 @@ void KeyMgmt::exportKeyToFile()
if (!mCtx->exportKeys(mKeyList->getChecked(), keyArray)) {
return;
}
- gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getChecked()->first());
- QString fileString = QString::fromUtf8(key->uids->name) + " " + QString::fromUtf8(key->uids->email) + "(" + QString(key->subkeys->keyid)+ ")_pub.asc";
+ KgpgCore::KgpgKey key = mCtx->getKeyDetails(mKeyList->getChecked()->first());
+ QString fileString = key.name() + " " + key.email() + "(" + key.id()+ ")_pub.asc";
QString fileName = QFileDialog::getSaveFileName(this, tr("Export Key To File"), fileString, tr("Key Files") + " (*.asc *.txt);;All Files (*)");
QFile file(fileName);
diff --git a/mainwindow.cpp b/mainwindow.cpp
index a608be8..024fb35 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -875,9 +875,9 @@ void MainWindow::copyMailAddressToClipboard()
return;
}
- gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
+ KgpgCore::KgpgKey key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
QClipboard *cb = QApplication::clipboard();
- QString mail = key->uids->email;
+ QString mail = key.email();
cb->setText(mail);
}
@@ -887,8 +887,8 @@ void MainWindow::showKeyDetails()
return;
}
- gpgme_key_t key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
- if (key) {
+ KgpgCore::KgpgKey key = mCtx->getKeyDetails(mKeyList->getSelected()->first());
+ if (key.id() != "") {
new KeyDetailsDialog(mCtx, key, this);
}
}
diff --git a/mainwindow.h b/mainwindow.h
index 8c0bcee..79928af 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -30,6 +30,7 @@
#include "settingsdialog.h"
#include "verifynotification.h"
#include "wizard.h"
+#include "kgpg/kgpgkey.h"
QT_BEGIN_NAMESPACE
class QMainWindow;