onc_signature.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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
13namespace chromeos {
14namespace onc {
15
16struct OncValueSignature;
17
18struct OncFieldSignature {
19  const char* onc_field_name;
20  const OncValueSignature* value_signature;
21};
22
23struct 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
30CHROMEOS_EXPORT const OncFieldSignature* GetFieldSignature(
31    const OncValueSignature& signature,
32    const std::string& onc_field_name);
33
34CHROMEOS_EXPORT bool FieldIsCredential(
35    const OncValueSignature& signature,
36    const std::string& onc_field_name);
37
38CHROMEOS_EXPORT extern const OncValueSignature kRecommendedSignature;
39CHROMEOS_EXPORT extern const OncValueSignature kEAPSignature;
40CHROMEOS_EXPORT extern const OncValueSignature kIssuerSubjectPatternSignature;
41CHROMEOS_EXPORT extern const OncValueSignature kCertificatePatternSignature;
42CHROMEOS_EXPORT extern const OncValueSignature kIPsecSignature;
43CHROMEOS_EXPORT extern const OncValueSignature kL2TPSignature;
44CHROMEOS_EXPORT extern const OncValueSignature kXAUTHSignature;
45CHROMEOS_EXPORT extern const OncValueSignature kOpenVPNSignature;
46CHROMEOS_EXPORT extern const OncValueSignature kVerifyX509Signature;
47CHROMEOS_EXPORT extern const OncValueSignature kVPNSignature;
48CHROMEOS_EXPORT extern const OncValueSignature kEthernetSignature;
49CHROMEOS_EXPORT extern const OncValueSignature kIPConfigSignature;
50CHROMEOS_EXPORT extern const OncValueSignature kProxyLocationSignature;
51CHROMEOS_EXPORT extern const OncValueSignature kProxyManualSignature;
52CHROMEOS_EXPORT extern const OncValueSignature kProxySettingsSignature;
53CHROMEOS_EXPORT extern const OncValueSignature kWiFiSignature;
54CHROMEOS_EXPORT extern const OncValueSignature kCertificateSignature;
55CHROMEOS_EXPORT extern const OncValueSignature kNetworkConfigurationSignature;
56CHROMEOS_EXPORT extern const OncValueSignature
57    kGlobalNetworkConfigurationSignature;
58CHROMEOS_EXPORT extern const OncValueSignature kCertificateListSignature;
59CHROMEOS_EXPORT extern const OncValueSignature
60    kNetworkConfigurationListSignature;
61CHROMEOS_EXPORT extern const OncValueSignature kToplevelConfigurationSignature;
62
63// Derived "ONC with State" signatures.
64CHROMEOS_EXPORT extern const OncValueSignature kNetworkWithStateSignature;
65CHROMEOS_EXPORT extern const OncValueSignature kWiFiWithStateSignature;
66CHROMEOS_EXPORT extern const OncValueSignature kCellularSignature;
67CHROMEOS_EXPORT extern const OncValueSignature kCellularWithStateSignature;
68CHROMEOS_EXPORT extern const OncValueSignature kCellularProviderSignature;
69CHROMEOS_EXPORT extern const OncValueSignature kCellularApnSignature;
70
71}  // namespace onc
72}  // namespace chromeos
73
74#endif  // CHROMEOS_NETWORK_ONC_ONC_SIGNATURE_H_
75