Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 19. Nov 2018 0:33

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: openSSL verwenden
BeitragVerfasst: 25. Feb 2008 17:43 
Offline

Registriert: 14. Mai 2007 19:27
Beiträge: 70
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 ... enssl.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?

8) pcAlko


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 25. Feb 2008 19:54 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 14. Mär 2008 20:26 
Offline

Registriert: 14. Mai 2007 19:27
Beiträge: 70
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.

8) pcAlko


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 21. Aug 2010 16:08 
Offline

Registriert: 21. Aug 2010 15:57
Beiträge: 1
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


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de