summaryrefslogtreecommitdiffstats
path: root/pica-client/openssltool.cpp
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-10-14 13:15:34 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2013-10-14 13:15:34 +0000
commita2807ff1baf22daea2e1803afc1e867fe59524bf (patch)
tree90c7f1b7d8e232e85a87062639aaba6f4a4d61a6 /pica-client/openssltool.cpp
parent34ede8d01e4c2d1a44354f1917b1c85171c9558b (diff)
downloadpica-pica-a2807ff1baf22daea2e1803afc1e867fe59524bf.tar.gz
pica-pica-a2807ff1baf22daea2e1803afc1e867fe59524bf.zip
paranoid option - use /dev/random as random source for key generation on *nix systems
git-svn-id: svn://localhost/project_picapica/trunk@284 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client/openssltool.cpp')
-rw-r--r--pica-client/openssltool.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/pica-client/openssltool.cpp b/pica-client/openssltool.cpp
index b9bf6d9..4711713 100644
--- a/pica-client/openssltool.cpp
+++ b/pica-client/openssltool.cpp
@@ -92,16 +92,22 @@ QString OpenSSLTool::CertTextFromString(QString cert_pem)
return QString::fromUtf8(openssl.readAllStandardOutput().constData());
}
-bool OpenSSLTool::GenRSAKeySignal(quint32 numbits, QString keyfile, bool setpassword, QString password, QObject *receiver, const char *finished_slot)
+bool OpenSSLTool::GenRSAKeySignal(quint32 numbits, QString keyfile, bool setpassword, QString password, QString rand, QObject *receiver, const char *finished_slot)
{
- 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));
- }
+ QStringList args;
+
+ args <<"genrsa"<<"-out"<<keyfile;
+
+ if (setpassword)
+ args <<"-passout"<<"stdin"<<"-idea";
+
+ if (!rand.isEmpty())
+ args << "-rand"<<rand;
+
+ args <<QString::number(numbits);
+
+ openssl_.start("openssl", args);
+
if (!openssl_.waitForStarted())
return false;