some minor changes; refs #8
This commit is contained in:
38
README.txt
38
README.txt
@@ -1,11 +1,6 @@
|
|||||||
Ein globales Makefile existiert bislang noch nicht; die einzelnen
|
Ein globales Makefile existiert bislang noch nicht; die einzelnen
|
||||||
Komponenten werden müssen separat gebaut werden.
|
Komponenten werden müssen separat gebaut werden.
|
||||||
|
|
||||||
actlibrary
|
|
||||||
Beinhaltet Unterverzeichnisse für die "actlibrary" und die dazugehörigen
|
|
||||||
Include-Dateien der einzelnen Architekturen
|
|
||||||
Enthält APDUs.
|
|
||||||
|
|
||||||
openssl-act-engine
|
openssl-act-engine
|
||||||
OpenSSL-Engine auf Basis der actlibrary zur Benutzung von
|
OpenSSL-Engine auf Basis der actlibrary zur Benutzung von
|
||||||
Smartcard-basierten Schlüsseln von OpenSSL aus
|
Smartcard-basierten Schlüsseln von OpenSSL aus
|
||||||
@@ -14,22 +9,12 @@ openssl-act-engine
|
|||||||
- benötigt Pfad zur actlibrary der Zielarchitektur (ACTLIB_ROOT)
|
- benötigt Pfad zur actlibrary der Zielarchitektur (ACTLIB_ROOT)
|
||||||
- erstellt libengine_act.so
|
- erstellt libengine_act.so
|
||||||
|
|
||||||
swisssign-openssl-pkcs11-engine
|
|
||||||
OpenSSL-PKCS11-Engine. Referenzcode für das Grundgerüst der
|
|
||||||
OpenSSL-actlibrary-Engine, nicht im eigentlichen SwissSurfer benötigt.
|
|
||||||
|
|
||||||
Qt
|
|
||||||
Beinhaltet das Qt-Quellcode-Archiv.
|
|
||||||
|
|
||||||
Qt/patch
|
Qt/patch
|
||||||
Beinhaltet die Patches zum Qt-Quellcode. Anwenden mit
|
Beinhaltet die Patches zum Qt-Quellcode. Anwenden mit
|
||||||
cd /pfad/zu/ausgepackten/qt-Quellen ; patch -p1 </pfad/zu/patch
|
cd /pfad/zu/ausgepackten/qt-Quellen ; patch -p1 </pfad/zu/patch
|
||||||
und nachfolgenden Compilieren
|
und nachfolgenden Compilieren
|
||||||
|
-> benötigt Ubuntu-Pakete:
|
||||||
swisssurfer
|
libxext-dev, libx11-dev
|
||||||
Der SwissSurfer selbst.
|
|
||||||
- Erstellen mit "./bootstrap.sh"
|
|
||||||
- Benutzt automake/autoconf/GCC Toolchain
|
|
||||||
|
|
||||||
Test_Qt_Frontend
|
Test_Qt_Frontend
|
||||||
Minimales Test-Frontend, was die engine_act.dll (die
|
Minimales Test-Frontend, was die engine_act.dll (die
|
||||||
@@ -40,6 +25,25 @@ Test_Qt_Frontend
|
|||||||
- Wird mit dem "Qt Creator" auf Basis der gepatchten Qt-Library gebaut
|
- Wird mit dem "Qt Creator" auf Basis der gepatchten Qt-Library gebaut
|
||||||
- Windows-spezifische Implementation, benötigt engine_act.dll in
|
- Windows-spezifische Implementation, benötigt engine_act.dll in
|
||||||
C:\Windows\System32 (Pfad in smartcardauth.cpp eincodiert)
|
C:\Windows\System32 (Pfad in smartcardauth.cpp eincodiert)
|
||||||
|
QMAKESPEC=../qt/qt-everywhere-opensource-src-4.6.3/mkspecs/linux-g++-64 ../qt/qt-everywhere-opensource-src-4.6.3/bin/qmake QtSslTest.pro
|
||||||
|
|
||||||
|
|
||||||
|
actlibrary
|
||||||
|
Beinhaltet Unterverzeichnisse für die "actlibrary" und die dazugehörigen
|
||||||
|
Include-Dateien der einzelnen Architekturen
|
||||||
|
Enthält APDUs.
|
||||||
|
|
||||||
|
swisssign-openssl-pkcs11-engine
|
||||||
|
OpenSSL-PKCS11-Engine. Referenzcode für das Grundgerüst der
|
||||||
|
OpenSSL-actlibrary-Engine, nicht im eigentlichen SwissSurfer benötigt.
|
||||||
|
|
||||||
|
Qt
|
||||||
|
Beinhaltet das Qt-Quellcode-Archiv.
|
||||||
|
|
||||||
|
swisssurfer
|
||||||
|
Der SwissSurfer selbst.
|
||||||
|
- Erstellen mit "./bootstrap.sh"
|
||||||
|
- Benutzt automake/autoconf/GCC Toolchain
|
||||||
|
|
||||||
Sample_executables
|
Sample_executables
|
||||||
Beinhaltet z.Zt. vorcompiliertes Beispiel der engine_act.dll
|
Beinhaltet z.Zt. vorcompiliertes Beispiel der engine_act.dll
|
||||||
|
@@ -4,7 +4,9 @@
|
|||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET =
|
TARGET =
|
||||||
DEPENDPATH += .
|
DEPENDPATH += .
|
||||||
INCLUDEPATH += ../openssl-act-engine .
|
INCLUDEPATH += ../openssl-act-engine ../openssl-act-engine/src . ../qt/qt-everywhere-opensource-src-4.6.3/include ../qt/qt-everywhere-opensource-src-4.6.3/include/Qt
|
||||||
|
|
||||||
|
CONFIG += debug
|
||||||
|
|
||||||
# Input
|
# Input
|
||||||
SOURCES += qtssltest.cpp \
|
SOURCES += qtssltest.cpp \
|
||||||
|
@@ -145,7 +145,7 @@ bool SmartCardAuth::hookInitSslContext(SSL_CTX *ctx)
|
|||||||
#ifdef USE_CERTIFICATE_FILE
|
#ifdef USE_CERTIFICATE_FILE
|
||||||
// Load a specific intermediate certificate from a file
|
// Load a specific intermediate certificate from a file
|
||||||
//! @todo PEM-File
|
//! @todo PEM-File
|
||||||
BIO* cert_file= q_BIO_new_file("D:\\QtSmartCardAuth_TMI\\QtSslTest\\swsign_interm.pem", "r");
|
BIO* cert_file= q_BIO_new_file("swsign_interm.pem", "r");
|
||||||
X509* interm=q_PEM_read_bio_X509(cert_file,NULL,NULL, NULL);
|
X509* interm=q_PEM_read_bio_X509(cert_file,NULL,NULL, NULL);
|
||||||
q_BIO_free(cert_file);
|
q_BIO_free(cert_file);
|
||||||
|
|
||||||
|
@@ -5,6 +5,16 @@
|
|||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
|
#define CHECK(X) \
|
||||||
|
if (!(res=X)) { \
|
||||||
|
printf("ERROR: %s", #X); \
|
||||||
|
for (unsigned int err(0); err=ERR_get_error();) { \
|
||||||
|
fprintf(stderr,"%s\n", ERR_error_string(err, NULL)); \
|
||||||
|
} \
|
||||||
|
return -1; \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
ENGINE* e = NULL;
|
ENGINE* e = NULL;
|
||||||
@@ -12,22 +22,27 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
ENGINE_load_dynamic();
|
ENGINE_load_dynamic();
|
||||||
e = ENGINE_by_id("dynamic");
|
e = ENGINE_by_id("dynamic");
|
||||||
|
|
||||||
|
if (!e) {
|
||||||
|
printf("ERROR: No Engine");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
int res;
|
int res(-1);
|
||||||
|
|
||||||
// Parameters to set for the dynamic loader
|
// Parameters to set for the dynamic loader
|
||||||
res = ENGINE_ctrl_cmd_string(e, "SO_PATH", "/home/carsten/engine_securetoken/libengine_securetoken.so", 0);
|
CHECK(ENGINE_ctrl_cmd_string(e, "SO_PATH", "./libengine_act.so", 0));
|
||||||
res = ENGINE_ctrl_cmd_string(e, "ID", "securetoken", 0);
|
CHECK(ENGINE_ctrl_cmd_string(e, "ID", "securetoken", 0));
|
||||||
res = ENGINE_ctrl_cmd_string(e, "LIST_ADD", "1", 0);
|
CHECK(ENGINE_ctrl_cmd_string(e, "LIST_ADD", "1", 0));
|
||||||
|
|
||||||
// Now actually load the SecureToken engine.
|
// Now actually load the SecureToken engine.
|
||||||
res = ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0);
|
CHECK(ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0));
|
||||||
|
|
||||||
// Following control commands go to the SecureToken engine rather than the dynamic loader
|
// Following control commands go to the SecureToken engine rather than the dynamic loader
|
||||||
|
|
||||||
res = ENGINE_init(e);
|
CHECK(ENGINE_init(e));
|
||||||
|
|
||||||
res = ENGINE_ctrl_cmd(e, "ENUM_CERTS", 0, &certs_found, NULL, 0);
|
CHECK(ENGINE_ctrl_cmd(e, "ENUM_CERTS", 0, &certs_found, NULL, 0));
|
||||||
|
|
||||||
printf("Found %d certificates.\n", certs_found->num_certs);
|
printf("Found %d certificates.\n", certs_found->num_certs);
|
||||||
|
|
||||||
@@ -76,7 +91,7 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
res = ENGINE_finish(e);
|
CHECK(ENGINE_finish(e));
|
||||||
|
|
||||||
ENGINE_cleanup();
|
ENGINE_cleanup();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user