OpenCore  1.0.4
OpenCore Bootloader
1.0.4
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
OcHashServicesLib.c File Reference
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/OcMiscLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/Hash.h>
#include <Protocol/ServiceBinding.h>
#include "OcHashServicesLibInternal.h"

Go to the source code of this file.

Functions

STATIC EFI_STATUS EFIAPI HSGetHashSize (IN CONST EFI_HASH_PROTOCOL *This, IN CONST EFI_GUID *HashAlgorithm, OUT UINTN *HashSize)
 
STATIC EFI_STATUS EFIAPI HSHash (IN CONST EFI_HASH_PROTOCOL *This, IN CONST EFI_GUID *HashAlgorithm, IN BOOLEAN Extend, IN CONST UINT8 *Message, IN UINT64 MessageSize, IN OUT EFI_HASH_OUTPUT *Hash)
 
STATIC EFI_STATUS EFIAPI HSCreateChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN OUT EFI_HANDLE *ChildHandle)
 
STATIC EFI_STATUS EFIAPI HSDestroyChild (IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)
 
EFI_SERVICE_BINDING_PROTOCOL * OcHashServicesInstallProtocol (IN BOOLEAN Reinstall)
 

Variables

STATIC EFI_SERVICE_BINDING_PROTOCOL mHashBindingProto
 

Function Documentation

◆ HSCreateChild()

STATIC EFI_STATUS EFIAPI HSCreateChild ( IN EFI_SERVICE_BINDING_PROTOCOL * This,
IN OUT EFI_HANDLE * ChildHandle )

Definition at line 109 of file OcHashServicesLib.c.

◆ HSDestroyChild()

STATIC EFI_STATUS EFIAPI HSDestroyChild ( IN EFI_SERVICE_BINDING_PROTOCOL * This,
IN EFI_HANDLE ChildHandle )

Definition at line 143 of file OcHashServicesLib.c.

◆ HSGetHashSize()

STATIC EFI_STATUS EFIAPI HSGetHashSize ( IN CONST EFI_HASH_PROTOCOL * This,
IN CONST EFI_GUID * HashAlgorithm,
OUT UINTN * HashSize )

Definition at line 29 of file OcHashServicesLib.c.

◆ HSHash()

STATIC EFI_STATUS EFIAPI HSHash ( IN CONST EFI_HASH_PROTOCOL * This,
IN CONST EFI_GUID * HashAlgorithm,
IN BOOLEAN Extend,
IN CONST UINT8 * Message,
IN UINT64 MessageSize,
IN OUT EFI_HASH_OUTPUT * Hash )

Definition at line 56 of file OcHashServicesLib.c.

◆ OcHashServicesInstallProtocol()

EFI_SERVICE_BINDING_PROTOCOL * OcHashServicesInstallProtocol ( IN BOOLEAN Reinstall)

Install and initialise EFI Service Binding protocol.

Parameters
[in]ReinstallReplace any installed protocol.
Returns
Installed protocol.
Return values
NULLThere was an error installing the protocol.

Definition at line 188 of file OcHashServicesLib.c.

Variable Documentation

◆ mHashBindingProto

STATIC EFI_SERVICE_BINDING_PROTOCOL mHashBindingProto
Initial value:
= {
}
STATIC EFI_STATUS EFIAPI HSDestroyChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN EFI_HANDLE ChildHandle)
STATIC EFI_STATUS EFIAPI HSCreateChild(IN EFI_SERVICE_BINDING_PROTOCOL *This, IN OUT EFI_HANDLE *ChildHandle)

Hash service fix for AMI EFIs with broken SHA implementations.

Forcibly reinstalls EFI_HASH_PROTOCOL with working MD5, SHA-1, SHA-256 implementations.

Author: Joel Hoener athre.nosp@m.0z@z.nosp@m.yanti.nosp@m.fic..nosp@m.com

Definition at line 21 of file OcHashServicesLib.c.