diff options
| author | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2013-09-03 20:17:25 +0000 |
|---|---|---|
| committer | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2013-09-03 20:17:25 +0000 |
| commit | dbf009286f7d5018d01e20a328d79685cd676c46 (patch) | |
| tree | c0baa6e65c71ada67d9072cba60829d0828a9cee /pica-client/openssltool.cpp | |
| parent | cceb1694414178a65adce52b76a137e7a31ee69a (diff) | |
| download | pica-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.cpp | 28 |
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); |
