OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stdio.h> | 5 #include <stdio.h> |
6 #include <iostream> | 6 #include <iostream> |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include <base/command_line.h> | 9 #include <base/command_line.h> |
10 #include <base/file_util.h> | 10 #include <base/file_util.h> |
11 #include <chromeos/syslog_logging.h> | 11 #include <chromeos/syslog_logging.h> |
12 | 12 |
13 #include "entd/entd.h" | 13 #include "entd/entd.h" |
14 #include "entd/extensions.h" | 14 #include "entd/extensions.h" |
15 #include "entd/callback_server.h" | 15 #include "entd/callback_server.h" |
16 #include "entd/http.h" | 16 #include "entd/http.h" |
17 #include "entd/pkcs11.h" | 17 #include "entd/pkcs11.h" |
| 18 #include "entd/tpm.h" |
18 #include "entd/utils.h" | 19 #include "entd/utils.h" |
19 | 20 |
20 namespace switches { | 21 namespace switches { |
21 // Path to search for extensions; can contain ~ or env variables (e.g. ${HOME}) | 22 // Path to search for extensions; can contain ~ or env variables (e.g. ${HOME}) |
22 static const char *kExtensionPath = "extension-path"; | 23 static const char *kExtensionPath = "extension-path"; |
23 | 24 |
24 // User Name | 25 // User Name |
25 static const char *kUsername = "username"; | 26 static const char *kUsername = "username"; |
26 | 27 |
27 // Policy files | 28 // Policy files |
(...skipping 21 matching lines...) Expand all Loading... |
49 | 50 |
50 // Syslogging is enabled by default if stdout is not a tty. These flags can | 51 // Syslogging is enabled by default if stdout is not a tty. These flags can |
51 // be used to override the default logic. | 52 // be used to override the default logic. |
52 static const char *kEnableSyslog = "enable-syslog"; | 53 static const char *kEnableSyslog = "enable-syslog"; |
53 static const char *kDisableSyslog = "disable-syslog"; | 54 static const char *kDisableSyslog = "disable-syslog"; |
54 | 55 |
55 static const char *kLibcrosLocation = "libcros-location"; | 56 static const char *kLibcrosLocation = "libcros-location"; |
56 | 57 |
57 static const char *kCallbackOrigin = "callback-origin"; | 58 static const char *kCallbackOrigin = "callback-origin"; |
58 | 59 |
| 60 // TODO(crosbug.com/14277): Remove option and assume it is true. |
| 61 static const char *kCryptohomeInitPkcs11 = |
| 62 "cryptohome-init-pkcs11"; |
| 63 |
59 } // namespace switches | 64 } // namespace switches |
60 | 65 |
61 // Return values: | 66 // Return values: |
62 // 0: Entd completed successfully and should not be restarted. | 67 // 0: Entd completed successfully and should not be restarted. |
63 // 1: Entd encountered a failure, but will probably fail again if restarted, | 68 // 1: Entd encountered a failure, but will probably fail again if restarted, |
64 // so please don't. | 69 // so please don't. |
65 // 2: Entd has NOT encountered a failure, but would like to be restarted. | 70 // 2: Entd has NOT encountered a failure, but would like to be restarted. |
66 // >2: Entd has encountered a failure, restarting may help. | 71 // >2: Entd has encountered a failure, restarting may help. |
67 // | 72 // |
68 // So, exit with a zero or one means leave it down, otherwise restart. | 73 // So, exit with a zero or one means leave it down, otherwise restart. |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 LOG(INFO) << "Allowing self-signed certs."; | 135 LOG(INFO) << "Allowing self-signed certs."; |
131 entd::Http::allow_self_signed_certs = true; | 136 entd::Http::allow_self_signed_certs = true; |
132 } | 137 } |
133 | 138 |
134 if (cl->HasSwitch(switches::kLibcrosLocation)) { | 139 if (cl->HasSwitch(switches::kLibcrosLocation)) { |
135 entd::Entd::libcros_location = cl->GetSwitchValueASCII( | 140 entd::Entd::libcros_location = cl->GetSwitchValueASCII( |
136 switches::kLibcrosLocation); | 141 switches::kLibcrosLocation); |
137 LOG(INFO) << "Setting libcros location: " << entd::Entd::libcros_location; | 142 LOG(INFO) << "Setting libcros location: " << entd::Entd::libcros_location; |
138 } | 143 } |
139 | 144 |
| 145 if (cl->HasSwitch(switches::kCryptohomeInitPkcs11)) { |
| 146 LOG(INFO) << "Expecting cryptohome to initialize the TPM token"; |
| 147 entd::Tpm::cryptohome_init_pkcs11 = true; |
| 148 } |
| 149 |
140 if (cl->HasSwitch(switches::kAllowFileIO)) { | 150 if (cl->HasSwitch(switches::kAllowFileIO)) { |
141 LOG(INFO) << "Allowing File IO."; | 151 LOG(INFO) << "Allowing File IO."; |
142 entd::Entd::allow_file_io = true; | 152 entd::Entd::allow_file_io = true; |
143 } | 153 } |
144 | 154 |
145 if (!root_ca_file.empty()) { | 155 if (!root_ca_file.empty()) { |
146 LOG(INFO) << "Setting root CA file: " << root_ca_file; | 156 LOG(INFO) << "Setting root CA file: " << root_ca_file; |
147 entd::Http::root_ca_file = root_ca_file; | 157 entd::Http::root_ca_file = root_ca_file; |
148 } | 158 } |
149 | 159 |
(...skipping 26 matching lines...) Expand all Loading... |
176 if (!manifest.empty()) | 186 if (!manifest.empty()) |
177 d.SetManifestFile(manifest); | 187 d.SetManifestFile(manifest); |
178 | 188 |
179 if (!policy.empty()) | 189 if (!policy.empty()) |
180 d.SetPolicyFile(policy); | 190 d.SetPolicyFile(policy); |
181 | 191 |
182 uint32_t rv = d.Run(); | 192 uint32_t rv = d.Run(); |
183 LOG(INFO) << "Exiting entd with code: " << rv; | 193 LOG(INFO) << "Exiting entd with code: " << rv; |
184 return rv; | 194 return rv; |
185 } | 195 } |
OLD | NEW |