summaryrefslogtreecommitdiff
path: root/futility/cmd_vbutil_firmware.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2016-06-17 10:48:16 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-08-03 19:40:41 -0700
commit814aaf09ceecddb16a01e1cbe0df4299b83b5699 (patch)
tree2d8cdeed4ee062c83dd6e84a341ff53cf343fd1c /futility/cmd_vbutil_firmware.c
parent31f04ada58bc67680ec9d62a404365803c76ffc1 (diff)
downloadvboot-814aaf09ceecddb16a01e1cbe0df4299b83b5699.tar.gz
futility: Create signatures using vboot 2.0 APIsstabilize-8688.B
Refactor futility to use only vboot 2.0 APIs to create signatures. BUG=chromium:611535 BRANCH=none TEST=make runtests Change-Id: I176e7f424fa556d34d8fe691df5681f1e43210ce Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/356128 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'futility/cmd_vbutil_firmware.c')
-rw-r--r--futility/cmd_vbutil_firmware.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/futility/cmd_vbutil_firmware.c b/futility/cmd_vbutil_firmware.c
index 66a05c19..b187d270 100644
--- a/futility/cmd_vbutil_firmware.c
+++ b/futility/cmd_vbutil_firmware.c
@@ -92,8 +92,6 @@ static int Vblock(const char *outfile, const char *keyblock_file,
VbPrivateKey *signing_key;
VbPublicKey *kernel_subkey;
- VbSignature *body_sig;
- VbFirmwarePreambleHeader *preamble;
VbKeyBlockHeader *key_block;
uint64_t key_block_size;
uint8_t *fv_data;
@@ -127,6 +125,12 @@ static int Vblock(const char *outfile, const char *keyblock_file,
VbExError("Error reading signing key.\n");
return 1;
}
+ struct vb2_private_key *signing_key2 =
+ vb2_read_private_key(signprivate);
+ if (!signing_key2) {
+ VbExError("Error reading signing key.\n");
+ return 1;
+ }
kernel_subkey = PublicKeyRead(kernelkey_file);
if (!kernel_subkey) {
@@ -142,7 +146,8 @@ static int Vblock(const char *outfile, const char *keyblock_file,
VbExError("Empty firmware volume file\n");
return 1;
}
- body_sig = CalculateSignature(fv_data, fv_size, signing_key);
+ struct vb2_signature *body_sig =
+ vb2_calculate_signature(fv_data, fv_size, signing_key2);
if (!body_sig) {
VbExError("Error calculating body signature\n");
return 1;
@@ -150,10 +155,10 @@ static int Vblock(const char *outfile, const char *keyblock_file,
free(fv_data);
/* Create preamble */
- preamble = CreateFirmwarePreamble(version,
- kernel_subkey,
- body_sig,
- signing_key, preamble_flags);
+ struct vb2_fw_preamble *preamble =
+ vb2_create_fw_preamble(version,
+ (struct vb2_packed_key *)kernel_subkey,
+ body_sig, signing_key2, preamble_flags);
if (!preamble) {
VbExError("Error creating preamble.\n");
return 1;
@@ -284,7 +289,7 @@ static int Verify(const char *infile, const char *signpubkey,
/* TODO: verify body size same as signature size */
/* Verify body */
- if (flags & VB_FIRMWARE_PREAMBLE_USE_RO_NORMAL) {
+ if (flags & VB2_FIRMWARE_PREAMBLE_USE_RO_NORMAL) {
printf("Preamble requests USE_RO_NORMAL;"
" skipping body verification.\n");
} else if (VB2_SUCCESS ==