• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • KDE Support
  • Sitemap
  • Contact Us
 

qca

dsaunittest.cpp

Go to the documentation of this file.
00001 
00026 #include <QtCrypto>
00027 #include <QtTest/QtTest>
00028 
00029 class DSAUnitTest : public QObject
00030 {
00031     Q_OBJECT
00032 
00033 private slots:
00034     void initTestCase();
00035     void cleanupTestCase();
00036     void testdsa();
00037 
00038 private:
00039     QCA::Initializer* m_init;
00040 
00041 };
00042 
00043 void DSAUnitTest::initTestCase()
00044 {
00045     m_init = new QCA::Initializer;
00046 #include "../fixpaths.include"
00047 }
00048 
00049 void DSAUnitTest::cleanupTestCase()
00050 {
00051     delete m_init;
00052 }
00053 
00054 void DSAUnitTest::testdsa()
00055 {
00056     if(!QCA::isSupported("pkey") ||
00057        !QCA::PKey::supportedTypes().contains(QCA::PKey::DSA) ||
00058        !QCA::PKey::supportedIOTypes().contains(QCA::PKey::DSA))
00059         QWARN("DSA not supported");
00060     else {
00061     QCA::KeyGenerator keygen;
00062     QCOMPARE( keygen.isBusy(), false );
00063     QCOMPARE( keygen.blockingEnabled(), true );
00064     QCA::DLGroup group = keygen.createDLGroup(QCA::DSA_1024);
00065     QCOMPARE( group.isNull(), false );
00066 
00067     QCA::PrivateKey dsaKey = keygen.createDSA( group );
00068     QCOMPARE( dsaKey.isNull(), false );
00069     QCOMPARE( dsaKey.isRSA(), false );
00070     QCOMPARE( dsaKey.isDSA(), true );
00071     QCOMPARE( dsaKey.isDH(), false );
00072     QCOMPARE( dsaKey.isPrivate(), true );
00073     QCOMPARE( dsaKey.isPublic(), false );
00074     QCOMPARE( dsaKey.canSign(), true );
00075     QCOMPARE( dsaKey.canDecrypt(), false );
00076 
00077     QCOMPARE( dsaKey.bitSize(), 1024 );
00078     QCA::DSAPrivateKey dsaPrivKey = dsaKey.toDSA();
00079     QCOMPARE( dsaPrivKey.bitSize(), 1024 );
00080 
00081     QCA::SecureArray dsaDER = dsaKey.toDER();
00082     QCOMPARE( dsaDER.isEmpty(), false );
00083 
00084     QString dsaPEM = dsaKey.toPEM();
00085     QCOMPARE( dsaPEM.isEmpty(), false );
00086 
00087     QCA::ConvertResult checkResult;
00088     QCA::PrivateKey fromPEMkey = QCA::PrivateKey::fromPEM(dsaPEM, QCA::SecureArray(), &checkResult);
00089     QCOMPARE( checkResult, QCA::ConvertGood );
00090     QCOMPARE( fromPEMkey.isNull(), false );
00091     QCOMPARE( fromPEMkey.isRSA(), false );
00092     QCOMPARE( fromPEMkey.isDSA(), true );
00093     QCOMPARE( fromPEMkey.isDH(), false );
00094     QCOMPARE( fromPEMkey.isPrivate(), true );
00095     QCOMPARE( fromPEMkey.isPublic(), false );
00096     QVERIFY( dsaKey == fromPEMkey );
00097 
00098     QCA::PrivateKey fromDERkey = QCA::PrivateKey::fromDER(dsaDER, QCA::SecureArray(), &checkResult);
00099     QCOMPARE( checkResult, QCA::ConvertGood );
00100     QCOMPARE( fromDERkey.isNull(), false );
00101     QCOMPARE( fromDERkey.isRSA(), false );
00102     QCOMPARE( fromDERkey.isDSA(), true );
00103     QCOMPARE( fromDERkey.isDH(), false );
00104     QCOMPARE( fromDERkey.isPrivate(), true );
00105     QCOMPARE( fromDERkey.isPublic(), false );
00106     QVERIFY( dsaKey == fromDERkey );
00107     }
00108 }
00109 
00110 QTEST_MAIN(DSAUnitTest)
00111 
00112 #include "dsaunittest.moc"
00113 

qca

Skip menu "qca"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

KDE Support

Skip menu "KDE Support"
  • akonadi
  • Decibel
  • grantlee
  • kdewin
  • phonon
  •     Backend
  • polkit-qt
  • qca
  • qimageblitz
  • soprano
  • strigi
  •     searchclient
  •     streamanalyzer
  •     streams
Generated for KDE Support by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal