/* * Copyright 2015 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ /* * We centralize option parsing but may split operations into multiple files, * so let's declare the option structures in a single place (here). */ #ifndef VBOOT_REFERENCE_FUTILITY_OPTIONS_H_ #define VBOOT_REFERENCE_FUTILITY_OPTIONS_H_ #include #include "vboot_common.h" #include "file_type.h" #include "2rsa.h" struct vb2_private_key; struct vb21_packed_key; struct show_option_s { struct vb2_public_key *k; uint8_t *fv; uint64_t fv_size; uint32_t padding; int strict; int t_flag; enum futil_file_type type; struct vb21_packed_key *pkey; uint32_t sig_size; }; extern struct show_option_s show_option; struct sign_option_s { struct vb2_private_key *signprivate; struct vb2_keyblock *keyblock; struct vb2_packed_key *kernel_subkey; struct vb2_private_key *devsignprivate; struct vb2_keyblock *devkeyblock; uint32_t version; int version_specified; uint32_t flags; int flags_specified; char *loemdir; char *loemid; uint8_t *bootloader_data; uint64_t bootloader_size; uint8_t *config_data; uint32_t config_size; enum arch_t arch; int fv_specified; uint32_t kloadaddr; uint32_t padding; int vblockonly; char *outfile; int create_new_outfile; int inout_file_count; char *pem_signpriv; int pem_algo_specified; uint32_t pem_algo; char *pem_external; enum futil_file_type type; enum vb2_hash_algorithm hash_alg; uint32_t ro_size, rw_size; uint32_t ro_offset, rw_offset; uint32_t data_size, sig_size; struct vb2_private_key *prikey; }; extern struct sign_option_s sign_option; /* Return true if hash_alg was identified, either by name or number */ int vb2_lookup_hash_alg(const char *str, enum vb2_hash_algorithm *alg); #endif /* VBOOT_REFERENCE_FUTILITY_OPTIONS_H_ */