File indexing completed on 2025-03-09 04:54:28
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "dkimauthenticationstatusinfo.h" 0010 #include "dkimchecksignaturejob.h" 0011 #include "messageviewer_private_export.h" 0012 #include <Akonadi/Item> 0013 #include <MessageViewer/DKIMCheckPolicy> 0014 #include <QObject> 0015 namespace MessageViewer 0016 { 0017 class MESSAGEVIEWER_TESTS_EXPORT DKIMCheckFullJob : public QObject 0018 { 0019 Q_OBJECT 0020 public: 0021 explicit DKIMCheckFullJob(QObject *parent = nullptr); 0022 ~DKIMCheckFullJob() override; 0023 0024 void startCheckFullInfo(const KMime::Message::Ptr &message); 0025 void startCheckFullInfo(const Akonadi::Item &item); 0026 0027 [[nodiscard]] DKIMCheckPolicy policy() const; 0028 void setPolicy(const DKIMCheckPolicy &policy); 0029 0030 Q_SIGNALS: 0031 void result(const MessageViewer::DKIMCheckSignatureJob::CheckSignatureResult &checkResult, Akonadi::Item::Id id); 0032 0033 private: 0034 void slotCheckSignatureResult(const DKIMCheckSignatureJob::CheckSignatureResult &checkResult); 0035 void slotCheckAuthenticationStatusResult(const MessageViewer::DKIMAuthenticationStatusInfo &info); 0036 void checkSignature(const QList<DKIMCheckSignatureJob::DKIMCheckSignatureAuthenticationResult> &lst = {}); 0037 void storeKey(const QString &key, const QString &domain, const QString &selector); 0038 void storeInKeyManager(const QString &key, const QString &domain, const QString &selector, bool verify); 0039 void storeResult(const DKIMCheckSignatureJob::CheckSignatureResult &checkResult); 0040 void generateRule(const DKIMCheckSignatureJob::CheckSignatureResult &checkResult); 0041 void checkAuthenticationResults(); 0042 DKIMCheckPolicy mCheckPolicy; 0043 KMime::Message::Ptr mMessage; 0044 Akonadi::Item mAkonadiItem; 0045 DKIMHeaderParser mHeaderParser; 0046 }; 0047 }