Załączam całe obydwa programy. Mam problem z zaszyfrowaniem połączenia między klientem a serwerem(tworzone w QtCreator 2.0). Klasa po stronie serwera:
include "polaczeniessl.h"
PolaczenieSSL::PolaczenieSSL(QWidget *parent)
{
}
PolaczenieSSL::~PolaczenieSSL()
{
}
void PolaczenieSSL::incomingConnection(int socketDescriptor)
{
serverSocket = new QSslSocket(this);
connect(serverSocket,SIGNAL(encrypted()), this, SLOT(gotowy()));
connect(serverSocket,SIGNAL(stateChanged(QAbstractSocket::SocketState)),SLOT(stany(QAbstractSocket::SocketState)));
connect(serverSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(bledy(QAbstractSocket::SocketError)));
connect(serverSocket,SIGNAL(sslErrors(QList)),this,SLOT(bledySSL(QList)));
connect(serverSocket,SIGNAL(modeChanged(QSslSocket::SslMode)),this,SLOT(mode(QSslSocket::SslMode)));
connect(serverSocket,SIGNAL(peerVerifyError(QSslError)),this,SLOT(bladPeer(QSslError)));
serverSocket->setProtocol(QSsl::AnyProtocol);
QFile *file = new QFile("server.key");
QSslKey key(file, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey, "server");
serverSocket->setPrivateKey(key);
serverSocket->setLocalCertificate("server.crt");
serverSocket->addCaCertificates("/etc/ssl/certs");
if (serverSocket->setSocketDescriptor(socketDescriptor))
{
serverSocket->startServerEncryption();
}
else
{
delete serverSocket;
}
}
void PolaczenieSSL::gotowy()
{
qDebug()<<"gotowy";
}
void PolaczenieSSL::stany(QAbstractSocket::SocketState state)
{
qDebug()<<"Stan: "<
}
void PolaczenieSSL::bledy(QAbstractSocket::SocketError err)
{
qDebug() << "Blad: " << err;
}
void PolaczenieSSL::bledySSL(QList l)
{
for(int i=0;i
{
qDebug()<<"BladSSL: "<
}
}
void PolaczenieSSL::mode(QSslSocket::SslMode s)
{
qDebug()<<"Mode: "<
}
void PolaczenieSSL::bladPeer(QSslError b)
{
qDebug()<<"PeerBlad: "<
}[/code]
wynik dla serwera:
[code]Stan: QAbstractSocket::ConnectedState Mode: 2 Blad: QAbstractSocket::SocketError( 13 ) Stan: QAbstractSocket::UnconnectedState
wynik dla klient:
Stan: QAbstractSocket::HostLookupState
Stan: QAbstractSocket::ConnectingState
Stan: QAbstractSocket::ConnectedState
Mode: 1
Blad: QAbstractSocket::RemoteHostClosedError
Stan: QAbstractSocket::ClosingState
Stan: QAbstractSocket::UnconnectedState