diff options
| -rw-r--r-- | lang/qt/src/Makefile.am | 4 | ||||
| -rw-r--r-- | lang/qt/src/qgpgmesecretkeyexportjob.cpp | 147 | ||||
| -rw-r--r-- | lang/qt/src/qgpgmesecretkeyexportjob.h | 82 | 
3 files changed, 1 insertions, 232 deletions
| diff --git a/lang/qt/src/Makefile.am b/lang/qt/src/Makefile.am index b9171a60..792049af 100644 --- a/lang/qt/src/Makefile.am +++ b/lang/qt/src/Makefile.am @@ -34,7 +34,7 @@ qgpgme_sources = \      qgpgmeimportjob.cpp qgpgmekeygenerationjob.cpp qgpgmekeylistjob.cpp \      qgpgmelistallkeysjob.cpp qgpgmenewcryptoconfig.cpp \      qgpgmerefreshkeysjob.cpp \ -    qgpgmesecretkeyexportjob.cpp qgpgmesignencryptjob.cpp \ +    qgpgmesignencryptjob.cpp \      qgpgmesignjob.cpp qgpgmesignkeyjob.cpp qgpgmeverifydetachedjob.cpp \      qgpgmeverifyopaquejob.cpp qgpgmewkdlookupjob.cpp threadedjobmixin.cpp \      qgpgmekeyformailboxjob.cpp qgpgme_debug.cpp \ @@ -150,7 +150,6 @@ private_qgpgme_headers = \      qgpgmekeylistjob.h \      qgpgmelistallkeysjob.h \      qgpgmerefreshkeysjob.h \ -    qgpgmesecretkeyexportjob.h \      qgpgmesignencryptjob.h \      qgpgmesignjob.h \      qgpgmesignkeyjob.h \ @@ -200,7 +199,6 @@ qgpgme_moc_sources = \      qgpgmekeylistjob.moc \      qgpgmelistallkeysjob.moc \      qgpgmerefreshkeysjob.moc \ -    qgpgmesecretkeyexportjob.moc \      qgpgmesignencryptjob.moc \      qgpgmesignjob.moc \      qgpgmesignkeyjob.moc \ diff --git a/lang/qt/src/qgpgmesecretkeyexportjob.cpp b/lang/qt/src/qgpgmesecretkeyexportjob.cpp deleted file mode 100644 index d472bc46..00000000 --- a/lang/qt/src/qgpgmesecretkeyexportjob.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* -    qgpgmesecretexportjob.cpp - -    This file is part of qgpgme, the Qt API binding for gpgme -    Copyright (c) 2004 Klarävdalens Datakonsult AB -    Copyright (c) 2016 by Bundesamt für Sicherheit in der Informationstechnik -    Software engineering by Intevation GmbH - -    QGpgME is free software; you can redistribute it and/or -    modify it under the terms of the GNU General Public License as -    published by the Free Software Foundation; either version 2 of the -    License, or (at your option) any later version. - -    QGpgME is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -    General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program; if not, write to the Free Software -    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - -    In addition, as a special exception, the copyright holders give -    permission to link the code of this program with any edition of -    the Qt library by Trolltech AS, Norway (or with modified versions -    of Qt that use the same license as Qt), and distribute linked -    combinations including the two.  You must obey the GNU General -    Public License in all respects for all of the code used other than -    Qt.  If you modify this file, you may extend this exception to -    your version of the file, but you are not obligated to do so.  If -    you do not wish to do so, delete this exception statement from -    your version. -*/ - -#ifdef HAVE_CONFIG_H - #include "config.h" -#endif - -#include "qgpgmesecretkeyexportjob.h" - -#include <QDebug> -#include "qgpgme_debug.h" - -#include "context.h" -#include "data.h" - -#include <QStringList> - -#include <gpg-error.h> - -#include <string.h> -#include <assert.h> - -QGpgME::QGpgMESecretKeyExportJob::QGpgMESecretKeyExportJob(bool armour, const QString &charset) -    : ExportJob(nullptr), -      mProcess(nullptr), -      mError(0), -      mArmour(armour), -      mCharset(charset) -{ - -} - -QGpgME::QGpgMESecretKeyExportJob::~QGpgMESecretKeyExportJob() -{ - -} - -GpgME::Error QGpgME::QGpgMESecretKeyExportJob::start(const QStringList &patterns) -{ -    assert(mKeyData.isEmpty()); - -    if (patterns.size() != 1 || patterns.front().isEmpty()) { -        deleteLater(); -        return mError = GpgME::Error::fromCode(GPG_ERR_INV_VALUE, GPG_ERR_SOURCE_GPGSM); -    } - -    // create and start gpgsm process: -    mProcess = new QProcess(this); -    mProcess->setObjectName(QStringLiteral("gpgsm --export-secret-key-p12")); - -    // FIXME: obtain the path to gpgsm from gpgme, so we use the same instance. -    mProcess->setProgram("gpgsm"); -    QStringList arguments; -    arguments << QStringLiteral("--export-secret-key-p12"); -    if (mArmour) { -        arguments << QStringLiteral("--armor"); -    } -    if (!mCharset.isEmpty()) { -        arguments << QStringLiteral("--p12-charset") << mCharset; -    } -    arguments << QLatin1String(patterns.front().toUtf8()); - -    mProcess->setArguments(arguments); -    connect(mProcess, SIGNAL(finished(int,QProcess::ExitStatus)), -            SLOT(slotProcessExited(int,QProcess::ExitStatus))); -    connect(mProcess, &QProcess::readyReadStandardOutput, -            this, &QGpgMESecretKeyExportJob::slotStdout); -    connect(mProcess, &QProcess::readyReadStandardError, -            this, &QGpgMESecretKeyExportJob::slotStderr); - -    mProcess->start(); -    if (!mProcess->waitForStarted()) { -        mError = GpgME::Error::fromCode(GPG_ERR_ENOENT, GPG_ERR_SOURCE_GPGSM);   // what else? -        deleteLater(); -        return mError; -    } else { -        return GpgME::Error(); -    } -} - -void QGpgME::QGpgMESecretKeyExportJob::slotCancel() -{ -    if (mProcess) { -        mProcess->kill(); -    } -    mProcess = nullptr; -    mError = GpgME::Error::fromCode(GPG_ERR_CANCELED, GPG_ERR_SOURCE_GPGSM); -} - -void QGpgME::QGpgMESecretKeyExportJob::slotStdout() -{ -    QString line = QString::fromLocal8Bit(mProcess->readLine()); -    if (!line.isEmpty()) { -        return; -    } -    const unsigned int oldlen = mKeyData.size(); -    mKeyData.resize(oldlen + line.length()); -    memcpy(mKeyData.data() + oldlen, line.toLatin1(), line.length()); -} - -void QGpgME::QGpgMESecretKeyExportJob::slotStderr() -{ -    // implement? or not? -} - -void QGpgME::QGpgMESecretKeyExportJob::slotProcessExited(int exitCode, QProcess::ExitStatus exitStatus) -{ -    Q_EMIT done(); -    if (!mError && -            (exitStatus != QProcess::NormalExit || exitCode != 0)) { -        mError = GpgME::Error::fromCode(GPG_ERR_GENERAL, GPG_ERR_SOURCE_GPGSM); -    } -    Q_EMIT result(mError, mKeyData); -    deleteLater(); -} -#include "qgpgmesecretkeyexportjob.moc" diff --git a/lang/qt/src/qgpgmesecretkeyexportjob.h b/lang/qt/src/qgpgmesecretkeyexportjob.h deleted file mode 100644 index 78e4d77a..00000000 --- a/lang/qt/src/qgpgmesecretkeyexportjob.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -    qgpgmesecretkeyexportjob.h - -    This file is part of qgpgme, the Qt API binding for gpgme -    Copyright (c) 2004 Klarälvdalens Datakonsult AB -    Copyright (c) 2016 by Bundesamt für Sicherheit in der Informationstechnik -    Software engineering by Intevation GmbH - -    QGpgME is free software; you can redistribute it and/or -    modify it under the terms of the GNU General Public License as -    published by the Free Software Foundation; either version 2 of the -    License, or (at your option) any later version. - -    QGpgME is distributed in the hope that it will be useful, -    but WITHOUT ANY WARRANTY; without even the implied warranty of -    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -    General Public License for more details. - -    You should have received a copy of the GNU General Public License -    along with this program; if not, write to the Free Software -    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - -    In addition, as a special exception, the copyright holders give -    permission to link the code of this program with any edition of -    the Qt library by Trolltech AS, Norway (or with modified versions -    of Qt that use the same license as Qt), and distribute linked -    combinations including the two.  You must obey the GNU General -    Public License in all respects for all of the code used other than -    Qt.  If you modify this file, you may extend this exception to -    your version of the file, but you are not obligated to do so.  If -    you do not wish to do so, delete this exception statement from -    your version. -*/ - -#ifndef __QGPGME_QGPGMESECRETKEYEXPORTJOB_H__ -#define __QGPGME_QGPGMESECRETKEYEXPORTJOB_H__ - -#include "exportjob.h" -#ifdef BUILDING_QGPGME -# include "context.h" -#else -#include "gpgme++/context.h" -#endif -#include <QProcess> - -namespace GpgME -{ -class Data; -} - -namespace QGpgME -{ - -class QGpgMESecretKeyExportJob : public ExportJob -{ -    Q_OBJECT -public: -    QGpgMESecretKeyExportJob(bool armour, const QString &charset); -    ~QGpgMESecretKeyExportJob(); - -    /* from ExportJob */ -    GpgME::Error start(const QStringList &patterns) Q_DECL_OVERRIDE; - -private Q_SLOTS: -    /* from Job */ -    void slotCancel() Q_DECL_OVERRIDE; - -    void slotStdout(); -    void slotStderr(); -    void slotProcessExited(int exitCode, QProcess::ExitStatus exitStatus); - -private: -    QProcess *mProcess; -    QByteArray mKeyData; -    GpgME::Error mError; -    bool mArmour; -    QString mCharset; -}; - -} - -#endif // __QGPGME_QGPGMESECRETKEYEXPORTJOB_H__ | 
