• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

kleopatra

  • sources
  • kde-4.14
  • kdepim
  • kleopatra
  • crypto
decryptverifytask.h
Go to the documentation of this file.
1 /* -*- mode: c++; c-basic-offset:4 -*-
2  decryptverifytask.h
3 
4  This file is part of Kleopatra, the KDE keymanager
5  Copyright (c) 2008 Klarälvdalens Datakonsult AB
6 
7  Kleopatra is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 2 of the License, or
10  (at your option) any later version.
11 
12  Kleopatra is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 
21  In addition, as a special exception, the copyright holders give
22  permission to link the code of this program with any edition of
23  the Qt library by Trolltech AS, Norway (or with modified versions
24  of Qt that use the same license as Qt), and distribute linked
25  combinations including the two. You must obey the GNU General
26  Public License in all respects for all of the code used other than
27  Qt. If you modify this file, you may extend this exception to
28  your version of the file, but you are not obligated to do so. If
29  you do not wish to do so, delete this exception statement from
30  your version.
31 */
32 
33 #ifndef __KLEOPATRA_CRYPTO_DECRYPTVERIFYTASK_H__
34 #define __KLEOPATRA_CRYPTO_DECRYPTVERIFYTASK_H__
35 
36 #include "task.h"
37 
38 #include <utils/types.h>
39 
40 #include <gpgme++/verificationresult.h>
41 
42 #ifndef Q_MOC_RUN
43 #include <boost/shared_ptr.hpp>
44 #endif
45 
46 
47 namespace KMime {
48 namespace Types {
49  class Mailbox;
50 }
51 }
52 namespace GpgME {
53  class DecryptionResult;
54  class VerificationResult;
55  class Key;
56  class Signature;
57 }
58 
59 namespace Kleo {
60  class Input;
61  class Output;
62  class AuditLog;
63 }
64 
65 namespace Kleo {
66 namespace Crypto {
67 
68  class DecryptVerifyResult;
69 
70  class AbstractDecryptVerifyTask : public Task {
71  Q_OBJECT
72  public:
73  explicit AbstractDecryptVerifyTask( QObject* parent = 0 );
74  virtual ~AbstractDecryptVerifyTask();
75  virtual void autodetectProtocolFromInput() = 0;
76 
77  KMime::Types::Mailbox informativeSender() const;
78  void setInformativeSender( const KMime::Types::Mailbox & senders );
79 
80  Q_SIGNALS:
81  void decryptVerifyResult( const boost::shared_ptr<const Kleo::Crypto::DecryptVerifyResult> & );
82 
83  protected:
84  boost::shared_ptr<DecryptVerifyResult> fromDecryptResult( const GpgME::DecryptionResult & dr, const QByteArray & plaintext, const AuditLog & auditLog );
85  boost::shared_ptr<DecryptVerifyResult> fromDecryptResult( const GpgME::Error & err, const QString& details, const AuditLog & auditLog );
86  boost::shared_ptr<DecryptVerifyResult> fromDecryptVerifyResult( const GpgME::DecryptionResult & dr, const GpgME::VerificationResult & vr, const QByteArray & plaintext, const AuditLog & auditLog );
87  boost::shared_ptr<DecryptVerifyResult> fromDecryptVerifyResult( const GpgME::Error & err, const QString & what, const AuditLog & auditLog );
88  boost::shared_ptr<DecryptVerifyResult> fromVerifyOpaqueResult( const GpgME::VerificationResult & vr, const QByteArray & plaintext, const AuditLog & auditLog );
89  boost::shared_ptr<DecryptVerifyResult> fromVerifyOpaqueResult( const GpgME::Error & err, const QString & details, const AuditLog & auditLog );
90  boost::shared_ptr<DecryptVerifyResult> fromVerifyDetachedResult( const GpgME::VerificationResult & vr, const AuditLog & auditLog );
91  boost::shared_ptr<DecryptVerifyResult> fromVerifyDetachedResult( const GpgME::Error & err, const QString & details, const AuditLog & auditLog );
92 
93  virtual QString inputLabel() const = 0;
94  virtual QString outputLabel() const = 0;
95 
96  private:
97  class Private;
98  kdtools::pimpl_ptr<Private> d;
99  };
100 
101  class DecryptTask : public AbstractDecryptVerifyTask {
102  Q_OBJECT
103  public:
104  explicit DecryptTask( QObject* parent = 0 );
105  ~DecryptTask();
106 
107  void setInput( const boost::shared_ptr<Input> & input );
108  void setOutput( const boost::shared_ptr<Output> & output );
109 
110  void setProtocol( GpgME::Protocol prot );
111  void autodetectProtocolFromInput();
112 
113  /* reimp */ QString label() const;
114 
115  /* reimp */ GpgME::Protocol protocol() const;
116 
117  public Q_SLOTS:
118  /* reimp */ void cancel();
119 
120  private:
121  /* reimp */ void doStart();
122  /* reimp */ QString inputLabel() const;
123  /* reimp */ QString outputLabel() const;
124  /* reimp */ unsigned long long inputSize() const;
125 
126  private:
127  class Private;
128  kdtools::pimpl_ptr<Private> d;
129  Q_PRIVATE_SLOT( d, void slotResult( GpgME::DecryptionResult, QByteArray ) )
130  };
131 
132  class VerifyDetachedTask : public AbstractDecryptVerifyTask {
133  Q_OBJECT
134  public:
135  explicit VerifyDetachedTask( QObject* parent = 0 );
136  ~VerifyDetachedTask();
137 
138  void setInput( const boost::shared_ptr<Input> & input );
139  void setSignedData( const boost::shared_ptr<Input> & signedData );
140 
141  void setProtocol( GpgME::Protocol prot );
142  void autodetectProtocolFromInput();
143 
144  /* reimp */ QString label() const;
145 
146  /* reimp */ GpgME::Protocol protocol() const;
147 
148  public Q_SLOTS:
149  /* reimp */ void cancel();
150 
151  private:
152  /* reimp */ void doStart();
153  /* reimp */ QString inputLabel() const;
154  /* reimp */ QString outputLabel() const;
155  /* reimp */ unsigned long long inputSize() const;
156 
157  private:
158  class Private;
159  kdtools::pimpl_ptr<Private> d;
160  Q_PRIVATE_SLOT( d, void slotResult( GpgME::VerificationResult ) )
161  };
162 
163  class VerifyOpaqueTask : public AbstractDecryptVerifyTask {
164  Q_OBJECT
165  public:
166  explicit VerifyOpaqueTask( QObject* parent = 0 );
167  ~VerifyOpaqueTask();
168 
169  void setInput( const boost::shared_ptr<Input> & input );
170  void setOutput( const boost::shared_ptr<Output> & output );
171 
172  void setProtocol( GpgME::Protocol prot );
173  void autodetectProtocolFromInput();
174 
175  /* reimp */ QString label() const;
176 
177  /* reimp */ GpgME::Protocol protocol() const;
178 
179  public Q_SLOTS:
180  /* reimp */ void cancel();
181 
182  private:
183  /* reimp */ void doStart();
184  /* reimp */ QString inputLabel() const;
185  /* reimp */ QString outputLabel() const;
186  /* reimp */ unsigned long long inputSize() const;
187 
188  private:
189  class Private;
190  kdtools::pimpl_ptr<Private> d;
191  Q_PRIVATE_SLOT( d, void slotResult( GpgME::VerificationResult, QByteArray ) )
192  };
193 
194  class DecryptVerifyTask : public AbstractDecryptVerifyTask {
195  Q_OBJECT
196  public:
197  explicit DecryptVerifyTask( QObject* parent = 0 );
198  ~DecryptVerifyTask();
199 
200  void setInput( const boost::shared_ptr<Input> & input );
201  void setSignedData( const boost::shared_ptr<Input> & signedData );
202  void setOutput( const boost::shared_ptr<Output> & output );
203 
204  void setProtocol( GpgME::Protocol prot );
205  void autodetectProtocolFromInput();
206 
207  /* reimp */ QString label() const;
208 
209  /* reimp */ GpgME::Protocol protocol() const;
210 
211  public Q_SLOTS:
212  /* reimp */ void cancel();
213 
214  private:
215  /* reimp */ void doStart();
216  /* reimp */ QString inputLabel() const;
217  /* reimp */ QString outputLabel() const;
218  /* reimp */ unsigned long long inputSize() const;
219 
220  private:
221  class Private;
222  kdtools::pimpl_ptr<Private> d;
223  Q_PRIVATE_SLOT( d, void slotResult( GpgME::DecryptionResult, GpgME::VerificationResult, QByteArray ) )
224  };
225 
226  class DecryptVerifyResult : public Task::Result {
227  friend class ::Kleo::Crypto::AbstractDecryptVerifyTask;
228  public:
229  class SenderInfo;
230 
231  /* reimp */ QString overview() const;
232  /* reimp */ QString details() const;
233  /* reimp */ bool hasError() const;
234  /* reimp */ int errorCode() const;
235  /* reimp */ QString errorString() const;
236  /* reimp */ VisualCode code() const;
237  /* reimp */ AuditLog auditLog() const;
238 
239  GpgME::VerificationResult verificationResult() const;
240 
241  static const GpgME::Key & keyForSignature( const GpgME::Signature & sig, const std::vector<GpgME::Key> & keys );
242 
243 private:
244  static QString keyToString( const GpgME::Key & key );
245 
246  private:
247  DecryptVerifyResult();
248  DecryptVerifyResult( const DecryptVerifyResult& );
249  DecryptVerifyResult& operator=( const DecryptVerifyResult& other );
250 
251  DecryptVerifyResult( DecryptVerifyOperation op,
252  const GpgME::VerificationResult& vr,
253  const GpgME::DecryptionResult& dr,
254  const QByteArray& stuff,
255  int errCode,
256  const QString & errString,
257  const QString & inputLabel,
258  const QString & outputLabel,
259  const AuditLog & auditLog,
260  const KMime::Types::Mailbox & informativeSender );
261 
262  private:
263  class Private;
264  kdtools::pimpl_ptr<Private> d;
265  };
266 }
267 }
268 
269 #endif //__KLEOPATRA_CRYPTO_DECRYPTVERIFYTASK_H__
Kleo::Crypto::DecryptVerifyTask::setOutput
void setOutput(const boost::shared_ptr< Output > &output)
Definition: decryptverifytask.cpp:845
Kleo::Crypto::DecryptTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:1010
Kleo::Crypto::DecryptVerifyTask::cancel
void cancel()
Definition: decryptverifytask.cpp:894
Kleo::Crypto::DecryptVerifyTask::DecryptVerifyTask
DecryptVerifyTask(QObject *parent=0)
Definition: decryptverifytask.cpp:831
types.h
Kleo::Crypto::DecryptVerifyTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:889
kdtools::pimpl_ptr< Private >
Kleo::Crypto::AbstractDecryptVerifyTask::informativeSender
KMime::Types::Mailbox informativeSender() const
Definition: decryptverifytask.cpp:757
Kleo::Crypto::AbstractDecryptVerifyTask::~AbstractDecryptVerifyTask
virtual ~AbstractDecryptVerifyTask()
Definition: decryptverifytask.cpp:754
QByteArray
Kleo::Crypto::DecryptVerifyTask::setSignedData
void setSignedData(const boost::shared_ptr< Input > &signedData)
Kleo::Crypto::Task::Result::VisualCode
VisualCode
Definition: task.h:129
Kleo::Crypto::VerifyDetachedTask::~VerifyDetachedTask
~VerifyDetachedTask()
Definition: decryptverifytask.cpp:1272
Kleo::AuditLog
Definition: auditlog.h:48
Kleo::Crypto::DecryptVerifyTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:859
Kleo::Crypto::DecryptVerifyResult::errorCode
int errorCode() const
Definition: decryptverifytask.cpp:710
Kleo::Crypto::DecryptVerifyResult::details
QString details() const
Definition: decryptverifytask.cpp:694
Kleo::Crypto::Task
Definition: task.h:57
Kleo::Crypto::DecryptTask::DecryptTask
DecryptTask(QObject *parent=0)
Definition: decryptverifytask.cpp:982
Kleo::Crypto::VerifyOpaqueTask::~VerifyOpaqueTask
~VerifyOpaqueTask()
Definition: decryptverifytask.cpp:1138
Kleo::Crypto::VerifyDetachedTask
Definition: decryptverifytask.h:132
Kleo::Crypto::DecryptVerifyTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:839
Kleo::Crypto::AbstractDecryptVerifyTask::fromVerifyOpaqueResult
boost::shared_ptr< DecryptVerifyResult > fromVerifyOpaqueResult(const GpgME::VerificationResult &vr, const QByteArray &plaintext, const AuditLog &auditLog)
Kleo::Crypto::VerifyOpaqueTask::cancel
void cancel()
Definition: decryptverifytask.cpp:1197
Kleo::Crypto::DecryptTask::cancel
void cancel()
Definition: decryptverifytask.cpp:1046
Kleo::Crypto::DecryptVerifyTask::~DecryptVerifyTask
~DecryptVerifyTask()
Definition: decryptverifytask.cpp:835
Kleo::Crypto::VerifyDetachedTask::label
QString label() const
Definition: decryptverifytask.cpp:1311
Kleo::Crypto::VerifyOpaqueTask::VerifyOpaqueTask
VerifyOpaqueTask(QObject *parent=0)
Definition: decryptverifytask.cpp:1134
boost::shared_ptr
Definition: encryptemailcontroller.h:51
Kleo::Crypto::VerifyOpaqueTask
Definition: decryptverifytask.h:163
Kleo::Crypto::DecryptVerifyResult::keyForSignature
static const GpgME::Key & keyForSignature(const GpgME::Signature &sig, const std::vector< GpgME::Key > &keys)
Definition: decryptverifytask.cpp:735
d
#define d
Definition: adduseridcommand.cpp:89
Kleo::Crypto::DecryptVerifyTask
Definition: decryptverifytask.h:194
Kleo::Crypto::DecryptVerifyResult::verificationResult
GpgME::VerificationResult verificationResult() const
Definition: decryptverifytask.cpp:730
QObject
Kleo::Crypto::AbstractDecryptVerifyTask::autodetectProtocolFromInput
virtual void autodetectProtocolFromInput()=0
Kleo::Crypto::DecryptTask::setOutput
void setOutput(const boost::shared_ptr< Output > &output)
Definition: decryptverifytask.cpp:996
Kleo::Crypto::AbstractDecryptVerifyTask::inputLabel
virtual QString inputLabel() const =0
Kleo::Crypto::AbstractDecryptVerifyTask::fromVerifyDetachedResult
boost::shared_ptr< DecryptVerifyResult > fromVerifyDetachedResult(const GpgME::VerificationResult &vr, const AuditLog &auditLog)
Kleo::Crypto::VerifyOpaqueTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:1142
Kleo::DecryptVerifyOperation
DecryptVerifyOperation
Definition: types.h:45
QString
Kleo::Crypto::DecryptTask::~DecryptTask
~DecryptTask()
Definition: decryptverifytask.cpp:986
Kleo::Crypto::DecryptVerifyTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:851
Kleo::Crypto::AbstractDecryptVerifyTask::outputLabel
virtual QString outputLabel() const =0
Kleo::Crypto::DecryptVerifyResult::code
VisualCode code() const
Definition: decryptverifytask.cpp:724
Kleo::Crypto::DecryptVerifyResult::overview
QString overview() const
Definition: decryptverifytask.cpp:682
Kleo::Crypto::VerifyDetachedTask::setSignedData
void setSignedData(const boost::shared_ptr< Input > &signedData)
Definition: decryptverifytask.cpp:1282
Kleo::Crypto::DecryptVerifyResult::errorString
QString errorString() const
Definition: decryptverifytask.cpp:715
Kleo::Crypto::DecryptVerifyResult::hasError
bool hasError() const
Definition: decryptverifytask.cpp:705
Kleo::Crypto::DecryptTask
Definition: decryptverifytask.h:101
Kleo::Crypto::VerifyDetachedTask::cancel
void cancel()
Definition: decryptverifytask.cpp:1332
Kleo::Crypto::VerifyOpaqueTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:1192
Kleo::Crypto::AbstractDecryptVerifyTask::decryptVerifyResult
void decryptVerifyResult(const boost::shared_ptr< const Kleo::Crypto::DecryptVerifyResult > &)
Kleo::Crypto::AbstractDecryptVerifyTask::AbstractDecryptVerifyTask
AbstractDecryptVerifyTask(QObject *parent=0)
Definition: decryptverifytask.cpp:752
Kleo::Crypto::VerifyOpaqueTask::setOutput
void setOutput(const boost::shared_ptr< Output > &output)
Definition: decryptverifytask.cpp:1148
Kleo::Crypto::Task::Result
Definition: task.h:119
task.h
Kleo::Crypto::VerifyDetachedTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:1276
Kleo::Crypto::AbstractDecryptVerifyTask::fromDecryptResult
boost::shared_ptr< DecryptVerifyResult > fromDecryptResult(const GpgME::DecryptionResult &dr, const QByteArray &plaintext, const AuditLog &auditLog)
Kleo::Crypto::VerifyDetachedTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:1326
Kleo::Crypto::DecryptVerifyResult::auditLog
AuditLog auditLog() const
Definition: decryptverifytask.cpp:720
Kleo::Crypto::DecryptVerifyTask::label
QString label() const
Definition: decryptverifytask.cpp:869
Kleo::Crypto::DecryptTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:990
Kleo::Crypto::AbstractDecryptVerifyTask::fromDecryptVerifyResult
boost::shared_ptr< DecryptVerifyResult > fromDecryptVerifyResult(const GpgME::DecryptionResult &dr, const GpgME::VerificationResult &vr, const QByteArray &plaintext, const AuditLog &auditLog)
Kleo::Crypto::AbstractDecryptVerifyTask::setInformativeSender
void setInformativeSender(const KMime::Types::Mailbox &senders)
Definition: decryptverifytask.cpp:762
Kleo::Crypto::VerifyDetachedTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:1288
QObject::parent
QObject * parent() const
Kleo::Crypto::VerifyOpaqueTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:1162
Kleo::Crypto::DecryptTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:1040
Kleo::Crypto::VerifyDetachedTask::VerifyDetachedTask
VerifyDetachedTask(QObject *parent=0)
Definition: decryptverifytask.cpp:1268
Kleo::Crypto::VerifyOpaqueTask::label
QString label() const
Definition: decryptverifytask.cpp:1172
Kleo::Crypto::DecryptTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:1002
Kleo::Crypto::DecryptTask::label
QString label() const
Definition: decryptverifytask.cpp:1020
Kleo::Crypto::DecryptVerifyResult
Definition: decryptverifytask.h:226
Kleo::Crypto::VerifyOpaqueTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:1154
Kleo::Crypto::AbstractDecryptVerifyTask
Definition: decryptverifytask.h:70
Kleo::Crypto::VerifyDetachedTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:1296
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:33:10 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kleopatra

Skip menu "kleopatra"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal