diff options
author | Randall Spangler <rspangler@chromium.org> | 2016-06-30 11:24:24 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-09-06 22:02:18 -0700 |
commit | a62ffa8d61de19d8992c32a886e44c0aecb7e01b (patch) | |
tree | a7141c1bf7db0dde09921c499b1b0a5e09545d8c /futility | |
parent | 0efc4f3ee111d28cf22060a22ad591427dc7eb7f (diff) | |
download | vboot-a62ffa8d61de19d8992c32a886e44c0aecb7e01b.tar.gz |
vboot: replace CreateKernelPreamble() with vboot2 equivalent
Continued refactoring of host library to kernel style / vboot2 structs.
BUG=chromium:611535
BRANCH=none
TEST=make runtests
Change-Id: Ifed376812ed7690eea1ec0dfab958e836f7724a0
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/363951
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'futility')
-rw-r--r-- | futility/vb1_helper.c | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/futility/vb1_helper.c b/futility/vb1_helper.c index 314fd02e..208fac14 100644 --- a/futility/vb1_helper.c +++ b/futility/vb1_helper.c @@ -411,43 +411,40 @@ uint8_t *SignKernelBlob(uint8_t *kernel_blob, uint64_t kernel_size, struct vb2_private_key *signpriv_key, uint32_t flags, uint64_t *vblock_size_ptr) { - VbSignature *body_sig; - VbKernelPreambleHeader *preamble; - uint64_t min_size = padding > keyblock->keyblock_size + /* Make sure the preamble fills up the rest of the required padding */ + uint32_t min_size = padding > keyblock->keyblock_size ? padding - keyblock->keyblock_size : 0; - void *outbuf; - uint64_t outsize; /* Sign the kernel data */ - body_sig = (VbSignature *)vb2_calculate_signature(kernel_blob, - kernel_size, - signpriv_key); + struct vb2_signature *body_sig = vb2_calculate_signature(kernel_blob, + kernel_size, + signpriv_key); if (!body_sig) { fprintf(stderr, "Error calculating body signature\n"); return NULL; } /* Create preamble */ - preamble = CreateKernelPreamble(version, - kernel_body_load_address, - g_ondisk_bootloader_addr, - g_bootloader_size, - body_sig, - g_ondisk_vmlinuz_header_addr, - g_vmlinuz_header_size, - flags, - min_size, - signpriv_key); + struct vb2_kernel_preamble *preamble = + vb2_create_kernel_preamble(version, + kernel_body_load_address, + g_ondisk_bootloader_addr, + g_bootloader_size, + body_sig, + g_ondisk_vmlinuz_header_addr, + g_vmlinuz_header_size, + flags, + min_size, + signpriv_key); if (!preamble) { fprintf(stderr, "Error creating preamble.\n"); return 0; } - outsize = keyblock->keyblock_size + preamble->preamble_size; - outbuf = malloc(outsize); - Memset(outbuf, 0, outsize); - Memcpy(outbuf, keyblock, keyblock->keyblock_size); - Memcpy(outbuf + keyblock->keyblock_size, + uint32_t outsize = keyblock->keyblock_size + preamble->preamble_size; + void *outbuf = calloc(outsize, 1); + memcpy(outbuf, keyblock, keyblock->keyblock_size); + memcpy(outbuf + keyblock->keyblock_size, preamble, preamble->preamble_size); if (vblock_size_ptr) |