kio
ksmimecrypto.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
00018
00019
00020
00021 #ifndef __KSMIMECRYPTO_H
00022 #define __KSMIMECRYPTO_H
00023
00024
00025 #include <qcstring.h>
00026 #include <qptrlist.h>
00027 #include "ksslpkcs12.h"
00028 #include "ksslcertificate.h"
00029
00030 class KOpenSSLProxy;
00031 class KSMIMECryptoPrivate;
00032
00033 class KIO_EXPORT KSMIMECrypto {
00034 public:
00035 KSMIMECrypto();
00036 ~KSMIMECrypto();
00037
00038 enum algo { KSC_C_DES3_CBC = 1,
00039 KSC_C_RC2_CBC_128,
00040 KSC_C_RC2_CBC_64,
00041 KSC_C_DES_CBC,
00042 KSC_C_RC2_CBC_40 };
00043
00044 enum rc { KSC_R_OK,
00045 KSC_R_OTHER,
00046 KSC_R_NO_SSL,
00047 KSC_R_NOCIPHER,
00048 KSC_R_NOMEM,
00049 KSC_R_FORMAT,
00050 KSC_R_WRONGKEY,
00051 KSC_R_VERIFY
00052 };
00053
00063 rc signMessage(const QCString &clearText,
00064 QByteArray &cipherText,
00065 const KSSLPKCS12 &privKey,
00066 const QPtrList<KSSLCertificate> &certs,
00067 bool detached);
00068
00078 rc checkDetachedSignature(const QCString &clearText,
00079 const QByteArray &signature,
00080 QPtrList<KSSLCertificate> &foundCerts);
00081
00091 rc checkOpaqueSignature(const QByteArray &signedText,
00092 QCString &clearText,
00093 QPtrList<KSSLCertificate> &foundCerts);
00094
00107 rc encryptMessage(const QCString &clearText,
00108 QByteArray &cipherText,
00109 algo algorithm,
00110 const QPtrList<KSSLCertificate> &recip);
00111
00119 rc decryptMessage(const QByteArray &cipherText,
00120 QCString &clearText,
00121 const KSSLPKCS12 &privKey);
00122
00123 private:
00124 KSMIMECryptoPrivate *priv;
00125 KOpenSSLProxy *kossl;
00126 };
00127
00128 #endif