# HG changeset patch # User Andre Heinecke # Date 1411660692 -7200 # Node ID 2a1aa9df8f11485ef7e042d1b616b1aa8fa49b0b # Parent 6d840341bc25b37e33cfa30f7d17f8b017ed34ca (issue133) Improve API documentation diff -r 6d840341bc25 -r 2a1aa9df8f11 cinst/nss-secitemlist.h --- a/cinst/nss-secitemlist.h Thu Sep 25 17:37:03 2014 +0200 +++ b/cinst/nss-secitemlist.h Thu Sep 25 17:58:12 2014 +0200 @@ -16,9 +16,14 @@ #include #include "strhelp.h" +/** + * @struct seciteml + * @brief simple linked list sturcture. */ struct seciteml { - SECItem *item; - struct seciteml *next; + /*@{*/ + SECItem *item;/**< Pointer to the held item*/ + struct seciteml *next;/**< Pointer to the next part of the list*/ + /*@}*/ }; /** diff -r 6d840341bc25 -r 2a1aa9df8f11 common/binverify.h --- a/common/binverify.h Thu Sep 25 17:37:03 2014 +0200 +++ b/common/binverify.h Thu Sep 25 17:58:12 2014 +0200 @@ -24,15 +24,21 @@ * @brief Result of a verification */ typedef enum { - VerifyValid = 100, /*! Could be read and signature matched */ - VerifyUnknownError = 1, /*! The expected unexpected */ - VerifyInvalidSignature = 4, /*! Signature was invalid */ - VerifyInvalidCertificate = 5, /*! Certificate mismatch */ - VerifyReadFailed = 6, /*! File exists but could not read the file */ + /*! Could be read and signature matched */ + VerifyValid = 100, + /*! The expected unexpected */ + VerifyUnknownError = 1, + /*! Signature was invalid */ + VerifyInvalidSignature = 4, + /*! Certificate mismatch */ + VerifyInvalidCertificate = 5, + /*! File exists but could not read the file */ + VerifyReadFailed = 6, } verify_result; /** - * A structure containing a verify_result and a reference to the + * @struct bin_verify_result + * @brief A structure containing a verify_result and a reference to the * verified file. */ typedef struct { diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/aboutdialog.h --- a/ui/aboutdialog.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/aboutdialog.h Thu Sep 25 17:58:12 2014 +0200 @@ -15,14 +15,20 @@ * @brief The dialog for information about the application. */ +/** @brief AboutDialog of the admin application + * + * This is a specialized QDialog for the About information + * of the administrator application. + */ class AboutDialog : public QDialog { Q_OBJECT public: - /** @brief Create a help dialog */ + /** @brief Create the about dialog */ AboutDialog(QMainWindow *parent); private: + /** @brief Create UI elements */ void setupGUI(); }; diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/administratorwindow.h --- a/ui/administratorwindow.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/administratorwindow.h Thu Sep 25 17:58:12 2014 +0200 @@ -25,6 +25,11 @@ class QMenu; class QAction; +/** @brief Main Window of the Administrator application + * + * The controlling class of the Admin application. Holds + * the certificate data and the settings of the application. + */ class AdministratorWindow : public QMainWindow { Q_OBJECT @@ -58,21 +63,50 @@ QList currentChanges(); private slots: + /** @brief Create the SW Packages for the target platforms. */ void createInstaller(); + /** @brief Shows the About dialog. */ void showAbout(); + /** @brief Opens the Help in a browser window. */ void showHelp(); + /** @brief Presents a Dialog to load a certificate list and handles the loading. */ void loadCertificateFile(); + /** @brief Save the current selection of certificates as a certificate list. */ void saveCertificateFile(); + /** @brief Add certificates to the certificate table. */ void addCertificates(); + /** @brief Remove certificates from the current certificate table. */ void removeCertificates(); + /** @brief Changes the state of a certificate when it was clicked. */ void clickedCertificate(const QModelIndex&); private: + /** @brief Setup UI Actions */ void createActions(); + /** @brief Setup UI Menu Bar */ void createMenuBar(); + /** @brief Create the UI elements of the Window */ void createContent(); + /** @brief Load a certificate list into the table view */ void loadCertificateTable(); + /** @brief Add a list of certificates to the table view + * + * @param[in] certs The certificates to add. + */ void addToCertificateTable(const QList &certs); + /** @brief write a log file for the list creation. + * + * This creates a log entry containing all pertinent information of a + * certificate list creation. It records changes + * made to the certificate list and notes down the current time and + * the key used to sign the certificate list. + * + * @param [in] list the certificate list that is about to be created and should + * be logged. + * @param [in] keyFingerprint the encoded fingerprint of the signing key used. + * + * @returns A byte array containing the log information in latin1 encoding. + */ QByteArray createLogEntries(const CertificateList &list, const QString &keyFingerprint); QSettings mSettings; diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificate.h --- a/ui/certificate.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificate.h Thu Sep 25 17:58:12 2014 +0200 @@ -23,16 +23,25 @@ #include #endif +/** @brief Object representation of a single certificate + * + * This parses a PEM (base64 encoded der certificate) and + * provides accessors to the parsed certificate information + * together with meta information about the certificate as + * it is used by the Application. + */ class Certificate { public: - /** @brief the Status compared to the last installed list. */ + /** + * @enum Status + * @brief the Status compared to the last installed list. */ enum Status { - InstallNew = 1, /* Never seen this before */ - InstallOld, /* Already contained in last list */ - RemoveNew, /* Was an Install certificate in the last list */ - RemoveOld /* Already removed in the last list */ + /*! Never seen this before */ InstallNew = 1, + /*! Already contained in last list */ InstallOld, + /*! Was an Install certificate in the last list */ RemoveNew, + /*! Already removed in the last list */ RemoveOld }; /** @brief construct a certificate from a line of a certificate list. @@ -90,8 +99,16 @@ **/ void setInstallCert(bool install); + /** @brief wether or not the certificate is editable. + * + * Editable means that the installation status can be changed. + * E.g. You can not change the state of a removal certificate + * that has been removed. + * + * @returns true if the certificate is editable */ bool isEditable() const {return mEditable;} + /** @brief setter for the editable property. */ void setEditable(bool edit) {mEditable = edit;} /** @brief get the subject OU from the certificate */ @@ -133,6 +150,14 @@ **/ static QList fromFileName (const QString& file_name); + /** @brief comparator of two certificates. + * + * Two certificates are equal if their base64 raw data is a match + * regardless of other meta information like state or wether or not + * it is editable. + * + * @returns true if the base64 line of two certificates is equal. + **/ friend inline bool operator==(const Certificate& lhs, const Certificate& rhs) { return lhs.base64Line() == rhs.base64Line(); } diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatediffdialog.h --- a/ui/certificatediffdialog.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificatediffdialog.h Thu Sep 25 17:58:12 2014 +0200 @@ -18,15 +18,27 @@ class AdministratorWindow; +/** @brief Specialized dialog for the differences in two certificate lists + * + * When certificates are added or removed from one list to the next + * this dialog is intended to show the differences between the old and + * the new list. + */ class CertificateDiffDialog : public QDialog { Q_OBJECT public: /** @brief Create a dialog showing the changes made in the certificate list. + * + * This class knows enough about the parent that it uses the parent's + * accessor functions to get at the information it should present. + * + * @param[in] parent A reference to the AdministratorWindow */ CertificateDiffDialog(AdministratorWindow *parent); private: + /** @brief Create the UI elements. */ void setupGUI(); AdministratorWindow *mAdminWindow; diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificateitemwidget.h --- a/ui/certificateitemwidget.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificateitemwidget.h Thu Sep 25 17:58:12 2014 +0200 @@ -18,15 +18,23 @@ #include "certificate.h" +/** @brief A tool button that always looks as if it were unchecked. */ class CheckLessToolBtn : public QToolButton { void paintEvent(QPaintEvent * pe); }; +/** @brief Item delegate drawing custom certificate items in list views.*/ class CertificateItemWidget : public QWidget { Q_OBJECT public: + /** @brief ctor of the widget + * + * @param [in] parent the parent of the widget + * @param [in] cert the certificate to hold. + * @param [in] state wether or not the action of the certificate should be done. + * @param [in] btn the button used to manage the state of the cert.*/ CertificateItemWidget( QWidget *parent = 0, const Certificate &cert = Certificate(), @@ -34,7 +42,19 @@ QToolButton * btn = NULL); bool state(); + /** @brief set the state of the certificate. + * + * A false state means that the certificate action (install or remove) + * should not be executed. + * + * @param [in] state the state of the certificate + **/ void setState(bool state); + + /** @brief Obtain a copy of the certificate that is shown in the widget. + * + * @returns A copy of the hold certificate. + **/ Certificate certificate(); private: diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatelist.h --- a/ui/certificatelist.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificatelist.h Thu Sep 25 17:58:12 2014 +0200 @@ -7,7 +7,18 @@ */ #ifndef CERTIFICATELIST_H #define CERTIFICATELIST_H -/** + +class QByteArray; + +#include +#include +#include + +#include "listutil.h" +#include "certificate.h" + +/** @brief Object representation of a certificate list + * * This class handles a certificate list file. * It checks for the validity of that certificate * list file and provides an API for working with that @@ -18,16 +29,6 @@ * could be parsed. * */ - -class QByteArray; - -#include -#include -#include - -#include "listutil.h" -#include "certificate.h" - class CertificateList { public: diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatelistwidget.h --- a/ui/certificatelistwidget.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificatelistwidget.h Thu Sep 25 17:58:12 2014 +0200 @@ -25,6 +25,10 @@ class QToolButton; Q_DECLARE_METATYPE(Certificate); +/** + * @brief Displays a list of certificates and a details panel for a selected + * certificate. + **/ class CertificateListWidget : public QWidget { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatetabledelegate.h --- a/ui/certificatetabledelegate.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificatetabledelegate.h Thu Sep 25 17:58:12 2014 +0200 @@ -15,6 +15,7 @@ #include + /** @brief Item delegate drawing custom certificate items in table views.*/ class CertificateTableDelegate : public QStyledItemDelegate { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/certificatetablemodel.h --- a/ui/certificatetablemodel.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/certificatetablemodel.h Thu Sep 25 17:58:12 2014 +0200 @@ -17,6 +17,7 @@ #include #include "certificate.h" + /** @brief Table model for certificates.*/ class CertificateTabelModel : public QAbstractTableModel { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/createcertlistdialog.h --- a/ui/createcertlistdialog.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/createcertlistdialog.h Thu Sep 25 17:58:12 2014 +0200 @@ -17,12 +17,13 @@ #include /** * @file createinstallerdialog.h - * @brief The dialog to show settings and create an installer. + * @brief The dialog to select the signing certificate and create a certificate list. */ class QListWidget; class AdministratorWindow; +/** @brief The dialog to select the signing certificate and create a certificate list.*/ class CreateCertListDialog : public QDialog { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/createinstallerdialog.h --- a/ui/createinstallerdialog.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/createinstallerdialog.h Thu Sep 25 17:58:12 2014 +0200 @@ -16,12 +16,13 @@ #include /** * @file createinstallerdialog.h - * @brief The dialog to show settings and create an installer. + * @brief The dialog to select the input and create an installer. */ class QListWidget; class QTemporaryDir; +/** @brief The dialog to select the input and create an installer. */ class CreateInstallerDialog : public QDialog { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/downloader.h --- a/ui/downloader.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/downloader.h Thu Sep 25 17:58:12 2014 +0200 @@ -20,6 +20,14 @@ #include "sslconnection.h" +/** @brief High level API to download necessary data. + * + * The downloader class is the UI interface to the Update server. + * It controls the SSL Connection and checks if updates are available + * and downloads them on demand. Each Downloader object is intended + * to be run only once and controlled mainly by the constructor of + * the object. + */ class Downloader: public QThread { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/helpdialog.h --- a/ui/helpdialog.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/helpdialog.h Thu Sep 25 17:58:12 2014 +0200 @@ -15,6 +15,7 @@ * @brief The dialog for help text. */ +/** @brief The dialog for help text. */ class HelpDialog : public QDialog { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/l10n/administrator_de_DE.ts --- a/ui/l10n/administrator_de_DE.ts Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/l10n/administrator_de_DE.ts Thu Sep 25 17:58:12 2014 +0200 @@ -25,13 +25,31 @@ - The software was developed by the companies <a href="http://www.intevation.de">Intevation GmbH</a> and <a href="http://www.dn-systems.de">DN-Systems GmbH</a>, <br> contracted by the German Federal Office for Information Security (BSI).<br/><br/> - Die Software wurde entwickelt von den Unternehmen <a href="http://www.intevation.net">Intevation GmbH</a> und <a href="http://www.dn-systems.com">DN-Systems GmbH</a>, <br> beauftragt durch das Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/> + The software was developed by the companies <a href="http://www.intevation.de">Intevation GmbH</a> and <a href="http://www.dn-systems.de">DN-Systems GmbH</a>, <br> contracted by the BSI.<br/><br/> + + TrustBridge is Free Software licensed under GNU GPL v==3.<br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik<br/><br/> + + + + + TrustBridge Administrator uses several Free Software components with different licenses: + + + + + You will find the legally binding details in the 'licenses' directory where TrustBridge is installed or in the corresponding revision of the<a href="https://wald.intevation.org/hg/trustbridge/file/tip/licenses">TrustBridge code repository</a>. + + + + The software was developed by the companies <a href="http://www.intevation.de">Intevation GmbH</a> and <a href="http://www.dn-systems.de">DN-Systems GmbH</a>, <br> contracted by the German Federal Office for Information Security (BSI).<br/><br/> + Die Software wurde entwickelt von den Unternehmen <a href="http://www.intevation.net">Intevation GmbH</a> und <a href="http://www.dn-systems.com">DN-Systems GmbH</a>, <br> beauftragt durch das Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/> + + TrustBridge is Free Software licensed under GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik - TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik (BSI) + TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik (BSI) TrustBridge is a secure root certificate installer for Windows and Linux. @@ -62,7 +80,7 @@ Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik (BSI) - + Close Schließen @@ -172,21 +190,21 @@ signing certificate: - Signaturzertifikat: + Signaturzertifikat: new certificates: - + Neues Zertifikat: certificates marked to remove: - Zertifikate zum Löschen markiert: + Zertifikate zum Löschen markiert: diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/l10n/trustbridge_de_DE.ts --- a/ui/l10n/trustbridge_de_DE.ts Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/l10n/trustbridge_de_DE.ts Thu Sep 25 17:58:12 2014 +0200 @@ -67,12 +67,12 @@ Entfernen - + Validity: %1 until %2 Gültigkeit: %1 bis %2 - + Fingerprint (SHA1): <code>%1</code> Fingerabdruck (SHA1): <code>%1</code> @@ -203,19 +203,19 @@ Neue Vorschläge für Wurzelzertifikate sind verfügbar. Klicken Sie hier zum Installieren. - - + + Check for Updates Neue Empfehlungen suchen - - + + Quit Beenden - + TrustBridge TrustBridge @@ -241,7 +241,7 @@ Empfehlungen - + Revoked certificates Abgeratene @@ -256,41 +256,41 @@ Aktualisierungen (%1/%2) - - + + Quit without saving Beenden ohne Schreiben - - + + Remove revoked certificates (%1/%2) Abgeratene Wurzelzertifikate entfernen (%1/%2) - + Trusted certificates Empfohlene Wurzelzertifikate - + The following list of trusted root certificates is managed by the BSI. The BSI validates independently the authenticity, security and actuality of these certificates. Die folgenden Wurzelzertifikate wurden bisher vom BSI zur Installation vorgeschlagen. Sie können erkennen, welche Sie bereits geschrieben haben. - + Please choose the certificates you want to trust or untrust. TrustBridge will install these certificates for your secure communication for email and internet. Legen Sie fest, ob Sie der Empfehlung ganz oder teilweise folgen möchten. TrustBridge wird die Änderungen an den Wurzelzertifikaten vornehmen. - + Trusted certificates Empfohlene Wurzelzertifikate - + Information and help Informationen @@ -317,27 +317,27 @@ Aktualisierungen einspielen - - + + Install new trusted certificates (%1/%2) Neue, empfohlene Wurzelzertifikate installieren (%1/%2) - - - - - + + + + + Show details Details einblenden - + Revoked certificates Abgeratene Wurzelzertifikate - + Certificates can be corrupted or stolen and misused in many ways. Therefore the BSI recommends to remove all revoked certificates from your system. Wurzelzertifikate können veraltet sein, korrumpiert, gestohlen oder missbraucht werden. Die Wurzelzertifikate , von denen das BSI abrät, sollten umgehend entfernt werden. @@ -350,7 +350,7 @@ Abweichend zu behandelnde Wurzelzertifikate (%1) - + Trust in your digital communication Vertrauen in Ihre digitale Kommunikation @@ -359,8 +359,8 @@ Änderungen - - + + Certificates unchanged Wurzelzertifikate unverändert @@ -377,80 +377,76 @@ Es wird empfohlen, die nachfolgenden Änderungen an Ihren Wurzelzertifikaten zu übernehmen. - + Apply changes Änderungen schreiben - + Version: Version: - + Show recommendations Empfehlungen anzeigen - - + + An updated certificate list is available. Neue Vorschläge für Wurzelzertifikate sind verfügbar. - + Click here to install. Klicken Sie hier zum Installieren. - - + + An update for %1 is available. Eine Aktualisierung für %1 ist verfügbar. - + Click here to download and install the update. Hier klicken, um Download und Installation zu starten. - Failed to create update process. - Fehler beim Starten des Installer-Prozesses. + Fehler beim Starten des Installer-Prozesses. - This could be caused by not enough disk space or invalid permissions. - Ursache dafür könnte nicht genügend Speicherplatz oder ungültige Berechtigungen sein. + Ursache dafür könnte nicht genügend Speicherplatz oder ungültige Berechtigungen sein. - + Downloading update... Software-Aktualisierung wird heruntergeladen... - + Failed to check for updates: Fehler bei Updateprüfung: - + You should apply the following, recommended changes to your certificate stores: Es wird empfohlen, die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vorzunehmen: - You can apply the following, changes to your certificate stores: - Sie können die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vornehmen: + Sie können die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vornehmen: - There are currently no changes for your certificate stores. - Es liegen keine neuen Empfehlungen vor. + Es liegen keine neuen Empfehlungen vor. - - + + Install certificates again Wurzelzertifikate erneut schreiben @@ -503,7 +499,7 @@ Letzte erfolgreiche Prüfung nach Aktualisierungen: %1 - + Sucessfully checked for updates. Suche nach neuen Empfehlungen erfolgreich. @@ -514,145 +510,239 @@ Hier klicken, um Download und Installation zu starten. - + TrustBridge is a root certificate installer for Windows and GNU/Linux.<br/> TrustBridge ist ein Wurzelzertifikatsinstaller für Windows und GNU/Linux.<br/> - + The root certificate lists are managed by the German <a href="https://www.bsi.bund.de">Federal Office for Information Security (BSI)</a>.<br/><br/> Die Wurzelzertifikate werden vom <a href="https://www.bsi.bund.de">Bundesamt für Sicherheit in der Informationstechnik (BSI)</a> vorgeschlagen.<br/><br/> - The software was developed by the companies <a href="http://www.intevation.de">Intevation GmbH</a> and <a href="http://www.dn-systems.de">DN-Systems GmbH</a>, <br> contracted by the German Federal Office for Information Security (BSI).<br/><br/> - Die Software wurde von den Unternehmen <a href="http://www.intevation.de">Intevation GmbH</a> und <a href="http://www.dn-systems.de">DN-Systems GmbH</a> entwickelt, <br> beauftragt vom Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/> + Die Software wurde von den Unternehmen <a href="http://www.intevation.de">Intevation GmbH</a> und <a href="http://www.dn-systems.de">DN-Systems GmbH</a> entwickelt, <br> beauftragt vom Bundesamt für Sicherheit in der Informationstechnik (BSI).<br/><br/> - TrustBridge is Free Software licensed under GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik - TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>(C) 2014. Die Rechte liegen beim Bundesamt für Sicherheit in der Informationstechnik. + TrustBridge ist Freie Software, lizensiert unter der GNU GPL v2+.<br/><br/>(C) 2014. Die Rechte liegen beim Bundesamt für Sicherheit in der Informationstechnik. - + + Failed to create temporary directory. + + + + + + Please ensure that you have the access rights to write in the temporary directory and that there is at least 20MB free disk space available. + + + + + Failed to create a temporary copy of the installer. + + + + + The software was developed by the companies <a href="http://www.intevation.de">Intevation GmbH</a> and <a href="http://www.dn-systems.de">DN-Systems GmbH</a>, <br> contracted by the BSI.<br/><br/> + + + + + TrustBridge is Free Software licensed under GNU GPL v>=3.<br/>Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik<br/><br/> + + + + + TrustBridge uses several Free Software components with different licenses: + + + + + Read more about the license information in the 'licenses' directory in the <a href="https://wald.intevation.org/hg/trustbridge/file/tip/licenses">TrustBridge code repository</a>. + + + + Show Help Hilfe anzeigen - + Proxy settings Proxy-Einstellungen - + Last update check: Letzte Suche: - + No connection with the updateserver. Keine Verbindung zum Updateserver. - + Update Aktualisieren - - - + + + Details Details - + The following unsecure certificates were revoked by the BSI. Already uninstalled certificates cannot be reinstalled. It is recommended that you select all certificates to uninstall if you still have revoked certificates installed. Von den folgenden, ehemals empfohlenen Wurzelzertifikaten, rät das BSI ab. Über diese Anwendung können sie auch nicht mehr installiert werden. Markieren Sie verbleibende Wurzelzertifikate zur Löschung, sobald Sie können. - + Version Version - + Pending changes Ausstehende Änderungen - + Manual changes (%1) Manuelle Änderungen (%1) - + Certificate list from: Zertifikatsliste vom: - + Currently installed certificate list: Aktuell installierte Zertifikatsliste: - + No certificate list installed. Keine Zertifikatsliste installiert. - - - + + + Certificate will be installed. Zertifikat wird installiert. - - + + Certifcate is not installed. Zertifikat ist nicht installiert. - - + + Certificate is installed. Zertifikat ist installiert. - - - - + + + + + Certificate will be removed. Zertifikat wird entfernt. - - + + Certificate has not been removed. Zertifikat wurde nicht entfernt. - - + + Certificate has been removed. Zertifikat wurde entfernt. - + Certificate will not be installed. Zertifikat wird nicht installiert. - + + Certificate will not be removed. Zertifikat wird nicht entfernt. + + Firefox and Thunderbird certificate installation. + + + + + Please close all running Firefox and Thunderbird instances before continuing with the installation. + + + + + Continue + + + + + Cancel + + + + + The integrity check for the available software update has failed repeatedly. + + + + + + + Please contact your Support or the publisher of the Software. + + + + + The integrity check of the available certificates has failed repeatedly. + + + + + The authentication of the download server has failed repeatedly. + + + + + + The connection to the download server has failed repeatedly. + + + + + Please check that the Proxy Server "%1" is available. + + + + + Please check your internet connection. + + + You should apply the following, recommended changes to your certificate stores. Es wird empfohlen, die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vorzunehmen. @@ -662,18 +752,18 @@ Sie können die nachfolgenden Änderungen an Ihren Zertifikatsspeichern vornehmen. - + Pending changes (%1) Ausstehende Änderungen (%1) - + New, recommended changes (%1/%2) Neue, empfohlene Änderungen (%1/%2) - + No new recommendations Keine neuen Empfehlungen @@ -694,37 +784,37 @@ Neue empfohlene Änderungen (%1) - + Error executing update Fehler bei der Aktualisierung - + Installation with standard user account Installation mit Standardbenutzerkonto - + Windows will now ask you to confirm each root certificate modification because TrustBridge does not have the necessary privileges to install root certificates into the Windows certificate store silently. Windows wird Sie nun bitten, jede Wurzelzertifikatsänderung zu bestätigen. Grund dafür: TrustBridge besitzt nicht die nötigen Privilegien, um Wurzelzertifikate ohne Nachfrage in den Windows-Zertifikatsspeicher zu installieren. - + Installing certificates... Wurzelzertifikate werden geändert... - + Error! Fehler! - + Failed to find the manual Fehler beim Finden des Handbuchs - + TrustBridge error TrustBridge Fehler @@ -797,28 +887,28 @@ Automatische Aktualisierungsprüfung von TrustBridge. - + TrustBridge-Updater Used as filename for the updater. Only use ASCII please. TrustBridge-Updater - + Hide details Details ausblenden - + Less Weniger - + Show details Details einblenden - + Details Details diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/mainwindow.h --- a/ui/mainwindow.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/mainwindow.h Thu Sep 25 17:58:12 2014 +0200 @@ -35,6 +35,13 @@ class QPushButton; +/** @brief Main UI controller + * + * The MainWindow controls the logic of the Application + * it is the central piece that controls the state and starts + * updates / certificate installation. + * It also controls the UI widgets for the various certificate lists. + */ class MainWindow : public QMainWindow { Q_OBJECT @@ -69,11 +76,16 @@ * @brief The internal state of the application */ enum CurrentState { - NewListAvailable, /*! A new certificate list is available. */ - NewSoftwareAvailable, /*! A new Software is avaialable. */ - DownloadingSW, /*! Download in progress. */ - TransferError, /*! An error happened on the last connection. */ - NothingChanged /*! Update was susccessfull but nothing new is available. */ + /*! A new certificate list is available. */ + NewListAvailable, + /*! A new Software is avaialable. */ + NewSoftwareAvailable, + /*! Download in progress. */ + DownloadingSW, + /*! An error happened on the last connection. */ + TransferError, + /*! Update was susccessfull but nothing new is available. */ + NothingChanged }; /** @@ -81,9 +93,13 @@ * @brief Errors that should be stored and only shown after some time has elapsed. */ enum LongTimeErrors { - lteInvalidSoftware, /*! The downloaded Software was invalid. */ - lteInvalidCertificate, /*! The SSL certificate of the download server was wrong. */ - lteInvalidList, /*! The downloaded Certificate List was invalid. */ + /*! The downloaded Software was invalid. */ + lteInvalidSoftware, + /*! The SSL certificate of the download server was wrong. */ + lteInvalidCertificate, + /*! The downloaded Certificate List was invalid. */ + lteInvalidList, + /*! No connection to the server could be established. */ lteNoConnection }; diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/processhelp.h --- a/ui/processhelp.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/processhelp.h Thu Sep 25 17:58:12 2014 +0200 @@ -15,12 +15,13 @@ #include /** - * @file processhelp.h + * @file processhelp.h * @brief Static helper functions for process handling */ +/** @brief Static helper functions for process handling */ +class ProcessHelp { -namespace ProcessHelp -{ +public: /** * @brief look up process id's for a processName * @@ -29,7 +30,7 @@ * @param[in] processName the name of the process to look for * @returns a list of pids that match this process. May be empty */ -const QList getProcessesIdForName(const QString &processName); +static const QList getProcessesIdForName(const QString &processName); /** * @brief check if another process with the same name exists @@ -41,18 +42,18 @@ * * @returns true if one or more processes (other than the current process) exist */ -bool otherProcessesExist(const QString &processName); +static bool otherProcessesExist(const QString &processName); /** * @brief Activates the window for first found process * @param [in] executableName executableName (without path and .exe extension) */ -void activateWindowForProcess(const QString &executableName); +static void activateWindowForProcess(const QString &executableName); /** * @brief Clean up internaly used infrastructure like pid/lock files. */ - void cleanUp(void); -} +static void cleanUp(void); +}; #endif // PROCESSHELP_H diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/processhelp_linux.cpp --- a/ui/processhelp_linux.cpp Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/processhelp_linux.cpp Thu Sep 25 17:58:12 2014 +0200 @@ -17,10 +17,7 @@ #include #include -namespace ProcessHelp -{ - int lockFileFD = -1; -} +int lockFileFD = -1; const QList ProcessHelp::getProcessesIdForName(const QString &processName) { // TODO (issue39) diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/processwaitdialog.h --- a/ui/processwaitdialog.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/processwaitdialog.h Thu Sep 25 17:58:12 2014 +0200 @@ -10,7 +10,7 @@ #include #include -/** +/** * @file processwaitdialog.h * @brief Dialog to show that some processes need to be closed * @@ -18,6 +18,11 @@ * need to be closed. */ +/** @brief Dialog to show that some processes need to be closed + * + * This dialog informs about processes that are still running and + * need to be closed. + */ class ProcessWaitDialog : public QDialog { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/proxysettingsdlg.h --- a/ui/proxysettingsdlg.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/proxysettingsdlg.h Thu Sep 25 17:58:12 2014 +0200 @@ -14,11 +14,12 @@ class QPushButton; class QCheckBox; -/** +/** * @file proxysettingsdlg.h - * @brief Small dialog for proxy settings. + * @brief Small dialog for proxy settings. */ +/** @brief Small dialog for proxy settings. */ class ProxySettingsDlg : public QDialog { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/separatoritemdelegate.h --- a/ui/separatoritemdelegate.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/separatoritemdelegate.h Thu Sep 25 17:58:12 2014 +0200 @@ -15,6 +15,9 @@ #include +/** + * @brief Item delegate drawing a separator in list widgets. + */ class SeparatorItemDelegate : public QStyledItemDelegate { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/sslconnection.h --- a/ui/sslconnection.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/sslconnection.h Thu Sep 25 17:58:12 2014 +0200 @@ -10,7 +10,7 @@ /** * @file sslconnection.h - * @brief Qt wrapper around polarssl ssl api + * @brief Controller of the downloader network connection */ #include @@ -18,18 +18,38 @@ #include #include +/** @brief Controller of the downloader network connection + * + * Base class of the SSL connection used. Offers a high + * level API that the downloader can use regardless of the + * concrete SSL implementation. + * + */ class SSLConnection { public: + /** + * @enum ErrorCode + * @brief Possible Errors of the SSL connection. + */ enum ErrorCode { + /*! Everything OK */ NoError, + /*! Failure before the SSL Handshake. Connection failure.*/ NoConnection, + /*! SSL Handshake failed. Probably unsupported ciphersuites.*/ SSLHandshakeFailed, + /*! The pinned certificate did not match with the server cert.*/ InvalidCertificate, + /*! The pinned certificate could not be parsed. Coding error!.*/ InvalidPinnedCertificate, + /*! The response from the server could not be parsed.*/ InvalidResponse, + /*! The connection was established but lost at one point.*/ ConnectionLost, + /*! A connection timeout was hit.*/ Timeout, + /*! The unexpected.*/ ErrUnknown }; @@ -44,7 +64,16 @@ virtual ~SSLConnection() {}; + /**@brief wether or not everything could be parsed and all options could be set. + * + * This should usually be true. Otherwise it is likely something wrong + * with the internal data or the used library versions. + * + * @returns false when some error occured during initalization. + **/ bool initialized() { return mInitialized; } + + /** @brief wether or not the connection has been established */ bool connected() { return mConnected; } ErrorCode getLastError() { return mErrorState; } diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/sslconnection_bare.h --- a/ui/sslconnection_bare.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/sslconnection_bare.h Thu Sep 25 17:58:12 2014 +0200 @@ -22,8 +22,12 @@ /** * @file sslconnection_bare.h * @brief SSLConnection doing bare SSL over PolarSSL - * */ - + */ + /** @brief SSLConnection implementation doing bare SSL over PolarSSL + * + * This class needs no additional libraries and parses the server responses + * directly using QT. + */ class SSLConnectionBare : public SSLConnection { public: diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/sslconnection_curl.h --- a/ui/sslconnection_curl.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/sslconnection_curl.h Thu Sep 25 17:58:12 2014 +0200 @@ -22,6 +22,12 @@ class QSaveFile; +/** @brief SSLConnection implementation using LibCURL +* +* This class uses a modified version of the curl library to +* speak the HTTP with the downloader server. Provides +* Proxy support. +*/ class SSLConnectionCurl : public SSLConnection { public: diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/taskscheduler.h --- a/ui/taskscheduler.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/taskscheduler.h Thu Sep 25 17:58:12 2014 +0200 @@ -25,6 +25,10 @@ //struct ITaskScheduler; +/** @brief Interface to the Task Scheduler API +* +* Provides a Qt / C++ API to work with the windows task scheduler. +*/ class TaskScheduler { public: diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/tests/fakeinstaller.c --- a/ui/tests/fakeinstaller.c Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/tests/fakeinstaller.c Thu Sep 25 17:58:12 2014 +0200 @@ -5,7 +5,9 @@ * and comes with ABSOLUTELY NO WARRANTY! * See LICENSE.txt for details. */ -/**@file dummy program to test installer execution */ +/** @file fakeinstaller.c + * @brief dummy program to test installer execution + */ #include #ifdef WIN32 diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/textoverlaybutton.h --- a/ui/textoverlaybutton.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/textoverlaybutton.h Thu Sep 25 17:58:12 2014 +0200 @@ -8,7 +8,7 @@ * See LICENSE.txt for details. */ -/** +/** * @file textoverlaybutton.h * @brief A tool button that overlays a text over the icon. */ @@ -19,6 +19,8 @@ class QPaintEvent; +/** @brief A tool button that overlays a text over the icon. + */ class TextOverlayButton : public QToolButton { Q_OBJECT diff -r 6d840341bc25 -r 2a1aa9df8f11 ui/trayicon.h --- a/ui/trayicon.h Thu Sep 25 17:37:03 2014 +0200 +++ b/ui/trayicon.h Thu Sep 25 17:58:12 2014 +0200 @@ -12,7 +12,9 @@ #include -/**@brief Notification interface. +class QMessageBox; + +/**@brief User notification interface * * This class provides an inherited implmentation of QSystemTrayIcon * to be more flexible on platforms where no SystemTray is available. @@ -20,9 +22,6 @@ * This class should become obsolete once Qt improves the support for * StatusNotifier icons that are used in Plasma 5 and Unity. */ - -class QMessageBox; - class TrayIcon : public QSystemTrayIcon { Q_OBJECT