summaryrefslogtreecommitdiffstats
path: root/pica-client/openssltool.cpp
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-09-03 20:17:25 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-09-03 20:17:25 +0000
commitdbf009286f7d5018d01e20a328d79685cd676c46 (patch)
treec0baa6e65c71ada67d9072cba60829d0828a9cee /pica-client/openssltool.cpp
parentcceb1694414178a65adce52b76a137e7a31ee69a (diff)
downloadpica-pica-dbf009286f7d5018d01e20a328d79685cd676c46.tar.gz
pica-pica-dbf009286f7d5018d01e20a328d79685cd676c46.zip
implemented creating self-signed certificate in registeraccountdialog instead of sending CSR to certificate server
git-svn-id: svn://localhost/project_picapica/trunk@271 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client/openssltool.cpp')
-rw-r--r--pica-client/openssltool.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/pica-client/openssltool.cpp b/pica-client/openssltool.cpp
index 705437e..1ee7a90 100644
--- a/pica-client/openssltool.cpp
+++ b/pica-client/openssltool.cpp
@@ -92,20 +92,33 @@ QString OpenSSLTool::CertTextFromString(QString cert_pem)
return QString::fromUtf8(openssl.readAllStandardOutput().constData());
}
-bool OpenSSLTool::GenRSAKeySignal(quint32 numbits, QString keyfile, QObject *receiver, const char *finished_slot)
+bool OpenSSLTool::GenRSAKeySignal(quint32 numbits, QString keyfile, bool setpassword, QString password, QObject *receiver, const char *finished_slot)
{
- openssl_.start("openssl", QStringList()<<"genrsa"<<"-out"<<keyfile<<QString::number(numbits));
+ if (!setpassword)
+ {
+ openssl_.start("openssl", QStringList()<<"genrsa"<<"-out"<<keyfile<<QString::number(numbits));
+ }
+ else
+ {
+ openssl_.start("openssl", QStringList()<<"genrsa"<<"-out"<<keyfile<<"-passout"<<"stdin"<<"-idea"<<QString::number(numbits));
+ }
if (!openssl_.waitForStarted())
return false;
+ if (setpassword)
+ {
+ openssl_.write((password + "\n").toAscii().constData());
+ }
+
openssl_.disconnect(&openssl_, SIGNAL(finished(int,QProcess::ExitStatus)), 0, 0);
openssl_.connect(&openssl_, SIGNAL(finished(int,QProcess::ExitStatus)),receiver, finished_slot);
return true;
}
-bool OpenSSLTool::GenCSRSignal(QString csr_file, QString keyfile, QString subject, QObject *receiver, const char *finished_slot)
+bool OpenSSLTool::GenCertSignal(QString cert_file, QString keyfile, QString keypassword,
+ QString subject, QObject *receiver, const char *finished_slot)
{
openssl_.start("openssl",
QStringList()
@@ -113,17 +126,22 @@ bool OpenSSLTool::GenCSRSignal(QString csr_file, QString keyfile, QString subjec
#ifdef WIN32
<<"-config"<<"openssl.cnf"
#endif
- <<"-out"<<csr_file
+ <<"-out"<<cert_file
<<"-key"<<keyfile
<<"-subj"<<"/CN=" + subject
<<"-new"
+ <<"-x509"
<<"-days"<<"3680"
<<"-utf8"
- <<"-batch");
+ <<"-batch"
+ <<"-passin"
+ <<"stdin");
if (!openssl_.waitForStarted())
return false;
+ openssl_.write((keypassword + "\n").toAscii().constData());
+
openssl_.disconnect(&openssl_, SIGNAL(finished(int,QProcess::ExitStatus)), 0, 0);
openssl_.connect(&openssl_, SIGNAL(finished(int,QProcess::ExitStatus)),receiver, finished_slot);