# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Starts the cryptohome daemon, which handles mounting and
# unmounting users' encrypted home directories.  Also supports
# offline login checks.

[Unit]
Description=Cryptohome Daemon
PartOf=boot-services.target
After=boot-services.target tcsd.service chapsd.service
Requisite=tcsd.service chapsd.service

[Service]
BusName=org.chromium.Cryptohome
Restart=on-failure
Type=forking

# If attestation.epb still exists in its old location, move it to the new
# location where cryptohome will look for it.
ExecStartPre=-/bin/mv /mnt/stateful_partition/home/.shadow/attestation.epb \
	/mnt/stateful_partition/unencrypted/preserve/attestation.epb

ExecStart=/usr/sbin/cryptohomed --noclose

# Any long-running invocations of the client must first be terminated.
ExecStopPost=/usr/bin/pkill -x -TERM cryptohome
