2012-04-15 5 views
10

Следуя инструкциям на page, я пытаюсь использовать openSSL для безопасного подключения клиента/сервера.OpenSSL: невозможно создать SSL_CTX * с использованием SSL_CTX_new()

Я не в состоянии создать SSL_CTX следующим образом:

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

     ..... 
    } 

Ссылка CTX всегда оказывается NULL. Может ли кто-нибудь рассказать, какой шаг я пропустил?

Спасибо.

Обновление

При проверке ошибки, сообщение было

Error: library has no ciphers 

ответ

15

Я использовал следующий вызов при запуске основной функции():

SSL_library_init(); 

найденного решения по адресу: here

+1

Также обратите внимание, что это может быть если вы используете неправильный аргумент для 'SSL_CTX_new()'. Я нашел код, который использовал 'SSLv2_client_method()'. Он скомпилирован и запущен, но получает значение NULL 'ctx'. – kmort

Смежные вопросы