// Copyright 2014 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 COMPONENTS_WIFI_SYNC_WIFI_SECURITY_CLASS_H_ #define COMPONENTS_WIFI_SYNC_WIFI_SECURITY_CLASS_H_ #include #include "build/build_config.h" #include "sync/protocol/sync.pb.h" namespace wifi_sync { enum WifiSecurityClass { SECURITY_CLASS_INVALID, SECURITY_CLASS_NONE, SECURITY_CLASS_WEP, SECURITY_CLASS_PSK, // WPA-PSK or RSN-PSK SECURITY_CLASS_802_1X, // WPA-Enterprise or RSN-Enterprise }; // Returns true iff |security_class| allows passphrases. Note that a // security class may permit passphrases, without requiring them. bool WifiSecurityClassSupportsPassphrases(WifiSecurityClass security_class); // Converts from Chrome Sync's serialized form of a security class, to // a WifiSecurityClass. Returns the appropriate WifiSecurityClass // value. If |sync_enum| is unrecognized, returns SECURITY_CLASS_INVALID. WifiSecurityClass WifiSecurityClassFromSyncSecurityClass( sync_pb::WifiCredentialSpecifics_SecurityClass sync_enum); // Converts from a WifiSecurityClass enum to Chrome Sync's serialized // form of a security class. Returns the appropriate sync value. If // |security_class| is unrecognized, or unsupported by Chrome Sync, // returns sync's SECURITY_CLASS_INVALID. sync_pb::WifiCredentialSpecifics_SecurityClass WifiSecurityClassToSyncSecurityClass(WifiSecurityClass security_class); // Converts from a WifiSecurityClass enum to an onc::wifi::kSecurity // string value. The resulting string is written to // |security_class_string|. Returns false if |security_class| is // SECURITY_CLASS_INVALID, or unrecognized. bool WifiSecurityClassToOncSecurityString(WifiSecurityClass security_class, std::string* security_class_string); #if defined(OS_CHROMEOS) // Converts from a Security string presented by the ChromeOS // connection manager ("Shill") to a WifiSecurityClass enum. Returns // the appropriate enum value. If |shill_security| is unrecognized, // returns SECURITY_CLASS_INVALID. WifiSecurityClass WifiSecurityClassFromShillSecurity( const std::string& shill_security); #endif // OS_CHROMEOS } // namespace wifi_sync #endif // COMPONENTS_WIFI_SYNC_WIFI_SECURITY_CLASS_H_