# TlsAuthConfigDxe

## Function Table

| Address | Name | Description |
|---------|------|-------------|
|  | **TlsAuthConfigExtractConfig** |  |
|  | **TlsAuthConfigRouteConfig** |  |
|  | **TlsAuthConfigCallback** |  |
|  | **TlsAuthConfigInstallHiiConfigAccess** |  |
|  | **TlsAuthConfigLibraryInit** |  |
|  | **TlsAuthConfigUnload** |  |
|  | **TlsAuthConfigDxeEntry** |  |
|  | **TlsAuthConfigDriverBindingSupported** |  |
|  | **TlsAuthConfigDriverBindingStart** |  |
|  | **TlsAuthConfigDriverBindingStop** |  |
|  | **TlsAuthConfigPrivateInit** |  |
|  | **TlsAuthConfigPrivateDestroy** |  |
|  | **IsCertificateEntryType** |  |
| Global | **UEFI System Table Pointers** |  |
| Populated | **by TlsAuthConfigDriverBindingStart (sub_4CC) via** |  |
| UefiBootServicesTableLib | **/ UefiRuntimeServicesTableLib** |  |
| EFI_HANDLE | **gImageHandle       = NULL;   /* qword_CDD8 */** |  |
| HII | **protocol interface pointers (populated during driver start)** |  |
| VOID | ***gHiiConfigRouting = NULL;   /* qword_CE00 */** |  |
| GUID | **Definitions (from .rdata section)** |  |
| EFI_GUID | **gEfiDriverBindingProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } };** |  |
| Forward | **Declarations** |  |
| EFI_STATUS | **EFIAPI** |  |
| Library | **Helpers (BaseMemoryLib / BaseLib linked implementations)** |  |
| Driver | **Binding Protocol Entry Point** |  |
| Initialise | **the HII system table (locates HII config routing, etc.)** |  |
| InitializeHiiConfigAccess | **(NULL);          /* sub_6504 placeholder */** |  |
| Locate | **HII Config Access Protocol** |  |
| Status | **= gBootServices->LocateProtocol (** |  |
| Locate | **HII Config Routing Protocol** |  |
| Locate | **HII Database Protocol** |  |
| Locate | **Platform Setup Transport and HII String** |  |
| Open | **the private protocol to retrieve our context** |  |
| Status | **= gBootServices->OpenProtocol (** |  |
| Uninstall | **the protocol and free the private data** |  |
| Step | **1: initialise UEFI library globals + HII protocols** |  |
| TlsAuthConfigLibraryInit | **(ImageHandle, SystemTable);** |  |
| Step | **2: install the Driver Binding Protocol onto our image handle** |  |
| DriverBinding | **= AllocateZeroPool (sizeof (EFI_DRIVER_BINDING_PROTOCOL));** |  |
| Step | **3: store the Unload handler (at Private-> + 88 = +0x58)** |  |
| Step | **4: install HII Config Access protocol** |  |
| return | **TlsAuthConfigInstallHiiConfigAccess (ImageHandle);** |  |
| Driver | **Binding Protocol Implementation** |  |
| If | **the TLS Auth Config Protocol is already installed, return** |  |
| Allocate | **private context (144 bytes)** |  |
| Private | **= AllocateZeroPool (144);** |  |
| Initialise | **the private context** |  |
| Status | **= TlsAuthConfigPrivateInit (Private);** |  |
| Install | **the TLS Auth Config Protocol on the controller** |  |
| Status | **= gBootServices->InstallMultipleProtocolInterfaces (** |  |
| Private | **Data Helpers** |  |
| Stores | **child init function pointers, opens TLS config protocol** |  |
| initialises | **HII handles, etc.** |  |
| return | **EFI_SUCCESS;** |  |
| Close | **any open protocols, free child data** |  |
| HII | **Config Access Protocol (sub_758)** |  |
| Allocate | **HII opcode handles** |  |
| FormOpCodeHandle | **= HiiAllocateOpCodeHandle ();** |  |
| Read | **the TlsCaCertificate variable for size** |  |
| VarSize | **= 0;** |  |
| This | **entry contains TLS certificates** |  |
| DescLen | **= Entry->CertDescLen;     /* field at +20 */** |  |
| Render | **certificate identifier as a HII text opcode** |  |
| UnicodeSPrint | **(** |  |
| Create | **the opcode entry in template buffer** |  |
| ZeroMem | **((CHAR8 *)CertStr + 0x2, 0xE);** |  |
| Append | **cert list handle to main form handle; clean up** |  |
| HiiAppendOpCodeList | **(FormOpCodeHandle, CertListOpCodeHandle);** |  |
| Allocate | **buffers** |  |
| CertVarData | **= AllocateZeroPool (VarSize);** |  |
| Iterate | **entries and copy to CertVarCopy, skipping the deleted cert** |  |
| RemainingSize | **= (UINT32)VarSize;** |  |
| If | **an entry was deleted, compact and write the variable back** |  |
| if | **(EntryDeleted) {** |  |
| HII | **Config Access Install (sub_450 continuation)** |  |
| Allocate | **the HII Config Access protocol instance** |  |
| Private | **= AllocateZeroPool (sizeof (TLS_AUTH_CONFIG_PRIVATE));** |  |
| Build | **the Config Access protocol interface on the private struct** |  |
| ConfigAccess | **= &Private->ConfigAccess;** |  |
| Install | **the protocol** |  |
| HandlePtr | **= &Private->DriverImageHandle;** |  |
| Compare | **the GUID at CertificationEntry + 8 with the expected GUID** |  |
| return | **CompareGuid (** |  |

---
*Generated by HR650X BIOS Decompilation Project*