certmanager/lib
cryptobackend.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __KLEO_CRYPTOBACKEND_H__
00034 #define __KLEO_CRYPTOBACKEND_H__
00035
00036 namespace Kleo {
00037 class CryptoConfig;
00038 class KeyListJob;
00039 class KeyGenerationJob;
00040 class ImportJob;
00041 class ExportJob;
00042 class DownloadJob;
00043 class DeleteJob;
00044 class EncryptJob;
00045 class DecryptJob;
00046 class SignJob;
00047 class VerifyDetachedJob;
00048 class VerifyOpaqueJob;
00049 class SignEncryptJob;
00050 class DecryptVerifyJob;
00051 class RefreshKeysJob;
00052 class SpecialJob;
00053 }
00054
00055 class QString;
00056 class QVariant;
00057 template <typename T_Key, typename T_Value> class QMap;
00058
00059 namespace Kleo {
00060
00061 class CryptoBackend {
00062 public:
00063 class Protocol;
00064
00065 static const char OpenPGP[];
00066 static const char SMIME[];
00067
00068 virtual ~CryptoBackend() {}
00069
00070 virtual QString name() const = 0;
00071 virtual QString displayName() const = 0;
00072
00073 virtual bool checkForOpenPGP( QString * reason=0 ) const = 0;
00074 virtual bool checkForSMIME( QString * reason=0 ) const = 0;
00075 virtual bool checkForProtocol( const char * name, QString * reason=0 ) const = 0;
00076
00077 virtual bool supportsOpenPGP() const = 0;
00078 virtual bool supportsSMIME() const = 0;
00079 virtual bool supportsProtocol( const char * name ) const = 0;
00080
00081 virtual CryptoConfig * config() const = 0;
00082
00083 virtual Protocol * openpgp() const = 0;
00084 virtual Protocol * smime() const = 0;
00085 virtual Protocol * protocol( const char * name ) const = 0;
00086
00087 virtual const char * enumerateProtocols( int i ) const = 0;
00088 };
00089
00090 class CryptoBackend::Protocol {
00091 public:
00092 virtual ~Protocol() {}
00093
00094 virtual QString name() const = 0;
00095
00096 virtual QString displayName() const = 0;
00097
00098 virtual KeyListJob * keyListJob( bool remote=false, bool includeSigs=false, bool validate=false ) const = 0;
00099 virtual EncryptJob * encryptJob( bool armor=false, bool textmode=false ) const = 0;
00100 virtual DecryptJob * decryptJob() const = 0;
00101 virtual SignJob * signJob( bool armor=false, bool textMode=false ) const = 0;
00102 virtual VerifyDetachedJob * verifyDetachedJob( bool textmode=false) const = 0;
00103 virtual VerifyOpaqueJob * verifyOpaqueJob( bool textmode=false ) const = 0;
00104 virtual KeyGenerationJob * keyGenerationJob() const = 0;
00105 virtual ImportJob * importJob() const = 0;
00106 virtual ExportJob * publicKeyExportJob( bool armor=false ) const = 0;
00107 virtual ExportJob * secretKeyExportJob( bool armor=false ) const = 0;
00108 virtual DownloadJob * downloadJob( bool armor=false ) const = 0;
00109 virtual DeleteJob * deleteJob() const = 0;
00110 virtual SignEncryptJob * signEncryptJob( bool armor=false, bool textMode=false ) const = 0;
00111 virtual DecryptVerifyJob * decryptVerifyJob( bool textmode=false ) const = 0;
00112 virtual RefreshKeysJob * refreshKeysJob() const = 0;
00113
00114 virtual SpecialJob * specialJob( const char * type, const QMap<QString,QVariant> & args ) const = 0;
00115 };
00116
00117 }
00118
00119 #endif // __KLEO_CRYPTOBACKEND_H__
|