diff options
Diffstat (limited to 'chrome/browser/chromeos/options/wifi_config_model.h')
-rw-r--r-- | chrome/browser/chromeos/options/wifi_config_model.h | 70 |
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_ |