KNewStuff
security.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SECURITY_H
00018 #define SECURITY_H
00019
00020
00021 #include <qmap.h>
00022 #include <qobject.h>
00023
00024 class KProcIO;
00025 class KProcess;
00026
00027 struct KeyStruct {
00028 QString id;
00029 QString name;
00030 QString mail;
00031 bool trusted;
00032 bool secret;
00033 };
00034
00042 namespace KNS {
00043
00044 class Security : public QObject
00045 {
00046 Q_OBJECT
00047 public:
00048 static Security* const ref()
00049 {
00050 static Security *m_ref;
00051 if (!m_ref) m_ref = new Security();
00052 return m_ref;
00053 }
00054 ~Security();
00055
00056
00062 void checkValidity(const QString &fileName);
00063
00070 void signFile(const QString &fileName);
00077 KeyStruct signatureKey() {return m_signatureKey;}
00078
00079 enum Results {
00080 MD5_OK = 1,
00081 SIGNED_OK = 2,
00082 SIGNED_BAD = 4,
00083 TRUSTED = 8,
00084 UNKNOWN = 16,
00085 SIGNED_BAD_CLEAR = 27,
00086 BAD_PASSPHRASE = 32
00087 };
00088
00089 public slots:
00091 void readKeys();
00093 void readSecretKeys();
00096 void slotCheckValidity();
00097
00101 void slotSignFile();
00102
00103 private:
00104 Security();
00105
00106 enum RunMode {
00107 List = 0,
00108 ListSecret,
00109 Verify,
00110 Sign
00111 };
00112
00113 KeyStruct m_signatureKey;
00114 int m_result;
00115 int m_runMode;
00116 bool m_gpgRunning;
00117 bool m_keysRead;
00118 QMap<QString, KeyStruct> m_keys;
00119 QString m_fileName;
00120 QString m_secretKey;
00121
00122 private slots:
00123 void slotProcessExited(KProcess *process);
00124 void slotDataArrived(KProcIO *process);
00125
00126 signals:
00131 void validityResult(int result);
00136 void fileSigned(int result);
00137 };
00138
00139 }
00140
00141 #endif