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

kleopatra

  • sources
  • kde-4.12
  • 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 #include <boost/shared_ptr.hpp>
43 
44 
45 namespace KMime {
46 namespace Types {
47  class Mailbox;
48 }
49 }
50 namespace GpgME {
51  class DecryptionResult;
52  class VerificationResult;
53  class Key;
54  class Signature;
55 }
56 
57 namespace Kleo {
58  class Input;
59  class Output;
60  class AuditLog;
61 }
62 
63 namespace Kleo {
64 namespace Crypto {
65 
66  class DecryptVerifyResult;
67 
68  class AbstractDecryptVerifyTask : public Task {
69  Q_OBJECT
70  public:
71  explicit AbstractDecryptVerifyTask( QObject* parent = 0 );
72  virtual ~AbstractDecryptVerifyTask();
73  virtual void autodetectProtocolFromInput() = 0;
74 
75  KMime::Types::Mailbox informativeSender() const;
76  void setInformativeSender( const KMime::Types::Mailbox & senders );
77 
78  Q_SIGNALS:
79  void decryptVerifyResult( const boost::shared_ptr<const Kleo::Crypto::DecryptVerifyResult> & );
80 
81  protected:
82  boost::shared_ptr<DecryptVerifyResult> fromDecryptResult( const GpgME::DecryptionResult & dr, const QByteArray & plaintext, const AuditLog & auditLog );
83  boost::shared_ptr<DecryptVerifyResult> fromDecryptResult( const GpgME::Error & err, const QString& details, const AuditLog & auditLog );
84  boost::shared_ptr<DecryptVerifyResult> fromDecryptVerifyResult( const GpgME::DecryptionResult & dr, const GpgME::VerificationResult & vr, const QByteArray & plaintext, const AuditLog & auditLog );
85  boost::shared_ptr<DecryptVerifyResult> fromDecryptVerifyResult( const GpgME::Error & err, const QString & what, const AuditLog & auditLog );
86  boost::shared_ptr<DecryptVerifyResult> fromVerifyOpaqueResult( const GpgME::VerificationResult & vr, const QByteArray & plaintext, const AuditLog & auditLog );
87  boost::shared_ptr<DecryptVerifyResult> fromVerifyOpaqueResult( const GpgME::Error & err, const QString & details, const AuditLog & auditLog );
88  boost::shared_ptr<DecryptVerifyResult> fromVerifyDetachedResult( const GpgME::VerificationResult & vr, const AuditLog & auditLog );
89  boost::shared_ptr<DecryptVerifyResult> fromVerifyDetachedResult( const GpgME::Error & err, const QString & details, const AuditLog & auditLog );
90 
91  virtual QString inputLabel() const = 0;
92  virtual QString outputLabel() const = 0;
93 
94  private:
95  class Private;
96  kdtools::pimpl_ptr<Private> d;
97  };
98 
99  class DecryptTask : public AbstractDecryptVerifyTask {
100  Q_OBJECT
101  public:
102  explicit DecryptTask( QObject* parent = 0 );
103  ~DecryptTask();
104 
105  void setInput( const boost::shared_ptr<Input> & input );
106  void setOutput( const boost::shared_ptr<Output> & output );
107 
108  void setProtocol( GpgME::Protocol prot );
109  void autodetectProtocolFromInput();
110 
111  /* reimp */ QString label() const;
112 
113  /* reimp */ GpgME::Protocol protocol() const;
114 
115  public Q_SLOTS:
116  /* reimp */ void cancel();
117 
118  private:
119  /* reimp */ void doStart();
120  /* reimp */ QString inputLabel() const;
121  /* reimp */ QString outputLabel() const;
122  /* reimp */ unsigned long long inputSize() const;
123 
124  private:
125  class Private;
126  kdtools::pimpl_ptr<Private> d;
127  Q_PRIVATE_SLOT( d, void slotResult( GpgME::DecryptionResult, QByteArray ) )
128  };
129 
130  class VerifyDetachedTask : public AbstractDecryptVerifyTask {
131  Q_OBJECT
132  public:
133  explicit VerifyDetachedTask( QObject* parent = 0 );
134  ~VerifyDetachedTask();
135 
136  void setInput( const boost::shared_ptr<Input> & input );
137  void setSignedData( const boost::shared_ptr<Input> & signedData );
138 
139  void setProtocol( GpgME::Protocol prot );
140  void autodetectProtocolFromInput();
141 
142  /* reimp */ QString label() const;
143 
144  /* reimp */ GpgME::Protocol protocol() const;
145 
146  public Q_SLOTS:
147  /* reimp */ void cancel();
148 
149  private:
150  /* reimp */ void doStart();
151  /* reimp */ QString inputLabel() const;
152  /* reimp */ QString outputLabel() const;
153  /* reimp */ unsigned long long inputSize() const;
154 
155  private:
156  class Private;
157  kdtools::pimpl_ptr<Private> d;
158  Q_PRIVATE_SLOT( d, void slotResult( GpgME::VerificationResult ) )
159  };
160 
161  class VerifyOpaqueTask : public AbstractDecryptVerifyTask {
162  Q_OBJECT
163  public:
164  explicit VerifyOpaqueTask( QObject* parent = 0 );
165  ~VerifyOpaqueTask();
166 
167  void setInput( const boost::shared_ptr<Input> & input );
168  void setOutput( const boost::shared_ptr<Output> & output );
169 
170  void setProtocol( GpgME::Protocol prot );
171  void autodetectProtocolFromInput();
172 
173  /* reimp */ QString label() const;
174 
175  /* reimp */ GpgME::Protocol protocol() const;
176 
177  public Q_SLOTS:
178  /* reimp */ void cancel();
179 
180  private:
181  /* reimp */ void doStart();
182  /* reimp */ QString inputLabel() const;
183  /* reimp */ QString outputLabel() const;
184  /* reimp */ unsigned long long inputSize() const;
185 
186  private:
187  class Private;
188  kdtools::pimpl_ptr<Private> d;
189  Q_PRIVATE_SLOT( d, void slotResult( GpgME::VerificationResult, QByteArray ) )
190  };
191 
192  class DecryptVerifyTask : public AbstractDecryptVerifyTask {
193  Q_OBJECT
194  public:
195  explicit DecryptVerifyTask( QObject* parent = 0 );
196  ~DecryptVerifyTask();
197 
198  void setInput( const boost::shared_ptr<Input> & input );
199  void setSignedData( const boost::shared_ptr<Input> & signedData );
200  void setOutput( const boost::shared_ptr<Output> & output );
201 
202  void setProtocol( GpgME::Protocol prot );
203  void autodetectProtocolFromInput();
204 
205  /* reimp */ QString label() const;
206 
207  /* reimp */ GpgME::Protocol protocol() const;
208 
209  public Q_SLOTS:
210  /* reimp */ void cancel();
211 
212  private:
213  /* reimp */ void doStart();
214  /* reimp */ QString inputLabel() const;
215  /* reimp */ QString outputLabel() const;
216  /* reimp */ unsigned long long inputSize() const;
217 
218  private:
219  class Private;
220  kdtools::pimpl_ptr<Private> d;
221  Q_PRIVATE_SLOT( d, void slotResult( GpgME::DecryptionResult, GpgME::VerificationResult, QByteArray ) )
222  };
223 
224  class DecryptVerifyResult : public Task::Result {
225  friend class ::Kleo::Crypto::AbstractDecryptVerifyTask;
226  public:
227  class SenderInfo;
228 
229  /* reimp */ QString overview() const;
230  /* reimp */ QString details() const;
231  /* reimp */ bool hasError() const;
232  /* reimp */ int errorCode() const;
233  /* reimp */ QString errorString() const;
234  /* reimp */ VisualCode code() const;
235  /* reimp */ AuditLog auditLog() const;
236 
237  GpgME::VerificationResult verificationResult() const;
238 
239  static const GpgME::Key & keyForSignature( const GpgME::Signature & sig, const std::vector<GpgME::Key> & keys );
240 
241 private:
242  static QString keyToString( const GpgME::Key & key );
243 
244  private:
245  DecryptVerifyResult();
246  DecryptVerifyResult( const DecryptVerifyResult& );
247  DecryptVerifyResult& operator=( const DecryptVerifyResult& other );
248 
249  DecryptVerifyResult( DecryptVerifyOperation op,
250  const GpgME::VerificationResult& vr,
251  const GpgME::DecryptionResult& dr,
252  const QByteArray& stuff,
253  int errCode,
254  const QString & errString,
255  const QString & inputLabel,
256  const QString & outputLabel,
257  const AuditLog & auditLog,
258  const KMime::Types::Mailbox & informativeSender );
259 
260  private:
261  class Private;
262  kdtools::pimpl_ptr<Private> d;
263  };
264 }
265 }
266 
267 #endif //__KLEOPATRA_CRYPTO_DECRYPTVERIFYTASK_H__
Kleo::Crypto::DecryptVerifyTask::setOutput
void setOutput(const boost::shared_ptr< Output > &output)
Definition: decryptverifytask.cpp:843
Kleo::Crypto::DecryptTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:1008
Kleo::Crypto::DecryptVerifyTask::cancel
void cancel()
Definition: decryptverifytask.cpp:892
Kleo::Crypto::DecryptVerifyTask::DecryptVerifyTask
DecryptVerifyTask(QObject *parent=0)
Definition: decryptverifytask.cpp:829
types.h
Kleo::Crypto::DecryptVerifyTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:887
kdtools::pimpl_ptr< Private >
Kleo::Crypto::AbstractDecryptVerifyTask::informativeSender
KMime::Types::Mailbox informativeSender() const
Definition: decryptverifytask.cpp:755
Kleo::Crypto::AbstractDecryptVerifyTask::~AbstractDecryptVerifyTask
virtual ~AbstractDecryptVerifyTask()
Definition: decryptverifytask.cpp:752
Kleo::Crypto::DecryptVerifyTask::setSignedData
void setSignedData(const boost::shared_ptr< Input > &signedData)
Kleo::Crypto::Task::Result::VisualCode
VisualCode
Definition: task.h:127
Kleo::Crypto::VerifyDetachedTask::~VerifyDetachedTask
~VerifyDetachedTask()
Definition: decryptverifytask.cpp:1270
Kleo::AuditLog
Definition: auditlog.h:48
Kleo::Crypto::DecryptVerifyTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:857
Kleo::Crypto::DecryptVerifyResult::errorCode
int errorCode() const
Definition: decryptverifytask.cpp:708
Kleo::Crypto::DecryptVerifyResult::details
QString details() const
Definition: decryptverifytask.cpp:692
Kleo::Crypto::Task
Definition: task.h:55
Kleo::Crypto::DecryptTask::DecryptTask
DecryptTask(QObject *parent=0)
Definition: decryptverifytask.cpp:980
Kleo::Crypto::VerifyOpaqueTask::~VerifyOpaqueTask
~VerifyOpaqueTask()
Definition: decryptverifytask.cpp:1136
Kleo::Crypto::VerifyDetachedTask
Definition: decryptverifytask.h:130
Kleo::Crypto::DecryptVerifyTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:837
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:1195
Kleo::Crypto::DecryptTask::cancel
void cancel()
Definition: decryptverifytask.cpp:1044
Kleo::Crypto::DecryptVerifyTask::~DecryptVerifyTask
~DecryptVerifyTask()
Definition: decryptverifytask.cpp:833
Kleo::Crypto::VerifyDetachedTask::label
QString label() const
Definition: decryptverifytask.cpp:1309
Kleo::Crypto::VerifyOpaqueTask::VerifyOpaqueTask
VerifyOpaqueTask(QObject *parent=0)
Definition: decryptverifytask.cpp:1132
boost::shared_ptr
Definition: encryptemailcontroller.h:51
Kleo::Crypto::VerifyOpaqueTask
Definition: decryptverifytask.h:161
Kleo::Crypto::DecryptVerifyResult::keyForSignature
static const GpgME::Key & keyForSignature(const GpgME::Signature &sig, const std::vector< GpgME::Key > &keys)
Definition: decryptverifytask.cpp:733
d
#define d
Definition: adduseridcommand.cpp:90
Kleo::Crypto::DecryptVerifyTask
Definition: decryptverifytask.h:192
Kleo::Crypto::DecryptVerifyResult::verificationResult
GpgME::VerificationResult verificationResult() const
Definition: decryptverifytask.cpp:728
Kleo::Crypto::AbstractDecryptVerifyTask::autodetectProtocolFromInput
virtual void autodetectProtocolFromInput()=0
Kleo::Crypto::DecryptTask::setOutput
void setOutput(const boost::shared_ptr< Output > &output)
Definition: decryptverifytask.cpp:994
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:1140
Kleo::DecryptVerifyOperation
DecryptVerifyOperation
Definition: types.h:45
Kleo::Crypto::DecryptTask::~DecryptTask
~DecryptTask()
Definition: decryptverifytask.cpp:984
Kleo::Crypto::DecryptVerifyTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:849
Kleo::Crypto::AbstractDecryptVerifyTask::outputLabel
virtual QString outputLabel() const =0
Kleo::Crypto::DecryptVerifyResult::code
VisualCode code() const
Definition: decryptverifytask.cpp:722
Kleo::Crypto::DecryptVerifyResult::overview
QString overview() const
Definition: decryptverifytask.cpp:680
Kleo::Crypto::VerifyDetachedTask::setSignedData
void setSignedData(const boost::shared_ptr< Input > &signedData)
Definition: decryptverifytask.cpp:1280
Kleo::Crypto::DecryptVerifyResult::errorString
QString errorString() const
Definition: decryptverifytask.cpp:713
Kleo::Crypto::DecryptVerifyResult::hasError
bool hasError() const
Definition: decryptverifytask.cpp:703
Kleo::Crypto::DecryptTask
Definition: decryptverifytask.h:99
Kleo::Crypto::VerifyDetachedTask::cancel
void cancel()
Definition: decryptverifytask.cpp:1330
Kleo::Crypto::VerifyOpaqueTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:1190
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:750
Kleo::Crypto::VerifyOpaqueTask::setOutput
void setOutput(const boost::shared_ptr< Output > &output)
Definition: decryptverifytask.cpp:1146
Kleo::Crypto::Task::Result
Definition: task.h:117
task.h
Kleo::Crypto::VerifyDetachedTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:1274
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:1324
Kleo::Crypto::DecryptVerifyResult::auditLog
AuditLog auditLog() const
Definition: decryptverifytask.cpp:718
Kleo::Crypto::DecryptVerifyTask::label
QString label() const
Definition: decryptverifytask.cpp:867
Kleo::Crypto::DecryptTask::setInput
void setInput(const boost::shared_ptr< Input > &input)
Definition: decryptverifytask.cpp:988
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:760
Kleo::Crypto::VerifyDetachedTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:1286
Kleo::Crypto::VerifyOpaqueTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:1160
Kleo::Crypto::DecryptTask::protocol
GpgME::Protocol protocol() const
Definition: decryptverifytask.cpp:1038
Kleo::Crypto::VerifyDetachedTask::VerifyDetachedTask
VerifyDetachedTask(QObject *parent=0)
Definition: decryptverifytask.cpp:1266
Kleo::Crypto::VerifyOpaqueTask::label
QString label() const
Definition: decryptverifytask.cpp:1170
Kleo::Crypto::DecryptTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:1000
Kleo::Crypto::DecryptTask::label
QString label() const
Definition: decryptverifytask.cpp:1018
Kleo::Crypto::DecryptVerifyResult
Definition: decryptverifytask.h:224
Kleo::Crypto::VerifyOpaqueTask::setProtocol
void setProtocol(GpgME::Protocol prot)
Definition: decryptverifytask.cpp:1152
Kleo::Crypto::AbstractDecryptVerifyTask
Definition: decryptverifytask.h:68
Kleo::Crypto::VerifyDetachedTask::autodetectProtocolFromInput
void autodetectProtocolFromInput()
Definition: decryptverifytask.cpp:1294
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:56:41 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

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