OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
TlsAuthConfigImpl.c File Reference

Go to the source code of this file.

Data Structures

struct  CERT_IS_PRESENT_CONTEXT
 

Macros

#define TLS_AUTH_CONFIG_VAR_BASE_ATTR   (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
 

Typedefs

typedef EFI_STATUS(* PROCESS_CERT) (IN VOID *Context, IN UINTN CertIndex, IN UINTN CertSize, IN EFI_SIGNATURE_DATA *Cert)
 

Functions

STATIC EFI_STATUS ProcessAllCerts (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN PROCESS_CERT ProcessCert, IN VOID *Context OPTIONAL)
 
STATIC EFI_STATUS LogCert (IN VOID *Context, IN UINTN CertIndex, IN UINTN CertSize, IN EFI_SIGNATURE_DATA *Cert)
 
EFI_STATUS LogInstalledCerts (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
 
STATIC EFI_STATUS CheckCertPresent (IN VOID *VoidContext, IN UINTN CertIndex, IN UINTN CertSize, IN EFI_SIGNATURE_DATA *Cert)
 
EFI_STATUS CertIsPresent (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data)
 
EFI_STATUS DeleteCertsForOwner (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data, OUT UINTN *DeletedCount)
 
EFI_STATUS EnrollX509toVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data)
 

Detailed Description

Miscellaneous routines for TLS auth config.

Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.
Copyright (c) 2024, Mike Beaton. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file TlsAuthConfigImpl.c.

Macro Definition Documentation

◆ TLS_AUTH_CONFIG_VAR_BASE_ATTR

#define TLS_AUTH_CONFIG_VAR_BASE_ATTR   (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)

Definition at line 11 of file TlsAuthConfigImpl.c.

Typedef Documentation

◆ PROCESS_CERT

typedef EFI_STATUS(* PROCESS_CERT) (IN VOID *Context, IN UINTN CertIndex, IN UINTN CertSize, IN EFI_SIGNATURE_DATA *Cert)

Definition at line 14 of file TlsAuthConfigImpl.c.

Function Documentation

◆ CertIsPresent()

EFI_STATUS CertIsPresent ( IN CHAR16 * VariableName,
IN EFI_GUID * VendorGuid,
IN EFI_GUID * OwnerGuid,
IN UINTN X509DataSize,
IN VOID * X509Data )

Report whether specified signature is already enrolled for given owner.

Parameters
[in]VariableNameVariable name of CA database.
[in]VendorGuidUnique identifier for the CA database vendor.
[in]OwnerGuidUnique identifier for owner of the certificate to be searched for.
[in]X509DataSizeCertificate data size.
[in]X509DataCertificate data.
Return values
EFI_SUCCESSCertificate is already enrolled.
EFI_OUT_OF_RESOURCESCould not allocate needed resources.

Definition at line 219 of file TlsAuthConfigImpl.c.

◆ CheckCertPresent()

STATIC EFI_STATUS CheckCertPresent ( IN VOID * VoidContext,
IN UINTN CertIndex,
IN UINTN CertSize,
IN EFI_SIGNATURE_DATA * Cert )
Return values
EFI_SUCCESSCertificate not found; continue processing.
EFI_ALREADY_STARTEDCertificate found; stop processing.

Definition at line 181 of file TlsAuthConfigImpl.c.

◆ DeleteCertsForOwner()

EFI_STATUS DeleteCertsForOwner ( IN CHAR16 * VariableName,
IN EFI_GUID * VendorGuid,
IN EFI_GUID * OwnerGuid,
IN UINTN X509DataSize,
IN VOID * X509Data,
OUT UINTN * DeletedCount )

Delete specific entry or all entries with owner guid from signature database. (Based on original EDK 2 DeleteCert which removes one cert, identified by index.)

Parameters
[in]VariableNameThe variable name of the signature database.
[in]VendorGuidA unique identifier for the signature database vendor.
[in]OwnerGuidA unique identifier for owner of the certificate(s) to be deleted.
[in]X509DataSizeOptional certificate data size.
[in]X509DataOptional certificate data. If non-NULL, delete only specific certificate for owner, if present. If NULL, delete all certificates for owner.
[in]DeletedCountOptional return count of deleted certificates.
Return values
EFI_SUCCESSDelete signature successfully.
EFI_OUT_OF_RESOURCESCould not allocate needed resources.

Definition at line 259 of file TlsAuthConfigImpl.c.

◆ EnrollX509toVariable()

EFI_STATUS EnrollX509toVariable ( IN CHAR16 * VariableName,
IN EFI_GUID * VendorGuid,
IN EFI_GUID * OwnerGuid,
IN UINTN X509DataSize,
IN VOID * X509Data )

Enroll a new X509 certificate into Variable.

Parameters
[in]VariableNameVariable name of CA database.
[in]VendorGuidUnique identifier for the CA database vendor.
[in]OwnerGuidUnique identifier for owner of the certificate to be installed.
[in]X509DataSizeCertificate data size.
[in]X509DataCertificate data.
Return values
EFI_SUCCESSNew X509 is enrolled successfully.
EFI_OUT_OF_RESOURCESCould not allocate needed resources.

Definition at line 433 of file TlsAuthConfigImpl.c.

◆ LogCert()

STATIC EFI_STATUS LogCert ( IN VOID * Context,
IN UINTN CertIndex,
IN UINTN CertSize,
IN EFI_SIGNATURE_DATA * Cert )
Return values
EFI_SUCCESSContinue processing.

Definition at line 141 of file TlsAuthConfigImpl.c.

◆ LogInstalledCerts()

EFI_STATUS LogInstalledCerts ( IN CHAR16 * VariableName,
IN EFI_GUID * VendorGuid )

Log owner GUID of each installed certificate in signature database.

Parameters
[in]VariableNameThe variable name of the signature database.
[in]VendorGuidA unique identifier for the signature database vendor.
Return values
EFI_SUCCESSSuccess.

Definition at line 161 of file TlsAuthConfigImpl.c.

◆ ProcessAllCerts()

STATIC EFI_STATUS ProcessAllCerts ( IN CHAR16 * VariableName,
IN EFI_GUID * VendorGuid,
IN PROCESS_CERT ProcessCert,
IN VOID *Context OPTIONAL )

Perform action for all signatures in specified database, with possibility of aborting early.

Parameters
[in]VariableNameThe variable name of the vendor's signature database.
[in]VendorGuidA unique identifier for the signature database vendor.
[in]ProcessCertThe method to call for each certificate.
[in]ContextContext for ProcessCert, if required.
Return values
EFI_SUCCESSLooped over all signatures.
EFI_OUT_OF_RESOURCESCould not allocate needed resources.
OtherOther error or return code from from ProcessCert.

Definition at line 43 of file TlsAuthConfigImpl.c.