summaryrefslogtreecommitdiff
path: root/tests/futility/test_show_vs_verify.sh
blob: c0c0872c3fde3978419616e7a69884c51827b917 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash -eux
# Copyright 2014 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"

# some stuff we'll need
DEVKEYS="${SRCDIR}/tests/devkeys"

# The show command exits with 0 if the data is consistent.
# The verify command exits with 0 only if all the data is verified.

####  keyblock

"${FUTILITY}" show "${DEVKEYS}/firmware.keyblock"

if "${FUTILITY}" verify "${DEVKEYS}/firmware.keyblock" ; then false; fi

"${FUTILITY}" verify "${DEVKEYS}/firmware.keyblock" \
  --publickey "${DEVKEYS}/root_key.vbpubk"


#### firmware vblock

# Get some bits to look at
"${FUTILITY}" dump_fmap -x "${SCRIPT_DIR}/futility/data/bios_peppy_mp.bin" \
  "GBB:${TMP}.gbb" "VBLOCK_A:${TMP}.vblock_a" "FW_MAIN_A:${TMP}.fw_main_a"
"${FUTILITY}" gbb -g -k "${TMP}.rootkey" "${TMP}.gbb"


"${FUTILITY}" show "${TMP}.vblock_a"

"${FUTILITY}" show "${TMP}.vblock_a" --publickey "${TMP}.rootkey"

"${FUTILITY}" show "${TMP}.vblock_a" \
  --publickey "${TMP}.rootkey" \
  --fv "${TMP}.fw_main_a"

if "${FUTILITY}" verify "${TMP}.vblock_a" ; then false ; fi

if "${FUTILITY}" verify "${TMP}.vblock_a" \
  --publickey "${TMP}.rootkey" ; then false ; fi

"${FUTILITY}" verify "${TMP}.vblock_a" \
  --publickey "${TMP}.rootkey" \
  --fv "${TMP}.fw_main_a"


#### kernel partition

"${FUTILITY}" show "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin"

"${FUTILITY}" show "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" \
  --publickey "${DEVKEYS}/kernel_subkey.vbpubk"

"${FUTILITY}" show "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" \
  --publickey "${DEVKEYS}/recovery_key.vbpubk"

if "${FUTILITY}" verify "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" ; \
  then false ; fi

if "${FUTILITY}" verify "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" \
  --publickey "${DEVKEYS}/kernel_subkey.vbpubk" ; then false ; fi

"${FUTILITY}" verify "${SCRIPT_DIR}/futility/data/rec_kernel_part.bin" \
  --publickey "${DEVKEYS}/recovery_key.vbpubk"


# cleanup
rm -rf "${TMP}"*
exit 0