diff --git a/isoimagewriter/CMakeLists.txt b/isoimagewriter/CMakeLists.txt index fa8402e..18234e6 100644 --- a/isoimagewriter/CMakeLists.txt +++ b/isoimagewriter/CMakeLists.txt @@ -1,68 +1,69 @@ set(GPGME_REQUIRED_VERSION "1.8.0") find_package(Gpgmepp ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) find_package(QGpgme ${GPGME_REQUIRED_VERSION} CONFIG REQUIRED) set(isoimagewriter_common_SRCS platform_lin.cpp common.cpp verifyiso.cpp verifyneoniso.cpp verifykubuntuiso.cpp verifynetrunneriso.cpp) ecm_qt_declare_logging_category(isoimagewriter_common_SRCS HEADER isoimagewriter_debug.h IDENTIFIER ISOIMAGEWRITER_LOG CATEGORY_NAME org.kde.isoimagewriter DEFAULT_SEVERITY Debug) set(isoimagewriter_SRCS ${isoimagewriter_common_SRCS} usbdevicemonitor.h common.cpp mainapplication.cpp maindialog.cpp platform_lin.cpp externalprogressbar_lin.cpp imagewriter.cpp physicaldevice.cpp usbdevicemonitor_lin.cpp main.cpp + verifyisoworker.cpp ) ki18n_wrap_ui(isoimagewriter_SRCS maindialog.ui) add_executable(isoimagewriter ${isoimagewriter_SRCS}) add_executable(testy testy.cpp ${isoimagewriter_common_SRCS}) target_link_libraries(testy Qt5::Widgets KF5::Auth) if (ROSA_BRANDING) target_compile_definitions(isoimagewriter PRIVATE -DROSA_BRANDING="1") endif (ROSA_BRANDING) target_compile_definitions(isoimagewriter PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}") target_link_libraries(isoimagewriter Qt5::Widgets KF5::I18n KF5::CoreAddons KF5::Auth QGpgme dl ) target_link_libraries(testy Qt5::Widgets KF5::I18n KF5::CoreAddons dl QGpgme Gpgmepp ) install(TARGETS isoimagewriter ${INSTALL_TARGETS_DEFAULT_ARGS}) install(PROGRAMS org.kde.isoimagewriter.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install(FILES org.kde.isoimagewriter.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) add_executable(isoimagewriter_helper imagewriter_helper.cpp imagewriter.cpp physicaldevice.cpp) target_link_libraries(isoimagewriter_helper Qt5::Widgets KF5::Auth KF5::I18n) install(TARGETS isoimagewriter_helper DESTINATION ${KAUTH_HELPER_INSTALL_DIR}) kauth_install_helper_files(isoimagewriter_helper org.kde.isoimagewriter root) kauth_install_actions(org.kde.isoimagewriter isoimagewriter.actions) diff --git a/isoimagewriter/verifyneoniso.cpp b/isoimagewriter/verifyneoniso.cpp index d7e2de0..b54f348 100644 --- a/isoimagewriter/verifyneoniso.cpp +++ b/isoimagewriter/verifyneoniso.cpp @@ -1,85 +1,99 @@ /* * * Copyright (C) 2017 Jonathan Riddell * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include #include #include #include #include #include #include #include +#include +#include #include #include "verifyneoniso.h" +#include "verifyisoworker.h" VerifyNeonISO::VerifyNeonISO(QString filename) : VerifyISO(filename) { m_humanReadableDistroName = "KDE neon"; } bool VerifyNeonISO::canVerify() { if (!verifyFileMatches("neon-")) { return false; } if (!importSigningKey("neon-signing-key.gpg")) { return false; } return true; } bool VerifyNeonISO::isValid() { if (!verifyFileExists()) { return false; } - if (!verifySignatureFileExists(m_filename+".sig")) { + if (!verifySignatureFileExists(m_filename + ".sig")) { return false; } QFile signatureFile(m_filename + ".sig"); if (!signatureFile.open(QIODevice::ReadOnly)) { qDebug() << "error",signatureFile.errorString(); } + /* QByteArray signatureData = signatureFile.readAll(); QFile isoFile(m_filename); if (!isoFile.open(QIODevice::ReadOnly)) { qDebug() << "error",isoFile.errorString(); } QByteArray isoData = isoFile.readAll(); QGpgME::VerifyDetachedJob *job = QGpgME::openpgp()->verifyDetachedJob(); GpgME::VerificationResult result = job->exec(signatureData, isoData); qDebug() << "numSignatures " << result.numSignatures(); qDebug() << "filename " << result.fileName(); GpgME::Signature signature = result.signature(0); qDebug() << "fingerprint " << signature.fingerprint(); if (strcmp(signature.fingerprint(), "348C8651206633FD983A8FC4DEACEA00075E1D76") == 0) { qDebug() << "Uses right signature!"; } else { qDebug() << "Uses wrong signature!!"; m_error = i18n("Uses wrong signature."); return false; } if (signature.summary() & GpgME::Signature::KeyRevoked) { qDebug() << "Key is revoked" << signature.summary(); m_error = i18n("Key is revoked."); return false; } + */ + VerifyISOWorker* verifyISOWorker = new VerifyISOWorker(m_filename); + connect(verifyISOWorker, &QThread::finished, verifyISOWorker, &QObject::deleteLater); + verifyISOWorker->start(); + + while (verifyISOWorker->isResultReady() == false) { + qDebug() << "isResultReady() while loop"; + QCoreApplication::processEvents(); + } + return true; }