some minor changes accorfing o what's really needed/supported; refs #28

This commit is contained in:
Marc Wäckerlin
2014-03-31 09:41:44 +00:00
parent b2406a1750
commit fb78247bc3
3 changed files with 27 additions and 19 deletions

View File

@@ -10,7 +10,11 @@
#include <mrw/vector.hxx>
#include <mrw/args.hxx>
#include <QApplication>
#if QT_VERSION >= 0x050000
#include <QtWidgets/QApplication>
#else
#include <QtGui/QApplication>
#endif
int main(int argc, char** argv) {
QApplication app(argc, argv);

View File

@@ -1084,37 +1084,37 @@ namespace cardos {
//@{
/// Path to MF
std::string mf() {
return crypto::hexToBin("3f00");
static std::string mf() {
return "3f00";
}
/// Path to PKCS#15
std::string pkcs15() {
return crypto::hexToBin("5015");
static std::string pkcs15() {
return mf()+"5015";
}
/// Path to SigG (Signaturgesetz)
std::string sigG() {
return crypto::hexToBin("1fff");
static std::string sigG() {
return mf()+"1fff";
}
/// ID of transport PIN
unsigned char transportPin() {
static unsigned char transportPin() {
return 0x71;
}
/// ID of PKCS#15 user PIN
unsigned char pkcs15Pin() {
static unsigned char pkcs15Pin() {
return 0x01;
}
/// ID of SigG (Signaturgesetz) secure PIN
unsigned char sigGPin() {
static unsigned char sigGPin() {
return 0x01;
}
/// ID of PUK to unlock PKCS#15 user PIN
unsigned char puk() {
static unsigned char puk() {
return 0x02;
}

View File

@@ -173,9 +173,9 @@ namespace suisseid {
/** @note by now, only @c MISSING and @c VALID is supported */
enum CertStatus {
MISSING, ///< certificate is missing, needs initiatlization
EXPIRES_SOON, ///< certificate will soon expire, needs renewal
EXPIRED, ///< certificate is expired, needs new purchase
REVOKED, ///< certificate has been revoked and is invalid
// EXPIRES_SOON, ///< certificate will soon expire, needs renewal
// EXPIRED, ///< certificate is expired, needs new purchase
// REVOKED, ///< certificate has been revoked and is invalid
VALID ///< certificate is valid
};
@@ -311,11 +311,15 @@ namespace suisseid {
}
virtual CertStatus certStatus() {
cryptoki::ObjectList certs
(session().find(cryptoki::Attribute(CKA_CLASS)
.from<CK_OBJECT_CLASS>(CKO_CERTIFICATE)));
if (certs.size()==0) return MISSING;
return VALID;
try {
Certificate auth(authenticationCertificate());
Certificate sig(digitalSignatureCertificate());
return VALID;
} catch (const no_auth& x) {
return MISSING;
} catch (const no_digsig& x) {
return MISSING;
}
}
virtual Certificate authenticationCertificate() try {