added methods to get specific certificates; refs #27

This commit is contained in:
Marc Wäckerlin
2014-01-27 13:48:05 +00:00
parent b695ce2a0c
commit 8bd825ef08
2 changed files with 116 additions and 14 deletions

View File

@@ -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 {