• 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
kgpgexternalactions.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002 Jean-Baptiste Mardelle <bj@altern.org>
3  * Copyright (C) 2008,2009,2010,2011,2012,2013 Rolf Eike Beer <kde@opensource.sf-tec.de>
4  */
5 
6 /***************************************************************************
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  ***************************************************************************/
14 
15 #include "kgpgexternalactions.h"
16 
17 #include "detailedconsole.h"
18 #include "foldercompressjob.h"
19 #include "keyservers.h"
20 #include "keysmanager.h"
21 #include "kgpgfirstassistant.h"
22 #include "kgpginterface.h"
23 #include "kgpgsettings.h"
24 #include "kgpgtextinterface.h"
25 #include "selectpublickeydialog.h"
26 #include "selectsecretkey.h"
27 #include "core/images.h"
28 #include "editor/kgpgeditor.h"
29 #include "editor/kgpgtextedit.h"
30 #include "transactions/kgpgdecrypt.h"
31 #include "transactions/kgpgencrypt.h"
32 #include "transactions/kgpgsigntext.h"
33 #include "transactions/kgpgtransactionjob.h"
34 #include "transactions/kgpgverify.h"
35 
36 #include <KActionCollection>
37 #include <KMessageBox>
38 #include <KTar>
39 #include <KTemporaryFile>
40 #include <KToolInvocation>
41 #include <KUniqueApplication>
42 #include <KZip>
43 #include <QDesktopWidget>
44 #include <QFont>
45 #include <QProcess>
46 #include <QStringListModel>
47 #include <kio/global.h>
48 #include <kio/renamedialog.h>
49 #include <kjobtrackerinterface.h>
50 
51 KGpgExternalActions::KGpgExternalActions(KeysManager *parent, KGpgItemModel *model)
52  : QObject(parent),
53  compressionScheme(0),
54  m_model(model),
55  m_kgpgfoldertmp(NULL),
56  m_keysmanager(parent)
57 {
58  readOptions();
59 }
60 
61 KGpgExternalActions::~KGpgExternalActions()
62 {
63  delete m_kgpgfoldertmp;
64 }
65 
66 void KGpgExternalActions::encryptFiles(KeysManager *parent, const KUrl::List &urls)
67 {
68  Q_ASSERT(!urls.isEmpty());
69 
70  KGpgExternalActions *encActions = new KGpgExternalActions(parent, parent->getModel());
71 
72  KgpgSelectPublicKeyDlg *dialog = new KgpgSelectPublicKeyDlg(parent, parent->getModel(), encActions->goDefaultKey(), false, urls);
73  connect(dialog, SIGNAL(accepted()), encActions, SLOT(slotEncryptionKeySelected()));
74  connect(dialog, SIGNAL(rejected()), dialog, SLOT(deleteLater()));
75  connect(dialog, SIGNAL(rejected()), encActions, SLOT(deleteLater()));
76  dialog->show();
77 }
78 
79 void KGpgExternalActions::slotEncryptionKeySelected()
80 {
81  KgpgSelectPublicKeyDlg *dialog = qobject_cast<KgpgSelectPublicKeyDlg *>(sender());
82  Q_ASSERT(dialog != NULL);
83  sender()->deleteLater();
84 
85  QStringList opts;
86  QString defaultKey;
87 
88  if (KGpgSettings::encryptFilesTo()) {
89  if (KGpgSettings::pgpCompatibility())
90  opts << QLatin1String( "--pgp6" );
91 
92  defaultKey = KGpgSettings::fileEncryptionKey();
93  }
94 
95  KGpgEncrypt::EncryptOptions eopt = KGpgEncrypt::DefaultEncryption;
96 
97  if (dialog->getUntrusted())
98  eopt |= KGpgEncrypt::AllowUntrustedEncryption;
99  if (dialog->getArmor())
100  eopt |= KGpgEncrypt::AsciiArmored;
101  if (dialog->getHideId())
102  eopt |= KGpgEncrypt::HideKeyId;
103 
104  if (KGpgSettings::allowCustomEncryptionOptions()) {
105  const QString customopts(dialog->getCustomOptions().isEmpty());
106 
107  if (!customopts.isEmpty())
108  opts << customopts.split(QLatin1Char(' '), QString::SkipEmptyParts);
109  }
110 
111  QStringList keys = dialog->selectedKeys();
112 
113  if (!defaultKey.isEmpty() && !keys.contains(defaultKey))
114  keys.append(defaultKey);
115 
116  if (dialog->getSymmetric())
117  keys.clear();
118 
119  KGpgEncrypt *enc = new KGpgEncrypt(dialog->parent(), keys, dialog->getFiles(), eopt, opts);
120  KGpgTransactionJob *encjob = new KGpgTransactionJob(enc);
121 
122  KIO::getJobTracker()->registerJob(encjob);
123  encjob->start();
124 
125  deleteLater();
126 }
127 
128 void KGpgExternalActions::encryptFolders(KeysManager *parent, const KUrl::List &urls)
129 {
130  KTemporaryFile *tmpfolder = new KTemporaryFile();
131 
132  if (!tmpfolder->open()) {
133  delete tmpfolder;
134  KMessageBox::sorry(parent, i18n("Cannot create temporary file for folder compression."), i18n("Temporary File Creation"));
135  return;
136  }
137 
138  if (KMessageBox::Continue != KMessageBox::warningContinueCancel(parent,
139  i18n("<qt>KGpg will now create a temporary archive file:<br /><b>%1</b> to process the encryption. "
140  "The file will be deleted after the encryption is finished.</qt>",
141  tmpfolder->fileName()), i18n("Temporary File Creation"), KStandardGuiItem::cont(),
142  KStandardGuiItem::cancel(), QLatin1String( "FolderTmpFile" ))) {
143  delete tmpfolder;
144  return;
145  }
146 
147  KGpgExternalActions *encActions = new KGpgExternalActions(parent, parent->getModel());
148  KgpgSelectPublicKeyDlg *dialog = new KgpgSelectPublicKeyDlg(parent, parent->getModel(), encActions->goDefaultKey(), false, urls);
149  encActions->m_kgpgfoldertmp = tmpfolder;
150 
151  KHBox *bGroup = new KHBox(dialog->optionsbox);
152 
153  (void) new QLabel(i18n("Compression method for archive:"), bGroup);
154 
155  KComboBox *optionbx = new KComboBox(bGroup);
156  optionbx->setModel(new QStringListModel(FolderCompressJob::archiveNames(), bGroup));
157 
158  connect(optionbx, SIGNAL(activated(int)), encActions, SLOT(slotSetCompression(int)));
159  connect(dialog, SIGNAL(accepted()), encActions, SLOT(startFolderEncode()));
160  connect(dialog, SIGNAL(rejected()), encActions, SLOT(deleteLater()));
161  connect(dialog, SIGNAL(rejected()), dialog, SLOT(deleteLater()));
162 
163  dialog->show();
164 }
165 
166 void KGpgExternalActions::slotSetCompression(int cp)
167 {
168  compressionScheme = cp;
169 }
170 
171 void KGpgExternalActions::startFolderEncode()
172 {
173  KgpgSelectPublicKeyDlg *dialog = qobject_cast<KgpgSelectPublicKeyDlg *>(sender());
174  Q_ASSERT(dialog != NULL);
175  dialog->deleteLater();
176 
177  const KUrl::List urls = dialog->getFiles();
178 
179  QStringList selec = dialog->selectedKeys();
180  KGpgEncrypt::EncryptOptions encOptions = KGpgEncrypt::DefaultEncryption;
181  const QStringList encryptOptions = dialog->getCustomOptions().split(QLatin1Char(' '), QString::SkipEmptyParts);
182  if (dialog->getSymmetric()) {
183  selec.clear();
184  } else {
185  Q_ASSERT(!selec.isEmpty());
186  }
187 
188  QString extension = FolderCompressJob::extensionForArchive(compressionScheme);
189 
190  if (dialog->getArmor())
191  extension += QLatin1String( ".asc" );
192  else if (KGpgSettings::pgpExtension())
193  extension += QLatin1String( ".pgp" );
194  else
195  extension += QLatin1String( ".gpg" );
196 
197  if (dialog->getArmor())
198  encOptions |= KGpgEncrypt::AsciiArmored;
199  if (dialog->getHideId())
200  encOptions |= KGpgEncrypt::HideKeyId;
201  if (dialog->getUntrusted())
202  encOptions |= KGpgEncrypt::AllowUntrustedEncryption;
203 
204  KUrl encryptedFile(KUrl::fromPath(urls.first().path(KUrl::RemoveTrailingSlash) + extension));
205  QFile encryptedFolder(encryptedFile.path());
206  dialog->hide();
207  if (encryptedFolder.exists()) {
208  QPointer<KIO::RenameDialog> over = new KIO::RenameDialog(m_keysmanager, i18n("File Already Exists"),
209  KUrl(), encryptedFile, KIO::M_OVERWRITE);
210  if (over->exec() == QDialog::Rejected) {
211  dialog = NULL;
212  delete over;
213  deleteLater();
214  return;
215  }
216  encryptedFile = over->newDestUrl();
217  delete over;
218  }
219 
220  FolderCompressJob *trayinfo = new FolderCompressJob(m_keysmanager, urls, encryptedFile, m_kgpgfoldertmp,
221  selec, encryptOptions, encOptions, compressionScheme);
222  connect(trayinfo, SIGNAL(result(KJob*)), SLOT(slotFolderFinished(KJob*)));
223  KIO::getJobTracker()->registerJob(trayinfo);
224  trayinfo->start();
225 }
226 
227 void KGpgExternalActions::slotFolderFinished(KJob *job)
228 {
229  FolderCompressJob *trayinfo = qobject_cast<FolderCompressJob *>(job);
230  Q_ASSERT(trayinfo != NULL);
231 
232  if (trayinfo->error())
233  KMessageBox::sorry(m_keysmanager, trayinfo->errorString());
234 
235  deleteLater();
236 }
237 
238 void KGpgExternalActions::verifyFile(KUrl url)
239 {
240  // check file signature
241  if (url.isEmpty())
242  return;
243 
244  QString sigfile;
245  // try to find detached signature.
246  if (!url.fileName().endsWith(QLatin1String(".sig"))) {
247  sigfile = url.path() + QLatin1String( ".sig" );
248  QFile fsig(sigfile);
249  if (!fsig.exists()) {
250  sigfile = url.path() + QLatin1String( ".asc" );
251  QFile fsig(sigfile);
252  // if no .asc or .sig signature file included, assume the file is internally signed
253  if (!fsig.exists())
254  sigfile.clear();
255  }
256  } else {
257  sigfile = url.path();
258  url = KUrl(sigfile.left(sigfile.length() - 4));
259  }
260 
261  KGpgVerify *kgpv = new KGpgVerify(parent(), KUrl::List(sigfile));
262  connect(kgpv, SIGNAL(done(int)), SLOT(slotVerificationDone(int)));
263  kgpv->start();
264 }
265 
266 void KGpgExternalActions::slotVerificationDone(int result)
267 {
268  KGpgVerify *kgpv = qobject_cast<KGpgVerify *>(sender());
269  Q_ASSERT(kgpv != NULL);
270  kgpv->deleteLater();
271 
272  if (result == KGpgVerify::TS_MISSING_KEY) {
273  KeyServer *kser = new KeyServer(m_keysmanager, m_model);
274  kser->slotSetText(kgpv->missingId());
275  kser->slotImport();
276  } else {
277  const QStringList messages = kgpv->getMessages();
278 
279  if (messages.isEmpty())
280  return;
281 
282  QStringList msglist;
283  foreach (QString rawmsg, messages) // krazy:exclude=foreach
284  msglist << rawmsg.replace(QLatin1Char('<'), QLatin1String("&lt;"));
285 
286  (void) new KgpgDetailedInfo(m_keysmanager, KGpgVerify::getReport(messages, m_model),
287  msglist.join(QLatin1String("<br/>")),
288  QStringList(), i18nc("Caption of message box", "Verification Finished"));
289  }
290 }
291 
292 void KGpgExternalActions::signFiles(KeysManager* parent, const KUrl::List& urls)
293 {
294  Q_ASSERT(!urls.isEmpty());
295 
296  KGpgExternalActions *signActions = new KGpgExternalActions(parent, parent->getModel());
297 
298  signActions->droppedUrls = urls;
299 
300  KgpgSelectSecretKey *keydlg = new KgpgSelectSecretKey(parent, parent->getModel(), false);
301  connect(keydlg, SIGNAL(accepted()), signActions, SLOT(slotSignFiles()));
302  connect(keydlg, SIGNAL(rejected()), keydlg, SLOT(deleteLater()));
303  connect(keydlg, SIGNAL(rejected()), signActions, SLOT(deleteLater()));
304  keydlg->show();
305 }
306 
307 void KGpgExternalActions::slotSignFiles()
308 {
309  KgpgSelectSecretKey *keydlg = qobject_cast<KgpgSelectSecretKey *>(sender());
310  Q_ASSERT(keydlg != NULL);
311  sender()->deleteLater();
312 
313  const QString signKeyID = keydlg->getKeyID();
314 
315  QStringList Options;
316  KGpgSignText::SignOptions sopts = KGpgSignText::DetachedSignature;
317  if (KGpgSettings::asciiArmor()) {
318  Options << QLatin1String( "--armor" );
319  sopts |= KGpgSignText::AsciiArmored;
320  }
321  if (KGpgSettings::pgpCompatibility())
322  Options << QLatin1String( "--pgp6" );
323 
324  if (droppedUrls.count() > 1) {
325  KGpgTextInterface *signFileProcess = new KGpgTextInterface(parent(), signKeyID, Options);
326  connect(signFileProcess, SIGNAL(fileSignFinished()), signFileProcess, SLOT(deleteLater()));
327  signFileProcess->signFiles(droppedUrls);
328  } else {
329  KGpgSignText *signt = new KGpgSignText(parent(), signKeyID, droppedUrls, sopts);
330  connect(signt, SIGNAL(done(int)), signt, SLOT(deleteLater()));
331  signt->start();
332  }
333 
334  deleteLater();
335 }
336 
337 void KGpgExternalActions::decryptFiles(KeysManager* parent, const KUrl::List &urls)
338 {
339  KGpgExternalActions *decActions = new KGpgExternalActions(parent, parent->getModel());
340 
341  decActions->droppedUrls = urls;
342 
343  decActions->decryptFile(urls);
344 }
345 
346 void KGpgExternalActions::decryptFile(KUrl::List urls)
347 {
348  if (urls.isEmpty()) {
349  deleteLater();
350  return;
351  }
352 
353  while (!urls.first().isLocalFile()) {
354  showDroppedFile(urls.takeFirst());
355  }
356 
357  KUrl first = urls.first();
358 
359  QString oldname(first.fileName());
360  if (oldname.endsWith(QLatin1String(".gpg"), Qt::CaseInsensitive) ||
361  oldname.endsWith(QLatin1String(".asc"), Qt::CaseInsensitive) ||
362  oldname.endsWith(QLatin1String(".pgp"), Qt::CaseInsensitive))
363  oldname.chop(4);
364  else
365  oldname.append(QLatin1String( ".clear" ));
366 
367  KUrl swapname(first.directory(KUrl::AppendTrailingSlash) + oldname);
368  QFile fgpg(swapname.path());
369  if (fgpg.exists()) {
370  QPointer<KIO::RenameDialog> over = new KIO::RenameDialog(m_keysmanager,
371  i18n("File Already Exists"), KUrl(), swapname, KIO::M_OVERWRITE);
372  if (over->exec() != QDialog::Accepted) {
373  delete over;
374  urls.pop_front();
375  decryptFile(urls);
376  return;
377  }
378 
379  swapname = over->newDestUrl();
380  delete over;
381  }
382 
383  droppedUrls = urls;
384  KGpgDecrypt *decr = new KGpgDecrypt(this, droppedUrls.first(), swapname);
385  connect(decr, SIGNAL(done(int)), SLOT(slotDecryptionDone(int)));
386  decr->start();
387 }
388 
389 void KGpgExternalActions::slotDecryptionDone(int status)
390 {
391  KGpgDecrypt *decr = qobject_cast<KGpgDecrypt *>(sender());
392  Q_ASSERT(decr != NULL);
393 
394  if (status != KGpgTransaction::TS_OK)
395  m_decryptionFailed << droppedUrls.first();
396 
397  decr->deleteLater();
398 
399  droppedUrls.pop_front();
400 
401  if (!droppedUrls.isEmpty()) {
402  decryptFile(droppedUrls);
403  } else {
404  if (!m_decryptionFailed.isEmpty()) {
405  KMessageBox::errorList(NULL,
406  i18np("Decryption of this file failed:", "Decryption of these files failed:",
407  m_decryptionFailed.count()), m_decryptionFailed.toStringList(),
408  i18n("Decryption failed."));
409  }
410  deleteLater();
411  }
412 }
413 
414 void KGpgExternalActions::showDroppedFile(const KUrl &file)
415 {
416  KgpgEditor *kgpgtxtedit = new KgpgEditor(m_keysmanager, m_model, 0);
417  connect(m_keysmanager, SIGNAL(fontChanged(QFont)), kgpgtxtedit, SLOT(slotSetFont(QFont)));
418 
419  kgpgtxtedit->m_editor->openDroppedFile(file, false);
420 
421  kgpgtxtedit->show();
422 }
423 
424 void KGpgExternalActions::readOptions()
425 {
426  clipboardMode = QClipboard::Clipboard;
427  if (KGpgSettings::useMouseSelection() && kapp->clipboard()->supportsSelection())
428  clipboardMode = QClipboard::Selection;
429 
430  if (KGpgSettings::firstRun()) {
431  firstRun();
432  } else if (KGpgSettings::gpgConfigPath().isEmpty()) {
433  if (KMessageBox::Yes == KMessageBox::questionYesNo(0,
434  i18n("<qt>You have not set a path to your GnuPG config file.<br />This may cause some surprising results in KGpg's execution."
435  "<br />Would you like to start KGpg's assistant to fix this problem?</qt>"),
436  QString(), KGuiItem(i18n("Start Assistant")), KGuiItem(i18n("Do Not Start"))))
437  startAssistant();
438  }
439 }
440 
441 void KGpgExternalActions::firstRun()
442 {
443  QProcess *createConfigProc = new QProcess(this);
444  QStringList args;
445  args << QLatin1String( "--no-tty" ) << QLatin1String( "--list-secret-keys" );
446  createConfigProc->start(QLatin1String( "gpg" ), args); // start GnuPG so that it will create a config file
447  createConfigProc->waitForFinished();
448  startAssistant();
449 }
450 
451 void KGpgExternalActions::startAssistant()
452 {
453  if (m_assistant.isNull()) {
454  m_assistant = new KGpgFirstAssistant(m_keysmanager);
455 
456  connect(m_assistant, SIGNAL(accepted()), SLOT(slotSaveOptionsPath()));
457  connect(m_assistant, SIGNAL(rejected()), m_assistant, SLOT(deleteLater()));
458  connect(m_assistant, SIGNAL(helpClicked()), SLOT(help()));
459  }
460 
461  m_assistant->show();
462 }
463 
464 void KGpgExternalActions::slotSaveOptionsPath()
465 {
466  KGpgSettings::setAutoStart(m_assistant->getAutoStart());
467  KGpgSettings::setGpgConfigPath(m_assistant->getConfigPath());
468  KGpgSettings::setFirstRun(false);
469 
470  const QString gpgConfServer(KgpgInterface::getGpgSetting(QLatin1String( "keyserver" ), KGpgSettings::gpgConfigPath()));
471  if (!gpgConfServer.isEmpty()) {
472  // The user already had configured a keyserver, set this one as default.
473  QStringList serverList(KGpgSettings::keyServers());
474  serverList.prepend(gpgConfServer);
475  KGpgSettings::setKeyServers(serverList);
476  }
477 
478  const QString defaultID(m_assistant->getDefaultKey());
479 
480  KGpgSettings::self()->writeConfig();
481  emit updateDefault(defaultID);
482  if (m_assistant->runKeyGenerate())
483  emit createNewKey();
484  m_assistant->deleteLater();
485 }
486 
487 void KGpgExternalActions::help()
488 {
489  KToolInvocation::invokeHelp(QString(), QLatin1String( "kgpg" ));
490 }
491 
492 KShortcut KGpgExternalActions::goDefaultKey() const
493 {
494  return qobject_cast<KAction *>(m_keysmanager->actionCollection()->action(QLatin1String( "go_default_key" )))->shortcut();
495 }
496 
497 #include "kgpgexternalactions.moc"
KgpgEditor::m_editor
KgpgTextEdit *const m_editor
Definition: kgpgeditor.h:45
KGpgItemModel
Definition: kgpgitemmodel.h:44
KGpgSignText::AsciiArmored
output the data as printable ASCII as opposed to binary data
Definition: kgpgsigntext.h:37
QList::clear
void clear()
KGpgDecrypt
decrypt the given text or files
Definition: kgpgdecrypt.h:29
KGpgSettings::pgpCompatibility
static bool pgpCompatibility()
Get Enable PGP 6 compatibility.
Definition: kgpgsettings.h:250
foldercompressjob.h
KGpgTransaction::TS_OK
everything went fine
Definition: kgpgtransaction.h:60
kgpgsigntext.h
KeyServer
Definition: keyservers.h:51
KGpgSettings::gpgConfigPath
static QString gpgConfigPath()
Get The path of the gpg configuration file.
Definition: kgpgsettings.h:288
KgpgSelectPublicKeyDlg
shows a dialog to select a public key for encryption
Definition: selectpublickeydialog.h:39
KgpgSelectPublicKeyDlg::selectedKeys
QStringList selectedKeys() const
Definition: selectpublickeydialog.cpp:156
KGpgExternalActions::createNewKey
void createNewKey()
KGpgEncrypt::AsciiArmored
output the data as printable ASCII as opposed to binary data
Definition: kgpgencrypt.h:38
kgpgtransactionjob.h
KGpgExternalActions::decryptFiles
static void decryptFiles(KeysManager *parent, const KUrl::List &urls)
Definition: kgpgexternalactions.cpp:337
KgpgSelectPublicKeyDlg::getFiles
const KUrl::List & getFiles() const
return the files passed in the constructor
Definition: selectpublickeydialog.cpp:198
KGpgSettings::encryptFilesTo
static bool encryptFilesTo()
Get Encrypt files.
Definition: kgpgsettings.h:155
QObject::sender
QObject * sender() const
QString::split
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
KGpgVerify
verify the signature of the given text or files
Definition: kgpgverify.h:31
QFont
QPointer
KGpgTransactionJob
Wrap a GnuPG transaction in a job.
Definition: kgpgtransactionjob.h:28
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
selectsecretkey.h
KGpgSettings::setAutoStart
static void setAutoStart(bool v)
Set Start KGpg automatically at KDE startup.
Definition: kgpgsettings.h:525
images.h
QStringList::join
QString join(const QString &separator) const
QFile::exists
bool exists() const
KGpgSettings::pgpExtension
static bool pgpExtension()
Get Use *.pgp extension for encrypted files.
Definition: kgpgsettings.h:269
KgpgSelectPublicKeyDlg::getCustomOptions
QString getCustomOptions() const
Definition: selectpublickeydialog.cpp:181
KGpgSettings::setKeyServers
static void setKeyServers(const QStringList &v)
Set Key servers used by KGpg.
Definition: kgpgsettings.h:886
KGpgTransaction::start
void start()
Start the operation.
Definition: kgpgtransaction.cpp:390
QString::chop
void chop(int n)
selectpublickeydialog.h
KgpgSelectSecretKey::getKeyID
QString getKeyID() const
Definition: selectsecretkey.cpp:97
KGpgTextInterface::signFiles
void signFiles(const KUrl::List &srcUrl)
Sign file function.
Definition: kgpgtextinterface.cpp:84
QFile
kgpgexternalactions.h
KgpgTextEdit::openDroppedFile
void openDroppedFile(const KUrl &url, const bool probe)
Definition: kgpgtextedit.cpp:82
KeysManager::getModel
KGpgItemModel * getModel()
Definition: keysmanager.cpp:2634
QString::clear
void clear()
KGpgExternalActions::verifyFile
void verifyFile(KUrl url)
Definition: kgpgexternalactions.cpp:238
KGpgVerify::TS_MISSING_KEY
signing key not in keyring
Definition: kgpgverify.h:38
QList::append
void append(const T &value)
kgpgfirstassistant.h
kgpgeditor.h
KGpgSettings::asciiArmor
static bool asciiArmor()
Get Use ASCII armored encryption.
Definition: kgpgsettings.h:174
KgpgDetailedInfo
Definition: detailedconsole.h:23
KGpgExternalActions::encryptFiles
static void encryptFiles(KeysManager *parent, const KUrl::List &urls)
create a new object, encrypt the given files, and destroy the object
Definition: kgpgexternalactions.cpp:66
QProcess
KgpgSelectPublicKeyDlg::getHideId
bool getHideId() const
Definition: selectpublickeydialog.cpp:203
QObject
QPointer::isNull
bool isNull() const
QList::isEmpty
bool isEmpty() const
KGpgSettings::fileEncryptionKey
static QString fileEncryptionKey()
Get File encryption key.
Definition: kgpgsettings.h:136
KgpgSelectPublicKeyDlg::getArmor
bool getArmor() const
Definition: selectpublickeydialog.cpp:193
kgpgencrypt.h
QString::isEmpty
bool isEmpty() const
KGpgFirstAssistant
Definition: kgpgfirstassistant.h:30
KGpgExternalActions::KGpgExternalActions
KGpgExternalActions(KeysManager *parent, KGpgItemModel *model)
Definition: kgpgexternalactions.cpp:51
KeyServer::slotSetText
void slotSetText(const QString &text)
Definition: keyservers.cpp:277
KgpgEditor
Definition: kgpgeditor.h:33
FolderCompressJob::archiveNames
static const QStringList & archiveNames()
get list of supported archive names
Definition: foldercompressjob.cpp:172
KeysManager
Definition: keysmanager.h:66
kgpginterface.h
KGpgSettings::firstRun
static bool firstRun()
Get Is the first time the application runs.
Definition: kgpgsettings.h:345
QObject::deleteLater
void deleteLater()
kgpgdecrypt.h
QString
KGpgExternalActions
handle actions called from outside the application
Definition: kgpgexternalactions.h:41
KGpgSettings::setFirstRun
static void setFirstRun(bool v)
Set Is the first time the application runs.
Definition: kgpgsettings.h:335
KGpgSignText
sign the given text or files
Definition: kgpgsigntext.h:29
KGpgEncrypt::HideKeyId
remove anything that shows which key ids this data is encrypted to, ignored for symmetric encryption ...
Definition: kgpgencrypt.h:40
KGpgSettings::useMouseSelection
static bool useMouseSelection()
Get Use the mouse selection instead of the clipboard.
Definition: kgpgsettings.h:516
QStringListModel
QStringList
KGpgExternalActions::encryptFolders
static void encryptFolders(KeysManager *parent, const KUrl::List &urls)
Definition: kgpgexternalactions.cpp:128
kgpgtextedit.h
KGpgExternalActions::~KGpgExternalActions
~KGpgExternalActions()
Definition: kgpgexternalactions.cpp:61
KGpgSettings::setGpgConfigPath
static void setGpgConfigPath(const QString &v)
Set The path of the gpg configuration file.
Definition: kgpgsettings.h:278
KGpgSettings::allowCustomEncryptionOptions
static bool allowCustomEncryptionOptions()
Get Allow custom encryption options.
Definition: kgpgsettings.h:117
QLatin1Char
KeyServer::slotImport
void slotImport()
Definition: keyservers.cpp:97
KGpgVerify::getReport
static QString getReport(const QStringList &log, const KGpgItemModel *model=NULL)
get verification report
Definition: kgpgverify.cpp:103
kgpgsettings.h
QString::replace
QString & replace(int position, int n, QChar after)
KGpgSettings::self
static KGpgSettings * self()
Definition: kgpgsettings.cpp:17
keyservers.h
FolderCompressJob::extensionForArchive
static QString extensionForArchive(const int archive)
query extension for archive type
Definition: foldercompressjob.cpp:151
FolderCompressJob
Create an encrypted archive of the given folders.
Definition: foldercompressjob.h:33
KGpgSettings::keyServers
static QStringList keyServers()
Get Key servers used by KGpg.
Definition: kgpgsettings.h:896
QLatin1String
keysmanager.h
QString::length
int length() const
QStringList::split
QStringList split(const QString &sep, const QString &str, bool allowEmptyEntries)
QString::left
QString left(int n) const
kgpgverify.h
KgpgSelectPublicKeyDlg::getSymmetric
bool getSymmetric() const
Definition: selectpublickeydialog.cpp:176
KGpgExternalActions::signFiles
static void signFiles(KeysManager *parent, const KUrl::List &urls)
create a detached signature for the given files
Definition: kgpgexternalactions.cpp:292
KGpgVerify::missingId
QString missingId() const
get the missing key id
Definition: kgpgverify.cpp:196
detailedconsole.h
kgpgtextinterface.h
KgpgSelectPublicKeyDlg::getUntrusted
bool getUntrusted() const
Definition: selectpublickeydialog.cpp:188
KGpgExternalActions::showDroppedFile
void showDroppedFile(const KUrl &file)
Definition: kgpgexternalactions.cpp:414
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QLabel
QObject::parent
QObject * parent() const
FolderCompressJob::start
virtual void start()
shows the progress indicator
Definition: foldercompressjob.cpp:67
KJob
KGpgEncrypt
encrypt the given text or files
Definition: kgpgencrypt.h:30
QProcess::start
void start(const QString &program, const QStringList &arguments, QFlags< QIODevice::OpenModeFlag > mode)
defaultKey
static QString defaultKey()
Definition: kgpgsettings_addons.h:23
KGpgEncrypt::DefaultEncryption
use whatever GnuPGs defaults are
Definition: kgpgencrypt.h:37
KGpgTextOrFileTransaction::getMessages
const QStringList & getMessages() const
get gpg info message
Definition: kgpgtextorfiletransaction.cpp:159
KGpgExternalActions::updateDefault
void updateDefault(QString)
KgpgInterface::getGpgSetting
QString getGpgSetting(const QString &name, const QString &configfile)
Definition: kgpginterface.cpp:38
KGpgTextInterface
Definition: kgpgtextinterface.h:24
KgpgSelectSecretKey
Definition: selectsecretkey.h:23
KGpgEncrypt::AllowUntrustedEncryption
allow encryption with untrusted keys, ignored for symmetric encryption
Definition: kgpgencrypt.h:39
KGpgSignText::DetachedSignature
save the signature in a separate file
Definition: kgpgsigntext.h:38
QProcess::waitForFinished
bool waitForFinished(int msecs)
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