File indexing completed on 2024-06-23 05:14:00
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 crypto/signencrypttask.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 class QString; 0022 0023 namespace GpgME 0024 { 0025 class Key; 0026 } 0027 0028 namespace Kleo 0029 { 0030 class OverwritePolicy; 0031 class Input; 0032 class Output; 0033 } 0034 0035 namespace Kleo 0036 { 0037 namespace Crypto 0038 { 0039 0040 class SignEncryptTask : public Task 0041 { 0042 Q_OBJECT 0043 public: 0044 explicit SignEncryptTask(QObject *parent = nullptr); 0045 ~SignEncryptTask() override; 0046 0047 void setInputFileName(const QString &fileName); 0048 void setInputFileNames(const QStringList &fileNames); 0049 void setInput(const std::shared_ptr<Input> &input); 0050 void setOutput(const std::shared_ptr<Output> &output); 0051 void setOutputFileName(const QString &fileName); 0052 QString outputFileName() const; 0053 void setSigners(const std::vector<GpgME::Key> &signers); 0054 void setRecipients(const std::vector<GpgME::Key> &recipients); 0055 0056 void setSign(bool sign); 0057 void setEncrypt(bool encrypt); 0058 void setDetachedSignature(bool detached); 0059 void setEncryptSymmetric(bool symmetric); 0060 void setClearsign(bool clearsign); 0061 void setCreateArchive(bool archive); 0062 0063 void setOverwritePolicy(const std::shared_ptr<OverwritePolicy> &policy); 0064 GpgME::Protocol protocol() const override; 0065 0066 void cancel() override; 0067 QString label() const override; 0068 QString tag() const override; 0069 0070 private: 0071 void doStart() override; 0072 unsigned long long inputSize() const override; 0073 0074 private: 0075 class Private; 0076 kdtools::pimpl_ptr<Private> d; 0077 Q_PRIVATE_SLOT(d, void slotResult(const GpgME::SigningResult &)) 0078 Q_PRIVATE_SLOT(d, void slotResult(const GpgME::SigningResult &, const GpgME::EncryptionResult &)) 0079 Q_PRIVATE_SLOT(d, void slotResult(const GpgME::EncryptionResult &)) 0080 }; 0081 0082 } 0083 }