xref: /aosp_15_r20/external/vboot_reference/firmware/2lib/include/2gbb.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2019 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  *
5*8617a60dSAndroid Build Coastguard Worker  * GBB accessor functions.
6*8617a60dSAndroid Build Coastguard Worker  */
7*8617a60dSAndroid Build Coastguard Worker 
8*8617a60dSAndroid Build Coastguard Worker #ifndef VBOOT_REFERENCE_2GBB_H_
9*8617a60dSAndroid Build Coastguard Worker #define VBOOT_REFERENCE_2GBB_H_
10*8617a60dSAndroid Build Coastguard Worker 
11*8617a60dSAndroid Build Coastguard Worker #include "2common.h"
12*8617a60dSAndroid Build Coastguard Worker 
13*8617a60dSAndroid Build Coastguard Worker struct vb2_packed_key;
14*8617a60dSAndroid Build Coastguard Worker struct vb2_workbuf;
15*8617a60dSAndroid Build Coastguard Worker 
16*8617a60dSAndroid Build Coastguard Worker /**
17*8617a60dSAndroid Build Coastguard Worker  * Read the root key from the GBB, and store it onto the given workbuf.
18*8617a60dSAndroid Build Coastguard Worker  *
19*8617a60dSAndroid Build Coastguard Worker  * @param ctx		Vboot context.
20*8617a60dSAndroid Build Coastguard Worker  * @param keyp		Returns a pointer to the key. The caller may discard
21*8617a60dSAndroid Build Coastguard Worker  *			workbuf state if it wants to free the key.
22*8617a60dSAndroid Build Coastguard Worker  * @param size		If pointer is non-NULL, returns the total size of key,
23*8617a60dSAndroid Build Coastguard Worker  * 			including data.
24*8617a60dSAndroid Build Coastguard Worker  * @param wb		Workbuf for data storage.
25*8617a60dSAndroid Build Coastguard Worker  * @return VB2_SUCCESS, or error code on error.
26*8617a60dSAndroid Build Coastguard Worker  */
27*8617a60dSAndroid Build Coastguard Worker vb2_error_t vb2_gbb_read_root_key(struct vb2_context *ctx,
28*8617a60dSAndroid Build Coastguard Worker 				  struct vb2_packed_key **keyp, uint32_t *size,
29*8617a60dSAndroid Build Coastguard Worker 				  struct vb2_workbuf *wb);
30*8617a60dSAndroid Build Coastguard Worker 
31*8617a60dSAndroid Build Coastguard Worker /**
32*8617a60dSAndroid Build Coastguard Worker  * Read the recovery key from the GBB, and store it onto the given workbuf.
33*8617a60dSAndroid Build Coastguard Worker  *
34*8617a60dSAndroid Build Coastguard Worker  * @param ctx		Vboot context.
35*8617a60dSAndroid Build Coastguard Worker  * @param keyp		Returns a pointer to the key. The caller may discard
36*8617a60dSAndroid Build Coastguard Worker  *			workbuf state if it wants to free the key.
37*8617a60dSAndroid Build Coastguard Worker  * @param size		If pointer is non-NULL, returns the total size of key,
38*8617a60dSAndroid Build Coastguard Worker  * 			including data.
39*8617a60dSAndroid Build Coastguard Worker  * @param wb		Workbuf for data storage.
40*8617a60dSAndroid Build Coastguard Worker  * @return VB2_SUCCESS, or error code on error.
41*8617a60dSAndroid Build Coastguard Worker  */
42*8617a60dSAndroid Build Coastguard Worker vb2_error_t vb2_gbb_read_recovery_key(struct vb2_context *ctx,
43*8617a60dSAndroid Build Coastguard Worker 				      struct vb2_packed_key **keyp,
44*8617a60dSAndroid Build Coastguard Worker 				      uint32_t *size, struct vb2_workbuf *wb);
45*8617a60dSAndroid Build Coastguard Worker 
46*8617a60dSAndroid Build Coastguard Worker #endif  /* VBOOT_REFERENCE_2GBB_H_ */
47