summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/options/wifi_config_model.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/options/wifi_config_model.h')
-rw-r--r--chrome/browser/chromeos/options/wifi_config_model.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/options/wifi_config_model.h b/chrome/browser/chromeos/options/wifi_config_model.h
new file mode 100644
index 0000000..b56822b
--- /dev/null
+++ b/chrome/browser/chromeos/options/wifi_config_model.h
@@ -0,0 +1,70 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_MODEL_H_
+#define CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_MODEL_H_
+#pragma once
+
+#include <string>
+
+#include "base/string16.h"
+#include "net/base/cert_database.h"
+
+namespace chromeos {
+
+// Data model for Wi-Fi connection configuration dialog. Mostly concerned
+// with certificate management for Extensible Authentication Protocol (EAP)
+// enterprise networks.
+class WifiConfigModel {
+ public:
+ // Constructs a model with empty lists of certificates. If you are
+ // configuring a 802.1X network, call UpdateCertificates() to build the
+ // internal cache of certificate names and IDs.
+ WifiConfigModel();
+ ~WifiConfigModel();
+
+ // Updates the cached certificate lists.
+ void UpdateCertificates();
+
+ // Returns the number of user certificates.
+ int GetUserCertCount() const;
+
+ // Returns a user-visible name for a given user certificate.
+ string16 GetUserCertName(int cert_index) const;
+
+ // Returns the PKCS#11 ID for a given user certificate.
+ std::string GetUserCertPkcs11Id(int cert_index) const;
+
+ // Returns the cert_index for a given PKCS#11 user certificate ID,
+ // or -1 if no certificate with that ID exists.
+ int GetUserCertIndex(const std::string& pkcs11_id) const;
+
+ // Returns the number of server CA certificates.
+ int GetServerCaCertCount() const;
+
+ // Returns a user-visible name for a given server CA certificate.
+ string16 GetServerCaCertName(int cert_index) const;
+
+ // Returns the NSS nickname for a given server CA certificate.
+ std::string GetServerCaCertNssNickname(int cert_index) const;
+
+ // Returns the cert_index for a given server CA certificate NSS nickname,
+ // or -1 if no certificate with that ID exists.
+ int GetServerCaCertIndex(const std::string& nss_nickname) const;
+
+ private:
+ net::CertDatabase cert_db_;
+
+ // List of user certificates, sorted by name.
+ net::CertificateList user_certs_;
+
+ // List of server CA certificates, sorted by name.
+ net::CertificateList server_ca_certs_;
+
+ DISALLOW_COPY_AND_ASSIGN(WifiConfigModel);
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_MODEL_H_