a problem about openssl lib:SSL_connect()



Hello, everyone

I met a problem while using the function SSL_connect(), it always returns -1, and output some chaotic characters to the console(It seems that memory overflow). And I did not capture the ssl handshake packets. Does anyone knows the reason, and how to use it?

Thanks for any advise.

My codes as follow:
............
int sd;
int ret;
SSL *ssl;
SSL_CTX *ctx;

// initial ssl library
SSL_library_init();
SSL_load_error_strings();

// create ssl context
ctx = SSL_CTX_new(SSLv23_client_method());

if (ctx == NULL)
{
return -1;
}

SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, NULL);

// create ssl
ssl = SSL_new(ctx);
if (ssl == NULL)
{
return -1;
}

// the function below returns a normal tcp connection socket description
sd = create_https_socket(dip, dport);
if (sd <= 0)
{
return -1;
}

ret = SSL_set_fd(ssl, sd);
if (ret == 0)
{
close(sd);
return -1;
}

RAND_poll();
while (RAND_status() == 0)
{
unsigned short rand_ret = rand() % 65536;
RAND_seed(&rand_ret, sizeof(rand_ret));
}

// error occur
ret = SSL_connect(ssl);
printf("ret=%d\n", ret); // the value of ret is -1
if( ret != 1 )
{
close(sd);
return -1;
}


...........

Best Regards
Berg
Quantcast