| Index: extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| diff --git a/extensions/browser/api/networking_private/networking_private_chromeos.cc b/extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| index c030fda7e2c51b23d06bcdee768c5dca504803e2..7acc8894d38e74adc69520da2dc91f43f71de8b1 100644
|
| --- a/extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| +++ b/extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| @@ -18,6 +18,7 @@
|
| #include "chromeos/network/device_state.h"
|
| #include "chromeos/network/managed_network_configuration_handler.h"
|
| #include "chromeos/network/network_activation_handler.h"
|
| +#include "chromeos/network/network_certificate_handler.h"
|
| #include "chromeos/network/network_connection_handler.h"
|
| #include "chromeos/network/network_device_handler.h"
|
| #include "chromeos/network/network_event_log.h"
|
| @@ -43,6 +44,7 @@
|
| #include "third_party/cros_system_api/dbus/service_constants.h"
|
|
|
| using chromeos::NetworkHandler;
|
| +using chromeos::NetworkCertificateHandler;
|
| using chromeos::NetworkStateHandler;
|
| using chromeos::NetworkTypePattern;
|
| using chromeos::ShillManagerClient;
|
| @@ -299,6 +301,20 @@ void SetManualProxy(base::DictionaryValue* manual,
|
| SetProxyEffectiveValue(port_dict, state, base::MakeUnique<base::Value>(port));
|
| }
|
|
|
| +private_api::Certificate GetCertDictionary(
|
| + const NetworkCertificateHandler::Certificate& cert) {
|
| + private_api::Certificate api_cert;
|
| + api_cert.hash = cert.hash;
|
| + api_cert.issued_by = cert.issued_by;
|
| + api_cert.issued_to = cert.issued_to;
|
| + api_cert.hardware_backed = cert.hardware_backed;
|
| + if (!cert.pem.empty())
|
| + api_cert.pem = base::MakeUnique<std::string>(cert.pem);
|
| + if (!cert.pkcs11_id.empty())
|
| + api_cert.pkcs11_id = base::MakeUnique<std::string>(cert.pkcs11_id);
|
| + return api_cert;
|
| +}
|
| +
|
| } // namespace
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -746,6 +762,25 @@ NetworkingPrivateChromeOS::GetGlobalPolicy() {
|
| return result;
|
| }
|
|
|
| +std::unique_ptr<base::DictionaryValue>
|
| +NetworkingPrivateChromeOS::GetCertificateLists() {
|
| + private_api::CertificateLists result;
|
| + const std::vector<NetworkCertificateHandler::Certificate>& server_cas =
|
| + NetworkHandler::Get()
|
| + ->network_certificate_handler()
|
| + ->server_ca_certificates();
|
| + for (const auto& cert : server_cas)
|
| + result.server_ca_certificates.push_back(GetCertDictionary(cert));
|
| +
|
| + std::vector<private_api::Certificate> user_cert_list;
|
| + const std::vector<NetworkCertificateHandler::Certificate>& user_certs =
|
| + NetworkHandler::Get()->network_certificate_handler()->user_certificates();
|
| + for (const auto& cert : user_certs)
|
| + result.user_certificates.push_back(GetCertDictionary(cert));
|
| +
|
| + return result.ToValue();
|
| +}
|
| +
|
| bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) {
|
| NetworkTypePattern pattern =
|
| chromeos::onc::NetworkTypePatternFromOncType(type);
|
|
|