Hello, I am developing an client application using OpenSSL C API. I have an error in the this code:
/* connection struct consists of SSL_CTX, SSL and BIO pointers */ ... connection->ctx = SSL_CTX_new(SSLv23_client_method()); if (connection->ctx == NULL) { DEBUG_MESSAGE("SSL_CTX_new failed\n"); DEBUG(ERR_print_errors_fp(stdout)); return NULL; } if (!SSL_CTX_load_verify_locations(connection->ctx, NULL, "../share/xclient/certificates/")) { DEBUG_MESSAGE("SSL_CTX_load_verify_locations failed\n"); DEBUG(ERR_print_errors_fp(stdout)); return NULL; } connection->bio = BIO_new_ssl_connect(connection->ctx); if (connection->bio == NULL) { DEBUG_MESSAGE("BIO_new_ssl_connect failed\n"); DEBUG(ERR_print_errors_fp(stdout)); return NULL; } BIO_get_ssl(connection->bio, &connection->ssl); if (connection->ssl == NULL); { DEBUG_MESSAGE("BIO_get_ssl failed\n"); DEBUG(ERR_print_errors_fp(stdout)); return NULL; } SSL_set_mode(connection->ssl, SSL_MODE_AUTO_RETRY); BIO_set_conn_hostname(connection->bio, xapi_get_dsnp_server_name(xapi_get_http_server_name(uri))); if (BIO_do_connect(connection->bio) < 1) { DEBUG_MESSAGE("BIO_do_connect failed\n"); DEBUG(ERR_print_errors_fp(stdout)); return NULL; } if (SSL_get_verify_result(connection->ssl) != X509_V_OK) { DEBUG_MESSAGE("SSL_get_verify_result failed\n"); DEBUG(ERR_print_errors_fp(stdout)); return NULL; } ... After BIO_get_ssl function call SSL pointer is NULL. If I comment out the return from the function after this error, BIO_do_connect fails with message: 3078686456:error:0200206F:system library:connect:Connection refused:bss_conn.c:269:host=localhost:33500 3078686456:error:20073067:BIO routines:CONN_STATE:connect error:bss_conn.c:273: This is my makefile: CC = gcc TARGET = ../../bin/xtool CFLAGS = -Wall -std=ansi -D_REENTERANT -DXCOMMON_DEBUG -I../ -I/usr/include/glib-1.2 -I/usr/lib/glib/include LIBS = -lcurl -lglib -lcrypto -lssl SOURCES = main.c\ ../xapi/api.c all: $(CC) -o $(TARGET) $(CFLAGS) $(LIBS) $(SOURCES) What I am doing wrong? Sincerely, Kyrylo. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org