QtPass 1.5.1
Multi-platform GUI for pass, the standard unix password manager.
Loading...
Searching...
No Matches
pass.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2016 Anne Jan Brouwer
2// SPDX-License-Identifier: GPL-3.0-or-later
3#ifndef SRC_PASS_H_
4#define SRC_PASS_H_
5
6#include "enums.h"
7#include "executor.h"
8#include "userinfo.h"
9
10#include <QProcess>
11#include <QQueue>
12#include <QString>
13#include <cassert>
14#include <map>
15
20class Pass : public QObject {
21 Q_OBJECT
22
23 bool wrapperRunning;
24 QStringList env;
25
26protected:
28
30
31public:
32 Pass();
33 void init();
34
35 virtual ~Pass() {}
36 virtual void GitInit() = 0;
37 virtual void GitPull() = 0;
38 virtual void GitPull_b() = 0;
39 virtual void GitPush() = 0;
40 virtual void Show(QString file) = 0;
41 virtual void OtpGenerate(QString file) = 0;
42 virtual void Insert(QString file, QString value, bool force) = 0;
43 virtual void Remove(QString file, bool isDir) = 0;
44 virtual void Move(const QString srcDir, const QString dest,
45 const bool force = false) = 0;
46 virtual void Copy(const QString srcDir, const QString dest,
47 const bool force = false) = 0;
48 virtual void Init(QString path, const QList<UserInfo> &users) = 0;
49 virtual auto Generate_b(unsigned int length, const QString &charset)
50 -> QString;
51
52 void GenerateGPGKeys(QString batch);
53 auto listKeys(QStringList keystrings, bool secret = false) -> QList<UserInfo>;
54 auto listKeys(const QString &keystring = "", bool secret = false)
55 -> QList<UserInfo>;
56 void updateEnv();
57 static auto getGpgIdPath(const QString &for_file) -> QString;
58 static auto getRecipientList(const QString &for_file) -> QStringList;
59 // TODO(bezet): getRecipientString is useless, refactor
60 static auto getRecipientString(const QString &for_file,
61 const QString &separator = " ",
62 int *count = NULL) -> QStringList;
63
64protected:
65 void executeWrapper(PROCESS id, const QString &app, const QStringList &args,
66 bool readStdout = true, bool readStderr = true);
67 auto generateRandomPassword(const QString &charset, unsigned int length)
68 -> QString;
69 auto boundedRandom(quint32 bound) -> quint32;
70
71 virtual void executeWrapper(PROCESS id, const QString &app,
72 const QStringList &args, QString input,
73 bool readStdout = true, bool readStderr = true);
74
75protected slots:
76 virtual void finished(int id, int exitCode, const QString &out,
77 const QString &err);
78
79signals:
80 void error(QProcess::ProcessError);
82 void statusMsg(const QString &, int);
83 void critical(const QString &, const QString &);
84
85 void processErrorExit(int exitCode, const QString &err);
86
87 void finishedAny(const QString &, const QString &);
88 void finishedGitInit(const QString &, const QString &);
89 void finishedGitPull(const QString &, const QString &);
90 void finishedGitPush(const QString &, const QString &);
91 void finishedShow(const QString &);
92 void finishedOtpGenerate(const QString &);
93 void finishedInsert(const QString &, const QString &);
94 void finishedRemove(const QString &, const QString &);
95 void finishedInit(const QString &, const QString &);
96 void finishedMove(const QString &, const QString &);
97 void finishedCopy(const QString &, const QString &);
98 void finishedGenerate(const QString &, const QString &);
99 void finishedGenerateGPGKeys(const QString &, const QString &);
100};
101
102#endif // SRC_PASS_H_
Executes external commands for handleing password, git and other data.
Definition executor.h:14
Acts as an abstraction for pass or pass imitation.
Definition pass.h:20
void init()
Definition pass.cpp:61
void startingExecuteWrapper()
void GenerateGPGKeys(QString batch)
Pass::GenerateGPGKeys internal gpg keypair generator . .
Definition pass.cpp:132
void critical(const QString &, const QString &)
virtual void Copy(const QString srcDir, const QString dest, const bool force=false)=0
void finishedCopy(const QString &, const QString &)
void finishedShow(const QString &)
void finishedRemove(const QString &, const QString &)
virtual void GitInit()=0
virtual void GitPull()=0
void finishedMove(const QString &, const QString &)
void statusMsg(const QString &, int)
auto boundedRandom(quint32 bound) -> quint32
Definition pass.cpp:374
void finishedGitInit(const QString &, const QString &)
virtual void Remove(QString file, bool isDir)=0
Pass()
Pass::Pass wrapper for using either pass or the pass imitation.
Definition pass.cpp:31
static auto getRecipientString(const QString &for_file, const QString &separator=" ", int *count=NULL) -> QStringList
Pass::getRecipientString formated string for use with GPG.
Definition pass.cpp:364
virtual void Show(QString file)=0
void executeWrapper(PROCESS id, const QString &app, const QStringList &args, bool readStdout=true, bool readStderr=true)
Definition pass.cpp:45
void finishedAny(const QString &, const QString &)
static auto getRecipientList(const QString &for_file) -> QStringList
Pass::getRecipientList return list of gpg-id's to encrypt for.
Definition pass.cpp:341
Enums::PROCESS PROCESS
Definition pass.h:29
auto listKeys(QStringList keystrings, bool secret=false) -> QList< UserInfo >
Pass::listKeys list users.
Definition pass.cpp:147
void finishedInsert(const QString &, const QString &)
virtual void GitPull_b()=0
void finishedInit(const QString &, const QString &)
virtual void GitPush()=0
static auto getGpgIdPath(const QString &for_file) -> QString
Pass::getGpgIdPath return gpgid file path for some file (folder).
Definition pass.cpp:312
virtual void Insert(QString file, QString value, bool force)=0
void finishedOtpGenerate(const QString &)
virtual auto Generate_b(unsigned int length, const QString &charset) -> QString
Pass::Generate use either pwgen or internal password generator.
Definition pass.cpp:85
virtual ~Pass()
Definition pass.h:35
Executor exec
Definition pass.h:27
void processErrorExit(int exitCode, const QString &err)
void finishedGitPull(const QString &, const QString &)
void finishedGitPush(const QString &, const QString &)
virtual void Move(const QString srcDir, const QString dest, const bool force=false)=0
void finishedGenerate(const QString &, const QString &)
virtual void OtpGenerate(QString file)=0
void updateEnv()
Pass::updateEnv update the execution environment (used when switching profiles)
Definition pass.cpp:270
void error(QProcess::ProcessError)
virtual void finished(int id, int exitCode, const QString &out, const QString &err)
Pass::processFinished reemits specific signal based on what process has finished.
Definition pass.cpp:217
void finishedGenerateGPGKeys(const QString &, const QString &)
virtual void Init(QString path, const QList< UserInfo > &users)=0
auto generateRandomPassword(const QString &charset, unsigned int length) -> QString
Definition pass.cpp:389
PROCESS
Definition enums.h:18