add example for using QSslCertificate; refs #28
This commit is contained in:
		| @@ -36,8 +36,8 @@ openssl_engine_demo_SOURCES = openssl-engine-demo.cxx | ||||
| cardos_demo_SOURCES = cardos-demo.cxx | ||||
| suisse_id_demo_SOURCES = suisse-id-demo.cxx | ||||
| # moc_suisse-id-demo.cxx | ||||
| #suisse_id_demo_CXXFLAGS = ${QT_CFLAGS} | ||||
| #suisse_id_demo_LDADD = ${QT_LIBS} | ||||
| suisse_id_demo_CXXFLAGS = ${QT_CFLAGS} | ||||
| suisse_id_demo_LDADD = ${QT_LIBS} | ||||
|  | ||||
| moc_%.cxx: %.hxx | ||||
| 	moc -o $@ $< | ||||
|   | ||||
| @@ -8,6 +8,9 @@ | ||||
| #include <suisse-id-demo.hxx> | ||||
| #include <mrw/args.hxx> | ||||
|  | ||||
| #include <QtNetwork/QSslCertificate> | ||||
| #include <QtCore/QDateTime> | ||||
|  | ||||
| int main(int argc, char** argv) try { | ||||
|   std::string lib("libcvP11.so"); | ||||
|   mrw::args::parse(argc, argv, | ||||
| @@ -53,6 +56,7 @@ int main(int argc, char** argv) try { | ||||
|                <<"  r: remove all certificates"<<std::endl | ||||
|                <<"  p: PIN change"<<std::endl | ||||
|                <<"  i: (re-) import certificates"<<std::endl | ||||
|                <<"  z: show certificates"<<std::endl | ||||
|                <<"  q: quit"<<std::endl; | ||||
|       std::cin>>choice; | ||||
|       try { | ||||
| @@ -76,6 +80,20 @@ int main(int argc, char** argv) try { | ||||
|         } else if (choice=="i") { | ||||
|           TextualCycle check(*card); | ||||
|           check.installCerts(true); | ||||
|         } else if (choice=="z") { | ||||
|           for (cryptoki::ObjectList::iterator cert(certs.begin()); | ||||
|                cert!=certs.end(); ++cert) { | ||||
|             std::string data(cert->attribute(CKA_VALUE).value); | ||||
|             QByteArray der(QByteArray(data.data(), data.size())); | ||||
|             QSslCertificate c(der, QSsl::Der); | ||||
|             std::cout<<"Certificate info: CN=" | ||||
|                      <<QString(c.subjectInfo(QSslCertificate::CommonName) | ||||
|                                .toUtf8()).toStdString() | ||||
|                      <<std::endl | ||||
|                      <<"  Valid until: " | ||||
|                      <<QString(c.expiryDate().toString().toUtf8()).toStdString() | ||||
|                      <<std::endl; | ||||
|           } | ||||
|         } else if (choice=="q") { | ||||
|           return 0; | ||||
|         } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user