diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 2bda8f7717adf28da4af0d34fb82f63d2868c31d (patch) | |
tree | 8d927b7b47a90c4adb646482a52613f58acd6f8c /kgpg/kgpginterface.h | |
download | tdeutils-2bda8f7717adf28da4af0d34fb82f63d2868c31d.tar.gz tdeutils-2bda8f7717adf28da4af0d34fb82f63d2868c31d.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeutils@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kgpg/kgpginterface.h')
-rw-r--r-- | kgpg/kgpginterface.h | 404 |
1 files changed, 404 insertions, 0 deletions
diff --git a/kgpg/kgpginterface.h b/kgpg/kgpginterface.h new file mode 100644 index 0000000..4fb21b2 --- /dev/null +++ b/kgpg/kgpginterface.h @@ -0,0 +1,404 @@ +/*************************************************************************** + kgpginterface.h - description + ------------------- + begin : Sat Jun 29 2002 + copyright : (C) 2002 by Jean-Baptiste Mardelle + email : bj@altern.org + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef KGPGINTERFACE_H +#define KGPGINTERFACE_H + + +#include <qobject.h> +#include <kdialogbase.h> +#include <kurl.h> +#include <qdatetime.h> + +class QLabel; +class KProcIO; +class KProcess; +class KLed; + +/** + * Encrypt a file using gpg. + */ + +class KgpgInterface : public QObject +{ + + Q_OBJECT + +public: + /** + * Initialize the class + */ + KgpgInterface(); + + /* + * Destructor for the class. + */ + ~KgpgInterface(); + +public slots: + + /**Encrypt file function + * @param userIDs the recipients key id's. + * @param srcUrl Kurl of the file to encrypt. + * @param destUrl Kurl for the encrypted file. + * @param Options String with the wanted gpg options. ex: "--armor" + * @param symetrical bool whether the encryption should be symmetrical. + */ + void KgpgEncryptFile(QStringList encryptKeys,KURL srcUrl,KURL destUrl,QStringList Options=QString::null,bool symetrical=false); + + /**Encrypt file function + * @param userIDs the key user identification. + * @param srcUrl Kurl of the file to decrypt. + * @param destUrl Kurl for the decrypted file. + * @param chances int number of trials left for decryption (used only as an info displayed in the password dialog) + */ + void KgpgDecryptFile(KURL srcUrl,KURL destUrl,QStringList Options=QStringList()); + + /**Sign file function + * @param keyID QString the signing key ID. + * @param srcUrl Kurl of the file to sign. + * @param Options String with the wanted gpg options. ex: "--armor" + */ + void KgpgSignFile(QString keyID,KURL srcUrl,QStringList Options=QStringList()); + + /**Verify file function + * @param sigUrl Kurl of the signature file. + * @param srcUrl Kurl of the file to be verified. If empty, gpg will try to find it using the signature file name (by removing the .sig extensio) + */ + void KgpgVerifyFile(KURL sigUrl,KURL srcUrl=KURL()) ; + + void KgpgVerifyText(QString text); + void slotverifyread(KProcIO *p); + void slotverifyresult(KProcess*); + + + /**Import key function + * @param url Kurl the url of the key file. Allows public & secret key import. + */ + void importKeyURL(KURL url); + /**Import key function + * @param keystr QString containing th key. Allows public & secret key import. + */ + void importKey(QString keystr); + + /**Key signature function + * @param keyID QString the ID of the key to be signed + * @param signKeyID QString the ID of the signing key + * @param signKeyMail QString the name of the signing key (only used to prompt user for passphrase) + * @param local bool should the signature be local + */ + void KgpgSignKey(QString keyID,QString signKeyID,QString signKeyMail=QString::null,bool local=false,int checking=0); + + /**Key signature deletion function + * @param keyID QString the ID of the key + * @param signKeyID QString the ID of the signature key + */ + void KgpgDelSignature(QString keyID,QString signKeyID); + + /**Encrypt text function + * @param text QString text to be encrypted. + * @param userIDs the recipients key id's. + * @param Options String with the wanted gpg options. ex: "--armor" + * returns the encrypted text or empty string if encyption failed + */ + void KgpgEncryptText(QString text,QStringList userIDs, QStringList Options=QString::null); + + /**Decrypt text function + * @param text QString text to be decrypted. + * @param userID QString the name of the decryption key (only used to prompt user for passphrase) + */ + //static QString KgpgDecryptText(QString text,QString userID); + void KgpgDecryptText(QString text,QStringList Options=QString::null); + void txtdecryptfin(KProcess *); + + /**Extract list of photographic user id's + * @param keyID the recipients key id's. + */ + void KgpgGetPhotoList(QString keyID); + + void getOutput(KProcess *, char *data, int ); + void getCmdOutput(KProcess *p, char *data, int ); + + QString getKey(QStringList IDs, bool attributes); + + void KgpgKeyExpire(QString keyID,QDate date,bool unlimited); + void KgpgTrustExpire(QString keyID,int keyTrust); + void KgpgChangePass(QString keyID); + + void KgpgRevokeKey(QString keyID,QString revokeUrl,int reason,QString description); + void revokeover(KProcess *); + void revokeprocess(KProcIO *p); + void KgpgDeletePhoto(QString keyID,QString uid); + void KgpgAddPhoto(QString keyID,QString imagePath); + + void KgpgAddUid(QString keyID,QString name,QString email,QString comment); + + void KgpgDecryptFileToText(KURL srcUrl,QStringList Options); + void KgpgSignText(QString text,QString userIDs, QStringList Options); + + static QString getGpgSetting(QString name,QString configFile); + static QString getGpgMultiSetting(QString name,QString configFile); + static void setGpgSetting(QString name,QString ID,QString url); + static void setGpgMultiSetting(QString name,QStringList values,QString url); + static bool getGpgBoolSetting(QString name,QString configFile); + static void setGpgBoolSetting(QString name,bool enable,QString url); + static QStringList getGpgGroupNames(QString configFile); + static QStringList getGpgGroupSetting(QString name,QString configFile); + static void setGpgGroupSetting(QString name,QStringList values, QString configFile); + static void delGpgGroup(QString name, QString configFile); + static QString checkForUtf8(QString txt); + static QString checkForUtf8bis(QString txt); + static int getGpgVersion(); + + + +private slots: + + void openSignConsole(); + /** + * Checks output of the signature process + */ + void signover(KProcess *); + /** + * Read output of the signature process + */ + void sigprocess(KProcIO *p); + + /** + * Checks if the encrypted file was saved. + */ + void encryptfin(KProcess *); + + /** + * Checks if the decrypted file was saved. + */ + void decryptfin(KProcess *); + + /** + * Checks if the signing was successful. + */ + void signfin(KProcess *p); + + /** + * Checks the number of uid's for a key-> if greater than one, key signature will switch to konsole mode + */ + int checkuid(QString KeyID); + + /** + * Reads output of the delete signature process + */ + void delsigprocess(KProcIO *p); + /** + * Checks output of the delete signature process + */ + void delsignover(KProcess *p); + /** + * Checks output of the import process + */ + void importURLover(KProcess *p); + void importover(KProcess *); + /** + * Read output of the import process + */ + void importprocess(KProcIO *p); + /** + * Reads output of the current process + allow overwriting of a file + */ + void readprocess(KProcIO *p); + /** + * Reads output of the current encryption process + allow overwriting of a file + */ + void readencprocess(KProcIO *p); + /** + * Reads output of the current signing process + allow overwriting of a file + */ + void readsignprocess(KProcIO *p); + /** + * Reads output of the current decryption process + allow overwriting of a file + */ + void readdecprocess(KProcIO *p); + /** + * Checks output of the verify process + */ + void verifyfin(KProcess *p); + + void expprocess(KProcIO *p); + void expover(KProcess*); + void trustprocess(KProcIO *p); + void passprocess(KProcIO *p); + void trustover(KProcess *); + void passover(KProcess *); + + void txtreadencprocess(KProcIO *p); + + void txtencryptfin(KProcess *); + + void delphotoover(KProcess *); + void delphotoprocess(KProcIO *p); + void addphotoover(KProcess *); + void addphotoprocess(KProcIO *p); + + void adduidover(KProcess *); + void adduidprocess(KProcIO *p); + + void slotReadKey(KProcIO *p); + void photoreadover(KProcess *); + void photoreadprocess(KProcIO *p); + bool isPhotoId(int uid); + void updateIDs(QString txtString); + + void txtsignprocess(KProcIO *p); + void txtsignfin(KProcess *); + + //void txtdecryptfin(KProcess *); + + +signals: + + void missingSignature(QString); + void verifyOver(QString,QString); + + /** + * emitted when a txt decryption failed. returns log output + */ + void txtdecryptionfailed(QString); + /** + * emitted when a txt encryption starts. + */ + void txtencryptionstarted(); + + /** + * emitted when a txt decryption finished. returns decrypted text + */ + void txtdecryptionfinished(QString); + /** + * emitted when a txt encryption finished. returns encrypted text + */ + void txtencryptionfinished(QString); + /** + * emitted when an error occurred + */ + void errormessage(QString); + /** + * true if encryption successful, false on error. + */ + void encryptionfinished(KURL); + /** + * true if key signature deletion successful, false on error. + */ + void delsigfinished(bool); + + /** + * Signature process result: 0=successful, 1=error, 2=bad passphrase + */ + void signatureFinished(int); + /** + * emitted when user cancels process + */ + void processaborted(bool); + /** + * emitted when the process starts + */ + void processstarted(QString); + /** + * true if decryption successful, false on error. + */ + void decryptionfinished(); + /** + * emitted if bad passphrase was giver + */ + void badpassphrase(bool); + /** + * true if import successful, false on error. + */ + void importfinished(QStringList); + /** + * true if verify successful, false on error. + */ + void verifyfinished(); + /** + * emmitted if signature key is missing & user want to import it from keyserver + */ + void verifyquerykey(QString ID); + /** + * true if signature successful, false on error. + */ + void signfinished(); + void delPhotoFinished(); + void delPhotoError(QString); + + void addPhotoFinished(); + void addPhotoError(QString); + void refreshOrphaned(); + + void addUidFinished(); + void addUidError(QString); + + void trustfinished(); + void revokecertificate(QString); + void revokeurl(QString); + void expirationFinished(int); + void signalPhotoList(QStringList); + void passwordChanged(); + + void txtSignOver(QString); + + +private: + /** + * @internal structure for communication + */ + QString message,tempKeyFile,userIDs,output,keyString,txtToEncrypt,log; + QCString passphrase; + bool deleteSuccess,konsLocal,anonymous,decfinished,decok,badmdc,revokeSuccess,addSuccess,delSuccess; + bool signmiss; + QString signID; + int signSuccess,expSuccess,trustValue,konsChecked; + int step,signb,sigsearch,expirationDelay; + QString konsSignKey, konsKeyID,errMessage; + int revokeReason,photoCount; + QString revokeDescription,certificateUrl,photoUrl; + QStringList photoList; + QString uidName, uidEmail, uidComment; + KURL sourceFile; + QString decryptUrl; + + QString gpgOutput; + + /** + * @internal structure for the file information + */ + KURL file; + +}; + +class Md5Widget :public KDialogBase +{ + Q_OBJECT +public: + Md5Widget(QWidget *parent=0, const char *name=0,KURL url=KURL()); + ~Md5Widget(); +public slots: + void slotApply(); +private: + QString mdSum; + KLed *KLed1; + QLabel *TextLabel1_2; +}; + +#endif // KGPGINTERFACE_HKGPGINTERFACE_H + |