Home | History | Annotate | Download | only in onc
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROMEOS_NETWORK_ONC_ONC_SIGNATURE_H_
      6 #define CHROMEOS_NETWORK_ONC_ONC_SIGNATURE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/values.h"
     11 #include "chromeos/chromeos_export.h"
     12 
     13 namespace chromeos {
     14 namespace onc {
     15 
     16 struct OncValueSignature;
     17 
     18 struct OncFieldSignature {
     19   const char* onc_field_name;
     20   const OncValueSignature* value_signature;
     21 };
     22 
     23 struct CHROMEOS_EXPORT OncValueSignature {
     24   base::Value::Type onc_type;
     25   const OncFieldSignature* fields;
     26   const OncValueSignature* onc_array_entry_signature;
     27   const OncValueSignature* base_signature;
     28 };
     29 
     30 CHROMEOS_EXPORT const OncFieldSignature* GetFieldSignature(
     31     const OncValueSignature& signature,
     32     const std::string& onc_field_name);
     33 
     34 CHROMEOS_EXPORT bool FieldIsCredential(
     35     const OncValueSignature& signature,
     36     const std::string& onc_field_name);
     37 
     38 CHROMEOS_EXPORT extern const OncValueSignature kRecommendedSignature;
     39 CHROMEOS_EXPORT extern const OncValueSignature kEAPSignature;
     40 CHROMEOS_EXPORT extern const OncValueSignature kIssuerSubjectPatternSignature;
     41 CHROMEOS_EXPORT extern const OncValueSignature kCertificatePatternSignature;
     42 CHROMEOS_EXPORT extern const OncValueSignature kIPsecSignature;
     43 CHROMEOS_EXPORT extern const OncValueSignature kL2TPSignature;
     44 CHROMEOS_EXPORT extern const OncValueSignature kXAUTHSignature;
     45 CHROMEOS_EXPORT extern const OncValueSignature kOpenVPNSignature;
     46 CHROMEOS_EXPORT extern const OncValueSignature kVerifyX509Signature;
     47 CHROMEOS_EXPORT extern const OncValueSignature kVPNSignature;
     48 CHROMEOS_EXPORT extern const OncValueSignature kEthernetSignature;
     49 CHROMEOS_EXPORT extern const OncValueSignature kIPConfigSignature;
     50 CHROMEOS_EXPORT extern const OncValueSignature kSavedIPConfigSignature;
     51 CHROMEOS_EXPORT extern const OncValueSignature kStaticIPConfigSignature;
     52 CHROMEOS_EXPORT extern const OncValueSignature kProxyLocationSignature;
     53 CHROMEOS_EXPORT extern const OncValueSignature kProxyManualSignature;
     54 CHROMEOS_EXPORT extern const OncValueSignature kProxySettingsSignature;
     55 CHROMEOS_EXPORT extern const OncValueSignature kWiFiSignature;
     56 CHROMEOS_EXPORT extern const OncValueSignature kWiMAXSignature;
     57 CHROMEOS_EXPORT extern const OncValueSignature kCertificateSignature;
     58 CHROMEOS_EXPORT extern const OncValueSignature kNetworkConfigurationSignature;
     59 CHROMEOS_EXPORT extern const OncValueSignature
     60     kGlobalNetworkConfigurationSignature;
     61 CHROMEOS_EXPORT extern const OncValueSignature kCertificateListSignature;
     62 CHROMEOS_EXPORT extern const OncValueSignature
     63     kNetworkConfigurationListSignature;
     64 CHROMEOS_EXPORT extern const OncValueSignature kToplevelConfigurationSignature;
     65 
     66 // Derived "ONC with State" signatures.
     67 CHROMEOS_EXPORT extern const OncValueSignature kNetworkWithStateSignature;
     68 CHROMEOS_EXPORT extern const OncValueSignature kWiFiWithStateSignature;
     69 CHROMEOS_EXPORT extern const OncValueSignature kWiMAXWithStateSignature;
     70 CHROMEOS_EXPORT extern const OncValueSignature kCellularSignature;
     71 CHROMEOS_EXPORT extern const OncValueSignature kCellularWithStateSignature;
     72 CHROMEOS_EXPORT extern const OncValueSignature kCellularProviderSignature;
     73 CHROMEOS_EXPORT extern const OncValueSignature kCellularApnSignature;
     74 CHROMEOS_EXPORT extern const OncValueSignature kCellularFoundNetworkSignature;
     75 CHROMEOS_EXPORT extern const OncValueSignature kSIMLockStatusSignature;
     76 
     77 }  // namespace onc
     78 }  // namespace chromeos
     79 
     80 #endif  // CHROMEOS_NETWORK_ONC_ONC_SIGNATURE_H_
     81