• 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
kgpgsigntransactionhelper.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 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 #include "kgpgsigntransactionhelper.h"
15 
16 #include "kgpgtransaction.h"
17 #include "model/kgpgitemnode.h"
18 
19 KGpgSignTransactionHelper::KGpgSignTransactionHelper(const QString &signer, const bool local, const carefulCheck checking)
20  : m_node(NULL),
21  m_signer(signer),
22  m_local(local),
23  m_checking(checking),
24  m_signerPos(-1)
25 {
26 }
27 
28 KGpgSignTransactionHelper::~KGpgSignTransactionHelper()
29 {
30 }
31 
32 void
33 KGpgSignTransactionHelper::setKey(const KGpgKeyNode *node)
34 {
35  m_node = node;
36 }
37 
38 const KGpgKeyNode *
39 KGpgSignTransactionHelper::getKey(void) const
40 {
41  return m_node;
42 }
43 
44 KGpgSignTransactionHelper::lineParseResults
45 KGpgSignTransactionHelper::nextLine(const QString &line)
46 {
47  if (!line.startsWith(QLatin1String("[GNUPG:]"))) {
48  return notHandled;
49  }
50 
51  if (line.contains(QLatin1String( "ALREADY_SIGNED" ))) {
52  asTransaction()->setSuccess(TS_ALREADY_SIGNED);
53  return handledFalse;
54  } else if (line.contains(QLatin1String( "GOOD_PASSPHRASE" ))) {
55  asTransaction()->setSuccess(KGpgTransaction::TS_MSG_SEQUENCE);
56  return handledFalse;
57  } else if (line.contains(QLatin1String( "sign_uid.expire" ))) {
58  asTransaction()->write("Never");
59  return handledFalse;
60  } else if (line.contains(QLatin1String( "sign_uid.class" ))) {
61  asTransaction()->write(m_checking);
62  return handledFalse;
63  } else {
64  return notHandled;
65  }
66 }
67 
68 KGpgTransaction::ts_boolanswer
69 KGpgSignTransactionHelper::boolQuestion(const QString& line)
70 {
71  if (line == QLatin1String("sign_uid.okay")) {
72  return KGpgTransaction::BA_YES;
73  } else if (line == QLatin1String("keyedit.save.okay")) {
74  KGpgTransaction *ta = asTransaction();
75 
76  switch (ta->getSuccess()) {
77  case TS_ALREADY_SIGNED:
78  case KGpgTransaction::TS_USER_ABORTED:
79  break;
80  default:
81  asTransaction()->setSuccess(KGpgTransaction::TS_OK);
82  }
83 
84  return KGpgTransaction::BA_YES;
85  } else {
86  return KGpgTransaction::BA_UNKNOWN;
87  }
88 }
89 
90 void
91 KGpgSignTransactionHelper::setLocal(const bool local)
92 {
93  if (local == m_local)
94  return;
95 
96  m_local = local;
97  if (local)
98  replaceCmd(QLatin1String( "lsign" ));
99  else
100  replaceCmd(QLatin1String( "sign" ));
101 }
102 
103 bool
104 KGpgSignTransactionHelper::getLocal(void) const
105 {
106  return m_local;
107 }
108 
109 void
110 KGpgSignTransactionHelper::setChecking(const carefulCheck level)
111 {
112  m_checking = level;
113 }
114 
115 KGpgSignTransactionHelper::carefulCheck
116 KGpgSignTransactionHelper::getChecking(void) const
117 {
118  return m_checking;
119 }
120 
121 void
122 KGpgSignTransactionHelper::setSigner(const QString &signer)
123 {
124  m_signer = signer;
125  asTransaction()->replaceArgument(m_signerPos, signer);
126 }
127 
128 
129 QString
130 KGpgSignTransactionHelper::getSigner(void) const
131 {
132  return m_signer;
133 }
134 
135 void
136 KGpgSignTransactionHelper::setSecringFile(const QString &filename)
137 {
138  QStringList secringargs(QLatin1String( "--secret-keyring" ));
139  secringargs << filename;
140 
141  asTransaction()->insertArguments(1, secringargs);
142 }
143 
144 #include "kgpgsigntransactionhelper.moc"
KGpgSignTransactionHelper::~KGpgSignTransactionHelper
virtual ~KGpgSignTransactionHelper()
destructor
Definition: kgpgsigntransactionhelper.cpp:28
KGpgTransaction::getSuccess
int getSuccess() const
get the success value that will be returned with the done signal
Definition: kgpgtransaction.cpp:442
KGpgSignTransactionHelper::handledFalse
the line was parsed successfully and transaction can continue
Definition: kgpgsigntransactionhelper.h:33
KGpgTransaction::BA_YES
answer "YES"
Definition: kgpgtransaction.h:75
KGpgTransaction::TS_OK
everything went fine
Definition: kgpgtransaction.h:60
kgpgtransaction.h
KGpgTransaction::write
void write(const QByteArray &a, const bool lf=true)
write data to standard input of gpg process
Definition: kgpgtransaction.cpp:413
KGpgSignTransactionHelper::asTransaction
virtual KGpgTransaction * asTransaction()=0
returns the transaction object to use
KGpgSignTransactionHelper::setChecking
void setChecking(const carefulCheck level)
set the level how carefully the identity was checked
Definition: kgpgsigntransactionhelper.cpp:110
KGpgSignTransactionHelper::getChecking
carefulCheck getChecking(void) const
check if local signing is requested
Definition: kgpgsigntransactionhelper.cpp:116
KGpgSignTransactionHelper::getSigner
QString getSigner(void) const
get key id which is used to sign
Definition: kgpgsigntransactionhelper.cpp:130
KGpgTransaction::replaceArgument
void replaceArgument(const int pos, const QString &arg)
replace the argument at the given position
Definition: kgpgtransaction.cpp:582
kgpgsigntransactionhelper.h
KGpgSignTransactionHelper::getLocal
bool getLocal(void) const
check if local signing is requested
Definition: kgpgsigntransactionhelper.cpp:104
KGpgKeyNode
A public key with or without corresponding secret key.
Definition: KGpgKeyNode.h:33
KGpgSignTransactionHelper::setLocal
void setLocal(const bool local)
set if the signature should be local (not exportable)
Definition: kgpgsigntransactionhelper.cpp:91
KGpgTransaction::insertArguments
void insertArguments(const int pos, const QStringList &args)
insert arguments at the given position
Definition: kgpgtransaction.cpp:599
KGpgSignTransactionHelper::nextLine
lineParseResults nextLine(const QString &line)
handle signing commands from GnuPG
Definition: kgpgsigntransactionhelper.cpp:45
KGpgSignTransactionHelper::TS_ALREADY_SIGNED
user id is alredy signed by given key
Definition: kgpgsigntransactionhelper.h:46
QString::startsWith
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const
KGpgSignTransactionHelper::boolQuestion
KGpgTransaction::ts_boolanswer boolQuestion(const QString &line)
Definition: kgpgsigntransactionhelper.cpp:69
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
KGpgSignTransactionHelper::setKey
void setKey(const KGpgKeyNode *node)
set key node this transaction is using
Definition: kgpgsigntransactionhelper.cpp:33
KGpgSignTransactionHelper::replaceCmd
virtual void replaceCmd(const QString &cmd)=0
replaces the command passed to GnuPG
QStringList
KGpgTransaction::ts_boolanswer
ts_boolanswer
result codes for GnuPG boolean questions
Definition: kgpgtransaction.h:73
kgpgitemnode.h
QString::contains
bool contains(QChar ch, Qt::CaseSensitivity cs) const
KGpgSignTransactionHelper::getKey
const KGpgKeyNode * getKey(void) const
get the key node this transaction is using
Definition: kgpgsigntransactionhelper.cpp:39
KGpgTransaction::TS_USER_ABORTED
the user aborted the transaction
Definition: kgpgtransaction.h:63
KGpgSignTransactionHelper::m_signerPos
int m_signerPos
position of the signer argument in GnuPG command line
Definition: kgpgsigntransactionhelper.h:133
KGpgSignTransactionHelper::setSecringFile
void setSecringFile(const QString &filename)
add a secret keyring file
Definition: kgpgsigntransactionhelper.cpp:136
QLatin1String
KGpgTransaction::setSuccess
void setSuccess(const int v)
set the success value that will be returned with the done signal
Definition: kgpgtransaction.cpp:448
KGpgTransaction
Process one GnuPG operation.
Definition: kgpgtransaction.h:44
KGpgSignTransactionHelper::setSigner
void setSigner(const QString &signer)
set which private key is used to sign
Definition: kgpgsigntransactionhelper.cpp:122
KGpgSignTransactionHelper::carefulCheck
carefulCheck
Definition: kgpgsigntransactionhelper.h:38
KGpgSignTransactionHelper::notHandled
the line was not handled
Definition: kgpgsigntransactionhelper.h:35
KGpgSignTransactionHelper::lineParseResults
lineParseResults
the outcomes of nextLine()
Definition: kgpgsigntransactionhelper.h:32
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