diff options
-rw-r--r-- | gpg4usb.pro | 2 | ||||
-rw-r--r-- | gpgcontext.cpp | 21 | ||||
-rw-r--r-- | gpgcontext.h | 1 | ||||
-rw-r--r-- | keydetailsdialog.cpp | 6 | ||||
-rw-r--r-- | kgpg/core/convert.cpp | 11 | ||||
-rw-r--r-- | kgpg/kgpginterface.cpp | 3 |
6 files changed, 34 insertions, 10 deletions
diff --git a/gpg4usb.pro b/gpg4usb.pro index bf53903..dfaeda5 100644 --- a/gpg4usb.pro +++ b/gpg4usb.pro @@ -46,6 +46,7 @@ HEADERS += attachments.h \ kgpg/kprocess.h \ kgpg/kprocess_p.h \ kgpg/kgpginterface.h \ +# kgpg/core/convert.h \ kgpg/core/kgpgkey.h \ kgpg/core/KGpgSignableNode.h \ kgpg/core/KGpgExpandableNode.h \ @@ -105,6 +106,7 @@ SOURCES += attachments.cpp \ kgpg/klinebufferedprocess.cpp \ kgpg/kprocess.cpp \ kgpg/kgpginterface.cpp \ +# kgpg/core/convert.cpp \ kgpg/core/kgpgkey.cpp \ kgpg/core/KGpgSignableNode.cpp \ kgpg/core/KGpgExpandableNode.cpp \ diff --git a/gpgcontext.cpp b/gpgcontext.cpp index 959e8e9..6278785 100644 --- a/gpgcontext.cpp +++ b/gpgcontext.cpp @@ -147,10 +147,11 @@ GpgContext::~GpgContext() KgpgCore::KgpgKey GpgContext::getKeyDetails(QString uid) { + KgpgCore::KgpgKeyList keys; // try secret - KgpgCore::KgpgKeyList keys = KgpgInterface::readSecretKeys(QStringList() << uid); - if(keys.empty()) { + //KgpgCore::KgpgKeyList keys = KgpgInterface::readSecretKeys(QStringList() << uid); + //if(keys.empty()) { // ok try public keys = KgpgInterface::readPublicKeys(QStringList() << uid); // that should not happen @@ -159,7 +160,7 @@ KgpgCore::KgpgKey GpgContext::getKeyDetails(QString uid) { return ; }*/ - } + //} KgpgCore::KgpgKey key = keys.first(); return key; @@ -177,9 +178,8 @@ GpgKeyList GpgContext::listKeys() GpgKeyList keys; - KgpgCore::KgpgKeyList kl = KgpgInterface::readPublicKeys(); - foreach(KgpgCore::KgpgKey kkey, kl) { + foreach(KgpgCore::KgpgKey kkey, KgpgInterface::readPublicKeys()) { GpgKey key; key.email = kkey.email(); //key.expired = kkey.expirationDate().toString(); @@ -205,6 +205,17 @@ GpgKeyList GpgContext::listKeys() return keys; } +// TODO: do we really need to call gpg or could we use an already existing list +bool GpgContext::isSecretKey(QString uid) { + + foreach(KgpgCore::KgpgKey skey, KgpgInterface::readSecretKeys()) { + if(skey.id() == uid) return true; + } + + return false; + +} + /** also from kgpgme.cpp, seems to clear password from mem */ void GpgContext::clearPasswordCache() { diff --git a/gpgcontext.h b/gpgcontext.h index dc0edee..5fc6b9e 100644 --- a/gpgcontext.h +++ b/gpgcontext.h @@ -112,6 +112,7 @@ public: GpgKeyList listKeys(); void clearPasswordCache(); KgpgCore::KgpgKey getKeyDetails(QString uid); + bool isSecretKey(QString uid); /** * @details If text contains PGP-message, put a linebreak before the message, diff --git a/keydetailsdialog.cpp b/keydetailsdialog.cpp index ef5aafd..75c49e1 100644 --- a/keydetailsdialog.cpp +++ b/keydetailsdialog.cpp @@ -21,6 +21,7 @@ #include "keydetailsdialog.h" #include "kgpg/transactions/kgpgexport.h" +//#include "kgpg/core/convert.h" KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, KgpgCore::KgpgKey key, QWidget *parent) : QDialog(parent) @@ -54,6 +55,8 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, KgpgCore::KgpgKey key } keyAlgoVal = key.algorithm(); + // TODO: algorithm + //keyAlgoVal = KgpgCore::Convert::toString(key.algorithm()) + QLatin1String( " / " ) + KgpgCore::Convert::toString(key.encryptionAlgorithm()); qDebug() << key.algorithm(); keyCreatedVal = key.creationDate().toString("dd. MMM. yyyy"); @@ -138,7 +141,8 @@ KeyDetailsDialog::KeyDetailsDialog(GpgME::GpgContext* ctx, KgpgCore::KgpgKey key mvbox->addWidget(additionalUidBox); }*/ - if (key.secret()) { + //if (key.secret()) { + if(mCtx->isSecretKey(key.id())) { QGroupBox *privKeyBox = new QGroupBox(tr("Private Key")); QVBoxLayout *vboxPK = new QVBoxLayout(); diff --git a/kgpg/core/convert.cpp b/kgpg/core/convert.cpp index 934ec02..f23631f 100644 --- a/kgpg/core/convert.cpp +++ b/kgpg/core/convert.cpp @@ -23,7 +23,7 @@ //#include <KGlobal> //#include <KLocale> -#include <QTranslator> + //#include "kgpgsettings.h" #include "images.h" @@ -81,7 +81,7 @@ QColor Convert::toColor(const KgpgKeyTrust trust) switch (trust) { case TRUST_INVALID: - /*case TRUST_DISABLED: return KGpgSettings::colorBad(); +/* case TRUST_DISABLED: return KGpgSettings::colorBad(); case TRUST_EXPIRED: return KGpgSettings::colorExpired(); case TRUST_MARGINAL: return KGpgSettings::colorMarginal(); case TRUST_REVOKED: return KGpgSettings::colorRev(); @@ -90,14 +90,17 @@ QColor Convert::toColor(const KgpgKeyTrust trust) case TRUST_FULL: return KGpgSettings::colorGood(); case TRUST_ULTIMATE: return KGpgSettings::colorUltimate();*/ case TRUST_UNKNOWN: - default: return QColor(0,0,0); - //return KGpgSettings::colorUnknown(); +// default: return KGpgSettings::colorUnknown(); + default: + return QColor(); } } QString Convert::toString(const QDate &date) { + // TODO //return KGlobal::locale()->formatDate(date, KLocale::ShortDate); + return "TODO"; } KgpgKeyAlgo Convert::toAlgo(const uint v) diff --git a/kgpg/kgpginterface.cpp b/kgpg/kgpginterface.cpp index 8632897..4785270 100644 --- a/kgpg/kgpginterface.cpp +++ b/kgpg/kgpginterface.cpp @@ -188,6 +188,7 @@ int KgpgInterface::sendPassphrase(const QString &text, KProcess *process, QWidge static KgpgCore::KgpgKeyList readPublicKeysProcess(GPGProc &p, KGpgKeyNode *readNode) { + qDebug() << "\n------\nread public keys process\n-----\n"; QStringList lsp; int items; KgpgCore::KgpgKeyList publiclistkeys; @@ -354,6 +355,7 @@ void KgpgInterface::readSignatures(KGpgKeyNode *node) static KgpgCore::KgpgKeyList readSecretKeysProcess(GPGProc &p) { + qDebug() << "\n------\nread secret keys process\n-----\n"; QStringList lsp; int items; bool hasuid = true; @@ -362,6 +364,7 @@ readSecretKeysProcess(GPGProc &p) while ( (items = p.readln(lsp)) >= 0 ) { if ((lsp.at(0) == QLatin1String( "sec" )) && (items >= 10)) { + result << KgpgKey(lsp.at(4), lsp.at(2).toUInt(), Convert::toTrust(lsp.at(1)), Convert::toAlgo(lsp.at(3).toInt()), QDateTime::fromTime_t(lsp.at(5).toUInt())); |