1#!/bin/sh
2
3# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7# Abort on error
8set -e
9
10# This script is obsolete. The required functionality is now provided by the
11# compiled futility executable, so all this does is invoke that. This wrapper
12# should go away Real Soon Now.
13
14
15# Which futility to run?
16[ -z "$FUTILITY" ] && FUTILITY=futility
17
18# required
19SRC_FD=$1
20DST_FD=$2
21FIRMWARE_DATAKEY=$3
22FIRMWARE_KEYBLOCK=$4
23DEV_FIRMWARE_DATAKEY=$5
24DEV_FIRMWARE_KEYBLOCK=$6
25KERNEL_SUBKEY=$7
26# optional
27VERSION=$8
28PREAMBLE_FLAG=$9
29LOEM_OUTPUT_DIR=${10}
30LOEMID=${11}
31
32if [ ! -e $DEV_FIRMWARE_KEYBLOCK ] || [ ! -e $DEV_FIRMWARE_DATAKEY ] ; then
33  echo "No dev firmware keyblock/datakey found. Reusing normal keys."
34  DEV_FIRMWARE_KEYBLOCK="$FIRMWARE_KEYBLOCK"
35  DEV_FIRMWARE_DATAKEY="$FIRMWARE_DATAKEY"
36fi
37
38# pass optional args
39[ -n "$VERSION" ] && VERSION="--version $VERSION"
40[ -n "$PREAMBLE_FLAG" ] && PREAMBLE_FLAG="--flags $PREAMBLE_FLAG"
41[ -n "$LOEM_OUTPUT_DIR" ] && LOEM_OUTPUT_DIR="--loemdir $LOEM_OUTPUT_DIR"
42[ -n "$LOEMID" ] && LOEMID="--loemid $LOEMID"
43
44exec ${FUTILITY} sign \
45  --signprivate $FIRMWARE_DATAKEY \
46  --keyblock $FIRMWARE_KEYBLOCK \
47  --devsign $DEV_FIRMWARE_DATAKEY \
48  --devkeyblock $DEV_FIRMWARE_KEYBLOCK \
49  --kernelkey $KERNEL_SUBKEY \
50  $VERSION \
51  $PREAMBLE_FLAG \
52  $LOEM_OUTPUT_DIR \
53  $LOEMID \
54  $SRC_FD \
55  $DST_FD
56
57echo UNABLE TO EXEC FUTILITY 1>&2
58exit 1
59