[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [libnm-qt/8021x-make-pki-cool] settings: Port phase2 certs to CertificateWrapper too
From:       Will Stephenson <wstephenson () kde ! org>
Date:       2013-05-16 13:56:42
Message-ID: 20130516135642.7239FA60C5 () git ! kde ! org
[Download RAW message or body]

Git commit ddcc49831646345bd994f9a57d0582e87edfc1fd by Will Stephenson.
Committed on 15/05/2013 at 17:10.
Pushed by wstephens into branch '8021x-make-pki-cool'.

Port phase2 certs to CertificateWrapper too

M  +62   -32   settings/802-1x.cpp
M  +8    -7    settings/802-1x.h
M  +2    -3    settings/802-1x_p.h

http://commits.kde.org/libnm-qt/ddcc49831646345bd994f9a57d0582e87edfc1fd

diff --git a/settings/802-1x.cpp b/settings/802-1x.cpp
index 925b112..08e5ada 100644
--- a/settings/802-1x.cpp
+++ b/settings/802-1x.cpp
@@ -150,8 +150,8 @@ NetworkManager::Settings::Security8021xSetting::Security8021xSetting(const \
Ptr &  setPhase1FastProvisioning(other->phase1FastProvisioning());
     setPhase2AuthMethod(other->phase2AuthMethod());
     setPhase2AuthEapMethod(other->phase2AuthEapMethod());
-    setPhase2CaCertificate(other->phase2CaCertificate());
-    setPhase2CaPath(other->phase2CaPath());
+    d->phase2CaCert = other.data()->d_ptr->phase2CaCert;
+    d->phase2ClientCert = other.data()->d_ptr->phase2ClientCert;
     setPhase2SubjectMatch(other->phase2SubjectMatch());
     setPhase2AltSubjectMatches(other->phase2AltSubjectMatches());
     setPassword(other->password());
@@ -383,32 +383,29 @@ NetworkManager::Settings::Security8021xSetting::AuthEapMethod \
NetworkManager::Se  return d->phase2AuthEapMethod;
 }
 
-void NetworkManager::Settings::Security8021xSetting::setPhase2CaCertificate(const \
                QByteArray& certificate)
-{
-    Q_D(Security8021xSetting);
-
-    d->phase2CaCert = certificate;
-}
-
-QByteArray NetworkManager::Settings::Security8021xSetting::phase2CaCertificate() \
const +NetworkManager::Settings::Security8021xSetting::CertKeyScheme \
NetworkManager::Settings::Security8021xSetting::phase2CaCertificateScheme() const  {
     Q_D(const Security8021xSetting);
-
-    return d->phase2CaCert;
+    return d->phase2CaCert.scheme;
 }
 
-void NetworkManager::Settings::Security8021xSetting::setPhase2CaPath(const QString& \
path) +void NetworkManager::Settings::Security8021xSetting::setPhase2CaCertificate(const \
QString &phase2CaCertPath, CertKeyScheme scheme)  {
     Q_D(Security8021xSetting);
 
-    d->phase2CaPath = path;
+    d->phase2CaCert.loadCert(phase2CaCertPath, scheme);
 }
 
-QString NetworkManager::Settings::Security8021xSetting::phase2CaPath() const
+QByteArray NetworkManager::Settings::Security8021xSetting::phase2CaCertificateBlob() \
const  {
     Q_D(const Security8021xSetting);
+    return d->phase2CaCert.blob();
+}
 
-    return d->phase2CaPath;
+QString NetworkManager::Settings::Security8021xSetting::phase2CaCertificatePath() \
const +{
+    Q_D(const Security8021xSetting);
+    return d->phase2CaCert.path();
 }
 
 void NetworkManager::Settings::Security8021xSetting::setPhase2SubjectMatch(const \
QString& substring) @@ -439,18 +436,29 @@ QStringList \
NetworkManager::Settings::Security8021xSetting::phase2AltSubjectMatc  return \
d->phase2AltSubjectMatches;  }
 
-void NetworkManager::Settings::Security8021xSetting::setPhase2ClientCertificate(const \
QByteArray& certificate) \
+NetworkManager::Settings::Security8021xSetting::CertKeyScheme \
NetworkManager::Settings::Security8021xSetting::phase2ClientCertificateScheme() const \
+{ +    Q_D(const Security8021xSetting);
+    return d->phase2ClientCert.scheme;
+}
+
+void NetworkManager::Settings::Security8021xSetting::setPhase2ClientCertificate(const \
QString &phase2ClientCertPath, CertKeyScheme scheme)  {
     Q_D(Security8021xSetting);
 
-    d->phase2ClientCert = certificate;
+    d->phase2ClientCert.loadCert(phase2ClientCertPath, scheme);
 }
 
-QByteArray NetworkManager::Settings::Security8021xSetting::phase2ClientCertificate() \
const +QByteArray NetworkManager::Settings::Security8021xSetting::phase2ClientCertificateBlob() \
const  {
     Q_D(const Security8021xSetting);
+    return d->phase2ClientCert.blob();
+}
 
-    return d->phase2ClientCert;
+QString NetworkManager::Settings::Security8021xSetting::phase2ClientCertificatePath() \
const +{
+    Q_D(const Security8021xSetting);
+    return d->phase2ClientCert.path();
 }
 
 void NetworkManager::Settings::Security8021xSetting::setPassword(const QString& \
password) @@ -840,11 +848,11 @@ void \
NetworkManager::Settings::Security8021xSetting::fromMap(const QVariantMap&  }
 
     if (setting.contains(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_CERT))) {
-        setPhase2CaCertificate(setting.value(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_CERT)).toByteArray());
 +        d->phase2CaCert.setCertBlob(setting.value(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_CERT)).toByteArray());
  }
 
     if (setting.contains(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_PATH))) {
-        setPhase2CaPath(setting.value(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_PATH)).toString());
 +        d->phase2CaCert.setCertPath(setting.value(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_PATH)).toString());
  }
 
     if (setting.contains(QLatin1String(NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH))) {
@@ -856,9 +864,11 @@ void \
NetworkManager::Settings::Security8021xSetting::fromMap(const QVariantMap&  }
 
     if (setting.contains(QLatin1String(NM_SETTING_802_1X_PHASE2_CLIENT_CERT))) {
-        setPhase2ClientCertificate(setting.value(QLatin1String(NM_SETTING_802_1X_PHASE2_CLIENT_CERT)).toByteArray());
 +        d->phase2ClientCert.setCertBlob(setting.value(QLatin1String(NM_SETTING_802_1X_PHASE2_CLIENT_CERT)).toByteArray());
  }
 
+    // WILL PHASE2_CLIENT_CERT_PATH needed?
+
     if (setting.contains(QLatin1String(NM_SETTING_802_1X_PASSWORD))) {
         setPassword(setting.value(QLatin1String(NM_SETTING_802_1X_PASSWORD)).toString());
  }
@@ -1073,12 +1083,12 @@ QVariantMap \
                NetworkManager::Settings::Security8021xSetting::toMap() const
         setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_AUTHEAP), \
authEapMethod);  }
 
-    if (!phase2CaCertificate().isEmpty()) {
-        setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_CERT), \
phase2CaCertificate()); +    if (phase2CaCertificateScheme() == CertKeySchemeBlob) {
+        setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_CERT), \
phase2CaCertificateBlob());  }
 
-    if (!phase2CaPath().isEmpty()) {
-        setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_PATH), \
phase2CaPath()); +    if (phase2CaCertificateScheme() == CertKeySchemePath) {
+        setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_CA_PATH), \
phase2CaCertificatePath());  }
 
     if (!phase2SubjectMatch().isEmpty()) {
@@ -1089,8 +1099,8 @@ QVariantMap \
                NetworkManager::Settings::Security8021xSetting::toMap() const
         setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES), \
phase2AltSubjectMatches());  }
 
-    if (!phase2ClientCertificate().isEmpty()) {
-        setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_CLIENT_CERT), \
phase2ClientCertificate()); +    if (d->phase2ClientCert.scheme == CertKeySchemeBlob) \
{ +        setting.insert(QLatin1String(NM_SETTING_802_1X_PHASE2_CLIENT_CERT), \
d->phase2ClientCert.blob());  }
 
     if (!password().isEmpty()) {
@@ -1186,11 +1196,31 @@ QDebug NetworkManager::Settings::operator <<(QDebug dbg, \
                const NetworkManager::S
     dbg.nospace() << NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING << ": " << \
                setting.phase1FastProvisioning() << '\n';
     dbg.nospace() << NM_SETTING_802_1X_PHASE2_AUTH << ": " << \
                setting.phase2AuthMethod() << '\n';
     dbg.nospace() << NM_SETTING_802_1X_PHASE2_AUTHEAP << ": " << \
                setting.phase2AuthEapMethod() << '\n';
-    dbg.nospace() << NM_SETTING_802_1X_PHASE2_CA_CERT << ": " << \
                setting.phase2CaCertificate() << '\n';
-    dbg.nospace() << NM_SETTING_802_1X_PHASE2_CA_PATH << ": " << \
setting.phase2CaPath() << '\n'; +
+    switch (setting.phase2CaCertificateScheme()) {
+        case NetworkManager::Settings::Security8021xSetting::CertKeySchemeNone:
+            dbg.nospace() << NM_SETTING_802_1X_PHASE2_CA_CERT << ": " << "NONE";
+            break;
+        case NetworkManager::Settings::Security8021xSetting::CertKeySchemeBlob:
+            dbg.nospace() << NM_SETTING_802_1X_PHASE2_CA_CERT << ": " << \
setting.phase2CaCertificateBlob(); +            break;
+        case NetworkManager::Settings::Security8021xSetting::CertKeySchemePath:
+            dbg.nospace() << NM_SETTING_802_1X_PHASE2_CA_PATH << ": " << \
setting.phase2CaCertificatePath(); +            break;
+    };
+
     dbg.nospace() << NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH << ": " << \
                setting.phase2SubjectMatch() << '\n';
     dbg.nospace() << NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES << ": " << \
                setting.phase2AltSubjectMatches() << '\n';
-    dbg.nospace() << NM_SETTING_802_1X_PHASE2_CLIENT_CERT << ": " << \
setting.phase2ClientCertificate() << '\n'; +
+    switch (setting.phase2ClientCertificateScheme()) {
+        case NetworkManager::Settings::Security8021xSetting::CertKeySchemeNone:
+            dbg.nospace() << NM_SETTING_802_1X_PHASE2_CLIENT_CERT << ": " << "NONE";
+            break;
+        case NetworkManager::Settings::Security8021xSetting::CertKeySchemeBlob:
+            dbg.nospace() << NM_SETTING_802_1X_PHASE2_CLIENT_CERT << ": " << \
setting.phase2ClientCertificateBlob(); +            break;
+    };
+
     dbg.nospace() << NM_SETTING_802_1X_PASSWORD << ": " << setting.password() << \
                '\n';
     dbg.nospace() << NM_SETTING_802_1X_PASSWORD_FLAGS << ": " << \
                setting.passwordFlags() << '\n';
     dbg.nospace() << NM_SETTING_802_1X_PASSWORD_RAW << ": " << setting.passwordRaw() \
                << '\n';
diff --git a/settings/802-1x.h b/settings/802-1x.h
index fefc8ed..0539ade 100644
--- a/settings/802-1x.h
+++ b/settings/802-1x.h
@@ -97,11 +97,10 @@ public:
     void setPhase2AuthEapMethod(AuthEapMethod method);
     AuthEapMethod phase2AuthEapMethod() const;
 
-    void setPhase2CaCertificate(const QByteArray & certificate);
-    QByteArray phase2CaCertificate() const;
-
-    void setPhase2CaPath(const QString & path);
-    QString phase2CaPath() const;
+    CertKeyScheme phase2CaCertificateScheme() const;
+    void setPhase2CaCertificate(const QString &phase2CaCertPath, CertKeyScheme \
scheme); +    QByteArray phase2CaCertificateBlob() const;
+    QString phase2CaCertificatePath() const;
 
     void setPhase2SubjectMatch(const QString & substring);
     QString phase2SubjectMatch() const;
@@ -109,8 +108,10 @@ public:
     void setPhase2AltSubjectMatches(const QStringList & strings);
     QStringList phase2AltSubjectMatches() const;
 
-    void setPhase2ClientCertificate(const QByteArray & certificate);
-    QByteArray phase2ClientCertificate() const;
+    CertKeyScheme phase2ClientCertificateScheme() const;
+    void setPhase2ClientCertificate(const QString &phase2ClientCertPath, \
CertKeyScheme scheme); +    QByteArray phase2ClientCertificateBlob() const;
+    QString phase2ClientCertificatePath() const;
 
     void setPassword(const QString & password);
     QString password() const;
diff --git a/settings/802-1x_p.h b/settings/802-1x_p.h
index 0e6a6e5..50d99ab 100644
--- a/settings/802-1x_p.h
+++ b/settings/802-1x_p.h
@@ -76,11 +76,10 @@ public:
     Security8021xSetting::FastProvisioning phase1FastProvisioning;
     Security8021xSetting::AuthMethod phase2AuthMethod;
     Security8021xSetting::AuthEapMethod phase2AuthEapMethod;
-    QByteArray phase2CaCert;
-    QString phase2CaPath;
+    CertificateWrapper phase2CaCert;
     QString phase2SubjectMatch;
     QStringList phase2AltSubjectMatches;
-    QByteArray phase2ClientCert;
+    CertificateWrapper phase2ClientCert;
     QString password;
     Setting::SecretFlags passwordFlags;
     QByteArray passwordRaw;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic