# Copyright (c) 2012 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.

description     "create validated caches of lockbox protected files"
author          "chromium-os-dev@chromium.org"

# Runs before ui.conf to ensure the cache is ready if possible.
start on starting ui

env LOCKBOX_CACHE_DIR=/var/run/lockbox
env LOCKBOX_NVRAM_FILE=/tmp/lockbox.nvram

env INSTALL_ATTRS_CACHE=/var/run/lockbox/install_attributes.pb
env INSTALL_ATTRS_FILE=/home/.shadow/install_attributes.pb

pre-start script
  bootstat lockbox-cache-start
  umask 022  # create the cache world-readable.
  mkdir -p -m 0711 $LOCKBOX_CACHE_DIR
  # /sbin/mount-encrypted emits the TPM NVRAM contents, if they exist, to a
  # file on tmpfs which is used to authenticate the lockbox during cache
  # creation.
  if [ -O $LOCKBOX_NVRAM_FILE ]; then
    bootstat lockbox-cache-exec
    lockbox-cache --cache=$INSTALL_ATTRS_CACHE \
                  --nvram=$LOCKBOX_NVRAM_FILE \
                  --lockbox=$INSTALL_ATTRS_FILE
    # There are no other consumers; remove the nvram data.
    rm $LOCKBOX_NVRAM_FILE
  # For VMs and legacy firmware devices, pretend like lockbox is supported.
  elif crossystem "mainfw_type?nonchrome"; then
    cp $INSTALL_ATTRS_FILE $INSTALL_ATTRS_CACHE
  fi
  bootstat lockbox-cache-end
end script
