// Copyright 2015 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. #include "components/wifi_sync/wifi_security_class.h" #include "base/logging.h" #include "components/onc/onc_constants.h" namespace wifi_sync { bool WifiSecurityClassSupportsPassphrases( const WifiSecurityClass security_class) { switch (security_class) { case SECURITY_CLASS_NONE: return false; case SECURITY_CLASS_WEP: case SECURITY_CLASS_PSK: case SECURITY_CLASS_802_1X: return true; case SECURITY_CLASS_INVALID: return false; } NOTREACHED() << "Invalid WifiSecurityClass enum with value " << security_class; return false; } WifiSecurityClass WifiSecurityClassFromSyncSecurityClass( const sync_pb::WifiCredentialSpecifics_SecurityClass sync_enum) { switch (sync_enum) { case SECURITY_CLASS_INVALID: return WifiSecurityClass::SECURITY_CLASS_INVALID; case SECURITY_CLASS_NONE: return WifiSecurityClass::SECURITY_CLASS_NONE; case SECURITY_CLASS_WEP: return WifiSecurityClass::SECURITY_CLASS_WEP; case SECURITY_CLASS_PSK: return WifiSecurityClass::SECURITY_CLASS_PSK; } NOTREACHED() << "Invalid sync security class enum with value " << sync_enum; return WifiSecurityClass::SECURITY_CLASS_INVALID; } sync_pb::WifiCredentialSpecifics_SecurityClass WifiSecurityClassToSyncSecurityClass(const WifiSecurityClass security_class) { switch (security_class) { case SECURITY_CLASS_NONE: return sync_pb::WifiCredentialSpecifics::SECURITY_CLASS_NONE; case SECURITY_CLASS_WEP: return sync_pb::WifiCredentialSpecifics::SECURITY_CLASS_WEP; case SECURITY_CLASS_PSK: return sync_pb::WifiCredentialSpecifics::SECURITY_CLASS_PSK; case SECURITY_CLASS_802_1X: LOG(WARNING) << "Unsupported security class 802.1X"; return sync_pb::WifiCredentialSpecifics::SECURITY_CLASS_INVALID; case SECURITY_CLASS_INVALID: return sync_pb::WifiCredentialSpecifics::SECURITY_CLASS_INVALID; } NOTREACHED() << "Invalid WifiSecurityClass enum with value " << security_class; return sync_pb::WifiCredentialSpecifics::SECURITY_CLASS_INVALID; } bool WifiSecurityClassToOncSecurityString(WifiSecurityClass security_class, std::string* security_class_string) { DCHECK(security_class_string); switch (security_class) { case SECURITY_CLASS_NONE: *security_class_string = onc::wifi::kSecurityNone; return true; case SECURITY_CLASS_WEP: *security_class_string = onc::wifi::kWEP_PSK; return true; case SECURITY_CLASS_PSK: *security_class_string = onc::wifi::kWPA_PSK; return true; case SECURITY_CLASS_802_1X: *security_class_string = onc::wifi::kWPA_EAP; return true; case SECURITY_CLASS_INVALID: return false; } NOTREACHED() << "Invalid WifiSecurityClass enum with value " << security_class; return false; } } // namespace wifi_sync