File indexing completed on 2024-06-16 04:55:58
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 crypto/signemailtask.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2007 Klarälvdalens Datakonsult AB 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include <crypto/task.h> 0013 0014 #include <utils/pimpl_ptr.h> 0015 0016 #include <gpgme++/global.h> 0017 0018 #include <memory> 0019 #include <vector> 0020 0021 namespace GpgME 0022 { 0023 class Key; 0024 } 0025 0026 namespace Kleo 0027 { 0028 class Input; 0029 class Output; 0030 } 0031 0032 namespace Kleo 0033 { 0034 namespace Crypto 0035 { 0036 0037 class SignEMailTask : public Task 0038 { 0039 Q_OBJECT 0040 public: 0041 explicit SignEMailTask(QObject *parent = nullptr); 0042 ~SignEMailTask() override; 0043 0044 void setInput(const std::shared_ptr<Input> &input); 0045 void setOutput(const std::shared_ptr<Output> &output); 0046 void setSigners(const std::vector<GpgME::Key> &recipients); 0047 0048 void setDetachedSignature(bool detached); 0049 void setClearsign(bool clear); 0050 0051 GpgME::Protocol protocol() const override; 0052 0053 void cancel() override; 0054 QString label() const override; 0055 0056 QString micAlg() const; 0057 0058 private: 0059 void doStart() override; 0060 unsigned long long inputSize() const override; 0061 0062 private: 0063 class Private; 0064 kdtools::pimpl_ptr<Private> d; 0065 Q_PRIVATE_SLOT(d, void slotResult(const GpgME::SigningResult &)) 0066 }; 0067 0068 } 0069 }