aboutsummaryrefslogtreecommitdiffstats
path: root/lang/qt/src/qgpgmebackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/qt/src/qgpgmebackend.cpp')
-rw-r--r--lang/qt/src/qgpgmebackend.cpp222
1 files changed, 0 insertions, 222 deletions
diff --git a/lang/qt/src/qgpgmebackend.cpp b/lang/qt/src/qgpgmebackend.cpp
deleted file mode 100644
index 9cd34006..00000000
--- a/lang/qt/src/qgpgmebackend.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- qgpgmebackend.cpp
-
- This file is part of qgpgme, the Qt API binding for gpgme
- Copyright (c) 2004,2005 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.
-*/
-
-#ifdef HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include "qgpgmebackend.h"
-
-#include "qgpgmegpgcardjob.h"
-
-#include <gpgme++/error.h>
-#include <gpgme++/engineinfo.h>
-
-#include "protocol_p.h"
-
-#include <QFile>
-#include <QString>
-
-const char QGpgME::QGpgMEBackend::OpenPGP[] = "OpenPGP";
-const char QGpgME::QGpgMEBackend::SMIME[] = "SMIME";
-
-
-QGpgME::QGpgMEBackend::QGpgMEBackend()
- : mCryptoConfig(nullptr),
- mOpenPGPProtocol(nullptr),
- mSMIMEProtocol(nullptr)
-{
- GpgME::initializeLibrary();
-}
-
-QGpgME::QGpgMEBackend::~QGpgMEBackend()
-{
- delete mCryptoConfig; mCryptoConfig = nullptr;
- delete mOpenPGPProtocol; mOpenPGPProtocol = nullptr;
- delete mSMIMEProtocol; mSMIMEProtocol = nullptr;
-}
-
-QString QGpgME::QGpgMEBackend::name() const
-{
- return QStringLiteral("gpgme");
-}
-
-QString QGpgME::QGpgMEBackend::displayName() const
-{
- return QStringLiteral("GpgME");
-}
-
-QGpgME::CryptoConfig *QGpgME::QGpgMEBackend::config() const
-{
- if (!mCryptoConfig) {
- if (GpgME::hasFeature(GpgME::GpgConfEngineFeature, 0)) {
- mCryptoConfig = new QGpgMENewCryptoConfig;
- }
- }
- return mCryptoConfig;
-}
-
-QGpgME::GpgCardJob *QGpgME::QGpgMEBackend::gpgCardJob() const
-{
- return new QGpgME::QGpgMEGpgCardJob();
-}
-
-static bool check(GpgME::Protocol proto, QString *reason)
-{
- if (!GpgME::checkEngine(proto)) {
- return true;
- }
- if (!reason) {
- return false;
- }
- // error, check why:
-#if 0
-Port away from localised string or delete.
- const GpgME::EngineInfo ei = GpgME::engineInfo(proto);
- if (ei.isNull()) {
- *reason = i18n("GPGME was compiled without support for %1.", proto == GpgME::CMS ? QLatin1String("S/MIME") : QLatin1String("OpenPGP"));
- } else if (ei.fileName() && !ei.version()) {
- *reason = i18n("Engine %1 is not installed properly.", QFile::decodeName(ei.fileName()));
- } else if (ei.fileName() && ei.version() && ei.requiredVersion())
- *reason = i18n("Engine %1 version %2 installed, "
- "but at least version %3 is required.",
- QFile::decodeName(ei.fileName()), QLatin1String(ei.version()), QLatin1String(ei.requiredVersion()));
- else {
- *reason = i18n("Unknown problem with engine for protocol %1.", proto == GpgME::CMS ? QLatin1String("S/MIME") : QLatin1String("OpenPGP"));
- }
-#endif
- return false;
-}
-
-bool QGpgME::QGpgMEBackend::checkForOpenPGP(QString *reason) const
-{
- return check(GpgME::OpenPGP, reason);
-}
-
-bool QGpgME::QGpgMEBackend::checkForSMIME(QString *reason) const
-{
- return check(GpgME::CMS, reason);
-}
-
-bool QGpgME::QGpgMEBackend::checkForProtocol(const char *name, QString *reason) const
-{
- if (qstricmp(name, OpenPGP) == 0) {
- return check(GpgME::OpenPGP, reason);
- }
- if (qstricmp(name, SMIME) == 0) {
- return check(GpgME::CMS, reason);
- }
- if (reason) {
- *reason = QStringLiteral("Unsupported protocol \"%1\"").arg(QLatin1String(name));
- }
- return false;
-}
-
-QGpgME::Protocol *QGpgME::QGpgMEBackend::openpgp() const
-{
- if (!mOpenPGPProtocol)
- if (checkForOpenPGP()) {
- mOpenPGPProtocol = new ::Protocol(GpgME::OpenPGP);
- }
- return mOpenPGPProtocol;
-}
-
-QGpgME::Protocol *QGpgME::QGpgMEBackend::smime() const
-{
- if (!mSMIMEProtocol)
- if (checkForSMIME()) {
- mSMIMEProtocol = new ::Protocol(GpgME::CMS);
- }
- return mSMIMEProtocol;
-}
-
-QGpgME::Protocol *QGpgME::QGpgMEBackend::protocol(const char *name) const
-{
- if (qstricmp(name, OpenPGP) == 0) {
- return openpgp();
- }
- if (qstricmp(name, SMIME) == 0) {
- return smime();
- }
- return nullptr;
-}
-
-bool QGpgME::QGpgMEBackend::supportsProtocol(const char *name) const
-{
- return qstricmp(name, OpenPGP) == 0 || qstricmp(name, SMIME) == 0;
-}
-
-const char *QGpgME::QGpgMEBackend::enumerateProtocols(int i) const
-{
- switch (i) {
- case 0: return OpenPGP;
- case 1: return SMIME;
- default: return nullptr;
- }
-}
-
-static QGpgME::QGpgMEBackend *gpgmeBackend;
-
-QGpgME::CryptoConfig *QGpgME::cryptoConfig()
-{
- if (!gpgmeBackend) {
- gpgmeBackend = new QGpgME::QGpgMEBackend();
- }
- return gpgmeBackend->config();
-
-}
-
-QGpgME::Protocol *QGpgME::openpgp()
-{
- if (!gpgmeBackend) {
- gpgmeBackend = new QGpgME::QGpgMEBackend();
- }
- return gpgmeBackend->openpgp();
-}
-
-QGpgME::Protocol *QGpgME::smime()
-{
- if (!gpgmeBackend) {
- gpgmeBackend = new QGpgME::QGpgMEBackend();
- }
- return gpgmeBackend->smime();
-}
-
-QGpgME::GpgCardJob *QGpgME::gpgCardJob ()
-{
- if (!gpgmeBackend) {
- gpgmeBackend = new QGpgME::QGpgMEBackend();
- }
- return gpgmeBackend->gpgCardJob();
-}