aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gpg4usb.pro2
-rw-r--r--gpgcontext.cpp21
-rw-r--r--gpgcontext.h1
-rw-r--r--keydetailsdialog.cpp6
-rw-r--r--kgpg/core/convert.cpp11
-rw-r--r--kgpg/kgpginterface.cpp3
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()));