File indexing completed on 2024-04-21 05:48:33

0001 /*
0002     SPDX-FileCopyrightText: 2019 Farid Boudedja <farid.boudedja@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-3.0-or-later
0005 */
0006 
0007 #ifndef ISOVERIFIER_H
0008 #define ISOVERIFIER_H
0009 
0010 #include <QObject>
0011 
0012 class IsoVerifier : public QObject
0013 {
0014     Q_OBJECT
0015 
0016 public:
0017     explicit IsoVerifier(const QString &filePath);
0018 
0019     enum class VerifyResult {
0020         Successful,
0021         Failed,
0022         KeyNotFound,
0023         NoGpg,
0024     };
0025     Q_ENUM(VerifyResult)
0026 
0027 public slots:
0028     void verifyIso();
0029     void verifyWithInputText(bool ok, const QString &text);
0030 
0031 signals:
0032     void finished(IsoVerifier::VerifyResult result, const QString &error);
0033     void inputRequested(const QString &title, const QString &body);
0034     void asyncDone();
0035 
0036 private:
0037     int summaryResult;
0038     QString m_filePath;
0039     QString m_error;
0040     VerifyResult m_isIsoValid = VerifyResult::Failed;
0041     enum VerificationMean {
0042         None,
0043         DotSigFile,
0044         Sha256SumsFile,
0045         Sha256SumInput
0046     } m_verificationMean;
0047 
0048     bool importSigningKey(const QString &fileName, QString &keyFingerPrint);
0049     void verifyWithDotSigFile(const QString &keyFingerPrint);
0050     void verifyWithSha256SumsFile(const QString &keyFingerPrint);
0051     void verifyWithSha256Sum(bool ok, const QString &checksum);
0052 };
0053 
0054 #endif // ISOVERIFIER_H