diff options
Diffstat (limited to 'installerbuilder/libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp')
-rw-r--r-- | installerbuilder/libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/installerbuilder/libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp b/installerbuilder/libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp index 0a3fc4564..c36b78402 100644 --- a/installerbuilder/libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp +++ b/installerbuilder/libinstaller/3rdparty/kdtools/kdupdaterfiledownloader.cpp @@ -22,8 +22,6 @@ #include "kdupdaterfiledownloader_p.h" #include "kdupdaterfiledownloaderfactory.h" -#include "kdupdatersignatureverifier.h" -#include "kdupdatersignatureverificationresult.h" #include <QFile> #include <QFtp> @@ -1294,213 +1292,3 @@ void KDUpdater::HttpDownloader::onAuthenticationRequired(QNetworkReply *reply, Q authenticator->setPassword(this->authenticator().password()); } } - - -// -- SignatureVerificationDownloader - -class SignatureVerificationDownloader::Private -{ - SignatureVerificationDownloader *const q; -public: - explicit Private(FileDownloader *dl, SignatureVerificationDownloader *qq) - : q(qq) - , verifier(0) - , downloader(dl) - , sigDownloader(0) - , actualDownloadDone(false) - { - Q_ASSERT(downloader); - q->connect(downloader, SIGNAL(downloadProgress(double)), q, SIGNAL(downloadProgress(double))); - q->connect(downloader, SIGNAL(downloadStarted()), q, SLOT(dataDownloadStarted())); - q->connect(downloader, SIGNAL(downloadCompleted()), q, SLOT(dataDownloadCompleted())); - q->connect(downloader, SIGNAL(downloadCanceled()), q, SLOT(dataDownloadCanceled())); - q->connect(downloader, SIGNAL(downloadAborted(QString)), q, SLOT(dataDownloadAborted(QString))); - } - - ~Private() - { - delete verifier; - delete downloader; - delete sigDownloader; - } - - const SignatureVerifier *verifier; - FileDownloader *downloader; - FileDownloader *sigDownloader; - QUrl signatureUrl; - SignatureVerificationResult result; - QString downloadedFileName; - bool actualDownloadDone : 1; -}; - -SignatureVerificationDownloader::SignatureVerificationDownloader(FileDownloader *downloader, QObject *parent) - : FileDownloader(downloader->scheme(), parent) - , d(new Private(downloader, this)) -{ -} - -SignatureVerificationDownloader::~SignatureVerificationDownloader() -{ - delete d; -} - -QUrl SignatureVerificationDownloader::signatureUrl() const -{ - return d->signatureUrl; -} - -void SignatureVerificationDownloader::setSignatureUrl(const QUrl &url) -{ - d->signatureUrl = url; -} - -const SignatureVerifier* SignatureVerificationDownloader::signatureVerifier() const -{ - return d->verifier; -} - -void SignatureVerificationDownloader::setSignatureVerifier(const SignatureVerifier *verifier) -{ - delete d->verifier; - d->verifier = verifier ? verifier->clone() : 0; -} - -SignatureVerificationResult SignatureVerificationDownloader::result() const -{ - return d->result; -} - -bool SignatureVerificationDownloader::canDownload() const -{ - return d->downloader->canDownload(); -} - -bool SignatureVerificationDownloader::isDownloaded() const -{ - return d->downloader->isDownloaded(); -} - -QString SignatureVerificationDownloader::downloadedFileName() const -{ - return d->downloadedFileName; -} - -void SignatureVerificationDownloader::setDownloadedFileName(const QString &/*name*/) -{ - Q_ASSERT_X(false, "SignatureVerificationDownloader::setDownloadedFileName", "Not supported!"); -} - -FileDownloader *SignatureVerificationDownloader::clone(QObject *parent) const -{ - return new SignatureVerificationDownloader(d->downloader->clone(), parent); -} - -void SignatureVerificationDownloader::onError() -{ - delete d->sigDownloader; - d->sigDownloader = 0; - if (QFile::exists(d->downloadedFileName)) - QFile::remove(d->downloadedFileName); -} - -void SignatureVerificationDownloader::onSuccess() -{ - delete d->sigDownloader; - d->sigDownloader = 0; -} - -void SignatureVerificationDownloader::cancelDownload() -{ - if (!d->actualDownloadDone) { - d->downloader->cancelDownload(); - return; - } - - if (d->sigDownloader) - d->sigDownloader->cancelDownload(); -} - -void SignatureVerificationDownloader::doDownload() -{ - Q_ASSERT(d->verifier); - Q_ASSERT(d->downloader); - d->downloader->setUrl(url()); - d->downloader->setSha1Sum(sha1Sum()); - d->downloader->download(); -} - -void SignatureVerificationDownloader::dataDownloadStarted() -{ - emit downloadStarted(); -} - -void SignatureVerificationDownloader::dataDownloadAborted(const QString &err) -{ - setDownloadAborted(err); -} - -void SignatureVerificationDownloader::dataDownloadCanceled() -{ - setDownloadCanceled(); -} - -static QUrl suggestSignatureUrl(const QUrl &url) -{ - return url.toString() + QLatin1String(".sig"); -} - -void SignatureVerificationDownloader::dataDownloadCompleted() -{ - d->downloadedFileName = d->downloader->downloadedFileName(); - d->actualDownloadDone = true; - - QUrl url = d->signatureUrl; - if (url.isEmpty()) - url = suggestSignatureUrl(d->downloader->url()); - delete d->sigDownloader; - d->sigDownloader = FileDownloaderFactory::instance().create(url.scheme(), this); - if (!d->sigDownloader) { - setDownloadAborted(tr("Could not download signature: scheme %1 not supported.").arg(url.scheme())); - return; - } - d->sigDownloader->setUrl(url); - connect(d->sigDownloader, SIGNAL(downloadCompleted()), this, SLOT(signatureDownloadCompleted())); - connect(d->sigDownloader, SIGNAL(downloadCanceled()), this, SLOT(signatureDownloadCanceled())); - connect(d->sigDownloader, SIGNAL(downloadAborted(QString)), this, - SLOT(signatureDownloadAborted(QString))); - d->sigDownloader->download(); -} - -void SignatureVerificationDownloader::signatureDownloadAborted(const QString &err) -{ - setDownloadAborted(tr("Downloading signature: %1").arg(err)); -} - -void SignatureVerificationDownloader::signatureDownloadCanceled() -{ - setDownloadCanceled(); -} - -void SignatureVerificationDownloader::signatureDownloadCompleted() -{ - QFile sigFile(d->sigDownloader->downloadedFileName()); - if (!sigFile.open(QIODevice::ReadOnly)) { - setDownloadAborted(tr("Could not open signature file: %1").arg(sigFile.errorString())); - return; - } - - QFile dataFile(d->downloadedFileName); - if (!dataFile.open(QIODevice::ReadOnly)) { - setDownloadAborted(tr("Could not open file for verification: %1").arg(dataFile.errorString())); - return; - } - - const QByteArray signature = sigFile.readAll(); - const QByteArray dataHash = calculateHash(&dataFile, QCryptographicHash::Sha1); - d->result = d->verifier->verify(dataHash, signature); - if (! d->result.isValid()) { - setDownloadAborted(d->result.errorString()); - return; - } - setDownloadCompleted(d->downloadedFileName); -} |