• 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
kgpgsignuid.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2009,2012 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 "kgpgsignuid.h"
15 
16 #include "model/kgpgitemnode.h"
17 
18 KGpgSignUid::KGpgSignUid(QObject *parent, const QString &signer, const KGpgSignableNode *uid, const bool local, const carefulCheck checking)
19  : KGpgUidTransaction(parent),
20  KGpgSignTransactionHelper(signer, !local, checking)
21 {
22  insertArgument(1, QLatin1String( "-u" ));
23  insertArgument(2, signer);
24  m_signerPos = 2;
25  addArgumentRef(&m_signerPos);
26 
27  m_cmdPos = addArgument(QString());
28  addArgumentRef(&m_cmdPos);
29 
30  addArgument(QLatin1String("save"));
31 
32  setUid(uid);
33 
34  setLocal(local);
35 }
36 
37 KGpgSignUid::~KGpgSignUid()
38 {
39 }
40 
41 void
42 KGpgSignUid::setUid(const KGpgSignableNode *uid)
43 {
44  switch (uid->getType()) {
45  case ITYPE_PUBLIC:
46  case ITYPE_PAIR:
47  KGpgUidTransaction::setUid(1);
48  setKey(uid->toKeyNode());
49  break;
50  case ITYPE_UAT:
51  case ITYPE_UID:
52  KGpgUidTransaction::setUid(uid->getId());
53  setKey(uid->getParentKeyNode()->toKeyNode());
54  break;
55  default:
56  Q_ASSERT(0);
57  }
58 
59  setKeyId(getKey()->getId());
60 }
61 
62 bool
63 KGpgSignUid::nextLine(const QString &line)
64 {
65  switch (KGpgSignTransactionHelper::nextLine(line)) {
66  case KGpgSignTransactionHelper::handledFalse:
67  return false;
68  case KGpgSignTransactionHelper::handledTrue:
69  return true;
70  default:
71  Q_ASSERT(0);
72  case KGpgSignTransactionHelper::notHandled:
73  return standardCommands(line);
74  }
75 }
76 
77 KGpgTransaction::ts_boolanswer
78 KGpgSignUid::boolQuestion(const QString& line)
79 {
80  ts_boolanswer ret = KGpgSignTransactionHelper::boolQuestion(line);
81 
82  if (ret == BA_UNKNOWN)
83  ret = KGpgTransaction::boolQuestion(line);
84 
85  return ret;
86 }
87 
88 bool
89 KGpgSignUid::passphraseReceived()
90 {
91  setSuccess(KGpgTransaction::TS_OK);
92  return true;
93 }
94 
95 KGpgTransaction *
96 KGpgSignUid::asTransaction()
97 {
98  return this;
99 }
100 
101 void
102 KGpgSignUid::replaceCmd(const QString &cmd)
103 {
104  replaceArgument(m_cmdPos, cmd);
105 }
106 
107 #include "kgpgsignuid.moc"
KGpgSignTransactionHelper::handledFalse
the line was parsed successfully and transaction can continue
Definition: kgpgsigntransactionhelper.h:33
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
KGpgNode::getParentKeyNode
KGpgExpandableNode * getParentKeyNode() const
Returns the parent node in the key hierarchy.
Definition: KGpgNode.cpp:330
KGpgTransaction::TS_OK
everything went fine
Definition: kgpgtransaction.h:60
KGpgSignUid::~KGpgSignUid
virtual ~KGpgSignUid()
destructor
Definition: kgpgsignuid.cpp:37
KGpgSignUid::setUid
void setUid(const KGpgSignableNode *uid)
set node to sign
Definition: kgpgsignuid.cpp:42
KGpgTransaction::replaceArgument
void replaceArgument(const int pos, const QString &arg)
replace the argument at the given position
Definition: kgpgtransaction.cpp:582
KGpgSignTransactionHelper::setLocal
void setLocal(const bool local)
set if the signature should be local (not exportable)
Definition: kgpgsigntransactionhelper.cpp:91
KGpgNode::getType
virtual KgpgCore::KgpgItemType getType() const =0
Returns the item type of this object.
KGpgSignUid::nextLine
virtual bool nextLine(const QString &line)
Called for every line the gpg process writes.
Definition: kgpgsignuid.cpp:63
KGpgUidTransaction::setUid
void setUid(const QString &uid)
set the uid number of the transaction to the given value
Definition: kgpguidtransaction.cpp:80
KGpgSignTransactionHelper::nextLine
lineParseResults nextLine(const QString &line)
handle signing commands from GnuPG
Definition: kgpgsigntransactionhelper.cpp:45
KGpgTransaction::addArgumentRef
void addArgumentRef(int *ref)
make sure the reference to a specific argument is kept up to date
Definition: kgpgtransaction.cpp:617
QObject
KgpgCore::ITYPE_PUBLIC
public key
Definition: kgpgkey.h:93
KGpgTransaction::boolQuestion
virtual ts_boolanswer boolQuestion(const QString &line)
Called for every boolean question GnuPG answers.
Definition: kgpgtransaction.cpp:457
KGpgUidTransaction::setKeyId
void setKeyId(const QString &keyid)
set the key id of the transaction to the given value
Definition: kgpguidtransaction.cpp:66
KGpgSignTransactionHelper::boolQuestion
KGpgTransaction::ts_boolanswer boolQuestion(const QString &line)
Definition: kgpgsigntransactionhelper.cpp:69
QString
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
kgpgsignuid.h
KGpgTransaction::ts_boolanswer
ts_boolanswer
result codes for GnuPG boolean questions
Definition: kgpgtransaction.h:73
kgpgitemnode.h
KgpgCore::ITYPE_PAIR
key pair
Definition: kgpgkey.h:94
KGpgSignTransactionHelper::getKey
const KGpgKeyNode * getKey(void) const
get the key node this transaction is using
Definition: kgpgsigntransactionhelper.cpp:39
KGpgNode::toKeyNode
KGpgKeyNode * toKeyNode()
Definition: KGpgNode.cpp:94
KGpgSignTransactionHelper::m_signerPos
int m_signerPos
position of the signer argument in GnuPG command line
Definition: kgpgsigntransactionhelper.h:133
QLatin1String
KGpgTransaction::setSuccess
void setSuccess(const int v)
set the success value that will be returned with the done signal
Definition: kgpgtransaction.cpp:448
KGpgNode::getId
virtual QString getId() const
Definition: KGpgNode.cpp:318
KgpgCore::ITYPE_UAT
user attribute to a key (i.e. photo id)
Definition: kgpgkey.h:100
KGpgSignUid::passphraseReceived
virtual bool passphraseReceived()
called when GnuPG accepted the passphrase
Definition: kgpgsignuid.cpp:89
KGpgTransaction::insertArgument
void insertArgument(const int pos, const QString &arg)
insert an argument at the given position
Definition: kgpgtransaction.cpp:593
KGpgSignUid::asTransaction
virtual KGpgTransaction * asTransaction()
returns the transaction object to use
Definition: kgpgsignuid.cpp:96
KGpgSignTransactionHelper::handledTrue
the line was parsed successfully and the transaction shoult be shut down
Definition: kgpgsigntransactionhelper.h:34
KGpgUidTransaction::standardCommands
bool standardCommands(const QString &line)
handle common GnuPG messages for uid transactions
Definition: kgpguidtransaction.cpp:45
KGpgTransaction
Process one GnuPG operation.
Definition: kgpgtransaction.h:44
KGpgSignUid::boolQuestion
virtual ts_boolanswer boolQuestion(const QString &line)
Called for every boolean question GnuPG answers.
Definition: kgpgsignuid.cpp:78
KGpgSignUid::replaceCmd
virtual void replaceCmd(const QString &cmd)
replaces the command passed to GnuPG
Definition: kgpgsignuid.cpp:102
KgpgCore::ITYPE_UID
additional user id
Definition: kgpgkey.h:99
KGpgSignTransactionHelper::carefulCheck
carefulCheck
Definition: kgpgsigntransactionhelper.h:38
KGpgSignTransactionHelper::notHandled
the line was not handled
Definition: kgpgsigntransactionhelper.h:35
KGpgSignableNode
An object that may have KGpgSignNode children.
Definition: KGpgSignableNode.h:31
KGpgUidTransaction
base class for transactions involving only one user id of a key
Definition: kgpguidtransaction.h:25
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