Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.9.1
-
None
-
macOS 10.12.5
xcode 8.3
-
07c0e0fdcf6ccea2a60b2acc7059f56a834ad040
Description
It seems that any date where the year is 2 digit is considered to be 20XX.
The problem is that if you read some CA certificates on macOS. Some have effective dates before 2000.
Try the following program
#include <QSslCertificate> #include <QSslConfiguration> #include <QDateTime> #include <QDebug> int main() { for (const QSslCertificate &cert : QSslConfiguration::defaultConfiguration().caCertificates()) { if (cert.effectiveDate() > QDateTime::currentDateTime()) qDebug() << "HOHO" << cert.subjectInfo(QSslCertificate::CommonName) << cert.effectiveDate() << cert.expiryDate(); } }
It gives me
HOHO ("Entrust.net Certification Authority (2048)") QDateTime(2099-12-24 17:50:51.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-12-24 18:20:51.000 UTC Qt::TimeSpec(UTC)) HOHO ("VeriSign Class 1 Public Primary Certification Authority - G3") QDateTime(2099-10-01 00:00:00.000 UTC Qt::TimeSpec(UTC)) QDateTime(2036-07-16 23:59:59.000 UTC Qt::TimeSpec(UTC)) HOHO ("VeriSign Class 2 Public Primary Certification Authority - G3") QDateTime(2099-10-01 00:00:00.000 UTC Qt::TimeSpec(UTC)) QDateTime(2036-07-16 23:59:59.000 UTC Qt::TimeSpec(UTC)) HOHO ("VeriSign Class 3 Public Primary Certification Authority - G3") QDateTime(2099-10-01 00:00:00.000 UTC Qt::TimeSpec(UTC)) QDateTime(2036-07-16 23:59:59.000 UTC Qt::TimeSpec(UTC)) HOHO ("Deutsche Telekom Root CA 2") QDateTime(2099-07-09 12:11:00.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-07-09 23:59:00.000 UTC Qt::TimeSpec(UTC)) HOHO ("GlobalSign Root CA") QDateTime(2098-09-01 12:00:00.000 UTC Qt::TimeSpec(UTC)) QDateTime(2028-01-28 12:00:00.000 UTC Qt::TimeSpec(UTC)) HOHO ("UTN-USERFirst-Client Authentication and Email") QDateTime(2099-07-09 17:28:50.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-07-09 17:36:58.000 UTC Qt::TimeSpec(UTC)) HOHO ("UTN-USERFirst-Hardware") QDateTime(2099-07-09 18:10:42.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-07-09 18:19:22.000 UTC Qt::TimeSpec(UTC)) HOHO ("UTN-USERFirst-Network Applications") QDateTime(2099-07-09 18:48:39.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-07-09 18:57:49.000 UTC Qt::TimeSpec(UTC)) HOHO ("UTN-USERFirst-Object") QDateTime(2099-07-09 18:31:20.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-07-09 18:40:36.000 UTC Qt::TimeSpec(UTC)) HOHO ("UTN - DATACorp SGC") QDateTime(2099-06-24 18:57:21.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-06-24 19:06:30.000 UTC Qt::TimeSpec(UTC)) HOHO ("Class 2 Primary CA") QDateTime(2099-07-07 17:05:00.000 UTC Qt::TimeSpec(UTC)) QDateTime(2019-07-06 23:59:59.000 UTC Qt::TimeSpec(UTC)) HOHO ("Entrust.net Certification Authority (2048)") QDateTime(2099-12-24 17:50:51.000 UTC Qt::TimeSpec(UTC)) QDateTime(2029-07-24 14:15:12.000 UTC Qt::TimeSpec(UTC))