doc: Hidden AP provisioning information added
[platform/upstream/connman.git] / doc / config-format.txt
1 Connman configuration file format
2 *********************************
3
4 Connman uses configuration files to provision existing services. Connman will
5 be looking for its configuration files at STORAGEDIR which by default points
6 to /var/lib/connman/. Configuration file names must not include other
7 characters than letters or numbers and must have a .config suffix.
8 Those configuration files are text files with a simple format and we typically
9 have one file per provisioned network.
10
11 If the config file is removed, then Connman tries to remove the
12 provisioned service. If individual service entry inside config is removed,
13 then the corresponding provisioned service is removed. If service
14 entry is changed, then corresponding service is removed and then
15 immediately re-provisioned.
16
17
18 Global entry [global]
19 =====================
20
21 These files can have an optional global entry describing the actual file.
22 The 2 allowed fields for that entry are:
23 - Name: Name of the network.
24 - Description: Description of the network.
25 - Protected: Configuration protection against being removed, modified or
26 overwritten by a Manager.ProvisionService() call. If unset, this value defaults
27 to TRUE, i.e. configs are protected by default.
28
29
30 Service entry [service_*]
31 =========================
32
33 Each provisioned service must start with the [service_*] tag. Replace * with
34 an identifier unique to the config file.
35
36 Allowed fields:
37 - Type: Service type. We currently only support wifi.
38 - Name: A string representation of an 802.11 SSID. If the SSID field is
39   present, the Name field is ignored.
40 - SSID: A hexadecimal representation of an 802.11 SSID. If the SSID field is
41   omitted, the Name field is used instead.
42 - EAP: EAP type. We currently only support tls, ttls or peap.
43 - CACertFile: File path to CA certificate file (PEM/DER).
44 - ClientCertFile: File path to client certificate file (PEM/DER).
45 - PrivateKeyFile: File path to client private key file (PEM/DER/PFX).
46 - PrivateKeyPassphrase: Password/passphrase for private key file.
47 - PrivateKeyPassphraseType: We only support the fsid passphrase type for now.
48   This is for private keys generated by using their own filesystem UUID as the
49   passphrase. The PrivateKeyPassphrase field is ignored when this field is set
50   to fsid.
51 - Identity: Identity string for EAP.
52 - Phase2: Phase2 (inner authentication with TLS tunnel) authentication method.
53   Prefix the value with "EAP-" to indicate the usage of an EAP-based inner
54   authentication method (should only be used with EAP = TTLS).
55 - Passphrase: RSN/WPA/WPA2 Passphrase
56 - Hidden: If set to true, then this AP is hidden. If missing or set to false,
57   then AP is not hidden.
58
59
60 Example
61 =======
62
63 This is a configuration file for a network providing EAP-TLS, EAP-TTLS and
64 EAP-PEAP services.
65 The respective SSIDs are tls_ssid, ttls_ssid and peap_ssid and the file name
66 is example.config.
67 Please note that the SSID entry is for hexadecimal encoded SSID (e.g. "SSID =
68 746c735f73736964"). If your SSID does not contain any exotic character then
69 you should use the Name entry instead (e.g. "Name = tls_ssid").
70
71
72 example@example:[~]$ cat /var/lib/connman/example.config
73 [global]
74 Name = Example
75 Description = Example network configuration
76
77 [service_tls]
78 Type = wifi
79 SSID = 746c735f73736964
80 EAP = tls
81 CACertFile = /home/user/.certs/ca.pem
82 ClientCertFile = /home/user/devlp/.certs/client.pem
83 PrivateKeyFile = /home/user/.certs/client.fsid.pem
84 PrivateKeyPassphraseType = fsid
85 Identity = user
86
87 [service_ttls]
88 Type = wifi
89 Name = ttls_ssid
90 EAP = ttls
91 CACertFile = /home/user/.cert/ca.pem
92 Phase2 = MSCHAPV2
93 Identity = user
94
95 [service_peap]
96 Type = wifi
97 Name = peap_ssid
98 EAP = peap
99 CACertFile = /home/user/.cert/ca.pem
100 Phase2 = MSCHAPV2
101 Identity = user