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

kgpg

  • sources
  • kde-4.14
  • kdeutils
  • kgpg
  • transactions
kgpgtransaction.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008,2009,2012,2013 Rolf Eike Beer <kde@opensource.sf-tec.de>
3  */
4 
5 /***************************************************************************
6  * *
7  * This program 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  ***************************************************************************/
13 
14 #ifndef KGPGTRANSACTION_H
15 #define KGPGTRANSACTION_H
16 
17 #include <QObject>
18 #include <QString>
19 
20 class GPGProc;
21 class KGpgSignTransactionHelper;
22 class KGpgTransactionPrivate;
23 class KUrl;
24 class QByteArray;
25 class QProcess;
26 
44 class KGpgTransaction: public QObject {
45  Q_OBJECT
46 
47  friend class KGpgTransactionPrivate;
48  friend class KGpgSignTransactionHelper;
49 
50  Q_DISABLE_COPY(KGpgTransaction)
51 
52 public:
59  enum ts_transaction {
60  TS_OK = 0,
61  TS_BAD_PASSPHRASE = 1,
62  TS_MSG_SEQUENCE = 2,
63  TS_USER_ABORTED = 3,
64  TS_INVALID_EMAIL = 4,
65  TS_INPUT_PROCESS_ERROR = 5,
66  TS_COMMON_END = 100
67  };
73  enum ts_boolanswer {
74  BA_UNKNOWN = 0,
75  BA_YES = 1,
76  BA_NO = 2
77  };
81  enum ts_hintType {
82  HT_KEYEXPIRED = 0,
83  HT_SIGEXPIRED = 1,
84  HT_NOSECKEY = 2,
85  HT_ENCTO = 3
86  };
87 
91  explicit KGpgTransaction(QObject *parent = 0, const bool allowChaining = false);
95  virtual ~KGpgTransaction();
96 
100  void start();
101 
105  void setGnuPGHome(const QString &home);
106 
118  int waitForFinished(const int msecs = -1);
119 
126  const QString &getDescription() const;
127 
139  void setInputTransaction(KGpgTransaction *ta);
140 
149  void clearInputTransaction();
150 
154  bool hasInputTransaction() const;
155 
159  void kill();
160 
161 signals:
169  void done(int result);
170 
175  void statusMessage(const QString &msg);
176 
182  void infoProgress(qulonglong processedAmount, qulonglong totalAmount);
183 
184 protected:
199  virtual bool preStart();
205  virtual void postStart();
215  virtual bool nextLine(const QString &line) = 0;
227  virtual ts_boolanswer boolQuestion(const QString &line);
228 
240  virtual ts_boolanswer confirmOverwrite(KUrl &currentFile);
241 
255  virtual bool hintLine(const ts_hintType hint, const QString &args);
263  virtual void finish();
272  virtual void newPassphraseEntered();
277  void setDescription(const QString &description);
278 
282  void waitForInputTransaction();
283 
289  void unexpectedLine(const QString &line);
290 
302  virtual bool passphraseRequested();
303 
313  virtual bool passphraseReceived();
314 
315 private:
316  KGpgTransactionPrivate* const d;
317 
318  Q_PRIVATE_SLOT(d, void slotReadReady())
319  Q_PRIVATE_SLOT(d, void slotProcessExited())
320  Q_PRIVATE_SLOT(d, void slotProcessStarted())
321  Q_PRIVATE_SLOT(d, void slotInputTransactionDone(int))
322  Q_PRIVATE_SLOT(d, void slotPassphraseEntered(const QString &))
323  Q_PRIVATE_SLOT(d, void slotPassphraseAborted())
324 
325 protected:
338  void askNewPassphrase(const QString &text);
339 
343  int getSuccess() const;
350  void setSuccess(const int v);
351 
360  void addIdHint(QString txt);
365  QString getIdHints() const;
366 
379  GPGProc *getProcess();
390  int addArgument(const QString &arg);
400  int addArguments(const QStringList &args);
406  void replaceArgument(const int pos, const QString &arg);
412  void insertArgument(const int pos, const QString &arg);
418  void insertArguments(const int pos, const QStringList &args);
429  void addArgumentRef(int *ref);
439  void write(const QByteArray &a, const bool lf = true);
446  void write(const int i);
457  bool askPassphrase(const QString &message = QString());
458 };
459 
460 #endif // KGPGTRANSACTION_H
KGpgTransaction::passphraseRequested
virtual bool passphraseRequested()
called when GnuPG asks for a passphrase
Definition: kgpgtransaction.cpp:512
KGpgTransaction::getSuccess
int getSuccess() const
get the success value that will be returned with the done signal
Definition: kgpgtransaction.cpp:442
KGpgTransaction::kill
void kill()
abort this operation as soon as possible
Definition: kgpgtransaction.cpp:736
KGpgTransaction::TS_INPUT_PROCESS_ERROR
the connected input process returned an error
Definition: kgpgtransaction.h:65
GPGProc
A interface to GnuPG handling UTF8 recoding correctly.
Definition: gpgproc.h:36
KGpgSignTransactionHelper
helper class for key signing transactions
Definition: kgpgsigntransactionhelper.h:25
KGpgTransaction::addArgument
int addArgument(const QString &arg)
add a command line argument to gpg process
Definition: kgpgtransaction.cpp:562
KGpgTransaction::BA_YES
answer "YES"
Definition: kgpgtransaction.h:75
KGpgTransaction::addArguments
int addArguments(const QStringList &args)
add command line arguments to gpg process
Definition: kgpgtransaction.cpp:572
KGpgTransaction::TS_OK
everything went fine
Definition: kgpgtransaction.h:60
KGpgTransaction::nextLine
virtual bool nextLine(const QString &line)=0
Called for every line the gpg process writes.
KGpgTransaction::write
void write(const QByteArray &a, const bool lf=true)
write data to standard input of gpg process
Definition: kgpgtransaction.cpp:413
KGpgTransaction::newPassphraseEntered
virtual void newPassphraseEntered()
called when the user entered a new passphrase
Definition: kgpgtransaction.cpp:742
QByteArray
KGpgTransaction::ts_hintType
ts_hintType
the known hints sent by GnuPG
Definition: kgpgtransaction.h:81
KGpgTransaction::infoProgress
void infoProgress(qulonglong processedAmount, qulonglong totalAmount)
emits procentual status information
KGpgTransaction::HT_NOSECKEY
secret key not available
Definition: kgpgtransaction.h:84
KGpgTransaction::postStart
virtual void postStart()
Called when the gpg process is up and running.
Definition: kgpgtransaction.cpp:530
KGpgTransaction::hintLine
virtual bool hintLine(const ts_hintType hint, const QString &args)
Called for a set of hint messages.
Definition: kgpgtransaction.cpp:473
KGpgTransaction::waitForFinished
int waitForFinished(const int msecs=-1)
blocks until the transaction is complete
Definition: kgpgtransaction.cpp:681
KGpgTransaction::replaceArgument
void replaceArgument(const int pos, const QString &arg)
replace the argument at the given position
Definition: kgpgtransaction.cpp:582
KGpgTransaction::askPassphrase
bool askPassphrase(const QString &message=QString())
ask user for passphrase
Definition: kgpgtransaction.cpp:623
KGpgTransaction::setInputTransaction
void setInputTransaction(KGpgTransaction *ta)
connect the standard input of this transaction to another process
Definition: kgpgtransaction.cpp:709
KGpgTransaction::start
void start()
Start the operation.
Definition: kgpgtransaction.cpp:390
KGpgTransaction::getProcess
GPGProc * getProcess()
get a reference to the gpg process object
Definition: kgpgtransaction.cpp:556
KGpgTransaction::clearInputTransaction
void clearInputTransaction()
tell the process the standard input is no longer connected
Definition: kgpgtransaction.cpp:723
KGpgTransaction::KGpgTransaction
KGpgTransaction(QObject *parent=0, const bool allowChaining=false)
KGpgTransaction constructor.
Definition: kgpgtransaction.cpp:118
KGpgTransaction::BA_NO
answer "NO"
Definition: kgpgtransaction.h:76
KGpgTransaction::preStart
virtual bool preStart()
Called before the gpg process is started.
Definition: kgpgtransaction.cpp:524
KGpgTransaction::done
void done(int result)
Emitted when the operation was completed.
KGpgTransaction::statusMessage
void statusMessage(const QString &msg)
emits textual status information
KGpgTransaction::insertArguments
void insertArguments(const int pos, const QStringList &args)
insert arguments at the given position
Definition: kgpgtransaction.cpp:599
KGpgTransaction::hasInputTransaction
bool hasInputTransaction() const
check if another transaction will sent input to this
Definition: kgpgtransaction.cpp:730
KGpgTransaction::HT_ENCTO
message is encrypted for this key
Definition: kgpgtransaction.h:85
KGpgTransaction::addArgumentRef
void addArgumentRef(int *ref)
make sure the reference to a specific argument is kept up to date
Definition: kgpgtransaction.cpp:617
QProcess
QObject
KGpgTransaction::askNewPassphrase
void askNewPassphrase(const QString &text)
Ask user for passphrase and send it to gpg process.
Definition: kgpgtransaction.cpp:428
KGpgTransaction::confirmOverwrite
virtual ts_boolanswer confirmOverwrite(KUrl &currentFile)
called when GnuPG asks for confirmation for overwriting a file
Definition: kgpgtransaction.cpp:465
KGpgTransaction::boolQuestion
virtual ts_boolanswer boolQuestion(const QString &line)
Called for every boolean question GnuPG answers.
Definition: kgpgtransaction.cpp:457
KGpgTransaction::getIdHints
QString getIdHints() const
get string of all userid hints
Definition: kgpgtransaction.cpp:550
QString
KGpgTransaction::TS_MSG_SEQUENCE
unexpected sequence of GnuPG messages
Definition: kgpgtransaction.h:62
KGpgTransaction::BA_UNKNOWN
the question is not supported (this is an error)
Definition: kgpgtransaction.h:74
KGpgTransaction::HT_SIGEXPIRED
deprecated by GnuPG
Definition: kgpgtransaction.h:83
QStringList
KGpgTransaction::ts_boolanswer
ts_boolanswer
result codes for GnuPG boolean questions
Definition: kgpgtransaction.h:73
KGpgTransaction::finish
virtual void finish()
Called when the gpg process finishes.
Definition: kgpgtransaction.cpp:484
KGpgTransaction::getDescription
const QString & getDescription() const
return description of this transaction
Definition: kgpgtransaction.cpp:703
KGpgTransaction::TS_USER_ABORTED
the user aborted the transaction
Definition: kgpgtransaction.h:63
KGpgTransaction::passphraseReceived
virtual bool passphraseReceived()
called when GnuPG accepted the passphrase
Definition: kgpgtransaction.cpp:518
KGpgTransaction::KGpgTransactionPrivate
friend class KGpgTransactionPrivate
Definition: kgpgtransaction.h:47
KGpgTransaction::TS_COMMON_END
placeholder for return values of derived classes
Definition: kgpgtransaction.h:66
KGpgTransaction::setSuccess
void setSuccess(const int v)
set the success value that will be returned with the done signal
Definition: kgpgtransaction.cpp:448
KGpgTransaction::addIdHint
void addIdHint(QString txt)
add a userid hint
Definition: kgpgtransaction.cpp:535
KGpgTransaction::TS_INVALID_EMAIL
the given email address is invalid
Definition: kgpgtransaction.h:64
KGpgTransaction::unexpectedLine
void unexpectedLine(const QString &line)
notify of an unexpected line
Definition: kgpgtransaction.cpp:506
KGpgTransaction::TS_BAD_PASSPHRASE
the passphrase was not correct
Definition: kgpgtransaction.h:61
description
static const char description[]
Definition: main.cpp:23
KGpgTransaction::insertArgument
void insertArgument(const int pos, const QString &arg)
insert an argument at the given position
Definition: kgpgtransaction.cpp:593
KGpgTransaction
Process one GnuPG operation.
Definition: kgpgtransaction.h:44
KGpgTransaction::setDescription
void setDescription(const QString &description)
set the description returned in getDescription()
Definition: kgpgtransaction.cpp:489
QObject::parent
QObject * parent() const
KGpgTransaction::~KGpgTransaction
virtual ~KGpgTransaction()
KGpgTransaction destructor.
Definition: kgpgtransaction.cpp:127
KGpgTransaction::setGnuPGHome
void setGnuPGHome(const QString &home)
sets the home directory of GnuPG called for this transaction
Definition: kgpgtransaction.cpp:663
KGpgTransaction::ts_transaction
ts_transaction
return codes common to many transactions
Definition: kgpgtransaction.h:59
KGpgTransaction::HT_KEYEXPIRED
key is expired
Definition: kgpgtransaction.h:82
KGpgTransaction::waitForInputTransaction
void waitForInputTransaction()
wait until the input transaction has finished
Definition: kgpgtransaction.cpp:495
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:42:08 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kgpg

Skip menu "kgpg"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • ktimer
  • kwallet
  • sweeper

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