| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
pcAlko
Anmeldungsdatum: 14.05.2007 Beiträge: 67
|
Verfasst am: 25. Feb 2008 17:43 Titel: openSSL verwenden |
|
|
Hallo Leute!
Ich habe einen server + client geschrieben, den ich jetzt mit openSSL Unterstützung erweitern möchte.
Beim Googeln bin ich auf den IBM-Link http://www.ibm.com/developerworks/linux/library/l-openssl.html gestossen.
Mein Problem fangt aber schon an wenn ich nur die Initialisierung übersetzen möchte.
Die includierten header bio.h ssl.h und err.h machen keine Probleme
er compiliert auch ohne Probleme
| Code: | SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms(); |
Aber beim Linken findet er keine Referenzen.
ich habe beim make -lBIO versucht
laut Tutorial steht:
> OpenSSL uses an abstraction library called BIO
aber diese Library findet er mir nirgends
unter apt-cache search bio.so
findet er nur shared objects für Perl
mein Englisch ist aber auch nicht das Beste
vielleicht habe ich im Tutorial etwas überlesen!
kann mir irgendwer weiterhelfen?
pcAlko |
|
| |
|
|
Janka

Anmeldungsdatum: 11.02.2006 Beiträge: 3268
|
Verfasst am: 25. Feb 2008 19:54 Titel: |
|
|
Die Library die du einbinden musst, ist "libssl", wie man an
| Code: |
$ objdump -T /usr/lib/libssl.so|grep BIO
00000000 DF *UND* 00000012 BIO_s_socket
00000000 DF *UND* 000000ca BIO_free
00000000 DF *UND* 0000003b BIO_free_all
00000000 DF *UND* 000000fd BIO_ctrl
00000000 DF *UND* 00000017 BIO_copy_next_retry
00000000 DF *UND* 00000008 BIO_get_retry_reason
00000000 DF *UND* 00000088 BIO_new
00033350 g DF .text 00000012 Base BIO_f_ssl
00000000 DF *UND* 00000126 BIO_puts
00000000 DF *UND* 00000012 BIO_f_buffer
00000000 DF *UND* 0000005b BIO_push
00000000 DF *UND* 0000003c BIO_snprintf
00033c4c g DF .text 00000071 Base BIO_ssl_copy_session_id
00033d42 g DF .text 0000005f Base BIO_new_ssl_connect
00033cbd g DF .text 00000085 Base BIO_new_ssl
00000000 DF *UND* 00000150 BIO_write
00000000 DF *UND* 00000034 BIO_printf
00000000 DF *UND* 000000fa BIO_callback_ctrl
00000000 DF *UND* 0000002f BIO_find_type
00000000 DF *UND* 00000012 BIO_s_file
00000000 DF *UND* 00000132 BIO_read
00033c10 g DF .text 0000003c Base BIO_ssl_shutdown
00000000 DF *UND* 0000006e BIO_pop
00033da1 g DF .text 00000073 Base BIO_new_buffer_ssl_connect
00000000 DF *UND* 00000040 BIO_int_ctrl
00000000 DF *UND* 00000012 BIO_s_connect
$
|
leicht erkennen kann. Also statt -lBIO -lssl schreiben und gut ist.
Janka _________________ Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie. |
|
| |
|
|
pcAlko
Anmeldungsdatum: 14.05.2007 Beiträge: 67
|
Verfasst am: 14. März 2008 20:26 Titel: |
|
|
Hallo Janka!
Danke hat super funktioniert.
Bin erst jetzt dazu gekommen die verschlüsselung in angriff zu nehmen.
Nur hab ich jetzt ein anderes Problem
vielleicht kennst Du dich oder jemand der das liest damit aus.
Das Compilen und Linken hat super funktioniert
nur nach dem ausführen bekom' ich einen Segmentation Fehler.
| Code: |
SSL_CTX * ctx;
ERR_load_BIO_strings();
SSL_load_error_strings();
OpenSSL_add_all_algorithms();
/* Set up the SSL context */
ctx = SSL_CTX_new(SSLv23_client_method());
/* Load the trust store */
if(! SSL_CTX_load_verify_locations(ctx, "TrustStore.pem", NULL))
{
fprintf(stderr, "Error loading trust store\n");
ERR_print_errors_fp(stderr);
SSL_CTX_free(ctx);
return 0;
} |
Beim Debuggem bleibt er mir beim letzten Befehl SSL_CTX_load_verify_locations einfach stehen.
Wenn ich den Eclipse Debugger beende bekomme ich folgende Ausgabe
Stopped due to shared library event
No source file named Client.cpp.
No source file named Client.cpp.
No source file named main.cpp.
No source file named main.cpp.
No source file named Thread.cpp.
kill
diese Files existieren aber im Projekt nicht
hataber warscheinlich auch nichts zu bedeuten.
hast Du da irgend eine Idee
oder vielleicht sonst irgend jemand????????
oder wie kann ich da den Fehler am besten finden.
pcAlko |
|
| |
|
|
KayFr72
Anmeldungsdatum: 21.08.2010 Beiträge: 1
|
Verfasst am: 21. Aug 2010 16:08 Titel: |
|
|
Hallo pcAlco!
Du hast den SSL_library_init() vor den Befehlen vergessen:
so muss es heißen!
| Code: | SSL_library_init()
SSL_CTX_new(SSLv23_client_method()) |
Gruß KayFr72 |
|
| |
|
|
|
|