void QwwSmtpClientPrivate::sendHelo() { SMTPCommand &cmd = commandqueue.head(); QString domain = localName; if (socket->isEncrypted() && localNameEncrypted.isEmpty()) domain = localNameEncrypted; QByteArray buf = QString("HELO "+domain+"\r\n").toUtf8(); qDebug() << "SMTP >>>" << buf; socket->write(buf); cmd.extra = 1; }
bool RemotePeer::isSecure() const { if (socket()) { if (isLocal()) return true; #ifdef HAVE_SSL QSslSocket *sslSocket = qobject_cast<QSslSocket *>(socket()); if (sslSocket && sslSocket->isEncrypted()) return true; #endif } return false; }
bool SignalProxy::IODevicePeer::isSecure() const { #ifdef HAVE_SSL QSslSocket *sslSocket = qobject_cast<QSslSocket *>(_device); if(sslSocket) return sslSocket->isEncrypted() || sslSocket->localAddress() == QHostAddress::LocalHost || sslSocket->localAddress() == QHostAddress::LocalHostIPv6; #endif QAbstractSocket *socket = qobject_cast<QAbstractSocket *>(_device); if(socket) return socket->localAddress() == QHostAddress::LocalHost || socket->localAddress() == QHostAddress::LocalHostIPv6; return false; }
// Receive notification that the SSL handshake has completed successfully void Server::handshakeComplete() { QSslSocket *socket = dynamic_cast<QSslSocket *>(sender()); assert(socket); connect(socket, SIGNAL(disconnected()), this, SLOT(connectionClosed())); connect(socket, SIGNAL(readyRead()), this, SLOT(receiveMessage())); std::cout << "Accepted connection from " << socket->peerAddress().toString().toStdString() << ":" << socket->peerPort() << " .Encrypted : " << socket->isEncrypted() << std::endl; sockets.push_back(socket); }
bool Client::isSecure() const { QSslSocket *socket = qobject_cast<QSslSocket*>(d->socket); return socket && socket->isEncrypted(); }
// Accept connection from server and initiate the SSL handshake void Server::acceptConnection() { if (sockets.empty() == false) std::cout << "Server is mad efor 1 connection also. Need to update to handle multiple connections" << std::endl; QSslSocket *socket = dynamic_cast<QSslSocket *>(server.nextPendingConnection()); assert(socket); // Report any SSL errors that occur connect(socket, SIGNAL(sslErrors(const QList<QSslError> &)), this, SLOT(sslErrors(const QList<QSslError> &))); connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(connectionFailure())); // QSslSocket emits the encrypted() signal after the encrypted connection is established #define _USE_ENCRYPTION #ifdef _USE_ENCRYPTION connect(socket, SIGNAL(encrypted()), this, SLOT(handshakeComplete())); socket->setPrivateKey(key); socket->setLocalCertificate(certificate); socket->setPeerVerifyMode(QSslSocket::VerifyNone); socket->startServerEncryption(); #else connect(socket, SIGNAL(disconnected()), this, SLOT(connectionClosed())); connect(socket, SIGNAL(readyRead()), this, SLOT(receiveMessage())); sockets.push_back(socket); std::cout << "Accepted connection from " << socket->peerAddress().toString().toStdString() << ":" << socket->peerPort() << " .Encrypted : " << socket->isEncrypted() << std::endl; #endif }