2012-04-15 16 views
10

Postępując zgodnie z instrukcjami na page, próbuję użyć openSSL do bezpiecznego połączenia klienta/serwera.OpenSSL: Nie można utworzyć SSL_CTX * przy użyciu SSL_CTX_new()

nie jestem w stanie stworzyć SSL_CTX następująco:

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

     ..... 
    } 

Odniesienie ctx zawsze okazuje się być NULL. Czy ktoś może powiedzieć, jakiego kroku mi brakuje?

Dzięki.

Aktualizacja

Na sprawdzenie błędu, komunikat był

Error: library has no ciphers 

Odpowiedz

15

użyłem następujące wywołanie na początku main() Funkcja:

SSL_library_init(); 

Rozwiązanie znaleźć na stronie: here

+1

Pamiętaj też, że możesz mieć to ten sam błąd, jeśli użyjesz niewłaściwego argumentu do 'SSL_CTX_new()'. Znalazłem kod, który używał 'SSLv2_client_method()'. Został skompilowany i uruchomiony, ale uzyskał NULL wartość 'ctx'. – kmort

Powiązane problemy