Mercurial > trustbridge
annotate ui/certificatelist.h @ 856:797aa8d9c785
(issue48) Fallback to HKEY_USERS on hive load failure
If the hive can not be loaded it might mean that the user
is currently logged on. In that case we can access his
registry via HKEY_USERS.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 31 Jul 2014 12:56:26 +0200 |
parents | 4204ae2753d9 |
children | f89b41fa7048 |
rev | line source |
---|---|
404 | 1 /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU GPL (v>=2) | |
5 * and comes with ABSOLUTELY NO WARRANTY! | |
6 * See LICENSE.txt for details. | |
7 */ | |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
8 #ifndef CERTIFICATELIST_H |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
9 #define CERTIFICATELIST_H |
4
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 /** |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 * This class handles a certificate list file. |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 * It checks for the validity of that certificate |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 * list file and provides an API for working with that |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 * file. |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 * |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 * The List is parsed on Initialization. You should |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 * check the Status afterwards to see if the file |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 * could be parsed. |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 * |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 */ |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 class QByteArray; |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 #include <QString> |
9
2ad9a96518e3
Actually parse all elements in the list
Andre Heinecke <aheinecke@intevation.de>
parents:
7
diff
changeset
|
25 #include <QDateTime> |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
26 #include <QObject> |
4
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 |
254
cb8d7af5ec3a
Include commmon in UI build to avoid having paths in include directives
Andre Heinecke <aheinecke@intevation.de>
parents:
249
diff
changeset
|
28 #include "listutil.h" |
21
dc1e1e9e62ce
Add certificate class and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
18
diff
changeset
|
29 #include "certificate.h" |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
30 |
70
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
31 class CertificateList |
4
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 { |
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 public: |
70
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
34 CertificateList(); |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
35 CertificateList(const char *fileName); |
4
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
37 list_status_t getStatus() {return mStatus;} |
25
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
38 |
70
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
39 /** @brief Read a list |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
40 * |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
41 * @param[in] fileName the filename of the list to read |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
42 * |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
43 * @return status of the read. Vaild on success. |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
44 */ |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
45 list_status_t readList(const char *fileName); |
64c8c6350e60
Add default constructor to certificatelist. Remove Q_OBJECT use
Andre Heinecke <aheinecke@intevation.de>
parents:
26
diff
changeset
|
46 |
25
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
47 /** @brief Returns true if the list is Valid |
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
48 * |
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
49 * A list is valid only if the signature matched and the |
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
50 * list could be parsed. |
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
51 */ |
26
cbd57d767dfa
Move layout around. Restructure CMakeLists
Andre Heinecke <andre.heinecke@intevation.de>
parents:
25
diff
changeset
|
52 bool isValid() const {return mStatus == Valid;} |
25
92108a2120f1
Move certificatelist to common. Add cinst directory
Andre Heinecke <aheinecke@intevation.de>
parents:
21
diff
changeset
|
53 |
249
6a7eb102716d
Remove code duplication by unifying the certificatelist.
Andre Heinecke <aheinecke@intevation.de>
parents:
203
diff
changeset
|
54 /* @brief get a list of certificate objects in this list */ |
6a7eb102716d
Remove code duplication by unifying the certificatelist.
Andre Heinecke <aheinecke@intevation.de>
parents:
203
diff
changeset
|
55 const QList<Certificate>& getCertificates() const; |
4
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 |
84
00a93409e93e
Keep raw data around to later pass it to the installer
Andre Heinecke <aheinecke@intevation.de>
parents:
79
diff
changeset
|
57 /* @brief get the raw certificate list */ |
00a93409e93e
Keep raw data around to later pass it to the installer
Andre Heinecke <aheinecke@intevation.de>
parents:
79
diff
changeset
|
58 const QString& rawData() const {return mData;} |
00a93409e93e
Keep raw data around to later pass it to the installer
Andre Heinecke <aheinecke@intevation.de>
parents:
79
diff
changeset
|
59 |
255
c82dab1824be
Expose the filename in certificatelist
Andre Heinecke <aheinecke@intevation.de>
parents:
254
diff
changeset
|
60 /* @brief get the absolute filename of the certificate */ |
c82dab1824be
Expose the filename in certificatelist
Andre Heinecke <aheinecke@intevation.de>
parents:
254
diff
changeset
|
61 const QString& fileName() const {return mFileName;} |
c82dab1824be
Expose the filename in certificatelist
Andre Heinecke <aheinecke@intevation.de>
parents:
254
diff
changeset
|
62 |
455
4204ae2753d9
Added getter for certificate list date.
Raimund Renkert <rrenkert@intevation.de>
parents:
404
diff
changeset
|
63 /* @brief get the list date. */ |
4204ae2753d9
Added getter for certificate list date.
Raimund Renkert <rrenkert@intevation.de>
parents:
404
diff
changeset
|
64 const QDateTime& date() const {return mDate;} |
4204ae2753d9
Added getter for certificate list date.
Raimund Renkert <rrenkert@intevation.de>
parents:
404
diff
changeset
|
65 |
4
9849250f50f2
Start implementation of certificatelist parser
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 private: |
249
6a7eb102716d
Remove code duplication by unifying the certificatelist.
Andre Heinecke <aheinecke@intevation.de>
parents:
203
diff
changeset
|
67 QList<Certificate> mCertificates; |
84
00a93409e93e
Keep raw data around to later pass it to the installer
Andre Heinecke <aheinecke@intevation.de>
parents:
79
diff
changeset
|
68 QString mData; |
249
6a7eb102716d
Remove code duplication by unifying the certificatelist.
Andre Heinecke <aheinecke@intevation.de>
parents:
203
diff
changeset
|
69 QString mFileName; |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
70 list_status_t mStatus; |
9
2ad9a96518e3
Actually parse all elements in the list
Andre Heinecke <aheinecke@intevation.de>
parents:
7
diff
changeset
|
71 QDateTime mDate; |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
72 }; |
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
4
diff
changeset
|
73 #endif |