Csockt не работает с openssl ssl_connect fails

Я хочу использовать CSocket с OpenSsl. сбой в SSL_connect. с ошибкой SSL_ERROR_WANT_READ.

Я подключаю SSL-сокет Linux к MFC Socket. только SSL_connect не работает.

пример кода добавлен ниже:

if(this->Create() == FALSE)
{
    return false;
}

if(this->Connect(hostip.c_str(),port) == FALSE)
{
    return false;
}
pSslCtx = SSL_CTX_new(SSLv23_method());

if (SSL_CTX_load_verify_locations(pSslCtx,strSslFile, NULL) != 1)
{
    return false;
}
if (SSL_CTX_set_default_verify_paths(pSslCtx) != 1)
{
    return false;
}
pSSLConn          = SSL_new(pSslCtx);
if(!pSSLConn)
    return false;

SSL_set_fd(pSSLConn, this->m_hSocket);

pBIOConn = BIO_new_socket(this->m_hSocket, BIO_NOCLOSE);

SSL_set_bio(pSSLConn, pBIOConn, pBIOConn);

SSL_set_connect_state(pSSLConn);
if (SSL_connect(pSSLConn) <= 0)
{
    return false;
}
0
0
73
1

Ответы 1

правильно это:

SOCKET q = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
BIO *u7 = BIO_new_socket(q, BIO_NOCLOSE);
connect(q, (sockaddr*)&server, sizeof(server));
SSL_set_bio(cSSL, u7, u7);
SSL_connect(cSSL);

https://github.com/alexeyneu/BlockZero/blob/b8eec009208cbef5d644a1026678cb1f09e1a19b/trew/trew/trew.cpp#L81
и я не вижу ни реального метода SSL, ни шифра, ни сертификатов.

Я не добавил код шифра и / или сертификата ... выше ... Я использую класс CSocket для MFC. не нормальное розеточное соединение.

SayedMomeen 27.10.2018 15:43

Другие вопросы по теме