add example for using QSslCertificate; refs #28
This commit is contained in:
		| @@ -94,7 +94,7 @@ AC_CHECK_PROG(have_dot, dot, yes, no) | |||||||
| PKG_PROG_PKG_CONFIG | PKG_PROG_PKG_CONFIG | ||||||
|  |  | ||||||
| # libraries | # libraries | ||||||
| #PKG_CHECK_MODULES([QT], [QtNetwork]) | PKG_CHECK_MODULES([QT], [QtNetwork]) | ||||||
|  |  | ||||||
| AC_ARG_ENABLE(pedantic, | AC_ARG_ENABLE(pedantic, | ||||||
|   [AS_HELP_STRING([--enable-pedantic], |   [AS_HELP_STRING([--enable-pedantic], | ||||||
|   | |||||||
| @@ -36,8 +36,8 @@ openssl_engine_demo_SOURCES = openssl-engine-demo.cxx | |||||||
| cardos_demo_SOURCES = cardos-demo.cxx | cardos_demo_SOURCES = cardos-demo.cxx | ||||||
| suisse_id_demo_SOURCES = suisse-id-demo.cxx | suisse_id_demo_SOURCES = suisse-id-demo.cxx | ||||||
| # moc_suisse-id-demo.cxx | # moc_suisse-id-demo.cxx | ||||||
| #suisse_id_demo_CXXFLAGS = ${QT_CFLAGS} | suisse_id_demo_CXXFLAGS = ${QT_CFLAGS} | ||||||
| #suisse_id_demo_LDADD = ${QT_LIBS} | suisse_id_demo_LDADD = ${QT_LIBS} | ||||||
|  |  | ||||||
| moc_%.cxx: %.hxx | moc_%.cxx: %.hxx | ||||||
| 	moc -o $@ $< | 	moc -o $@ $< | ||||||
|   | |||||||
| @@ -8,6 +8,9 @@ | |||||||
| #include <suisse-id-demo.hxx> | #include <suisse-id-demo.hxx> | ||||||
| #include <mrw/args.hxx> | #include <mrw/args.hxx> | ||||||
|  |  | ||||||
|  | #include <QtNetwork/QSslCertificate> | ||||||
|  | #include <QtCore/QDateTime> | ||||||
|  |  | ||||||
| int main(int argc, char** argv) try { | int main(int argc, char** argv) try { | ||||||
|   std::string lib("libcvP11.so"); |   std::string lib("libcvP11.so"); | ||||||
|   mrw::args::parse(argc, argv, |   mrw::args::parse(argc, argv, | ||||||
| @@ -53,6 +56,7 @@ int main(int argc, char** argv) try { | |||||||
|                <<"  r: remove all certificates"<<std::endl |                <<"  r: remove all certificates"<<std::endl | ||||||
|                <<"  p: PIN change"<<std::endl |                <<"  p: PIN change"<<std::endl | ||||||
|                <<"  i: (re-) import certificates"<<std::endl |                <<"  i: (re-) import certificates"<<std::endl | ||||||
|  |                <<"  z: show certificates"<<std::endl | ||||||
|                <<"  q: quit"<<std::endl; |                <<"  q: quit"<<std::endl; | ||||||
|       std::cin>>choice; |       std::cin>>choice; | ||||||
|       try { |       try { | ||||||
| @@ -76,6 +80,20 @@ int main(int argc, char** argv) try { | |||||||
|         } else if (choice=="i") { |         } else if (choice=="i") { | ||||||
|           TextualCycle check(*card); |           TextualCycle check(*card); | ||||||
|           check.installCerts(true); |           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") { |         } else if (choice=="q") { | ||||||
|           return 0; |           return 0; | ||||||
|         } else { |         } else { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user