Difference between revisions of "Qt Cryptographic Architecture"

From Combobulate
(Created page with "== QTCA == Patching QTCA 2.0.3 for Qt 5.2:")
 
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
  
 
Patching QTCA 2.0.3 for Qt 5.2:
 
Patching QTCA 2.0.3 for Qt 5.2:
 +
 +
<----
 +
<pre>
 +
Binary files qca-2.0.3/bin/qca2.dll and qca-2.0.3.qt5/bin/qca2.dll differ
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/certitem.cpp qca-2.0.3.qt5/examples/cmssigner/certitem.cpp
 +
--- qca-2.0.3/examples/cmssigner/certitem.cpp 2007-08-20 16:47:38.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/cmssigner/certitem.cpp 2014-03-18 16:02:45.980760600 +0000
 +
@@ -24,6 +24,7 @@
 +
#include <QtCore>
 +
#include <QtGui>
 +
#include <QtCrypto>
 +
+#include <QMessageBox>
 +
#include "prompter.h"
 +
 +
typedef QMap<CertItemStore::IconType,QPixmap> CertItemIconset;
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/cmssigner.pro qca-2.0.3.qt5/examples/cmssigner/cmssigner.pro
 +
--- qca-2.0.3/examples/cmssigner/cmssigner.pro 2007-08-11 03:44:38.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/cmssigner/cmssigner.pro 2014-03-18 15:45:41.491667000 +0000
 +
@@ -1,7 +1,7 @@
 +
include(../examples.pri)
 +
CONFIG -= console
 +
CONFIG += app_bundle
 +
-QT += gui
 +
+QT += gui widgets
 +
 +
include(pkcs11configdlg/pkcs11configdlg.pri)
 +
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/keyselectdlg.cpp qca-2.0.3.qt5/examples/cmssigner/keyselectdlg.cpp
 +
--- qca-2.0.3/examples/cmssigner/keyselectdlg.cpp 2007-08-09 04:32:54.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/cmssigner/keyselectdlg.cpp 2014-03-18 16:01:27.662315400 +0000
 +
@@ -24,6 +24,8 @@
 +
#include <QtCore>
 +
#include <QtGui>
 +
#include <QtCrypto>
 +
+#include <QPushButton>
 +
+#include <QMenu>
 +
#include "ui_keyselect.h"
 +
 +
#define ONLY_SHOW_KEYBUNDLE
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/main.cpp qca-2.0.3.qt5/examples/cmssigner/main.cpp
 +
--- qca-2.0.3/examples/cmssigner/main.cpp 2007-08-20 16:47:38.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/cmssigner/main.cpp 2014-03-18 16:03:42.600950500 +0000
 +
@@ -22,6 +22,8 @@
 +
#include <QtCore>
 +
#include <QtGui>
 +
#include <QtCrypto>
 +
+#include <QFileDialog>
 +
+#include <QMessageBox>
 +
 +
#include "ui_mainwin.h"
 +
#include "certviewdlg.h"
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp qca-2.0.3.qt5/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp
 +
--- qca-2.0.3/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp 2007-07-21 02:36:20.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp 2014-03-18 15:47:56.240778000 +0000
 +
@@ -24,6 +24,8 @@
 +
#include <QtCore>
 +
#include <QtGui>
 +
#include <QtCrypto>
 +
+#include <QMessageBox>
 +
+#include <QFileDialog>
 +
#include "ui_pkcs11config.h"
 +
 +
//----------------------------------------------------------------------------
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/prompter.cpp qca-2.0.3.qt5/examples/cmssigner/prompter.cpp
 +
--- qca-2.0.3/examples/cmssigner/prompter.cpp 2007-07-06 02:47:36.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/cmssigner/prompter.cpp 2014-03-18 16:02:33.546681700 +0000
 +
@@ -24,6 +24,10 @@
 +
#include <QtCore>
 +
#include <QtGui>
 +
#include <QtCrypto>
 +
+#include <QList>
 +
+#include <QMessageBox>
 +
+#include <QInputDialog>
 +
+#include <QApplication>
 +
 +
class Prompter::Private : public QObject
 +
{
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/hashtest/hashtest.cpp qca-2.0.3.qt5/examples/hashtest/hashtest.cpp
 +
--- qca-2.0.3/examples/hashtest/hashtest.cpp 2007-06-13 03:30:44.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/hashtest/hashtest.cpp 2014-03-18 16:10:37.431627300 +0000
 +
@@ -44,7 +44,7 @@ int main(int argc, char **argv)
 +
else {
 +
// this shows the "all in one" approach
 +
QString result = QCA::Hash("sha1").hashToString(arg);
 +
- printf("sha1(\"%s\") = [%s]\n", arg.data(), result.toAscii().data());
 +
+ printf("sha1(\"%s\") = [%s]\n", arg.data(), result.toUtf8().data());
 +
}
 +
 +
// must always check that an algorithm is supported before using it
 +
@@ -66,7 +66,7 @@ int main(int argc, char **argv)
 +
QCA::SecureArray resultArray = hashObject.final();
 +
// convert the result into printable hexadecimal.
 +
QString result = QCA::arrayToHex(resultArray.toByteArray());
 +
- printf("md5(\"%s\") = [%s]\n", arg.data(), result.toAscii().data());
 +
+ printf("md5(\"%s\") = [%s]\n", arg.data(), result.toUtf8().data());
 +
}
 +
 +
return 0;
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/randomtest/randomtest.cpp qca-2.0.3.qt5/examples/randomtest/randomtest.cpp
 +
--- qca-2.0.3/examples/randomtest/randomtest.cpp 2009-04-24 18:59:20.000000000 +0100
 +
+++ qca-2.0.3.qt5/examples/randomtest/randomtest.cpp 2014-03-18 16:11:15.607475000 +0000
 +
@@ -56,7 +56,7 @@ int main(int argc, char **argv)
 +
 +
// To make this viewable, we convert to hexadecimal.
 +
std::cout << "A random 10 byte array (in hex): ";
 +
- std::cout << QCA::Hex().arrayToString(tenBytes).toAscii().data() << std::endl;
 +
+ std::cout << QCA::Hex().arrayToString(tenBytes).toUtf8().data() << std::endl;
 +
 +
// Under some circumstances, you may want to create a
 +
// Random object, rather than a static public member function.
 +
Binary files qca-2.0.3/lib/qca2.dll and qca-2.0.3.qt5/lib/qca2.dll differ
 +
Binary files qca-2.0.3/lib/qca2.lib and qca-2.0.3.qt5/lib/qca2.lib differ
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/qca_keystore.cpp qca-2.0.3.qt5/src/qca_keystore.cpp
 +
--- qca-2.0.3/src/qca_keystore.cpp 2008-06-02 21:20:38.000000000 +0100
 +
+++ qca-2.0.3.qt5/src/qca_keystore.cpp 2014-03-18 15:29:55.791078300 +0000
 +
@@ -308,14 +308,14 @@ public slots:
 +
if(at == -1)
 +
return QString();
 +
Item &i = items[at];
 +
- if(qVariantCanConvert<KeyBundle>(v))
 +
- return i.owner->writeEntry(i.storeContextId, qVariantValue<KeyBundle>(v));
 +
- else if(qVariantCanConvert<Certificate>(v))
 +
- return i.owner->writeEntry(i.storeContextId, qVariantValue<Certificate>(v));
 +
- else if(qVariantCanConvert<CRL>(v))
 +
- return i.owner->writeEntry(i.storeContextId, qVariantValue<CRL>(v));
 +
- else if(qVariantCanConvert<PGPKey>(v))
 +
- return i.owner->writeEntry(i.storeContextId, qVariantValue<PGPKey>(v));
 +
+ if(v.canConvert<KeyBundle>())
 +
+ return i.owner->writeEntry(i.storeContextId, v.value<KeyBundle>());
 +
+ else if(v.canConvert<Certificate>())
 +
+ return i.owner->writeEntry(i.storeContextId, v.value<Certificate>());
 +
+ else if(v.canConvert<CRL>())
 +
+ return i.owner->writeEntry(i.storeContextId, v.value<CRL>());
 +
+ else if(v.canConvert<PGPKey>())
 +
+ return i.owner->writeEntry(i.storeContextId, v.value<PGPKey>());
 +
else
 +
return QString();
 +
}
 +
@@ -783,7 +783,7 @@ bool KeyStoreEntry::ensureAvailable()
 +
{
 +
QString storeId = this->storeId();
 +
QString entryId = id();
 +
- KeyStoreEntryContext *c = (KeyStoreEntryContext *)qVariantValue<void*>(trackercall("entry", QVariantList() << storeId << entryId));
 +
+ KeyStoreEntryContext *c = (KeyStoreEntryContext *)trackercall("entry", QVariantList() << storeId << entryId).value<void*>();
 +
if(c)
 +
change(c);
 +
return isAvailable();
 +
@@ -977,7 +977,7 @@ protected:
 +
virtual void run()
 +
{
 +
if(type == EntryList)
 +
- entryList = qVariantValue< QList<KeyStoreEntry> >(trackercall("entryList", QVariantList() << trackerId));
 +
+ entryList = trackercall("entryList", QVariantList() << trackerId).value<QList<KeyStoreEntry>>();
 +
else if(type == WriteEntry)
 +
{
 +
QVariant arg;
 +
@@ -1205,7 +1205,7 @@ QList<KeyStoreEntry> KeyStore::entryList
 +
 +
if(d->trackerId == -1)
 +
return QList<KeyStoreEntry>();
 +
- return qVariantValue< QList<KeyStoreEntry> >(trackercall("entryList", QVariantList() << d->trackerId));
 +
+ return trackercall("entryList", QVariantList() << d->trackerId).value<QList<KeyStoreEntry>>();
 +
}
 +
 +
bool KeyStore::holdsTrustedCertificates() const
 +
@@ -1213,7 +1213,7 @@ bool KeyStore::holdsTrustedCertificates(
 +
QList<KeyStoreEntry::Type> list;
 +
if(d->trackerId == -1)
 +
return false;
 +
- list = qVariantValue< QList<KeyStoreEntry::Type> >(trackercall("entryTypes", QVariantList() << d->trackerId));
 +
+ list = trackercall("entryTypes", QVariantList() << d->trackerId).value<QList<KeyStoreEntry::Type>>();
 +
if(list.contains(KeyStoreEntry::TypeCertificate) || list.contains(KeyStoreEntry::TypeCRL))
 +
return true;
 +
return false;
 +
@@ -1224,7 +1224,7 @@ bool KeyStore::holdsIdentities() const
 +
QList<KeyStoreEntry::Type> list;
 +
if(d->trackerId == -1)
 +
return false;
 +
- list = qVariantValue< QList<KeyStoreEntry::Type> >(trackercall("entryTypes", QVariantList() << d->trackerId));
 +
+ list = trackercall("entryTypes", QVariantList() << d->trackerId).value<QList<KeyStoreEntry::Type>>();
 +
if(list.contains(KeyStoreEntry::TypeKeyBundle) || list.contains(KeyStoreEntry::TypePGPSecretKey))
 +
return true;
 +
return false;
 +
@@ -1235,7 +1235,7 @@ bool KeyStore::holdsPGPPublicKeys() cons
 +
QList<KeyStoreEntry::Type> list;
 +
if(d->trackerId == -1)
 +
return false;
 +
- list = qVariantValue< QList<KeyStoreEntry::Type> >(trackercall("entryTypes", QVariantList() << d->trackerId));
 +
+ list = trackercall("entryTypes", QVariantList() << d->trackerId).value<QList<KeyStoreEntry::Type>>();
 +
if(list.contains(KeyStoreEntry::TypePGPPublicKey))
 +
return true;
 +
return false;
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/qca_resource.rc qca-2.0.3.qt5/src/qca_resource.rc
 +
--- qca-2.0.3/src/qca_resource.rc 1970-01-01 01:00:00.000000000 +0100
 +
+++ qca-2.0.3.qt5/src/qca_resource.rc 2014-03-17 16:25:42.491728200 +0000
 +
@@ -0,0 +1,39 @@
 +
+# if defined(UNDER_CE)
 +
+#  include <winbase.h>
 +
+# else
 +
+#  include <winver.h>
 +
+# endif
 +
+
 +
+VS_VERSION_INFO VERSIONINFO
 +
+ FILEVERSION 2,0,3,0
 +
+ PRODUCTVERSION 2,0,3,0
 +
+ FILEFLAGSMASK 0x3fL
 +
+#ifdef _DEBUG
 +
+ FILEFLAGS VS_FF_DEBUG
 +
+#else
 +
+ FILEFLAGS 0x0L
 +
+#endif
 +
+ FILEOS VOS__WINDOWS32
 +
+ FILETYPE VFT_DLL
 +
+ FILESUBTYPE 0x0L
 +
+ BEGIN
 +
+ BLOCK "StringFileInfo"
 +
+ BEGIN
 +
+ BLOCK "040904b0"
 +
+ BEGIN
 +
+ VALUE "CompanyName", "\0"
 +
+ VALUE "FileDescription", "\0"
 +
+ VALUE "FileVersion", "2.0.3.0\0"
 +
+ VALUE "LegalCopyright", "\0"
 +
+ VALUE "OriginalFilename", "qca2.dll\0"
 +
+ VALUE "ProductName", "qca\0"
 +
+ VALUE "ProductVersion", "2.0.3.0\0"
 +
+ END
 +
+ END
 +
+ BLOCK "VarFileInfo"
 +
+ BEGIN
 +
+ VALUE "Translation", 0x0409, 1200
 +
+ END
 +
+ END
 +
+/* End of Version info */
 +
+
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/console.cpp qca-2.0.3.qt5/src/support/console.cpp
 +
--- qca-2.0.3/src/support/console.cpp 2010-11-27 21:14:12.000000000 +0000
 +
+++ qca-2.0.3.qt5/src/support/console.cpp 2014-03-18 15:33:59.079472000 +0000
 +
@@ -278,7 +278,7 @@ public:
 +
 +
SecureArray readSecure(int bytes = -1)
 +
{
 +
- return qVariantValue<SecureArray>(mycall(worker, "readSecure", QVariantList() << bytes));
 +
+ return mycall(worker, "readSecure", QVariantList() << bytes).value<SecureArray>();
 +
}
 +
 +
void writeSecure(const SecureArray &a)
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/qpipe.cpp qca-2.0.3.qt5/src/support/qpipe.cpp
 +
--- qca-2.0.3/src/support/qpipe.cpp 2008-05-17 02:39:06.000000000 +0100
 +
+++ qca-2.0.3.qt5/src/support/qpipe.cpp 2014-03-18 11:12:08.804520400 +0000
 +
@@ -41,6 +41,9 @@
 +
# include <QTextCodec>
 +
# include <QTextEncoder>
 +
# include <QTextDecoder>
 +
+#if QT_VERSION >= 0x050000
 +
+ #define QT_WA(unicode, ansi) unicode
 +
+#endif
 +
#else
 +
# include <QMutex>
 +
#endif
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/synchronizer.cpp qca-2.0.3.qt5/src/support/synchronizer.cpp
 +
--- qca-2.0.3/src/support/synchronizer.cpp 2008-05-16 21:41:50.000000000 +0100
 +
+++ qca-2.0.3.qt5/src/support/synchronizer.cpp 2014-03-18 11:06:53.864528100 +0000
 +
@@ -58,7 +58,7 @@ public:
 +
 +
static bool haveFixer(QObject *obj)
 +
{
 +
- return (qFindChild<TimerFixer *>(obj) ? true: false);
 +
+ return (obj->findChild<TimerFixer *>() ? true: false);
 +
}
 +
 +
TimerFixer(QObject *_target, TimerFixer *_fp = 0) : QObject(_target)
 +
@@ -180,7 +180,7 @@ private slots:
 +
int timeLeft = qMax(info.interval - info.time.elapsed(), 0);
 +
info.fixInterval = true;
 +
ed->unregisterTimer(info.id);
 +
- ed->registerTimer(info.id, timeLeft, target);
 +
+ ed->registerTimer(info.id, timeLeft, Qt::CoarseTimer, target);
 +
 +
#ifdef TIMERFIXER_DEBUG
 +
printf("TimerFixer[%p] adjusting [%d] to %d\n", this, info.id, timeLeft);
 +
@@ -239,7 +239,7 @@ private:
 +
#endif
 +
info.fixInterval = false;
 +
ed->unregisterTimer(info.id);
 +
- ed->registerTimer(info.id, info.interval, target);
 +
+ ed->registerTimer(info.id, info.interval, Qt::CoarseTimer, target);
 +
}
 +
 +
info.time.start();
 +
@@ -258,7 +258,7 @@ private:
 +
int id = timers[n].id;
 +
for(int i = 0; i < edtimers.count(); ++i)
 +
{
 +
- if(edtimers[i].first == id)
 +
+ if(edtimers[i].timerId == id)
 +
{
 +
found = true;
 +
break;
 +
@@ -278,7 +278,7 @@ private:
 +
// added?
 +
for(int n = 0; n < edtimers.count(); ++n)
 +
{
 +
- int id = edtimers[n].first;
 +
+ int id = edtimers[n].timerId;
 +
bool found = false;
 +
for(int i = 0; i < timers.count(); ++i)
 +
{
 +
@@ -293,7 +293,7 @@ private:
 +
{
 +
TimerInfo info;
 +
info.id = id;
 +
- info.interval = edtimers[n].second;
 +
+ info.interval = edtimers[n].interval;
 +
info.time.start();
 +
timers += info;
 +
#ifdef TIMERFIXER_DEBUG
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/syncthread.cpp qca-2.0.3.qt5/src/support/syncthread.cpp
 +
--- qca-2.0.3/src/support/syncthread.cpp 2008-05-16 21:41:50.000000000 +0100
 +
+++ qca-2.0.3.qt5/src/support/syncthread.cpp 2014-03-18 08:53:02.964233300 +0000
 +
@@ -32,7 +32,7 @@ QByteArray methodReturnType(const QMetaO
 +
for(int n = 0; n < obj->methodCount(); ++n)
 +
{
 +
QMetaMethod m = obj->method(n);
 +
- QByteArray sig = m.signature();
 +
+ QByteArray sig = m.methodSignature();
 +
int offset = sig.indexOf('(');
 +
if(offset == -1)
 +
continue;
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/tools/qcatool/main.cpp qca-2.0.3.qt5/tools/qcatool/main.cpp
 +
--- qca-2.0.3/tools/qcatool/main.cpp 2010-11-27 21:14:12.000000000 +0000
 +
+++ qca-2.0.3.qt5/tools/qcatool/main.cpp 2014-03-18 15:36:44.627994000 +0000
 +
@@ -1301,14 +1301,14 @@ static bool string_is_int(const QString
 +
 +
static bool variant_is_bool(const QVariant &in)
 +
{
 +
- if(qVariantCanConvert<QString>(in) && string_is_bool(in.toString()))
 +
+ if(in.canConvert<QString>() && string_is_bool(in.toString()))
 +
return true;
 +
return false;
 +
}
 +
 +
static bool variant_is_int(const QVariant &in)
 +
{
 +
- if(qVariantCanConvert<QString>(in) && string_is_int(in.toString()))
 +
+ if(in.canConvert<QString>() && string_is_int(in.toString()))
 +
return true;
 +
return false;
 +
}
 +
@@ -1418,7 +1418,7 @@ static QVariantMap provider_config_edit_
 +
newval = prompt_for_bool(QString("bool  ") + prompt, val.toBool());
 +
else if(variant_is_int(val))
 +
newval = prompt_for_int(QString("int    ") + prompt, val.toInt());
 +
- else if(qVariantCanConvert<QString>(val))
 +
+ else if(val.canConvert<QString>())
 +
newval = prompt_for_string(QString("string ") + prompt, val.toString());
 +
else
 +
continue; // skip bogus fields
 +
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/unittest/certunittest/certunittest.cpp qca-2.0.3.qt5/unittest/certunittest/certunittest.cpp
 +
--- qca-2.0.3/unittest/certunittest/certunittest.cpp 2007-07-22 05:22:00.000000000 +0100
 +
+++ qca-2.0.3.qt5/unittest/certunittest/certunittest.cpp 2014-03-18 15:40:08.363365100 +0000
 +
@@ -128,24 +128,24 @@ void CertUnitTest::CAcertstest()
 +
    QCOMPARE( ca1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 +
    QCOMPARE( ca1.notValidAfter().toString(), QDateTime( QDate( 2011, 8, 15 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 +
 +
-     QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::CRLSign), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::CRLSign), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
    // no policies on this cert
 +
    QCOMPARE( ca1.policies().count(), 0 );
 +
@@ -183,24 +183,24 @@ void CertUnitTest::qualitysslcatest()
 +
 +
    QCOMPARE( ca1.pathLimit(), 0 );
 +
 +
-     QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::CRLSign), (QBool)true );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::CRLSign), true );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), false );
 +
}
 +
    }
 +
}
 +
@@ -229,39 +229,39 @@ void CertUnitTest::checkExpiredClientCer
 +
    QCOMPARE( client1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 32, 38 ), Qt::UTC ).toString() );
 +
    QCOMPARE( client1.notValidAfter().toString(), QDateTime( QDate( 2006, 8, 16 ), QTime( 8, 32, 38 ), Qt::UTC ).toString() );
 +
 +
-     QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::CRLSign), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::ServerAuth), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::ClientAuth), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::EmailProtection), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( client1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::CRLSign), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::ServerAuth), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::ClientAuth), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::EmailProtection), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( client1.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
    // no policies on this cert
 +
    QCOMPARE( client1.policies().count(), 0 );
 +
 +
    QCA::CertificateInfo subject1 = client1.subjectInfo();
 +
    QCOMPARE( subject1.isEmpty(), false );
 +
-     QCOMPARE( subject1.values(QCA::Country).contains("de"), (QBool)true );
 +
-     QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
 +
-     QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure User Test Cert"), (QBool)true );
 +
+     QCOMPARE( subject1.values(QCA::Country).contains("de"), true );
 +
+     QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
 +
+     QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure User Test Cert"), true );
 +
 +
    QCA::CertificateInfo issuer1 = client1.issuerInfo();
 +
    QCOMPARE( issuer1.isEmpty(), false );
 +
-     QCOMPARE( issuer1.values(QCA::Country).contains("de"), (QBool)true );
 +
-     QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
 +
-     QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), (QBool)true );
 +
+     QCOMPARE( issuer1.values(QCA::Country).contains("de"), true );
 +
+     QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
 +
+     QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), true );
 +
 +
    QByteArray subjectKeyID = QCA::Hex().stringToArray("889E7EF729719D7B280F361AAE6D00D39DE1AADB").toByteArray();
 +
    QCOMPARE( client1.subjectKeyId(), subjectKeyID );
 +
@@ -337,24 +337,24 @@ void CertUnitTest::checkClientCerts()
 +
    QCOMPARE( client2.notValidBefore().toString(), QDateTime( QDate( 2007, 7, 22 ), QTime( 3, 30, 29 ), Qt::UTC ).toString() );
 +
    QCOMPARE( client2.notValidAfter().toString(), QDateTime( QDate( 2012, 7, 20 ), QTime( 3, 30, 29 ), Qt::UTC ).toString() );
 +
 +
-     QCOMPARE( client2.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( client2.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-     QCOMPARE( client2.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( client2.constraints().contains(QCA::DataEncipherment), (QBool)true );
 +
-     QCOMPARE( client2.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::CRLSign), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::ServerAuth), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::ClientAuth), (QBool)true );
 +
-     QCOMPARE( client2.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::EmailProtection), (QBool)true );
 +
-     QCOMPARE( client2.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( client2.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( client2.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( client2.constraints().contains(QCA::NonRepudiation), true );
 +
+     QCOMPARE( client2.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( client2.constraints().contains(QCA::DataEncipherment), true );
 +
+     QCOMPARE( client2.constraints().contains(QCA::KeyAgreement), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::KeyCertificateSign), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::CRLSign), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::ServerAuth), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::ClientAuth), true );
 +
+     QCOMPARE( client2.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::EmailProtection), true );
 +
+     QCOMPARE( client2.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( client2.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( client2.constraints().contains(QCA::OCSPSigning), false );
 +
 +
    // no policies on this cert
 +
    QCOMPARE( client2.policies().count(), 0 );
 +
@@ -469,24 +469,24 @@ void CertUnitTest::derCAcertstest()
 +
            QCOMPARE( ca1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 +
            QCOMPARE( ca1.notValidAfter().toString(), QDateTime( QDate( 2011, 8, 15 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 +
 +
-            QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), (QBool)true );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::CRLSign), (QBool)true );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-            QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-            QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), true );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), true );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), true );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), true );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::CRLSign), true );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), false);
 +
+            QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), false );
 +
+            QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
            // no policies on this cert
 +
            QCOMPARE( ca1.policies().count(), 0 );
 +
@@ -517,24 +517,24 @@ void CertUnitTest::altName()
 +
 +
    QCOMPARE( client1.commonName(), QString("Valid RFC822 nameConstraints EE Certificate Test21") );
 +
 +
-     QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), (QBool)true );
 +
-     QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::CRLSign), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::ServerAuth), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::ClientAuth), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( client1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), true );
 +
+     QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::CRLSign), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::ServerAuth), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::ClientAuth), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::EmailProtection), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( client1.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
    QCOMPARE( client1.policies().count(), 1 );
 +
    QCOMPARE( client1.policies().at(0), QString("2.16.840.1.101.3.2.1.48.1") );
 +
@@ -635,24 +635,24 @@ void CertUnitTest::altNames76()
 +
 +
            QCOMPARE( client1.commonName(), QString("sip1.su.se") );
 +
 +
-            QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-            QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-            QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-            QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::CRLSign), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::ServerAuth), (QBool)true );
 +
-            QCOMPARE( client1.constraints().contains(QCA::ClientAuth), (QBool)true );
 +
-            QCOMPARE( client1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-            QCOMPARE( client1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-            QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), true );
 +
+            QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), true );
 +
+            QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), true );
 +
+            QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::CRLSign), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::ServerAuth), true );
 +
+            QCOMPARE( client1.constraints().contains(QCA::ClientAuth), true );
 +
+            QCOMPARE( client1.constraints().contains(QCA::CodeSigning), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::EmailProtection), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), false);
 +
+            QCOMPARE( client1.constraints().contains(QCA::IPSecUser), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::TimeStamping), false );
 +
+            QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
            QCOMPARE( client1.policies().count(), 1 );
 +
 +
@@ -733,39 +733,39 @@ void CertUnitTest::checkExpiredServerCer
 +
    QCOMPARE( server1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 46, 24 ), Qt::UTC ).toString() );
 +
    QCOMPARE( server1.notValidAfter().toString(), QDateTime( QDate( 2006, 8, 16 ), QTime( 8, 46, 24 ), Qt::UTC ).toString() );
 +
 +
-     QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::CRLSign), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::ServerAuth), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::ClientAuth), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( server1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::CRLSign), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::ServerAuth), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::ClientAuth), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::EmailProtection), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( server1.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
    // no policies on this cert
 +
    QCOMPARE( server1.policies().count(), 0 );
 +
 +
    QCA::CertificateInfo subject1 = server1.subjectInfo();
 +
    QCOMPARE( subject1.isEmpty(), false );
 +
-     QCOMPARE( subject1.values(QCA::Country).contains("de"), (QBool)true );
 +
-     QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
 +
-     QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure Server Cert"), (QBool)true );
 +
+     QCOMPARE( subject1.values(QCA::Country).contains("de"), true );
 +
+     QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
 +
+     QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure Server Cert"), true );
 +
 +
    QCA::CertificateInfo issuer1 = server1.issuerInfo();
 +
    QCOMPARE( issuer1.isEmpty(), false );
 +
-     QCOMPARE( issuer1.values(QCA::Country).contains("de"), (QBool)true );
 +
-     QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
 +
-     QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), (QBool)true );
 +
+     QCOMPARE( issuer1.values(QCA::Country).contains("de"), true );
 +
+     QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
 +
+     QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), true );
 +
 +
    QByteArray subjectKeyID = QCA::Hex().stringToArray("0234E2C906F6E0B44253BE04C0CBA7823A6DB509").toByteArray();
 +
    QCOMPARE( server1.subjectKeyId(), subjectKeyID );
 +
@@ -836,24 +836,24 @@ void CertUnitTest::checkServerCerts()
 +
    QCOMPARE( server1.notValidBefore().toString(), QDateTime( QDate( 2007, 7, 22 ), QTime( 6, 5, 39 ), Qt::UTC ).toString() );
 +
    QCOMPARE( server1.notValidAfter().toString(), QDateTime( QDate( 2012, 7, 20 ), QTime( 6, 5, 39 ), Qt::UTC ).toString() );
 +
 +
-     QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::CRLSign), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::ServerAuth), (QBool)true );
 +
-     QCOMPARE( server1.constraints().contains(QCA::ClientAuth), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::CodeSigning), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::EmailProtection), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
 +
-     QCOMPARE( server1.constraints().contains(QCA::IPSecUser), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::TimeStamping), (QBool)false );
 +
-     QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), (QBool)false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::CRLSign), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::ServerAuth), true );
 +
+     QCOMPARE( server1.constraints().contains(QCA::ClientAuth), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::CodeSigning), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::EmailProtection), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), false);
 +
+     QCOMPARE( server1.constraints().contains(QCA::IPSecUser), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::TimeStamping), false );
 +
+     QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), false );
 +
 +
    // no policies on this cert
 +
    QCOMPARE( server1.policies().count(), 0 );
 +
</pre>
 +
<----

Latest revision as of 16:57, 18 March 2014

QTCA

Patching QTCA 2.0.3 for Qt 5.2:

<----

Binary files qca-2.0.3/bin/qca2.dll and qca-2.0.3.qt5/bin/qca2.dll differ
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/certitem.cpp qca-2.0.3.qt5/examples/cmssigner/certitem.cpp
--- qca-2.0.3/examples/cmssigner/certitem.cpp	2007-08-20 16:47:38.000000000 +0100
+++ qca-2.0.3.qt5/examples/cmssigner/certitem.cpp	2014-03-18 16:02:45.980760600 +0000
@@ -24,6 +24,7 @@
 #include <QtCore>
 #include <QtGui>
 #include <QtCrypto>
+#include <QMessageBox>
 #include "prompter.h"
 
 typedef QMap<CertItemStore::IconType,QPixmap> CertItemIconset;
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/cmssigner.pro qca-2.0.3.qt5/examples/cmssigner/cmssigner.pro
--- qca-2.0.3/examples/cmssigner/cmssigner.pro	2007-08-11 03:44:38.000000000 +0100
+++ qca-2.0.3.qt5/examples/cmssigner/cmssigner.pro	2014-03-18 15:45:41.491667000 +0000
@@ -1,7 +1,7 @@
 include(../examples.pri)
 CONFIG -= console
 CONFIG += app_bundle
-QT += gui
+QT += gui widgets
 
 include(pkcs11configdlg/pkcs11configdlg.pri)
 
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/keyselectdlg.cpp qca-2.0.3.qt5/examples/cmssigner/keyselectdlg.cpp
--- qca-2.0.3/examples/cmssigner/keyselectdlg.cpp	2007-08-09 04:32:54.000000000 +0100
+++ qca-2.0.3.qt5/examples/cmssigner/keyselectdlg.cpp	2014-03-18 16:01:27.662315400 +0000
@@ -24,6 +24,8 @@
 #include <QtCore>
 #include <QtGui>
 #include <QtCrypto>
+#include <QPushButton>
+#include <QMenu>
 #include "ui_keyselect.h"
 
 #define ONLY_SHOW_KEYBUNDLE
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/main.cpp qca-2.0.3.qt5/examples/cmssigner/main.cpp
--- qca-2.0.3/examples/cmssigner/main.cpp	2007-08-20 16:47:38.000000000 +0100
+++ qca-2.0.3.qt5/examples/cmssigner/main.cpp	2014-03-18 16:03:42.600950500 +0000
@@ -22,6 +22,8 @@
 #include <QtCore>
 #include <QtGui>
 #include <QtCrypto>
+#include <QFileDialog>
+#include <QMessageBox>
 
 #include "ui_mainwin.h"
 #include "certviewdlg.h"
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp qca-2.0.3.qt5/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp
--- qca-2.0.3/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp	2007-07-21 02:36:20.000000000 +0100
+++ qca-2.0.3.qt5/examples/cmssigner/pkcs11configdlg/pkcs11configdlg.cpp	2014-03-18 15:47:56.240778000 +0000
@@ -24,6 +24,8 @@
 #include <QtCore>
 #include <QtGui>
 #include <QtCrypto>
+#include <QMessageBox>
+#include <QFileDialog>
 #include "ui_pkcs11config.h"
 
 //----------------------------------------------------------------------------
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/cmssigner/prompter.cpp qca-2.0.3.qt5/examples/cmssigner/prompter.cpp
--- qca-2.0.3/examples/cmssigner/prompter.cpp	2007-07-06 02:47:36.000000000 +0100
+++ qca-2.0.3.qt5/examples/cmssigner/prompter.cpp	2014-03-18 16:02:33.546681700 +0000
@@ -24,6 +24,10 @@
 #include <QtCore>
 #include <QtGui>
 #include <QtCrypto>
+#include <QList>
+#include <QMessageBox>
+#include <QInputDialog>
+#include <QApplication>
 
 class Prompter::Private : public QObject
 {
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/hashtest/hashtest.cpp qca-2.0.3.qt5/examples/hashtest/hashtest.cpp
--- qca-2.0.3/examples/hashtest/hashtest.cpp	2007-06-13 03:30:44.000000000 +0100
+++ qca-2.0.3.qt5/examples/hashtest/hashtest.cpp	2014-03-18 16:10:37.431627300 +0000
@@ -44,7 +44,7 @@ int main(int argc, char **argv)
 	else {
 		// this shows the "all in one" approach
 		QString result = QCA::Hash("sha1").hashToString(arg);
-		printf("sha1(\"%s\") = [%s]\n", arg.data(), result.toAscii().data());
+		printf("sha1(\"%s\") = [%s]\n", arg.data(), result.toUtf8().data());
 	}
 
 	// must always check that an algorithm is supported before using it
@@ -66,7 +66,7 @@ int main(int argc, char **argv)
 		QCA::SecureArray resultArray = hashObject.final();
 		// convert the result into printable hexadecimal.
 		QString result = QCA::arrayToHex(resultArray.toByteArray());
-		printf("md5(\"%s\") = [%s]\n", arg.data(), result.toAscii().data());
+		printf("md5(\"%s\") = [%s]\n", arg.data(), result.toUtf8().data());
 	}
 
 	return 0;
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/examples/randomtest/randomtest.cpp qca-2.0.3.qt5/examples/randomtest/randomtest.cpp
--- qca-2.0.3/examples/randomtest/randomtest.cpp	2009-04-24 18:59:20.000000000 +0100
+++ qca-2.0.3.qt5/examples/randomtest/randomtest.cpp	2014-03-18 16:11:15.607475000 +0000
@@ -56,7 +56,7 @@ int main(int argc, char **argv)
 
 	// To make this viewable, we convert to hexadecimal.
 	std::cout << "A random 10 byte array (in hex): ";
-	std::cout << QCA::Hex().arrayToString(tenBytes).toAscii().data() << std::endl;
+	std::cout << QCA::Hex().arrayToString(tenBytes).toUtf8().data() << std::endl;
 
 	// Under some circumstances, you may want to create a
 	// Random object, rather than a static public member function.
Binary files qca-2.0.3/lib/qca2.dll and qca-2.0.3.qt5/lib/qca2.dll differ
Binary files qca-2.0.3/lib/qca2.lib and qca-2.0.3.qt5/lib/qca2.lib differ
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/qca_keystore.cpp qca-2.0.3.qt5/src/qca_keystore.cpp
--- qca-2.0.3/src/qca_keystore.cpp	2008-06-02 21:20:38.000000000 +0100
+++ qca-2.0.3.qt5/src/qca_keystore.cpp	2014-03-18 15:29:55.791078300 +0000
@@ -308,14 +308,14 @@ public slots:
 		if(at == -1)
 			return QString();
 		Item &i = items[at];
-		if(qVariantCanConvert<KeyBundle>(v))
-			return i.owner->writeEntry(i.storeContextId, qVariantValue<KeyBundle>(v));
-		else if(qVariantCanConvert<Certificate>(v))
-			return i.owner->writeEntry(i.storeContextId, qVariantValue<Certificate>(v));
-		else if(qVariantCanConvert<CRL>(v))
-			return i.owner->writeEntry(i.storeContextId, qVariantValue<CRL>(v));
-		else if(qVariantCanConvert<PGPKey>(v))
-			return i.owner->writeEntry(i.storeContextId, qVariantValue<PGPKey>(v));
+		if(v.canConvert<KeyBundle>())
+			return i.owner->writeEntry(i.storeContextId, v.value<KeyBundle>());
+		else if(v.canConvert<Certificate>())
+			return i.owner->writeEntry(i.storeContextId, v.value<Certificate>());
+		else if(v.canConvert<CRL>())
+			return i.owner->writeEntry(i.storeContextId, v.value<CRL>());
+		else if(v.canConvert<PGPKey>())
+			return i.owner->writeEntry(i.storeContextId, v.value<PGPKey>());
 		else
 			return QString();
 	}
@@ -783,7 +783,7 @@ bool KeyStoreEntry::ensureAvailable()
 {
 	QString storeId = this->storeId();
 	QString entryId = id();
-	KeyStoreEntryContext *c = (KeyStoreEntryContext *)qVariantValue<void*>(trackercall("entry", QVariantList() << storeId << entryId));
+	KeyStoreEntryContext *c = (KeyStoreEntryContext *)trackercall("entry", QVariantList() << storeId << entryId).value<void*>();
 	if(c)
 		change(c);
 	return isAvailable();
@@ -977,7 +977,7 @@ protected:
 	virtual void run()
 	{
 		if(type == EntryList)
-			entryList = qVariantValue< QList<KeyStoreEntry> >(trackercall("entryList", QVariantList() << trackerId));
+			entryList = trackercall("entryList", QVariantList() << trackerId).value<QList<KeyStoreEntry>>();
 		else if(type == WriteEntry)
 		{
 			QVariant arg;
@@ -1205,7 +1205,7 @@ QList<KeyStoreEntry> KeyStore::entryList
 
 	if(d->trackerId == -1)
 		return QList<KeyStoreEntry>();
-	return qVariantValue< QList<KeyStoreEntry> >(trackercall("entryList", QVariantList() << d->trackerId));
+	return trackercall("entryList", QVariantList() << d->trackerId).value<QList<KeyStoreEntry>>();
 }
 
 bool KeyStore::holdsTrustedCertificates() const
@@ -1213,7 +1213,7 @@ bool KeyStore::holdsTrustedCertificates(
 	QList<KeyStoreEntry::Type> list;
 	if(d->trackerId == -1)
 		return false;
-	list = qVariantValue< QList<KeyStoreEntry::Type> >(trackercall("entryTypes", QVariantList() << d->trackerId));
+	list = trackercall("entryTypes", QVariantList() << d->trackerId).value<QList<KeyStoreEntry::Type>>();
 	if(list.contains(KeyStoreEntry::TypeCertificate) || list.contains(KeyStoreEntry::TypeCRL))
 		return true;
 	return false;
@@ -1224,7 +1224,7 @@ bool KeyStore::holdsIdentities() const
 	QList<KeyStoreEntry::Type> list;
 	if(d->trackerId == -1)
 		return false;
-	list = qVariantValue< QList<KeyStoreEntry::Type> >(trackercall("entryTypes", QVariantList() << d->trackerId));
+	list = trackercall("entryTypes", QVariantList() << d->trackerId).value<QList<KeyStoreEntry::Type>>();
 	if(list.contains(KeyStoreEntry::TypeKeyBundle) || list.contains(KeyStoreEntry::TypePGPSecretKey))
 		return true;
 	return false;
@@ -1235,7 +1235,7 @@ bool KeyStore::holdsPGPPublicKeys() cons
 	QList<KeyStoreEntry::Type> list;
 	if(d->trackerId == -1)
 		return false;
-	list = qVariantValue< QList<KeyStoreEntry::Type> >(trackercall("entryTypes", QVariantList() << d->trackerId));
+	list = trackercall("entryTypes", QVariantList() << d->trackerId).value<QList<KeyStoreEntry::Type>>();
 	if(list.contains(KeyStoreEntry::TypePGPPublicKey))
 		return true;
 	return false;
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/qca_resource.rc qca-2.0.3.qt5/src/qca_resource.rc
--- qca-2.0.3/src/qca_resource.rc	1970-01-01 01:00:00.000000000 +0100
+++ qca-2.0.3.qt5/src/qca_resource.rc	2014-03-17 16:25:42.491728200 +0000
@@ -0,0 +1,39 @@
+# if defined(UNDER_CE)
+#  include <winbase.h>
+# else
+#  include <winver.h>
+# endif
+
+VS_VERSION_INFO VERSIONINFO
+	FILEVERSION 2,0,3,0
+	PRODUCTVERSION 2,0,3,0
+	FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+	FILEFLAGS VS_FF_DEBUG
+#else
+	FILEFLAGS 0x0L
+#endif
+	FILEOS VOS__WINDOWS32
+	FILETYPE VFT_DLL
+	FILESUBTYPE 0x0L
+	BEGIN
+		BLOCK "StringFileInfo"
+		BEGIN
+			BLOCK "040904b0"
+			BEGIN
+				VALUE "CompanyName", "\0"
+				VALUE "FileDescription", "\0"
+				VALUE "FileVersion", "2.0.3.0\0"
+				VALUE "LegalCopyright", "\0"
+				VALUE "OriginalFilename", "qca2.dll\0"
+				VALUE "ProductName", "qca\0"
+				VALUE "ProductVersion", "2.0.3.0\0"
+			END
+		END
+		BLOCK "VarFileInfo"
+		BEGIN
+			VALUE "Translation", 0x0409, 1200
+		END
+	END
+/* End of Version info */
+
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/console.cpp qca-2.0.3.qt5/src/support/console.cpp
--- qca-2.0.3/src/support/console.cpp	2010-11-27 21:14:12.000000000 +0000
+++ qca-2.0.3.qt5/src/support/console.cpp	2014-03-18 15:33:59.079472000 +0000
@@ -278,7 +278,7 @@ public:
 
 	SecureArray readSecure(int bytes = -1)
 	{
-		return qVariantValue<SecureArray>(mycall(worker, "readSecure", QVariantList() << bytes));
+		return mycall(worker, "readSecure", QVariantList() << bytes).value<SecureArray>();
 	}
 
 	void writeSecure(const SecureArray &a)
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/qpipe.cpp qca-2.0.3.qt5/src/support/qpipe.cpp
--- qca-2.0.3/src/support/qpipe.cpp	2008-05-17 02:39:06.000000000 +0100
+++ qca-2.0.3.qt5/src/support/qpipe.cpp	2014-03-18 11:12:08.804520400 +0000
@@ -41,6 +41,9 @@
 # include <QTextCodec>
 # include <QTextEncoder>
 # include <QTextDecoder>
+#if QT_VERSION >= 0x050000
+ #define QT_WA(unicode, ansi) unicode
+#endif
 #else
 # include <QMutex>
 #endif
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/synchronizer.cpp qca-2.0.3.qt5/src/support/synchronizer.cpp
--- qca-2.0.3/src/support/synchronizer.cpp	2008-05-16 21:41:50.000000000 +0100
+++ qca-2.0.3.qt5/src/support/synchronizer.cpp	2014-03-18 11:06:53.864528100 +0000
@@ -58,7 +58,7 @@ public:
 
 	static bool haveFixer(QObject *obj)
 	{
-		return (qFindChild<TimerFixer *>(obj) ? true: false);
+		return (obj->findChild<TimerFixer *>() ? true: false);
 	}
 
 	TimerFixer(QObject *_target, TimerFixer *_fp = 0) : QObject(_target)
@@ -180,7 +180,7 @@ private slots:
 			int timeLeft = qMax(info.interval - info.time.elapsed(), 0);
 			info.fixInterval = true;
 			ed->unregisterTimer(info.id);
-			ed->registerTimer(info.id, timeLeft, target);
+			ed->registerTimer(info.id, timeLeft, Qt::CoarseTimer, target);
 
 #ifdef TIMERFIXER_DEBUG
 			printf("TimerFixer[%p] adjusting [%d] to %d\n", this, info.id, timeLeft);
@@ -239,7 +239,7 @@ private:
 #endif
 			info.fixInterval = false;
 			ed->unregisterTimer(info.id);
-			ed->registerTimer(info.id, info.interval, target);
+			ed->registerTimer(info.id, info.interval, Qt::CoarseTimer, target);
 		}
 
 		info.time.start();
@@ -258,7 +258,7 @@ private:
 			int id = timers[n].id;
 			for(int i = 0; i < edtimers.count(); ++i)
 			{
-				if(edtimers[i].first == id)
+				if(edtimers[i].timerId == id)
 				{
 					found = true;
 					break;
@@ -278,7 +278,7 @@ private:
 		// added?
 		for(int n = 0; n < edtimers.count(); ++n)
 		{
-			int id = edtimers[n].first;
+			int id = edtimers[n].timerId;
 			bool found = false;
 			for(int i = 0; i < timers.count(); ++i)
 			{
@@ -293,7 +293,7 @@ private:
 			{
 				TimerInfo info;
 				info.id = id;
-				info.interval = edtimers[n].second;
+				info.interval = edtimers[n].interval;
 				info.time.start();
 				timers += info;
 #ifdef TIMERFIXER_DEBUG
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/src/support/syncthread.cpp qca-2.0.3.qt5/src/support/syncthread.cpp
--- qca-2.0.3/src/support/syncthread.cpp	2008-05-16 21:41:50.000000000 +0100
+++ qca-2.0.3.qt5/src/support/syncthread.cpp	2014-03-18 08:53:02.964233300 +0000
@@ -32,7 +32,7 @@ QByteArray methodReturnType(const QMetaO
 	for(int n = 0; n < obj->methodCount(); ++n)
 	{
 		QMetaMethod m = obj->method(n);
-		QByteArray sig = m.signature();
+		QByteArray sig = m.methodSignature();
 		int offset = sig.indexOf('(');
 		if(offset == -1)
 			continue;
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/tools/qcatool/main.cpp qca-2.0.3.qt5/tools/qcatool/main.cpp
--- qca-2.0.3/tools/qcatool/main.cpp	2010-11-27 21:14:12.000000000 +0000
+++ qca-2.0.3.qt5/tools/qcatool/main.cpp	2014-03-18 15:36:44.627994000 +0000
@@ -1301,14 +1301,14 @@ static bool string_is_int(const QString
 
 static bool variant_is_bool(const QVariant &in)
 {
-	if(qVariantCanConvert<QString>(in) && string_is_bool(in.toString()))
+	if(in.canConvert<QString>() && string_is_bool(in.toString()))
 		return true;
 	return false;
 }
 
 static bool variant_is_int(const QVariant &in)
 {
-	if(qVariantCanConvert<QString>(in) && string_is_int(in.toString()))
+	if(in.canConvert<QString>() && string_is_int(in.toString()))
 		return true;
 	return false;
 }
@@ -1418,7 +1418,7 @@ static QVariantMap provider_config_edit_
 			newval = prompt_for_bool(QString("bool   ") + prompt, val.toBool());
 		else if(variant_is_int(val))
 			newval = prompt_for_int(QString("int    ") + prompt, val.toInt());
-		else if(qVariantCanConvert<QString>(val))
+		else if(val.canConvert<QString>())
 			newval = prompt_for_string(QString("string ") + prompt, val.toString());
 		else
 			continue; // skip bogus fields
diff -rupN -x '*.exe' -x 'Makefile*' -x '*.obj' -x '*.log' -x '*.pri' -x '*.prf' -x '*.prl' qca-2.0.3/unittest/certunittest/certunittest.cpp qca-2.0.3.qt5/unittest/certunittest/certunittest.cpp
--- qca-2.0.3/unittest/certunittest/certunittest.cpp	2007-07-22 05:22:00.000000000 +0100
+++ qca-2.0.3.qt5/unittest/certunittest/certunittest.cpp	2014-03-18 15:40:08.363365100 +0000
@@ -128,24 +128,24 @@ void CertUnitTest::CAcertstest()
 	    QCOMPARE( ca1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 	    QCOMPARE( ca1.notValidAfter().toString(), QDateTime( QDate( 2011, 8, 15 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 
-	    QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::CRLSign), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::CRLSign), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), false );
 
 	    // no policies on this cert
 	    QCOMPARE( ca1.policies().count(), 0 );
@@ -183,24 +183,24 @@ void CertUnitTest::qualitysslcatest()
 
 	    QCOMPARE( ca1.pathLimit(), 0 );
 
-	    QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::CRLSign), (QBool)true );
-	    QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::CRLSign), true );
+	    QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), false );
 	}
     }
 }
@@ -229,39 +229,39 @@ void CertUnitTest::checkExpiredClientCer
 	    QCOMPARE( client1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 32, 38 ), Qt::UTC ).toString() );
 	    QCOMPARE( client1.notValidAfter().toString(), QDateTime( QDate( 2006, 8, 16 ), QTime( 8, 32, 38 ), Qt::UTC ).toString() );
 
-	    QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::CRLSign), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::ServerAuth), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::ClientAuth), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::EmailProtection), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( client1.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), true );
+	    QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), true );
+	    QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), false );
+	    QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), false );
+	    QCOMPARE( client1.constraints().contains(QCA::CRLSign), false );
+	    QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( client1.constraints().contains(QCA::ServerAuth), false );
+	    QCOMPARE( client1.constraints().contains(QCA::ClientAuth), true );
+	    QCOMPARE( client1.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( client1.constraints().contains(QCA::EmailProtection), true );
+	    QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( client1.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( client1.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), false );
 
 	    // no policies on this cert
 	    QCOMPARE( client1.policies().count(), 0 );
 
 	    QCA::CertificateInfo subject1 = client1.subjectInfo();
 	    QCOMPARE( subject1.isEmpty(), false );
-	    QCOMPARE( subject1.values(QCA::Country).contains("de"), (QBool)true );
-	    QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
-	    QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure User Test Cert"), (QBool)true );
+	    QCOMPARE( subject1.values(QCA::Country).contains("de"), true );
+	    QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
+	    QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure User Test Cert"), true );
 
 	    QCA::CertificateInfo issuer1 = client1.issuerInfo();
 	    QCOMPARE( issuer1.isEmpty(), false );
-	    QCOMPARE( issuer1.values(QCA::Country).contains("de"), (QBool)true );
-	    QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
-	    QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), (QBool)true );
+	    QCOMPARE( issuer1.values(QCA::Country).contains("de"), true );
+	    QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
+	    QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), true );
 
 	    QByteArray subjectKeyID = QCA::Hex().stringToArray("889E7EF729719D7B280F361AAE6D00D39DE1AADB").toByteArray();
 	    QCOMPARE( client1.subjectKeyId(), subjectKeyID );
@@ -337,24 +337,24 @@ void CertUnitTest::checkClientCerts()
 	    QCOMPARE( client2.notValidBefore().toString(), QDateTime( QDate( 2007, 7, 22 ), QTime( 3, 30, 29 ), Qt::UTC ).toString() );
 	    QCOMPARE( client2.notValidAfter().toString(), QDateTime( QDate( 2012, 7, 20 ), QTime( 3, 30, 29 ), Qt::UTC ).toString() );
 
-	    QCOMPARE( client2.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( client2.constraints().contains(QCA::NonRepudiation), (QBool)true );
-	    QCOMPARE( client2.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( client2.constraints().contains(QCA::DataEncipherment), (QBool)true );
-	    QCOMPARE( client2.constraints().contains(QCA::KeyAgreement), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::CRLSign), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::ServerAuth), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::ClientAuth), (QBool)true );
-	    QCOMPARE( client2.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::EmailProtection), (QBool)true );
-	    QCOMPARE( client2.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( client2.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( client2.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( client2.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( client2.constraints().contains(QCA::NonRepudiation), true );
+	    QCOMPARE( client2.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( client2.constraints().contains(QCA::DataEncipherment), true );
+	    QCOMPARE( client2.constraints().contains(QCA::KeyAgreement), false );
+	    QCOMPARE( client2.constraints().contains(QCA::KeyCertificateSign), false );
+	    QCOMPARE( client2.constraints().contains(QCA::CRLSign), false );
+	    QCOMPARE( client2.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( client2.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( client2.constraints().contains(QCA::ServerAuth), false );
+	    QCOMPARE( client2.constraints().contains(QCA::ClientAuth), true );
+	    QCOMPARE( client2.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( client2.constraints().contains(QCA::EmailProtection), true );
+	    QCOMPARE( client2.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( client2.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( client2.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( client2.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( client2.constraints().contains(QCA::OCSPSigning), false );
 
 	    // no policies on this cert
 	    QCOMPARE( client2.policies().count(), 0 );
@@ -469,24 +469,24 @@ void CertUnitTest::derCAcertstest()
             QCOMPARE( ca1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
             QCOMPARE( ca1.notValidAfter().toString(), QDateTime( QDate( 2011, 8, 15 ), QTime( 8, 30, 39 ), Qt::UTC ).toString() );
 
-            QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-            QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-            QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-            QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), (QBool)true );
-            QCOMPARE( ca1.constraints().contains(QCA::CRLSign), (QBool)true );
-            QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-            QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), (QBool)false );
-            QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+            QCOMPARE( ca1.constraints().contains(QCA::DigitalSignature), true );
+            QCOMPARE( ca1.constraints().contains(QCA::NonRepudiation), true );
+            QCOMPARE( ca1.constraints().contains(QCA::KeyEncipherment), true );
+            QCOMPARE( ca1.constraints().contains(QCA::DataEncipherment), false );
+            QCOMPARE( ca1.constraints().contains(QCA::KeyAgreement), false );
+            QCOMPARE( ca1.constraints().contains(QCA::KeyCertificateSign), true );
+            QCOMPARE( ca1.constraints().contains(QCA::CRLSign), true );
+            QCOMPARE( ca1.constraints().contains(QCA::EncipherOnly), false );
+            QCOMPARE( ca1.constraints().contains(QCA::DecipherOnly), false );
+            QCOMPARE( ca1.constraints().contains(QCA::ServerAuth), false );
+            QCOMPARE( ca1.constraints().contains(QCA::ClientAuth), false );
+            QCOMPARE( ca1.constraints().contains(QCA::CodeSigning), false );
+            QCOMPARE( ca1.constraints().contains(QCA::EmailProtection), false );
+            QCOMPARE( ca1.constraints().contains(QCA::IPSecEndSystem), false );
+            QCOMPARE( ca1.constraints().contains(QCA::IPSecTunnel), false);
+            QCOMPARE( ca1.constraints().contains(QCA::IPSecUser), false );
+            QCOMPARE( ca1.constraints().contains(QCA::TimeStamping), false );
+            QCOMPARE( ca1.constraints().contains(QCA::OCSPSigning), false );
 
             // no policies on this cert
             QCOMPARE( ca1.policies().count(), 0 );
@@ -517,24 +517,24 @@ void CertUnitTest::altName()
 
 	    QCOMPARE( client1.commonName(), QString("Valid RFC822 nameConstraints EE Certificate Test21") );
 
-	    QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), (QBool)true );
-	    QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::CRLSign), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::ServerAuth), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::ClientAuth), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::EmailProtection), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( client1.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), true );
+	    QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), true );
+	    QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), false );
+	    QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), false );
+	    QCOMPARE( client1.constraints().contains(QCA::CRLSign), false );
+	    QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( client1.constraints().contains(QCA::ServerAuth), false );
+	    QCOMPARE( client1.constraints().contains(QCA::ClientAuth), false );
+	    QCOMPARE( client1.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( client1.constraints().contains(QCA::EmailProtection), false );
+	    QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( client1.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( client1.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), false );
 
 	    QCOMPARE( client1.policies().count(), 1 );
 	    QCOMPARE( client1.policies().at(0), QString("2.16.840.1.101.3.2.1.48.1") );
@@ -635,24 +635,24 @@ void CertUnitTest::altNames76()
 
             QCOMPARE( client1.commonName(), QString("sip1.su.se") );
 
-            QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-            QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-            QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-            QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::CRLSign), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::ServerAuth), (QBool)true );
-            QCOMPARE( client1.constraints().contains(QCA::ClientAuth), (QBool)true );
-            QCOMPARE( client1.constraints().contains(QCA::CodeSigning), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::EmailProtection), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-            QCOMPARE( client1.constraints().contains(QCA::IPSecUser), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::TimeStamping), (QBool)false );
-            QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+            QCOMPARE( client1.constraints().contains(QCA::DigitalSignature), true );
+            QCOMPARE( client1.constraints().contains(QCA::NonRepudiation), true );
+            QCOMPARE( client1.constraints().contains(QCA::KeyEncipherment), true );
+            QCOMPARE( client1.constraints().contains(QCA::DataEncipherment), false );
+            QCOMPARE( client1.constraints().contains(QCA::KeyAgreement), false );
+            QCOMPARE( client1.constraints().contains(QCA::KeyCertificateSign), false );
+            QCOMPARE( client1.constraints().contains(QCA::CRLSign), false );
+            QCOMPARE( client1.constraints().contains(QCA::EncipherOnly), false );
+            QCOMPARE( client1.constraints().contains(QCA::DecipherOnly), false );
+            QCOMPARE( client1.constraints().contains(QCA::ServerAuth), true );
+            QCOMPARE( client1.constraints().contains(QCA::ClientAuth), true );
+            QCOMPARE( client1.constraints().contains(QCA::CodeSigning), false );
+            QCOMPARE( client1.constraints().contains(QCA::EmailProtection), false );
+            QCOMPARE( client1.constraints().contains(QCA::IPSecEndSystem), false );
+            QCOMPARE( client1.constraints().contains(QCA::IPSecTunnel), false);
+            QCOMPARE( client1.constraints().contains(QCA::IPSecUser), false );
+            QCOMPARE( client1.constraints().contains(QCA::TimeStamping), false );
+            QCOMPARE( client1.constraints().contains(QCA::OCSPSigning), false );
 
             QCOMPARE( client1.policies().count(), 1 );
 
@@ -733,39 +733,39 @@ void CertUnitTest::checkExpiredServerCer
 	    QCOMPARE( server1.notValidBefore().toString(), QDateTime( QDate( 2001, 8, 17 ), QTime( 8, 46, 24 ), Qt::UTC ).toString() );
 	    QCOMPARE( server1.notValidAfter().toString(), QDateTime( QDate( 2006, 8, 16 ), QTime( 8, 46, 24 ), Qt::UTC ).toString() );
 
-	    QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::CRLSign), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::ServerAuth), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::ClientAuth), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::EmailProtection), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( server1.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), false );
+	    QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), false );
+	    QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), true );
+	    QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), false );
+	    QCOMPARE( server1.constraints().contains(QCA::CRLSign), false );
+	    QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( server1.constraints().contains(QCA::ServerAuth), true );
+	    QCOMPARE( server1.constraints().contains(QCA::ClientAuth), false );
+	    QCOMPARE( server1.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( server1.constraints().contains(QCA::EmailProtection), false );
+	    QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( server1.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( server1.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), false );
 
 	    // no policies on this cert
 	    QCOMPARE( server1.policies().count(), 0 );
 
 	    QCA::CertificateInfo subject1 = server1.subjectInfo();
 	    QCOMPARE( subject1.isEmpty(), false );
-	    QCOMPARE( subject1.values(QCA::Country).contains("de"), (QBool)true );
-	    QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
-	    QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure Server Cert"), (QBool)true );
+	    QCOMPARE( subject1.values(QCA::Country).contains("de"), true );
+	    QCOMPARE( subject1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
+	    QCOMPARE( subject1.values(QCA::CommonName).contains("Insecure Server Cert"), true );
 
 	    QCA::CertificateInfo issuer1 = server1.issuerInfo();
 	    QCOMPARE( issuer1.isEmpty(), false );
-	    QCOMPARE( issuer1.values(QCA::Country).contains("de"), (QBool)true );
-	    QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), (QBool)true );
-	    QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), (QBool)true );
+	    QCOMPARE( issuer1.values(QCA::Country).contains("de"), true );
+	    QCOMPARE( issuer1.values(QCA::Organization).contains("InsecureTestCertificate"), true );
+	    QCOMPARE( issuer1.values(QCA::CommonName).contains("For Tests Only"), true );
 
 	    QByteArray subjectKeyID = QCA::Hex().stringToArray("0234E2C906F6E0B44253BE04C0CBA7823A6DB509").toByteArray();
 	    QCOMPARE( server1.subjectKeyId(), subjectKeyID );
@@ -836,24 +836,24 @@ void CertUnitTest::checkServerCerts()
 	    QCOMPARE( server1.notValidBefore().toString(), QDateTime( QDate( 2007, 7, 22 ), QTime( 6, 5, 39 ), Qt::UTC ).toString() );
 	    QCOMPARE( server1.notValidAfter().toString(), QDateTime( QDate( 2012, 7, 20 ), QTime( 6, 5, 39 ), Qt::UTC ).toString() );
 
-	    QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::CRLSign), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::ServerAuth), (QBool)true );
-	    QCOMPARE( server1.constraints().contains(QCA::ClientAuth), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::CodeSigning), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::EmailProtection), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), (QBool)false);
-	    QCOMPARE( server1.constraints().contains(QCA::IPSecUser), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::TimeStamping), (QBool)false );
-	    QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), (QBool)false );
+	    QCOMPARE( server1.constraints().contains(QCA::DigitalSignature), true );
+	    QCOMPARE( server1.constraints().contains(QCA::NonRepudiation), true );
+	    QCOMPARE( server1.constraints().contains(QCA::KeyEncipherment), true );
+	    QCOMPARE( server1.constraints().contains(QCA::DataEncipherment), false );
+	    QCOMPARE( server1.constraints().contains(QCA::KeyAgreement), false );
+	    QCOMPARE( server1.constraints().contains(QCA::KeyCertificateSign), false );
+	    QCOMPARE( server1.constraints().contains(QCA::CRLSign), false );
+	    QCOMPARE( server1.constraints().contains(QCA::EncipherOnly), false );
+	    QCOMPARE( server1.constraints().contains(QCA::DecipherOnly), false );
+	    QCOMPARE( server1.constraints().contains(QCA::ServerAuth), true );
+	    QCOMPARE( server1.constraints().contains(QCA::ClientAuth), false );
+	    QCOMPARE( server1.constraints().contains(QCA::CodeSigning), false );
+	    QCOMPARE( server1.constraints().contains(QCA::EmailProtection), false );
+	    QCOMPARE( server1.constraints().contains(QCA::IPSecEndSystem), false );
+	    QCOMPARE( server1.constraints().contains(QCA::IPSecTunnel), false);
+	    QCOMPARE( server1.constraints().contains(QCA::IPSecUser), false );
+	    QCOMPARE( server1.constraints().contains(QCA::TimeStamping), false );
+	    QCOMPARE( server1.constraints().contains(QCA::OCSPSigning), false );
 
 	    // no policies on this cert
 	    QCOMPARE( server1.policies().count(), 0 );

<----