added methods to get specific certificates; refs #27
This commit is contained in:
		| @@ -11,6 +11,17 @@ | ||||
| #include <QtNetwork/QSslCertificate> | ||||
| #include <QtCore/QDateTime> | ||||
|  | ||||
| void show(const suisseid::Certificate& cert) { | ||||
|   QSslCertificate c(QByteArray(cert.data(), cert.size()), 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; | ||||
| } | ||||
|  | ||||
| int main(int argc, char** argv) try { | ||||
|   std::string lib("libcvP11.so"); | ||||
|   mrw::args::parse(argc, argv, | ||||
| @@ -54,6 +65,8 @@ int main(int argc, char** argv) try { | ||||
|                <<"  p: PIN change"<<std::endl | ||||
|                <<"  i: (re-) import certificates"<<std::endl | ||||
|                <<"  z: show certificates"<<std::endl | ||||
|                <<"  a: show authentication certificate"<<std::endl | ||||
|                <<"  d: show digital signature certificate"<<std::endl | ||||
|                <<"  q: quit"<<std::endl; | ||||
|       std::cin>>choice; | ||||
|       try { | ||||
| @@ -80,16 +93,12 @@ int main(int argc, char** argv) try { | ||||
|         } else if (choice=="z") { | ||||
|           for (suisseid::Certificates::iterator cert(certs.begin()); | ||||
|                cert!=certs.end(); ++cert) { | ||||
|             QSslCertificate c(QByteArray(cert->data(), cert->size()), | ||||
|                               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; | ||||
|             show(*cert); | ||||
|           } | ||||
|         } else if (choice=="a") { | ||||
|           show((*card)->authenticationCertificate()); | ||||
|         } else if (choice=="d") { | ||||
|           show((*card)->digitalSignatureCertificate()); | ||||
|         } else if (choice=="q") { | ||||
|           return 0; | ||||
|         } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user