diff options
author | Randall Spangler <rspangler@chromium.org> | 2016-06-17 10:48:16 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-03 19:40:41 -0700 |
commit | 814aaf09ceecddb16a01e1cbe0df4299b83b5699 (patch) | |
tree | 2d8cdeed4ee062c83dd6e84a341ff53cf343fd1c /futility/cmd_vbutil_firmware.c | |
parent | 31f04ada58bc67680ec9d62a404365803c76ffc1 (diff) | |
download | vboot-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.c | 21 |
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 == |