better interface to get binary certificates; refs #28

This commit is contained in:
Marc Wäckerlin
2014-01-22 15:14:36 +00:00
parent d8f6abe3ce
commit e8c230ce1b
3 changed files with 85 additions and 25 deletions

View File

@@ -37,17 +37,14 @@ int main(int argc, char** argv) try {
<<" SigG: "<<(*card)->sigGPinRetries()<<std::endl
<<" Transport: "<<(*card)->transportPinRetries()<<std::endl
<<" PUK: "<<(*card)->pukRetries()<<std::endl;
cryptoki::Session session((*card)->slot());
cryptoki::Session::Info info(session.getsessioninfo());
cryptoki::Session::Info info((*card)->sessionInfo());
std::cout<<" Session:"<<std::endl
<<" Slot: "<<info.slotID<<std::endl
<<" State: "<<session.state(info)<<std::endl
<<" Flags: "<<((info.flags|CKF_RW_SESSION)
<<" State: "<<info.stateString()<<std::endl
<<" Flags: "<<(info.readwrite()
?"read/write":"read only")<<std::endl
<<" Device Error: "<<info.ulDeviceError<<std::endl;
cryptoki::ObjectList certs
(session.find(cryptoki::Attribute(CKA_CLASS)
.from<CK_OBJECT_CLASS>(CKO_CERTIFICATE)));
suisseid::Certificates certs((*card)->certificates());
std::cout<<" Certificates: "<<certs.size()<<std::endl;
std::cout<<"--------------------------------------------------"<<std::endl
<<"Your Order Sir:"<<std::endl
@@ -81,10 +78,9 @@ int main(int argc, char** argv) try {
TextualCycle check(*card);
check.installCerts(true);
} else if (choice=="z") {
for (cryptoki::ObjectList::iterator cert(certs.begin());
for (suisseid::Certificates::iterator cert(certs.begin());
cert!=certs.end(); ++cert) {
std::string data(cert->attribute(CKA_VALUE).value);
QByteArray der(QByteArray(data.data(), data.size()));
QByteArray der(QByteArray(cert->data(), cert->size()));
QSslCertificate c(der, QSsl::Der);
std::cout<<"Certificate info: CN="
<<QString(c.subjectInfo(QSslCertificate::CommonName)