File indexing completed on 2024-09-22 04:49:58

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Daniel Vrátil <dvratil@kde.org>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-only
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QTemporaryDir>
0010 
0011 class GPGHelper
0012 {
0013 public:
0014     enum CryptoType { OpenPGP, SMIME };
0015 
0016     explicit GPGHelper(const QString &templateGnupgHome);
0017     ~GPGHelper();
0018 
0019     bool isValid() const
0020     {
0021         return mValid;
0022     }
0023 
0024     QString gnupgHome() const;
0025 
0026     QByteArray decrypt(const QByteArray &enc, CryptoType crypto) const;
0027     QByteArray encrypt(const QByteArray &dec, CryptoType crypto) const;
0028 
0029     QString encryptionKeyFp(const QByteArray &encMsg, GPGHelper::CryptoType crypto) const;
0030 
0031 private:
0032     QByteArray runGpg(const QByteArray &in, CryptoType crypt, const QStringList &args) const;
0033 
0034     bool mValid;
0035     QTemporaryDir mTmpDir;
0036 };