• 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
  • core
kgpgkey.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006,2007 Jimmy Gilles <jimmygilles@gmail.com>
3  * Copyright (C) 2007,2008,2009,2010,2012,2013,2014 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 "kgpgkey.h"
16 
17 #include "convert.h"
18 
19 #include <KLocale>
20 
21 #include <QStringList>
22 
23 namespace KgpgCore
24 {
25 
26 //BEGIN KeySub
27 KgpgKeySubPrivate::KgpgKeySubPrivate(const QString &id, const uint size, const KgpgKeyTrust trust, const KgpgKeyAlgo algo,
28  const KgpgSubKeyType type, const QDateTime &date)
29  : gpgsubvalid(false),
30  gpgsubid(id),
31  gpgsubsize(size),
32  gpgsubcreation(date),
33  gpgsubtrust(trust),
34  gpgsubalgo(algo),
35  gpgsubtype(type)
36 {
37 }
38 
39 bool KgpgKeySubPrivate::operator==(const KgpgKeySubPrivate &other) const
40 {
41  if (gpgsubvalid != other.gpgsubvalid) return false;
42  if (gpgsubalgo != other.gpgsubalgo) return false;
43  if (gpgsubid != other.gpgsubid) return false;
44  if (gpgsubsize != other.gpgsubsize) return false;
45  if (gpgsubexpiration != other.gpgsubexpiration) return false;
46  if (gpgsubcreation != other.gpgsubcreation) return false;
47  if (gpgsubtrust != other.gpgsubtrust) return false;
48  if (gpgsubtype != other.gpgsubtype) return false;
49  return true;
50 }
51 
52 KgpgKeySub::KgpgKeySub(const QString &id, const uint size, const KgpgKeyTrust trust, const KgpgKeyAlgo algo, const KgpgSubKeyType type,
53  const QDateTime &date)
54  : d(new KgpgKeySubPrivate(id, size, trust, algo, type, date))
55 {
56 }
57 
58 KgpgKeySub::KgpgKeySub(const KgpgKeySub &other)
59 {
60  d = other.d;
61 }
62 
63 void KgpgKeySub::setExpiration(const QDateTime &date)
64 {
65  d->gpgsubexpiration = date;
66 }
67 
68 void KgpgKeySub::setValid(const bool valid)
69 {
70  d->gpgsubvalid = valid;
71 }
72 
73 QString KgpgKeySub::id() const
74 {
75  return d->gpgsubid;
76 }
77 
78 uint KgpgKeySub::size() const
79 {
80  return d->gpgsubsize;
81 }
82 
83 bool KgpgKeySub::unlimited() const
84 {
85  return d->gpgsubexpiration.isNull();
86 }
87 
88 QDateTime KgpgKeySub::expirationDate() const
89 {
90  return d->gpgsubexpiration;
91 }
92 
93 QDateTime KgpgKeySub::creationDate() const
94 {
95  return d->gpgsubcreation;
96 }
97 
98 KgpgKeyTrust KgpgKeySub::trust() const
99 {
100  return d->gpgsubtrust;
101 }
102 
103 KgpgKeyAlgo KgpgKeySub::algorithm() const
104 {
105  return d->gpgsubalgo;
106 }
107 
108 bool KgpgKeySub::valid() const
109 {
110  return d->gpgsubvalid;
111 }
112 
113 KgpgSubKeyType KgpgKeySub::type() const
114 {
115  return d->gpgsubtype;
116 }
117 
118 bool KgpgKeySub::operator==(const KgpgKeySub &other) const
119 {
120  if (d == other.d) return true;
121  if ((*d) == (*(other.d))) return true;
122  return false;
123 }
124 
125 KgpgKeySub& KgpgKeySub::operator=(const KgpgKeySub &other)
126 {
127  d = other.d;
128  return *this;
129 }
130 
131 //END KeySub
132 
133 
134 //BEGIN Key
135 
136 KgpgKeyPrivate::KgpgKeyPrivate(const QString &id, const uint size, const KgpgKeyTrust trust, const KgpgKeyAlgo algo, const KgpgSubKeyType subtype,
137  const KgpgSubKeyType keytype, const QDateTime &creationDate)
138  : gpgkeysecret(false),
139  gpgkeyvalid(false),
140  gpgkeyid(id),
141  gpgkeysize(size),
142  gpgkeytrust(trust),
143  gpgkeycreation(creationDate),
144  gpgkeyalgo(algo),
145  gpgsubtype(subtype),
146  gpgkeytype(keytype),
147  gpgsublist(new KgpgKeySubList())
148 {
149 }
150 
151 bool KgpgKeyPrivate::operator==(const KgpgKeyPrivate &other) const
152 {
153  if (gpgkeysecret != other.gpgkeysecret) return false;
154  if (gpgkeyvalid != other.gpgkeyvalid) return false;
155  if (gpgkeymail != other.gpgkeymail) return false;
156  if (gpgkeyname != other.gpgkeyname) return false;
157  if (gpgkeycomment != other.gpgkeycomment) return false;
158  if (gpgkeyfingerprint != other.gpgkeyfingerprint) return false;
159  if (gpgkeyid != other.gpgkeyid) return false;
160  if (gpgkeysize != other.gpgkeysize) return false;
161  if (gpgkeyownertrust != other.gpgkeyownertrust) return false;
162  if (gpgkeytrust != other.gpgkeytrust) return false;
163  if (gpgkeycreation != other.gpgkeycreation) return false;
164  if (gpgkeyexpiration != other.gpgkeyexpiration) return false;
165  if (gpgkeyalgo != other.gpgkeyalgo) return false;
166  if (gpgsubtype != other.gpgsubtype) return false;
167  if (gpgkeytype != other.gpgkeytype) return false;
168  if (gpgsublist != other.gpgsublist) return false;
169  return true;
170 }
171 
172 KgpgKey::KgpgKey(const QString &id, const uint size, const KgpgKeyTrust trust, const KgpgKeyAlgo algo, const KgpgSubKeyType subtype,
173  const KgpgSubKeyType keytype, const QDateTime &creationDate)
174  : d(new KgpgKeyPrivate(id, size, trust, algo, subtype, keytype, creationDate))
175 {
176 }
177 
178 KgpgKey::KgpgKey(const KgpgKey &other)
179 {
180  d = other.d;
181 }
182 
183 void KgpgKey::setSecret(const bool secret)
184 {
185  d->gpgkeysecret = secret;
186 }
187 
188 void KgpgKey::setValid(const bool valid)
189 {
190  d->gpgkeyvalid = valid;
191 }
192 
193 void KgpgKey::setName(const QString &name)
194 {
195  d->gpgkeyname = name;
196 }
197 
198 void KgpgKey::setEmail(const QString &email)
199 {
200  d->gpgkeymail = email;
201 }
202 
203 void KgpgKey::setComment(const QString &comment)
204 {
205  d->gpgkeycomment = comment;
206 }
207 
208 void KgpgKey::setFingerprint(const QString &fingerprint)
209 {
210  d->gpgkeyfingerprint = fingerprint;
211 }
212 
213 void KgpgKey::setOwnerTrust(const gpgme_validity_t owtrust)
214 {
215  d->gpgkeyownertrust = owtrust;
216 }
217 
218 void KgpgKey::setExpiration(const QDateTime &date)
219 {
220  d->gpgkeyexpiration = date;
221 }
222 
223 bool KgpgKey::secret() const
224 {
225  return d->gpgkeysecret;
226 }
227 
228 bool KgpgKey::valid() const
229 {
230  return d->gpgkeyvalid;
231 }
232 
233 QString KgpgKey::id() const
234 {
235  return d->gpgkeyid.right(8);
236 }
237 
238 QString KgpgKey::fullId() const
239 {
240  return d->gpgkeyid;
241 }
242 
243 QString KgpgKey::name() const
244 {
245  return d->gpgkeyname;
246 }
247 
248 QString KgpgKey::email() const
249 {
250  return d->gpgkeymail;
251 }
252 
253 QString KgpgKey::comment() const
254 {
255  return d->gpgkeycomment;
256 }
257 
258 const QString &KgpgKey::fingerprint() const
259 {
260  return d->gpgkeyfingerprint;
261 }
262 
263 uint KgpgKey::size() const
264 {
265  return d->gpgkeysize;
266 }
267 
268 uint KgpgKey::encryptionSize() const
269 {
270  const KgpgKeySub *enc = NULL;
271  // Get the first encryption subkey
272  for (int i = 0; i < d->gpgsublist->count(); ++i) {
273  const KgpgKeySub &temp = d->gpgsublist->at(i);
274  if (temp.type() & SKT_ENCRYPTION) {
275  // if the first encryption subkey is expired
276  // check if there is one that is not
277  if (temp.trust() > TRUST_EXPIRED)
278  return temp.size();
279  if (enc == NULL)
280  enc = &temp;
281  }
282  }
283  if (enc != NULL)
284  return enc->size();
285  return 0;
286 }
287 
288 gpgme_validity_t KgpgKey::ownerTrust() const
289 {
290  return d->gpgkeyownertrust;
291 }
292 
293 KgpgKeyTrust KgpgKey::trust() const
294 {
295  return d->gpgkeytrust;
296 }
297 
298 QDateTime KgpgKey::creationDate() const
299 {
300  return d->gpgkeycreation;
301 }
302 
303 QDateTime KgpgKey::expirationDate() const
304 {
305  return d->gpgkeyexpiration;
306 }
307 
308 bool KgpgKey::unlimited() const
309 {
310  return d->gpgkeyexpiration.isNull();
311 }
312 
313 KgpgKeyAlgo KgpgKey::algorithm() const
314 {
315  return d->gpgkeyalgo;
316 }
317 
318 KgpgKeyAlgo KgpgKey::encryptionAlgorithm() const
319 {
320  // Get the first encryption subkey
321  for (int i = 0; i < d->gpgsublist->count(); ++i) {
322  KgpgKeySub temp = d->gpgsublist->at(i);
323  if (temp.type() & SKT_ENCRYPTION) {
324  return temp.algorithm();
325  }
326  }
327  return ALGO_UNKNOWN;
328 }
329 
330 KgpgSubKeyType KgpgKey::subtype() const
331 {
332  return d->gpgsubtype;
333 }
334 
335 KgpgSubKeyType KgpgKey::keytype() const
336 {
337  return d->gpgkeytype;
338 }
339 
340 KgpgKeySubListPtr KgpgKey::subList() const
341 {
342  return d->gpgsublist;
343 }
344 
345 bool KgpgKey::operator==(const KgpgKey &other) const
346 {
347  if (d == other.d) return true;
348  if ((*d) == (*(other.d))) return true;
349  return false;
350 }
351 
352 KgpgKey& KgpgKey::operator=(const KgpgKey &other)
353 {
354  d = other.d;
355  return *this;
356 }
357 
358 KgpgKeyList::operator QStringList() const
359 {
360  QStringList res;
361  foreach(const KgpgKey &key, *this)
362  res << key.fullId();
363  return res;
364 }
365 
366 //END Key
367 
368 } // namespace KgpgCore
KgpgCore::KgpgKey::setName
void setName(const QString &name)
Definition: kgpgkey.cpp:193
KgpgCore::KgpgKeySub::setExpiration
void setExpiration(const QDateTime &date)
Definition: kgpgkey.cpp:63
KgpgCore::KgpgKey::ownerTrust
gpgme_validity_t ownerTrust() const
Definition: kgpgkey.cpp:288
KgpgCore::KgpgKeyPrivate::gpgkeyfingerprint
QString gpgkeyfingerprint
Definition: kgpgkey.h:218
KgpgCore::KgpgKeySubPrivate::gpgsubexpiration
QDateTime gpgsubexpiration
Definition: kgpgkey.h:121
KgpgCore::KgpgKeySubPrivate::gpgsubvalid
bool gpgsubvalid
Definition: kgpgkey.h:118
KgpgCore::SKT_ENCRYPTION
Definition: kgpgkey.h:72
KgpgCore::KgpgKey::setFingerprint
void setFingerprint(const QString &fingerprint)
Definition: kgpgkey.cpp:208
KgpgCore::KgpgKeySub::operator=
KgpgKeySub & operator=(const KgpgKeySub &other)
Definition: kgpgkey.cpp:125
KgpgCore::KgpgKeyPrivate::gpgsublist
KgpgKeySubListPtr gpgsublist
Definition: kgpgkey.h:229
KgpgCore::KgpgKeyPrivate::operator==
bool operator==(const KgpgKeyPrivate &other) const
Definition: kgpgkey.cpp:151
KgpgCore::KgpgKey::size
uint size() const
Definition: kgpgkey.cpp:263
KgpgCore::KgpgKeySubPrivate::operator==
bool operator==(const KgpgKeySubPrivate &other) const
Definition: kgpgkey.cpp:39
KgpgCore::KgpgKey::creationDate
QDateTime creationDate() const
Definition: kgpgkey.cpp:298
KgpgCore::KgpgKey::algorithm
KgpgKeyAlgo algorithm() const
Definition: kgpgkey.cpp:313
KgpgCore::KgpgKey::keytype
KgpgSubKeyType keytype() const
Definition: kgpgkey.cpp:335
QPointer
KgpgCore::KgpgKey::subtype
KgpgSubKeyType subtype() const
Definition: kgpgkey.cpp:330
KgpgCore::KgpgKey::setEmail
void setEmail(const QString &email)
Definition: kgpgkey.cpp:198
KgpgCore::KgpgKey::setValid
void setValid(const bool valid)
Definition: kgpgkey.cpp:188
KgpgCore::KgpgKeyPrivate::gpgkeyvalid
bool gpgkeyvalid
Definition: kgpgkey.h:214
KgpgCore::KgpgKeyPrivate::gpgkeyexpiration
QDateTime gpgkeyexpiration
Definition: kgpgkey.h:224
kgpgkey.h
KgpgCore::KgpgKey
Definition: kgpgkey.h:236
KgpgCore::KgpgKeySub::expirationDate
QDateTime expirationDate() const
Definition: kgpgkey.cpp:88
KgpgCore::KgpgKey::id
QString id() const
Definition: kgpgkey.cpp:233
KgpgCore::KgpgKey::fullId
QString fullId() const
Definition: kgpgkey.cpp:238
KgpgCore::KgpgKey::setComment
void setComment(const QString &comment)
Definition: kgpgkey.cpp:203
KgpgCore::KgpgKeySubList
Definition: kgpgkey.h:162
KgpgCore::KgpgKey::fingerprint
const QString & fingerprint() const
Definition: kgpgkey.cpp:258
KgpgCore::KgpgKey::name
QString name() const
Definition: kgpgkey.cpp:243
KgpgCore::KgpgKeySubPrivate
Definition: kgpgkey.h:111
KgpgCore::KgpgKey::operator=
KgpgKey & operator=(const KgpgKey &other)
Definition: kgpgkey.cpp:352
KgpgCore::KgpgKey::setExpiration
void setExpiration(const QDateTime &date)
Definition: kgpgkey.cpp:218
KgpgCore::KgpgKeyPrivate::gpgkeytype
const KgpgSubKeyType gpgkeytype
Definition: kgpgkey.h:227
KgpgCore::KgpgKeySub
Definition: kgpgkey.h:132
KgpgCore::KgpgKey::operator==
bool operator==(const KgpgKey &other) const
Definition: kgpgkey.cpp:345
KgpgCore::KgpgKeySub::type
KgpgSubKeyType type() const
Definition: kgpgkey.cpp:113
KgpgCore::KgpgKey::encryptionSize
uint encryptionSize() const
Definition: kgpgkey.cpp:268
KgpgCore::KgpgKeyPrivate::gpgkeytrust
const KgpgKeyTrust gpgkeytrust
Definition: kgpgkey.h:222
KgpgCore::KgpgKey::email
QString email() const
Definition: kgpgkey.cpp:248
KgpgCore::KgpgKey::setOwnerTrust
void setOwnerTrust(const gpgme_validity_t owtrust)
Definition: kgpgkey.cpp:213
KgpgCore::KgpgKey::comment
QString comment() const
Definition: kgpgkey.cpp:253
KgpgCore::ALGO_UNKNOWN
Definition: kgpgkey.h:35
KgpgCore::KgpgKeyPrivate::gpgkeysize
const uint gpgkeysize
Definition: kgpgkey.h:220
KgpgCore::KgpgKeySubPrivate::gpgsubtype
const KgpgSubKeyType gpgsubtype
Definition: kgpgkey.h:125
QString
KgpgCore::KgpgKeyPrivate::gpgkeyid
const QString gpgkeyid
Definition: kgpgkey.h:219
KgpgCore::KgpgKeySub::algorithm
KgpgKeyAlgo algorithm() const
Definition: kgpgkey.cpp:103
QStringList
KgpgCore::KgpgKeyPrivate::gpgkeycreation
const QDateTime gpgkeycreation
Definition: kgpgkey.h:223
KgpgCore::TRUST_EXPIRED
key is beyond it's expiry date
Definition: kgpgkey.h:58
KgpgCore::KgpgKey::trust
KgpgKeyTrust trust() const
Definition: kgpgkey.cpp:293
KgpgCore::KgpgKeySub::size
uint size() const
Definition: kgpgkey.cpp:78
KgpgCore::KgpgKeySub::setValid
void setValid(const bool valid)
Definition: kgpgkey.cpp:68
KgpgCore::KgpgKeyPrivate::gpgkeymail
QString gpgkeymail
Definition: kgpgkey.h:215
KgpgCore::KgpgKeySub::unlimited
bool unlimited() const
Definition: kgpgkey.cpp:83
KgpgCore::KgpgKeySub::trust
KgpgKeyTrust trust() const
Definition: kgpgkey.cpp:98
KgpgCore::KgpgKeySubPrivate::gpgsubalgo
const KgpgKeyAlgo gpgsubalgo
Definition: kgpgkey.h:124
KgpgCore::KgpgKeyPrivate::gpgkeyownertrust
gpgme_validity_t gpgkeyownertrust
Definition: kgpgkey.h:221
KgpgCore::KgpgKeyPrivate
Definition: kgpgkey.h:196
KgpgCore::KgpgKeySub::operator==
bool operator==(const KgpgKeySub &other) const
Definition: kgpgkey.cpp:118
KgpgCore::KgpgKeySubPrivate::gpgsubsize
const uint gpgsubsize
Definition: kgpgkey.h:120
KgpgCore::KgpgKeyPrivate::gpgkeyname
QString gpgkeyname
Definition: kgpgkey.h:216
KgpgCore::KgpgKeySub::valid
bool valid() const
Definition: kgpgkey.cpp:108
KgpgCore::KgpgKeyPrivate::gpgkeycomment
QString gpgkeycomment
Definition: kgpgkey.h:217
KgpgCore::KgpgKey::secret
bool secret() const
Definition: kgpgkey.cpp:223
KgpgCore::KgpgKeySubPrivate::gpgsubtrust
const KgpgKeyTrust gpgsubtrust
Definition: kgpgkey.h:123
KgpgCore::KgpgKeyPrivate::gpgkeyalgo
const KgpgKeyAlgo gpgkeyalgo
Definition: kgpgkey.h:225
KgpgCore::KgpgKeySub::creationDate
QDateTime creationDate() const
Definition: kgpgkey.cpp:93
KgpgCore::KgpgKey::valid
bool valid() const
Definition: kgpgkey.cpp:228
KgpgCore::KgpgKey::unlimited
bool unlimited() const
Definition: kgpgkey.cpp:308
KgpgCore::KgpgKeySubPrivate::gpgsubid
const QString gpgsubid
Definition: kgpgkey.h:119
KgpgCore::KgpgKeySubPrivate::gpgsubcreation
const QDateTime gpgsubcreation
Definition: kgpgkey.h:122
KgpgCore::KgpgKeySub::id
QString id() const
Definition: kgpgkey.cpp:73
KgpgCore::KgpgKeyPrivate::gpgsubtype
const KgpgSubKeyType gpgsubtype
Definition: kgpgkey.h:226
KgpgCore::KgpgKey::encryptionAlgorithm
KgpgKeyAlgo encryptionAlgorithm() const
Definition: kgpgkey.cpp:318
KgpgCore::KgpgKey::KgpgKey
KgpgKey(const QString &id, const uint size, const KgpgCore::KgpgKeyTrust trust, const KgpgCore::KgpgKeyAlgo algo, const KgpgCore::KgpgSubKeyType subtype, const KgpgCore::KgpgSubKeyType keytype, const QDateTime &creationDate)
constructor
convert.h
KgpgCore::KgpgKey::setSecret
void setSecret(const bool secret)
Definition: kgpgkey.cpp:183
KgpgCore::KgpgKeyPrivate::gpgkeysecret
bool gpgkeysecret
Definition: kgpgkey.h:213
QDateTime
KgpgCore::KgpgKey::expirationDate
QDateTime expirationDate() const
Definition: kgpgkey.cpp:303
KgpgCore::KgpgKey::subList
KgpgKeySubListPtr subList() const
Definition: kgpgkey.cpp:340
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