Server Ssl avec Qt

Bonjour,

Il n’existe pas d’exemple en Qt5 de serveur Ssl, et encore moins officiel (alors qu’il y as bien un exemple de client). J’ai donc luté pour faire le miens, et voila:

QSslServer::QSslServer(const QSslCertificate &sslCertificate,const QSslKey &sslKey)
{
    this->sslCertificate=sslCertificate;
    this->sslKey=sslKey;
}

void QSslServer::incomingConnection(qintptr socketDescriptor)
{
   QSslSocket * socket = new QSslSocket;
   socket->setSocketDescriptor(socketDescriptor);
   socket->setPrivateKey(sslKey);
   socket->setLocalCertificate(sslCertificate);
   QList certificates;
   certificates << sslCertificate;    socket->setCaCertificates(certificates);
   socket->setPeerVerifyMode(QSslSocket::VerifyNone);
   socket->ignoreSslErrors();
   socket->startServerEncryption();
   connect(socket,static_cast &errors)>(&QSslSocket::sslErrors),this,&QSslServer::sslErrors);
   addPendingConnection(socket);
}

void QSslServer::sslErrors(const QList &errors)
{
    int index=0;
    while(index(QObject::sender());
    if(socket!=NULL)
        socket->disconnectFromHost();
}

J’espère que cela vous sera utile. Bye.

Publié par