| OLD | NEW |
| 1 #!/bin/sh | 1 #!/bin/sh |
| 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 # This script is temporary front-end to entd. It validates the policy's | 6 # This script is temporary front-end to entd. It validates the policy's |
| 7 # signature before starting the daemon. If the signing certificate or | 7 # signature before starting the daemon. If the signing certificate or |
| 8 # signature to not validate, then this script will log an error to syslog | 8 # signature to not validate, then this script will log an error to syslog |
| 9 # and exit without starting entd. | 9 # and exit without starting entd. |
| 10 # | 10 # |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 log "Can't start enterprise daemon, no username provided." | 251 log "Can't start enterprise daemon, no username provided." |
| 252 return 1 | 252 return 1 |
| 253 fi | 253 fi |
| 254 | 254 |
| 255 local domain="$(echo "$FLAGS_username" | cut -f2 -d'@')" | 255 local domain="$(echo "$FLAGS_username" | cut -f2 -d'@')" |
| 256 if [ "$domain" = "gmail.com" ]; then | 256 if [ "$domain" = "gmail.com" ]; then |
| 257 log "Enterprise daemon disabled for gmail.com users." | 257 log "Enterprise daemon disabled for gmail.com users." |
| 258 return 1 | 258 return 1 |
| 259 fi | 259 fi |
| 260 | 260 |
| 261 local session_path="$extension/session-id.json" |
| 262 # Remove session-id file as it should be ignored when verifying |
| 263 # the signature. |
| 264 log "removing $session_path" |
| 265 rm -f "$session_path" |
| 266 |
| 261 if ! cmd_verify "$extension"; then | 267 if ! cmd_verify "$extension"; then |
| 262 return 1 | 268 return 1 |
| 263 fi | 269 fi |
| 264 | 270 |
| 271 # Remove session-id.json at exit to enable the extension to remain |
| 272 # backward compatible with earlier versions of entd/entwife. |
| 273 trap "rm -f $session_path" EXIT TERM |
| 274 |
| 275 local session_id=$(head -c 8 /dev/urandom | openssl md5) |
| 276 |
| 277 cat > "$session_path" <<EOF |
| 278 { |
| 279 "session_id": "$session_id" |
| 280 } |
| 281 EOF |
| 282 |
| 265 local root_ca_option="" | 283 local root_ca_option="" |
| 266 if [ -f "$extension/$ROOT_CA_FILE" ]; then | 284 if [ -f "$extension/$ROOT_CA_FILE" ]; then |
| 267 root_ca_option="--root-ca-file=$extension/$ROOT_CA_FILE" | 285 root_ca_option="--root-ca-file=$extension/$ROOT_CA_FILE" |
| 268 fi | 286 fi |
| 269 | 287 |
| 270 local extid="$(basename $(dirname "$extension"))" | 288 local extid="$(basename $(dirname "$extension"))" |
| 271 | 289 |
| 272 exec "$FLAGS_entd" --utility="$FLAGS_utility" "$root_ca_option" \ | 290 # Run entd in the background and wait on it - this allows the |
| 291 # shell interpreter to catch TERM signal and clean up session_path. |
| 292 "$FLAGS_entd" --utility="$FLAGS_utility" "$root_ca_option" \ |
| 273 --policy="$extension/policy.js" --manifest="$extension/manifest.json" \ | 293 --policy="$extension/policy.js" --manifest="$extension/manifest.json" \ |
| 274 --username="$FLAGS_username" --callback-origin=chrome-extension://"$extid" | 294 --username="$FLAGS_username" --callback-origin=chrome-extension://"$extid" \ |
| 295 --session-id="$session_id" & |
| 296 local pid=$! |
| 297 wait $pid |
| 275 } | 298 } |
| 276 | 299 |
| 277 cmd_disapprove() { | 300 cmd_disapprove() { |
| 278 if [ -f "$FLAGS_user_var/$APPROVED_CA" ]; then | 301 if [ -f "$FLAGS_user_var/$APPROVED_CA" ]; then |
| 279 log "Removing enterprise certificate authority" | 302 log "Removing enterprise certificate authority" |
| 280 rm -f "$FLAGS_user_var/$APPROVED_CA" | 303 rm -f "$FLAGS_user_var/$APPROVED_CA" |
| 281 else | 304 else |
| 282 log "No enterprise certificate authority has been approved." | 305 log "No enterprise certificate authority has been approved." |
| 283 fi | 306 fi |
| 284 } | 307 } |
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 } | 711 } |
| 689 EOF | 712 EOF |
| 690 | 713 |
| 691 "$FLAGS_entd" --policy="$scriptfile" --manifest="$extension/manifest.json" \ | 714 "$FLAGS_entd" --policy="$scriptfile" --manifest="$extension/manifest.json" \ |
| 692 --username=user@example.com --allow-dirty-exit 2>/dev/null | 715 --username=user@example.com --allow-dirty-exit 2>/dev/null |
| 693 | 716 |
| 694 rm "$scriptfile" | 717 rm "$scriptfile" |
| 695 } | 718 } |
| 696 | 719 |
| 697 main "$@" | 720 main "$@" |
| OLD | NEW |