63d2a5c787
An EIF (Enclave Image Format)[1] file is used to boot an AWS nitro enclave[2] virtual machine. The EIF file contains the necessary kernel, cmdline, ramdisk(s) sections to boot. Some helper functions have been introduced for extracting the necessary sections from an EIF file and then writing them to temporary files as well as computing SHA384 hashes from the section data. These will be used in the following commit to add support for nitro-enclave machine type in QEMU. The files added in this commit are not compiled yet but will be added to the hw/core/meson.build file in the following commit where CONFIG_NITRO_ENCLAVE will be introduced. [1] https://github.com/aws/aws-nitro-enclaves-image-format [2] https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com> Reviewed-by: Alexander Graf <graf@amazon.com> Link: https://lore.kernel.org/r/20241008211727.49088-4-dorjoychy111@gmail.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
23 lines
705 B
C
23 lines
705 B
C
/*
|
|
* EIF (Enclave Image Format) related helpers
|
|
*
|
|
* Copyright (c) 2024 Dorjoy Chowdhury <dorjoychy111@gmail.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or
|
|
* (at your option) any later version. See the COPYING file in the
|
|
* top-level directory.
|
|
*/
|
|
|
|
#ifndef HW_CORE_EIF_H
|
|
#define HW_CORE_EIF_H
|
|
|
|
bool read_eif_file(const char *eif_path, const char *machine_initrd,
|
|
char **kernel_path, char **initrd_path,
|
|
char **kernel_cmdline, uint8_t *image_sha384,
|
|
uint8_t *bootstrap_sha384, uint8_t *app_sha384,
|
|
uint8_t *fingerprint_sha384, bool *signature_found,
|
|
Error **errp);
|
|
|
|
#endif
|
|
|