12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # -*- Mode: Python -*-
- # vim: filetype=python
- #
- ##
- # = UEFI Variable Store
- #
- # The qemu efi variable store implementation (hw/uefi/) uses this to
- # store non-volatile variables in json format on disk.
- #
- # This is an existing format already supported by (at least) two other
- # projects, specifically https://gitlab.com/kraxel/virt-firmware and
- # https://github.com/awslabs/python-uefivars.
- ##
- ##
- # @UefiVariable:
- #
- # UEFI Variable. Check the UEFI specifification for more detailed
- # information on the fields.
- #
- # @guid: variable namespace GUID
- #
- # @name: variable name, in UTF-8 encoding.
- #
- # @attr: variable attributes.
- #
- # @data: variable value, encoded as hex string.
- #
- # @time: variable modification time. EFI_TIME struct, encoded as hex
- # string. Used only for authenticated variables, where the
- # EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute bit
- # is set.
- #
- # @digest: variable certificate digest. Used to verify the signature
- # of updates for authenticated variables. UEFI has two kinds of
- # authenticated variables. The secure boot variables ('PK',
- # 'KEK', 'db' and 'dbx') have hard coded signature checking rules.
- # For other authenticated variables the firmware stores a digest
- # of the signing certificate at variable creation time, and any
- # updates must be signed with the same certificate.
- #
- # Since: 10.0
- ##
- { 'struct' : 'UefiVariable',
- 'data' : { 'guid' : 'str',
- 'name' : 'str',
- 'attr' : 'int',
- 'data' : 'str',
- '*time' : 'str',
- '*digest' : 'str'}}
- ##
- # @UefiVarStore:
- #
- # @version: currently always 2
- #
- # @variables: list of UEFI variables
- #
- # Since: 10.0
- ##
- { 'struct' : 'UefiVarStore',
- 'data' : { 'version' : 'int',
- 'variables' : [ 'UefiVariable' ] }}
|