00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <qstring.h>
00023 #include <qstringlist.h>
00024 #include "ksslcertificate.h"
00025 #include "ksslsigners.h"
00026 #include <stdlib.h>
00027 #include <kdebug.h>
00028 #include <dcopclient.h>
00029 #include <kdatastream.h>
00030
00031
00032 KSSLSigners::KSSLSigners() {
00033 dcc = new DCOPClient;
00034 dcc->attach();
00035 }
00036
00037
00038 KSSLSigners::~KSSLSigners() {
00039 delete dcc;
00040 }
00041
00042 bool KSSLSigners::addCA(KSSLCertificate& cert,
00043 bool ssl,
00044 bool email,
00045 bool code) {
00046 return addCA(cert.toString(), ssl, email, code);
00047 }
00048
00049
00050 bool KSSLSigners::addCA(QString cert,
00051 bool ssl,
00052 bool email,
00053 bool code) {
00054 QByteArray data, retval;
00055 QCString rettype;
00056 QDataStream arg(data, IO_WriteOnly);
00057 arg << cert;
00058 arg << ssl << email << code;
00059 bool rc = dcc->call("kded", "kssld",
00060 "caAdd(QString,bool,bool,bool)",
00061 data, rettype, retval);
00062
00063 if (rc && rettype == "bool") {
00064 QDataStream retStream(retval, IO_ReadOnly);
00065 bool drc;
00066 retStream >> drc;
00067 return drc;
00068 }
00069
00070 return false;
00071 }
00072
00073
00074 bool KSSLSigners::regenerate() {
00075 QByteArray data, retval;
00076 QCString rettype;
00077 QDataStream arg(data, IO_WriteOnly);
00078 bool rc = dcc->call("kded", "kssld",
00079 "caRegenerate()",
00080 data, rettype, retval);
00081
00082 if (rc && rettype == "bool") {
00083 QDataStream retStream(retval, IO_ReadOnly);
00084 bool drc;
00085 retStream >> drc;
00086 return drc;
00087 }
00088
00089 return false;
00090 }
00091
00092
00093 bool KSSLSigners::useForSSL(KSSLCertificate& cert) {
00094 return useForSSL(cert.getSubject());
00095 }
00096
00097
00098 bool KSSLSigners::useForSSL(QString subject) {
00099 QByteArray data, retval;
00100 QCString rettype;
00101 QDataStream arg(data, IO_WriteOnly);
00102 arg << subject;
00103 bool rc = dcc->call("kded", "kssld",
00104 "caUseForSSL(QString)",
00105 data, rettype, retval);
00106
00107 if (rc && rettype == "bool") {
00108 QDataStream retStream(retval, IO_ReadOnly);
00109 bool drc;
00110 retStream >> drc;
00111 return drc;
00112 }
00113
00114 return false;
00115 }
00116
00117
00118 bool KSSLSigners::useForEmail(KSSLCertificate& cert) {
00119 return useForEmail(cert.getSubject());
00120 }
00121
00122
00123 bool KSSLSigners::useForEmail(QString subject) {
00124 QByteArray data, retval;
00125 QCString rettype;
00126 QDataStream arg(data, IO_WriteOnly);
00127 arg << subject;
00128 bool rc = dcc->call("kded", "kssld",
00129 "caUseForEmail(QString)",
00130 data, rettype, retval);
00131
00132 if (rc && rettype == "bool") {
00133 QDataStream retStream(retval, IO_ReadOnly);
00134 bool drc;
00135 retStream >> drc;
00136 return drc;
00137 }
00138
00139 return false;
00140 }
00141
00142
00143 bool KSSLSigners::useForCode(KSSLCertificate& cert) {
00144 return useForCode(cert.getSubject());
00145 }
00146
00147
00148 bool KSSLSigners::useForCode(QString subject) {
00149 QByteArray data, retval;
00150 QCString rettype;
00151 QDataStream arg(data, IO_WriteOnly);
00152 arg << subject;
00153 bool rc = dcc->call("kded", "kssld",
00154 "caUseForCode(QString)",
00155 data, rettype, retval);
00156
00157 if (rc && rettype == "bool") {
00158 QDataStream retStream(retval, IO_ReadOnly);
00159 bool drc;
00160 retStream >> drc;
00161 return drc;
00162 }
00163
00164 return false;
00165 }
00166
00167
00168 bool KSSLSigners::remove(KSSLCertificate& cert) {
00169 return remove(cert.getSubject());
00170 }
00171
00172
00173 bool KSSLSigners::remove(QString subject) {
00174 QByteArray data, retval;
00175 QCString rettype;
00176 QDataStream arg(data, IO_WriteOnly);
00177 arg << subject;
00178 bool rc = dcc->call("kded", "kssld",
00179 "caRemove(QString)",
00180 data, rettype, retval);
00181
00182 if (rc && rettype == "bool") {
00183 QDataStream retStream(retval, IO_ReadOnly);
00184 bool drc;
00185 retStream >> drc;
00186 return drc;
00187 }
00188
00189 return false;
00190 }
00191
00192
00193 QStringList KSSLSigners::list() {
00194 QStringList drc;
00195 QByteArray data, retval;
00196 QCString rettype;
00197 QDataStream arg(data, IO_WriteOnly);
00198 bool rc = dcc->call("kded", "kssld",
00199 "caList()",
00200 data, rettype, retval);
00201
00202 if (rc && rettype == "QStringList") {
00203 QDataStream retStream(retval, IO_ReadOnly);
00204 retStream >> drc;
00205 }
00206
00207 return drc;
00208 }
00209
00210
00211 QString KSSLSigners::getCert(QString subject) {
00212 QString drc;
00213 QByteArray data, retval;
00214 QCString rettype;
00215 QDataStream arg(data, IO_WriteOnly);
00216 arg << subject;
00217 bool rc = dcc->call("kded", "kssld",
00218 "caGetCert(QString)",
00219 data, rettype, retval);
00220
00221 if (rc && rettype == "QString") {
00222 QDataStream retStream(retval, IO_ReadOnly);
00223 retStream >> drc;
00224 }
00225
00226 return drc;
00227 }
00228
00229
00230 bool KSSLSigners::setUse(QString subject, bool ssl, bool email, bool code) {
00231 QByteArray data, retval;
00232 QCString rettype;
00233 QDataStream arg(data, IO_WriteOnly);
00234 arg << subject << ssl << email << code;
00235 bool rc = dcc->call("kded", "kssld",
00236 "caSetUse(QString,bool,bool,bool)",
00237 data, rettype, retval);
00238
00239 if (rc && rettype == "bool") {
00240 QDataStream retStream(retval, IO_ReadOnly);
00241 bool drc;
00242 retStream >> drc;
00243 return drc;
00244 }
00245
00246 return false;
00247 }
00248
00249
00250
00251