1#!/bin/bash 2# Copyright 2012 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 6# Script to increment kernel data key for firmware updates. 7# Used when revving versions for a firmware update. 8 9# Load common constants and variables. 10# shellcheck source=common.sh 11. "$(dirname "$0")/common.sh" 12 13# Abort on errors. 14set -e 15 16if [ $# -ne 1 ]; then 17 cat <<EOF 18 Usage: $0 <keyset directory> 19 20 Increments the kernel data key in the specified keyset. 21EOF 22 exit 1 23fi 24 25KEY_DIR=$1 26 27main() { 28 load_current_versions "${KEY_DIR}" 29 new_kernkey_ver=$(increment_version "${KEY_DIR}" "kernel_key_version") 30 31 cd "${KEY_DIR}" 32 backup_existing_kernel_data_keys ${CURR_FIRM_VER} ${CURR_KERNKEY_VER} 33 34 cat <<EOF 35Generating new kernel data version, and new kernel keyblock. 36 37New Kernel data key version: ${new_kernkey_ver}. 38EOF 39 make_pair kernel_data_key ${KERNEL_DATAKEY_ALGOID} ${new_kernkey_ver} 40 make_keyblock kernel ${KERNEL_KEYBLOCK_MODE} kernel_data_key kernel_subkey 41 42 write_updated_version_file ${CURR_FIRMKEY_VER} ${CURR_FIRM_VER} \ 43 ${new_kernkey_ver} ${CURR_KERN_VER} 44} 45 46main "$@" 47