summaryrefslogtreecommitdiff
path: root/futility
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2016-06-30 11:24:24 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-09-06 22:02:18 -0700
commita62ffa8d61de19d8992c32a886e44c0aecb7e01b (patch)
treea7141c1bf7db0dde09921c499b1b0a5e09545d8c /futility
parent0efc4f3ee111d28cf22060a22ad591427dc7eb7f (diff)
downloadvboot-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.c43
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)