History log of /external/vboot_reference/firmware/lib/vboot_common.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
80e779d50b52cd97c9d5896a3b75fa8118ee488f 04-Feb-2015 Furquan Shaikh <furquan@google.com> kernel flags: Add flags field to kernel preamble.

1. Increase kernel preamble revision from 2.1 to 2.2.
2. Add flags field to kernel preamble.
3. Update futility to accept flags parameter for vbutil_kernel and
cmd_sign for kernel.
4. Pass in an extra flags field to SignKernelBlob and
CreateKernelPreamble.

BUG=chrome-os-partner:35861
BRANCH=None
TEST=1) "make runalltests" completes successfully. 2) vboot_reference
compiles successfully for ryu. 3) Verified flags field in header using
futility show.

Change-Id: If9f06f98778a7339194c77090cbef4807d5e34e2
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/245950
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
f1f53b3732f235da15a50080db6e7bbd4666e390 08-Jan-2015 Shelley Chen <shchen@chromium.org> vboot: Add flag to vbutil_kernel for reconstruction of vmlinuz image

Adding functionality to allow for rebuilding of vmlinuz after it
has been processed into vblock and header stripped. Basically appends
the 16-bit header of a vmlinuz image onto the end of the vblock.
BUG=chromium:438302
BRANCH=none
TEST=Successfully ran "make runalltests".
Also, ran:
1. Repack kernel block (so that 16-bit header is included):
"vbutil_kernel --pack kern_0 ..."
2. Verify kernel: "vbutil_kernel --verify kern_0 ... ". This should
be done before booting into kernel, but not necessary for it to work.
3. Rebuild vmlinuz image:
"vbutil_kernel --get-vmlinuz kern_0 --vmlinuz-out vm.out"
4. Set up kexec with vmlinuz (this should complete with no errors):
"kexec -l vm.out (other kernel cmd line args)"
5. Boot into kernel:
"kexec -e"

Change-Id: Iaa1582a1aedf70b43cdb3a56cde1fb248f1793d4
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/232750
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
4c3b4ea3d810a2ed907078a6b9a379442aaf6def 30-May-2014 Bill Richardson <wfrichar@chromium.org> Workaround for failing tests when DEBUG=1

Two changes here.

First are some failing assertions in tlcl.c. These have always failed, but
only when DEBUG=1, so no one noticed. I've opened a bug to find out why, but
it's blocking something else. We're refactoring anyway, so for now we'll
just comment around it.

Second is a null-pointer dereference in VbSharedDataSetKernelKey(). Again,
only when DEBUG=1.

BUG=chromium:379255
BRANCH=ToT
TEST=manual

cd src/platform/ec
\rm -rf build
DEBUG=1 make runtests

Change-Id: Ia5e0a742f75057b449f3c19b778c5d2f0408d7cd
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/202303
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
981cb2acdc2f26ae27732a4e590c326787936381 12-Aug-2013 Simon Glass <sjg@chromium.org> Enable vboot for sandbox and improve debugging/format strings

Some functions of vboot are disabled for sandbox because sandbox could not
support them. This has changed, so remove the sandbox #ifdefs in the code.

Some printf() strings cause warnings on sandbox - mostly that uin64_t is
not 'long long' on a 64-bit machine. The existing format strings in U-Boot
do not seem to take account of this, so add casts to remove the warnings.

Also add a few more debug strings to make it easier to see what is happening
in the vboot flow.

BUG=chrome-os-partner:21115
BRANCH=pit
TEST=manual
crosfw -b sandbox -V

See there are no warnings.

Change-Id: I86f90a693e4bd23fcacf6d48297dd32229348dd4
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/65621
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
0c3ba249abb1dc60f5ebabccf84ff13206440b83 29-Mar-2013 Bill Richardson <wfrichar@chromium.org> Massive refactoring of external header files.

This reduces the number of exported header files to the minimum needed by
the existing userspace utilities and firmware implementations.

BUG=chromium:221544
BRANCH=none
TEST=manual, trybots
CQ-DEPEND=CL:47019,CL:47022,CL:47023

sudo FEATURES=test emerge vboot_reference
FEATURES=test emerge-$BOARD \
vboot_reference \
chromeos-cryptohome \
chromeos-installer \
chromeos-u-boot \
peach-u-boot \
depthcharge

Change-Id: I2946cc2dbaf5459a6c5eca92ca57d546498e6d85
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47021
Reviewed-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
93943266c597ad66300445a04afa01270f2b5763 26-Feb-2013 Randall Spangler <rspangler@chromium.org> Split off modules required for VbInit() and VbSelectFirmware()

This makes it more obvious which modules and VbEx*() functions must be
implemented to call these entry points.

This change only moves functions between modules and adds two
link-test binaries; it doesn't change any functionality.

BUG=chromium-os:39262
BRANCH=none
TEST=make && make runtests

Change-Id: If3edf0b1989b631f0e7ad18de7ccdad8315181b5
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/44076
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
68f54d44756e8f0a777808b710a4ccc5d2ce353d 26-Jan-2013 Randall Spangler <rspangler@chromium.org> Reformat files to kernel style

No code changes, just reformatting.

BUG=none
BRANCH=none
TEST=make runtests

Change-Id: I30c7f74217c10ac7cc618aee30a22febe1e41f5c
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42053
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
0f872495cab2bcd8fc74f478bdbfd4293a67b47c 24-Jan-2013 Randall Spangler <rspangler@chromium.org> Remove unused vbutil_ec

EC verification is done via software sync; the EC doesn't do vboot on
its own.

BUG=chromium-os:38139
BRANCH=none
TEST=manual

make runtests
emerge-link vboot_reference chromeos-u-boot chromeos-bootimage

Change-Id: I6e5c0db8fc54b474f044d37c2603a9c116747a85
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41953
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
fe356f9d57ba83f2658c4e00ae8431bed23a389c 10-May-2012 Bill Richardson <wfrichar@chromium.org> Fix potential memory leak in KeyBlockVerify()

BUG=none
TEST=none

Change-Id: I17f1cff7d6f750dfd862d71941c6b8cfec57b6bf
Reviewed-on: https://gerrit.chromium.org/gerrit/22312
Commit-Ready: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: Bill Richardson <wfrichar@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
2448d3b3bc8e80232e7943c16b41eaab19faa1a2 03-May-2012 Bill Richardson <wfrichar@chromium.org> Create vbutil_ec tool for signing EC firmware.

This just adds the vbutil_ec tool (and a simple test of the library
functions related to it).

BUG=chrome-os-partner:7459, chromium-os:27142
TEST=manual

make
make runtests

Change-Id: I2a2c4e7cfb8ac6ce2229c5de4252a5cc89321fa5
Reviewed-on: https://gerrit.chromium.org/gerrit/21868
Commit-Ready: Bill Richardson <wfrichar@chromium.org>
Tested-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
a712e01ae783351e921031aab59ff1b7583d683d 13-Jul-2011 Randall Spangler <rspangler@chromium.org> Add support for flags in the firmware preamble.

The old (v2.0) parser is compatible with new (v2.1) structs. That is,
this won't break existing firmware or vbutil_firmware.

A new (v2.1) parser parsing an old (v2.0) struct will return 0 for the
flags.

This will be used to support the RO-normal code path in a subsequent CL.

BUG=chromium-os:17304
TEST=added unit tests; make && make runtests

Change-Id: I73bcd8acd3330b0d7d143061b5ef838e6d79cf1a
Reviewed-on: http://gerrit.chromium.org/gerrit/4030
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
e49e8af65fce38da7a308305566f8a14f102254a 08-Jul-2011 Randall Spangler <rspangler@chromium.org> Port vboot_reference to use new wrapper API utility functions

Third time's the charm. Now that we've moved to u-boot-next, this
won't break the ARM build.

BUG=chromium-os:17006
TEST=make && make runtests; emerge vboot_reference; emerge-tegra2_seaboard chromeos-bootimage

Change-Id: Ib4fa26c7a23868dd2ffd2b321ee8dc08c66ea322
Original-Change-Id: I771085dcdf79d9592de64f35e3b758111a80dd9f
Original-Reviewed-on: http://gerrit.chromium.org/gerrit/3263
Original-Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/3803
Tested-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
cfd841d3c2c8bb91e7024c62d0acc8668c5041b3 02-Jul-2011 Randall Spangler <rspangler@chromium.org> Revert "Verified boot wrapper - replace utility functions"

This reverts commit 0184886c8cb35e8e01d610622df448a7cb063e06

(This works with uboot-next, but not uboot, which doesn't implement its half of the new wrapper API. So rolling back to leave uboot working.

Change-Id: I1f9e3c63e5bbdb20b9195cd68787bef89f24afee
Reviewed-on: http://gerrit.chromium.org/gerrit/3588
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
f8c65491595a8e849cf61b600b2371357ec75ff4 27-Jun-2011 Randall Spangler <rspangler@chromium.org> Verified boot wrapper - replace utility functions

This is part 3 of the vboot wrapper API refactoring. It replaces the
function calls to utility.c functions with new API calls. (It also
fixes up some integer type mismatches in cryptolib that were causing
warnings on the H2C build; those had been fixed a while ago in H2C but
hadn't been propagated across.)

This is a re-commit of the original; I've verified it compiles on both
x86-alex and tegra2, for both vboot_reference and
vboot_reference-firmware, now that the patch from
1c1a883bc746a6216bb634825d33d80562853020 is checked in.

BUG=chromium-os:17006
TEST=make && make runtests, and emerged on both x86-alex and tegra2

Original-Change-Id: I771085dcdf79d9592de64f35e3b758111a80dd9f
Original-Reviewed-on: http://gerrit.chromium.org/gerrit/3263
Original-Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
(cherry picked from commit bd81b3a7d3b7fe4ca6179ade665e565800ab17fc)

Change-Id: Iefdbfb3d10eb9aa385fb6dfc3bf0896f637cb64b
Reviewed-on: http://gerrit.chromium.org/gerrit/3582
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
a7b9481f343fb4a19b5a5ed44c2fda2c59547e84 28-Jun-2011 mukesh agrawal <quiche@chromium.org> Revert "Verified boot wrapper - replace utility functions"

This reverts commit bd81b3a7d3b7fe4ca6179ade665e565800ab17fc.

Change-Id: I2be2c076a37bf0e49569248691fceac417254f0b
Reviewed-on: http://gerrit.chromium.org/gerrit/3295
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
bd81b3a7d3b7fe4ca6179ade665e565800ab17fc 27-Jun-2011 Randall Spangler <rspangler@chromium.org> Verified boot wrapper - replace utility functions

This is part 3 of the vboot wrapper API refactoring. It replaces the
function calls to utility.c functions with new API calls. (It also
fixes up some integer type mismatches in cryptolib that were causing
warnings on the H2C build; those had been fixed a while ago in H2C but
hadn't been propagated across.)

BUG=chromium-os:17006
TEST=make && make runtests

Change-Id: I771085dcdf79d9592de64f35e3b758111a80dd9f
Reviewed-on: http://gerrit.chromium.org/gerrit/3263
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Randall Spangler <rspangler@chromium.org>
/external/vboot_reference/firmware/lib/vboot_common.c
8ae94c2d24d36d1469483c9923a4d7ecbc3910b0 01-Apr-2011 Randall Spangler <rspangler@chromium.org> Fix preamble range checks

Change-Id: I0571f4524703566b8840e2b264d868c404f87c80

R=gauravsh@chromium.org,wfrichar@chromium.org
BUG=chrome-os-partner:2910
TEST=make && make runtests

Review URL: http://codereview.chromium.org/6759075
/external/vboot_reference/firmware/lib/vboot_common.c
cecdcbfe5d3832b4d639845d1fe297187236920c 25-Mar-2011 Randall Spangler <rspangler@chromium.org> Add additional checks for size greater than header size.

Change-Id: Iea64e3df795d1f9299117cbd161b203295211629

R=wfrichar@chromium.org,gauravsh@chromium.org
BUG=chrome-os-partner:2908
TEST=make && make runtests

Review URL: http://codereview.chromium.org/6745027
/external/vboot_reference/firmware/lib/vboot_common.c
ac7c2d9e303aec95ab80fba6d70790ca1c7b0e85 25-Mar-2011 Randall Spangler <rspangler@chromium.org> Fix not checking hashed data size

R=wfrichar@chromium.org,gauravsh@chromium.org
BUG=chrome-os-partner:2909
TEST=make && make runtests

Review URL: http://codereview.chromium.org/6748009

Change-Id: I3251aa6e6dd62ff4351fdf33ca9182b19a29cbbf
/external/vboot_reference/firmware/lib/vboot_common.c
d583a30a7c3bd369f82c0428666c7a708d5341d5 25-Mar-2011 Gaurav Shah <gauravsh@chromium.org> Use uint64_t and avoid down casting as much as possible.

Change-Id: I231d1b3a059907c3806feced7e1b8f1c06575ba5

BUG=chromeos-partner:2912
TEST=make clean all && make runtests

Review URL: http://codereview.chromium.org/6733018
/external/vboot_reference/firmware/lib/vboot_common.c
f4ba19d81d4fefa0dba4efbdd57dc863138fde3a 18-Mar-2011 Randall Spangler <rspangler@chromium.org> Add VbSharedData field parsing

R=reinauer@chromium.org
BUG=chrome-os-partner:2578
TEST=manual

crossystem vdat_timers
should show 'LFS=0,0 LF=number1,number2 LK=number3,number4'
where number1 < number2 < number3 < number4

crossystem vdat_lfdebug
run from a dev mode console, should show
'check=12,0 index=0x00 tpmver=(hex number) lowestver=(hex number)'

crossystem vdat_flags
run from a dev mode console, flags should be 0x04.

Review URL: http://codereview.chromium.org/6685068

Change-Id: Id7b958ae300d10cdcdc1b17a1bb17b7e5069166f
/external/vboot_reference/firmware/lib/vboot_common.c
95c4031ce903258036beeed0705d25c7e9d25da0 10-Mar-2011 Randall Spangler <rspangler@chromium.org> This is necessary to pass additional information about whether firmware A or B is being run. This change also passes the GBB directly into LoadFirmware() and LoadKernel().

Change-Id: I976c11c82c3d665a4feb88226e919f16c2440f60

BUG=chrome-os-partner:1657
TEST=manual - see below

make && make runtests

Then test verifying a test image in both dev mode (-b1, no key specified) and recovery mode (key specified)

build/utility/load_kernel_test -b1 ~/b/USB_images/0.11.224.0-alex/chromiumos_test_image.bin

build/utility/load_kernel_test ~/b/USB_images/0.11.224.0-alex/chromiumos_test_image.bin tests/devkeys/recovery_key.vbpubk

And make sure the firmware with this change actually boots to USB and SSD.

NOTE: u-boot-next needs to change to work with this change. will attempt a follow-up CL with that change

Review URL: http://codereview.chromium.org/6626045
/external/vboot_reference/firmware/lib/vboot_common.c
47b593d84920479ae5955fcc6664635328376a10 18-Aug-2010 Gaurav Shah <gauravsh@chromium.org> Add additional sanity checks to RSA verification code.

Also, make algorithm unsigned int in most places.

BUG=chrome-os-partner:701
TEST=existing RSA verification tests still pass

Review URL: http://codereview.chromium.org/3136017
/external/vboot_reference/firmware/lib/vboot_common.c
138acfe1ba4b567f470c67e22a8d9e2225beafb0 18-Aug-2010 Randall Spangler <rspangler@chromium.org> Fix KeyBlockVerify() to take an explicit param for whether to use hash only.

Fix VerifyMemberInside().

BUG=chrome-os-partner:703
TEST=make && make runtests

Review URL: http://codereview.chromium.org/3126013
/external/vboot_reference/firmware/lib/vboot_common.c
4f36ef336036e01b0bd2b395dd55e15db0267266 10-Aug-2010 Bill Richardson <wfrichar@chromium.org> Changes to allow user-signed kernels to be generated.

Make vbutil_keyblock handle unsigned blocks. Also enable --unpack option and
add tests for it.

Modify vbutil_kernel to allow unsigned keyblocks, correct usage message,
and fix the --debug option which was somehow disabled.

Update load_kernel_test to accept /dev/null for the public key, to test
non-signed kernel keyblocks.

Review URL: http://codereview.chromium.org/3124004
/external/vboot_reference/firmware/lib/vboot_common.c
87c13d806b1f58542b0fc0893144de45d31cabd2 19-Jul-2010 Randall Spangler <rspangler@chromium.org> Added size param to VerifyData()

Also renamed verify preamble functions, now that they do not need the
'2' at the end to differentiate them from the now-deleted original
implementation.

BUG=4501
TEST=Ran make runtests; all pass.

Review URL: http://codereview.chromium.org/3027009
/external/vboot_reference/firmware/lib/vboot_common.c
2a80e8a41627b367946480c72cb8c389df8d0cb3 01-Jul-2010 Gaurav Shah <gauravsh@chromium.org> Make sure advertised signature data size is sane.

TEST=make runtests -- All the tests in the test suite pass.

Review URL: http://codereview.chromium.org/2849036
/external/vboot_reference/firmware/lib/vboot_common.c
e2ec98412e3a6e24620f8d8730c50c79b7ce7d25 24-Jun-2010 Randall Spangler <rspangler@chromium.org> Add VBDEBUG macro for debug output.

Replaced in firmware/ lib; not replaced in host-side utils/tests.

Review URL: http://codereview.chromium.org/2810026
/external/vboot_reference/firmware/lib/vboot_common.c
beb5bae09f7c7153a1a89946026ba2af8cf3c838 22-Jun-2010 Randall Spangler <rspangler@chromium.org> Fixes to compiler warnings in MSVC

Review URL: http://codereview.chromium.org/2851015
/external/vboot_reference/firmware/lib/vboot_common.c
620c38cf34eadcd222535b01fb71c5e9fbc1cb80 17-Jun-2010 Randall Spangler <rspangler@chromium.org> Remove unused files, and tidy the directory structure of the remaining ones.

Review URL: http://codereview.chromium.org/2815011
/external/vboot_reference/firmware/lib/vboot_common.c