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