sailfish-safe

Sailfish frontend for safe(1)
git clone git://git.z3bra.org/sailfish-safe.git
Log | Files | Refs | README | LICENSE

safe.h (1697B)


      1 #ifndef SAFE_H
      2 #define SAFE_H
      3 
      4 #include <QObject>
      5 #include <QVector>
      6 
      7 namespace Safe
      8 {
      9 class LockTask;
     10 class UnlockTask;
     11 class DecryptTask;
     12 class EncryptTask;
     13 
     14 LockTask *lock();
     15 UnlockTask *unlock(const QString &passphrase);
     16 DecryptTask *decrypt(const QString &file);
     17 EncryptTask *encrypt(const QString &data, const QString &file);
     18 
     19 
     20 class Task : public QObject {
     21     Q_OBJECT
     22 public:
     23     bool error() const;
     24     QString errorString() const;
     25 
     26 Q_SIGNALS:
     27     void finished();
     28 
     29 protected:
     30     explicit Task(QObject *parent = nullptr);
     31 
     32     virtual void run() = 0;
     33 
     34     void setError(const QString &error);
     35 
     36 private Q_SLOTS:
     37     void start();
     38 
     39 private:
     40     QString mError;
     41 };
     42 
     43 class LockTask : public Task {
     44     Q_OBJECT
     45     friend LockTask *Safe::lock();
     46 public:
     47     QString content() const;
     48 
     49 protected:
     50     void run() override;
     51 
     52 private:
     53     LockTask();
     54 };
     55 
     56 class UnlockTask : public Task {
     57     Q_OBJECT
     58     friend UnlockTask *Safe::unlock(const QString &);
     59 public:
     60     QString content() const;
     61 
     62 protected:
     63     void run() override;
     64 
     65 private:
     66     UnlockTask(const QString &passphrase);
     67 
     68     QString mPassphrase;
     69 };
     70 
     71 class DecryptTask : public Task {
     72     Q_OBJECT
     73     friend DecryptTask *Safe::decrypt(const QString &);
     74 public:
     75     QString content() const;
     76 
     77 protected:
     78     void run() override;
     79 
     80 private:
     81     DecryptTask(const QString &file);
     82 
     83     QString mFile;
     84     QString mContent;
     85 };
     86 
     87 class EncryptTask : public Task {
     88     Q_OBJECT
     89     friend EncryptTask *Safe::encrypt(const QString &, const QString &);
     90 protected:
     91     void run() override;
     92 
     93 private:
     94     EncryptTask(const QString &file, const QString &content);
     95 
     96     QString mFile;
     97     QString mContent;
     98 };
     99 
    100 } // namespace Safe
    101 
    102 #endif // SAFE_H