# HG changeset patch # User Sascha Wilde # Date 1404812182 -7200 # Node ID 406bf18ee6337d80e0fcff0d5079f72373a58728 # Parent 9f0ad4bab175525283ce5a47963e855747a83479# Parent b39f369523fb91eb5e223723cd45262f007c4d5f Merged diff -r 9f0ad4bab175 -r 406bf18ee633 CMakeLists.txt --- a/CMakeLists.txt Tue Jul 08 10:52:53 2014 +0200 +++ b/CMakeLists.txt Tue Jul 08 11:36:22 2014 +0200 @@ -117,7 +117,8 @@ get_filename_component(NSS_BASE_DIR ${NSS_BASE_DIR} PATH) set(NSS_BASE_DIR "${NSS_BASE_DIR}/..") -configure_file (packaging/tmp-createpackage.sh.in packaging/tmp-createpackage.sh) +configure_file (packaging/tmp-createpackage.sh.in packaging/tmp-createpackage.sh @ONLY) +configure_file (packaging/create-dist-package.sh.in packaging/create-dist-package.sh @ONLY) configure_file (packaging/linux-createpackage.sh.in packaging/linux-createpackage.sh @ONLY) configure_file (packaging/linux-installer.inc.in packaging/linux-installer.inc @ONLY) diff -r 9f0ad4bab175 -r 406bf18ee633 common/pubkey-test.h --- a/common/pubkey-test.h Tue Jul 08 10:52:53 2014 +0200 +++ b/common/pubkey-test.h Tue Jul 08 11:36:22 2014 +0200 @@ -27,39 +27,36 @@ /* Key used for codesigning */ static const unsigned char public_key_codesign_pem[] = "-----BEGIN CERTIFICATE-----\n" -"MIIFqTCCA5GgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs\n" +"MIIFKTCCAxGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs\n" "aWMgVHJ1c3RCcmlkZ2UgVGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBu\n" "b3QgdHJ1c3QgdGhpczELMAkGA1UEBhMCREUwHhcNMTMwMTAxMDAwMDAwWhcNMTUx\n" "MjMxMjM1OTU5WjBlMSwwKgYDVQQDEyNQdWJsaWMgVHJ1c3RCcmlkZ2UgY29kZXNp\n" "Z25pbmcgdGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBub3QgdHJ1c3Qg\n" -"dGhpczELMAkGA1UEBhMCREUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\n" -"AQDIz9IetAtdqJJ7aSfJcLmA9Mb4nxrqEJ5E6PMejDJZmmHNjyhCVp1qsLYmyC60\n" -"m7qJ4OBENx0v2n5LiCUHJpJ4mzAklkWn1GffUkzWgQ2VHw5Nr44NWEwkUUa5/jT7\n" -"Sxts2DWuaLz2r7oi6BUQpoRmQRPwwzFPONcCSw9iAvTU6oVI2jW1opEW3t10UwY3\n" -"5/muryPsUz6y5VkBIc73VC0wByXoAruEPBBpMgOVw1+npOaJ1PL1XXQ/P6xziZo0\n" -"Ab/tKvN6IpEHrNEGv1gScJt//pKKklvIyXm9UdIY9XpB6aauzthKpTFJXGYySlXx\n" -"bD1a5sq0i2sAK/p8RvErVWg3EfBlUrQryJxONPVqribczZIWcgKVEFfXjX1tQqiC\n" -"qRCgO4M6zhNIKLkAicp0DvYs8M4hIoPng98nqK6kSpfXR6Y4b9DU3yEktH7wGrwL\n" -"jKATVM2l2yTF17Pjxkr2tH0XWrChfS+oV6Qzm9JQ/vmLKz5piLKpt5SXuZny+j0Y\n" -"68ch709sVTuuPm4RAm5c5t0SCwEippClFpkZynYRsJVrjG9ZTrdvULxZao8GBzJx\n" -"Lb+tCaKP60BRoUuRfwGMKZbU6j6ujOCy5bZIoJaKgHgyAHXRuS4PIjY9K2BGM5vI\n" -"seA2GEdAJNmZPAQJE5rxkrsAH9n8QtmHucEqzCZVFcLuCwIDAQABo3AwbjAJBgNV\n" -"HRMEAjAAMB0GA1UdDgQWBBSMgUaKY3L65wH5M4il/gbHCeVm4TAfBgNVHSMEGDAW\n" -"gBTl/kZGRoa0cm82zW7CPn3yqk4MeTAOBgNVHQ8BAQEEBAMCAYAwEQYJYIZIAYb4\n" -"QgEBBAQDAgAQMA0GCSqGSIb3DQEBBQUAA4ICAQAdmpf8k+ZKuhDvNwMCrf1JIZh3\n" -"uJxlCHFke/ypsMT2E6p/GZpD/lLyRHbk7V5aEYdmBaK6Dem0KYhRuDclWscpQdXl\n" -"96wx1IDNueMkj5ZDmpBLFl/nqxlM9HfHo8YTE9dRgzJAR8+dFR8HyRSayKo+pz4L\n" -"FkNFT5Jtm9kKLIN+mSGKMBmpY4owfpeh7K6YyASoOHL9Zk8A0I7iZX8FB5KujrlG\n" -"WJahjSAyvLvy98XDCf9/SyX73F1ol5ycAb/du+G5VZFDEI8sv/7fIdTx/AUR30Ac\n" -"f3tqXZ4HwxWc0gofT0J2z/I4FZ/sT/1SNHReGNrG9GNn5bxjwpSXfc5A1bjhRfxd\n" -"x73xKEInjpgo6AXY7wfNk1V+2z7keVOpaDEZUOsd/x/C+L8FsUh2JJHZp/hKX6Co\n" -"AD///pxqNfvH5pPLUINC7VRUOTynUas7p9UvkPeJjqnWY6pmjeb4Fs6Z6vn0+Opy\n" -"HP1MjLL41a+U9VxuNb6SfRDoeT19pqK6ovT2gbc61OvTI0lE97ChC622rjnV0c/N\n" -"QYqkeTQG/IjPk0QFrYQxMqq6QKgds2nheYd4LyLGhk72pKWr28Hfj1ElcoTFFbWP\n" -"ndI+uZePkkCsVYNMXbIAIpqLb++1ftl+L+itqxTyq+0tPObIL3WG9rzBGz8X6WT0\n" -"KIzi4KAn66e5/iWZng==\n" +"dGhpczELMAkGA1UEBhMCREUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n" +"gQDtK3Ow4W0t9UbfrLB/nlQy2X9ejc8McCw2C0vwq1eFs+d8zv7nhzCaFiBN88C/\n" +"eYL6wQoIFPjGPqASuQknBaUCM1XCzVu86jiluVCeN4MYbl1nr6f8rDHiK0iJL4mu\n" +"ROQ+FhsRsiKpRPhR8/sp5INlgqC2XBUrQ5zde6Yh3gRajjESRdcfOWIaO4vBXIo8\n" +"onQ2wBar8b3LWdvhFXqgrYaqcHX6SCn5xaoYn7xb7Gq7lD3LeSQlbgZtUv6mv+H9\n" +"LlLgC52Sr9R5JfvomQC6R6l+mXKWrtlxYo3VndQ/Sn603IOXOV6aAswfXDoD3iOM\n" +"4BbPYHv0EGQBXRtH+bzqgdUfMZkQU7lIgOIDskmeZo2ovYfpkUTyujsLPOVcHEx8\n" +"9MtGiZmzprYuiGXDtJ2sam9KHK4+Mastk4L4k+Qz1wbHMj49VW4Q9iXDgWOkKiFH\n" +"+PmmYdEm0UZ8BdheQ9UxIajVt9eOxWg3v5ak0o4LdZf0lAH7H6yOIO8AZEaJ/8Nz\n" +"wNsCAwEAAaNwMG4wCQYDVR0TBAIwADAdBgNVHQ4EFgQUCsyNwGUNmueV2MfSimlR\n" +"OGBI66kwHwYDVR0jBBgwFoAU5f5GRkaGtHJvNs1uwj598qpODHkwDgYDVR0PAQEB\n" +"BAQDAgGAMBEGCWCGSAGG+EIBAQQEAwIAEDANBgkqhkiG9w0BAQUFAAOCAgEAmhpe\n" +"dcdqXCwdhNy2sPUxsBGxvU5qdyxgVoTSpaISr1RIZrTTKISWcfTjs2r9/fyjAIER\n" +"tXbHYy9pbEG6ILejVRq05dmBMoLD5zrSyEo6C54K045Lwz7rXndw9xJnkv5eT2B+\n" +"YWta2h+pwWG1yqaxVDFOUhsTTIR0yBlA2SADXDQejbdSk9n1EoDqCFV5Wn41kP8c\n" +"AujPCoVgXBhsIKzfKpOFBLYOXVSL5WtoHZ/hFH1e3qF4P/SyHhnKU5OQ2bqO0Pf7\n" +"VACBnqYVCiGvzjOqwIkllSdv5vds++XkaSDPTIsrPdFH7BD1Jowd0e7UQ+ItLA8A\n" +"G5iuO0pcRYSCvRA9tc1uTfws0WwHom4nhPsO46KNms+8g+/NOFjEMOYw15cFHk+U\n" +"UKKWtIadGp6IHz712xpP5wr2dtkiGvkJVIm44edrNJMH0HHFlVpt7xuMhALuzTK0\n" +"uwagUu9+KVU/EWzDF1BkVyZ72d36oUxrt0mK0GuUe89RSwK87kutS0+ophmiBX+x\n" +"QMNSVIGr8MdXoGx52zo70qfZcjr/4sjL5YSrecYr2i3Rt5cU3y6xIgTXSPD9+cOm\n" +"9M/8Xck6vDKTAy0LE+TFXLCEusKSSZ6JgcC9ItihcxsCEUvUbifbYdEvgIIJhmFj\n" +"Y8w7FNHYMiaw2xII1Fcrv7nmO+tysu+GhJ04oj4=\n" "-----END CERTIFICATE-----\n"; -static const size_t public_key_codesign_pem_size = 2025; +static const size_t public_key_codesign_pem_size = 1850; #endif diff -r 9f0ad4bab175 -r 406bf18ee633 packaging/create-dist-package.sh.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/packaging/create-dist-package.sh.in Tue Jul 08 11:36:22 2014 +0200 @@ -0,0 +1,34 @@ +#!/bin/bash +# Helper script to package the files expected by the -admin application +# Windows build is expected to live in CMAKE_SOURCE_DIR/build-windows +set -x +set -e + +if [ ! -d "$WINDOWS_NSSDIR" ]; then + echo "ERROR: Please set WINDOWS_NSSDIR to the location of your nss binaries" + exit 1 +fi + +TMPD=$(mktemp -d) +TMPDIR=$TMPD/TrustBridge-@PROJECT_VERSION@ +cd @CMAKE_BINARY_DIR@ +/bin/bash packaging/linux-createpackage.sh +mkdir -p $TMPDIR/linux +mkdir -p $TMPDIR/windows +cp @CMAKE_BINARY_DIR@/TrustBridge-@PROJECT_VERSION@.sh $TMPDIR/linux +cp @CMAKE_SOURCE_DIR@/build-windows/ui/trustbridge.exe $TMPDIR/windows +cp @CMAKE_SOURCE_DIR@/build-windows/cinst/cinst.exe $TMPDIR/windows +cp @CMAKE_SOURCE_DIR@/build-windows/cinst/mozilla.exe $TMPDIR/windows +cp @CMAKE_SOURCE_DIR@/packaging/filelist.nsh $TMPDIR +cp @CMAKE_SOURCE_DIR@/packaging/trustbridge.nsi $TMPDIR +cp -r @CMAKE_SOURCE_DIR@/packaging/resources $TMPDIR/resources +LC_ALL="de_DE.latin-1" echo "company=Bundesamt für Sicherheit in der Informationstechnik" > $TMPDIR/meta.ini +echo "version_number=@PROJECT_VERSION@" >> $TMPDIR/meta.ini +echo "setupname=%1TrustBridge-@PROJECT_VERSION@.exe" >> $TMPDIR/meta.ini +echo "productname=TrustBridge" >> $TMPDIR/meta.ini +cp $WINDOWS_NSSDIR/*.dll $TMPDIR/windows +cd $TMPD +zip -r TrustBridge-@PROJECT_VERSION@.zip TrustBridge-@PROJECT_VERSION@ +mv TrustBridge-@PROJECT_VERSION@.zip @CMAKE_BINARY_DIR@ +rm -r $TMPD +echo "Package is: @CMAKE_BINARY_DIR@/TrustBridge-@PROJECT_VERSION@.zip" diff -r 9f0ad4bab175 -r 406bf18ee633 packaging/tmp-createpackage.sh --- a/packaging/tmp-createpackage.sh Tue Jul 08 10:52:53 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -# Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik -# Software engineering by Intevation GmbH -# -# This file is Free Software under the GNU GPL (v>=2) -# and comes with ABSOLUTELY NO WARRANTY! -# See LICENSE.txt for details. - -#!/bin/bash - -#NSSDIR is hackish as this will be replaced by static compiling -# anyway - -NSSDIR="/home/andre/ubuntu/src/mxe/usr/i686-w64-mingw32.static/nss-3.12.7/bin/" -MYPATH=$(dirname `readlink -f $0`) - -TMPDIR=$(mktemp -d) - -EXEFILES=$(find . -name cinst.exe -o -name trustbridge.exe -o -name mozilla.exe) - -cp $NSSDIR/*.dll $TMPDIR -cp $EXEFILES $TMPDIR - -echo $TMPDIR -makensis -Dfiles_dir=$TMPDIR \ - -Dcompany="Bundesamt für Sicherheit in der Informationstechnik" \ - -Dversion_number=0.0.0.1 \ - -Dsetupname="TrustBridge.exe" \ - -Dproductname="TrustBridge" \ - -Dproductname_short="TrustBridge" $MYPATH/trustbridge.nsi -rm -r $TMPDIR diff -r 9f0ad4bab175 -r 406bf18ee633 ui/certificatelistwidget.cpp --- a/ui/certificatelistwidget.cpp Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/certificatelistwidget.cpp Tue Jul 08 11:36:22 2014 +0200 @@ -43,7 +43,7 @@ for (int i = 0; i < mCertificateWidgets.size(); i++) { if (mCertificateWidgets[i]->certificate() == cert) { mLayout.removeWidget(mCertificateWidgets[i]); - delete(mCertificateWidgets[i]); + mCertificateWidgets[i]->deleteLater(); mCertificateWidgets.removeAt(i); break; } diff -r 9f0ad4bab175 -r 406bf18ee633 ui/createinstallerdialog.cpp --- a/ui/createinstallerdialog.cpp Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/createinstallerdialog.cpp Tue Jul 08 11:36:22 2014 +0200 @@ -6,6 +6,8 @@ * See LICENSE.txt for details. */ #include "createinstallerdialog.h" +#include "sslhelp.h" + #include #include #include @@ -15,12 +17,15 @@ #include #include #include +#include #include #include #include #include #include +#include + /* Static information used in codesigning */ #ifndef SIGN_HASH #define SIGN_HASH "sha256" @@ -32,7 +37,6 @@ #define SIGN_PUBLISHER "TrustBridge Test with ümlaut" #endif - CreateInstallerDialog::CreateInstallerDialog(QMainWindow *parent) : QDialog(parent), mProgress(this), @@ -228,11 +232,46 @@ .arg(binDir.path())); return; } + /* Sign the linux installer */ + QDir linuxDir(binDir.path() + "/linux"); + if (!linuxDir.exists()) { + showErrorMessage(tr("Failed to find the directory for linux binaries: %s") + .arg(linuxDir.path())); + return; + } + QStringList nameFilter; + nameFilter << "*.sh"; + QStringList candidates = linuxDir.entryList(nameFilter, QDir::Files | QDir::Readable); + if (candidates.isEmpty()) { + showErrorMessage(tr("Failed to find a readable *.sh file in: %s") + .arg(linuxDir.path())); + return; + } + if (candidates.size() > 1) { + showErrorMessage(tr("Unexpected additional .sh files in: %s") + .arg(linuxDir.path())); + return; + } + mProgress.setLabelText(tr("Signing Linux package...")); + mProgress.cancel(); - QTemporaryDir *signedFilesDir = codesignBinaries(binDir.path() + "/windows"); + QString outFileName = options.value("setupname", "TrustBridge-default.exe" + ).toString().replace(".exe", ".sh").arg(QString()); - if (!signedFilesDir) { + if (!appendTextSignatureToFile(linuxDir.path() + "/" + candidates.first(), + outDir.path() + "/" + outFileName)) { + qDebug() << "Failed to sign linux package."; + mProgress.close(); + return; + } + + /* The Windows installer */ + + mCurrentWorkingDir = codesignBinaries(binDir.path() + "/windows"); + + if (!mCurrentWorkingDir) { /* Error messages should have been shown by the codesign function */ + mProgress.close(); return; } @@ -244,7 +283,7 @@ mNSISProc.setProcessChannelMode(QProcess::MergedChannels); mNSISProc.setWorkingDirectory(outDir.path()); #ifdef Q_OS_WIN - arguments << QString::fromLatin1("/Dfiles_dir=") + signedFilesDir->path().replace("/", "\\"); + arguments << QString::fromLatin1("/Dfiles_dir=") + mCurrentWorkingDir->path().replace("/", "\\"); arguments << "/Dpath_sep=\\"; foreach (const QString &key, keys) { QString value = options.value(key, QString()).toString(); @@ -255,7 +294,7 @@ arguments << QString::fromLatin1("/D%1=%2").arg(key, value); } #else - arguments << QString::fromLatin1("-Dfiles_dir=") + signedFilesDir->path(); + arguments << QString::fromLatin1("-Dfiles_dir=") + mCurrentWorkingDir->path(); arguments << "-Dpath_sep=/"; foreach (const QString &key, keys) { QString value = options.value(key, QString()).toString(); @@ -360,6 +399,64 @@ return target; } +bool CreateInstallerDialog::appendTextSignatureToFile(const QString& input, + const QString& output) { + QFile inFile(input); + pk_context pk; + + pk_init(&pk); + int ret = pk_parse_keyfile(&pk, mCertFile->text().toLocal8Bit().constData(), ""); + + if (ret != 0) { + showErrorMessage(tr("Failed to load certificate: %1") + .arg(getPolarSSLErrorMsg(ret))); + pk_free(&pk); + return false; + } + + /* Check that it is a 3072 bit RSA key as specified */ + if (!pk.pk_info || pk_get_size(&pk) != 3072 || + pk.pk_info->type != POLARSSL_PK_RSA) { + qDebug() << pk.pk_info->type << "type"; + qDebug() << POLARSSL_PK_RSA << "rsa"; + qDebug() << "size " << pk_get_size(&pk); + showErrorMessage(tr("Only 3072 bit RSA keys are supported by the current format.")); + pk_free(&pk); + return false; + } + + if (!inFile.open(QIODevice::ReadOnly)) { + showErrorMessage(tr("Failed to open input file: %1").arg(inFile.fileName())); + pk_free(&pk); + return false; + } + + const QByteArray inputContent = inFile.readAll(); // Memory is cheap :) + inFile.close(); + + if (inputContent.isEmpty()) { + showErrorMessage(tr("Failed to read input file: %1").arg(inFile.fileName())); + pk_free(&pk); + return false; + } + + const QByteArray signature = rsaSignSHA256Hash(sha256sum(inputContent), &pk); + + pk_free(&pk); + if (signature.size() != 3072 / 8) { + qDebug() << "Signature creation returned signature of invalid size."; + return false; + } + + QSaveFile outFile(output); + outFile.open(QIODevice::WriteOnly); + outFile.write(inputContent); + outFile.write("\r\nS:"); + outFile.write(signature.toBase64()); + + return outFile.commit(); +} + FinishedDialog::FinishedDialog(QDialog *parent, QString msg, QString details, bool isErr): QDialog(parent) diff -r 9f0ad4bab175 -r 406bf18ee633 ui/createinstallerdialog.h --- a/ui/createinstallerdialog.h Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/createinstallerdialog.h Tue Jul 08 11:36:22 2014 +0200 @@ -91,6 +91,19 @@ */ bool signFile(QString filePath); + /**@brief Append a base64 encoded sha256 RSA signature to a file. + * + * The format of the added signature line will be: + * S:\r\n + * For the signature the key in mCertFile is used. + * + * @param[in] input The absolute path of the file to sign + * @param[out] output The absolute path of the file to write + * + * @returns true on success, false on failure + */ + bool appendTextSignatureToFile(const QString& input, const QString& output); + /* Slots for the creator process */ void processError(QProcess::ProcessError error); void processFinished(int exitCode, QProcess::ExitStatus exitStatus); diff -r 9f0ad4bab175 -r 406bf18ee633 ui/l10n/administrator_de_DE.ts --- a/ui/l10n/administrator_de_DE.ts Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/l10n/administrator_de_DE.ts Tue Jul 08 11:36:22 2014 +0200 @@ -415,8 +415,8 @@ CreateInstallerDialog - - + + Create binary installer Installationspaket erstellen @@ -433,114 +433,134 @@ Code Signing Zertifikat auswählen (privater Schlüssel): - + Create and sign a TrustBridge binary installer. Erzeugt und signiert ein TrustBridge-Installationspaket. - + Select binary folder: Binärverzeichnis auswählen: - + Select code signing certificate: Code-Signing-Zertifikat auswählen: - + Select output folder: Ausgabeverzeichnis auswählen: - + Create installer Installationspaket erzeugen - + Cancel Abbrechen - + Creating installer package... Installationspaket wird erstellt... - + Select certificate Zertifikat auswählen - + Select binary folder Binärverzeichnis auswählen - + Error! Fehler! - + Created installer in %1. Installationspaket erstellt in %1. - + Signing installer package... Installationspaket signieren... - + Failed to sign installer package. Fehler beim Signieren des Installationspakets. - + Please select an existing input folder. Bitte wählen Sie ein existierendes Eingabeverzeichnis. - + Please select a codesigning certificate. Bitte wählen Sie ein Code-Signing-Zertifikat. - + Please select a output folder. Bitte wählen Sie ein Ausgabeverzeichnis. - + Folder %1 does not appear to contain a meta.ini Das Verzeichnis %1 enthält keine meta.ini Datei - + + Failed to find the directory for linux binaries: %s + + + + + Failed to find a readable *.sh file in: %s + + + + + Unexpected additional .sh files in: %s + + + + + Signing Linux package... + + + + Creating NSIS package... NSIS-Paket wird erstellt... - + Failed to start makensis. Please ensure that makensis is installed and in your PATH variable. Fehler beim Starten von makensis. Bitte versichern Sie sich, dass makensis korrekt installiert und in der PATH-Variable enthalten ist. - + Signing binaries... Binärpakete werden signiert... - + Failed to copy binaries to temporary location. Fehler beim Kopieren der Binärdaten in temporären Ort. - + Failed to sign binaries with osslsigncode. Please check that %1 is a valid code signing certificate and thatosslsigncode can be found in the PATH. TODO: missing blank in EN string @@ -548,11 +568,31 @@ Bitte prüfen Sie, dass %1 ein gültiges Code-Signing-Zertifikat ist und osslsigncode im PATH gefunden wird. + + Failed to load certificate: %1 + Fehler beim laden des Schlüssels: %1 + + + + Only 3072 bit RSA keys are supported by the current format. + Nur 3027 bit RSA Schlüssel werden vom aktuellen Format unterstützt. + + + + Failed to open input file: %1 + + + + + Failed to read input file: %1 + + + Select source archive Archiv auswählen - + Select target location Zielort auswählen @@ -560,22 +600,26 @@ FinishedDialog - Success! - Erfolgreich! + Erfolgreich! - + + Successfully created installation package + + + + Error! Fehler! - + Details Details - + OK OK diff -r 9f0ad4bab175 -r 406bf18ee633 ui/l10n/trustbridge_de_DE.ts --- a/ui/l10n/trustbridge_de_DE.ts Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/l10n/trustbridge_de_DE.ts Tue Jul 08 11:36:22 2014 +0200 @@ -174,7 +174,7 @@ - + Quit Beenden @@ -185,12 +185,32 @@ TrustBridge - + + Installed certificates from: + + + + + TrustBridge Version: + + + + + Last sucessful update check: + + + + + Last successful update check: + + + + Updates Aktualisierungen - + Revoked certificates Zurückgezogene @@ -205,41 +225,41 @@ Aktualisierungen (%1/%2) - - + + Quit without saving Beenden ohne Speichern - - + + Remove revoked certificates (%1/%2) Zurückgezogene Zertifikate löschen (%1/%2) - + Trusted certificates Vertrauenswürdige Zertifikate - + 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 folgende Liste von Wurzelzertifikaten wird durch das BSI betreut. Das BSI überprüft dabei unabhängig die Echtheit, Sicherheit und Aktualität der Zertifikate. - + 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, welchen Zertifikaten Sie vertrauen wollen. TrustBridge wird diese Zertifikate dann für Ihre sichere Kommunikation via E-Mail und Internet installieren. - + Trusted certificates Vertrauenswürdige Zertifikate - + Information and help Informationen @@ -258,7 +278,7 @@ Sie sollten die folgenden Änderungen an Ihren Wurzelzertifikaten übernehmen: - + Check for updates Nach Aktualisierungen suchen @@ -267,49 +287,49 @@ Aktualisierungen einspielen - - + + Install new trusted certificates (%1/%2) Neue, vertrauenswürdige Zertifikate installieren (%1/%2) - - - - - - - - - + + + + + + + + + Show details Details einblenden - + Revoked certificates Zurückgezogene Zertifikate - + Certificates can be corrupted or stolen and misused in many ways. Therefore the BSI recommends to remove all revoked certificates from your system. Zertifikate können auf vielfache Weise korrumpiert oder gestohlen und missbraucht werden. Das BSI empfiehlt Ihnen daher zurückgezogene Zertifikate auch umgehend von Ihrem System zu entfernen. - + The follwing 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. Die folgenden unsicheren Zertifikate wurden vom BSI zurückgezogen. Bereits deinstallierte Zertifikate können nicht wieder installiert werden. Es wird empfohlen, dass Sie alle Zertifikate zur Deinstallation markieren, sofern Sie noch zurückgezogene Zertifikate installiert haben. - - - - + + + + Manually changed certificates (%1) Manuell geänderte Zertifikate (%1) - + Trust in your digital communication Vertrauen in Ihre digitale Kommunikation @@ -319,26 +339,24 @@ - + Certificates unchanged Zertifikate unverändert - TrustBridge Version: %1 - TrustBridge Version: %1 + TrustBridge Version: %1 - Last sucessful update check: %1 - Letzte erfolgreiche Prüfung nach Aktualisierungen: %1 + Letzte erfolgreiche Prüfung nach Aktualisierungen: %1 You should apply the following, recommended changes to your root certificates. Es wird empfohlen, die nachfolgenden Änderungen an Ihren Wurzelzertifikaten zu übernehmen. - + Apply changes Änderungen übernehmen @@ -348,14 +366,14 @@ Version: - - + + There are currently no changes for your certificate stores. Es liegen derzeit keine Änderungen für Ihre Zertifikatsspeicher vor. - - + + Install certificates again Zertifikate erneut installieren @@ -392,34 +410,32 @@ Änderungen (%1) - + install Installieren - + ignore Ignorieren - Installed certificates from: %1 - Installierte Zertifikate vom: %1 + Installierte Zertifikate vom: %1 - - - + + + Hide details Details ausblenden - Last successful update check: %1 - Letzte erfolgreiche Prüfung nach Aktualisierungen: %1 + Letzte erfolgreiche Prüfung nach Aktualisierungen: %1 - + Sucessfully checked for updates. Prüfung nach Aktualisierungen erfolgreich. @@ -431,27 +447,27 @@ Hier klicken, um Download und Installation zu starten. - + You should apply the following, recommended changes to your certificate stores. Es wird empfohlen, die nachfolgenden Änderungen an Ihren Zertifikatsspeichern zu übernehmen. - + You can apply the following, changes to your certificate stores. Es wird empfohlen, die nachfolgenden Änderungen an Ihren Zertifikatsspeichern zu übernehmen. - + Changes to certificate stores (%1) Änderungen an Zertifikatsspeichern (%1) - + Error executing update Fehler bei der Aktualisierung - + Installing certificates... Zertifikate werden installiert... diff -r 9f0ad4bab175 -r 406bf18ee633 ui/mainwindow.cpp --- a/ui/mainwindow.cpp Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/mainwindow.cpp Tue Jul 08 11:36:22 2014 +0200 @@ -516,18 +516,24 @@ mUpdatesHeader = new QLabel("

" + tr("Certificates unchanged")+ "

"); mLastCertUpdate = - new QLabel(""); + new QLabel(tr("Installed certificates from:")); + mLastCertUpdateContents = new QLabel(QString()); mLastCertUpdate->hide(); + mLastCertUpdateContents->hide(); mSoftwareVersionLabel = - new QLabel(tr("TrustBridge Version: %1").arg(QApplication::applicationVersion())); + new QLabel(tr("TrustBridge Version:")); + mSoftwareVersionContents = new QLabel(QApplication::applicationVersion()); const QDateTime lastCheck = mSettings.value("lastUpdateCheck").toDateTime().toLocalTime(); if (lastCheck.isValid()) { const QString lastUpdateCheck = QLocale::system().toString(lastCheck, DATETIME_FORMAT); mLastUpdateCheck = - new QLabel(tr("Last sucessful update check: %1").arg(lastUpdateCheck)); + new QLabel(tr("Last sucessful update check:")); + mLastUpdateCheckContents = new QLabel(lastUpdateCheck); } else { - mLastUpdateCheck = new QLabel(""); + mLastUpdateCheck = new QLabel(tr("Last successful update check:")); + mLastUpdateCheckContents = new QLabel(QString()); mLastUpdateCheck->hide(); + mLastUpdateCheckContents->hide(); } QPushButton *searchUpdates = new QPushButton(" " + tr("Check for updates")); searchUpdates->setIcon(QIcon(":/img/edit-find.png")); @@ -536,9 +542,14 @@ // addWidget(*Widget, row, column, rowspan, colspan, [Qt::Alignment]) updatesHeaderLayout->addWidget(mUpdatesHeader, 0, 0, 1, 2); updatesHeaderLayout->addWidget(mSoftwareVersionLabel, 1, 0, 1, 1); + updatesHeaderLayout->addWidget(mSoftwareVersionContents, 1, 1, 1, 1); updatesHeaderLayout->addWidget(mLastUpdateCheck, 2, 0, 1, 1); + updatesHeaderLayout->addWidget(mLastUpdateCheckContents, 2, 1, 1, 1); updatesHeaderLayout->addWidget(mLastCertUpdate, 3, 0, 1, 1); - updatesHeaderLayout->addWidget(searchUpdates, 1, 2, 2, 1, Qt::AlignRight); + updatesHeaderLayout->addWidget(mLastCertUpdateContents, 3, 1, 1, 1); + updatesHeaderLayout->setColumnStretch(3, 1); + + updatesHeaderLayout->addWidget(searchUpdates, 1, 4, 1, 2, Qt::AlignRight); updatesHeaderLayout->setRowMinimumHeight(4, 15); /* Header 2: Action text and buttons */ @@ -564,10 +575,10 @@ connect(mInstallButton, SIGNAL(clicked()), this, SLOT(checkAndInstallCerts())); // addWidget(*Widget, row, column, rowspan, colspan) - updatesHeaderLayout->addWidget(mUpdatesTip, 5, 0, 1, 2); + updatesHeaderLayout->addWidget(mUpdatesTip, 5, 0, 1, 4); updatesHeaderActionButtonLayout->addWidget(mInstallButton); updatesHeaderActionButtonLayout->addWidget(mQuitButton); - updatesHeaderLayout->addLayout(updatesHeaderActionButtonLayout, 6, 0, 1, 1); + updatesHeaderLayout->addLayout(updatesHeaderActionButtonLayout, 6, 0, 1, 3, Qt::AlignLeft); updatesHeaderLayout->setRowMinimumHeight(7, 10); /* The central panels. */ @@ -1004,10 +1015,10 @@ } if (mInstalledList.date().isValid()) { - mLastCertUpdate->setText(tr("Installed certificates from: %1") - .arg(QLocale::system().toString(mInstalledList.date().toLocalTime(), - DATETIME_FORMAT))); + mLastCertUpdateContents->setText(QLocale::system().toString(mInstalledList.date().toLocalTime(), + DATETIME_FORMAT)); mLastCertUpdate->show(); + mLastCertUpdateContents->show(); } mUpdatesManualCertificates->setText("

" + tr("Manually changed certificates (%1)").arg(0) + @@ -1251,8 +1262,8 @@ if (getState() != TransferError) { const QDateTime now = QDateTime::currentDateTime(); mSettings.setValue("lastUpdateCheck", now); - mLastUpdateCheck->setText(tr("Last successful update check: %1").arg( - QLocale::system().toString(now, DATETIME_FORMAT))); + mLastUpdateCheckContents->setText(QLocale::system().toString(now, DATETIME_FORMAT)); + mLastUpdateCheckContents->show(); mLastUpdateCheck->show(); syslog_info_printf(tr("Sucessfully checked for updates.").toUtf8().constData()); } diff -r 9f0ad4bab175 -r 406bf18ee633 ui/mainwindow.h --- a/ui/mainwindow.h Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/mainwindow.h Tue Jul 08 11:36:22 2014 +0200 @@ -247,8 +247,11 @@ QLabel *mUpdatesHeader; QLabel *mLastCertUpdate; + QLabel *mLastCertUpdateContents; QLabel *mSoftwareVersionLabel; + QLabel *mSoftwareVersionContents; QLabel *mLastUpdateCheck; + QLabel *mLastUpdateCheckContents; QLabel *mUpdatesNewCertificates; QLabel *mUpdatesRemoveCertificates; QLabel *mUpdatesManualCertificates; diff -r 9f0ad4bab175 -r 406bf18ee633 ui/tests/data/NOTES --- a/ui/tests/data/NOTES Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/tests/data/NOTES Tue Jul 08 11:36:22 2014 +0200 @@ -99,7 +99,7 @@ is_ca=1 max_pathlen=0 output_file=codesigning_root.pem # Codesign cert -gen_key filename=codesigning.key +gen_key rsa_keysize=3072 filename=codesigning.key cert_req filename=codesigning.key output_file=codesigning.csr \ subject_name="CN=Public TrustBridge codesigning test,O=Public secret do not trust this,C=DE" \ key_usage=digital_signature \ @@ -119,7 +119,7 @@ -out TrustBridge-0.6+21-aee3eb10bbba-signed.exe # Different test certificates. -gen_key filename=codesigning-other.key +gen_key rsa_keysize=3072 filename=codesigning-other.key cert_req filename=codesigning-other.key output_file=codesigning-other.csr \ subject_name="CN=Public TrustBridge codesigning test,O=Public secret do not trust this,C=DE" \ key_usage=digital_signature \ diff -r 9f0ad4bab175 -r 406bf18ee633 ui/tests/data/codesign/codesigning-combined.pem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/tests/data/codesign/codesigning-combined.pem Tue Jul 08 11:36:22 2014 +0200 @@ -0,0 +1,69 @@ +-----BEGIN CERTIFICATE----- +MIIFKTCCAxGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs +aWMgVHJ1c3RCcmlkZ2UgVGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBu +b3QgdHJ1c3QgdGhpczELMAkGA1UEBhMCREUwHhcNMTMwMTAxMDAwMDAwWhcNMTUx +MjMxMjM1OTU5WjBlMSwwKgYDVQQDEyNQdWJsaWMgVHJ1c3RCcmlkZ2UgY29kZXNp +Z25pbmcgdGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBub3QgdHJ1c3Qg +dGhpczELMAkGA1UEBhMCREUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB +gQDtK3Ow4W0t9UbfrLB/nlQy2X9ejc8McCw2C0vwq1eFs+d8zv7nhzCaFiBN88C/ +eYL6wQoIFPjGPqASuQknBaUCM1XCzVu86jiluVCeN4MYbl1nr6f8rDHiK0iJL4mu +ROQ+FhsRsiKpRPhR8/sp5INlgqC2XBUrQ5zde6Yh3gRajjESRdcfOWIaO4vBXIo8 +onQ2wBar8b3LWdvhFXqgrYaqcHX6SCn5xaoYn7xb7Gq7lD3LeSQlbgZtUv6mv+H9 +LlLgC52Sr9R5JfvomQC6R6l+mXKWrtlxYo3VndQ/Sn603IOXOV6aAswfXDoD3iOM +4BbPYHv0EGQBXRtH+bzqgdUfMZkQU7lIgOIDskmeZo2ovYfpkUTyujsLPOVcHEx8 +9MtGiZmzprYuiGXDtJ2sam9KHK4+Mastk4L4k+Qz1wbHMj49VW4Q9iXDgWOkKiFH ++PmmYdEm0UZ8BdheQ9UxIajVt9eOxWg3v5ak0o4LdZf0lAH7H6yOIO8AZEaJ/8Nz +wNsCAwEAAaNwMG4wCQYDVR0TBAIwADAdBgNVHQ4EFgQUCsyNwGUNmueV2MfSimlR +OGBI66kwHwYDVR0jBBgwFoAU5f5GRkaGtHJvNs1uwj598qpODHkwDgYDVR0PAQEB +BAQDAgGAMBEGCWCGSAGG+EIBAQQEAwIAEDANBgkqhkiG9w0BAQUFAAOCAgEAmhpe +dcdqXCwdhNy2sPUxsBGxvU5qdyxgVoTSpaISr1RIZrTTKISWcfTjs2r9/fyjAIER +tXbHYy9pbEG6ILejVRq05dmBMoLD5zrSyEo6C54K045Lwz7rXndw9xJnkv5eT2B+ +YWta2h+pwWG1yqaxVDFOUhsTTIR0yBlA2SADXDQejbdSk9n1EoDqCFV5Wn41kP8c +AujPCoVgXBhsIKzfKpOFBLYOXVSL5WtoHZ/hFH1e3qF4P/SyHhnKU5OQ2bqO0Pf7 +VACBnqYVCiGvzjOqwIkllSdv5vds++XkaSDPTIsrPdFH7BD1Jowd0e7UQ+ItLA8A +G5iuO0pcRYSCvRA9tc1uTfws0WwHom4nhPsO46KNms+8g+/NOFjEMOYw15cFHk+U +UKKWtIadGp6IHz712xpP5wr2dtkiGvkJVIm44edrNJMH0HHFlVpt7xuMhALuzTK0 +uwagUu9+KVU/EWzDF1BkVyZ72d36oUxrt0mK0GuUe89RSwK87kutS0+ophmiBX+x +QMNSVIGr8MdXoGx52zo70qfZcjr/4sjL5YSrecYr2i3Rt5cU3y6xIgTXSPD9+cOm +9M/8Xck6vDKTAy0LE+TFXLCEusKSSZ6JgcC9ItihcxsCEUvUbifbYdEvgIIJhmFj +Y8w7FNHYMiaw2xII1Fcrv7nmO+tysu+GhJ04oj4= +-----END CERTIFICATE----- +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff -r 9f0ad4bab175 -r 406bf18ee633 ui/tests/data/codesign/codesigning-other.key --- a/ui/tests/data/codesign/codesigning-other.key Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/tests/data/codesign/codesigning-other.key Tue Jul 08 11:36:22 2014 +0200 @@ -1,51 +1,39 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff -r 9f0ad4bab175 -r 406bf18ee633 ui/tests/data/codesign/codesigning-other.pem --- a/ui/tests/data/codesign/codesigning-other.pem Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/tests/data/codesign/codesigning-other.pem Tue Jul 08 11:36:22 2014 +0200 @@ -1,33 +1,30 @@ -----BEGIN CERTIFICATE----- -MIIFqTCCA5GgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs +MIIFKTCCAxGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs aWMgVHJ1c3RCcmlkZ2UgVGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBu b3QgdHJ1c3QgdGhpczELMAkGA1UEBhMCREUwHhcNMTMwMTAxMDAwMDAwWhcNMTUx MjMxMjM1OTU5WjBlMSwwKgYDVQQDEyNQdWJsaWMgVHJ1c3RCcmlkZ2UgY29kZXNp Z25pbmcgdGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBub3QgdHJ1c3Qg -dGhpczELMAkGA1UEBhMCREUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCq39hi9rzq5kuPboqQ2slvqKYcVu8+jFftAEAiSEz7nQYpm44/9Bkpx0B41kbs -56mqRzjoMzUmBM8Wyda5k+bTFOHHtjwtMaG4C3BzN1ANtp1zw08be4q+fZWaVBo3 -bImbFWCU1ZYm7m2QLXd/M+QME3f5abur6/S1jwWsD2IA87p1GysGUZjRc5wHFHbS -FrtQSNXZ+2xUpiDApb3CfAX6RlTTDs5pPMtLwkiChg+0nHaTlMFjpaAZBGsV2v/V -IdX17MAsqWB73++4k0z85pI8t+CY5zGeX5naOJChLuiIkhqAgYeq5XVJxoC+xoJz -u5B6d4PcrUzTcjaj+plxcIGDkB1u2q1ZkrYiJX/hxJgebmD2YwSdJ1KWPAP8wc6N -t00bWa/5QcH3nxHTAx12IxNOrnnyXKIO6h6HnivGlznVtP6IyGWOGQzuGrHQ8RfD -ANnyiE7onEJHPyTUcdOzBX2DrfXmgRklswhtU4ttZSIdwnD4kP23X6Mm7E11jXPd -yz3mWqVv7H7AhU/c7B2R5wWZWbk9FYJHh3frEYIR7+mfeRXcq1XGYVM7UDOvfyIY -awyF0qgrd2xbg9WeE2gRXjJrlSndYqBdzREatUyOkTTZtZETZa/U3x3i4ZE1En22 -wzuSvHfttzENIYvmJOhYxqnGSIafvqHGzaxG/O6r3Wn4zwIDAQABo3AwbjAJBgNV -HRMEAjAAMB0GA1UdDgQWBBS0lOBu/DAejrDytCTEGB+6rDLVizAfBgNVHSMEGDAW -gBTl/kZGRoa0cm82zW7CPn3yqk4MeTAOBgNVHQ8BAQEEBAMCAYAwEQYJYIZIAYb4 -QgEBBAQDAgAQMA0GCSqGSIb3DQEBBQUAA4ICAQA2ublxGKfS6s5iAz8OAuMdGKg0 -oxacGX378xBctl7s+PORwx7kOo1X96d8KuQyWf9LXSZv1uPPRnEO+atMF2hswqcS -gFx/Y32vEz8dGeqye6qOGfQOBD7M4wZ7ww/CiTJJBVbQ54WrU3zoy5Fga/ijXOtY -i0AaZaoFfureK6+fCua9h+SRE7OljDCpSHigWTIY9MQ6fe7T8wXTnxhopdgT8k0R -NXL/UNEUm/y79xIFfBpsVQbqMwhvtu4j6qGEmT6DhDcbnlQU8kwTkf5dYopC2kBT -4atKKvWrfyoF2jDPSbwB0/ZztmRQtvE+Ve4+bGZREEy/0cviGmuGkzRXdfA/Ckl8 -4em9A01C8PzQ49psN+YGnl0OSiVXweHJzYnEy7/jep8ImHp8uXr2fT3sdreiUh9v -tv9j12Yy0AlgJp6TsgVPIpbS1CtZqF9vqojKAef3NxNZLjGKOdwlvlP+c0/A3xne -kubVCuGaVCrBvvZ3lOoqiDrkYjhaDADJoyQwNhU75Ah7fziJ1pjIyPUePYwJaOoc -b3ntUNAtLNy8EXTI0jhlJH4uo8aMi3eO52kNrRUScBtySATSCyB7k2gkdSfCnF03 -LUbDV2nTFK5NJ7+8rz/LNStu60nO5j1poVAPflbfz9mMNgb0wmncIyMr6w+Ixwpd -qSaFDC+2vJwwzhGmlg== +dGhpczELMAkGA1UEBhMCREUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB +gQC3TZy0q9zvhZbPAorfMA142+J1drTkPgzK+DXurw+VeTvtlyftdN3RQ9tYdwgP +47jgAW5DLmD5j+sQZe1OJ640zPSExjWlQ93RhG0nEcpZoLrWVsFBcISa885xQILL +F+Zl9Yq3L+5kDCh86n6/0i5w98LTQU1C6X2OXPAa5T9D6Q9xLBv7BRobfEazDe+o +DzSNejaN1bmssLo3IuLqD+K1DIr1OOAXMD0uwPvr4sqVbvqpVMygGzSG57Yl5c5m +/L13OoE63c91gKzFwK0Uilx1dwjbhvES8oyk8UUwp5q2MSbRimN+xyLo7A6D5+/9 +bdo9cYz9r5f8GWgcD5dICRhBnSNzzYiIxR85a8h8PuLVoKTYrsQT4OllG8XJREtX +KlYiHYW1q2PC2pW8lbYHPDZU2FVCur3q3S280n+WqeQptjNDST41ZTaKzeUeHuyt +o6UyINgRy8uhZ4z6UYGvmP8QNgYFUBghSfbniMFsg9oo/6bS6xkybJsngCas2P9o +21cCAwEAAaNwMG4wCQYDVR0TBAIwADAdBgNVHQ4EFgQUNtiDImdiWibkOfd9xlze +8Bf1sEgwHwYDVR0jBBgwFoAU5f5GRkaGtHJvNs1uwj598qpODHkwDgYDVR0PAQEB +BAQDAgGAMBEGCWCGSAGG+EIBAQQEAwIAEDANBgkqhkiG9w0BAQUFAAOCAgEAqrcq +OSDed29wNRNCszEnGFCfPyw0AEBI1cFWIponacug7DJNT/k01C3iW9Fo2byWANXL +xno31pOoq1KP9CW/kkaZmB32EHoSlj7H3F1657upeH/DnjRZWeFg6H9GtMa0AarE +rszruYWbjbDicsprS96s9Haz1KDPwQFAnYiZgv8WanRQAYcGnmClDQPKR9D/hW+X +XRFo5nPC+uatziedjvFSUp4FzPm5K2vNmveuunQMUdFyB/TiuA+dsRrW0EpNbyIz +5AQc7oV2O5e6h3KnrHd2dixGju1Ue9h9WLLs+RO1ScSZ/o5/hgSb0/0Rdw4JoTrI +Kmz7hFViV95ilmQCaC6NmDICkBznclvphm5kyCya1zPBnuozZc3UuxO9rwAROPzR +Uhw4oB6lUf0w4sDvqh0h0DhJ+LkOF/p+fCjgv0shBQ6onTNUQnKh1VS8HwcYKqyW +M277poW1NnAJuIrclNyM7+5splqDHvePbzq0RQujKqiWlBVAnFOvka9a/JDthPnq +6GqnM09Z0s3iVa9xM3IPdAsG3a93Ab5Vk1XFR1gou+mkr7PyFGrU9jLRzl3e+os7 +5iJKZib8RvdtmIrlk14h8kitFIebV/MiZ8bU4ck9NzBcbWmbiyveJYrFRT1xcjdh +DEOTyG/jTVnR2h/t2rJO91kj2sPbxRvrZh/fmNM= -----END CERTIFICATE----- diff -r 9f0ad4bab175 -r 406bf18ee633 ui/tests/data/codesign/codesigning.key --- a/ui/tests/data/codesign/codesigning.key Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/tests/data/codesign/codesigning.key Tue Jul 08 11:36:22 2014 +0200 @@ -1,51 +1,39 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff -r 9f0ad4bab175 -r 406bf18ee633 ui/tests/data/codesign/codesigning.pem --- a/ui/tests/data/codesign/codesigning.pem Tue Jul 08 10:52:53 2014 +0200 +++ b/ui/tests/data/codesign/codesigning.pem Tue Jul 08 11:36:22 2014 +0200 @@ -1,33 +1,30 @@ -----BEGIN CERTIFICATE----- -MIIFqTCCA5GgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs +MIIFKTCCAxGgAwIBAgIBATANBgkqhkiG9w0BAQUFADBZMSAwHgYDVQQDExdQdWJs aWMgVHJ1c3RCcmlkZ2UgVGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBu b3QgdHJ1c3QgdGhpczELMAkGA1UEBhMCREUwHhcNMTMwMTAxMDAwMDAwWhcNMTUx MjMxMjM1OTU5WjBlMSwwKgYDVQQDEyNQdWJsaWMgVHJ1c3RCcmlkZ2UgY29kZXNp Z25pbmcgdGVzdDEoMCYGA1UEChMfUHVibGljIHNlY3JldCBkbyBub3QgdHJ1c3Qg -dGhpczELMAkGA1UEBhMCREUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQDIz9IetAtdqJJ7aSfJcLmA9Mb4nxrqEJ5E6PMejDJZmmHNjyhCVp1qsLYmyC60 -m7qJ4OBENx0v2n5LiCUHJpJ4mzAklkWn1GffUkzWgQ2VHw5Nr44NWEwkUUa5/jT7 -Sxts2DWuaLz2r7oi6BUQpoRmQRPwwzFPONcCSw9iAvTU6oVI2jW1opEW3t10UwY3 -5/muryPsUz6y5VkBIc73VC0wByXoAruEPBBpMgOVw1+npOaJ1PL1XXQ/P6xziZo0 -Ab/tKvN6IpEHrNEGv1gScJt//pKKklvIyXm9UdIY9XpB6aauzthKpTFJXGYySlXx -bD1a5sq0i2sAK/p8RvErVWg3EfBlUrQryJxONPVqribczZIWcgKVEFfXjX1tQqiC -qRCgO4M6zhNIKLkAicp0DvYs8M4hIoPng98nqK6kSpfXR6Y4b9DU3yEktH7wGrwL -jKATVM2l2yTF17Pjxkr2tH0XWrChfS+oV6Qzm9JQ/vmLKz5piLKpt5SXuZny+j0Y -68ch709sVTuuPm4RAm5c5t0SCwEippClFpkZynYRsJVrjG9ZTrdvULxZao8GBzJx -Lb+tCaKP60BRoUuRfwGMKZbU6j6ujOCy5bZIoJaKgHgyAHXRuS4PIjY9K2BGM5vI -seA2GEdAJNmZPAQJE5rxkrsAH9n8QtmHucEqzCZVFcLuCwIDAQABo3AwbjAJBgNV -HRMEAjAAMB0GA1UdDgQWBBSMgUaKY3L65wH5M4il/gbHCeVm4TAfBgNVHSMEGDAW -gBTl/kZGRoa0cm82zW7CPn3yqk4MeTAOBgNVHQ8BAQEEBAMCAYAwEQYJYIZIAYb4 -QgEBBAQDAgAQMA0GCSqGSIb3DQEBBQUAA4ICAQAdmpf8k+ZKuhDvNwMCrf1JIZh3 -uJxlCHFke/ypsMT2E6p/GZpD/lLyRHbk7V5aEYdmBaK6Dem0KYhRuDclWscpQdXl -96wx1IDNueMkj5ZDmpBLFl/nqxlM9HfHo8YTE9dRgzJAR8+dFR8HyRSayKo+pz4L -FkNFT5Jtm9kKLIN+mSGKMBmpY4owfpeh7K6YyASoOHL9Zk8A0I7iZX8FB5KujrlG -WJahjSAyvLvy98XDCf9/SyX73F1ol5ycAb/du+G5VZFDEI8sv/7fIdTx/AUR30Ac -f3tqXZ4HwxWc0gofT0J2z/I4FZ/sT/1SNHReGNrG9GNn5bxjwpSXfc5A1bjhRfxd -x73xKEInjpgo6AXY7wfNk1V+2z7keVOpaDEZUOsd/x/C+L8FsUh2JJHZp/hKX6Co -AD///pxqNfvH5pPLUINC7VRUOTynUas7p9UvkPeJjqnWY6pmjeb4Fs6Z6vn0+Opy -HP1MjLL41a+U9VxuNb6SfRDoeT19pqK6ovT2gbc61OvTI0lE97ChC622rjnV0c/N -QYqkeTQG/IjPk0QFrYQxMqq6QKgds2nheYd4LyLGhk72pKWr28Hfj1ElcoTFFbWP -ndI+uZePkkCsVYNMXbIAIpqLb++1ftl+L+itqxTyq+0tPObIL3WG9rzBGz8X6WT0 -KIzi4KAn66e5/iWZng== +dGhpczELMAkGA1UEBhMCREUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB +gQDtK3Ow4W0t9UbfrLB/nlQy2X9ejc8McCw2C0vwq1eFs+d8zv7nhzCaFiBN88C/ +eYL6wQoIFPjGPqASuQknBaUCM1XCzVu86jiluVCeN4MYbl1nr6f8rDHiK0iJL4mu +ROQ+FhsRsiKpRPhR8/sp5INlgqC2XBUrQ5zde6Yh3gRajjESRdcfOWIaO4vBXIo8 +onQ2wBar8b3LWdvhFXqgrYaqcHX6SCn5xaoYn7xb7Gq7lD3LeSQlbgZtUv6mv+H9 +LlLgC52Sr9R5JfvomQC6R6l+mXKWrtlxYo3VndQ/Sn603IOXOV6aAswfXDoD3iOM +4BbPYHv0EGQBXRtH+bzqgdUfMZkQU7lIgOIDskmeZo2ovYfpkUTyujsLPOVcHEx8 +9MtGiZmzprYuiGXDtJ2sam9KHK4+Mastk4L4k+Qz1wbHMj49VW4Q9iXDgWOkKiFH ++PmmYdEm0UZ8BdheQ9UxIajVt9eOxWg3v5ak0o4LdZf0lAH7H6yOIO8AZEaJ/8Nz +wNsCAwEAAaNwMG4wCQYDVR0TBAIwADAdBgNVHQ4EFgQUCsyNwGUNmueV2MfSimlR +OGBI66kwHwYDVR0jBBgwFoAU5f5GRkaGtHJvNs1uwj598qpODHkwDgYDVR0PAQEB +BAQDAgGAMBEGCWCGSAGG+EIBAQQEAwIAEDANBgkqhkiG9w0BAQUFAAOCAgEAmhpe +dcdqXCwdhNy2sPUxsBGxvU5qdyxgVoTSpaISr1RIZrTTKISWcfTjs2r9/fyjAIER +tXbHYy9pbEG6ILejVRq05dmBMoLD5zrSyEo6C54K045Lwz7rXndw9xJnkv5eT2B+ +YWta2h+pwWG1yqaxVDFOUhsTTIR0yBlA2SADXDQejbdSk9n1EoDqCFV5Wn41kP8c +AujPCoVgXBhsIKzfKpOFBLYOXVSL5WtoHZ/hFH1e3qF4P/SyHhnKU5OQ2bqO0Pf7 +VACBnqYVCiGvzjOqwIkllSdv5vds++XkaSDPTIsrPdFH7BD1Jowd0e7UQ+ItLA8A +G5iuO0pcRYSCvRA9tc1uTfws0WwHom4nhPsO46KNms+8g+/NOFjEMOYw15cFHk+U +UKKWtIadGp6IHz712xpP5wr2dtkiGvkJVIm44edrNJMH0HHFlVpt7xuMhALuzTK0 +uwagUu9+KVU/EWzDF1BkVyZ72d36oUxrt0mK0GuUe89RSwK87kutS0+ophmiBX+x +QMNSVIGr8MdXoGx52zo70qfZcjr/4sjL5YSrecYr2i3Rt5cU3y6xIgTXSPD9+cOm +9M/8Xck6vDKTAy0LE+TFXLCEusKSSZ6JgcC9ItihcxsCEUvUbifbYdEvgIIJhmFj +Y8w7FNHYMiaw2xII1Fcrv7nmO+tysu+GhJ04oj4= -----END CERTIFICATE-----