Procházet zdrojové kódy

[SSL] Properly restore user accepted certificats

Hannah von Reth před 6 roky
rodič
revize
ba87fc9e78
2 změnil soubory, kde provedl 4 přidání a 1 odebrání
  1. 3 1
      src/gui/accountmanager.cpp
  2. 1 0
      src/libsync/account.cpp

+ 3 - 1
src/gui/accountmanager.cpp

@@ -332,7 +332,9 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
 
     // now the server cert, it is in the general group
     settings.beginGroup(QLatin1String("General"));
-    acc->setApprovedCerts(QSslCertificate::fromData(settings.value(caCertsKeyC).toByteArray()));
+    const auto certs = QSslCertificate::fromData(settings.value(caCertsKeyC).toByteArray());
+    qCInfo(lcAccountManager) << "Restored: " << certs.count() << " unknown certs.";
+    acc->setApprovedCerts(certs);
     settings.endGroup();
 
     return acc;

+ 1 - 0
src/libsync/account.cpp

@@ -327,6 +327,7 @@ QSslConfiguration Account::getOrCreateSslConfig()
 void Account::setApprovedCerts(const QList<QSslCertificate> certs)
 {
     _approvedCerts = certs;
+    QSslSocket::addDefaultCaCertificates(certs);
 }
 
 void Account::addApprovedCerts(const QList<QSslCertificate> certs)