diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-08-02 22:08:46 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2012-08-02 22:08:46 +0000 |
commit | 527a227714538c2aaf4bf37f7593b680b7aea85a (patch) | |
tree | 592b3650449f96558a2dc80430a06d675cc36748 | |
parent | mark private keys works again (diff) | |
download | gpg4usb-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.cpp | 16 | ||||
-rw-r--r-- | gpgcontext.h | 4 | ||||
-rw-r--r-- | keydetailsdialog.cpp | 40 | ||||
-rw-r--r-- | keydetailsdialog.h | 3 | ||||
-rwxr-xr-x | keymgmt.cpp | 10 | ||||
-rw-r--r-- | mainwindow.cpp | 8 | ||||
-rw-r--r-- | mainwindow.h | 1 |
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> <"); - keynames.append(QString::fromUtf8(mCtx->getKeyDetails(uid)->uids->email)); + keynames.append(mCtx->getKeyDetails(uid).email()); keynames.append("> </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; |