1// Copyright 2013 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#ifndef COMPONENTS_ONC_ONC_CONSTANTS_H_
5#define COMPONENTS_ONC_ONC_CONSTANTS_H_
6
7#include <string>
8
9#include "components/onc/onc_export.h"
10
11// Constants for ONC properties.
12namespace onc {
13
14// Indicates from which source an ONC blob comes from.
15enum ONCSource {
16  ONC_SOURCE_UNKNOWN,
17  ONC_SOURCE_NONE,
18  ONC_SOURCE_USER_IMPORT,
19  ONC_SOURCE_DEVICE_POLICY,
20  ONC_SOURCE_USER_POLICY,
21};
22
23// These keys are used to augment the dictionary resulting from merging the
24// different settings and policies.
25
26// The setting that Shill declared to be using. For example, if no policy and no
27// user setting exists, Shill might still report a property like network
28// security options or a SSID.
29ONC_EXPORT extern const char kAugmentationActiveSetting[];
30// The one of different setting sources (user/device policy, user/shared
31// settings) that has highest priority over the others.
32ONC_EXPORT extern const char kAugmentationEffectiveSetting[];
33ONC_EXPORT extern const char kAugmentationUserPolicy[];
34ONC_EXPORT extern const char kAugmentationDevicePolicy[];
35ONC_EXPORT extern const char kAugmentationUserSetting[];
36ONC_EXPORT extern const char kAugmentationSharedSetting[];
37ONC_EXPORT extern const char kAugmentationUserEditable[];
38ONC_EXPORT extern const char kAugmentationDeviceEditable[];
39
40// This is no ONC key or value but used for logging only.
41// TODO(pneubeck): Remove.
42ONC_EXPORT extern const char kNetworkConfiguration[];
43
44// Common keys/values.
45ONC_EXPORT extern const char kRecommended[];
46ONC_EXPORT extern const char kRemove[];
47
48// Top Level Configuration
49namespace toplevel_config {
50ONC_EXPORT extern const char kCertificates[];
51ONC_EXPORT extern const char kEncryptedConfiguration[];
52ONC_EXPORT extern const char kNetworkConfigurations[];
53ONC_EXPORT extern const char kGlobalNetworkConfiguration[];
54ONC_EXPORT extern const char kType[];
55ONC_EXPORT extern const char kUnencryptedConfiguration[];
56}  // namespace toplevel_config
57
58// NetworkConfiguration.
59namespace network_config {
60ONC_EXPORT extern const char kCellular[];
61ONC_EXPORT extern const char kDevice[];
62ONC_EXPORT extern const char kEthernet[];
63ONC_EXPORT extern const char kGUID[];
64ONC_EXPORT extern const char kIPConfigs[];
65ONC_EXPORT extern const char kSavedIPConfig[];
66ONC_EXPORT extern const char kStaticIPConfig[];
67ONC_EXPORT extern const char kMacAddress[];
68ONC_EXPORT extern const char kName[];
69ONC_EXPORT extern const char kNameServers[];
70ONC_EXPORT extern const char kPriority[];
71ONC_EXPORT extern const char kProxySettings[];
72ONC_EXPORT extern const char kSearchDomains[];
73ONC_EXPORT extern const char kSource[];
74ONC_EXPORT extern const char kSourceDevice[];
75ONC_EXPORT extern const char kSourceDevicePolicy[];
76ONC_EXPORT extern const char kSourceNone[];
77ONC_EXPORT extern const char kSourceUser[];
78ONC_EXPORT extern const char kSourceUserPolicy[];
79ONC_EXPORT extern const char kConnectionState[];
80ONC_EXPORT extern const char kRestrictedConnectivity[];
81ONC_EXPORT extern const char kConnectable[];
82ONC_EXPORT extern const char kErrorState[];
83ONC_EXPORT extern const char kType[];
84ONC_EXPORT extern const char kVPN[];
85ONC_EXPORT extern const char kWiFi[];
86ONC_EXPORT extern const char kWimax[];
87
88ONC_EXPORT extern std::string CellularProperty(const std::string& property);
89ONC_EXPORT extern std::string VpnProperty(const std::string& property);
90ONC_EXPORT extern std::string WifiProperty(const std::string& property);
91
92}  // namespace network_config
93
94namespace network_type {
95ONC_EXPORT extern const char kCellular[];
96ONC_EXPORT extern const char kEthernet[];
97ONC_EXPORT extern const char kVPN[];
98ONC_EXPORT extern const char kWiFi[];
99ONC_EXPORT extern const char kWimax[];
100// Patterns matching multiple types, not part of the ONC spec.
101ONC_EXPORT extern const char kAllTypes[];
102ONC_EXPORT extern const char kWireless[];
103}  // namespace network_type
104
105namespace cellular {
106ONC_EXPORT extern const char kActivationState[];
107ONC_EXPORT extern const char kActivated[];
108ONC_EXPORT extern const char kActivating[];
109ONC_EXPORT extern const char kNotActivated[];
110ONC_EXPORT extern const char kPartiallyActivated[];
111ONC_EXPORT extern const char kActivationType[];
112ONC_EXPORT extern const char kAllowRoaming[];
113ONC_EXPORT extern const char kAPN[];
114ONC_EXPORT extern const char kAPNList[];
115ONC_EXPORT extern const char kCarrier[];
116ONC_EXPORT extern const char kESN[];
117ONC_EXPORT extern const char kFamily[];
118ONC_EXPORT extern const char kFirmwareRevision[];
119ONC_EXPORT extern const char kFoundNetworks[];
120ONC_EXPORT extern const char kHardwareRevision[];
121ONC_EXPORT extern const char kHomeProvider[];
122ONC_EXPORT extern const char kICCID[];
123ONC_EXPORT extern const char kIMEI[];
124ONC_EXPORT extern const char kIMSI[];
125ONC_EXPORT extern const char kLastGoodAPN[];
126ONC_EXPORT extern const char kManufacturer[];
127ONC_EXPORT extern const char kMDN[];
128ONC_EXPORT extern const char kMEID[];
129ONC_EXPORT extern const char kMIN[];
130ONC_EXPORT extern const char kModelID[];
131ONC_EXPORT extern const char kNetworkTechnology[];
132ONC_EXPORT extern const char kPRLVersion[];
133ONC_EXPORT extern const char kProviderRequiresRoaming[];
134ONC_EXPORT extern const char kRoamingState[];
135ONC_EXPORT extern const char kHome[];
136ONC_EXPORT extern const char kRoaming[];
137ONC_EXPORT extern const char kServingOperator[];
138ONC_EXPORT extern const char kSIMLockStatus[];
139ONC_EXPORT extern const char kSIMPresent[];
140ONC_EXPORT extern const char kSupportedCarriers[];
141ONC_EXPORT extern const char kSupportNetworkScan[];
142}  // namespace cellular
143
144namespace cellular_provider {
145ONC_EXPORT extern const char kCode[];
146ONC_EXPORT extern const char kCountry[];
147ONC_EXPORT extern const char kName[];
148}  // namespace cellular_provider
149
150namespace cellular_apn {
151ONC_EXPORT extern const char kAccessPointName[];
152ONC_EXPORT extern const char kName[];
153ONC_EXPORT extern const char kUsername[];
154ONC_EXPORT extern const char kPassword[];
155ONC_EXPORT extern const char kLocalizedName[];
156ONC_EXPORT extern const char kLanguage[];
157}  // namespace cellular_apn
158
159namespace cellular_found_network {
160ONC_EXPORT extern const char kStatus[];
161ONC_EXPORT extern const char kNetworkId[];
162ONC_EXPORT extern const char kShortName[];
163ONC_EXPORT extern const char kLongName[];
164ONC_EXPORT extern const char kTechnology[];
165}  // namespace cellular_found_network
166
167namespace sim_lock_status {
168ONC_EXPORT extern const char kLockEnabled[];
169ONC_EXPORT extern const char kLockType[];
170ONC_EXPORT extern const char kRetriesLeft[];
171}  // namespace sim_lock_status
172
173namespace connection_state {
174ONC_EXPORT extern const char kConnected[];
175ONC_EXPORT extern const char kConnecting[];
176ONC_EXPORT extern const char kNotConnected[];
177}  // namespace connection_state
178
179namespace ipconfig {
180ONC_EXPORT extern const char kGateway[];
181ONC_EXPORT extern const char kIPAddress[];
182ONC_EXPORT extern const char kIPv4[];
183ONC_EXPORT extern const char kIPv6[];
184ONC_EXPORT extern const char kNameServers[];
185ONC_EXPORT extern const char kRoutingPrefix[];
186ONC_EXPORT extern const char kType[];
187ONC_EXPORT extern const char kWebProxyAutoDiscoveryUrl[];
188}  // namespace ipconfig
189
190namespace ethernet {
191ONC_EXPORT extern const char kAuthentication[];
192ONC_EXPORT extern const char kAuthenticationNone[];
193ONC_EXPORT extern const char kEAP[];
194ONC_EXPORT extern const char k8021X[];
195}  // namespace ethernet
196
197namespace wifi {
198ONC_EXPORT extern const char kAutoConnect[];
199ONC_EXPORT extern const char kBSSID[];
200ONC_EXPORT extern const char kEAP[];
201ONC_EXPORT extern const char kFrequency[];
202ONC_EXPORT extern const char kFrequencyList[];
203ONC_EXPORT extern const char kHiddenSSID[];
204ONC_EXPORT extern const char kPassphrase[];
205ONC_EXPORT extern const char kSSID[];
206ONC_EXPORT extern const char kSecurity[];
207ONC_EXPORT extern const char kSecurityNone[];
208ONC_EXPORT extern const char kSignalStrength[];
209ONC_EXPORT extern const char kWEP_PSK[];
210ONC_EXPORT extern const char kWEP_8021X[];
211ONC_EXPORT extern const char kWPA_PSK[];
212ONC_EXPORT extern const char kWPA2_PSK[];
213ONC_EXPORT extern const char kWPA_EAP[];
214}  // namespace wifi
215
216namespace wimax {
217ONC_EXPORT extern const char kAutoConnect[];
218ONC_EXPORT extern const char kEAP[];
219ONC_EXPORT extern const char kSignalStrength[];
220}  // namespace wimax
221
222namespace client_cert {
223ONC_EXPORT extern const char kClientCertPattern[];
224ONC_EXPORT extern const char kClientCertRef[];
225ONC_EXPORT extern const char kClientCertType[];
226ONC_EXPORT extern const char kClientCertTypeNone[];
227ONC_EXPORT extern const char kCommonName[];
228ONC_EXPORT extern const char kEmailAddress[];
229ONC_EXPORT extern const char kEnrollmentURI[];
230ONC_EXPORT extern const char kIssuerCARef[];
231ONC_EXPORT extern const char kIssuerCAPEMs[];
232ONC_EXPORT extern const char kIssuer[];
233ONC_EXPORT extern const char kLocality[];
234ONC_EXPORT extern const char kOrganization[];
235ONC_EXPORT extern const char kOrganizationalUnit[];
236ONC_EXPORT extern const char kPattern[];
237ONC_EXPORT extern const char kRef[];
238ONC_EXPORT extern const char kSubject[];
239}  // namespace client_cert
240
241namespace certificate {
242ONC_EXPORT extern const char kAuthority[];
243ONC_EXPORT extern const char kClient[];
244ONC_EXPORT extern const char kGUID[];
245ONC_EXPORT extern const char kPKCS12[];
246ONC_EXPORT extern const char kServer[];
247ONC_EXPORT extern const char kTrustBits[];
248ONC_EXPORT extern const char kType[];
249ONC_EXPORT extern const char kWeb[];
250ONC_EXPORT extern const char kX509[];
251}  // namespace certificate
252
253namespace encrypted {
254ONC_EXPORT extern const char kAES256[];
255ONC_EXPORT extern const char kCipher[];
256ONC_EXPORT extern const char kCiphertext[];
257ONC_EXPORT extern const char kHMACMethod[];
258ONC_EXPORT extern const char kHMAC[];
259ONC_EXPORT extern const char kIV[];
260ONC_EXPORT extern const char kIterations[];
261ONC_EXPORT extern const char kPBKDF2[];
262ONC_EXPORT extern const char kSHA1[];
263ONC_EXPORT extern const char kSalt[];
264ONC_EXPORT extern const char kStretch[];
265}  // namespace encrypted
266
267namespace eap {
268ONC_EXPORT extern const char kAnonymousIdentity[];
269ONC_EXPORT extern const char kAutomatic[];
270ONC_EXPORT extern const char kEAP_AKA[];
271ONC_EXPORT extern const char kEAP_FAST[];
272ONC_EXPORT extern const char kEAP_SIM[];
273ONC_EXPORT extern const char kEAP_TLS[];
274ONC_EXPORT extern const char kEAP_TTLS[];
275ONC_EXPORT extern const char kIdentity[];
276ONC_EXPORT extern const char kInner[];
277ONC_EXPORT extern const char kLEAP[];
278ONC_EXPORT extern const char kMD5[];
279ONC_EXPORT extern const char kMSCHAPv2[];
280ONC_EXPORT extern const char kOuter[];
281ONC_EXPORT extern const char kPAP[];
282ONC_EXPORT extern const char kPEAP[];
283ONC_EXPORT extern const char kPassword[];
284ONC_EXPORT extern const char kSaveCredentials[];
285ONC_EXPORT extern const char kServerCAPEMs[];
286ONC_EXPORT extern const char kServerCARef[];
287ONC_EXPORT extern const char kServerCARefs[];
288ONC_EXPORT extern const char kUseSystemCAs[];
289}  // namespace eap
290
291namespace vpn {
292ONC_EXPORT extern const char kAutoConnect[];
293ONC_EXPORT extern const char kHost[];
294ONC_EXPORT extern const char kIPsec[];
295ONC_EXPORT extern const char kL2TP[];
296ONC_EXPORT extern const char kOpenVPN[];
297ONC_EXPORT extern const char kPassword[];
298ONC_EXPORT extern const char kSaveCredentials[];
299ONC_EXPORT extern const char kTypeL2TP_IPsec[];
300ONC_EXPORT extern const char kType[];
301ONC_EXPORT extern const char kUsername[];
302}  // namespace vpn
303
304namespace ipsec {
305ONC_EXPORT extern const char kAuthenticationType[];
306ONC_EXPORT extern const char kCert[];
307ONC_EXPORT extern const char kEAP[];
308ONC_EXPORT extern const char kGroup[];
309ONC_EXPORT extern const char kIKEVersion[];
310ONC_EXPORT extern const char kPSK[];
311ONC_EXPORT extern const char kServerCAPEMs[];
312ONC_EXPORT extern const char kServerCARef[];
313ONC_EXPORT extern const char kServerCARefs[];
314ONC_EXPORT extern const char kXAUTH[];
315}  // namespace ipsec
316
317namespace openvpn {
318ONC_EXPORT extern const char kAuthNoCache[];
319ONC_EXPORT extern const char kAuthRetry[];
320ONC_EXPORT extern const char kAuth[];
321ONC_EXPORT extern const char kCipher[];
322ONC_EXPORT extern const char kCompLZO[];
323ONC_EXPORT extern const char kCompNoAdapt[];
324ONC_EXPORT extern const char kIgnoreDefaultRoute[];
325ONC_EXPORT extern const char kInteract[];
326ONC_EXPORT extern const char kKeyDirection[];
327ONC_EXPORT extern const char kNoInteract[];
328ONC_EXPORT extern const char kNone[];
329ONC_EXPORT extern const char kNsCertType[];
330ONC_EXPORT extern const char kPort[];
331ONC_EXPORT extern const char kProto[];
332ONC_EXPORT extern const char kPushPeerInfo[];
333ONC_EXPORT extern const char kRemoteCertEKU[];
334ONC_EXPORT extern const char kRemoteCertKU[];
335ONC_EXPORT extern const char kRemoteCertTLS[];
336ONC_EXPORT extern const char kRenegSec[];
337ONC_EXPORT extern const char kServerCAPEMs[];
338ONC_EXPORT extern const char kServerCARef[];
339ONC_EXPORT extern const char kServerCARefs[];
340ONC_EXPORT extern const char kServerCertPEM[];
341ONC_EXPORT extern const char kServerCertRef[];
342ONC_EXPORT extern const char kServerPollTimeout[];
343ONC_EXPORT extern const char kServer[];
344ONC_EXPORT extern const char kShaper[];
345ONC_EXPORT extern const char kStaticChallenge[];
346ONC_EXPORT extern const char kTLSAuthContents[];
347ONC_EXPORT extern const char kTLSRemote[];
348ONC_EXPORT extern const char kVerb[];
349ONC_EXPORT extern const char kVerifyHash[];
350ONC_EXPORT extern const char kVerifyX509[];
351}  // namespace openvpn
352
353namespace verify_x509 {
354ONC_EXPORT extern const char kName[];
355ONC_EXPORT extern const char kType[];
356
357namespace types {
358ONC_EXPORT extern const char kName[];
359ONC_EXPORT extern const char kNamePrefix[];
360ONC_EXPORT extern const char kSubject[];
361}  // namespace types
362}  // namespace verify_x509
363
364namespace substitutes {
365ONC_EXPORT extern const char kEmailField[];
366ONC_EXPORT extern const char kLoginIDField[];
367}  // namespace substitutes
368
369namespace proxy {
370ONC_EXPORT extern const char kDirect[];
371ONC_EXPORT extern const char kExcludeDomains[];
372ONC_EXPORT extern const char kFtp[];
373ONC_EXPORT extern const char kHost[];
374ONC_EXPORT extern const char kHttp[];
375ONC_EXPORT extern const char kHttps[];
376ONC_EXPORT extern const char kManual[];
377ONC_EXPORT extern const char kPAC[];
378ONC_EXPORT extern const char kPort[];
379ONC_EXPORT extern const char kSocks[];
380ONC_EXPORT extern const char kType[];
381ONC_EXPORT extern const char kWPAD[];
382}  // namespace proxy
383
384namespace global_network_config {
385ONC_EXPORT extern const char kAllowOnlyPolicyNetworksToAutoconnect[];
386}  // global_network_config
387
388}  // namespace onc
389
390#endif  // COMPONENTS_ONC_ONC_CONSTANTS_H_
391