2012-04-15 4 views
10

Siguiendo las instrucciones en page, estoy tratando de usar openSSL para conectar cliente/servidor de manera segura.OpenSSL: no se puede crear SSL_CTX * usando SSL_CTX_new()

no soy capaz de crear el SSL_CTX de la siguiente manera:

/* 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()); 

     ..... 
    } 

La referencia CTX siempre resulta ser NULL. ¿Alguien puede decir qué paso me estoy perdiendo?

Gracias.

actualización

En la comprobación de errores, el mensaje fue

Error: library has no ciphers 

Respuesta

15

he utilizado la siguiente llamada al inicio de la función main():

SSL_library_init(); 

Solución encontrado en: here

+1

También tenga en cuenta que puede tener esto mismo error si usa el argumento incorrecto para 'SSL_CTX_new()'. Encontré un código que usa 'SSLv2_client_method()'. Se compiló y ejecutó, pero obtenía un valor NULL 'ctx'. – kmort

Cuestiones relacionadas