2012-04-15 12 views
10

Seguendo le istruzioni su page, sto cercando di utilizzare openSSL per connettere client/server in modo sicuro.OpenSSL: impossibile creare SSL_CTX * utilizzando SSL_CTX_new()

io non sono in grado di creare la SSL_CTX come segue:

/* OpenSSL headers */ 

#include "openssl/bio.h" 
#include "openssl/ssl.h" 
#include "openssl/err.h" 

int main() 
{ 

     /* Initializing OpenSSL */ 

     SSL_load_error_strings(); 
     ERR_load_BIO_strings(); 
     OpenSSL_add_all_algorithms(); 

     SSL_CTX * ctx = SSL_CTX_new(SSLv23_client_method()); 

     ..... 
    } 

Il riferimento CTX risulta sempre essere NULL. Qualcuno può dirmi quale passo mi manca?

Grazie.

Aggiornamento

Sul controllo degli errori, il messaggio era

Error: library has no ciphers 

risposta

15

ho usato la seguente chiamata all'inizio di main function():

SSL_library_init(); 

soluzione trovata a: here

+1

Nota anche che puoi avere questo stesso errore se si utilizza l'argomento errato per 'SSL_CTX_new()'. Ho trovato un codice che utilizza 'SSLv2_client_method()'. Ha compilato ed eseguito, ma stava ottenendo un valore NULL 'ctx'. – kmort

Problemi correlati