From ef5dd39df8453b50717e806204d74227e7225388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Fri, 17 Jun 2011 09:25:10 +0000 Subject: [PATCH] closes #82; closes #76 --- swisssurfer/src/smartcardauth.hxx | 15 ++++++++++----- swisssurfer/src/swisssurfer_de.ts | 4 ++-- swisssurfer/src/swisssurfer_en.ts | 4 ++-- swisssurfer/src/swisssurfer_fr.ts | 4 ++-- swisssurfer/src/swisssurfer_it.ts | 4 ++-- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/swisssurfer/src/smartcardauth.hxx b/swisssurfer/src/smartcardauth.hxx index e950b80..9a4e2bd 100644 --- a/swisssurfer/src/smartcardauth.hxx +++ b/swisssurfer/src/smartcardauth.hxx @@ -2,6 +2,7 @@ #define SMARTCARDAUTH_H #include +#include #include #include #include @@ -67,10 +68,14 @@ class CryptokiEngine: public QObject, public openssl::Engine { "IbUmHIXt6oHLJmoGFX46bCcfil5eE5FXfiaw7Q9iPw==\n" "-----END RSA PRIVATE KEY-----\n"); QSslKey privkey(pem, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); - RSA* rsa(0); - rsa = (RSA*)privkey.handle(); - if (rsa) RSA_free(rsa); - rsa = RSA_new_method(_e); + RSA* rsa((RSA*)privkey.handle()); + if (!ENGINE_init(_e)) return; + rsa->engine=_e; + rsa->meth=ENGINE_get_RSA(_e); + if (!CRYPTO_new_ex_data(CRYPTO_EX_INDEX_RSA, rsa, &rsa->ex_data)) { + ENGINE_finish(_e); + return; + } set(rsa->n, privateKey, CKA_MODULUS, "CKA_MODULUS"); set(rsa->e, privateKey, CKA_PUBLIC_EXPONENT, "CKA_PUBLIC_EXPONENT"); set(rsa->d, privateKey, CKA_PRIVATE_EXPONENT, "CKA_PRIVATE_EXPONENT"); @@ -81,7 +86,7 @@ class CryptokiEngine: public QObject, public openssl::Engine { set(rsa->iqmp, privateKey, CKA_COEFFICIENT, "CKA_COEFFICIENT"); rsa->flags |= RSA_FLAG_SIGN_VER; // don't emulate with encrypt/decrypt assert(!privkey.isNull()); - assert(rsa==(RSA*)privkey.handle()); + OPENSSL_LOG("Setup RSA finished"); sslConfig.setPrivateKey(privkey); QSslConfiguration::setDefaultConfiguration(sslConfig); } catch (const std::exception& e) { diff --git a/swisssurfer/src/swisssurfer_de.ts b/swisssurfer/src/swisssurfer_de.ts index 917cb42..62cdaad 100644 --- a/swisssurfer/src/swisssurfer_de.ts +++ b/swisssurfer/src/swisssurfer_de.ts @@ -679,12 +679,12 @@ p, li { white-space: pre-wrap; } QMessageBox - + Wrong PIN - + Authentication failed, please try again. diff --git a/swisssurfer/src/swisssurfer_en.ts b/swisssurfer/src/swisssurfer_en.ts index 70608f3..ba9311c 100644 --- a/swisssurfer/src/swisssurfer_en.ts +++ b/swisssurfer/src/swisssurfer_en.ts @@ -664,12 +664,12 @@ p, li { white-space: pre-wrap; } QMessageBox - + Wrong PIN - + Authentication failed, please try again. diff --git a/swisssurfer/src/swisssurfer_fr.ts b/swisssurfer/src/swisssurfer_fr.ts index 917cb42..62cdaad 100644 --- a/swisssurfer/src/swisssurfer_fr.ts +++ b/swisssurfer/src/swisssurfer_fr.ts @@ -679,12 +679,12 @@ p, li { white-space: pre-wrap; } QMessageBox - + Wrong PIN - + Authentication failed, please try again. diff --git a/swisssurfer/src/swisssurfer_it.ts b/swisssurfer/src/swisssurfer_it.ts index 917cb42..62cdaad 100644 --- a/swisssurfer/src/swisssurfer_it.ts +++ b/swisssurfer/src/swisssurfer_it.ts @@ -679,12 +679,12 @@ p, li { white-space: pre-wrap; } QMessageBox - + Wrong PIN - + Authentication failed, please try again.