Skip to content

Commit 29f51dc

Browse files
edjeechrome-bot
authored andcommitted
keygeneration: add --no-pk option for UEFI key generation
In case PK has been generated in HSM, no need to generate them in software. BUG=b:62189155 TEST=See CL:*630434. BRANCH=none Change-Id: I2180b340e992b678e46920a1142d3b7101c8158f Reviewed-on: https://chromium-review.googlesource.com/1071242 Commit-Ready: Edward Jee <edjee@google.com> Tested-by: Edward Jee <edjee@google.com> Reviewed-by: Mike Frysinger <vapier@chromium.org>
1 parent 41c585e commit 29f51dc

2 files changed

Lines changed: 26 additions & 16 deletions

File tree

scripts/keygeneration/create_new_keys.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ main() {
177177

178178
if [[ "${uefi_keys}" == "true" ]]; then
179179
mkdir -p uefi
180-
"${SCRIPT_DIR}"/uefi/create_new_uefi_keys.sh uefi
180+
"${SCRIPT_DIR}"/uefi/create_new_uefi_keys.sh --output uefi
181181
fi
182182

183183
if [[ "${setperms}" == "true" ]]; then

scripts/keygeneration/uefi/create_new_uefi_keys.sh

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,18 @@
88

99
usage() {
1010
cat <<EOF
11-
Usage: ${PROG} <OUTPUT_DIR>
11+
Usage: ${PROG} [options]
1212
1313
Generate key pairs for UEFI secure boot.
14+
15+
Options:
16+
--output <dir> Where to write the keys (default is cwd).
17+
The base name must be '.../uefi'.
18+
--no-pk Do not generate PK.
1419
EOF
1520

1621
if [[ $# -ne 0 ]]; then
17-
die "$*"
22+
die "unknown option $*"
1823
else
1924
exit 0
2025
fi
@@ -23,28 +28,31 @@ EOF
2328
main() {
2429
set -e
2530

31+
local generate_pk="true"
32+
local output_dir="${PWD}"
33+
2634
while [[ $# -gt 0 ]]; do
2735
case $1 in
36+
--output)
37+
output_dir="$2"
38+
shift
39+
;;
40+
--no-pk)
41+
info "Will not generate PK."
42+
generate_pk="false"
43+
;;
2844
-h|--help)
2945
usage
3046
;;
31-
-*)
32-
usage "Unknown option: $1"
33-
;;
3447
*)
35-
break
48+
usage "Unknown option: $1"
3649
;;
3750
esac
51+
shift
3852
done
3953

40-
if [[ $# -ne 1 ]]; then
41-
usage "Missing output directory"
42-
fi
43-
44-
local dir="$1"
45-
46-
check_uefi_key_dir_name "${dir}"
47-
pushd "${dir}" >/dev/null || die "Wrong output directory name"
54+
check_uefi_key_dir_name "${output_dir}"
55+
pushd "${output_dir}" >/dev/null || die "Wrong output directory name"
4856

4957
if [[ ! -e "${UEFI_VERSION_FILE}" ]]; then
5058
echo "No version file found. Creating default ${UEFI_VERSION_FILE}."
@@ -59,7 +67,9 @@ main() {
5967
db_key_version=$(get_uefi_version "db_key_version")
6068
db_child_key_version=$(get_uefi_version "db_child_key_version")
6169

62-
make_pk_keypair "${pk_key_version}"
70+
if [[ "${generate_pk}" == "true" ]]; then
71+
make_pk_keypair "${pk_key_version}"
72+
fi
6373
make_kek_keypair "${kek_key_version}"
6474
make_db_keypair "${db_key_version}"
6575
make_db_child_keypair "${db_key_version}" "${db_child_key_version}"

0 commit comments

Comments
 (0)