uefi

package
v0.9.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2023 License: LGPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EFI_VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256 = 1

	EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE = 1
	EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE     = 2
)
View Source
const (
	NO_DISK_SIGNATURE   = 0x00
	SIGNATURE_TYPE_MBR  = 0x01
	SIGNATURE_TYPE_GUID = 0x02

	HARDWARE_DEVICE_PATH  = 0x01
	ACPI_DEVICE_PATH      = 0x02
	MESSAGING_DEVICE_PATH = 0x03
	MEDIA_DEVICE_PATH     = 0x04
	BBS_DEVICE_PATH       = 0x05
	END_DEVICE_PATH_TYPE  = 0x7f

	HW_PCI_DP    = 0x01
	HW_VENDOR_DP = 0x04

	ACPI_DP          = 0x01
	ACPI_EXTENDED_DP = 0x02

	MSG_ATAPI_DP               = 0x01
	MSG_SCSI_DP                = 0x02
	MSG_USB_DP                 = 0x05
	MSG_USB_CLASS_DP           = 0x0f
	MSG_VENDOR_DP              = 0x0a
	MSG_USB_WWID_DP            = 0x10
	MSG_DEVICE_LOGICAL_UNIT_DP = 0x11
	MSG_SATA_DP                = 0x12
	MSG_NVME_NAMESPACE_DP      = 0x17

	MEDIA_HARDDRIVE_DP             = 0x01
	MEDIA_CDROM_DP                 = 0x02
	MEDIA_VENDOR_DP                = 0x03
	MEDIA_FILEPATH_DP              = 0x04
	MEDIA_PIWG_FW_FILE_DP          = 0x06
	MEDIA_PIWG_FW_VOL_DP           = 0x07
	MEDIA_RELATIVE_OFFSET_RANGE_DP = 0x08

	END_ENTIRE_DEVICE_PATH_SUBTYPE = 0xff
)
View Source
const (
	LOAD_OPTION_ACTIVE          = 0x00000001
	LOAD_OPTION_FORCE_RECONNECT = 0x00000002
	LOAD_OPTION_HIDDEN          = 0x00000008
	LOAD_OPTION_CATEGORY        = 0x00001f00
	LOAD_OPTION_CATEGORY_BOOT   = 0x00000000
	LOAD_OPTION_CATEGORY_APP    = 0x00000100
)
View Source
const (
	EFI_VARIABLE_NON_VOLATILE                          = 1 << 0
	EFI_VARIABLE_BOOTSERVICE_ACCESS                    = 1 << 1
	EFI_VARIABLE_RUNTIME_ACCESS                        = 1 << 2
	EFI_VARIABLE_HARDWARE_ERROR_RECORD                 = 1 << 3
	EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS            = 1 << 4
	EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS = 1 << 5
	EFI_VARIABLE_APPEND_WRITE                          = 1 << 6
	EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS         = 1 << 7
)
View Source
const (
	WIN_CERT_TYPE_PKCS_SIGNED_DATA = 0x0002
	WIN_CERT_TYPE_EFI_PKCS115      = 0x0ef0
	WIN_CERT_TYPE_EFI_GUID         = 0x0ef1
)
View Source
const EFI_PTAB_HEADER_ID uint64 = 0x5452415020494645
View Source
const ESLHeaderSize = 28

Variables

View Source
var (
	EFI_HASH_ALGORITHM_SHA1_GUID   = New_EFI_GUID(0x2ae9d80f, 0x3fb2, 0x4095, 0xb7b1, [...]uint8{0xe9, 0x31, 0x57, 0xb9, 0x46, 0xb6})
	EFI_HASH_ALGORITHM_SHA256_GUID = New_EFI_GUID(0x51aa59de, 0xfdf2, 0x4ea3, 0xbc63, [...]uint8{0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9})
	EFI_HASH_ALGORITHM_SHA224_GUID = New_EFI_GUID(0x8df01a06, 0x9bd5, 0x4bf7, 0xb021, [...]uint8{0xdb, 0x4f, 0xd9, 0xcc, 0xf4, 0x5b})
	EFI_HASH_ALGORITHM_SHA384_GUID = New_EFI_GUID(0xefa96432, 0xde33, 0x4dd2, 0xaee6, [...]uint8{0x32, 0x8c, 0x33, 0xdf, 0x77, 0x7a})
	EFI_HASH_ALGORITHM_SHA512_GUID = New_EFI_GUID(0xcaa4381e, 0x750c, 0x4770, 0xb870, [...]uint8{0x7a, 0x23, 0xb4, 0xe4, 0x21, 0x30})

	EFI_CERT_TYPE_RSA2048_SHA256_GUID = New_EFI_GUID(0xa7717414, 0xc616, 0x4977, 0x9420, [...]uint8{0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf})
	EFI_CERT_TYPE_PKCS7_GUID          = New_EFI_GUID(0x4aafd29d, 0x68df, 0x49ee, 0x8aa9, [...]uint8{0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7})

	EFI_CERT_SHA1_GUID   = New_EFI_GUID(0x826ca512, 0xcf10, 0x4ac9, 0xb187, [...]uint8{0xbe, 0x01, 0x49, 0x66, 0x31, 0xbd})
	EFI_CERT_SHA256_GUID = New_EFI_GUID(0xc1c41626, 0x504c, 0x4092, 0xaca9, [...]uint8{0x41, 0xf9, 0x36, 0x93, 0x43, 0x28})
	EFI_CERT_SHA224_GUID = New_EFI_GUID(0xb6e5233, 0xa65c, 0x44c9, 0x9407, [...]uint8{0xd9, 0xab, 0x83, 0xbf, 0xc8, 0xbd})
	EFI_CERT_SHA384_GUID = New_EFI_GUID(0xff3e5307, 0x9fd0, 0x48c9, 0x85f1, [...]uint8{0x8a, 0xd5, 0x6c, 0x70, 0x1e, 0x01})
	EFI_CERT_SHA512_GUID = New_EFI_GUID(0x093e0fae, 0xa6c4, 0x4f50, 0x9f1b, [...]uint8{0xd4, 0x1e, 0x2b, 0x89, 0xc1, 0x9a})

	EFI_CERT_RSA2048_GUID        = New_EFI_GUID(0x3c5766e8, 0x269c, 0x4e34, 0xaa14, [...]uint8{0xed, 0x77, 0x6e, 0x85, 0xb3, 0xb6})
	EFI_CERT_RSA2048_SHA1_GUID   = New_EFI_GUID(0x67f8444f, 0x8743, 0x48f1, 0xa328, [...]uint8{0x1e, 0xaa, 0xb8, 0x73, 0x60, 0x80})
	EFI_CERT_RSA2048_SHA256_GUID = New_EFI_GUID(0xe2b36190, 0x879b, 0x4a3d, 0xad8d, [...]uint8{0xf2, 0xe7, 0xbb, 0xa3, 0x27, 0x84})

	EFI_CERT_X509_GUID        = New_EFI_GUID(0xa5c059a1, 0x94e4, 0x4aa7, 0x87b5, [...]uint8{0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72})
	EFI_CERT_X509_SHA256_GUID = New_EFI_GUID(0x3bd2a492, 0x96c0, 0x4079, 0xb420, [...]uint8{0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed})
	EFI_CERT_X509_SHA384_GUID = New_EFI_GUID(0x7076876e, 0x80c2, 0x4ee6, 0xaad2, [...]uint8{0x28, 0xb3, 0x49, 0xa6, 0x86, 0x5b})
	EFI_CERT_X509_SHA512_GUID = New_EFI_GUID(0x446dbf63, 0x2502, 0x4cda, 0xbcfa, [...]uint8{0x24, 0x65, 0xd2, 0xb0, 0xfe, 0x9d})

	EFI_GLOBAL_VARIABLE              = New_EFI_GUID(0x8be4df61, 0x93ca, 0x11d2, 0xaa0d, [...]uint8{0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c})
	EFI_IMAGE_SECURITY_DATABASE_GUID = New_EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3bc, [...]uint8{0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f})
)

Functions

This section is empty.

Types

type ACPI_EXTENDED_HID_DEVICE_PATH

type ACPI_EXTENDED_HID_DEVICE_PATH struct {
	Header EFI_DEVICE_PATH_PROTOCOL
	HID    uint32
	UID    uint32
	CID    uint32
}

type ACPI_HID_DEVICE_PATH

type ACPI_HID_DEVICE_PATH struct {
	Header EFI_DEVICE_PATH_PROTOCOL
	HID    uint32
	UID    uint32
}

type ATAPI_DEVICE_PATH

type ATAPI_DEVICE_PATH struct {
	Header           EFI_DEVICE_PATH_PROTOCOL
	PrimarySecondary uint8
	SlaveMaster      uint8
	Lun              uint16
}

type CDROM_DEVICE_PATH

type CDROM_DEVICE_PATH struct {
	Header         EFI_DEVICE_PATH_PROTOCOL
	BootEntry      uint32
	PartitionStart uint64
	PartitionSize  uint64
}

type DEVICE_LOGICAL_UNIT_DEVICE_PATH

type DEVICE_LOGICAL_UNIT_DEVICE_PATH struct {
	Header EFI_DEVICE_PATH_PROTOCOL
	Lun    uint8
}

type EFI_DEVICE_PATH_PROTOCOL

type EFI_DEVICE_PATH_PROTOCOL struct {
	Type    uint8
	SubType uint8
	Length  uint16
}

type EFI_GUID

type EFI_GUID [16]byte

func New_EFI_GUID added in v0.1.2

func New_EFI_GUID(a uint32, b, c, d uint16, e [6]uint8) (out EFI_GUID)

type EFI_LBA

type EFI_LBA uint64

type EFI_LOAD_OPTION

type EFI_LOAD_OPTION struct {
	Attributes         uint32
	FilePathListLength uint16
	Description        []uint16
	FilePathList       []byte
	OptionalData       []byte
}

func Read_EFI_LOAD_OPTION

func Read_EFI_LOAD_OPTION(r io.Reader) (out *EFI_LOAD_OPTION, err error)

func (*EFI_LOAD_OPTION) Write

func (o *EFI_LOAD_OPTION) Write(w io.Writer) error

type EFI_PARTITION_ENTRY

type EFI_PARTITION_ENTRY struct {
	PartitionTypeGUID   EFI_GUID
	UniquePartitionGUID EFI_GUID
	StartingLBA         EFI_LBA
	EndingLBA           EFI_LBA
	Attributes          uint64
	PartitionName       [36]uint16
}

type EFI_PARTITION_TABLE_HEADER

type EFI_PARTITION_TABLE_HEADER struct {
	Hdr                      EFI_TABLE_HEADER
	MyLBA                    EFI_LBA
	AlternateLBA             EFI_LBA
	FirstUsableLBA           EFI_LBA
	LastUsableLBA            EFI_LBA
	DiskGUID                 EFI_GUID
	PartitionEntryLBA        EFI_LBA
	NumberOfPartitionEntries uint32
	SizeOfPartitionEntry     uint32
	PartitionEntryArrayCRC32 uint32
}

func Read_EFI_PARTITION_TABLE_HEADER

func Read_EFI_PARTITION_TABLE_HEADER(r io.Reader) (out *EFI_PARTITION_TABLE_HEADER, crc uint32, err error)

type EFI_SIGNATURE_DATA

type EFI_SIGNATURE_DATA struct {
	SignatureOwner EFI_GUID
	SignatureData  []byte
}

func (*EFI_SIGNATURE_DATA) Write

func (d *EFI_SIGNATURE_DATA) Write(w io.Writer) error

type EFI_SIGNATURE_LIST

type EFI_SIGNATURE_LIST struct {
	SignatureType       EFI_GUID
	SignatureListSize   uint32
	SignatureHeaderSize uint32
	SignatureSize       uint32

	SignatureHeader []byte
	Signatures      []EFI_SIGNATURE_DATA
}

func Read_EFI_SIGNATURE_LIST

func Read_EFI_SIGNATURE_LIST(r io.Reader) (out *EFI_SIGNATURE_LIST, err error)

func (*EFI_SIGNATURE_LIST) Write

func (l *EFI_SIGNATURE_LIST) Write(w io.Writer) error

type EFI_TABLE_HEADER

type EFI_TABLE_HEADER struct {
	Signature  uint64
	Revision   uint32
	HeaderSize uint32
	CRC        uint32
	Reserved   uint32
}

type EFI_TIME

type EFI_TIME struct {
	Year       uint16
	Month      uint8
	Day        uint8
	Hour       uint8
	Minute     uint8
	Second     uint8
	Pad1       uint8
	Nanosecond uint32
	Timezone   int16
	Daylight   uint8
	Pad2       uint8
}

func New_EFI_TIME

func New_EFI_TIME(t time.Time) *EFI_TIME

func (*EFI_TIME) GoTime

func (t *EFI_TIME) GoTime() time.Time

type EFI_VARIABLE_AUTHENTICATION

type EFI_VARIABLE_AUTHENTICATION struct {
	MonotonicCount uint64
	AuthInfo       WIN_CERTIFICATE_UEFI_GUID
}

func Read_EFI_VARIABLE_AUTHENTICATION

func Read_EFI_VARIABLE_AUTHENTICATION(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION, err error)

type EFI_VARIABLE_AUTHENTICATION_2

type EFI_VARIABLE_AUTHENTICATION_2 struct {
	TimeStamp EFI_TIME
	AuthInfo  WIN_CERTIFICATE_UEFI_GUID
}

func Read_EFI_VARIABLE_AUTHENTICATION_2

func Read_EFI_VARIABLE_AUTHENTICATION_2(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION_2, err error)

type EFI_VARIABLE_AUTHENTICATION_3

type EFI_VARIABLE_AUTHENTICATION_3 struct {
	Version      uint8
	Type         uint8
	MetadataSize uint32
	Flags        uint32
}

type EFI_VARIABLE_AUTHENTICATION_3_CERT_ID

type EFI_VARIABLE_AUTHENTICATION_3_CERT_ID struct {
	Type   uint8
	IdSize uint32
	Id     []byte
}

func Read_EFI_VARIABLE_AUTHENTICATION_3_CERT_ID

func Read_EFI_VARIABLE_AUTHENTICATION_3_CERT_ID(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION_3_CERT_ID, err error)

type EFI_VARIABLE_AUTHENTICATION_3_NONCE

type EFI_VARIABLE_AUTHENTICATION_3_NONCE struct {
	NonceSize uint32
	Nonce     []byte
}

func Read_EFI_VARIABLE_AUTHENTICATION_3_NONCE

func Read_EFI_VARIABLE_AUTHENTICATION_3_NONCE(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION_3_NONCE, err error)

type FILEPATH_DEVICE_PATH

type FILEPATH_DEVICE_PATH struct {
	Header   EFI_DEVICE_PATH_PROTOCOL
	PathName []uint16
}

func Read_FILEPATH_DEVICE_PATH

func Read_FILEPATH_DEVICE_PATH(r io.Reader) (out *FILEPATH_DEVICE_PATH, err error)

func (*FILEPATH_DEVICE_PATH) Write

func (p *FILEPATH_DEVICE_PATH) Write(w io.Writer) error

type HARDDRIVE_DEVICE_PATH

type HARDDRIVE_DEVICE_PATH struct {
	Header          EFI_DEVICE_PATH_PROTOCOL
	PartitionNumber uint32
	PartitionStart  uint64
	PartitionSize   uint64
	Signature       [16]uint8
	MBRType         uint8
	SignatureType   uint8
}

type MEDIA_FW_VOL_DEVICE_PATH

type MEDIA_FW_VOL_DEVICE_PATH struct {
	Header EFI_DEVICE_PATH_PROTOCOL
	FvName EFI_GUID
}

type MEDIA_FW_VOL_FILEPATH_DEVICE_PATH

type MEDIA_FW_VOL_FILEPATH_DEVICE_PATH struct {
	Header     EFI_DEVICE_PATH_PROTOCOL
	FvFileName EFI_GUID
}

type MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH

type MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH struct {
	Header         EFI_DEVICE_PATH_PROTOCOL
	Reserved       uint32
	StartingOffset uint64
	EndingOffset   uint64
}

type NVME_NAMESPACE_DEVICE_PATH

type NVME_NAMESPACE_DEVICE_PATH struct {
	Header        EFI_DEVICE_PATH_PROTOCOL
	NamespaceId   uint32
	NamespaceUuid uint64
}

type PCI_DEVICE_PATH

type PCI_DEVICE_PATH struct {
	Header   EFI_DEVICE_PATH_PROTOCOL
	Function uint8
	Device   uint8
}

type SATA_DEVICE_PATH

type SATA_DEVICE_PATH struct {
	Header                   EFI_DEVICE_PATH_PROTOCOL
	HBAPortNumber            uint16
	PortMultiplierPortNumber uint16
	Lun                      uint16
}

type SCSI_DEVICE_PATH

type SCSI_DEVICE_PATH struct {
	Header EFI_DEVICE_PATH_PROTOCOL
	Pun    uint16
	Lun    uint16
}

type USB_CLASS_DEVICE_PATH

type USB_CLASS_DEVICE_PATH struct {
	Header         EFI_DEVICE_PATH_PROTOCOL
	VendorId       uint16
	ProductId      uint16
	DeviceClass    uint8
	DeviceSubClass uint8
	DeviceProtocol uint8
}

type USB_DEVICE_PATH

type USB_DEVICE_PATH struct {
	Header           EFI_DEVICE_PATH_PROTOCOL
	ParentPortNumber uint8
	InterfaceNumber  uint8
}

type USB_WWID_DEVICE_PATH

type USB_WWID_DEVICE_PATH struct {
	Header          EFI_DEVICE_PATH_PROTOCOL
	InterfaceNumber uint16
	VendorId        uint16
	ProductId       uint16
	SerialNumber    []uint16
}

func Read_USB_WWID_DEVICE_PATH

func Read_USB_WWID_DEVICE_PATH(r io.Reader) (out *USB_WWID_DEVICE_PATH, err error)

func (*USB_WWID_DEVICE_PATH) Write

func (p *USB_WWID_DEVICE_PATH) Write(w io.Writer) error

type VENDOR_DEVICE_PATH

type VENDOR_DEVICE_PATH struct {
	Header EFI_DEVICE_PATH_PROTOCOL
	Guid   EFI_GUID
}

type WIN_CERTIFICATE

type WIN_CERTIFICATE struct {
	Length          uint32
	Revision        uint16
	CertificateType uint16
}

type WIN_CERTIFICATE_EFI_PKCS

type WIN_CERTIFICATE_EFI_PKCS struct {
	Hdr      WIN_CERTIFICATE
	CertData []byte
}

type WIN_CERTIFICATE_EFI_PKCS1_15

type WIN_CERTIFICATE_EFI_PKCS1_15 struct {
	Hdr           WIN_CERTIFICATE
	HashAlgorithm EFI_GUID
	Signature     [256]byte
}

type WIN_CERTIFICATE_UEFI_GUID

type WIN_CERTIFICATE_UEFI_GUID struct {
	Hdr      WIN_CERTIFICATE
	CertType EFI_GUID
	CertData []byte
}

func Read_WIN_CERTIFICATE_UEFI_GUID

func Read_WIN_CERTIFICATE_UEFI_GUID(r io.Reader) (out *WIN_CERTIFICATE_UEFI_GUID, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL