Index: scripts/keygeneration/common.sh |
diff --git a/scripts/keygeneration/common.sh b/scripts/keygeneration/common.sh |
index 0e1a6dfd54552710314b158ba17430fc609bfea3..1d08fdbe38206b7a76ae526fab20e602d47b01f5 100755 |
--- a/scripts/keygeneration/common.sh |
+++ b/scripts/keygeneration/common.sh |
@@ -23,6 +23,27 @@ function alg_to_keylen { |
echo $(( 1 << (10 + ($1 / 3)) )) |
} |
+# Default alrogithms. |
+ROOT_KEY_ALGOID=11 |
+RECOVERY_KEY_ALGOID=11 |
+ |
+FIRMWARE_DATAKEY_ALGOID=7 |
+DEV_FIRMWARE_DATAKEY_ALGOID=7 |
+ |
+RECOVERY_KERNEL_ALGOID=11 |
+INSTALLER_KERNEL_ALGOID=11 |
+KERNEL_SUBKEY_ALGOID=7 |
+KERNEL_DATAKEY_ALGOID=4 |
+ |
+# Keyblock modes determine which boot modes a signing key is valid for use |
+# in verification. |
+FIRMWARE_KEYBLOCK_MODE=7 |
+DEV_FIRMWARE_KEYBLOCK_MODE=6 # Only allow in dev mode. |
+RECOVERY_KERNEL_KEYBLOCK_MODE=11 |
+KERNEL_KEYBLOCK_MODE=7 # Only allow in non-recovery. |
+INSTALLER_KERNEL_KEYBLOCK_MODE=10 # Only allow in Dev + Recovery. |
+ |
+ |
# Emit .vbpubk and .vbprivk using given basename and algorithm |
# NOTE: This function also appears in ../../utility/dev_make_keypair. Making |
# the two implementations the same would require some common.sh, which is more |
@@ -32,9 +53,10 @@ function alg_to_keylen { |
function make_pair { |
local base=$1 |
local alg=$2 |
+ local key_version=${3:-1} |
local len=$(alg_to_keylen $alg) |
- echo "creating $base keypair..." |
+ echo "creating $base keypair (version = $key_version)..." |
# make the RSA keypair |
openssl genrsa -F4 -out "${base}_${len}.pem" $len |
@@ -48,7 +70,7 @@ function make_pair { |
vbutil_key \ |
--pack "${base}.vbpubk" \ |
--key "${base}_${len}.keyb" \ |
- --version 1 \ |
+ --version "${key_version}" \ |
--algorithm $alg |
# wrap the private key |