123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #!/bin/bash -eux
- # Copyright 2015 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.
- me=${0##*/}
- TMP="$me.tmp"
- # Work in scratch directory
- cd "$OUTDIR"
- # Test 'futility show' against expected output
- SHOW_FILES="
- tests/devkeys/root_key.vbpubk
- tests/devkeys/root_key.vbprivk
- tests/devkeys/kernel.keyblock
- tests/futility/data/fw_vblock.bin
- tests/futility/data/fw_gbb.bin
- tests/futility/data/bios_zgb_mp.bin
- tests/futility/data/bios_mario_mp.bin
- tests/futility/data/kern_preamble.bin
- tests/futility/data/sample.vbpubk2
- tests/futility/data/sample.vbprik2
- tests/testkeys/key_rsa2048.pem
- tests/testkeys/key_rsa8192.pub.pem
- "
- for file in $SHOW_FILES; do
- outfile="show.${file//\//_}"
- gotfile="${OUTDIR}/${outfile}"
- wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
- ${FUTILITY} show "${SRCDIR}/${file}" | tee "${gotfile}"
- # Uncomment this to update the expected output
- #cp ${gotfile} ${wantfile}
- diff ${wantfile} ${gotfile}
- done
- # Test 'futility vbutil_key' against expected output
- VBUTIL_KEY_FILES="
- tests/devkeys/root_key.vbpubk
- tests/devkeys/root_key.vbprivk
- "
- for file in $VBUTIL_KEY_FILES; do
- outfile="vbutil_key.${file//\//_}"
- gotfile="${OUTDIR}/${outfile}"
- wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
- ${FUTILITY} vbutil_key --unpack "${SRCDIR}/${file}" | tee "${gotfile}"
- # Uncomment this to update the expected output
- #cp ${gotfile} ${wantfile}
- diff ${wantfile} ${gotfile}
- done
- # Test 'futility vbutil_keyblock' against expected output
- file="tests/devkeys/kernel.keyblock"
- outfile="vbutil_keyblock.${file//\//_}"
- gotfile="${OUTDIR}/${outfile}"
- wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
- ${FUTILITY} vbutil_keyblock --unpack "${SRCDIR}/${file}" \
- --signpubkey "${SRCDIR}/tests/devkeys/kernel_subkey.vbpubk" \
- | tee "${gotfile}"
- # Uncomment this to update the expected output
- #cp ${gotfile} ${wantfile}
- diff ${wantfile} ${gotfile}
- # Test 'futility vbutil_firmware' against expected output
- KEYDIR=${SRCDIR}/tests/devkeys
- outfile="vbutil_firmware.verify"
- gotfile="${OUTDIR}/${outfile}"
- wantfile="${SRCDIR}/tests/futility/expect_output/${outfile}"
- # Create a firmware blob and vblock. Version and flags are just
- # arbitrary non-zero numbers so we can verify they're printed
- # properly.
- dd bs=1024 count=16 if=/dev/urandom of=${TMP}.fw_main
- ${FUTILITY} vbutil_firmware --vblock ${TMP}.vblock.old \
- --keyblock ${KEYDIR}/firmware.keyblock \
- --signprivate ${KEYDIR}/firmware_data_key.vbprivk \
- --version 12 \
- --fv ${TMP}.fw_main \
- --kernelkey ${KEYDIR}/kernel_subkey.vbpubk \
- --flags 42
- # Verify
- ${FUTILITY} vbutil_firmware --verify ${TMP}.vblock.old \
- --signpubkey ${KEYDIR}/root_key.vbpubk \
- --fv ${TMP}.fw_main | tee "${gotfile}"
- # Uncomment this to update the expected output
- #cp ${gotfile} ${wantfile}
- diff ${wantfile} ${gotfile}
- # cleanup
- rm -rf ${TMP}*
- exit 0
|