src/network/ssl/qsslsocket_openssl.cpp
changeset 37 758a864f9613
parent 33 3e2da88830cd
equal deleted inserted replaced
36:ef0373b55136 37:758a864f9613
   748                 systemCerts.append(cert);
   748                 systemCerts.append(cert);
   749             }
   749             }
   750             ptrCertCloseStore(hSystemStore, 0);
   750             ptrCertCloseStore(hSystemStore, 0);
   751         }
   751         }
   752     }
   752     }
   753 #elif defined(Q_OS_UNIX)
   753 #elif defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN)
   754     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/var/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // AIX
   754     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/var/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // AIX
   755     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // Solaris
   755     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/usr/local/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // Solaris
   756     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/opt/openssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // HP-UX
   756     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/opt/openssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // HP-UX
   757     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/etc/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // (K)ubuntu, OpenSUSE, Mandriva, ...
   757     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/etc/ssl/certs/*.pem"), QSsl::Pem, QRegExp::Wildcard)); // (K)ubuntu, OpenSUSE, Mandriva, ...
   758     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/etc/pki/tls/certs/ca-bundle.crt"), QSsl::Pem)); // Fedora
   758     systemCerts.append(QSslCertificate::fromPath(QLatin1String("/etc/pki/tls/certs/ca-bundle.crt"), QSsl::Pem)); // Fedora
  1286 
  1286 
  1287     // Check characters following first . match
  1287     // Check characters following first . match
  1288     if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot))
  1288     if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot))
  1289         return false;
  1289         return false;
  1290 
  1290 
       
  1291     // Check if the hostname is an IP address, if so then wildcards are not allowed
       
  1292     QHostAddress addr(hostname);
       
  1293     if (!addr.isNull())
       
  1294         return false;
       
  1295 
  1291     // Ok, I guess this was a wildcard CN and the hostname matches.
  1296     // Ok, I guess this was a wildcard CN and the hostname matches.
  1292     return true;
  1297     return true;
  1293 }
  1298 }
  1294 
  1299 
  1295 QT_END_NAMESPACE
  1300 QT_END_NAMESPACE