From e81d9bc79796eca41f182ab3fb79497d6084fa92 Mon Sep 17 00:00:00 2001 From: Joel Kitching Date: Thu, 13 Feb 2020 18:59:52 +0800 Subject: vboot: fix up load_kernel_test to store subkey in workbuf Since CL:1651221, kernel subkey has been stored and accessed as part of vboot2 workbuf. We forgot to update the utility load_kernel_test to follow suit. BUG=b:124141368, chromium:1038260 TEST=make clean && make runtests BRANCH=none Change-Id: I67686dc9dd555d3cce9d1be287b56c108460239b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2054268 Commit-Queue: Joel Kitching Tested-by: Joel Kitching Reviewed-by: Julius Werner --- utility/load_kernel_test.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/utility/load_kernel_test.c b/utility/load_kernel_test.c index cde3f610..14e4e613 100644 --- a/utility/load_kernel_test.c +++ b/utility/load_kernel_test.c @@ -221,18 +221,18 @@ int main(int argc, char* argv[]) sd = vb2_get_sd(ctx); sd->vbsd = shared; - /* Copy kernel subkey to VBSD, if any */ + /* Copy kernel subkey to workbuf, if any */ if (key_blob) { - struct vb2_packed_key *dst = (struct vb2_packed_key *) - (shared_data + - vb2_wb_round_up(sizeof(VbSharedDataHeader))); - shared->kernel_subkey.key_offset = - (uintptr_t)dst - (uintptr_t)&shared->kernel_subkey; - shared->kernel_subkey.key_size = key_blob->key_size; - shared->kernel_subkey.algorithm = key_blob->algorithm; - shared->kernel_subkey.key_version = key_blob->key_version; - memcpy(vb2_packed_key_data_mutable(dst), - vb2_packed_key_data(key_blob), key_blob->key_size); + struct vb2_workbuf wb; + struct vb2_packed_key *dst; + uint32_t kernkey_size = + key_blob->key_offset + key_blob->key_size; + vb2_workbuf_from_ctx(ctx, &wb); + dst = vb2_workbuf_alloc(&wb, kernkey_size); + memcpy(dst, key_blob, kernkey_size); + vb2_set_workbuf_used(ctx, vb2_offset_of(sd, wb.buf)); + sd->kernel_key_offset = vb2_offset_of(sd, dst); + sd->kernel_key_size = kernkey_size; } /* Free the key blob, now that we're done with it */ -- cgit v1.2.1