File indexing completed on 2024-06-23 05:18:33
0001 /* 0002 SPDX-FileCopyrightText: 2009 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.net 0003 SPDX-FileCopyrightText: 2009 Leo Franchi <lfranchi@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include "contentjobbase.h" 0011 #include "messagecomposer_export.h" 0012 #include <Libkleo/Enum> 0013 #include <MessageComposer/InfoPart> 0014 0015 #include <gpgme++/key.h> 0016 #include <vector> 0017 0018 namespace KMime 0019 { 0020 class Content; 0021 } 0022 0023 namespace MessageComposer 0024 { 0025 class SignJobPrivate; 0026 0027 /** 0028 Signs the contents of a message. 0029 Used as a subjob of CryptoMessage 0030 */ 0031 class MESSAGECOMPOSER_EXPORT SignJob : public ContentJobBase 0032 { 0033 Q_OBJECT 0034 0035 public: 0036 explicit SignJob(QObject *parent = nullptr); 0037 ~SignJob() override; 0038 0039 void setContent(KMime::Content *content); 0040 void setCryptoMessageFormat(Kleo::CryptoMessageFormat format); 0041 void setSigningKeys(const std::vector<GpgME::Key> &signers); 0042 0043 void setSkeletonMessage(KMime::Message *skeletonMessage); 0044 void setProtectedHeaders(bool protectedHeaders); 0045 0046 [[nodiscard]] KMime::Content *origContent(); 0047 0048 protected Q_SLOTS: 0049 void doStart() override; 0050 void slotResult(KJob *job) override; 0051 void process() override; 0052 0053 private: 0054 Q_DECLARE_PRIVATE(SignJob) 0055 }; 0056 }