File indexing completed on 2024-06-23 05:18:33

0001 /*
0002   SPDX-FileCopyrightText: 2020 Sandro Knauß <sknauss@kde.org>
0003 
0004   SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "contentjobbase.h"
0010 #include "infopart.h"
0011 #include "messagecomposer_export.h"
0012 
0013 namespace KMime
0014 {
0015 class Content;
0016 }
0017 
0018 namespace MessageComposer
0019 {
0020 class ProtectedHeadersJobPrivate;
0021 
0022 /**
0023   Copies headers from skeleton message to content.
0024   It is used for Protected Headers for Cryptographic E-mail
0025   currently a draft for RFC:
0026   https://datatracker.ietf.org/doc/draft-autocrypt-lamps-protected-headers/
0027   Used as a subjob of EncryptJob/SignJob/SignEncryptJob
0028 */
0029 class MESSAGECOMPOSER_EXPORT ProtectedHeadersJob : public ContentJobBase
0030 {
0031     Q_OBJECT
0032 
0033 public:
0034     explicit ProtectedHeadersJob(QObject *parent = nullptr);
0035     ~ProtectedHeadersJob() override;
0036 
0037     void setContent(KMime::Content *content);
0038     void setSkeletonMessage(KMime::Message *skeletonMessage);
0039 
0040     void setObvoscate(bool obvoscate);
0041 
0042 protected Q_SLOTS:
0043     void doStart() override;
0044     void process() override;
0045 
0046 private:
0047     Q_DECLARE_PRIVATE(ProtectedHeadersJob)
0048 };
0049 }