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 kProxyLocationSignature; 51 CHROMEOS_EXPORT extern const OncValueSignature kProxyManualSignature; 52 CHROMEOS_EXPORT extern const OncValueSignature kProxySettingsSignature; 53 CHROMEOS_EXPORT extern const OncValueSignature kWiFiSignature; 54 CHROMEOS_EXPORT extern const OncValueSignature kCertificateSignature; 55 CHROMEOS_EXPORT extern const OncValueSignature kNetworkConfigurationSignature; 56 CHROMEOS_EXPORT extern const OncValueSignature 57 kGlobalNetworkConfigurationSignature; 58 CHROMEOS_EXPORT extern const OncValueSignature kCertificateListSignature; 59 CHROMEOS_EXPORT extern const OncValueSignature 60 kNetworkConfigurationListSignature; 61 CHROMEOS_EXPORT extern const OncValueSignature kToplevelConfigurationSignature; 62 63 // Derived "ONC with State" signatures. 64 CHROMEOS_EXPORT extern const OncValueSignature kNetworkWithStateSignature; 65 CHROMEOS_EXPORT extern const OncValueSignature kWiFiWithStateSignature; 66 CHROMEOS_EXPORT extern const OncValueSignature kCellularSignature; 67 CHROMEOS_EXPORT extern const OncValueSignature kCellularWithStateSignature; 68 CHROMEOS_EXPORT extern const OncValueSignature kCellularProviderSignature; 69 CHROMEOS_EXPORT extern const OncValueSignature kCellularApnSignature; 70 71 } // namespace onc 72 } // namespace chromeos 73 74 #endif // CHROMEOS_NETWORK_ONC_ONC_SIGNATURE_H_ 75