1#!/bin/bash -eux 2# Copyright 2014 The ChromiumOS Authors 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6me=${0##*/} 7TMP="$me.tmp" 8 9# Work in scratch directory 10cd "$OUTDIR" 11 12KEYDIR="${SRCDIR}/tests/devkeys" 13 14# create a firmware blob 15dd bs=1024 count=16 if=/dev/urandom of="${TMP}.fw_main" 16 17# try the old way 18"${FUTILITY}" vbutil_firmware --vblock "${TMP}.vblock.old" \ 19 --keyblock "${KEYDIR}/firmware.keyblock" \ 20 --signprivate "${KEYDIR}/firmware_data_key.vbprivk" \ 21 --version 12 \ 22 --fv "${TMP}.fw_main" \ 23 --kernelkey "${KEYDIR}/kernel_subkey.vbpubk" \ 24 --flags 42 25 26# verify 27"${FUTILITY}" verify --type fw_pre \ 28 --publickey "${KEYDIR}/root_key.vbpubk" \ 29 --fv "${TMP}.fw_main" \ 30 "${TMP}.vblock.old" 31 32# and the new way 33"${FUTILITY}" --debug sign \ 34 --keyset "${KEYDIR}" \ 35 --version 12 \ 36 --fv "${TMP}.fw_main" \ 37 --flags 42 \ 38 "${TMP}.vblock.new" 39 40# They should match 41cmp "${TMP}.vblock.old" "${TMP}.vblock.new" 42 43# cleanup 44rm -rf "${TMP}"* 45exit 0 46