Пытаюсь прикрутить SSL.. Сгенерировал сертификаты для клиента и для сервера.
Клиент:
tcpSocket->setLocalCertificate("cert/client.crt");
tcpSocket->setPrivateKey("cert/client.key");
tcpSocket->connectToHostEncrypted("localhost",7879);
if (!tcpSocket->waitForEncrypted()) {
qDebug() << tcpSocket->errorString();
return;
}
Сервер:
tcpSocket->setPrivateKey("cert/servers.key");
tcpSocket->setLocalCertificate("cert/server.crt");
........................
void slotStateChanged(QAbstractSocket::SocketState state)
{
switch((int)state) {
case 3: //QAbstractSocket::ConnectedState
tcpSocket->startServerEncryption();
break;
........................
default:
qDebug() << "Unknown state! ftom" << userID << tcpSocket->peerAddress().toString() << state;
break;
}
}
И сигналы\слоты:
connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError)),Qt::DirectConnection);
connect(tcpSocket, SIGNAL(encrypted()), this, SLOT(socketEncrypted()));
connect(tcpSocket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(sslErrors(QList<QSslError>)));
Что только не перепробовал.. В лучшем случае выдаётся ошибка QAbstractSocket::SocketError 13 (рукопожатия).
До sslErrors(QList<QSslError>) даже не доходит..
openssl установлен, проблемы в нём быть не должно. Qt собран с ssl.
Куда копать?