SecurityPkg[ALL]: SecurityPkg Package Document

  • Main Page
  • Data Structures
  • Files

SecurityPkg Package Document

0.92

This package includes the security drivers, defintions(including PPIs/PROTOCOLs/GUIDs
and library classes) and libraries instances.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License which accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Known Issue

  • OPTIONAL macro for function parameter can not be dealed with doxygen, so it disapear in this document!

Package Basic Information

Version of DEC file specification | 0x00010005
Package Guid | 24369CAC-6AA6-4fb8-88DB-90BF061668AD

INDEX

  • Library Class
  • PCD
  • GUID
  • PPI
  • Libraries
  • Modules
Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: Library Class

SecurityPkg Package Document

Library Class

INDEX

  • common
Generated on Wed Jul 3 14:35:39 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: common

SecurityPkg Package Document » Library Class

common

INDEX

  • TpmCommLib


SecurityPkg[ALL]: TpmCommLib

SecurityPkg Package Document » Library Class » common

TpmCommLib

Definitions for common TPM commands as library API for TPM
module use.

Refer to Header File

Include/Library/TpmCommLib.h


SecurityPkg[ALL]: PCD

SecurityPkg Package Document

PCD

INDEX

  • PcdsDynamic
  • PcdsDynamicEx
  • PcdsFixedAtBuild
  • PcdsPatchableInModule


SecurityPkg[ALL]: PcdsDynamic

SecurityPkg Package Document » PCD

PcdsDynamic

INDEX

  • common


SecurityPkg[ALL]: common

SecurityPkg Package Document » PCD » PcdsDynamic

common

INDEX

  • gEfiSecurityPkgTokenSpaceGuid.PcdHideTpm
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock
  • gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdHideTpm

SecurityPkg Package Document » PCD » PcdsDynamic » common

gEfiSecurityPkgTokenSpaceGuid.PcdHideTpm

The PCD is used to control whether to hide the TPM.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdHideTpm | gEfiSecurityPkgTokenSpaceGuid | 0x00010002 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

SecurityPkg Package Document » PCD » PcdsDynamic » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

If PcdPhysicalPresenceCmdEnable is set to TRUE, physicalPresenceCMDEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceCmdEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010004 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

SecurityPkg Package Document » PCD » PcdsDynamic » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

If PcdPhysicalPresenceHwEnable is set to TRUE, physicalPresenceHWEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceHwEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010005 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

SecurityPkg Package Document » PCD » PcdsDynamic » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

Once this bit is set, it can not be cleared (It is locked for TPM life time).

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceLifetimeLock | gEfiSecurityPkgTokenSpaceGuid | 0x00010003 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

SecurityPkg Package Document » PCD » PcdsDynamic » common

gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

This PCD indicates the presence or absence of the platform operator.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdTpmPhysicalPresence | gEfiSecurityPkgTokenSpaceGuid | 0x00010001 | BOOLEAN | TRUE


SecurityPkg[ALL]: PcdsDynamicEx

SecurityPkg Package Document » PCD

PcdsDynamicEx

INDEX

  • common


SecurityPkg[ALL]: common

SecurityPkg Package Document » PCD » PcdsDynamicEx

common

INDEX

  • gEfiSecurityPkgTokenSpaceGuid.PcdHideTpm
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock
  • gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdHideTpm

SecurityPkg Package Document » PCD » PcdsDynamicEx » common

gEfiSecurityPkgTokenSpaceGuid.PcdHideTpm

The PCD is used to control whether to hide the TPM.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdHideTpm | gEfiSecurityPkgTokenSpaceGuid | 0x00010002 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

SecurityPkg Package Document » PCD » PcdsDynamicEx » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

If PcdPhysicalPresenceCmdEnable is set to TRUE, physicalPresenceCMDEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceCmdEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010004 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

SecurityPkg Package Document » PCD » PcdsDynamicEx » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

If PcdPhysicalPresenceHwEnable is set to TRUE, physicalPresenceHWEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceHwEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010005 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

SecurityPkg Package Document » PCD » PcdsDynamicEx » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

Once this bit is set, it can not be cleared (It is locked for TPM life time).

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceLifetimeLock | gEfiSecurityPkgTokenSpaceGuid | 0x00010003 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

SecurityPkg Package Document » PCD » PcdsDynamicEx » common

gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

This PCD indicates the presence or absence of the platform operator.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdTpmPhysicalPresence | gEfiSecurityPkgTokenSpaceGuid | 0x00010001 | BOOLEAN | TRUE


SecurityPkg[ALL]: PcdsFixedAtBuild

SecurityPkg Package Document » PCD

PcdsFixedAtBuild

INDEX

  • common


SecurityPkg[ALL]: common

SecurityPkg Package Document » PCD » PcdsFixedAtBuild

common

INDEX

  • gEfiSecurityPkgTokenSpaceGuid.PcdDeferImageLoadPolicy
  • gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy
  • gEfiSecurityPkgTokenSpaceGuid.PcdFixedUsbCredentialProviderTokenFileName
  • gEfiSecurityPkgTokenSpaceGuid.PcdHideTpmSupport
  • gEfiSecurityPkgTokenSpaceGuid.PcdMaxAppendVariableSize
  • gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock
  • gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy
  • gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence
  • gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdDeferImageLoadPolicy

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdDeferImageLoadPolicy

Defer Image Load policy settings.
The policy is bitwise.
If bit is set, the image from corresponding device will be trust when loading.
IMAGE_UNKNOWN 0x00000001
IMAGE_FROM_FV 0x00000002
IMAGE_FROM_OPTION_ROM 0x00000004
IMAGE_FROM_REMOVABLE_MEDIA 0x00000008
IMAGE_FROM_FIXED_MEDIA 0x00000010

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdDeferImageLoadPolicy | gEfiSecurityPkgTokenSpaceGuid | 0x0000004 | UINT32 | 0x0000001F


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy

Pcd for fixed media.
Fixed media include hard disk.
Image verification policy settings:
ALWAYS_EXECUTE 0x00000000
NEVER_EXECUTE 0x00000001
ALLOW_EXECUTE_ON_SECURITY_VIOLATION 0x00000002
DEFER_EXECUTE_ON_SECURITY_VIOLATION 0x00000003
DENY_EXECUTE_ON_SECURITY_VIOLATION 0x00000004
QUERY_USER_ON_SECURITY_VIOLATION 0x00000005

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdFixedMediaImageVerificationPolicy | gEfiSecurityPkgTokenSpaceGuid | 0x00000003 | UINT32 | 0x05


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdFixedUsbCredentialProviderTokenFileName

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdFixedUsbCredentialProviderTokenFileName

The token file name used to save credential in USB credential provider driver.
The specified file should be saved at the root directory of USB storage disk.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdFixedUsbCredentialProviderTokenFileName | gEfiSecurityPkgTokenSpaceGuid | 0x00000005 | VOID* | L"Token.bin"


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdHideTpmSupport

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdHideTpmSupport

The PCD is used to control whether to support hiding the TPM.
If TRUE, PcdHideTpm controls whether to hide the TPM.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdHideTpmSupport | gEfiSecurityPkgTokenSpaceGuid | 0x00000007 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdMaxAppendVariableSize

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdMaxAppendVariableSize

The size of Append variable buffer. This buffer is reserved for runtime use, OS can append data into one existing variable.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdMaxAppendVariableSize | gEfiSecurityPkgTokenSpaceGuid | 0x30000005 | UINT32 | 0x2000


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy

Pcd for OptionRom.
Image verification policy settings:
ALWAYS_EXECUTE 0x00000000
NEVER_EXECUTE 0x00000001
ALLOW_EXECUTE_ON_SECURITY_VIOLATION 0x00000002
DEFER_EXECUTE_ON_SECURITY_VIOLATION 0x00000003
DENY_EXECUTE_ON_SECURITY_VIOLATION 0x00000004
QUERY_USER_ON_SECURITY_VIOLATION 0x00000005

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdOptionRomImageVerificationPolicy | gEfiSecurityPkgTokenSpaceGuid | 0x00000001 | UINT32 | 0x00


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

If PcdPhysicalPresenceCmdEnable is set to TRUE, physicalPresenceCMDEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceCmdEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010004 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

If PcdPhysicalPresenceHwEnable is set to TRUE, physicalPresenceHWEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceHwEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010005 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

Once this bit is set, it can not be cleared (It is locked for TPM life time).

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceLifetimeLock | gEfiSecurityPkgTokenSpaceGuid | 0x00010003 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy

Pcd for removable media.
Removable media include CD-ROM, Floppy, USB and network.
Image verification policy settings:
ALWAYS_EXECUTE 0x00000000
NEVER_EXECUTE 0x00000001
ALLOW_EXECUTE_ON_SECURITY_VIOLATION 0x00000002
DEFER_EXECUTE_ON_SECURITY_VIOLATION 0x00000003
DENY_EXECUTE_ON_SECURITY_VIOLATION 0x00000004
QUERY_USER_ON_SECURITY_VIOLATION 0x00000005

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdRemovableMediaImageVerificationPolicy | gEfiSecurityPkgTokenSpaceGuid | 0x00000002 | UINT32 | 0x05


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

This PCD indicates the presence or absence of the platform operator.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdTpmPhysicalPresence | gEfiSecurityPkgTokenSpaceGuid | 0x00010001 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass

SecurityPkg Package Document » PCD » PcdsFixedAtBuild » common

gEfiSecurityPkgTokenSpaceGuid.PcdTpmPlatformClass

This PCD specifies the type of TCG platform that contains TPM chip.
This PCD is only avaiable when PcdTpmPhysicalPresence is TRUE.
If 0, TCG platform type is PC client.
If 1, TCG platform type is server.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdTpmPlatformClass | gEfiSecurityPkgTokenSpaceGuid | 0x00000006 | UINT8 | 0


SecurityPkg[ALL]: PcdsPatchableInModule

SecurityPkg Package Document » PCD

PcdsPatchableInModule

INDEX

  • common


SecurityPkg[ALL]: common

SecurityPkg Package Document » PCD » PcdsPatchableInModule

common

INDEX

  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable
  • gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock
  • gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

SecurityPkg Package Document » PCD » PcdsPatchableInModule » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceCmdEnable

If PcdPhysicalPresenceCmdEnable is set to TRUE, physicalPresenceCMDEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceCmdEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010004 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

SecurityPkg Package Document » PCD » PcdsPatchableInModule » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceHwEnable

If PcdPhysicalPresenceHwEnable is set to TRUE, physicalPresenceHWEnable bit will be set, else this bit will be cleared.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceHwEnable | gEfiSecurityPkgTokenSpaceGuid | 0x00010005 | BOOLEAN | TRUE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

SecurityPkg Package Document » PCD » PcdsPatchableInModule » common

gEfiSecurityPkgTokenSpaceGuid.PcdPhysicalPresenceLifetimeLock

Once this bit is set, it can not be cleared (It is locked for TPM life time).

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdPhysicalPresenceLifetimeLock | gEfiSecurityPkgTokenSpaceGuid | 0x00010003 | BOOLEAN | FALSE


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

SecurityPkg Package Document » PCD » PcdsPatchableInModule » common

gEfiSecurityPkgTokenSpaceGuid.PcdTpmPhysicalPresence

This PCD indicates the presence or absence of the platform operator.

PCD Information

Name | Token Space | Token number | Data Type | Default Value
PcdTpmPhysicalPresence | gEfiSecurityPkgTokenSpaceGuid | 0x00010001 | BOOLEAN | TRUE


SecurityPkg[ALL]: GUID

SecurityPkg Package Document

GUID

INDEX

  • common


SecurityPkg[ALL]: common

SecurityPkg Package Document » GUID

common

INDEX

  • gEfiAuthenticatedVariableGuid
  • gEfiCertDbGuid
  • gEfiCustomModeEnableGuid
  • gEfiPhysicalPresenceGuid
  • gEfiSecureBootEnableDisableGuid
  • gEfiSecurityPkgTokenSpaceGuid
  • gMeasuredFvHobGuid
  • gPwdCredentialProviderGuid
  • gSecureBootConfigFormSetGuid
  • gTcgConfigFormSetGuid
  • gTcgEventEntryHobGuid
  • gUsbCredentialProviderGuid
  • gUserIdentifyManagerGuid
  • gUserProfileManagerGuid


SecurityPkg[ALL]: gEfiAuthenticatedVariableGuid

SecurityPkg Package Document » GUID » common

gEfiAuthenticatedVariableGuid

Guid acted as the authenticated variable store header's signature, and to specify the variable list entries put in the EFI system table.
Include/Guid/AuthenticatedVariableFormat.h

Refer to Header File

SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h

GUID Information

GUID's Guid Name | GUID's Guid
gEfiAuthenticatedVariableGuid | { 0xaaf32c78, 0x947b, 0x439a, { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 } }


SecurityPkg[ALL]: gEfiCertDbGuid

SecurityPkg Package Document » GUID » common

gEfiCertDbGuid

The variable data structures are related to EDKII-specific implementation of UEFI authenticated variables. AuthenticatedVariableFormat.h defines variable data headers and variable storage region headers.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

GUID Information

GUID's Guid Name | GUID's Guid
gEfiCertDbGuid | { 0xd9bee56e, 0x75dc, 0x49d9, { 0xb4, 0xd7, 0xb5, 0x34, 0x21, 0xf, 0x63, 0x7a } }

Refer to Header File

SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h


SecurityPkg[ALL]: gEfiCustomModeEnableGuid

SecurityPkg Package Document » GUID » common

gEfiCustomModeEnableGuid

The variable data structures are related to EDKII-specific implementation of UEFI authenticated variables. AuthenticatedVariableFormat.h defines variable data headers and variable storage region headers.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Refer to Header File

SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h

GUID Information

GUID's Guid Name | GUID's Guid
gEfiCustomModeEnableGuid | { 0xc076ec0c, 0x7028, 0x4399, { 0xa0, 0x72, 0x71, 0xee, 0x5c, 0x44, 0x8b, 0x9f } }


SecurityPkg[ALL]: gEfiPhysicalPresenceGuid

SecurityPkg Package Document » GUID » common

gEfiPhysicalPresenceGuid

Include/Guid/PhysicalPresenceData.h

GUID Information

GUID's Guid Name | GUID's Guid
gEfiPhysicalPresenceGuid | { 0xf6499b1, 0xe9ad, 0x493d, { 0xb9, 0xc2, 0x2f, 0x90, 0x81, 0x5c, 0x6c, 0xbc }}

Refer to Header File

SecurityPkg/Include/Guid/PhysicalPresenceData.h


SecurityPkg[ALL]: gEfiSecureBootEnableDisableGuid

SecurityPkg Package Document » GUID » common

gEfiSecureBootEnableDisableGuid

The variable data structures are related to EDKII-specific implementation of UEFI authenticated variables. AuthenticatedVariableFormat.h defines variable data headers and variable storage region headers.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Refer to Header File

SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h

GUID Information

GUID's Guid Name | GUID's Guid
gEfiSecureBootEnableDisableGuid | { 0xf0a30bc7, 0xaf08, 0x4556, { 0x99, 0xc4, 0x0, 0x10, 0x9, 0xc9, 0x3a, 0x44 } }


SecurityPkg[ALL]: gEfiSecurityPkgTokenSpaceGuid

SecurityPkg Package Document » GUID » common

gEfiSecurityPkgTokenSpaceGuid

Security package token space guid
Include/Guid/SecurityPkgTokenSpace.h

Refer to Header File

SecurityPkg/Include/Guid/SecurityPkgTokenSpace.h

GUID Information

GUID's Guid Name | GUID's Guid
gEfiSecurityPkgTokenSpaceGuid | { 0xd3fb176, 0x9569, 0x4d51, { 0xa3, 0xef, 0x7d, 0x61, 0xc6, 0x4f, 0xea, 0xba }}


SecurityPkg[ALL]: gMeasuredFvHobGuid

SecurityPkg Package Document » GUID » common

gMeasuredFvHobGuid

Include/Guid/MeasuredFvHob.h

GUID Information

GUID's Guid Name | GUID's Guid
gMeasuredFvHobGuid | { 0xb2360b42, 0x7173, 0x420a, { 0x86, 0x96, 0x46, 0xca, 0x6b, 0xab, 0x10, 0x60 }}

Refer to Header File

SecurityPkg/Include/Guid/MeasuredFvHob.h


SecurityPkg[ALL]: gPwdCredentialProviderGuid

SecurityPkg Package Document » GUID » common

gPwdCredentialProviderGuid

Include/Guid/PwdCredentialProviderHii.h

Refer to Header File

SecurityPkg/Include/Guid/PwdCredentialProviderHii.h

GUID Information

GUID's Guid Name | GUID's Guid
gPwdCredentialProviderGuid | { 0x78b9ec8b, 0xc000, 0x46c5, { 0xac, 0x93, 0x24, 0xa0, 0xc1, 0xbb, 0x0, 0xce }}


SecurityPkg[ALL]: gSecureBootConfigFormSetGuid

SecurityPkg Package Document » GUID » common

gSecureBootConfigFormSetGuid

Include/Guid/SecureBootConfigHii.h

Refer to Header File

SecurityPkg/Include/Guid/SecureBootConfigHii.h

GUID Information

GUID's Guid Name | GUID's Guid
gSecureBootConfigFormSetGuid | { 0x5daf50a5, 0xea81, 0x4de2, {0x8f, 0x9b, 0xca, 0xbd, 0xa9, 0xcf, 0x5c, 0x14}}


SecurityPkg[ALL]: gTcgConfigFormSetGuid

SecurityPkg Package Document » GUID » common

gTcgConfigFormSetGuid

Include/Guid/TcgConfigHii.h

GUID Information

GUID's Guid Name | GUID's Guid
gTcgConfigFormSetGuid | { 0xb0f901e4, 0xc424, 0x45de, { 0x90, 0x81, 0x95, 0xe2, 0xb, 0xde, 0x6f, 0xb5 }}

Refer to Header File

SecurityPkg/Include/Guid/TcgConfigHii.h


SecurityPkg[ALL]: gTcgEventEntryHobGuid

SecurityPkg Package Document » GUID » common

gTcgEventEntryHobGuid

Include/Guid/TcgEventHob.h

GUID Information

GUID's Guid Name | GUID's Guid
gTcgEventEntryHobGuid | { 0x2e3044ac, 0x879f, 0x490f, {0x97, 0x60, 0xbb, 0xdf, 0xaf, 0x69, 0x5f, 0x50 }}

Refer to Header File

SecurityPkg/Include/Guid/TcgEventHob.h


SecurityPkg[ALL]: gUsbCredentialProviderGuid

SecurityPkg Package Document » GUID » common

gUsbCredentialProviderGuid

Include/Guid/UsbCredentialProviderHii.h

Refer to Header File

SecurityPkg/Include/Guid/UsbCredentialProviderHii.h

GUID Information

GUID's Guid Name | GUID's Guid
gUsbCredentialProviderGuid | { 0xd0849ed1, 0xa88c, 0x4ba6, { 0xb1, 0xd6, 0xab, 0x50, 0xe2, 0x80, 0xb7, 0xa9 }}


SecurityPkg[ALL]: gUserIdentifyManagerGuid

SecurityPkg Package Document » GUID » common

gUserIdentifyManagerGuid

Include/Guid/UserIdentifyManagerHii.h

Refer to Header File

SecurityPkg/Include/Guid/UserIdentifyManagerHii.h

GUID Information

GUID's Guid Name | GUID's Guid
gUserIdentifyManagerGuid | { 0x3ccd3dd8, 0x8d45, 0x4fed, { 0x96, 0x2d, 0x2b, 0x38, 0xcd, 0x82, 0xb3, 0xc4 }}


SecurityPkg[ALL]: gUserProfileManagerGuid

SecurityPkg Package Document » GUID » common

gUserProfileManagerGuid

Include/Guid/UserProfileManagerHii.h

Refer to Header File

SecurityPkg/Include/Guid/UserProfileManagerHii.h

GUID Information

GUID's Guid Name | GUID's Guid
gUserProfileManagerGuid | { 0xc35f272c, 0x97c2, 0x465a, { 0xa2, 0x16, 0x69, 0x6b, 0x66, 0x8a, 0x8c, 0xfe }}


SecurityPkg[ALL]: PPI

SecurityPkg Package Document

PPI

INDEX

  • common


SecurityPkg[ALL]: common

SecurityPkg Package Document » PPI

common

INDEX

  • gPeiLockPhysicalPresencePpiGuid
  • gPeiTpmInitializedPpiGuid


SecurityPkg[ALL]: gPeiLockPhysicalPresencePpiGuid

SecurityPkg Package Document » PPI » common

gPeiLockPhysicalPresencePpiGuid

Include/Ppi/LockPhysicalPresence.h

PPI Information

PPI's Guid Name | PPI's Guid
gPeiLockPhysicalPresencePpiGuid | { 0xef9aefe5, 0x2bd3, 0x4031, { 0xaf, 0x7d, 0x5e, 0xfe, 0x5a, 0xbb, 0x9a, 0xd } }

Refer to Header File

SecurityPkg/Include/Ppi/LockPhysicalPresence.h


SecurityPkg[ALL]: gPeiTpmInitializedPpiGuid

SecurityPkg Package Document » PPI » common

gPeiTpmInitializedPpiGuid

Include/Ppi/TpmInitialized.h

Refer to Header File

SecurityPkg/Include/Ppi/TpmInitialized.h

PPI Information

PPI's Guid Name | PPI's Guid
gPeiTpmInitializedPpiGuid | { 0xe9db0d58, 0xd48d, 0x47f6, { 0x9c, 0x6e, 0x6f, 0x40, 0xe8, 0x6c, 0x7b, 0x41 }}


SecurityPkg[ALL]: Libraries

SecurityPkg Package Document

Libraries

INDEX

  • DxeDeferImageLoadLib
  • DxeImageAuthenticationStatusLib
  • DxeImageVerificationLib
  • DxeTcgPhysicalPresenceLib
  • DxeTpmMeasureBootLib
  • DxeTpmMeasurementLib
  • PlatformSecureLibNull
  • TpmCommLib


SecurityPkg[ALL]: DxeDeferImageLoadLib

SecurityPkg Package Document » Libraries

DxeDeferImageLoadLib

The library instance provides security service of deferring image load.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 5E2FAE1F-41DA-4fbd-BC81-603CE5CD8497
Module Type | DXE_DRIVER
Module Version | 1.0
Produced Library Class | NULL
Supported Module Types | DXE_DRIVER UEFI_DRIVER DXE_RUNTIME_DRIVER UEFI_APPLICATION
Library Constructor Function | DxeDeferImageLoadLibConstructor

Pcds

PCD Name | TokenSpace | Package
PcdDeferImageLoadPolicy | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg

Guids

Name | Package
gEfiGlobalVariableGuid | MdePkg

Protocols

Name | Package
gEfiFirmwareVolume2ProtocolGuid | MdePkg
gEfiBlockIoProtocolGuid | MdePkg
gEfiSimpleFileSystemProtocolGuid | MdePkg
gEfiUserManagerProtocolGuid | MdePkg
gEfiDeferredImageLoadProtocolGuid | MdePkg
gEfiDevicePathToTextProtocolGuid | MdePkg

Library Classes

Name | Type | Package | Header File
NULL | Produce | NULL | NULL
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
SecurityManagementLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/SecurityManagementLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
DevicePathLib | Consume | MdePkg | MdePkg/Include/Library/DevicePathLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
PrintLib | Consume | MdePkg | MdePkg/Include/Library/PrintLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h

Source Files

  • SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.c
  • SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.h


SecurityPkg[ALL]: DxeImageAuthenticationStatusLib

SecurityPkg Package Document » Libraries

DxeImageAuthenticationStatusLib

The library instance provides security service of image authentication
status check in UEFI2.3.1.
Authentication Status Library module supports UEFI2.3.1

Copyright (c) 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | EB92D1DE-7C36-4680-BB88-A67E96049F72
Module Type | DXE_DRIVER
Module Version | 1.0
Produced Library Class | NULL
Supported Module Types | DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
Library Constructor Function | DxeImageAuthenticationStatusLibConstructor

Library Classes

Name | Type | Package | Header File
NULL | Produce | NULL | NULL
SecurityManagementLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/SecurityManagementLib.h

Source Files

  • SecurityPkg/Library/DxeImageAuthenticationStatusLib/DxeImageAuthenticationStatusLib.c


SecurityPkg[ALL]: DxeImageVerificationLib

SecurityPkg Package Document » Libraries

DxeImageVerificationLib

The library instance provides security service of image verification.
Image verification Library module supports UEFI2.3.1

Caution: This module requires additional review when modified.
This library will have external input - PE/COFF image.
This external input must be validated carefully to avoid security issue like
buffer overflow, integer overflow.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 0CA970E1-43FA-4402-BC0A-81AF336BFFD6
Module Type | DXE_DRIVER
Module Version | 1.0
Produced Library Class | NULL
Supported Module Types | DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
Library Constructor Function | DxeImageVerificationLibConstructor

Pcds

PCD Name | TokenSpace | Package
PcdOptionRomImageVerificationPolicy | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdRemovableMediaImageVerificationPolicy | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdFixedMediaImageVerificationPolicy | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg

Guids

Name | Package
gEfiCertTypeRsa2048Sha256Guid | MdePkg
gEfiImageSecurityDatabaseGuid | MdePkg
gEfiCertSha1Guid | MdePkg
gEfiCertSha256Guid | MdePkg
gEfiCertX509Guid | MdePkg
gEfiCertRsa2048Guid | MdePkg
gEfiCertPkcs7Guid | MdePkg

Protocols

Name | Package
gEfiFirmwareVolume2ProtocolGuid | MdePkg
gEfiBlockIoProtocolGuid | MdePkg
gEfiSimpleFileSystemProtocolGuid | MdePkg

Library Classes

Name | Type | Package | Header File
NULL | Produce | NULL | NULL
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
DevicePathLib | Consume | MdePkg | MdePkg/Include/Library/DevicePathLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
SecurityManagementLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/SecurityManagementLib.h
PeCoffLib | Consume | MdePkg | MdePkg/Include/Library/PeCoffLib.h

Source Files

  • SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
  • SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.h


SecurityPkg[ALL]: DxeTcgPhysicalPresenceLib

SecurityPkg Package Document » Libraries

DxeTcgPhysicalPresenceLib

TCG physical presence library instance. This library will lock
TPM after executing TPM request.

Caution: This module requires additional review when modified.
This driver will have external input - variable.
This external input must be validated carefully to avoid security issue.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | EBC43A46-34AC-4F07-A7F5-A5394619361C
Module Type | DXE_DRIVER
Module Version | 1.0
Produced Library Class | TcgPhysicalPresenceLib
Supported Module Types | DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER UEFI_APPLICATION UEFI_DRIVER
Library Constructor Function | TcgPhysicalPresenceLibConstructor

Protocols

Name | Package
gEfiTcgProtocolGuid | MdePkg

Guids

Name | Package
gEfiPhysicalPresenceGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
TcgPhysicalPresenceLib | Produce | NULL | NULL
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
PrintLib | Consume | MdePkg | MdePkg/Include/Library/PrintLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h

Source Files

  • SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c
  • SecurityPkg/Library/DxeTcgPhysicalPresenceLib/PhysicalPresenceStrings.uni


SecurityPkg[ALL]: DxeTpmMeasureBootLib

SecurityPkg Package Document » Libraries

DxeTpmMeasureBootLib

The library instance provides security service of TPM measure boot.

Caution: This module requires additional review when modified.
This library will have external input - PE/COFF image and GPT partition.
This external input must be validated carefully to avoid security issue like
buffer overflow, integer overflow.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 6C60C7D0-922A-4b7c-87D7-E503EDD73BBF
Module Type | DXE_DRIVER
Module Version | 1.0
Produced Library Class | NULL
Supported Module Types | DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
Library Constructor Function | DxeTpmMeasureBootLibConstructor

Protocols

Name | Package
gEfiTcgProtocolGuid | MdePkg
gEfiFirmwareVolumeBlockProtocolGuid | MdePkg
gEfiBlockIoProtocolGuid | MdePkg
gEfiDiskIoProtocolGuid | MdePkg
gEfiDevicePathToTextProtocolGuid | MdePkg

Guids

Name | Package
gMeasuredFvHobGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
NULL | Produce | NULL | NULL
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
DevicePathLib | Consume | MdePkg | MdePkg/Include/Library/DevicePathLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
PeCoffLib | Consume | MdePkg | MdePkg/Include/Library/PeCoffLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
SecurityManagementLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/SecurityManagementLib.h
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h

Source Files

  • SecurityPkg/Library/DxeTpmMeasureBootLib/DxeTpmMeasureBootLib.c


SecurityPkg[ALL]: DxeTpmMeasurementLib

SecurityPkg Package Document » Libraries

DxeTpmMeasurementLib

This library is used by other modules to measure data to TPM 1.2.

Copyright (c) 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 30930D10-AF5B-4abf-80E6-EB4FFC0AE9D1
Module Type | UEFI_DRIVER
Module Version | 1.0
Produced Library Class | TpmMeasurementLib
Supported Module Types | DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER

Protocols

Name | Package
gEfiTcgProtocolGuid | MdePkg

Library Classes

Name | Type | Package | Header File
TpmMeasurementLib | Produce | NULL | NULL
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h

Source Files

  • SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c


SecurityPkg[ALL]: PlatformSecureLibNull

SecurityPkg Package Document » Libraries

PlatformSecureLibNull

NULL PlatformSecureLib instance does NOT really detect whether a physical present
user exists but return TRUE directly. This instance can be used to verify security
related features during platform enabling and development. It should be replaced
by a platform-specific method(e.g. Button pressed) in a real platform for product.

Copyright (c) 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 7FA68D82-10A4-4e71-9524-D3D9500D3CDF
Module Type | DXE_DRIVER
Module Version | 1.0
Produced Library Class | PlatformSecureLib
Supported Module Types | DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_DRIVER

Library Classes

Name | Type | Package | Header File
PlatformSecureLib | Produce | NULL | NULL

Source Files

  • SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.c


SecurityPkg[ALL]: TpmCommLib

SecurityPkg Package Document » Libraries

TpmCommLib

TpmCommLib instance implements basis TPM Interface Specification (TIS) and TPM command functions.

Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 7d9fe32e-a6a9-4cdf-abff-10cc7f22e1c9
Module Type | PEIM
Module Version | 1.0
Produced Library Class | TpmCommLib
Supported Module Types | DXE_DRIVER UEFI_DRIVER PEIM DXE_SMM_DRIVER

Library Classes

Name | Type | Package | Header File
TpmCommLib | Produce | SecurityPkg | SecurityPkg/Include/Library/TpmCommLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
IoLib | Consume | MdePkg | MdePkg/Include/Library/IoLib.h
TimerLib | Consume | MdePkg | MdePkg/Include/Library/TimerLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h

Source Files

  • SecurityPkg/Library/TpmCommLib/TisPc.c
  • SecurityPkg/Library/TpmCommLib/TpmComm.c
  • SecurityPkg/Library/TpmCommLib/CommonHeader.h


SecurityPkg[ALL]: Modules

SecurityPkg Package Document

Modules

INDEX

  • EsalVariableDxeSal
  • PeiVariable
  • PhysicalPresencePei
  • PwdCredentialProvider
  • SecureBootConfigDxe
  • TcgConfigDxe
  • TcgDxe
  • TcgMor
  • TcgPei
  • TcgSmm
  • UsbCredentialProvider
  • UserIdentifyManager
  • UserProfileManager
  • VariableInfo
  • VariableRuntimeDxe
  • VariableSmm
  • VariableSmmRuntimeDxe


SecurityPkg[ALL]: EsalVariableDxeSal

SecurityPkg Package Document » Modules

EsalVariableDxeSal

Component description file for Extended SAL authentication variable
service module.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 14610837-4E97-4427-96E0-21D9B2956996
Module Type | DXE_SAL_DRIVER
Module Version | 1.0
Module Entry Point Function | VariableServiceInitialize

Pcds

PCD Name | TokenSpace | Package
PcdVariableCollectStatistics | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxHardwareErrorVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdVariableStoreSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdHwErrStorageSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg

Library Classes

Name | Type | Package | Header File
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
SynchronizationLib | Consume | MdePkg | MdePkg/Include/Library/SynchronizationLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
UefiRuntimeLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeLib.h
DxeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/DxeServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h
ExtendedSalLib | Consume | MdePkg | MdePkg/Include/Library/ExtendedSalLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h

Protocols

Name | Package
gEfiFirmwareVolumeBlockProtocolGuid | MdePkg
gEfiFaultTolerantWriteProtocolGuid | MdeModulePkg

Guids

Name | Package
gEfiGlobalVariableGuid | MdePkg
gEfiAuthenticatedVariableGuid | SecurityPkg
gEfiEventVirtualAddressChangeGuid | MdePkg
gEfiCertRsa2048Sha256Guid | MdePkg
gEfiImageSecurityDatabaseGuid | MdePkg

Source Files

  • SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/InitVariable.c
  • SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Reclaim.c
  • SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.c
  • SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.h
  • SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.c
  • SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.h

Module Dependencies

gEfiExtendedSalFvBlockServicesProtocolGuid AND gEfiFaultTolerantWriteProtocolGuid


SecurityPkg[ALL]: PeiVariable

SecurityPkg Package Document » Modules

PeiVariable

The component description for PEI variable driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | B1F7AF2F-2807-478c-A893-2BF4DDD1F62B
Module Type | PEIM
Module Version | 1.0
Module Entry Point Function | PeimInitializeVariableServices

Pcds

PCD Name | TokenSpace | Package
PcdFlashNvStorageVariableBase | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase64 | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg

Ppis

Name | Package
gEfiPeiReadOnlyVariable2PpiGuid | MdePkg

Guids

Name | Package
gEfiAuthenticatedVariableGuid | SecurityPkg
gEfiVariableIndexTableGuid | MdeModulePkg
gEfiSystemNvDataFvGuid | MdeModulePkg

Library Classes

Name | Type | Package | Header File
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h
PeimEntryPoint | Consume | MdePkg | MdePkg/Include/Library/PeimEntryPoint.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
PeiServicesTablePointerLib | Consume | MdePkg | MdePkg/Include/Library/PeiServicesTablePointerLib.h
PeiServicesLib | Consume | MdePkg | MdePkg/Include/Library/PeiServicesLib.h

Source Files

  • SecurityPkg/VariableAuthenticated/Pei/Variable.c
  • SecurityPkg/VariableAuthenticated/Pei/Variable.h

Module Dependencies

TRUE


SecurityPkg[ALL]: PhysicalPresencePei

SecurityPkg Package Document » Modules

PhysicalPresencePei

Component description file for physical presence PEI module.

Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 4FE772E8-FE3E-4086-B638-8C493C490488
Module Type | PEIM
Module Version | 1.0
Module Entry Point Function | PeimEntry

Pcds

PCD Name | TokenSpace | Package
PcdTpmPhysicalPresence | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg

Ppis

Name | Package
gPeiLockPhysicalPresencePpiGuid | SecurityPkg
gEfiPeiReadOnlyVariable2PpiGuid | MdePkg

Guids

Name | Package
gEfiPhysicalPresenceGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
PeimEntryPoint | Consume | MdePkg | MdePkg/Include/Library/PeimEntryPoint.h
PeiServicesLib | Consume | MdePkg | MdePkg/Include/Library/PeiServicesLib.h

Source Files

  • SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.c

Module Dependencies

gEfiPeiMemoryDiscoveredPpiGuid AND
gEfiPeiReadOnlyVariable2PpiGuid AND
gPeiTpmInitializedPpiGuid


SecurityPkg[ALL]: PwdCredentialProvider

SecurityPkg Package Document » Modules

PwdCredentialProvider

Component description file for Password Credential Provider.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | D6C589EA-DD29-49ef-97F6-1A9FE19A04E0
Module Type | UEFI_DRIVER
Module Version | 1.0
Module Entry Point Function | PasswordProviderInit

Protocols

Name | Package
gEfiDevicePathProtocolGuid | MdePkg
gEfiHiiConfigAccessProtocolGuid | MdePkg
gEfiUserCredential2ProtocolGuid | MdePkg
gEfiUserManagerProtocolGuid | MdePkg

Guids

Name | Package
gEfiUserCredentialClassPasswordGuid | MdePkg
gPwdCredentialProviderGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h

Source Files

  • SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.c
  • SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.h
  • SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderData.h
  • SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderVfr.Vfr
  • SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderStrings.uni


SecurityPkg[ALL]: SecureBootConfigDxe

SecurityPkg Package Document » Modules

SecureBootConfigDxe

Component name for SecureBoot configuration module.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | F0E6A44F-7195-41c3-AC64-54F202CD0A21
Module Type | DXE_DRIVER
Module Version | 1.0
Module Entry Point Function | SecureBootConfigDriverEntryPoint

Protocols

Name | Package
gEfiHiiConfigAccessProtocolGuid | MdePkg
gEfiHiiConfigRoutingProtocolGuid | MdePkg
gEfiSimpleFileSystemProtocolGuid | MdePkg
gEfiLoadFileProtocolGuid | MdePkg
gEfiBlockIoProtocolGuid | MdePkg
gEfiDevicePathProtocolGuid | MdePkg
gEfiDevicePathToTextProtocolGuid | MdePkg
gEfiDebugPortProtocolGuid | MdePkg

Guids

Name | Package
gEfiIfrTianoGuid | MdeModulePkg
gEfiCustomModeEnableGuid | SecurityPkg
gEfiSecureBootEnableDisableGuid | SecurityPkg
gSecureBootConfigFormSetGuid | SecurityPkg
gEfiCertPkcs7Guid | MdePkg
gEfiCertRsa2048Guid | MdePkg
gEfiCertX509Guid | MdePkg
gEfiCertSha1Guid | MdePkg
gEfiCertSha256Guid | MdePkg
gEfiCertTypeRsa2048Sha256Guid | MdePkg
gEfiImageSecurityDatabaseGuid | MdePkg
gEfiFileSystemVolumeLabelInfoIdGuid | MdePkg
gEfiGlobalVariableGuid | MdePkg
gEfiVT100PlusGuid | MdePkg
gEfiVT100Guid | MdePkg
gEfiVTUTF8Guid | MdePkg
gEfiFileInfoGuid | MdePkg
gEfiPcAnsiGuid | MdePkg
gEfiUartDevicePathGuid | MdePkg
gEfiSasDevicePathGuid | MdePkg

Library Classes

Name | Type | Package | Header File
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
UefiHiiServicesLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/UefiHiiServicesLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h
PlatformSecureLib | Consume | NULL | NULL

Source Files

  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDriver.c
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigFileExplorer.c
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDevicePath.c
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfig.vfr
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigStrings.uni
  • SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigNvData.h

Module Dependencies

gEfiHiiConfigRoutingProtocolGuid AND
gEfiHiiDatabaseProtocolGuid AND
gEfiVariableArchProtocolGuid AND
gEfiVariableWriteArchProtocolGuid


SecurityPkg[ALL]: TcgConfigDxe

SecurityPkg Package Document » Modules

TcgConfigDxe

Component name for Tcg configuration module.

Copyright (c) 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 1FA4DAFE-FA5D-4d75-BEA6-5863862C520A
Module Type | DXE_DRIVER
Module Version | 1.0
Module Entry Point Function | TcgConfigDriverEntryPoint

Pcds

PCD Name | TokenSpace | Package
PcdHideTpmSupport | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdHideTpm | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg

Protocols

Name | Package
gEfiHiiConfigAccessProtocolGuid | MdePkg
gEfiHiiConfigRoutingProtocolGuid | MdePkg
gEfiTcgProtocolGuid | MdePkg

Guids

Name | Package
gEfiPhysicalPresenceGuid | SecurityPkg
gEfiIfrTianoGuid | MdeModulePkg
gTcgConfigFormSetGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
UefiHiiServicesLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/UefiHiiServicesLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h
PrintLib | Consume | MdePkg | MdePkg/Include/Library/PrintLib.h
TpmCommLib | Consume | SecurityPkg | SecurityPkg/Include/Library/TpmCommLib.h

Source Files

  • SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDriver.c
  • SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.c
  • SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.h
  • SecurityPkg/Tcg/TcgConfigDxe/TcgConfig.vfr
  • SecurityPkg/Tcg/TcgConfigDxe/TcgConfigStrings.uni
  • SecurityPkg/Tcg/TcgConfigDxe/TcgConfigNvData.h

Module Dependencies

gEfiHiiConfigRoutingProtocolGuid AND
gEfiHiiDatabaseProtocolGuid AND
gEfiVariableArchProtocolGuid AND
gEfiVariableWriteArchProtocolGuid


SecurityPkg[ALL]: TcgDxe

SecurityPkg Package Document » Modules

TcgDxe

Component file for module TcgDxe.
This module will produce TCG protocol and measure boot environment.

Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | A5683620-7998-4bb2-A377-1C1E31E1E215
Module Type | DXE_DRIVER
Module Version | 1.0
Module Entry Point Function | DriverEntry

Pcds

PCD Name | TokenSpace | Package
PcdTpmPlatformClass | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg

Guids

Name | Package
gEfiSmbiosTableGuid | MdePkg
gEfiGlobalVariableGuid | MdePkg
gTcgEventEntryHobGuid | SecurityPkg
gEfiEventReadyToBootGuid | MdePkg
gEfiEventExitBootServicesGuid | MdePkg
gEventExitBootServicesFailedGuid | MdeModulePkg

Protocols

Name | Package
gEfiTcgProtocolGuid | MdePkg
gEfiAcpiTableProtocolGuid | MdePkg
gEfiDevicePathProtocolGuid | MdePkg
gEfiMpServiceProtocolGuid | MdePkg

Library Classes

Name | Type | Package | Header File
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
TpmCommLib | Consume | SecurityPkg | SecurityPkg/Include/Library/TpmCommLib.h
PrintLib | Consume | MdePkg | MdePkg/Include/Library/PrintLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h

Source Files

  • SecurityPkg/Tcg/TcgDxe/TcgDxe.c
  • SecurityPkg/Tcg/TcgDxe/TisDxe.c
  • SecurityPkg/Tcg/TcgDxe/TpmComm.c
  • SecurityPkg/Tcg/TcgDxe/TpmComm.h

Module Dependencies

TRUE


SecurityPkg[ALL]: TcgMor

SecurityPkg Package Document » Modules

TcgMor

Component description file for Memory Overwrite Control driver.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | AD416CE3-A483-45b1-94C2-4B4E4D575562
Module Type | DXE_DRIVER
Module Version | 1.0
Module Entry Point Function | MorDriverEntryPoint

Guids

Name | Package
gEfiMemoryOverwriteControlDataGuid | MdePkg

Library Classes

Name | Type | Package | Header File
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
ReportStatusCodeLib | Consume | MdePkg | MdePkg/Include/Library/ReportStatusCodeLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h

Source Files

  • SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.c
  • SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.h

Module Dependencies

gEfiVariableArchProtocolGuid AND
gEfiVariableWriteArchProtocolGuid AND
gEfiTcgProtocolGuid


SecurityPkg[ALL]: TcgPei

SecurityPkg Package Document » Modules

TcgPei

This module will initialize TPM device and measure FVs in PEI phase.

Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 2BE1E4A6-6505-43b3-9FFC-A3C8330E0432
Module Type | PEIM
Module Version | 1.0
Module Entry Point Function | PeimEntryMA

Pcds

PCD Name | TokenSpace | Package
PcdHideTpmSupport | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdPeiCoreMaxFvSupported | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdHideTpm | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdPhysicalPresenceLifetimeLock | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdPhysicalPresenceCmdEnable | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdPhysicalPresenceHwEnable | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg
PcdFirmwareVersionString | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg

Library Classes

Name | Type | Package | Header File
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h
PeimEntryPoint | Consume | MdePkg | MdePkg/Include/Library/PeimEntryPoint.h
PeiServicesLib | Consume | MdePkg | MdePkg/Include/Library/PeiServicesLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
TpmCommLib | Consume | SecurityPkg | SecurityPkg/Include/Library/TpmCommLib.h
TimerLib | Consume | MdePkg | MdePkg/Include/Library/TimerLib.h
IoLib | Consume | MdePkg | MdePkg/Include/Library/IoLib.h
PeiServicesTablePointerLib | Consume | MdePkg | MdePkg/Include/Library/PeiServicesTablePointerLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h

Ppis

Name | Package
gPeiLockPhysicalPresencePpiGuid | SecurityPkg
gEfiPeiFirmwareVolumeInfoPpiGuid | MdePkg
gPeiTpmInitializedPpiGuid | SecurityPkg
gEfiEndOfPeiSignalPpiGuid | MdePkg

Guids

Name | Package
gTcgEventEntryHobGuid | SecurityPkg
gMeasuredFvHobGuid | SecurityPkg

Source Files

  • SecurityPkg/Tcg/TcgPei/TcgPei.c
  • SecurityPkg/Tcg/TcgPei/TisPei.c
  • SecurityPkg/Tcg/TcgPei/TpmComm.c
  • SecurityPkg/Tcg/TcgPei/TpmComm.h

Module Dependencies

gEfiPeiMasterBootModePpiGuid AND
gEfiPeiReadOnlyVariable2PpiGuid


SecurityPkg[ALL]: TcgSmm

SecurityPkg Package Document » Modules

TcgSmm

This driver implements TPM definition block in ACPI table and
registers SMI callback functions for physical presence and
MemoryClear to handle the requests from ACPI method.

Caution: This module requires additional review when modified.
This driver will have external input - variable and ACPINvs data in SMM mode.
This external input must be validated carefully to avoid security issue.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 42293093-76B9-4482-8C02-3BEFDEA9B35D
Module Type | DXE_SMM_DRIVER
PI Specification Version | 0x0001000A
Module Version | 1.0
Module Entry Point Function | InitializeTcgSmm

Protocols

Name | Package
gEfiSmmSwDispatch2ProtocolGuid | MdePkg
gEfiSmmVariableProtocolGuid | MdeModulePkg
gEfiAcpiTableProtocolGuid | MdePkg

Guids

Name | Package
gEfiPhysicalPresenceGuid | SecurityPkg
gEfiMemoryOverwriteControlDataGuid | MdePkg

Library Classes

Name | Type | Package | Header File
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
SmmServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/SmmServicesTableLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
DxeServicesLib | Consume | MdePkg | MdePkg/Include/Library/DxeServicesLib.h
TpmMeasurementLib | Consume | NULL | NULL

Source Files

  • SecurityPkg/Tcg/TcgSmm/TcgSmm.c
  • SecurityPkg/Tcg/TcgSmm/TcgSmm.h
  • SecurityPkg/Tcg/TcgSmm/Tpm.asl

Module Dependencies

gEfiAcpiTableProtocolGuid AND
gEfiSmmSwDispatch2ProtocolGuid AND
gEfiSmmVariableProtocolGuid AND
gEfiTcgProtocolGuid


SecurityPkg[ALL]: UsbCredentialProvider

SecurityPkg Package Document » Modules

UsbCredentialProvider

Component description file for USB Credential Provider.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 672A0C68-2BF0-46f9-93C3-C4E7DC0FA555
Module Type | UEFI_DRIVER
Module Version | 1.0
Module Entry Point Function | UsbProviderInit

Pcds

PCD Name | TokenSpace | Package
PcdFixedUsbCredentialProviderTokenFileName | gEfiSecurityPkgTokenSpaceGuid | SecurityPkg

Guids

Name | Package
gUsbCredentialProviderGuid | SecurityPkg
gEfiFileInfoGuid | MdePkg
gEfiUserCredentialClassSecureCardGuid | MdePkg

Protocols

Name | Package
gEfiDevicePathProtocolGuid | MdePkg
gEfiUserCredential2ProtocolGuid | MdePkg
gEfiUserManagerProtocolGuid | MdePkg
gEfiBlockIoProtocolGuid | MdePkg
gEfiSimpleFileSystemProtocolGuid | MdePkg

Library Classes

Name | Type | Package | Header File
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h

Source Files

  • SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.c
  • SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.h
  • SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProviderStrings.uni


SecurityPkg[ALL]: UserIdentifyManager

SecurityPkg Package Document » Modules

UserIdentifyManager

Component description file for user identify manager driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | C5D3191B-27D5-4873-8DF2-628136991A21
Module Type | DXE_DRIVER
Module Version | 1.0
Module Entry Point Function | UserIdentifyManagerInit

Protocols

Name | Package
gEfiFormBrowser2ProtocolGuid | MdePkg
gEfiHiiDatabaseProtocolGuid | MdePkg
gEfiUserCredential2ProtocolGuid | MdePkg
gEfiDeferredImageLoadProtocolGuid | MdePkg
gEfiHiiConfigAccessProtocolGuid | MdePkg
gEfiUserManagerProtocolGuid | MdePkg
gEfiSimpleTextOutProtocolGuid | MdePkg
gEfiSimpleTextInProtocolGuid | MdePkg
gEfiSimpleTextInputExProtocolGuid | MdePkg

Guids

Name | Package
gEfiIfrTianoGuid | MdeModulePkg
gEfiEventUserProfileChangedGuid | MdePkg
gUserIdentifyManagerGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h

Source Files

  • SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.c
  • SecurityPkg/UserIdentification/UserIdentifyManagerDxe/LoadDeferredImage.c
  • SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.h
  • SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerData.h
  • SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerStrings.uni
  • SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerVfr.Vfr

Module Dependencies

gEfiHiiDatabaseProtocolGuid AND
gEfiHiiStringProtocolGuid AND
gEfiFormBrowser2ProtocolGuid


SecurityPkg[ALL]: UserProfileManager

SecurityPkg Package Document » Modules

UserProfileManager

Component description file for user profile manager driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | E38CB52D-A74D-45db-A8D0-290C9B21BBF2
Module Type | DXE_DRIVER
Module Version | 1.0
Module Entry Point Function | UserProfileManagerInit

Protocols

Name | Package
gEfiDevicePathProtocolGuid | MdePkg
gEfiHiiConfigAccessProtocolGuid | MdePkg
gEfiUserCredential2ProtocolGuid | MdePkg
gEfiUserManagerProtocolGuid | MdePkg
gEfiDevicePathToTextProtocolGuid | MdePkg

Guids

Name | Package
gEfiIfrTianoGuid | MdeModulePkg
gEfiUserInfoAccessSetupAdminGuid | MdePkg
gEfiUserInfoAccessSetupNormalGuid | MdePkg
gEfiUserInfoAccessSetupRestrictedGuid | MdePkg
gUserProfileManagerGuid | SecurityPkg

Library Classes

Name | Type | Package | Header File
UefiRuntimeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeServicesTableLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
HiiLib | Consume | MdeModulePkg | MdeModulePkg/Include/Library/HiiLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h

Source Files

  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.c
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.h
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileAdd.c
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileModify.c
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyIdentityPolicy.c
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyAccessPolicy.c
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerData.h
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerStrings.uni
  • SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerVfr.Vfr

Module Dependencies

gEfiUserManagerProtocolGuid


SecurityPkg[ALL]: VariableInfo

SecurityPkg Package Document » Modules

VariableInfo

This is a shell application that will display statistical information
about variable usage.
Note that if Variable Dxe driver doesn't enable the feature by setting
PcdVariableCollectStatistics as TRUE, The application will not display
variable statistical information.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | B9EF901F-A2A2-4fc8-8D2B-3A2E07B301CC
Module Type | UEFI_APPLICATION
Module Version | 1.0
Module Entry Point Function | UefiMain

Protocols

Name | Package
gEfiSmmCommunicationProtocolGuid | MdePkg
gEfiSmmVariableProtocolGuid | MdeModulePkg

Guids

Name | Package
gEfiAuthenticatedVariableGuid | SecurityPkg
gEfiVariableGuid | MdeModulePkg

Library Classes

Name | Type | Package | Header File
UefiApplicationEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiApplicationEntryPoint.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h

Source Files

  • SecurityPkg/Application/VariableInfo/VariableInfo.c


SecurityPkg[ALL]: VariableRuntimeDxe

SecurityPkg Package Document » Modules

VariableRuntimeDxe

Component description file for Authenticated Variable module.

Caution: This module requires additional review when modified.
This driver will have external input - variable data.
This external input must be validated carefully to avoid security issue like
buffer overflow, integer overflow.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 2226F30F-3D5B-402d-9936-A97184EB4516
Module Type | DXE_RUNTIME_DRIVER
Module Version | 1.0
Module Entry Point Function | VariableServiceInitialize

Pcds

PCD Name | TokenSpace | Package
PcdVariableCollectStatistics | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase64 | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxHardwareErrorVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdVariableStoreSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdHwErrStorageSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg

Protocols

Name | Package
gEfiFirmwareVolumeBlockProtocolGuid | MdePkg
gEfiVariableWriteArchProtocolGuid | MdePkg
gEfiVariableArchProtocolGuid | MdePkg
gEfiFaultTolerantWriteProtocolGuid | MdeModulePkg

Library Classes

Name | Type | Package | Header File
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
SynchronizationLib | Consume | MdePkg | MdePkg/Include/Library/SynchronizationLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
UefiRuntimeLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeLib.h
DxeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/DxeServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
PlatformSecureLib | Consume | NULL | NULL
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h

Guids

Name | Package
gEfiAuthenticatedVariableGuid | SecurityPkg
gEfiGlobalVariableGuid | MdePkg
gEfiEventVirtualAddressChangeGuid | MdePkg
gEfiCertTypeRsa2048Sha256Guid | MdePkg
gEfiImageSecurityDatabaseGuid | MdePkg
gEfiCertX509Guid | MdePkg
gEfiCertPkcs7Guid | MdePkg
gEfiCertRsa2048Guid | MdePkg
gEfiSecureBootEnableDisableGuid | SecurityPkg
gEfiCustomModeEnableGuid | SecurityPkg
gEfiSystemNvDataFvGuid | MdeModulePkg
gEfiCertDbGuid | SecurityPkg
gEfiHardwareErrorVariableGuid | MdePkg

Source Files

  • SecurityPkg/VariableAuthenticated/RuntimeDxe/Reclaim.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.h

Module Dependencies

gEfiFirmwareVolumeBlockProtocolGuid AND gEfiFaultTolerantWriteProtocolGuid


SecurityPkg[ALL]: VariableSmm

SecurityPkg Package Document » Modules

VariableSmm

Component description file for SMM Authenticated Variable module.

This module installs SMM variable protocol into SMM protocol database,
which can be used by SMM driver, and installs SMM variable protocol
into BS protocol database, which can be used to notify the SMM Runtime
Dxe driver that the SMM variable service is ready.
This module should be used with SMM Runtime DXE module together. The
SMM Runtime DXE module would install variable arch protocol and variable
write arch protocol based on SMM variable module.

Caution: This module requires additional review when modified.
This driver will have external input - variable data and communicate buffer in SMM mode.
This external input must be validated carefully to avoid security issue like
buffer overflow, integer overflow.

Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | D34BDC5E-968A-40f5-A48C-E594F45AE211
Module Type | DXE_SMM_DRIVER
Module Version | 1.0
PI Specification Version | 0x0001000A
Module Entry Point Function | VariableServiceInitialize

Pcds

PCD Name | TokenSpace | Package
PcdVariableCollectStatistics | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase64 | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxHardwareErrorVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdVariableStoreSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdHwErrStorageSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg

Protocols

Name | Package
gEfiSmmFirmwareVolumeBlockProtocolGuid | MdeModulePkg
gEfiSmmVariableProtocolGuid | MdeModulePkg
gEfiSmmFaultTolerantWriteProtocolGuid | MdeModulePkg
gEfiSmmAccess2ProtocolGuid | MdePkg

Guids

Name | Package
gEfiAuthenticatedVariableGuid | SecurityPkg
gEfiGlobalVariableGuid | MdePkg
gSmmVariableWriteGuid | MdeModulePkg
gEfiCertTypeRsa2048Sha256Guid | MdePkg
gEfiImageSecurityDatabaseGuid | MdePkg
gEfiCertX509Guid | MdePkg
gEfiCertPkcs7Guid | MdePkg
gEfiCertRsa2048Guid | MdePkg
gEfiSecureBootEnableDisableGuid | SecurityPkg
gEfiCustomModeEnableGuid | SecurityPkg
gEfiSystemNvDataFvGuid | MdeModulePkg
gEfiCertDbGuid | SecurityPkg
gEfiHardwareErrorVariableGuid | MdePkg

Library Classes

Name | Type | Package | Header File
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
SynchronizationLib | Consume | MdePkg | MdePkg/Include/Library/SynchronizationLib.h
UefiLib | Consume | MdePkg | MdePkg/Include/Library/UefiLib.h
SmmServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/SmmServicesTableLib.h
BaseMemoryLib | Consume | MdePkg | MdePkg/Include/Library/BaseMemoryLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
DxeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/DxeServicesTableLib.h
BaseCryptLib | Consume | CryptoPkg | CryptoPkg/Include/Library/BaseCryptLib.h
PlatformSecureLib | Consume | NULL | NULL
HobLib | Consume | MdePkg | MdePkg/Include/Library/HobLib.h

Source Files

  • SecurityPkg/VariableAuthenticated/RuntimeDxe/Reclaim.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.c
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
  • SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.h

Module Dependencies

TRUE


SecurityPkg[ALL]: VariableSmmRuntimeDxe

SecurityPkg Package Document » Modules

VariableSmmRuntimeDxe

Component description file for Authenticated Variable SmmRuntimeDxe module.

This module is the Runtime DXE part correspond to SMM variable module. It
installs variable arch protocol and variable write arch protocol and works
with SMM variable module together.

Caution: This module requires additional review when modified.
This driver will have external input - variable data.
This external input must be validated carefully to avoid security issue like
buffer overflow, integer overflow.

Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.

This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Basic Module Information

Version of INF file specification | 0x00010005
Module Guid | 067E2381-7234-4798-B49C-D5FECBFF6D07
Module Type | DXE_RUNTIME_DRIVER
Module Version | 1.0
Module Entry Point Function | VariableSmmRuntimeInitialize

Pcds

PCD Name | TokenSpace | Package
PcdMaxVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdMaxHardwareErrorVariableSize | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg
PcdFlashNvStorageVariableBase | gEfiMdeModulePkgTokenSpaceGuid | MdeModulePkg

Protocols

Name | Package
gEfiVariableWriteArchProtocolGuid | MdePkg
gEfiVariableArchProtocolGuid | MdePkg
gEfiSmmCommunicationProtocolGuid | MdePkg
gEfiSmmVariableProtocolGuid | MdeModulePkg

Guids

Name | Package
gEfiEventVirtualAddressChangeGuid | MdePkg
gSmmVariableWriteGuid | MdeModulePkg

Library Classes

Name | Type | Package | Header File
MemoryAllocationLib | Consume | MdePkg | MdePkg/Include/Library/MemoryAllocationLib.h
BaseLib | Consume | MdePkg | MdePkg/Include/Library/BaseLib.h
UefiBootServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/UefiBootServicesTableLib.h
DebugLib | Consume | MdePkg | MdePkg/Include/Library/DebugLib.h
UefiRuntimeLib | Consume | MdePkg | MdePkg/Include/Library/UefiRuntimeLib.h
DxeServicesTableLib | Consume | MdePkg | MdePkg/Include/Library/DxeServicesTableLib.h
UefiDriverEntryPoint | Consume | MdePkg | MdePkg/Include/Library/UefiDriverEntryPoint.h
PcdLib | Consume | MdePkg | MdePkg/Include/Library/PcdLib.h

Source Files

  • SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxe.c

Module Dependencies

gEfiSmmCommunicationProtocolGuid


SecurityPkg[ALL]: Data Structures

  • Data Fields

Data Structures

Here are the data structures with brief descriptions:
_CPL_KEY_INFO
_PEI_LOCK_PHYSICAL_PRESENCE_PPI
_VARIABLE_INFO_ENTRY
AML_OP_REGION_32_8
AUTH_CERT_DB_DATA
CREDENTIAL_PROVIDER_INFO
CREDENTIAL_TABLE
DEFERRED_IMAGE_INFO
DEFERRED_IMAGE_TABLE
DEVICE_PATH_STRING_TABLE
EFI_IMAGE_SECURITY_DATA_DIRECTORY
EFI_PHYSICAL_PRESENCE
EFI_SIGNATURE_ITEM
ESAL_VARIABLE_GLOBAL
HASH_TABLE
HII_VENDOR_DEVICE_PATH
ISCSI_DEVICE_PATH_WITH_NAME
MEASURED_HOB_DATA
MEMORY_CLEAR_NVS
PASSWORD_CREDENTIAL_INFO
PASSWORD_INFO
PHYSICAL_PRESENCE_NVS
POOL_PRINT
PWD_PROVIDER_CALLBACK_INFO
SECUREBOOT_CONFIG_PRIVATE_DATA
SECUREBOOT_CONFIGURATION
SECUREBOOT_FILE_CONTEXT
SECUREBOOT_MENU_ENTRY
SECUREBOOT_MENU_OPTION
TCG_CONFIG_PRIVATE_DATA
TCG_CONFIGURATION
TCG_NVS
TIS_PC_REGISTERS
TPM_CMD_EXTEND
TPM_CMD_GET_CAPABILITY
TPM_CMD_PHYSICAL_PRESENCE
TPM_CMD_SELF_TEST
TPM_CMD_START_UP
USB_CREDENTIAL_INFO
USB_INFO
USB_PROVIDER_CALLBACK_INFO
USER_INFO
USER_INFO_ACCESS
USER_MANAGER_CALLBACK_INFO
USER_PROFILE_DB
USER_PROFILE_ENTRY
USER_PROFILE_MANAGER_CALLBACK_INFO
VARIABLE_CACHE_ENTRY
VARIABLE_GLOBAL
VARIABLE_HEADER
VARIABLE_MODULE_GLOBAL
VARIABLE_POINTER_TRACK
VARIABLE_STORE_HEADER
VENDOR_DEVICE_PATH_WITH_DATA
WIN_CERTIFICATE_EFI_PKCS


SecurityPkg[ALL]: _CPL_KEY_INFO Struct Reference

  • Data Fields

_CPL_KEY_INFO Struct Reference

Data Fields

UINT32 | KeyLengthInBits
UINT32 | BlockSize
UINT32 | CipherBlockSize
UINT32 | KeyType
UINT32 | CipherMode
UINT32 | Flags

Field Documentation

UINT32 _CPL_KEY_INFO::BlockSize

UINT32 _CPL_KEY_INFO::CipherBlockSize

UINT32 _CPL_KEY_INFO::CipherMode

UINT32 _CPL_KEY_INFO::Flags

UINT32 _CPL_KEY_INFO::KeyLengthInBits

Referenced by EnrollRsa2048ToKek().

UINT32 _CPL_KEY_INFO::KeyType


SecurityPkg[ALL]: _PEI_LOCK_PHYSICAL_PRESENCE_PPI Struct Reference

  • Data Fields

_PEI_LOCK_PHYSICAL_PRESENCE_PPI Struct Reference

Data Fields

PEI_LOCK_PHYSICAL_PRESENCE LockPhysicalPresence

Detailed Description

This service abstracts TPM physical presence lock interface. It is necessary for safety to convey this information to the TPM driver so that TPM physical presence can be locked as early as possible. This PPI is produced by a platform specific PEIM and consumed by the TPM PEIM.

Field Documentation

PEI_LOCK_PHYSICAL_PRESENCE _PEI_LOCK_PHYSICAL_PRESENCE_PPI::LockPhysicalPresence

Referenced by PhysicalPresencePpiNotifyCallback().


SecurityPkg[ALL]: _VARIABLE_INFO_ENTRY Struct Reference

  • Data Fields

_VARIABLE_INFO_ENTRY Struct Reference

Data Fields

VARIABLE_INFO_ENTRY * Next
Pointer to next entry.
EFI_GUID | VendorGuid
Guid of Variable.
CHAR16 * | Name
Name of Variable.
UINT32 | Attributes
Attributes of variable defined in UEFI spec.
UINT32 | ReadCount
Number of times to read this variable.
UINT32 | WriteCount
Number of times to write this variable.
UINT32 | DeleteCount
Number of times to delete this variable.
UINT32 | CacheCount
Number of times that cache hits this variable.
BOOLEAN | Volatile
TRUE if volatile, FALSE if non-volatile.

Detailed Description

This structure contains the variable list that is put in EFI system table. The variable driver collects all variables that were used at boot service time and produces this list. This is an optional feature to dump all used variables in shell environment.

Field Documentation

UINT32 _VARIABLE_INFO_ENTRY::Attributes

Attributes of variable defined in UEFI spec.

UINT32 _VARIABLE_INFO_ENTRY::CacheCount

Number of times that cache hits this variable.

Referenced by PrintInfoFromSmm(), UefiMain(), and UpdateVariableInfo().

UINT32 _VARIABLE_INFO_ENTRY::DeleteCount

Number of times to delete this variable.

Referenced by PrintInfoFromSmm(), UefiMain(), and UpdateVariableInfo().

CHAR16* _VARIABLE_INFO_ENTRY::Name

Name of Variable.

Referenced by SmmVariableGetStatistics(), UefiMain(), and UpdateVariableInfo().

VARIABLE_INFO_ENTRY* _VARIABLE_INFO_ENTRY::Next

Pointer to next entry.

Referenced by SmmVariableGetStatistics(), UefiMain(), and UpdateVariableInfo().

UINT32 _VARIABLE_INFO_ENTRY::ReadCount

Number of times to read this variable.

Referenced by PrintInfoFromSmm(), UefiMain(), and UpdateVariableInfo().

EFI_GUID _VARIABLE_INFO_ENTRY::VendorGuid

Guid of Variable.

Referenced by PrintInfoFromSmm(), SmmVariableGetStatistics(), UefiMain(), and UpdateVariableInfo().

BOOLEAN _VARIABLE_INFO_ENTRY::Volatile

TRUE if volatile, FALSE if non-volatile.

Referenced by PrintInfoFromSmm(), UefiMain(), and UpdateVariableInfo().

UINT32 _VARIABLE_INFO_ENTRY::WriteCount

Number of times to write this variable.

Referenced by PrintInfoFromSmm(), UefiMain(), and UpdateVariableInfo().


SecurityPkg[ALL]: AML_OP_REGION_32_8 Struct Reference

  • Data Fields

AML_OP_REGION_32_8 Struct Reference

Data Fields

UINT8 | OpRegionOp
UINT32 | NameString
UINT8 | RegionSpace
UINT8 | DWordPrefix
UINT32 | RegionOffset
UINT8 | BytePrefix
UINT8 | RegionLen

Field Documentation

UINT8 AML_OP_REGION_32_8::BytePrefix

Referenced by AssignOpRegion().

UINT8 AML_OP_REGION_32_8::DWordPrefix

Referenced by AssignOpRegion().

UINT32 AML_OP_REGION_32_8::NameString

Referenced by AssignOpRegion().

UINT8 AML_OP_REGION_32_8::OpRegionOp

Referenced by AssignOpRegion().

UINT8 AML_OP_REGION_32_8::RegionLen

Referenced by AssignOpRegion().

UINT32 AML_OP_REGION_32_8::RegionOffset

Referenced by AssignOpRegion().

UINT8 AML_OP_REGION_32_8::RegionSpace


SecurityPkg[ALL]: AUTH_CERT_DB_DATA Struct Reference

  • Data Fields

AUTH_CERT_DB_DATA Struct Reference

Data Fields

EFI_GUID | VendorGuid
UINT32 | CertNodeSize
UINT32 | NameSize
UINT32 | CertDataSize

Field Documentation

UINT32 AUTH_CERT_DB_DATA::CertDataSize

Referenced by FindCertsFromDb(), and InsertCertsToDb().

UINT32 AUTH_CERT_DB_DATA::CertNodeSize

Referenced by FindCertsFromDb(), and InsertCertsToDb().

UINT32 AUTH_CERT_DB_DATA::NameSize

Referenced by FindCertsFromDb(), and InsertCertsToDb().

EFI_GUID AUTH_CERT_DB_DATA::VendorGuid

Referenced by FindCertsFromDb(), and InsertCertsToDb().


SecurityPkg[ALL]: CREDENTIAL_PROVIDER_INFO Struct Reference

  • Data Fields

CREDENTIAL_PROVIDER_INFO Struct Reference

Data Fields

UINTN | Count
EFI_USER_CREDENTIAL2_PROTOCOL * | Provider [1]

Field Documentation

UINTN CREDENTIAL_PROVIDER_INFO::Count

Referenced by AddIdentityPolicyItem(), AddProviderSelection(), DeleteUserOnProvider(), EnrollUserOnProvider(), IdentifyByProviderId(), IdentifyUser(), InitProviderInfo(), ModifyIdentityPolicy(), and ResolveIdentityPolicy().

EFI_USER_CREDENTIAL2_PROTOCOL * CREDENTIAL_PROVIDER_INFO::Provider

Referenced by AddIdentityPolicyItem(), AddProviderSelection(), DeleteUserOnProvider(), EnrollUserOnProvider(), IdentifyAutoLogonUser(), IdentifyByProviderId(), IdentifyUser(), InitProviderInfo(), ModifyIdentityPolicy(), ResolveIdentityPolicy(), and UserIdentifyManagerCallback().


SecurityPkg[ALL]: CREDENTIAL_TABLE Struct Reference

  • Data Fields

CREDENTIAL_TABLE Struct Reference

Data Fields

UINTN | Count
UINTN | MaxCount
UINTN | ValidIndex
PASSWORD_INFO | UserInfo [1]
USB_INFO | UserInfo [1]

Field Documentation

UINTN CREDENTIAL_TABLE::Count

Referenced by CheckPassword(), CredentialDelete(), CredentialEnroll(), CredentialUser(), ExpandTableSize(), InitCredentialTable(), and ModifyTable().

UINTN CREDENTIAL_TABLE::MaxCount

Referenced by ExpandTableSize(), InitCredentialTable(), and ModifyTable().

USB_INFO CREDENTIAL_TABLE::UserInfo[1]

PASSWORD_INFO CREDENTIAL_TABLE::UserInfo[1]

Referenced by CheckPassword(), CredentialDelete(), CredentialEnroll(), CredentialUser(), ExpandTableSize(), InitCredentialTable(), and ModifyTable().

UINTN CREDENTIAL_TABLE::ValidIndex

Referenced by CheckPassword(), CredentialUser(), ExpandTableSize(), and InitCredentialTable().


SecurityPkg[ALL]: DEFERRED_IMAGE_INFO Struct Reference

  • Data Fields

DEFERRED_IMAGE_INFO Struct Reference

Data Fields

EFI_DEVICE_PATH_PROTOCOL * | ImageDevicePath
VOID * | Image
UINTN | ImageSize
BOOLEAN | BootOption

Field Documentation

BOOLEAN DEFERRED_IMAGE_INFO::BootOption

Referenced by GetDefferedImageInfo(), and PutDefferedImageInfo().

VOID* DEFERRED_IMAGE_INFO::Image

Referenced by GetDefferedImageInfo(), and PutDefferedImageInfo().

EFI_DEVICE_PATH_PROTOCOL* DEFERRED_IMAGE_INFO::ImageDevicePath

Referenced by GetDefferedImageInfo(), and PutDefferedImageInfo().

UINTN DEFERRED_IMAGE_INFO::ImageSize

Referenced by GetDefferedImageInfo(), and PutDefferedImageInfo().


SecurityPkg[ALL]: DEFERRED_IMAGE_TABLE Struct Reference

  • Data Fields

DEFERRED_IMAGE_TABLE Struct Reference

Data Fields

UINTN Count
deferred image count
DEFERRED_IMAGE_INFO * ImageInfo
deferred image item

Field Documentation

UINTN DEFERRED_IMAGE_TABLE::Count

deferred image count

Referenced by GetDefferedImageInfo(), and PutDefferedImageInfo().

DEFERRED_IMAGE_INFO* DEFERRED_IMAGE_TABLE::ImageInfo

deferred image item

Referenced by GetDefferedImageInfo(), and PutDefferedImageInfo().


SecurityPkg[ALL]: DEVICE_PATH_STRING_TABLE Struct Reference

  • Data Fields

DEVICE_PATH_STRING_TABLE Struct Reference

Data Fields

UINT8 | Type
UINT8 | SubType
DEV_PATH_FUNCTION Function

Field Documentation

DEV_PATH_FUNCTION DEVICE_PATH_STRING_TABLE::Function

Referenced by DevicePathToStr().

UINT8 DEVICE_PATH_STRING_TABLE::SubType

UINT8 DEVICE_PATH_STRING_TABLE::Type


SecurityPkg[ALL]: EFI_IMAGE_SECURITY_DATA_DIRECTORY Struct Reference

  • Data Fields

EFI_IMAGE_SECURITY_DATA_DIRECTORY Struct Reference

Data Fields

UINT32 | Offset
UINT32 | SizeOfCert

Field Documentation

UINT32 EFI_IMAGE_SECURITY_DATA_DIRECTORY::Offset

Referenced by EnrollImageSignatureToSigDB(), and HashPeImageByType().

UINT32 EFI_IMAGE_SECURITY_DATA_DIRECTORY::SizeOfCert

Referenced by EnrollImageSignatureToSigDB().


SecurityPkg[ALL]: EFI_PHYSICAL_PRESENCE Struct Reference

  • Data Fields

EFI_PHYSICAL_PRESENCE Struct Reference

Data Fields

UINT8 | PPRequest
Physical Presence request command.
UINT8 | LastPPRequest
UINT32 | PPResponse
UINT8 | Flags

Field Documentation

UINT8 EFI_PHYSICAL_PRESENCE::Flags

Referenced by PhysicalPresenceCallback(), and TcgPhysicalPresenceLibProcessRequest().

UINT8 EFI_PHYSICAL_PRESENCE::LastPPRequest

Referenced by PhysicalPresenceCallback().

UINT8 EFI_PHYSICAL_PRESENCE::PPRequest

Physical Presence request command.

Referenced by LockTpmPhysicalPresence(), PhysicalPresenceCallback(), SavePpRequest(), TcgPhysicalPresenceLibNeedUserConfirm(), and TcgPhysicalPresenceLibProcessRequest().

UINT32 EFI_PHYSICAL_PRESENCE::PPResponse

Referenced by PhysicalPresenceCallback(), and TcgPhysicalPresenceLibProcessRequest().


SecurityPkg[ALL]: EFI_SIGNATURE_ITEM Struct Reference

  • Data Fields

EFI_SIGNATURE_ITEM Struct Reference

Data Fields

EFI_GUID | SigType
UINT32 | SigHeaderSize
UINT32 | SigDataSize

Detailed Description

Struct to record signature requirement defined by UEFI spec. For SigHeaderSize and SigDataSize, ((UINT32) ~0) means NO exact length requirement for this field.

Field Documentation

UINT32 EFI_SIGNATURE_ITEM::SigDataSize

UINT32 EFI_SIGNATURE_ITEM::SigHeaderSize

Referenced by CheckSignatureListFormat().

EFI_GUID EFI_SIGNATURE_ITEM::SigType

Referenced by CheckSignatureListFormat().


SecurityPkg[ALL]: ESAL_VARIABLE_GLOBAL Struct Reference

  • Data Fields

ESAL_VARIABLE_GLOBAL Struct Reference

Data Fields

VARIABLE_GLOBAL | VariableGlobal [2]
CHAR16 * | VariableName [2][NUM_VAR_NAME]
EFI_GUID * | GlobalVariableGuid [2]
UINTN | VolatileLastVariableOffset
UINTN | NonVolatileLastVariableOffset
UINTN | CommonVariableTotalSize
UINTN | HwErrVariableTotalSize
CHAR8 * | PlatformLangCodes [2]
CHAR8 * | LangCodes [2]
CHAR8 * | PlatformLang [2]
CHAR8 | Lang [ISO_639_2_ENTRY_SIZE+1]
UINT32 | FvbInstance
UINT32 | ReentrantState
EFI_GUID * | AuthenticatedVariableGuid [2]
EFI_GUID * | CertRsa2048Sha256Guid [2]
EFI_GUID * | ImageSecurityDatabaseGuid [2]
VOID * | HashContext [2]
UINT8 | KeyList [MAX_KEYDB_SIZE]
UINT8 | PubKeyStore [MAX_KEYDB_SIZE]

Field Documentation

EFI_GUID* ESAL_VARIABLE_GLOBAL::AuthenticatedVariableGuid[2]

Referenced by AutenticatedVariableServiceInitialize(), and VariableClassAddressChangeEvent().

EFI_GUID* ESAL_VARIABLE_GLOBAL::CertRsa2048Sha256Guid[2]

Referenced by AutenticatedVariableServiceInitialize(), and VariableClassAddressChangeEvent().

UINTN ESAL_VARIABLE_GLOBAL::CommonVariableTotalSize

Referenced by ReclaimForOS(), and VariableCommonInitialize().

UINT32 ESAL_VARIABLE_GLOBAL::FvbInstance

Referenced by AutenticatedVariableServiceInitialize(), FtwNotificationEvent(), SmmFtwNotificationEvent(), VariableClassAddressChangeEvent(), and VariableCommonInitialize().

EFI_GUID* ESAL_VARIABLE_GLOBAL::GlobalVariableGuid[2]

Referenced by VariableClassAddressChangeEvent(), and VariableCommonInitialize().

VOID* ESAL_VARIABLE_GLOBAL::HashContext[2]

Referenced by AutenticatedVariableServiceInitialize(), and VariableClassAddressChangeEvent().

UINTN ESAL_VARIABLE_GLOBAL::HwErrVariableTotalSize

Referenced by ReclaimForOS(), and VariableCommonInitialize().

EFI_GUID* ESAL_VARIABLE_GLOBAL::ImageSecurityDatabaseGuid[2]

Referenced by AutenticatedVariableServiceInitialize(), and VariableClassAddressChangeEvent().

UINT8 ESAL_VARIABLE_GLOBAL::KeyList[MAX_KEYDB_SIZE]

CHAR8 ESAL_VARIABLE_GLOBAL::Lang[ISO_639_2_ENTRY_SIZE+1]

Referenced by VariableGetBestLanguage().

CHAR8* ESAL_VARIABLE_GLOBAL::LangCodes[2]

Referenced by VariableClassAddressChangeEvent().

UINTN ESAL_VARIABLE_GLOBAL::NonVolatileLastVariableOffset

Referenced by AddPubKeyInStore(), ReclaimForOS(), and VariableCommonInitialize().

CHAR8* ESAL_VARIABLE_GLOBAL::PlatformLang[2]

Referenced by VariableClassAddressChangeEvent(), and VariableGetBestLanguage().

CHAR8* ESAL_VARIABLE_GLOBAL::PlatformLangCodes[2]

Referenced by AutoUpdateLangVariable(), and VariableClassAddressChangeEvent().

UINT8 ESAL_VARIABLE_GLOBAL::PubKeyStore[MAX_KEYDB_SIZE]

Referenced by AutenticatedVariableServiceInitialize().

UINT32 ESAL_VARIABLE_GLOBAL::ReentrantState

VARIABLE_GLOBAL ESAL_VARIABLE_GLOBAL::VariableGlobal[2]

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), DeleteVariable(), FtwNotificationEvent(), GetCertsFromDb(), InCustomMode(), InsertCertsToDb(), ReclaimForOS(), UpdatePlatformMode(), VariableClassAddressChangeEvent(), VariableCommonInitialize(), and VerifyTimeBasedPayload().

CHAR16* ESAL_VARIABLE_GLOBAL::VariableName[2][NUM_VAR_NAME]

Referenced by AutenticatedVariableServiceInitialize(), VariableClassAddressChangeEvent(), and VariableCommonInitialize().

UINTN ESAL_VARIABLE_GLOBAL::VolatileLastVariableOffset

Referenced by VariableCommonInitialize().


SecurityPkg[ALL]: HASH_TABLE Struct Reference

  • Data Fields

HASH_TABLE Struct Reference

Data Fields

CHAR16 * | Name
Name for Hash Algorithm.
UINTN | DigestLength
Digest Length.
UINT8 * | OidValue
Hash Algorithm OID ASN.1 Value.
UINTN | OidLength
Length of Hash OID Value.
HASH_GET_CONTEXT_SIZE GetContextSize
Pointer to Hash GetContentSize function.
HASH_INIT HashInit
Pointer to Hash Init function.
HASH_UPDATE HashUpdate
Pointer to Hash Update function.
HASH_FINAL HashFinal
Pointer to Hash Final function.

Field Documentation

UINTN HASH_TABLE::DigestLength

Digest Length.

HASH_GET_CONTEXT_SIZE HASH_TABLE::GetContextSize

Pointer to Hash GetContentSize function.

Referenced by HashPeImage().

HASH_FINAL HASH_TABLE::HashFinal

Pointer to Hash Final function.

Referenced by HashPeImage().

HASH_INIT HASH_TABLE::HashInit

Pointer to Hash Init function.

Referenced by HashPeImage().

HASH_UPDATE HASH_TABLE::HashUpdate

Pointer to Hash Update function.

Referenced by HashPeImage().

CHAR16 * HASH_TABLE::Name

Name for Hash Algorithm.

UINTN HASH_TABLE::OidLength

Length of Hash OID Value.

Referenced by HashPeImageByType().

UINT8 * HASH_TABLE::OidValue

Hash Algorithm OID ASN.1 Value.

Referenced by HashPeImageByType().


SecurityPkg[ALL]: HII_VENDOR_DEVICE_PATH Struct Reference

  • Data Fields

HII_VENDOR_DEVICE_PATH Struct Reference

Data Fields

VENDOR_DEVICE_PATH | VendorDevicePath
EFI_DEVICE_PATH_PROTOCOL | End

Detailed Description

HII specific Vendor Device Path definition.

Field Documentation

EFI_DEVICE_PATH_PROTOCOL HII_VENDOR_DEVICE_PATH::End

VENDOR_DEVICE_PATH HII_VENDOR_DEVICE_PATH::VendorDevicePath


SecurityPkg[ALL]: ISCSI_DEVICE_PATH_WITH_NAME Struct Reference

  • Data Fields

ISCSI_DEVICE_PATH_WITH_NAME Struct Reference

Data Fields

EFI_DEVICE_PATH_PROTOCOL | Header
UINT16 | NetworkProtocol
UINT16 | LoginOption
UINT64 | Lun
UINT16 | TargetPortalGroupTag
CHAR16 | TargetName [1]

Field Documentation

EFI_DEVICE_PATH_PROTOCOL ISCSI_DEVICE_PATH_WITH_NAME::Header

UINT16 ISCSI_DEVICE_PATH_WITH_NAME::LoginOption

Referenced by DevPathiSCSI().

UINT64 ISCSI_DEVICE_PATH_WITH_NAME::Lun

Referenced by DevPathiSCSI().

UINT16 ISCSI_DEVICE_PATH_WITH_NAME::NetworkProtocol

Referenced by DevPathiSCSI().

CHAR16 ISCSI_DEVICE_PATH_WITH_NAME::TargetName[1]

Referenced by DevPathiSCSI().

UINT16 ISCSI_DEVICE_PATH_WITH_NAME::TargetPortalGroupTag

Referenced by DevPathiSCSI().


SecurityPkg[ALL]: MEASURED_HOB_DATA Struct Reference

  • Data Fields

MEASURED_HOB_DATA Struct Reference

Data Fields

UINT32 | Num
EFI_PLATFORM_FIRMWARE_BLOB | MeasuredFvBuf [1]

Field Documentation

EFI_PLATFORM_FIRMWARE_BLOB MEASURED_HOB_DATA::MeasuredFvBuf[1]

Referenced by DxeTpmMeasureBootHandler(), and EndofPeiSignalNotifyCallBack().

UINT32 MEASURED_HOB_DATA::Num

Referenced by DxeTpmMeasureBootHandler(), and EndofPeiSignalNotifyCallBack().


SecurityPkg[ALL]: MEMORY_CLEAR_NVS Struct Reference

  • Data Fields

MEMORY_CLEAR_NVS Struct Reference

Data Fields

UINT8 | SoftwareSmi
UINT32 | Parameter
UINT32 | Request
UINT32 | ReturnCode

Field Documentation

UINT32 MEMORY_CLEAR_NVS::Parameter

Referenced by MemoryClearCallback().

UINT32 MEMORY_CLEAR_NVS::Request

Referenced by MemoryClearCallback().

UINT32 MEMORY_CLEAR_NVS::ReturnCode

Referenced by MemoryClearCallback().

UINT8 MEMORY_CLEAR_NVS::SoftwareSmi

Referenced by InitializeTcgSmm().


SecurityPkg[ALL]: PASSWORD_CREDENTIAL_INFO Struct Reference

  • Data Fields

PASSWORD_CREDENTIAL_INFO Struct Reference

Data Fields

UINTN | Count
EFI_USER_INFO * | Info [1]

Field Documentation

UINTN PASSWORD_CREDENTIAL_INFO::Count

Referenced by CredentialGetInfo(), and CredentialGetNextInfo().

EFI_USER_INFO* PASSWORD_CREDENTIAL_INFO::Info[1]

Referenced by CredentialGetInfo(), and CredentialGetNextInfo().


SecurityPkg[ALL]: PASSWORD_INFO Struct Reference

  • Data Fields

PASSWORD_INFO Struct Reference

Data Fields

EFI_USER_INFO_IDENTIFIER | UserId
CHAR8 | Password [CREDENTIAL_LEN]

Field Documentation

CHAR8 PASSWORD_INFO::Password[CREDENTIAL_LEN]

Referenced by CheckPassword(), CredentialEnroll(), and CredentialUser().

EFI_USER_INFO_IDENTIFIER PASSWORD_INFO::UserId

Referenced by CredentialDelete(), CredentialEnroll(), and CredentialUser().


SecurityPkg[ALL]: PHYSICAL_PRESENCE_NVS Struct Reference

  • Data Fields

PHYSICAL_PRESENCE_NVS Struct Reference

Data Fields

UINT8 | SoftwareSmi
UINT32 | Parameter
UINT32 | Response
UINT32 | Request
UINT32 | LastRequest
UINT32 | ReturnCode

Field Documentation

UINT32 PHYSICAL_PRESENCE_NVS::LastRequest

Referenced by PhysicalPresenceCallback().

UINT32 PHYSICAL_PRESENCE_NVS::Parameter

Referenced by PhysicalPresenceCallback().

UINT32 PHYSICAL_PRESENCE_NVS::Request

Referenced by PhysicalPresenceCallback().

UINT32 PHYSICAL_PRESENCE_NVS::Response

Referenced by PhysicalPresenceCallback().

UINT32 PHYSICAL_PRESENCE_NVS::ReturnCode

Referenced by PhysicalPresenceCallback().

UINT8 PHYSICAL_PRESENCE_NVS::SoftwareSmi

Referenced by InitializeTcgSmm().


SecurityPkg[ALL]: POOL_PRINT Struct Reference

  • Data Fields

POOL_PRINT Struct Reference

Data Fields

CHAR16 * | Str
UINTN | Len
UINTN | Maxlen

Field Documentation

UINTN POOL_PRINT::Len

Referenced by DevicePathToStr().

UINTN POOL_PRINT::Maxlen

CHAR16* POOL_PRINT::Str

Referenced by DevicePathToStr().


SecurityPkg[ALL]: PWD_PROVIDER_CALLBACK_INFO Struct Reference

  • Data Fields

PWD_PROVIDER_CALLBACK_INFO Struct Reference

Data Fields

UINTN | Signature
EFI_HANDLE | DriverHandle
EFI_HII_HANDLE | HiiHandle
EFI_HII_CONFIG_ACCESS_PROTOCOL | ConfigAccess

Field Documentation

EFI_HII_CONFIG_ACCESS_PROTOCOL PWD_PROVIDER_CALLBACK_INFO::ConfigAccess

Referenced by InitFormBrowser().

EFI_HANDLE PWD_PROVIDER_CALLBACK_INFO::DriverHandle

Referenced by InitFormBrowser(), and PasswordProviderInit().

EFI_HII_HANDLE PWD_PROVIDER_CALLBACK_INFO::HiiHandle

Referenced by AddDevicePath(), CredentialForm(), CredentialTitle(), DisplayLoadForbid(), DisplayLoadPermit(), GetStringById(), GetUserName(), InitFormBrowser(), ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), ModifyUserName(), ResolveCount(), ResolveDate(), ResolveIdentityPolicy(), SelectUserToDelete(), and SelectUserToModify().

UINTN PWD_PROVIDER_CALLBACK_INFO::Signature

Referenced by InitFormBrowser().


SecurityPkg[ALL]: SECUREBOOT_CONFIG_PRIVATE_DATA Struct Reference

  • Data Fields

SECUREBOOT_CONFIG_PRIVATE_DATA Struct Reference

Data Fields

UINTN | Signature
EFI_HII_CONFIG_ACCESS_PROTOCOL | ConfigAccess
EFI_HII_HANDLE | HiiHandle
EFI_HANDLE | DriverHandle
FILE_EXPLORER_STATE FeCurrentState
FILE_EXPLORER_DISPLAY_CONTEXT FeDisplayContext
SECUREBOOT_MENU_ENTRY * MenuEntry
SECUREBOOT_FILE_CONTEXT * FileContext
EFI_GUID * | SignatureGUID

Field Documentation

EFI_HII_CONFIG_ACCESS_PROTOCOL SECUREBOOT_CONFIG_PRIVATE_DATA::ConfigAccess

EFI_HANDLE SECUREBOOT_CONFIG_PRIVATE_DATA::DriverHandle

Referenced by SecureBootExtractConfig().

FILE_EXPLORER_STATE SECUREBOOT_CONFIG_PRIVATE_DATA::FeCurrentState

Referenced by SecureBootCallback().

FILE_EXPLORER_DISPLAY_CONTEXT SECUREBOOT_CONFIG_PRIVATE_DATA::FeDisplayContext

Referenced by SecureBootCallback().

SECUREBOOT_FILE_CONTEXT* SECUREBOOT_CONFIG_PRIVATE_DATA::FileContext

Referenced by SecureBootCallback().

EFI_HII_HANDLE SECUREBOOT_CONFIG_PRIVATE_DATA::HiiHandle

Referenced by SecureBootExtractConfig().

SECUREBOOT_MENU_ENTRY* SECUREBOOT_CONFIG_PRIVATE_DATA::MenuEntry

UINTN SECUREBOOT_CONFIG_PRIVATE_DATA::Signature

EFI_GUID* SECUREBOOT_CONFIG_PRIVATE_DATA::SignatureGUID

Referenced by SecureBootCallback().


SecurityPkg[ALL]: SECUREBOOT_CONFIGURATION Struct Reference

  • Data Fields

SECUREBOOT_CONFIGURATION Struct Reference

Data Fields

BOOLEAN | AttemptSecureBoot
BOOLEAN | HideSecureBoot
CHAR16 | SignatureGuid [SECURE_BOOT_GUID_STORAGE_SIZE]
BOOLEAN | PhysicalPresent
UINT8 | SecureBootMode
BOOLEAN | DeletePk
BOOLEAN | HasPk

Field Documentation

BOOLEAN SECUREBOOT_CONFIGURATION::AttemptSecureBoot

Referenced by SecureBootExtractConfigFromVariable().

BOOLEAN SECUREBOOT_CONFIGURATION::DeletePk

BOOLEAN SECUREBOOT_CONFIGURATION::HasPk

BOOLEAN SECUREBOOT_CONFIGURATION::HideSecureBoot

BOOLEAN SECUREBOOT_CONFIGURATION::PhysicalPresent

UINT8 SECUREBOOT_CONFIGURATION::SecureBootMode

CHAR16 SECUREBOOT_CONFIGURATION::SignatureGuid[SECURE_BOOT_GUID_STORAGE_SIZE]


SecurityPkg[ALL]: SECUREBOOT_FILE_CONTEXT Struct Reference

  • Data Fields

SECUREBOOT_FILE_CONTEXT Struct Reference

Data Fields

EFI_HANDLE | Handle
EFI_DEVICE_PATH_PROTOCOL * | DevicePath
EFI_FILE_HANDLE | FHandle
UINT16 * | FileName
EFI_FILE_SYSTEM_VOLUME_LABEL * | Info
BOOLEAN | IsRoot
BOOLEAN | IsDir
BOOLEAN | IsRemovableMedia
BOOLEAN | IsLoadFile
BOOLEAN | IsBootLegacy

Field Documentation

EFI_DEVICE_PATH_PROTOCOL* SECUREBOOT_FILE_CONTEXT::DevicePath

Referenced by DestroyMenuEntry(), FindFiles(), FindFileSystem(), and UpdateFileExplorer().

EFI_FILE_HANDLE SECUREBOOT_FILE_CONTEXT::FHandle

Referenced by DestroyMenuEntry(), FindFiles(), FindFileSystem(), and SecureBootCallback().

UINT16* SECUREBOOT_FILE_CONTEXT::FileName

Referenced by DestroyMenuEntry(), FindFiles(), FindFileSystem(), SecureBootCallback(), and UpdateFileExplorer().

EFI_HANDLE SECUREBOOT_FILE_CONTEXT::Handle

Referenced by FindFiles(), and FindFileSystem().

EFI_FILE_SYSTEM_VOLUME_LABEL* SECUREBOOT_FILE_CONTEXT::Info

Referenced by DestroyMenuEntry(), and FindFileSystem().

BOOLEAN SECUREBOOT_FILE_CONTEXT::IsBootLegacy

BOOLEAN SECUREBOOT_FILE_CONTEXT::IsDir

Referenced by FindFiles(), FindFileSystem(), UpdateFileExplorePage(), and UpdateFileExplorer().

BOOLEAN SECUREBOOT_FILE_CONTEXT::IsLoadFile

Referenced by FindFiles(), and FindFileSystem().

BOOLEAN SECUREBOOT_FILE_CONTEXT::IsRemovableMedia

Referenced by FindFiles(), and FindFileSystem().

BOOLEAN SECUREBOOT_FILE_CONTEXT::IsRoot

Referenced by DestroyMenuEntry(), FindFiles(), and FindFileSystem().


SecurityPkg[ALL]: SECUREBOOT_MENU_ENTRY Struct Reference

  • Data Fields

SECUREBOOT_MENU_ENTRY Struct Reference

Data Fields

UINTN | Signature
LIST_ENTRY | Link
UINTN | OptionNumber
UINT16 * | DisplayString
UINT16 * | HelpString
EFI_STRING_ID | DisplayStringToken
EFI_STRING_ID | HelpStringToken
VOID * | FileContext

Field Documentation

UINT16* SECUREBOOT_MENU_ENTRY::DisplayString

Referenced by CreateMenuStringToken(), FindFiles(), and FindFileSystem().

EFI_STRING_ID SECUREBOOT_MENU_ENTRY::DisplayStringToken

Referenced by CreateMenuStringToken(), UpdateFileExplorePage(), and UpdateFileExplorer().

VOID* SECUREBOOT_MENU_ENTRY::FileContext

Referenced by CreateMenuEntry(), FindFiles(), FindFileSystem(), UpdateFileExplorePage(), and UpdateFileExplorer().

UINT16* SECUREBOOT_MENU_ENTRY::HelpString

Referenced by CreateMenuStringToken(), FindFiles(), and FindFileSystem().

EFI_STRING_ID SECUREBOOT_MENU_ENTRY::HelpStringToken

Referenced by CreateMenuStringToken().

LIST_ENTRY SECUREBOOT_MENU_ENTRY::Link

Referenced by FindFiles(), FindFileSystem(), FreeMenu(), and UpdateFileExplorer().

UINTN SECUREBOOT_MENU_ENTRY::OptionNumber

Referenced by FindFiles(), and FindFileSystem().

UINTN SECUREBOOT_MENU_ENTRY::Signature

Referenced by CreateMenuEntry().


SecurityPkg[ALL]: SECUREBOOT_MENU_OPTION Struct Reference

  • Data Fields

SECUREBOOT_MENU_OPTION Struct Reference

Data Fields

UINTN | Signature
LIST_ENTRY | Head
UINTN | MenuNumber

Field Documentation

LIST_ENTRY SECUREBOOT_MENU_OPTION::Head

Referenced by FindFiles(), FindFileSystem(), and InstallSecureBootConfigForm().

UINTN SECUREBOOT_MENU_OPTION::MenuNumber

Referenced by FindFiles(), and FindFileSystem().

UINTN SECUREBOOT_MENU_OPTION::Signature


SecurityPkg[ALL]: TCG_CONFIG_PRIVATE_DATA Struct Reference

  • Data Fields

TCG_CONFIG_PRIVATE_DATA Struct Reference

Data Fields

UINTN | Signature
EFI_HII_CONFIG_ACCESS_PROTOCOL | ConfigAccess
EFI_HII_HANDLE | HiiHandle
EFI_HANDLE | DriverHandle
EFI_TCG_PROTOCOL * | TcgProtocol
BOOLEAN | HideTpm

Field Documentation

EFI_HII_CONFIG_ACCESS_PROTOCOL TCG_CONFIG_PRIVATE_DATA::ConfigAccess

EFI_HANDLE TCG_CONFIG_PRIVATE_DATA::DriverHandle

Referenced by TcgExtractConfig().

BOOLEAN TCG_CONFIG_PRIVATE_DATA::HideTpm

Referenced by TcgConfigDriverEntryPoint(), and TcgExtractConfig().

EFI_HII_HANDLE TCG_CONFIG_PRIVATE_DATA::HiiHandle

Referenced by TcgExtractConfig().

UINTN TCG_CONFIG_PRIVATE_DATA::Signature

EFI_TCG_PROTOCOL* TCG_CONFIG_PRIVATE_DATA::TcgProtocol

Referenced by TcgConfigDriverEntryPoint(), and TcgExtractConfig().


SecurityPkg[ALL]: TCG_CONFIGURATION Struct Reference

  • Data Fields

TCG_CONFIGURATION Struct Reference

Data Fields

BOOLEAN | HideTpm
BOOLEAN | OriginalHideTpm
UINT8 | TpmOperation
BOOLEAN | TpmEnable
BOOLEAN | TpmActivate

Field Documentation

BOOLEAN TCG_CONFIGURATION::HideTpm

Referenced by TcgExtractConfig().

BOOLEAN TCG_CONFIGURATION::OriginalHideTpm

Referenced by TcgExtractConfig().

BOOLEAN TCG_CONFIGURATION::TpmActivate

Referenced by TcgExtractConfig().

BOOLEAN TCG_CONFIGURATION::TpmEnable

Referenced by TcgExtractConfig().

UINT8 TCG_CONFIGURATION::TpmOperation

Referenced by TcgExtractConfig().


SecurityPkg[ALL]: TCG_NVS Struct Reference

  • Data Fields

TCG_NVS Struct Reference

Data Fields

PHYSICAL_PRESENCE_NVS PhysicalPresence
MEMORY_CLEAR_NVS MemoryClear

Field Documentation

MEMORY_CLEAR_NVS TCG_NVS::MemoryClear

Referenced by InitializeTcgSmm(), and MemoryClearCallback().

PHYSICAL_PRESENCE_NVS TCG_NVS::PhysicalPresence

Referenced by InitializeTcgSmm(), and PhysicalPresenceCallback().


SecurityPkg[ALL]: TIS_PC_REGISTERS Struct Reference

  • Data Fields

TIS_PC_REGISTERS Struct Reference

Data Fields

UINT8 | Access
UINT8 | Reserved1 [7]
UINT32 | IntEnable
UINT8 | IntVector
UINT8 | Reserved2 [3]
UINT32 | IntSts
UINT32 | IntfCapability
UINT8 | Status
UINT16 | BurstCount
UINT8 | Reserved3 [9]
UINT32 | DataFifo
UINT8 | Reserved4 [0xed8]
UINT16 | Vid
UINT16 | Did
UINT8 | Rid
UINT8 | TcgDefined [0x7b]
UINT32 | LegacyAddress1
UINT32 | LegacyAddress1Ex
UINT32 | LegacyAddress2
UINT32 | LegacyAddress2Ex
UINT8 | VendorDefined [0x70]

Field Documentation

UINT8 TIS_PC_REGISTERS::Access

Used to gain ownership for this particular port.

UINT16 TIS_PC_REGISTERS::BurstCount

Number of consecutive writes that can be done to the TPM.

UINT32 TIS_PC_REGISTERS::DataFifo

Read or write FIFO, depending on transaction.

UINT16 TIS_PC_REGISTERS::Did

Device ID

UINT32 TIS_PC_REGISTERS::IntEnable

Controls interrupts.

UINT32 TIS_PC_REGISTERS::IntfCapability

Shows which interrupts are supported by that particular TPM.

UINT32 TIS_PC_REGISTERS::IntSts

What caused interrupt.

UINT8 TIS_PC_REGISTERS::IntVector

SIRQ vector to be used by the TPM.

UINT32 TIS_PC_REGISTERS::LegacyAddress1

Alias to I/O legacy space.

UINT32 TIS_PC_REGISTERS::LegacyAddress1Ex

Additional 8 bits for I/O legacy space extension.

UINT32 TIS_PC_REGISTERS::LegacyAddress2

Alias to second I/O legacy space.

UINT32 TIS_PC_REGISTERS::LegacyAddress2Ex

Additional 8 bits for second I/O legacy space extension.

UINT8 TIS_PC_REGISTERS::Reserved1[7]

UINT8 TIS_PC_REGISTERS::Reserved2[3]

UINT8 TIS_PC_REGISTERS::Reserved3[9]

UINT8 TIS_PC_REGISTERS::Reserved4[0xed8]

UINT8 TIS_PC_REGISTERS::Rid

Revision ID

UINT8 TIS_PC_REGISTERS::Status

Status Register. Provides status of the TPM.

UINT8 TIS_PC_REGISTERS::TcgDefined[0x7b]

TCG defined configuration registers.

UINT8 TIS_PC_REGISTERS::VendorDefined[0x70]

Vendor-defined configuration registers.

UINT16 TIS_PC_REGISTERS::Vid

Vendor ID


SecurityPkg[ALL]: TPM_CMD_EXTEND Struct Reference

  • Data Fields

TPM_CMD_EXTEND Struct Reference

Data Fields

TPM_RQU_COMMAND_HDR | Hdr
TPM_PCRINDEX | PcrIndex
TPM_DIGEST | TpmDigest

Field Documentation

TPM_RQU_COMMAND_HDR TPM_CMD_EXTEND::Hdr

Referenced by TpmCommExtend().

TPM_PCRINDEX TPM_CMD_EXTEND::PcrIndex

Referenced by TpmCommExtend().

TPM_DIGEST TPM_CMD_EXTEND::TpmDigest

Referenced by TpmCommExtend().


SecurityPkg[ALL]: TPM_CMD_GET_CAPABILITY Struct Reference

  • Data Fields

TPM_CMD_GET_CAPABILITY Struct Reference

Data Fields

TPM_RQU_COMMAND_HDR | Hdr
UINT32 | Capability
UINT32 | CapabilityFlagSize
UINT32 | CapabilityFlag

Field Documentation

UINT32 TPM_CMD_GET_CAPABILITY::Capability

Referenced by TpmCommGetCapability().

UINT32 TPM_CMD_GET_CAPABILITY::CapabilityFlag

Referenced by TpmCommGetCapability().

UINT32 TPM_CMD_GET_CAPABILITY::CapabilityFlagSize

Referenced by TpmCommGetCapability().

TPM_RQU_COMMAND_HDR TPM_CMD_GET_CAPABILITY::Hdr

Referenced by TpmCommGetCapability().


SecurityPkg[ALL]: TPM_CMD_PHYSICAL_PRESENCE Struct Reference

  • Data Fields

TPM_CMD_PHYSICAL_PRESENCE Struct Reference

Data Fields

TPM_RQU_COMMAND_HDR | Hdr
TPM_PHYSICAL_PRESENCE | PhysicalPresence

Field Documentation

TPM_RQU_COMMAND_HDR TPM_CMD_PHYSICAL_PRESENCE::Hdr

Referenced by TpmCommPhysicalPresence().

TPM_PHYSICAL_PRESENCE TPM_CMD_PHYSICAL_PRESENCE::PhysicalPresence

Referenced by TpmCommPhysicalPresence().


SecurityPkg[ALL]: TPM_CMD_SELF_TEST Struct Reference

  • Data Fields

TPM_CMD_SELF_TEST Struct Reference

Data Fields

TPM_RQU_COMMAND_HDR Hdr

Field Documentation

TPM_RQU_COMMAND_HDR TPM_CMD_SELF_TEST::Hdr

Referenced by TpmCommContinueSelfTest().


SecurityPkg[ALL]: TPM_CMD_START_UP Struct Reference

  • Data Fields

TPM_CMD_START_UP Struct Reference

Data Fields

TPM_RQU_COMMAND_HDR | Hdr
TPM_STARTUP_TYPE | TpmSt

Field Documentation

TPM_RQU_COMMAND_HDR TPM_CMD_START_UP::Hdr

Referenced by TpmCommStartup().

TPM_STARTUP_TYPE TPM_CMD_START_UP::TpmSt

Referenced by TpmCommStartup().


SecurityPkg[ALL]: USB_CREDENTIAL_INFO Struct Reference

  • Data Fields

USB_CREDENTIAL_INFO Struct Reference

Data Fields

UINTN | Count
EFI_USER_INFO * | Info [1]

Field Documentation

UINTN USB_CREDENTIAL_INFO::Count

Referenced by CredentialGetInfo(), and CredentialGetNextInfo().

EFI_USER_INFO* USB_CREDENTIAL_INFO::Info[1]

Referenced by CredentialGetInfo(), and CredentialGetNextInfo().


SecurityPkg[ALL]: USB_INFO Struct Reference

  • Data Fields

USB_INFO Struct Reference

Data Fields

EFI_USER_INFO_IDENTIFIER | UserId
UINT8 | Token [HASHED_CREDENTIAL_LEN]

Field Documentation

UINT8 USB_INFO::Token[HASHED_CREDENTIAL_LEN]

Referenced by CredentialEnroll().

EFI_USER_INFO_IDENTIFIER USB_INFO::UserId

Referenced by CredentialEnroll().


SecurityPkg[ALL]: USB_PROVIDER_CALLBACK_INFO Struct Reference

  • Data Fields

USB_PROVIDER_CALLBACK_INFO Struct Reference

Data Fields

UINTN | Signature
EFI_HANDLE | DriverHandle
EFI_HII_HANDLE | HiiHandle

Field Documentation

EFI_HANDLE USB_PROVIDER_CALLBACK_INFO::DriverHandle

Referenced by InitFormBrowser(), and UsbProviderInit().

EFI_HII_HANDLE USB_PROVIDER_CALLBACK_INFO::HiiHandle

Referenced by CredentialTitle(), GetStringById(), and InitFormBrowser().

UINTN USB_PROVIDER_CALLBACK_INFO::Signature


SecurityPkg[ALL]: USER_INFO Struct Reference

  • Data Fields

USER_INFO Struct Reference

Data Fields

UINT64 | UsageCount
EFI_TIME | CreateDate
EFI_TIME | UsageDate
UINTN | AccessPolicyLen
UINTN | IdentityPolicyLen
UINTN | NewIdentityPolicyLen
UINT8 * | AccessPolicy
UINT8 * | IdentityPolicy
UINT8 * | NewIdentityPolicy
CHAR16 | UserName [USER_NAME_LENGTH]
BOOLEAN | CreateDateExist
BOOLEAN | UsageDateExist
BOOLEAN | AccessPolicyModified
BOOLEAN | IdentityPolicyModified
BOOLEAN | NewIdentityPolicyModified

Field Documentation

UINT8* USER_INFO::AccessPolicy

Referenced by ExpandMemory(), GetAllUserInfo(), ResolveAccessPolicy(), and SaveAccessPolicy().

UINTN USER_INFO::AccessPolicyLen

Referenced by ExpandMemory(), GetAllUserInfo(), ResolveAccessPolicy(), and SaveAccessPolicy().

BOOLEAN USER_INFO::AccessPolicyModified

Referenced by GetAllUserInfo(), and SaveAccessPolicy().

EFI_TIME USER_INFO::CreateDate

Referenced by GetAllUserInfo(), and ModifyUserInfo().

BOOLEAN USER_INFO::CreateDateExist

Referenced by GetAllUserInfo(), and ModifyUserInfo().

UINT8* USER_INFO::IdentityPolicy

Referenced by GetAllUserInfo(), ModifyIdentityPolicy(), ModifyUserInfo(), SaveIdentityPolicy(), and UpdateCredentialProvider().

UINTN USER_INFO::IdentityPolicyLen

Referenced by GetAllUserInfo(), ModifyIdentityPolicy(), ModifyUserInfo(), SaveIdentityPolicy(), and UpdateCredentialProvider().

BOOLEAN USER_INFO::IdentityPolicyModified

Referenced by GetAllUserInfo().

UINT8* USER_INFO::NewIdentityPolicy

Referenced by AddIdentityPolicyItem(), AddProviderToPolicy(), ModifyIdentityPolicy(), ProviderAlreadyInPolicy(), SaveIdentityPolicy(), and UpdateCredentialProvider().

UINTN USER_INFO::NewIdentityPolicyLen

Referenced by AddIdentityPolicyItem(), AddProviderToPolicy(), DeleteProviderFromPolicy(), ModifyIdentityPolicy(), ProviderAlreadyInPolicy(), SaveIdentityPolicy(), and UpdateCredentialProvider().

BOOLEAN USER_INFO::NewIdentityPolicyModified

Referenced by AddProviderToPolicy(), ModifyIdentityPolicy(), and SaveIdentityPolicy().

UINT64 USER_INFO::UsageCount

Referenced by GetAllUserInfo(), and ModifyUserInfo().

EFI_TIME USER_INFO::UsageDate

Referenced by GetAllUserInfo(), and ModifyUserInfo().

BOOLEAN USER_INFO::UsageDateExist

Referenced by GetAllUserInfo(), and ModifyUserInfo().

CHAR16 USER_INFO::UserName[USER_NAME_LENGTH]

Referenced by GetAllUserInfo(), ModifyUserInfo(), and ModifyUserName().


SecurityPkg[ALL]: USER_INFO_ACCESS Struct Reference

  • Data Fields

USER_INFO_ACCESS Struct Reference

Data Fields

UINTN | LoadPermitLen
UINTN | LoadForbidLen
UINTN | ConnectPermitLen
UINTN | ConnectForbidLen
UINT8 * | LoadPermit
UINT8 * | LoadForbid
UINT8 * | ConnectPermit
UINT8 * | ConnectForbid
UINT32 | AccessBootOrder
UINT8 | AccessRight
UINT8 | AccessSetup

Field Documentation

UINT32 USER_INFO_ACCESS::AccessBootOrder

Referenced by ModidyAccessPolicy(), ResolveAccessPolicy(), SaveAccessPolicy(), and UserProfileManagerCallback().

UINT8 USER_INFO_ACCESS::AccessRight

Referenced by ModidyAccessPolicy(), ResolveAccessPolicy(), SaveAccessPolicy(), and UserProfileManagerCallback().

UINT8 USER_INFO_ACCESS::AccessSetup

Referenced by ModidyAccessPolicy(), ResolveAccessPolicy(), SaveAccessPolicy(), and UserProfileManagerCallback().

UINT8* USER_INFO_ACCESS::ConnectForbid

Referenced by ResolveAccessPolicy(), and SaveAccessPolicy().

UINTN USER_INFO_ACCESS::ConnectForbidLen

Referenced by ResolveAccessPolicy(), and SaveAccessPolicy().

UINT8* USER_INFO_ACCESS::ConnectPermit

Referenced by ResolveAccessPolicy(), and SaveAccessPolicy().

UINTN USER_INFO_ACCESS::ConnectPermitLen

Referenced by ResolveAccessPolicy(), and SaveAccessPolicy().

UINT8* USER_INFO_ACCESS::LoadForbid

Referenced by AddToForbidLoad(), DeleteFromForbidLoad(), DisplayLoadForbid(), IsLoadForbidden(), ResolveAccessPolicy(), and SaveAccessPolicy().

UINTN USER_INFO_ACCESS::LoadForbidLen

Referenced by AddToForbidLoad(), DeleteFromForbidLoad(), DisplayLoadForbid(), IsLoadForbidden(), ResolveAccessPolicy(), and SaveAccessPolicy().

UINT8* USER_INFO_ACCESS::LoadPermit

Referenced by ResolveAccessPolicy(), and SaveAccessPolicy().

UINTN USER_INFO_ACCESS::LoadPermitLen

Referenced by ResolveAccessPolicy(), and SaveAccessPolicy().


SecurityPkg[ALL]: USER_MANAGER_CALLBACK_INFO Struct Reference

  • Data Fields

USER_MANAGER_CALLBACK_INFO Struct Reference

Data Fields

UINTN | Signature
EFI_HANDLE | DriverHandle
EFI_HII_HANDLE | HiiHandle
EFI_HII_DATABASE_PROTOCOL * | HiiDatabase
EFI_HII_STRING_PROTOCOL * | HiiString
EFI_HII_CONFIG_ROUTING_PROTOCOL * | HiiConfigRouting
EFI_FORM_BROWSER2_PROTOCOL * | FormBrowser2
EFI_HII_CONFIG_ACCESS_PROTOCOL | ConfigAccess

Field Documentation

EFI_HII_CONFIG_ACCESS_PROTOCOL USER_MANAGER_CALLBACK_INFO::ConfigAccess

Referenced by InitFormBrowser().

EFI_HANDLE USER_MANAGER_CALLBACK_INFO::DriverHandle

Referenced by InitFormBrowser(), and UserIdentifyManagerInit().

EFI_FORM_BROWSER2_PROTOCOL* USER_MANAGER_CALLBACK_INFO::FormBrowser2

Referenced by IdentifyByProviderId(), IdentifyUser(), and InitFormBrowser().

EFI_HII_CONFIG_ROUTING_PROTOCOL* USER_MANAGER_CALLBACK_INFO::HiiConfigRouting

EFI_HII_DATABASE_PROTOCOL* USER_MANAGER_CALLBACK_INFO::HiiDatabase

Referenced by InitFormBrowser().

EFI_HII_HANDLE USER_MANAGER_CALLBACK_INFO::HiiHandle

Referenced by AddProviderSelection(), AddUserSelection(), IdentifyOrTypeUser(), IdentifyUser(), InitFormBrowser(), and UserIdentifyManagerCallback().

EFI_HII_STRING_PROTOCOL* USER_MANAGER_CALLBACK_INFO::HiiString

Referenced by InitFormBrowser().

UINTN USER_MANAGER_CALLBACK_INFO::Signature

Referenced by InitFormBrowser().


SecurityPkg[ALL]: USER_PROFILE_DB Struct Reference

  • Data Fields

USER_PROFILE_DB Struct Reference

Data Fields

UINTN | UserProfileNum
UINTN | MaxProfileNum
EFI_USER_PROFILE_HANDLE | UserProfile [1]

Field Documentation

UINTN USER_PROFILE_DB::MaxProfileNum

Referenced by AddUserProfile(), and ExpandUsermUserProfileDb().

EFI_USER_PROFILE_HANDLE USER_PROFILE_DB::UserProfile[1]

Referenced by AddUserProfile(), DelUserProfile(), ExpandUsermUserProfileDb(), FindUserProfile(), FindUserProfileByInfo(), GenerateUserId(), IdentifyUser(), InitUserProfileDb(), and UserIdentifyManagerCallback().

UINTN USER_PROFILE_DB::UserProfileNum

Referenced by AddUserProfile(), DelUserProfile(), ExpandUsermUserProfileDb(), FindUserProfile(), GenerateUserId(), IdentifyUser(), InitUserProfileDb(), and UserIdentifyManagerCallback().


SecurityPkg[ALL]: USER_PROFILE_ENTRY Struct Reference

  • Data Fields

USER_PROFILE_ENTRY Struct Reference

Data Fields

UINTN | MaxProfileSize
UINTN | UserProfileSize
CHAR16 | UserVarName [9]
UINT8 * | ProfileInfo

Field Documentation

UINTN USER_PROFILE_ENTRY::MaxProfileSize

Referenced by AddUserProfile().

UINT8* USER_PROFILE_ENTRY::ProfileInfo

Referenced by AddUserProfile().

UINTN USER_PROFILE_ENTRY::UserProfileSize

Referenced by AddUserProfile().

CHAR16 USER_PROFILE_ENTRY::UserVarName[9]

Referenced by AddUserProfile().


SecurityPkg[ALL]: USER_PROFILE_MANAGER_CALLBACK_INFO Struct Reference

  • Data Fields

USER_PROFILE_MANAGER_CALLBACK_INFO Struct Reference

Data Fields

UINTN | Signature
EFI_HANDLE | DriverHandle
EFI_HII_HANDLE | HiiHandle
EFI_HII_CONFIG_ACCESS_PROTOCOL | ConfigAccess

Field Documentation

EFI_HII_CONFIG_ACCESS_PROTOCOL USER_PROFILE_MANAGER_CALLBACK_INFO::ConfigAccess

Referenced by UserProfileManagerInit().

EFI_HANDLE USER_PROFILE_MANAGER_CALLBACK_INFO::DriverHandle

Referenced by UserProfileManagerInit().

EFI_HII_HANDLE USER_PROFILE_MANAGER_CALLBACK_INFO::HiiHandle

Referenced by GetStringById(), UserProfileManagerCallback(), and UserProfileManagerInit().

UINTN USER_PROFILE_MANAGER_CALLBACK_INFO::Signature

Referenced by UserProfileManagerInit().


SecurityPkg[ALL]: VARIABLE_CACHE_ENTRY Struct Reference

  • Data Fields

VARIABLE_CACHE_ENTRY Struct Reference

Data Fields

EFI_GUID * | Guid
CHAR16 * | Name
UINT32 | Attributes
UINTN | DataSize
VOID * | Data

Field Documentation

UINT32 VARIABLE_CACHE_ENTRY::Attributes

Referenced by FindVariableInCache(), and UpdateVariableCache().

VOID * VARIABLE_CACHE_ENTRY::Data

Referenced by FindVariableInCache(), and UpdateVariableCache().

UINTN VARIABLE_CACHE_ENTRY::DataSize

Referenced by FindVariableInCache(), and UpdateVariableCache().

EFI_GUID * VARIABLE_CACHE_ENTRY::Guid

Referenced by FindVariableInCache(), and UpdateVariableCache().

CHAR16 * VARIABLE_CACHE_ENTRY::Name

Referenced by FindVariableInCache(), and UpdateVariableCache().


SecurityPkg[ALL]: VARIABLE_GLOBAL Struct Reference

  • Data Fields

VARIABLE_GLOBAL Struct Reference

Data Fields

EFI_PHYSICAL_ADDRESS | VolatileVariableBase
EFI_PHYSICAL_ADDRESS | NonVolatileVariableBase
EFI_LOCK | VariableServicesLock
EFI_PHYSICAL_ADDRESS | HobVariableBase
UINT32 | ReentrantState

Field Documentation

EFI_PHYSICAL_ADDRESS VARIABLE_GLOBAL::HobVariableBase

Referenced by FlushHobVariableToFlash(), VariableCommonInitialize(), and VariableServiceGetNextVariableName().

EFI_PHYSICAL_ADDRESS VARIABLE_GLOBAL::NonVolatileVariableBase

Referenced by AddPubKeyInStore(), EsalGetNextVariableName(), EsalQueryVariableInfo(), EsalSetVariable(), FtwNotificationEvent(), ReclaimForOS(), UpdateVariable(), UpdateVariableStore(), VariableClassAddressChangeEvent(), VariableCommonInitialize(), VariableServiceSetVariable(), and VariableWriteServiceInitialize().

UINT32 VARIABLE_GLOBAL::ReentrantState

Referenced by VariableServiceSetVariable().

EFI_LOCK VARIABLE_GLOBAL::VariableServicesLock

Referenced by EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

EFI_PHYSICAL_ADDRESS VARIABLE_GLOBAL::VolatileVariableBase

Referenced by AutoUpdateLangVariable(), EsalQueryVariableInfo(), UpdateVariable(), UpdateVariableStore(), VariableClassAddressChangeEvent(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), and VariableServiceQueryVariableInfo().


SecurityPkg[ALL]: VARIABLE_HEADER Struct Reference

  • Data Fields

VARIABLE_HEADER Struct Reference

Data Fields

UINT16 | StartId
UINT8 | State
UINT8 | Reserved
UINT32 | Attributes
UINT64 | MonotonicCount
EFI_TIME | TimeStamp
UINT32 | PubKeyIndex
UINT32 | NameSize
UINT32 | DataSize
EFI_GUID | VendorGuid

Detailed Description

Single Variable Data Header Structure.

Field Documentation

UINT32 VARIABLE_HEADER::Attributes

Attributes of variable defined in UEFI specification.

Referenced by EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), FindVariable(), FlushHob2Nv(), FlushHobVariableToFlash(), Reclaim(), UpdateVariable(), VariableCommonInitialize(), VariableServiceQueryVariableInfo(), and VerifyVariable().

UINT32 VARIABLE_HEADER::DataSize

Size of the variable data without this header.

Referenced by FlushHob2Nv(), FlushHobVariableToFlash(), GetVariableDataPtr(), Reclaim(), UpdateVariable(), and VariableCommonInitialize().

UINT64 VARIABLE_HEADER::MonotonicCount

Associated monotonic count value against replay attack.

Referenced by ProcessVarWithKek(), ProcessVarWithPk(), UpdateVariable(), and VerifyVariable().

UINT32 VARIABLE_HEADER::NameSize

Size of variable null-terminated Unicode string name.

Referenced by FlushHob2Nv(), GetVariableNamePtr(), Reclaim(), UpdateVariable(), and VariableCommonInitialize().

UINT32 VARIABLE_HEADER::PubKeyIndex

Index of associated public key in database.

Referenced by IsValidPubKeyIndex(), UpdateVariable(), and VerifyVariable().

UINT8 VARIABLE_HEADER::Reserved

Referenced by UpdateVariable().

UINT16 VARIABLE_HEADER::StartId

Variable Data Start Flag.

Referenced by FlushHob2Nv(), IsValidVariableHeader(), and UpdateVariable().

UINT8 VARIABLE_HEADER::State

Variable State defined above.

Referenced by EsalGetNextVariableName(), EsalQueryVariableInfo(), FindVariable(), FindVariableEx(), FlushHob2Nv(), FlushHobVariableToFlash(), IsValidPubKeyIndex(), Reclaim(), UpdateVariable(), and VariableServiceQueryVariableInfo().

EFI_TIME VARIABLE_HEADER::TimeStamp

Associated TimeStamp value against replay attack.

Referenced by UpdateVariable().

EFI_GUID VARIABLE_HEADER::VendorGuid

A unique identifier for the vendor that produces and consumes this varaible.

Referenced by EsalGetNextVariableName(), FindVariable(), FlushHob2Nv(), FlushHobVariableToFlash(), Reclaim(), and UpdateVariable().


SecurityPkg[ALL]: VARIABLE_MODULE_GLOBAL Struct Reference

  • Data Fields

VARIABLE_MODULE_GLOBAL Struct Reference

Data Fields

VARIABLE_GLOBAL VariableGlobal
UINTN | VolatileLastVariableOffset
UINTN | NonVolatileLastVariableOffset
UINTN | CommonVariableTotalSize
UINTN | HwErrVariableTotalSize
CHAR8 * | PlatformLangCodes
CHAR8 * | LangCodes
CHAR8 * | PlatformLang
CHAR8 | Lang [ISO_639_2_ENTRY_SIZE+1]
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL * | FvbInstance

Field Documentation

UINTN VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize

Referenced by Reclaim(), ReclaimForOS(), UpdateVariable(), and VariableCommonInitialize().

EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL* VARIABLE_MODULE_GLOBAL::FvbInstance

Referenced by UpdateVariable(), and VariableCommonInitialize().

UINTN VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize

Referenced by Reclaim(), ReclaimForOS(), UpdateVariable(), and VariableCommonInitialize().

CHAR8 VARIABLE_MODULE_GLOBAL::Lang[ISO_639_2_ENTRY_SIZE+1]

Referenced by GetLangFromSupportedLangCodes(), and VariableGetBestLanguage().

CHAR8* VARIABLE_MODULE_GLOBAL::LangCodes

Referenced by AutoUpdateLangVariable().

UINTN VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset

Referenced by ReclaimForOS(), UpdateVariable(), VariableCommonInitialize(), VariableServiceSetVariable(), and VariableWriteServiceInitialize().

CHAR8* VARIABLE_MODULE_GLOBAL::PlatformLang

Referenced by AutoUpdateLangVariable(), GetLangFromSupportedLangCodes(), and VariableGetBestLanguage().

CHAR8* VARIABLE_MODULE_GLOBAL::PlatformLangCodes

Referenced by AutoUpdateLangVariable().

VARIABLE_GLOBAL VARIABLE_MODULE_GLOBAL::VariableGlobal

Referenced by AutoUpdateLangVariable(), FlushHobVariableToFlash(), ReclaimForOS(), UpdateVariable(), UpdateVariableStore(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), VariableServiceSetVariable(), and VariableWriteServiceInitialize().

UINTN VARIABLE_MODULE_GLOBAL::VolatileLastVariableOffset

Referenced by UpdateVariable(), and VariableCommonInitialize().


SecurityPkg[ALL]: VARIABLE_POINTER_TRACK Struct Reference

  • Data Fields

VARIABLE_POINTER_TRACK Struct Reference

Data Fields

EFI_PHYSICAL_ADDRESS | CurrPtr
EFI_PHYSICAL_ADDRESS | EndPtr
EFI_PHYSICAL_ADDRESS | StartPtr
BOOLEAN | Volatile
VARIABLE_HEADER * CurrPtr
VARIABLE_HEADER * InDeletedTransitionPtr
VARIABLE_HEADER * EndPtr
VARIABLE_HEADER * StartPtr

Field Documentation

VARIABLE_HEADER* VARIABLE_POINTER_TRACK::CurrPtr

EFI_PHYSICAL_ADDRESS VARIABLE_POINTER_TRACK::CurrPtr

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), DeleteVariable(), EsalGetNextVariableName(), EsalGetVariable(), GetCertsFromDb(), InCustomMode(), InsertCertsToDb(), PeiGetNextVariableName(), PeiGetVariable(), ProcessVarWithKek(), ProcessVarWithPk(), UpdatePlatformMode(), UpdateVariable(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceSetVariable(), and VerifyTimeBasedPayload().

VARIABLE_HEADER* VARIABLE_POINTER_TRACK::EndPtr

EFI_PHYSICAL_ADDRESS VARIABLE_POINTER_TRACK::EndPtr

Referenced by EsalGetNextVariableName(), PeiGetNextVariableName(), UpdateVariable(), and VariableServiceGetNextVariableName().

VARIABLE_HEADER* VARIABLE_POINTER_TRACK::InDeletedTransitionPtr

Referenced by UpdateVariable().

VARIABLE_HEADER* VARIABLE_POINTER_TRACK::StartPtr

EFI_PHYSICAL_ADDRESS VARIABLE_POINTER_TRACK::StartPtr

Referenced by EsalGetNextVariableName(), PeiGetNextVariableName(), UpdateVariable(), and VariableServiceGetNextVariableName().

BOOLEAN VARIABLE_POINTER_TRACK::Volatile

Referenced by AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), EsalGetNextVariableName(), EsalGetVariable(), ProcessVarWithKek(), ProcessVarWithPk(), UpdateVariable(), and VariableServiceGetVariable().


SecurityPkg[ALL]: VARIABLE_STORE_HEADER Struct Reference

  • Data Fields

VARIABLE_STORE_HEADER Struct Reference

Data Fields

EFI_GUID | Signature
UINT32 | Size
UINT8 | Format
UINT8 | State
UINT16 | Reserved
UINT32 | Reserved1

Detailed Description

Variable Store region header.

Field Documentation

UINT8 VARIABLE_STORE_HEADER::Format

Variable region format state.

Referenced by FlushHob2Nv(), and VariableCommonInitialize().

UINT16 VARIABLE_STORE_HEADER::Reserved

Referenced by VariableCommonInitialize().

UINT32 VARIABLE_STORE_HEADER::Reserved1

Referenced by VariableCommonInitialize().

EFI_GUID VARIABLE_STORE_HEADER::Signature

Variable store region signature.

Referenced by FlushHob2Nv(), and VariableCommonInitialize().

UINT32 VARIABLE_STORE_HEADER::Size

Size of entire variable store, including size of variable store header but not including the size of FvHeader.

Referenced by AccessVariableStore(), EsalQueryVariableInfo(), FlushHob2Nv(), GetEndPointer(), Reclaim(), UpdateVariable(), UpdateVariableStore(), VariableCommonInitialize(), and VariableServiceQueryVariableInfo().

UINT8 VARIABLE_STORE_HEADER::State

Variable region healthy state.

Referenced by FlushHob2Nv(), and VariableCommonInitialize().


SecurityPkg[ALL]: VENDOR_DEVICE_PATH_WITH_DATA Struct Reference

  • Data Fields

VENDOR_DEVICE_PATH_WITH_DATA Struct Reference

Data Fields

EFI_DEVICE_PATH_PROTOCOL | Header
EFI_GUID | Guid
UINT8 | VendorDefinedData [1]

Field Documentation

EFI_GUID VENDOR_DEVICE_PATH_WITH_DATA::Guid

EFI_DEVICE_PATH_PROTOCOL VENDOR_DEVICE_PATH_WITH_DATA::Header

UINT8 VENDOR_DEVICE_PATH_WITH_DATA::VendorDefinedData[1]


SecurityPkg[ALL]: WIN_CERTIFICATE_EFI_PKCS Struct Reference

  • Data Fields

WIN_CERTIFICATE_EFI_PKCS Struct Reference

Data Fields

WIN_CERTIFICATE | Hdr
UINT8 | CertData [1]

Field Documentation

UINT8 WIN_CERTIFICATE_EFI_PKCS::CertData

Referenced by DxeImageVerificationHandler(), and HashPeImageByType().

WIN_CERTIFICATE WIN_CERTIFICATE_EFI_PKCS::Hdr

Referenced by DxeImageVerificationHandler().


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- a -

  • Access : TIS_PC_REGISTERS
  • AccessBootOrder : USER_INFO_ACCESS
  • AccessPolicy : USER_INFO
  • AccessPolicyLen : USER_INFO
  • AccessPolicyModified : USER_INFO
  • AccessRight : USER_INFO_ACCESS
  • AccessSetup : USER_INFO_ACCESS
  • AttemptSecureBoot : SECUREBOOT_CONFIGURATION
  • Attributes : _VARIABLE_INFO_ENTRY , VARIABLE_HEADER , VARIABLE_CACHE_ENTRY
  • AuthenticatedVariableGuid : ESAL_VARIABLE_GLOBAL


SecurityPkg[ALL]: File Index

  • File List
  • Globals

File List

Here is a list of all files with brief descriptions:
SecurityPkg/SecurityPkg.dec.decdoxygen
SecurityPkg/Application/VariableInfo/VariableInfo.c
SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h
SecurityPkg/Include/Guid/MeasuredFvHob.h
SecurityPkg/Include/Guid/PhysicalPresenceData.h
SecurityPkg/Include/Guid/PwdCredentialProviderHii.h
SecurityPkg/Include/Guid/SecureBootConfigHii.h
SecurityPkg/Include/Guid/SecurityPkgTokenSpace.h
SecurityPkg/Include/Guid/TcgConfigHii.h
SecurityPkg/Include/Guid/TcgEventHob.h
SecurityPkg/Include/Guid/UsbCredentialProviderHii.h
SecurityPkg/Include/Guid/UserIdentifyManagerHii.h
SecurityPkg/Include/Guid/UserProfileManagerHii.h
SecurityPkg/Include/Library/PlatformSecureLib.h
SecurityPkg/Include/Library/TcgPhysicalPresenceLib.h
SecurityPkg/Include/Library/TpmCommLib.h
SecurityPkg/Include/Library/TpmMeasurementLib.h
SecurityPkg/Include/Ppi/LockPhysicalPresence.h
SecurityPkg/Include/Ppi/TpmInitialized.h
SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.c
SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.h
SecurityPkg/Library/DxeImageAuthenticationStatusLib/DxeImageAuthenticationStatusLib.c
SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c
SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.h
SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c
SecurityPkg/Library/DxeTpmMeasureBootLib/DxeTpmMeasureBootLib.c
SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c
SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.c
SecurityPkg/Library/TpmCommLib/CommonHeader.h
SecurityPkg/Library/TpmCommLib/TisPc.c
SecurityPkg/Library/TpmCommLib/TpmComm.c
SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.c
SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.h
SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.c
SecurityPkg/Tcg/TcgConfigDxe/TcgConfig.vfr
SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDriver.c
SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.c
SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.h
SecurityPkg/Tcg/TcgConfigDxe/TcgConfigNvData.h
SecurityPkg/Tcg/TcgDxe/TcgDxe.c
SecurityPkg/Tcg/TcgDxe/TisDxe.c
SecurityPkg/Tcg/TcgDxe/TpmComm.c
SecurityPkg/Tcg/TcgDxe/TpmComm.h
SecurityPkg/Tcg/TcgPei/TcgPei.c
SecurityPkg/Tcg/TcgPei/TisPei.c
SecurityPkg/Tcg/TcgPei/TpmComm.c
SecurityPkg/Tcg/TcgPei/TpmComm.h
SecurityPkg/Tcg/TcgSmm/TcgSmm.c
SecurityPkg/Tcg/TcgSmm/TcgSmm.h
SecurityPkg/Tcg/TcgSmm/Tpm.asl
SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.c
SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.h
SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderData.h
SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderVfr.Vfr
SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.c
SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.h
SecurityPkg/UserIdentification/UserIdentifyManagerDxe/LoadDeferredImage.c
SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.c
SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.h
SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerData.h
SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerVfr.Vfr
SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyAccessPolicy.c
SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyIdentityPolicy.c
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileAdd.c
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.c
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.h
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerData.h
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerVfr.Vfr
SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileModify.c
SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.c
SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.h
SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/InitVariable.c
SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Reclaim.c
SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.c
SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.h
SecurityPkg/VariableAuthenticated/Pei/Variable.c
SecurityPkg/VariableAuthenticated/Pei/Variable.h
SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.h
SecurityPkg/VariableAuthenticated/RuntimeDxe/Reclaim.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c
SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxe.c
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfig.vfr
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDevicePath.c
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDriver.c
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigFileExplorer.c
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigNvData.h


SecurityPkg[ALL]: SecurityPkg/Application/VariableInfo/VariableInfo.c File Reference

  • File List
  • Globals

SecurityPkg/Application/VariableInfo/VariableInfo.c File Reference

Functions

EFI_STATUS EFIAPI | GetVariableStatisticsData (IN OUT EFI_SMM_COMMUNICATE_HEADER *SmmCommunicateHeader, IN OUT UINTN *SmmCommunicateSize)
EFI_STATUS | PrintInfoFromSmm (VOID)
EFI_STATUS EFIAPI | UefiMain (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_GUID | gEfiVariableGuid
EFI_SMM_COMMUNICATION_PROTOCOL * | mSmmCommunication = NULL

Detailed Description

If the Variable services have PcdVariableCollectStatistics set to TRUE then this utility will print out the statistics information. You can use console redirection to capture the data.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI GetVariableStatisticsData | ( | IN OUT EFI_SMM_COMMUNICATE_HEADER * | SmmCommunicateHeader,
 |  | IN OUT UINTN * | SmmCommunicateSize
 | ) |  |

This function get the variable statistics data from SMM variable driver.

Parameters:
[in,out] | SmmCommunicateHeader | In input, a pointer to a collection of data that will be passed into an SMM environment. In output, a pointer to a collection of data that comes from an SMM environment.
[in,out] | SmmCommunicateSize | The size of the SmmCommunicateHeader.
Return values:
EFI_SUCCESS | Get the statistics data information.
EFI_NOT_FOUND | Not found.
EFI_BUFFER_TO_SMALL | DataSize is too small for the result.

References mSmmCommunication.

Referenced by PrintInfoFromSmm().

EFI_STATUS PrintInfoFromSmm ( VOID )

This function get and print the variable statistics data from SMM variable driver.

Return values:
EFI_SUCCESS | Print the statistics information successfully.
EFI_NOT_FOUND | Not found the statistics information.

References _VARIABLE_INFO_ENTRY::CacheCount, _VARIABLE_INFO_ENTRY::DeleteCount, GetVariableStatisticsData(), mSmmCommunication, _VARIABLE_INFO_ENTRY::ReadCount, TRUE, _VARIABLE_INFO_ENTRY::VendorGuid, _VARIABLE_INFO_ENTRY::Volatile, and _VARIABLE_INFO_ENTRY::WriteCount.

Referenced by UefiMain().

EFI_STATUS EFIAPI UefiMain | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

The user Entry Point for Application. The user code starts with this function as the real entry point for the image goes into a library that calls this function.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS | The entry point is executed successfully.
other | Some error occurs when executing this entry point.

References _VARIABLE_INFO_ENTRY::CacheCount, _VARIABLE_INFO_ENTRY::DeleteCount, gEfiAuthenticatedVariableGuid, gEfiVariableGuid, _VARIABLE_INFO_ENTRY::Name, _VARIABLE_INFO_ENTRY::Next, PrintInfoFromSmm(), _VARIABLE_INFO_ENTRY::ReadCount, _VARIABLE_INFO_ENTRY::VendorGuid, _VARIABLE_INFO_ENTRY::Volatile, and _VARIABLE_INFO_ENTRY::WriteCount.

Variable Documentation

EFI_GUID gEfiVariableGuid

Referenced by UefiMain().

EFI_SMM_COMMUNICATION_PROTOCOL* mSmmCommunication = NULL

Referenced by GetVariableStatisticsData(), PrintInfoFromSmm(), SendCommunicateBuffer(), SmmVariableReady(), and VariableAddressChangeEvent().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/AuthenticatedVariableFormat.h File Reference

Data Structures

struct | VARIABLE_STORE_HEADER
struct | VARIABLE_HEADER
struct | _VARIABLE_INFO_ENTRY

Defines

#define | EFI_AUTHENTICATED_VARIABLE_GUID { 0xaaf32c78, 0x947b, 0x439a, { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 } }
#define | EFI_SECURE_BOOT_ENABLE_DISABLE { 0xf0a30bc7, 0xaf08, 0x4556, { 0x99, 0xc4, 0x0, 0x10, 0x9, 0xc9, 0x3a, 0x44 } }
#define | EFI_SECURE_BOOT_ENABLE_NAME L"SecureBootEnable"
#define | SECURE_BOOT_ENABLE 1
#define | SECURE_BOOT_DISABLE 0
#define | EFI_CUSTOM_MODE_NAME L"CustomMode"
#define | CUSTOM_SECURE_BOOT_MODE 1
#define | STANDARD_SECURE_BOOT_MODE 0
#define | ALIGNMENT 8
#define | GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))
#define | HEADER_ALIGNMENT 4
#define | HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
#define | VARIABLE_STORE_SIGNATURE EFI_AUTHENTICATED_VARIABLE_GUID
#define | VARIABLE_STORE_FORMATTED 0x5a
#define | VARIABLE_STORE_HEALTHY 0xfe
#define | VARIABLE_DATA 0x55AA
#define | VAR_IN_DELETED_TRANSITION 0xfe
Variable is in obsolete transition.
#define | VAR_DELETED 0xfd
Variable is obsolete.
#define | VAR_HEADER_VALID_ONLY 0x7f
Variable header has been valid.
#define | VAR_ADDED 0x3f
Variable has been completely added.

Typedefs

typedef struct _VARIABLE_INFO_ENTRY | VARIABLE_INFO_ENTRY

Enumerations

enum | VARIABLE_STORE_STATUS { EfiRaw, EfiValid, EfiInvalid, EfiUnknown }

Variables

EFI_GUID | gEfiAuthenticatedVariableGuid
EFI_GUID | gEfiSecureBootEnableDisableGuid
EFI_GUID | gEfiCertDbGuid
EFI_GUID | gEfiCustomModeEnableGuid

Detailed Description

The variable data structures are related to EDKII-specific implementation of UEFI authenticated variables. AuthenticatedVariableFormat.h defines variable data headers and variable storage region headers.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define ALIGNMENT 8

Alignment of variable name and data, according to the architecture: For IA-32 and Intel(R) 64 architectures: 1. For IA-64 architecture: 8.

#define CUSTOM_SECURE_BOOT_MODE 1

Referenced by DeleteKeyExchangeKey(), DeletePlatformKey(), DeleteSignature(), EnrollKeyExchangeKey(), EnrollPlatformKey(), EnrollSignatureDatabase(), InCustomMode(), and SecureBootCallback().

#define EFI_AUTHENTICATED_VARIABLE_GUID { 0xaaf32c78, 0x947b, 0x439a, { 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92 } }

#define EFI_CUSTOM_MODE_NAME L"CustomMode"

"CustomMode" variable for two Secure Boot modes feature: "Custom" and "Standard". Standard Secure Boot mode is the default mode as UEFI Spec's description. Custom Secure Boot mode allows for more flexibility as specified in the following: Can enroll or delete PK without existing PK's private key. Can enroll or delete KEK without existing PK's private key. Can enroll or delete signature from DB/DBX without KEK's private key.

Referenced by AutenticatedVariableServiceInitialize(), InCustomMode(), NeedPhysicallyPresent(), SecureBootCallback(), SecureBootExtractConfigFromVariable(), and SetSecureBootMode().

#define EFI_SECURE_BOOT_ENABLE_DISABLE { 0xf0a30bc7, 0xaf08, 0x4556, { 0x99, 0xc4, 0x0, 0x10, 0x9, 0xc9, 0x3a, 0x44 } }

#define EFI_SECURE_BOOT_ENABLE_NAME L"SecureBootEnable"

"SecureBootEnable" variable for the Secure Boot feature enable/disable. This variable is used for allowing a physically present user to disable Secure Boot via firmware setup without the possession of PKpriv.

Referenced by AutenticatedVariableServiceInitialize(), NeedPhysicallyPresent(), SaveSecureBootVariable(), SecureBootCallback(), SecureBootExtractConfigFromVariable(), and UpdatePlatformMode().

#define GET_PAD_SIZE ( a ) (((~a) + 1) & (ALIGNMENT - 1))

Referenced by FlushHob2Nv(), GetNextVariablePtr(), GetVariableDataPtr(), and UpdateVariable().

#define HEADER_ALIGN ( Header ) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))

Referenced by FlushHob2Nv(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), Reclaim(), UpdateVariable(), and VariableCommonInitialize().

#define HEADER_ALIGNMENT 4

Alignment of Variable Data Header in Variable Store region.

#define SECURE_BOOT_DISABLE 0

Referenced by AutenticatedVariableServiceInitialize(), and UpdatePlatformMode().

#define SECURE_BOOT_ENABLE 1

Referenced by AutenticatedVariableServiceInitialize(), SecureBootExtractConfigFromVariable(), and UpdatePlatformMode().

#define STANDARD_SECURE_BOOT_MODE 0

Referenced by AutenticatedVariableServiceInitialize(), SecureBootCallback(), and SecureBootExtractConfigFromVariable().

#define VAR_ADDED 0x3f

Variable has been completely added.

Referenced by EsalGetNextVariableName(), EsalQueryVariableInfo(), FindVariable(), FindVariableEx(), FlushHob2Nv(), FlushHobVariableToFlash(), IsValidPubKeyIndex(), PeiGetNextVariableName(), Reclaim(), UpdateVariable(), VariableServiceGetNextVariableName(), and VariableServiceQueryVariableInfo().

#define VAR_DELETED 0xfd

Variable is obsolete.

Referenced by FlushHobVariableToFlash(), and UpdateVariable().

#define VAR_HEADER_VALID_ONLY 0x7f

Variable header has been valid.

Referenced by UpdateVariable().

#define VAR_IN_DELETED_TRANSITION 0xfe

Variable is in obsolete transition.

Variable State flags.

Referenced by FindVariable(), FindVariableEx(), IsValidPubKeyIndex(), PeiGetNextVariableName(), Reclaim(), UpdateVariable(), and VariableServiceGetNextVariableName().

#define VARIABLE_DATA 0x55AA

Variable data start flag.

Referenced by FlushHob2Nv(), IsValidVariableHeader(), and UpdateVariable().

#define VARIABLE_STORE_FORMATTED 0x5a

Variable Store Header Format and State.

Referenced by FlushHob2Nv(), GetVariableStoreStatus(), and VariableCommonInitialize().

#define VARIABLE_STORE_HEALTHY 0xfe

Referenced by FlushHob2Nv(), GetVariableStoreStatus(), and VariableCommonInitialize().

#define VARIABLE_STORE_SIGNATURE EFI_AUTHENTICATED_VARIABLE_GUID

Typedef Documentation

typedef struct _VARIABLE_INFO_ENTRY VARIABLE_INFO_ENTRY

Enumeration Type Documentation

enum VARIABLE_STORE_STATUS

Status of Variable Store Region.

Enumerator:
EfiRaw
EfiValid
EfiInvalid
EfiUnknown

Variable Documentation

EFI_GUID gEfiAuthenticatedVariableGuid

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), FlushHob2Nv(), GetVariableStore(), GetVariableStoreStatus(), OnReadyToBoot(), Reclaim(), UefiMain(), UpdateVariableInfo(), VariableClassAddressChangeEvent(), and VariableCommonInitialize().

EFI_GUID gEfiCertDbGuid

Referenced by AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), GetCertsFromDb(), and InsertCertsToDb().

EFI_GUID gEfiCustomModeEnableGuid

Referenced by AutenticatedVariableServiceInitialize(), InCustomMode(), NeedPhysicallyPresent(), SecureBootCallback(), SecureBootExtractConfigFromVariable(), and SetSecureBootMode().

EFI_GUID gEfiSecureBootEnableDisableGuid

Referenced by AutenticatedVariableServiceInitialize(), NeedPhysicallyPresent(), SaveSecureBootVariable(), SecureBootCallback(), SecureBootExtractConfigFromVariable(), and UpdatePlatformMode().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/MeasuredFvHob.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/MeasuredFvHob.h File Reference

Data Structures

struct | MEASURED_HOB_DATA

Defines

#define | EFI_MEASURED_FV_HOB_GUID

Variables

EFI_GUID | gMeasuredFvHobGuid

Detailed Description

Defines the HOB GUID used to pass all PEI measured FV info to DXE Driver.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define EFI_MEASURED_FV_HOB_GUID

Value:

{ \
    0xb2360b42, 0x7173, 0x420a, { 0x86, 0x96, 0x46, 0xca, 0x6b, 0xab, 0x10, 0x60 } \
  }
The Global ID of a GUIDed HOB used to pass all PEI measured FV info to DXE Driver.

Variable Documentation

EFI_GUID gMeasuredFvHobGuid

Referenced by DxeTpmMeasureBootLibConstructor(), and EndofPeiSignalNotifyCallBack().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/PhysicalPresenceData.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/PhysicalPresenceData.h File Reference

Data Structures

struct | EFI_PHYSICAL_PRESENCE

Defines

#define | EFI_PHYSICAL_PRESENCE_DATA_GUID
#define | PHYSICAL_PRESENCE_VARIABLE L"PhysicalPresence"
#define | FLAG_NO_PPI_PROVISION BIT0
#define | FLAG_NO_PPI_CLEAR BIT1
#define | FLAG_NO_PPI_MAINTENANCE BIT2
#define | FLAG_RESET_TRACK BIT3
#define | PHYSICAL_PRESENCE_NO_ACTION 0
#define | PHYSICAL_PRESENCE_ENABLE 1
#define | PHYSICAL_PRESENCE_DISABLE 2
#define | PHYSICAL_PRESENCE_ACTIVATE 3
#define | PHYSICAL_PRESENCE_DEACTIVATE 4
#define | PHYSICAL_PRESENCE_CLEAR 5
#define | PHYSICAL_PRESENCE_ENABLE_ACTIVATE 6
#define | PHYSICAL_PRESENCE_DEACTIVATE_DISABLE 7
#define | PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE 8
#define | PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE 9
#define | PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE 10
#define | PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE 11
#define | PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE 12
#define | PHYSICAL_PRESENCE_SET_OPERATOR_AUTH 13
#define | PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE 14
#define | PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE 15
#define | PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE 16
#define | PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE 17
#define | PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE 18
#define | PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE 19
#define | PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE 20
#define | PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR 21
#define | PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE 22

Variables

EFI_GUID | gEfiPhysicalPresenceGuid

Detailed Description

Define the variable data structures used for TCG physical presence. The TPM request from firmware or OS is saved to variable. And it is cleared after it is processed in the next boot cycle. The TPM response is saved to variable.

Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define EFI_PHYSICAL_PRESENCE_DATA_GUID

Value:

{ \
    0xf6499b1, 0xe9ad, 0x493d, { 0xb9, 0xc2, 0x2f, 0x90, 0x81, 0x5c, 0x6c, 0xbc }\
  }

#define FLAG_NO_PPI_CLEAR BIT1

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and PhysicalPresenceCallback().

#define FLAG_NO_PPI_MAINTENANCE BIT2

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and PhysicalPresenceCallback().

#define FLAG_NO_PPI_PROVISION BIT0

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and TcgPhysicalPresenceLibProcessRequest().

#define FLAG_RESET_TRACK BIT3

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), and HaveValidTpmRequest().

#define PHYSICAL_PRESENCE_ACTIVATE 3

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_CLEAR 5

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE 14

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_DEACTIVATE 4

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_DEACTIVATE_DISABLE 7

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE 11

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE 12

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_DISABLE 2

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_ENABLE 1

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), TcgExtractConfig(), and UserConfirm().

#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE 6

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR 21

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE 22

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE 10

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_NO_ACTION 0

Referenced by ExecutePendingTpmRequest(), HaveValidTpmRequest(), PhysicalPresenceCallback(), TcgPhysicalPresenceLibNeedUserConfirm(), and TcgPhysicalPresenceLibProcessRequest().

#define PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE 17

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and PhysicalPresenceCallback().

#define PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE 18

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and UserConfirm().

#define PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE 19

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and PhysicalPresenceCallback().

#define PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE 20

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and UserConfirm().

#define PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE 15

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and PhysicalPresenceCallback().

#define PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE 16

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), and UserConfirm().

#define PHYSICAL_PRESENCE_SET_OPERATOR_AUTH 13

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE 9

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE 8

Referenced by ExecutePhysicalPresence(), HaveValidTpmRequest(), PhysicalPresenceCallback(), and UserConfirm().

#define PHYSICAL_PRESENCE_VARIABLE L"PhysicalPresence"

Referenced by ExecutePendingTpmRequest(), LockTpmPhysicalPresence(), PhysicalPresenceCallback(), SavePpRequest(), TcgPhysicalPresenceLibNeedUserConfirm(), and TcgPhysicalPresenceLibProcessRequest().

Variable Documentation

EFI_GUID gEfiPhysicalPresenceGuid

Referenced by ExecutePendingTpmRequest(), LockTpmPhysicalPresence(), PhysicalPresenceCallback(), SavePpRequest(), TcgPhysicalPresenceLibConstructor(), TcgPhysicalPresenceLibNeedUserConfirm(), and TcgPhysicalPresenceLibProcessRequest().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/PwdCredentialProviderHii.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/PwdCredentialProviderHii.h File Reference

Defines

#define | PWD_CREDENTIAL_PROVIDER_GUID

Variables

EFI_GUID | gPwdCredentialProviderGuid

Detailed Description

GUID used as HII FormSet and HII Package list GUID in PwdCredentialProviderDxe driver.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define PWD_CREDENTIAL_PROVIDER_GUID

Value:

{ \
    0x78b9ec8b, 0xc000, 0x46c5, { 0xac, 0x93, 0x24, 0xa0, 0xc1, 0xbb, 0x0, 0xce } \
  }

Variable Documentation

EFI_GUID gPwdCredentialProviderGuid

Referenced by CredentialForm(), CredentialGetNextInfo(), InitCredentialTable(), InitFormBrowser(), and ModifyTable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/SecureBootConfigHii.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/SecureBootConfigHii.h File Reference

Defines

#define | SECUREBOOT_CONFIG_FORM_SET_GUID

Variables

EFI_GUID | gSecureBootConfigFormSetGuid

Detailed Description

GUIDs used as HII FormSet and HII Package list GUID in SecureBootConfigDxe driver.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define SECUREBOOT_CONFIG_FORM_SET_GUID

Value:

{ \
    0x5daf50a5, 0xea81, 0x4de2, {0x8f, 0x9b, 0xca, 0xbd, 0xa9, 0xcf, 0x5c, 0x14} \
  }

Variable Documentation

EFI_GUID gSecureBootConfigFormSetGuid

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), SecureBootExtractConfig(), SecureBootRouteConfig(), UpdateDeletePage(), UpdateFileExplorePage(), and UpdateFileExplorer().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/SecurityPkgTokenSpace.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/SecurityPkgTokenSpace.h File Reference

Defines

#define | SECURITYPKG_TOKEN_SPACE_GUID

Variables

EFI_GUID | gEfiSecurityPkgTokenSpaceGuid

Detailed Description

GUID for SecurityPkg PCD Token Space.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define SECURITYPKG_TOKEN_SPACE_GUID

Value:

{ \
    0xd3fb176, 0x9569, 0x4d51, { 0xa3, 0xef, 0x7d, 0x61, 0xc6, 0x4f, 0xea, 0xba } \
  }

Variable Documentation

EFI_GUID gEfiSecurityPkgTokenSpaceGuid

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/TcgConfigHii.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/TcgConfigHii.h File Reference

Defines

#define | TCG_CONFIG_FORM_SET_GUID

Variables

EFI_GUID | gTcgConfigFormSetGuid

Detailed Description

GUIDs used as HII FormSet and HII Package list GUID in TcgConfig driver.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define TCG_CONFIG_FORM_SET_GUID

Value:

{ \
    0xb0f901e4, 0xc424, 0x45de, {0x90, 0x81, 0x95, 0xe2, 0xb, 0xde, 0x6f, 0xb5 } \
  }

Variable Documentation

EFI_GUID gTcgConfigFormSetGuid

Referenced by InstallTcgConfigForm(), TcgExtractConfig(), and TcgRouteConfig().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/TcgEventHob.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/TcgEventHob.h File Reference

Defines

#define | EFI_TCG_EVENT_HOB_GUID

Variables

EFI_GUID | gTcgEventEntryHobGuid

Detailed Description

Defines the HOB GUID used to pass a TCG_PCR_EVENT from a TPM PEIM to a TPM DXE Driver. A GUIDed HOB is generated for each measurement made in the PEI Phase.

Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define EFI_TCG_EVENT_HOB_GUID

Value:

{ \
    0x2e3044ac, 0x879f, 0x490f, {0x97, 0x60, 0xbb, 0xdf, 0xaf, 0x69, 0x5f, 0x50 } \
  }
The Global ID of a GUIDed HOB used to pass a TCG_PCR_EVENT from a TPM PEIM to a TPM DXE Driver.

Variable Documentation

EFI_GUID gTcgEventEntryHobGuid

Referenced by HashLogExtendEvent(), and SetupEventLog().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/UsbCredentialProviderHii.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/UsbCredentialProviderHii.h File Reference

Defines

#define | USB_CREDENTIAL_PROVIDER_GUID

Variables

EFI_GUID | gUsbCredentialProviderGuid

Detailed Description

GUID used as HII Package list GUID in UsbCredentialProviderDxe driver.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define USB_CREDENTIAL_PROVIDER_GUID

Value:

{ \
    0xd0849ed1, 0xa88c, 0x4ba6, { 0xb1, 0xd6, 0xab, 0x50, 0xe2, 0x80, 0xb7, 0xa9 }\
  }

Variable Documentation

EFI_GUID gUsbCredentialProviderGuid

Referenced by CredentialGetNextInfo(), InitCredentialTable(), InitFormBrowser(), and ModifyTable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/UserIdentifyManagerHii.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/UserIdentifyManagerHii.h File Reference

Defines

#define | USER_IDENTIFY_MANAGER_GUID

Variables

EFI_GUID | gUserIdentifyManagerGuid

Detailed Description

GUID used as HII FormSet and HII Package list GUID in UserIdentifyManagerDxe driver.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define USER_IDENTIFY_MANAGER_GUID

Value:

{ \
    0x3ccd3dd8, 0x8d45, 0x4fed, { 0x96, 0x2d, 0x2b, 0x38, 0xcd, 0x82, 0xb3, 0xc4 } \
  }

Variable Documentation

EFI_GUID gUserIdentifyManagerGuid

Referenced by IdentifyOrTypeUser(), IdentifyUser(), InitFormBrowser(), InitUserProfileDb(), SaveNvUserProfile(), and UserIdentifyManagerCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Guid/UserProfileManagerHii.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Guid/UserProfileManagerHii.h File Reference

Defines

#define | USER_PROFILE_MANAGER_GUID

Variables

EFI_GUID | gUserProfileManagerGuid

Detailed Description

GUID used as HII FormSet and HII Package list GUID in UserProfileManagerDxe driver.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define USER_PROFILE_MANAGER_GUID

Value:

{ \
    0xc35f272c, 0x97c2, 0x465a, { 0xa2, 0x16, 0x69, 0x6b, 0x66, 0x8a, 0x8c, 0xfe } \
  }

Variable Documentation

EFI_GUID gUserProfileManagerGuid

Referenced by DisplayLoadForbid(), DisplayLoadPermit(), ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), SelectUserToDelete(), SelectUserToModify(), UserProfileManagerCallback(), and UserProfileManagerInit().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Library/PlatformSecureLib.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Library/PlatformSecureLib.h File Reference

Functions

BOOLEAN EFIAPI UserPhysicalPresent (VOID)

Detailed Description

Provides a secure platform-specific method to detect physically present user.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

BOOLEAN EFIAPI UserPhysicalPresent ( VOID )

This function provides a platform-specific method to detect whether the platform is operating by a physically present user.

Programmatic changing of platform security policy (such as disable Secure Boot, or switch between Standard/Custom Secure Boot mode) MUST NOT be possible during Boot Services or after exiting EFI Boot Services. Only a physically present user is allowed to perform these operations.

NOTE THAT: This function cannot depend on any EFI Variable Service since they are not available when this function is called in AuthenticateVariable driver.

Return values:
TRUE | The platform is operated by a physically present user.
FALSE | The platform is NOT operated by a physically present user.

References TRUE.

Referenced by ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), and SecureBootExtractConfigFromVariable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Library/TcgPhysicalPresenceLib.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Library/TcgPhysicalPresenceLib.h File Reference

Functions

VOID EFIAPI | TcgPhysicalPresenceLibProcessRequest (VOID)
BOOLEAN EFIAPI | TcgPhysicalPresenceLibNeedUserConfirm (VOID)

Detailed Description

Ihis library is intended to be used by BDS modules. This library will lock TPM after executing TPM request.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

BOOLEAN EFIAPI TcgPhysicalPresenceLibNeedUserConfirm ( VOID )

Check if the pending TPM request needs user input to confirm.

The TPM request may come from OS. This API will check if TPM request exists and need user input to confirmation.

Return values:
TRUE | TPM needs input to confirm user physical presence.
FALSE | TPM doesn't need input to confirm user physical presence.

References gEfiPhysicalPresenceGuid, GetTpmCapability(), HaveValidTpmRequest(), PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_VARIABLE, EFI_PHYSICAL_PRESENCE::PPRequest, and TRUE.

VOID EFIAPI TcgPhysicalPresenceLibProcessRequest ( VOID )

Check and execute the pending TPM request and Lock TPM.

The TPM request may come from OS or BIOS. This API will display request information and wait for user confirmation if TPM request exists. The TPM request will be sent to TPM device after the TPM request is confirmed, and one or more reset may be required to make TPM request to take effect. At last, it will lock TPM to prevent TPM state change by malware.

This API should be invoked after console in and console out are all ready as they are required to display request information and get user input to confirm the request. This API should also be invoked as early as possible as TPM is locked in this function.

References ExecutePendingTpmRequest(), FLAG_NO_PPI_PROVISION, EFI_PHYSICAL_PRESENCE::Flags, gEfiPhysicalPresenceGuid, GetTpmCapability(), PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_VARIABLE, EFI_PHYSICAL_PRESENCE::PPRequest, EFI_PHYSICAL_PRESENCE::PPResponse, and TpmPhysicalPresence().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Library/TpmCommLib.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Library/TpmCommLib.h File Reference

Data Structures

struct | TIS_PC_REGISTERS

Defines

#define | TPM_BASE_ADDRESS 0xfed40000
#define | TCG_PLATFORM_TYPE_CLIENT 0
#define | TCG_PLATFORM_TYPE_SERVER 1
#define | TIS_PC_VALID BIT7
#define | TIS_PC_ACC_ACTIVE BIT5
#define | TIS_PC_ACC_SEIZED BIT4
#define | TIS_PC_ACC_SEIZE BIT3
#define | TIS_PC_ACC_PENDIND BIT2
#define | TIS_PC_ACC_RQUUSE BIT1
#define | TIS_PC_ACC_ESTABLISH BIT0
#define | TIS_PC_STS_READY BIT6
#define | TIS_PC_STS_GO BIT5
#define | TIS_PC_STS_DATA BIT4
#define | TIS_PC_STS_EXPECT BIT3
#define | TIS_PC_STS_RETRY BIT1
#define | TIS_TIMEOUT_A 750 * 1000
#define | TIS_TIMEOUT_B 2000 * 1000
#define | TIS_TIMEOUT_C 750 * 1000
#define | TIS_TIMEOUT_D 750 * 1000
#define | TPMCMDBUFLENGTH 1024

Typedefs

typedef EFI_HANDLE | TIS_TPM_HANDLE
typedef TIS_PC_REGISTERS * | TIS_PC_REGISTERS_PTR

Functions

EFI_STATUS EFIAPI | TisPcWaitRegisterBits (IN UINT8 *Register, IN UINT8 BitSet, IN UINT8 BitClear, IN UINT32 TimeOut)
EFI_STATUS EFIAPI | TisPcReadBurstCount (IN TIS_PC_REGISTERS_PTR TisReg, OUT UINT16 *BurstCount)
EFI_STATUS EFIAPI | TisPcPrepareCommand (IN TIS_PC_REGISTERS_PTR TisReg)
EFI_STATUS EFIAPI | TisPcRequestUseTpm (IN TIS_PC_REGISTERS_PTR TisReg)
EFI_STATUS EFIAPI | TpmCommHashAll (IN CONST UINT8 *Data, IN UINTN DataLen, OUT TPM_DIGEST *Digest)

Detailed Description

Ihis library is only intended to be used by TPM modules. It provides basic TPM Interface Specification (TIS) and Command functions.

Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define TCG_PLATFORM_TYPE_CLIENT 0

Referenced by InstallAcpiTable(), SetupEventLog(), TcgDxeLogEventI(), and TcgDxeStatusCheck().

#define TCG_PLATFORM_TYPE_SERVER 1

Referenced by MeasureHandoffTables().

#define TIS_PC_ACC_ACTIVE BIT5

Indicate that this locality is active.

Referenced by TisPcRequestUseTpm().

#define TIS_PC_ACC_ESTABLISH BIT0

A value of 1 indicates that a T/OS has not been established on the platform

#define TIS_PC_ACC_PENDIND BIT2

When this bit is 1, another locality is requesting usage of the TPM.

#define TIS_PC_ACC_RQUUSE BIT1

Set to 1 to indicate that this locality is requesting to use TPM.

Referenced by TisPcRequestUseTpm().

#define TIS_PC_ACC_SEIZE BIT3

Set to 1 to indicate that TPM MUST reset the TIS_PC_ACC_ACTIVE bit and remove ownership for localities less than the locality that is writing this bit.

#define TIS_PC_ACC_SEIZED BIT4

Set to 1 to indicate that this locality had the TPM taken away while this locality had the TIS_PC_ACC_ACTIVE bit set.

#define TIS_PC_STS_DATA BIT4

This bit indicates that the TPM has data available as a response.

Referenced by TisPcReceive(), and TisTpmCommand().

#define TIS_PC_STS_EXPECT BIT3

The TPM sets this bit to a value of 1 when it expects another byte of data for a command.

Referenced by TisPcSend(), and TisTpmCommand().

#define TIS_PC_STS_GO BIT5

Write a 1 to this bit to cause the TPM to execute that command.

Referenced by TisPcExecute(), and TisTpmCommand().

#define TIS_PC_STS_READY BIT6

When this bit is 1, TPM is in the Ready state, indicating it is ready to receive a new command.

Referenced by TisPcExecute(), TisPcPrepareCommand(), and TisTpmCommand().

#define TIS_PC_STS_RETRY BIT1

Writes a 1 to this bit to force the TPM to re-send the response.

#define TIS_PC_VALID BIT7

This bit is a 1 to indicate that the other bits in this register are valid.

Referenced by TisPcReceive(), TisPcRequestUseTpm(), TisPcSend(), and TisTpmCommand().

#define TIS_TIMEOUT_A 750 * 1000

Referenced by TisPcRequestUseTpm().

#define TIS_TIMEOUT_B 2000 * 1000

Referenced by TisPcPrepareCommand(), TisPcReceive(), and TisTpmCommand().

#define TIS_TIMEOUT_C 750 * 1000

Referenced by TisPcSend(), and TisTpmCommand().

#define TIS_TIMEOUT_D 750 * 1000

Referenced by TisPcReadBurstCount().

#define TPM_BASE_ADDRESS 0xfed40000

TPM register base address.

Referenced by DriverEntry(), MeasureFvImage(), PeimEntryMA(), PeimEntryMP(), PhysicalPresencePpiNotifyCallback(), and TcgConfigDriverEntryPoint().

#define TPMCMDBUFLENGTH 1024

Referenced by TisPcExecute(), TisPcReceive(), TisPcReceiveV(), and TisPcSendV().

Typedef Documentation

typedef TIS_PC_REGISTERS* TIS_PC_REGISTERS_PTR

typedef EFI_HANDLE TIS_TPM_HANDLE

Function Documentation

EFI_STATUS EFIAPI TisPcPrepareCommand ( IN TIS_PC_REGISTERS_PTR TisReg )

Set TPM chip to ready state by sending ready command TIS_PC_STS_READY to Status Register in time.

Parameters:
[in] TisReg Pointer to TIS register.
Return values:
EFI_SUCCESS | TPM chip enters into ready state.
EFI_INVALID_PARAMETER | TisReg is NULL.
EFI_TIMEOUT | TPM chip can't be set to ready state in time.

References TIS_PC_STS_READY, TIS_TIMEOUT_B, and TisPcWaitRegisterBits().

Referenced by TisPcSend(), and TisTpmCommand().

EFI_STATUS EFIAPI TisPcReadBurstCount | ( | IN TIS_PC_REGISTERS_PTR | TisReg,
 |  | OUT UINT16 * | BurstCount
 | ) |  |

Get BurstCount by reading the burstCount field of a TIS regiger in the time of default TIS_TIMEOUT_D.

Parameters:
[in] | TisReg | Pointer to TIS register.
[out] | BurstCount | Pointer to a buffer to store the got BurstConut.
Return values:
EFI_SUCCESS | Get BurstCount.
EFI_INVALID_PARAMETER | TisReg is NULL or BurstCount is NULL.
EFI_TIMEOUT | BurstCount can't be got in time.

References TIS_TIMEOUT_D.

Referenced by TisPcReceive(), TisPcSend(), and TisTpmCommand().

EFI_STATUS EFIAPI TisPcRequestUseTpm ( IN TIS_PC_REGISTERS_PTR TisReg )

Get the control of TPM chip by sending requestUse command TIS_PC_ACC_RQUUSE to ACCESS Register in the time of default TIS_TIMEOUT_D.

Parameters:
[in] TisReg Pointer to TIS register.
Return values:
EFI_SUCCESS | Get the control of TPM chip.
EFI_INVALID_PARAMETER | TisReg is NULL.
EFI_NOT_FOUND | TPM chip doesn't exit.
EFI_TIMEOUT | Can't get the TPM control in time.
Get the control of TPM chip by sending requestUse command TIS_PC_ACC_RQUUSE to ACCESS Register in the time of default TIS_TIMEOUT_A.

Parameters:
[in] TisReg Pointer to TIS register.
Return values:
EFI_SUCCESS | Get the control of TPM chip.
EFI_INVALID_PARAMETER | TisReg is NULL.
EFI_NOT_FOUND | TPM chip doesn't exit.
EFI_TIMEOUT | Can't get the TPM control in time.

References TIS_PC_ACC_ACTIVE, TIS_PC_ACC_RQUUSE, TIS_PC_VALID, TIS_TIMEOUT_A, TisPcPresenceCheck(), and TisPcWaitRegisterBits().

Referenced by DriverEntry(), PeimEntryMA(), PeimEntryMP(), and TcgConfigDriverEntryPoint().

EFI_STATUS EFIAPI TisPcWaitRegisterBits | ( | IN UINT8 * | Register,
 |  | IN UINT8 | BitSet,
 |  | IN UINT8 | BitClear,
 |  | IN UINT32 | TimeOut
 | ) |  |

Check whether the value of a TPM chip register satisfies the input BIT setting.

Parameters:
[in] | Register | Address port of register to be checked.
[in] | BitSet | Check these data bits are set.
[in] | BitClear | Check these data bits are clear.
[in] | TimeOut | The max wait time (unit MicroSecond) when checking register.
Return values:
EFI_SUCCESS | The register satisfies the check bit.
EFI_TIMEOUT | The register can't run into the expected status in time.

Referenced by TisPcPrepareCommand(), TisPcReceive(), TisPcRequestUseTpm(), TisPcSend(), and TisTpmCommand().

EFI_STATUS EFIAPI TpmCommHashAll | ( | IN CONST UINT8 * | Data,
 |  | IN UINTN | DataLen,
 |  | OUT TPM_DIGEST * | Digest
 | ) |  |

Single function calculates SHA1 digest value for all raw data. It combines Sha1Init(), Sha1Update() and Sha1Final().

Parameters:
[in] | Data | Raw data to be digested.
[in] | DataLen | Size of the raw data.
[out] | Digest | Pointer to a buffer that stores the final digest.
Return values:
EFI_SUCCESS Always successfully calculate the final digest.

Referenced by HashLogExtendEvent(), TcgDxeHashAll(), and TcgDxeHashLogExtendEventI().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Library/TpmMeasurementLib.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Library/TpmMeasurementLib.h File Reference

Functions

EFI_STATUS EFIAPI TpmMeasureAndLogData (IN UINT32 PcrIndex, IN UINT32 EventType, IN VOID *EventLog, IN UINT32 LogLen, IN VOID *HashData, IN UINT64 HashDataLen)

Detailed Description

This library is used by other modules to measure data to TPM.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI TpmMeasureAndLogData | ( | IN UINT32 | PcrIndex,
 |  | IN UINT32 | EventType,
 |  | IN VOID * | EventLog,
 |  | IN UINT32 | LogLen,
 |  | IN VOID * | HashData,
 |  | IN UINT64 | HashDataLen
 | ) |  |

Tpm measure and log data, and extend the measurement result into a specific PCR.

Parameters:
[in] | PcrIndex | PCR Index.
[in] | EventType | Event type.
[in] | EventLog | Measurement event log.
[in] | LogLen | Event log length in bytes.
[in] | HashData | The start of the data buffer to be hashed, extended.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_UNSUPPORTED | TPM device not available.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.
Tpm measure and log data, and extend the measurement result into a specific PCR.

Parameters:
[in] | PcrIndex | PCR Index.
[in] | EventType | Event type.
[in] | EventLog | Measurement event log.
[in] | LogLen | Event log length in bytes.
[in] | HashData | The start of the data buffer to be hashed, extended.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_UNSUPPORTED | TPM device not available.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References Tpm12MeasureAndLogData().

Referenced by PublishAcpiTable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Ppi/LockPhysicalPresence.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Ppi/LockPhysicalPresence.h File Reference

Data Structures

struct | _PEI_LOCK_PHYSICAL_PRESENCE_PPI

Defines

#define | PEI_LOCK_PHYSICAL_PRESENCE_PPI_GUID

Typedefs

typedef struct
_PEI_LOCK_PHYSICAL_PRESENCE_PPI 		PEI_LOCK_PHYSICAL_PRESENCE_PPI
typedef BOOLEAN(EFIAPI * | PEI_LOCK_PHYSICAL_PRESENCE )(IN CONST EFI_PEI_SERVICES **PeiServices)

Variables

EFI_GUID | gPeiLockPhysicalPresencePpiGuid

Detailed Description

This file defines the lock physical Presence PPI. This PPI is produced by a platform specific PEIM and consumed by the TPM PEIM.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define PEI_LOCK_PHYSICAL_PRESENCE_PPI_GUID

Value:

{ \
    0xef9aefe5, 0x2bd3, 0x4031, { 0xaf, 0x7d, 0x5e, 0xfe, 0x5a, 0xbb, 0x9a, 0xd } \
  }
Global ID for the PEI_LOCK_PHYSICAL_PRESENCE_PPI_GUID.

Typedef Documentation

typedef BOOLEAN(EFIAPI * PEI_LOCK_PHYSICAL_PRESENCE)(IN CONST EFI_PEI_SERVICES **PeiServices)

This interface returns whether TPM physical presence needs be locked.

Parameters:
[in] PeiServices The pointer to the PEI Services Table.
Return values:
TRUE | The TPM physical presence should be locked.
FALSE | The TPM physical presence cannot be locked.

typedef struct _PEI_LOCK_PHYSICAL_PRESENCE_PPI PEI_LOCK_PHYSICAL_PRESENCE_PPI

Forward declaration for the PEI_LOCK_PHYSICAL_PRESENCE_PPI

Variable Documentation

EFI_GUID gPeiLockPhysicalPresencePpiGuid

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Include/Ppi/TpmInitialized.h File Reference

  • File List
  • Globals

SecurityPkg/Include/Ppi/TpmInitialized.h File Reference

Defines

#define | PEI_TPM_INITIALIZED_PPI_GUID

Variables

EFI_GUID | gPeiTpmInitializedPpiGuid

Detailed Description

Tag GUID that must be installed by the TPM PEIM after the TPM hardware is initialized. PEIMs that must execute after TPM hardware initialization may use this GUID in their dependency expressions.

Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define PEI_TPM_INITIALIZED_PPI_GUID

Value:

{ \
    0xe9db0d58, 0xd48d, 0x47f6, 0x9c, 0x6e, 0x6f, 0x40, 0xe8, 0x6c, 0x7b, 0x41 \
  }
Global ID for the PEI_TPM_INITIALIZED_PPI which always uses a NULL interface.

Variable Documentation

EFI_GUID gPeiTpmInitializedPpiGuid

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.c File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.c File Reference

Functions

UINT32 | GetFileType (IN CONST EFI_DEVICE_PATH_PROTOCOL *File)
EFI_STATUS | GetAccessControl (OUT EFI_USER_INFO_ACCESS_CONTROL **AccessControl, IN UINT32 AccessType)
VOID | ConvertDPStr (IN OUT EFI_STRING Str)
BOOLEAN | CheckDevicePath (IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath1, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath2)
BOOLEAN | IsDevicePathInList (IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN UINT32 AccessType)
BOOLEAN | VerifyDevicePath (IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
BOOLEAN | IsBootOption (IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
VOID | PutDefferedImageInfo (IN CONST EFI_DEVICE_PATH_PROTOCOL *ImageDevicePath, IN VOID *Image, IN UINTN ImageSize)
EFI_STATUS EFIAPI | GetDefferedImageInfo (IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *This, IN UINTN ImageIndex, OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath, OUT VOID **Image, OUT UINTN *ImageSize, OUT BOOLEAN *BootOption)
EFI_STATUS EFIAPI | DxeDeferImageLoadHandler (IN UINT32 AuthenticationStatus, IN CONST EFI_DEVICE_PATH_PROTOCOL *File, IN VOID *FileBuffer, IN UINTN FileSize, IN BOOLEAN BootPolicy)
VOID EFIAPI | FindUserManagerProtocol (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI | DxeDeferImageLoadLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_HANDLE | mDeferredImageHandle = NULL
BOOLEAN | mIsProtocolInstalled = FALSE
EFI_USER_MANAGER_PROTOCOL * | mUserManager = NULL
DEFERRED_IMAGE_TABLE mDeferredImage
EFI_DEFERRED_IMAGE_LOAD_PROTOCOL | gDeferredImageLoad

Detailed Description

Implement defer image load services for user identification in UEFI2.2.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

BOOLEAN CheckDevicePath | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | DevicePath1,
 |  | IN CONST EFI_DEVICE_PATH_PROTOCOL * | DevicePath2
 | ) |  |

Check whether the DevicePath2 is identical with DevicePath1, or identical with DevicePath1's child device path.

If DevicePath2 is identical with DevicePath1, or with DevicePath1's child device path, then TRUE returned. Otherwise, FALSE is returned.

If DevicePath1 is NULL, then ASSERT(). If DevicePath2 is NULL, then ASSERT().

Parameters:
[in] | DevicePath1 | A pointer to a device path.
[in] | DevicePath2 | A pointer to a device path.
Return values:
TRUE | Two device paths are identical , or DevicePath2 is DevicePath1's child device path.
FALSE | Two device paths are not identical, and DevicePath2 is not DevicePath1's child device path.

References ConvertDPStr(), and TRUE.

Referenced by IsBootOption(), and IsDevicePathInList().

VOID ConvertDPStr ( IN OUT EFI_STRING Str )

Convert the '/' to '\' in the specified string.

Parameters:
[in,out] Str Points to the string to convert.

Referenced by CheckDevicePath().

EFI_STATUS EFIAPI DxeDeferImageLoadHandler | ( | IN UINT32 | AuthenticationStatus,
 |  | IN CONST EFI_DEVICE_PATH_PROTOCOL * | File,
 |  | IN VOID * | FileBuffer,
 |  | IN UINTN | FileSize,
 |  | IN BOOLEAN | BootPolicy
 | ) |  |

Provides the service of deferring image load based on platform policy control, and installs Deferred Image Load Protocol.

Parameters:
[in] | AuthenticationStatus | This is the authentication status returned from the security measurement services for the input file.
[in] | File | This is a pointer to the device path of the file that is being dispatched. This will optionally be used for logging.
[in] | FileBuffer | File buffer matches the input file device path.
[in] | FileSize | Size of File buffer matches the input file device path.
[in] | BootPolicy | A boot policy that was used to call LoadImage() UEFI service.
Return values:
EFI_SUCCESS | FileBuffer is NULL and current user has permission to start UEFI device drivers on the device path specified by DevicePath.
EFI_SUCCESS | The file specified by DevicePath and non-NULL FileBuffer did authenticate, and the platform policy dictates that the DXE Foundation may use the file.
EFI_SECURITY_VIOLATION | FileBuffer is NULL and the user has no permission to start UEFI device drivers on the device path specified by DevicePath.
EFI_SECURITY_VIOLATION | FileBuffer is not NULL and the user has no permission to load drivers from the device path specified by DevicePath. The image has been added into the list of the deferred images.
EFI_ACCESS_DENIED | The file specified by File and FileBuffer did not authenticate, and the platform policy dictates that the DXE Foundation many not use File.

References gDeferredImageLoad, GetFileType(), mDeferredImageHandle, mIsProtocolInstalled, mUserManager, PutDefferedImageInfo(), TRUE, and VerifyDevicePath().

Referenced by DxeDeferImageLoadLibConstructor().

EFI_STATUS EFIAPI DxeDeferImageLoadLibConstructor | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Register security handler for deferred image load.

Parameters:
[in] | ImageHandle | ImageHandle of the loaded driver.
[in] | SystemTable | Pointer to the EFI System Table.
Return values:
EFI_SUCCESS The handlers were registered successfully.

References DxeDeferImageLoadHandler(), and FindUserManagerProtocol().

VOID EFIAPI FindUserManagerProtocol | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Locate user manager protocol when user manager is installed.

Parameters:
[in] | Event | The Event that is being processed, not used.
[in] | Context | Event Context, not used.

References mUserManager.

Referenced by DxeDeferImageLoadLibConstructor().

EFI_STATUS GetAccessControl | ( | OUT EFI_USER_INFO_ACCESS_CONTROL ** | AccessControl,
 |  | IN UINT32 | AccessType
 | ) |  |

Get current user's access right.

Parameters:
[out] | AccessControl | Points to the user's access control data, the caller should free data buffer.
[in] | AccessType | The type of user access control.
Return values:
EFI_SUCCESS | Get current user access control successfully
others | Fail to get current user access control

References TRUE.

Referenced by IsDevicePathInList().

EFI_STATUS EFIAPI GetDefferedImageInfo | ( | IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL * | This,
 |  | IN UINTN | ImageIndex,
 |  | OUT EFI_DEVICE_PATH_PROTOCOL ** | ImageDevicePath,
 |  | OUT VOID ** | Image,
 |  | OUT UINTN * | ImageSize,
 |  | OUT BOOLEAN * | BootOption
 | ) |  |

Returns information about a deferred image.

This function returns information about a single deferred image. The deferred images are numbered consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this function until EFI_NOT_FOUND is returned. Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because of the location of the executable image, rather than its actual contents.

Parameters:
[in] | This | Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL.
[in] | ImageIndex | Zero-based index of the deferred index.
[out] | ImageDevicePath | On return, points to a pointer to the device path of the image. The device path should not be freed by the caller.
[out] | Image | On return, points to the first byte of the image or NULL if the image is not available. The image should not be freed by the caller unless LoadImage() has been successfully called.
[out] | ImageSize | On return, the size of the image, or 0 if the image is not available.
[out] | BootOption | On return, points to TRUE if the image was intended as a boot option or FALSE if it was not intended as a boot option.
Return values:
EFI_SUCCESS | Image information returned successfully.
EFI_NOT_FOUND | ImageIndex does not refer to a valid image.
EFI_INVALID_PARAMETER | ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or BootOption is NULL.

References DEFERRED_IMAGE_INFO::BootOption, DEFERRED_IMAGE_TABLE::Count, DEFERRED_IMAGE_INFO::Image, DEFERRED_IMAGE_INFO::ImageDevicePath, DEFERRED_IMAGE_TABLE::ImageInfo, and DEFERRED_IMAGE_INFO::ImageSize.

UINT32 GetFileType ( IN CONST EFI_DEVICE_PATH_PROTOCOL * File )

Get the image type.

Parameters:
[in] File This is a pointer to the device path of the file that is being dispatched.
Returns:
UINT32 Image Type

References IMAGE_FROM_FIXED_MEDIA, IMAGE_FROM_FV, IMAGE_FROM_OPTION_ROM, IMAGE_FROM_REMOVABLE_MEDIA, and IMAGE_UNKNOWN.

Referenced by DxeDeferImageLoadHandler().

BOOLEAN IsBootOption ( IN CONST EFI_DEVICE_PATH_PROTOCOL * DevicePath )

Check the image pointed by DevicePath is a boot option or not.

Parameters:
[in] DevicePath Points to device path.
Return values:
TURE | The image pointed by DevicePath is a boot option.
FALSE | The image pointed by DevicePath is not a boot option.

References CheckDevicePath(), and TRUE.

Referenced by PutDefferedImageInfo().

BOOLEAN IsDevicePathInList | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | DevicePath,
 |  | IN UINT32 | AccessType
 | ) |  |

Check whether the image pointed to by DevicePath is in the device path list specified by AccessType.

Parameters:
[in] | DevicePath | Points to device path.
[in] | AccessType | The type of user access control.
Return values:
TURE | The DevicePath is in the specified List.
FALSE | The DevicePath is not in the specified List.

References CheckDevicePath(), GetAccessControl(), and TRUE.

Referenced by VerifyDevicePath().

VOID PutDefferedImageInfo | ( | IN CONST EFI_DEVICE_PATH_PROTOCOL * | ImageDevicePath,
 |  | IN VOID * | Image,
 |  | IN UINTN | ImageSize
 | ) |  |

Add the image info to a deferred image list.

Parameters:
[in] | ImageDevicePath | A pointer to the device path of a image.
[in] | Image | Points to the first byte of the image, or NULL if the image is not available.
[in] | ImageSize | The size of the image, or 0 if the image is not available.

References DEFERRED_IMAGE_INFO::BootOption, DEFERRED_IMAGE_TABLE::Count, DEFERRED_IMAGE_INFO::Image, DEFERRED_IMAGE_INFO::ImageDevicePath, DEFERRED_IMAGE_TABLE::ImageInfo, DEFERRED_IMAGE_INFO::ImageSize, and IsBootOption().

Referenced by DxeDeferImageLoadHandler().

BOOLEAN VerifyDevicePath ( IN CONST EFI_DEVICE_PATH_PROTOCOL * DevicePath )

Check whether the image pointed to by DevicePath is permitted to load.

Parameters:
[in] DevicePath Points to device path
Return values:
TURE | The image pointed by DevicePath is permitted to load.
FALSE | The image pointed by DevicePath is forbidden to load.

References IsDevicePathInList(), and TRUE.

Referenced by DxeDeferImageLoadHandler().

Variable Documentation

EFI_DEFERRED_IMAGE_LOAD_PROTOCOL gDeferredImageLoad

Initial value:

 {
  GetDefferedImageInfo
}

Referenced by DxeDeferImageLoadHandler().

DEFERRED_IMAGE_TABLE mDeferredImage

Initial value:

 {
  0,
  NULL
}

EFI_HANDLE mDeferredImageHandle = NULL

Referenced by DxeDeferImageLoadHandler(), LoadDeferredImage(), and LoadDeferredImageInit().

BOOLEAN mIsProtocolInstalled = FALSE

Referenced by DxeDeferImageLoadHandler().

EFI_USER_MANAGER_PROTOCOL* mUserManager = NULL

Referenced by CallAddUser(), DeleteUser(), DxeDeferImageLoadHandler(), FindInfoByType(), FindUserManagerProtocol(), GetAccessRight(), GetAllUserInfo(), GetUserName(), ModifyUserInfo(), ModifyUserName(), SaveAccessPolicy(), SaveIdentityPolicy(), SelectUserToDelete(), SelectUserToModify(), SetAccessPolicy(), SetCreateDate(), SetIdentityPolicy(), SetUserName(), UserProfileManagerCallback(), and UserProfileManagerInit().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.h File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeDeferImageLoadLib/DxeDeferImageLoadLib.h File Reference

Data Structures

struct | DEFERRED_IMAGE_INFO
struct | DEFERRED_IMAGE_TABLE

Defines

#define | IMAGE_UNKNOWN 0x00000001
#define | IMAGE_FROM_FV 0x00000002
#define | IMAGE_FROM_OPTION_ROM 0x00000004
#define | IMAGE_FROM_REMOVABLE_MEDIA 0x00000008
#define | IMAGE_FROM_FIXED_MEDIA 0x00000010

Functions

EFI_STATUS EFIAPI | GetDefferedImageInfo (IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL *This, IN UINTN ImageIndex, OUT EFI_DEVICE_PATH_PROTOCOL **ImageDevicePath, OUT VOID **Image, OUT UINTN *ImageSize, OUT BOOLEAN *BootOption)

Detailed Description

The internal header file includes the common header files, defines internal structure and functions used by DeferImageLoadLib.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define IMAGE_FROM_FIXED_MEDIA 0x00000010

Referenced by DxeImageVerificationHandler(), GetFileType(), and GetImageType().

#define IMAGE_FROM_FV 0x00000002

Referenced by DxeImageVerificationHandler(), GetFileType(), and GetImageType().

#define IMAGE_FROM_OPTION_ROM 0x00000004

Referenced by DxeImageVerificationHandler(), GetFileType(), and GetImageType().

#define IMAGE_FROM_REMOVABLE_MEDIA 0x00000008

Referenced by DxeImageVerificationHandler(), GetFileType(), and GetImageType().

#define IMAGE_UNKNOWN 0x00000001

Referenced by GetFileType(), and GetImageType().

Function Documentation

EFI_STATUS EFIAPI GetDefferedImageInfo | ( | IN EFI_DEFERRED_IMAGE_LOAD_PROTOCOL * | This,
 |  | IN UINTN | ImageIndex,
 |  | OUT EFI_DEVICE_PATH_PROTOCOL ** | ImageDevicePath,
 |  | OUT VOID ** | Image,
 |  | OUT UINTN * | ImageSize,
 |  | OUT BOOLEAN * | BootOption
 | ) |  |

Returns information about a deferred image.

This function returns information about a single deferred image. The deferred images are numbered consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this function until EFI_NOT_FOUND is returned. Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because of the location of the executable image, rather than its actual contents.

Parameters:
[in] | This | Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL.
[in] | ImageIndex | Zero-based index of the deferred index.
[out] | ImageDevicePath | On return, points to a pointer to the device path of the image. The device path should not be freed by the caller.
[out] | Image | On return, points to the first byte of the image or NULL if the image is not available. The image should not be freed by the caller unless LoadImage() has been called successfully.
[out] | ImageSize | On return, the size of the image, or 0 if the image is not available.
[out] | BootOption | On return, points to TRUE if the image was intended as a boot option or FALSE if it was not intended as a boot option.
Return values:
EFI_SUCCESS | Image information returned successfully.
EFI_NOT_FOUND | ImageIndex does not refer to a valid image.
EFI_INVALID_PARAMETER | ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or BootOption is NULL.
Returns information about a deferred image.

This function returns information about a single deferred image. The deferred images are numbered consecutively, starting with 0. If there is no image which corresponds to ImageIndex, then EFI_NOT_FOUND is returned. All deferred images may be returned by iteratively calling this function until EFI_NOT_FOUND is returned. Image may be NULL and ImageSize set to 0 if the decision to defer execution was made because of the location of the executable image, rather than its actual contents.

Parameters:
[in] | This | Points to this instance of the EFI_DEFERRED_IMAGE_LOAD_PROTOCOL.
[in] | ImageIndex | Zero-based index of the deferred index.
[out] | ImageDevicePath | On return, points to a pointer to the device path of the image. The device path should not be freed by the caller.
[out] | Image | On return, points to the first byte of the image or NULL if the image is not available. The image should not be freed by the caller unless LoadImage() has been successfully called.
[out] | ImageSize | On return, the size of the image, or 0 if the image is not available.
[out] | BootOption | On return, points to TRUE if the image was intended as a boot option or FALSE if it was not intended as a boot option.
Return values:
EFI_SUCCESS | Image information returned successfully.
EFI_NOT_FOUND | ImageIndex does not refer to a valid image.
EFI_INVALID_PARAMETER | ImageDevicePath is NULL or Image is NULL or ImageSize is NULL or BootOption is NULL.

References DEFERRED_IMAGE_INFO::BootOption, DEFERRED_IMAGE_TABLE::Count, DEFERRED_IMAGE_INFO::Image, DEFERRED_IMAGE_INFO::ImageDevicePath, DEFERRED_IMAGE_TABLE::ImageInfo, and DEFERRED_IMAGE_INFO::ImageSize.

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeImageAuthenticationStatusLib/DxeImageAuthenticationStatusLib.c File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeImageAuthenticationStatusLib/DxeImageAuthenticationStatusLib.c File Reference

Functions

EFI_STATUS EFIAPI | DxeImageAuthenticationStatusHandler (IN UINT32 AuthenticationStatus, IN CONST EFI_DEVICE_PATH_PROTOCOL *File, IN VOID *FileBuffer, IN UINTN FileSize, IN BOOLEAN BootPolicy)
EFI_STATUS EFIAPI | DxeImageAuthenticationStatusLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Detailed Description

Implement image authentication status check in UEFI2.3.1.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI DxeImageAuthenticationStatusHandler | ( | IN UINT32 | AuthenticationStatus,
 |  | IN CONST EFI_DEVICE_PATH_PROTOCOL * | File,
 |  | IN VOID * | FileBuffer,
 |  | IN UINTN | FileSize,
 |  | IN BOOLEAN | BootPolicy
 | ) |  |

Check image authentication status returned from Section Extraction Protocol

Parameters:
[in] | AuthenticationStatus | This is the authentication status returned from the Section Extraction Protocol when reading the input file.
[in] | File | This is a pointer to the device path of the file that is being dispatched. This will optionally be used for logging.
[in] | FileBuffer | File buffer matches the input file device path.
[in] | FileSize | Size of File buffer matches the input file device path.
[in] | BootPolicy | A boot policy that was used to call LoadImage() UEFI service.
Return values:
EFI_SUCCESS | The input file specified by File did authenticate, and the platform policy dictates that the DXE Core may use File.
EFI_ACCESS_DENIED | The file specified by File and FileBuffer did not authenticate, and the platform policy dictates that the DXE Foundation many not use File.

Referenced by DxeImageAuthenticationStatusLibConstructor().

EFI_STATUS EFIAPI DxeImageAuthenticationStatusLibConstructor | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Register image authenticaion status check handler.

Parameters:
ImageHandle | ImageHandle of the loaded driver.
SystemTable | Pointer to the EFI System Table.
Return values:
EFI_SUCCESS The handlers were registered successfully.

References DxeImageAuthenticationStatusHandler().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.c File Reference

Functions

EFI_STATUS EFIAPI | DxeImageVerificationLibImageRead (IN VOID *FileHandle, IN UINTN FileOffset, IN OUT UINTN *ReadSize, OUT VOID *Buffer)
UINT32 | GetImageType (IN CONST EFI_DEVICE_PATH_PROTOCOL *File)
BOOLEAN | HashPeImage (IN UINT32 HashAlg)
EFI_STATUS | HashPeImageByType (IN UINT8 *AuthData, IN UINTN AuthDataSize)
UINTN | GetImageExeInfoTableSize (EFI_IMAGE_EXECUTION_INFO_TABLE *ImageExeInfoTable)
VOID | AddImageExeInfo (IN EFI_IMAGE_EXECUTION_ACTION Action, IN CHAR16 *Name, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN EFI_SIGNATURE_LIST *Signature, IN UINTN SignatureSize)
BOOLEAN | IsSignatureFoundInDatabase (IN CHAR16 *VariableName, IN UINT8 *Signature, IN EFI_GUID *CertType, IN UINTN SignatureSize)
BOOLEAN | IsPkcsSignedDataVerifiedBySignatureList (IN UINT8 *AuthData, IN UINTN AuthDataSize, IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS EFIAPI | DxeImageVerificationHandler (IN UINT32 AuthenticationStatus, IN CONST EFI_DEVICE_PATH_PROTOCOL *File, IN VOID *FileBuffer, IN UINTN FileSize, IN BOOLEAN BootPolicy)
EFI_STATUS EFIAPI | DxeImageVerificationLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION | mNtHeader
UINT32 | mPeCoffHeaderOffset
EFI_GUID | mCertType
UINTN | mImageSize
UINT8 * | mImageBase = NULL
UINT8 | mImageDigest [MAX_DIGEST_SIZE]
UINTN | mImageDigestSize
CHAR16 | mNotifyString1 [MAX_NOTIFY_STRING_LEN] = L"Image verification pass but not found in authorized database!"
CHAR16 | mNotifyString2 [MAX_NOTIFY_STRING_LEN] = L"Launch this image anyway? (Yes/Defer/No)"
CONST UINT8 | mRsaE [] = { 0x01, 0x00, 0x01 }
UINT8 | mHashOidValue []
HASH_TABLE mHash []

Detailed Description

Implement image verification services for secure boot service in UEFI2.3.1.

Caution: This file requires additional review when modified. This library will have external input - PE/COFF image. This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow.

DxeImageVerificationLibImageRead() function will make sure the PE/COFF image content read is within the image buffer.

DxeImageVerificationHandler(), HashPeImageByType(), HashPeImage() function will accept untrusted PE/COFF image and validate its data structure within this image buffer before use.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AddImageExeInfo | ( | IN EFI_IMAGE_EXECUTION_ACTION | Action,
 |  | IN CHAR16 * | Name,
 |  | IN CONST EFI_DEVICE_PATH_PROTOCOL * | DevicePath,
 |  | IN EFI_SIGNATURE_LIST * | Signature,
 |  | IN UINTN | SignatureSize
 | ) |  |

Create an Image Execution Information Table entry and add it to system configuration table.

Parameters:
[in] | Action | Describes the action taken by the firmware regarding this image.
[in] | Name | Input a null-terminated, user-friendly name.
[in] | DevicePath | Input device path pointer.
[in] | Signature | Input signature info in EFI_SIGNATURE_LIST data structure.
[in] | SignatureSize | Size of signature.

References GetImageExeInfoTableSize().

Referenced by DxeImageVerificationHandler().

EFI_STATUS EFIAPI DxeImageVerificationHandler | ( | IN UINT32 | AuthenticationStatus,
 |  | IN CONST EFI_DEVICE_PATH_PROTOCOL * | File,
 |  | IN VOID * | FileBuffer,
 |  | IN UINTN | FileSize,
 |  | IN BOOLEAN | BootPolicy
 | ) |  |

Provide verification service for signed images, which include both signature validation and platform policy control. For signature types, both UEFI WIN_CERTIFICATE_UEFI_GUID and MSFT Authenticode type signatures are supported.

In this implementation, only verify external executables when in USER MODE. Executables from FV is bypass, so pass in AuthenticationStatus is ignored.

The image verification policy is: If the image is signed, At least one valid signature or at least one hash value of the image must match a record in the security database "db", and no valid signature nor any hash value of the image may be reflected in the security database "dbx". Otherwise, the image is not signed, The SHA256 hash value of the image must match a record in the security database "db", and not be reflected in the security data base "dbx".

Caution: This function may receive untrusted input. PE/COFF image is external input, so this function will validate its data structure within this image buffer before use.

Parameters:
[in] | AuthenticationStatus | This is the authentication status returned from the security measurement services for the input file.
[in] | File | This is a pointer to the device path of the file that is being dispatched. This will optionally be used for logging.
[in] | FileBuffer | File buffer matches the input file device path.
[in] | FileSize | Size of File buffer matches the input file device path.
[in] | BootPolicy | A boot policy that was used to call LoadImage() UEFI service.
Return values:
EFI_SUCCESS | The file specified by DevicePath and non-NULL FileBuffer did authenticate, and the platform policy dictates that the DXE Foundation may use the file.
EFI_SUCCESS | The device path specified by NULL device path DevicePath and non-NULL FileBuffer did authenticate, and the platform policy dictates that the DXE Foundation may execute the image in FileBuffer.
EFI_OUT_RESOURCE | Fail to allocate memory.
EFI_SECURITY_VIOLATION | The file specified by File did not authenticate, and the platform policy dictates that File should be placed in the untrusted state. The image has been added to the file execution table.
EFI_ACCESS_DENIED | The file specified by File and FileBuffer did not authenticate, and the platform policy dictates that the DXE Foundation many not use File.

References AddImageExeInfo(), ALIGN_SIZE, ALWAYS_EXECUTE, WIN_CERTIFICATE_EFI_PKCS::CertData, DENY_EXECUTE_ON_SECURITY_VIOLATION, DxeImageVerificationLibImageRead(), GetImageType(), HASHALG_SHA256, HashPeImage(), HashPeImageByType(), WIN_CERTIFICATE_EFI_PKCS::Hdr, IMAGE_FROM_FIXED_MEDIA, IMAGE_FROM_FV, IMAGE_FROM_OPTION_ROM, IMAGE_FROM_REMOVABLE_MEDIA, IsPkcsSignedDataVerifiedBySignatureList(), IsSignatureFoundInDatabase(), mCertType, mImageBase, mImageDigest, mImageDigestSize, mImageSize, mNtHeader, mPeCoffHeaderOffset, and NEVER_EXECUTE.

Referenced by DxeImageVerificationLibConstructor().

EFI_STATUS EFIAPI DxeImageVerificationLibConstructor | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Register security measurement handler.

Parameters:
ImageHandle | ImageHandle of the loaded driver.
SystemTable | Pointer to the EFI System Table.
Return values:
EFI_SUCCESS The handlers were registered successfully.

References DxeImageVerificationHandler().

EFI_STATUS EFIAPI DxeImageVerificationLibImageRead | ( | IN VOID * | FileHandle,
 |  | IN UINTN | FileOffset,
 |  | IN OUT UINTN * | ReadSize,
 |  | OUT VOID * | Buffer
 | ) |  |

Reads contents of a PE/COFF image in memory buffer.

Caution: This function may receive untrusted input. PE/COFF image is external input, so this function will make sure the PE/COFF image content read is within the image buffer.

Parameters:
FileHandle | Pointer to the file handle to read the PE/COFF image.
FileOffset | Offset into the PE/COFF image to begin the read operation.
ReadSize | On input, the size in bytes of the requested read operation. On output, the number of bytes actually read.
Buffer | Output buffer that contains the data read from the PE/COFF image.
Return values:
EFI_SUCCESS The specified portion of the PE/COFF image was read and the size

References mImageSize.

Referenced by DxeImageVerificationHandler().

UINTN GetImageExeInfoTableSize ( EFI_IMAGE_EXECUTION_INFO_TABLE * ImageExeInfoTable )

Returns the size of a given image execution info table in bytes.

This function returns the size, in bytes, of the image execution info table specified by ImageExeInfoTable. If ImageExeInfoTable is NULL, then 0 is returned.

Parameters:
ImageExeInfoTable A pointer to a image execution info table structure.
Return values:
0 | If ImageExeInfoTable is NULL.
Others | The size of a image execution info table in bytes.

Referenced by AddImageExeInfo().

UINT32 GetImageType ( IN CONST EFI_DEVICE_PATH_PROTOCOL * File )

Get the image type.

Parameters:
[in] File This is a pointer to the device path of the file that is being dispatched.
Returns:
UINT32 Image Type

References IMAGE_FROM_FIXED_MEDIA, IMAGE_FROM_FV, IMAGE_FROM_OPTION_ROM, IMAGE_FROM_REMOVABLE_MEDIA, and IMAGE_UNKNOWN.

Referenced by DxeImageVerificationHandler().

BOOLEAN HashPeImage ( IN UINT32 HashAlg )

Caculate hash of Pe/Coff image based on the authenticode image hashing in PE/COFF Specification 8.0 Appendix A

Caution: This function may receive untrusted input. PE/COFF image is external input, so this function will validate its data structure within this image buffer before use.

Parameters:
[in] HashAlg Hash algorithm type.
Return values:
TRUE | Successfully hash image.
FALSE | Fail in hash image.

References HASH_TABLE::GetContextSize, HASHALG_SHA1, HASHALG_SHA256, HASH_TABLE::HashFinal, HASH_TABLE::HashInit, HASH_TABLE::HashUpdate, MAX_DIGEST_SIZE, mCertType, mImageBase, mImageDigest, mImageDigestSize, mImageSize, mNtHeader, mPeCoffHeaderOffset, SHA1_DIGEST_SIZE, and SHA256_DIGEST_SIZE.

Referenced by DxeImageVerificationHandler(), EnrollImageSignatureToSigDB(), and HashPeImageByType().

EFI_STATUS HashPeImageByType | ( | IN UINT8 * | AuthData,
 |  | IN UINTN | AuthDataSize
 | ) |  |

Recognize the Hash algorithm in PE/COFF Authenticode and caculate hash of Pe/Coff image based on the authenticode image hashing in PE/COFF Specification 8.0 Appendix A

Caution: This function may receive untrusted input. PE/COFF image is external input, so this function will validate its data structure within this image buffer before use.

Parameters:
[in] | AuthData | Pointer to the Authenticode Signature retrieved from signed image.
[in] | AuthDataSize | Size of the Authenticode Signature in bytes.
Return values:
EFI_UNSUPPORTED | Hash algorithm is not supported.
EFI_SUCCESS | Hash successfully.

References HASHALG_MAX, HashPeImage(), and TWO_BYTE_ENCODE.

Referenced by DxeImageVerificationHandler(), and EnrollImageSignatureToSigDB().

BOOLEAN IsPkcsSignedDataVerifiedBySignatureList | ( | IN UINT8 * | AuthData,
 |  | IN UINTN | AuthDataSize,
 |  | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Verify PKCS#7 SignedData using certificate found in Variable which formatted as EFI_SIGNATURE_LIST. The Variable may be PK, KEK, DB or DBX.

Parameters:
[in] | AuthData | Pointer to the Authenticode Signature retrieved from signed image.
[in] | AuthDataSize | Size of the Authenticode Signature in bytes.
[in] | VariableName | Name of Variable to search for Certificate.
[in] | VendorGuid | Variable vendor GUID.
Return values:
TRUE | Image pass verification.
FALSE | Image fail verification.

References mImageDigest, and mImageDigestSize.

Referenced by DxeImageVerificationHandler().

BOOLEAN IsSignatureFoundInDatabase | ( | IN CHAR16 * | VariableName,
 |  | IN UINT8 * | Signature,
 |  | IN EFI_GUID * | CertType,
 |  | IN UINTN | SignatureSize
 | ) |  |

Check whether signature is in specified database.

Parameters:
[in] | VariableName | Name of database variable that is searched in.
[in] | Signature | Pointer to signature that is searched for.
[in] | CertType | Pointer to hash algrithom.
[in] | SignatureSize | Size of Signature.
Returns:
TRUE Found the signature in the variable database.

FALSE Not found the signature in the variable database.

References TRUE.

Referenced by DxeImageVerificationHandler().

Variable Documentation

EFI_GUID mCertType

Referenced by DxeImageVerificationHandler(), and HashPeImage().

HASH_TABLE mHash[]

Initial value:

 {
  { L"SHA1",   20, &mHashOidValue[0],  5, Sha1GetContextSize,  Sha1Init,   Sha1Update,    Sha1Final  },
  { L"SHA224", 28, &mHashOidValue[5],  9, NULL,                NULL,       NULL,          NULL       },
  { L"SHA256", 32, &mHashOidValue[14], 9, Sha256GetContextSize,Sha256Init, Sha256Update,  Sha256Final},
  { L"SHA384", 48, &mHashOidValue[23], 9, NULL,                NULL,       NULL,          NULL       },
  { L"SHA512", 64, &mHashOidValue[32], 9, NULL,                NULL,       NULL,          NULL       }
}

UINT8 mHashOidValue[]

Initial value:

 {
  0x2B, 0x0E, 0x03, 0x02, 0x1A,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03,
  }

UINT8* mImageBase = NULL

Referenced by DxeImageVerificationHandler(), and HashPeImage().

UINT8 mImageDigest[MAX_DIGEST_SIZE]

Referenced by DxeImageVerificationHandler(), HashPeImage(), and IsPkcsSignedDataVerifiedBySignatureList().

UINTN mImageDigestSize

Referenced by DxeImageVerificationHandler(), HashPeImage(), and IsPkcsSignedDataVerifiedBySignatureList().

UINTN mImageSize

Referenced by DxeImageVerificationHandler(), DxeImageVerificationLibImageRead(), DxeTpmMeasureBootHandler(), DxeTpmMeasureBootLibImageRead(), and HashPeImage().

CHAR16 mNotifyString1[MAX_NOTIFY_STRING_LEN] = L"Image verification pass but not found in authorized database!"

CHAR16 mNotifyString2[MAX_NOTIFY_STRING_LEN] = L"Launch this image anyway? (Yes/Defer/No)"

EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION mNtHeader

Referenced by DxeImageVerificationHandler(), and HashPeImage().

UINT32 mPeCoffHeaderOffset

Referenced by DxeImageVerificationHandler(), and HashPeImage().

CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 }

Referenced by VerifyCounterBasedPayload(), and VerifyDataPayload().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.h File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.h File Reference

Data Structures

struct | WIN_CERTIFICATE_EFI_PKCS
struct | HASH_TABLE

Defines

#define | EFI_CERT_TYPE_RSA2048_SHA256_SIZE 256
#define | EFI_CERT_TYPE_RSA2048_SIZE 256
#define | MAX_NOTIFY_STRING_LEN 64
#define | TWO_BYTE_ENCODE 0x82
#define | ALIGNMENT_SIZE 8
#define | ALIGN_SIZE(a) (((a) % ALIGNMENT_SIZE) ? ALIGNMENT_SIZE - ((a) % ALIGNMENT_SIZE) : 0)
#define | IMAGE_UNKNOWN 0x00000000
#define | IMAGE_FROM_FV 0x00000001
#define | IMAGE_FROM_OPTION_ROM 0x00000002
#define | IMAGE_FROM_REMOVABLE_MEDIA 0x00000003
#define | IMAGE_FROM_FIXED_MEDIA 0x00000004
#define | ALWAYS_EXECUTE 0x00000000
#define | NEVER_EXECUTE 0x00000001
#define | ALLOW_EXECUTE_ON_SECURITY_VIOLATION 0x00000002
#define | DEFER_EXECUTE_ON_SECURITY_VIOLATION 0x00000003
#define | DENY_EXECUTE_ON_SECURITY_VIOLATION 0x00000004
#define | QUERY_USER_ON_SECURITY_VIOLATION 0x00000005
#define | HASHALG_SHA1 0x00000000
#define | HASHALG_SHA224 0x00000001
#define | HASHALG_SHA256 0x00000002
#define | HASHALG_SHA384 0x00000003
#define | HASHALG_SHA512 0x00000004
#define | HASHALG_MAX 0x00000005
#define | MAX_DIGEST_SIZE SHA256_DIGEST_SIZE

Typedefs

typedef UINTN(EFIAPI * | HASH_GET_CONTEXT_SIZE )(VOID)
typedef BOOLEAN(EFIAPI * | HASH_INIT )(IN OUT VOID *HashContext)
typedef BOOLEAN(EFIAPI * | HASH_UPDATE )(IN OUT VOID *HashContext, IN CONST VOID *Data, IN UINTN DataLength)
typedef BOOLEAN(EFIAPI * | HASH_FINAL )(IN OUT VOID *HashContext, OUT UINT8 *HashValue)

Detailed Description

The internal header file includes the common header files, defines internal structure and functions used by ImageVerificationLib.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define ALIGN_SIZE ( a ) (((a) % ALIGNMENT_SIZE) ? ALIGNMENT_SIZE - ((a) % ALIGNMENT_SIZE) : 0)

Referenced by DxeImageVerificationHandler().

#define ALIGNMENT_SIZE 8

#define ALLOW_EXECUTE_ON_SECURITY_VIOLATION 0x00000002

#define ALWAYS_EXECUTE 0x00000000

Referenced by DxeImageVerificationHandler().

#define DEFER_EXECUTE_ON_SECURITY_VIOLATION 0x00000003

#define DENY_EXECUTE_ON_SECURITY_VIOLATION 0x00000004

Referenced by DxeImageVerificationHandler().

#define EFI_CERT_TYPE_RSA2048_SHA256_SIZE 256

Referenced by VerifyCounterBasedPayload(), and VerifyDataPayload().

#define EFI_CERT_TYPE_RSA2048_SIZE 256

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), ProcessVariable(), ProcessVarWithKek(), PubKeyStoreFilter(), VerifyCounterBasedPayload(), VerifyDataPayload(), and VerifyVariable().

#define HASHALG_MAX 0x00000005

Referenced by HashPeImageByType().

#define HASHALG_SHA1 0x00000000

Referenced by HashPeImage().

#define HASHALG_SHA224 0x00000001

#define HASHALG_SHA256 0x00000002

Referenced by DxeImageVerificationHandler(), EnrollImageSignatureToSigDB(), and HashPeImage().

#define HASHALG_SHA384 0x00000003

#define HASHALG_SHA512 0x00000004

#define IMAGE_FROM_FIXED_MEDIA 0x00000004

#define IMAGE_FROM_FV 0x00000001

#define IMAGE_FROM_OPTION_ROM 0x00000002

#define IMAGE_FROM_REMOVABLE_MEDIA 0x00000003

#define IMAGE_UNKNOWN 0x00000000

#define MAX_DIGEST_SIZE SHA256_DIGEST_SIZE

Referenced by HashPeImage().

#define MAX_NOTIFY_STRING_LEN 64

#define NEVER_EXECUTE 0x00000001

Referenced by DxeImageVerificationHandler().

#define QUERY_USER_ON_SECURITY_VIOLATION 0x00000005

#define TWO_BYTE_ENCODE 0x82

Referenced by HashPeImageByType().

Typedef Documentation

typedef BOOLEAN(EFIAPI * HASH_FINAL)(IN OUT VOID *HashContext, OUT UINT8 *HashValue)

Completes hash computation and retrieves the digest value into the specified memory. After this function has been called, the context cannot be used again.

If HashContext is NULL, then ASSERT(). If HashValue is NULL, then ASSERT().

Parameters:
[in,out] | HashContext | Pointer to the MD5 context
[out] | HashValue | Pointer to a buffer that receives the HASH digest value.
Return values:
TRUE | HASH digest computation succeeded.
FALSE | HASH digest computation failed.

typedef UINTN(EFIAPI * HASH_GET_CONTEXT_SIZE)(VOID)

Retrieves the size, in bytes, of the context buffer required for hash operations.

Returns:
The size, in bytes, of the context buffer required for hash operations.

typedef BOOLEAN(EFIAPI * HASH_INIT)(IN OUT VOID *HashContext)

Initializes user-supplied memory pointed by HashContext as hash context for subsequent use.

If HashContext is NULL, then ASSERT().

Parameters:
[in,out] HashContext Pointer to Context being initialized.
Return values:
TRUE | HASH context initialization succeeded.
FALSE | HASH context initialization failed.

typedef BOOLEAN(EFIAPI * HASH_UPDATE)(IN OUT VOID *HashContext, IN CONST VOID *Data, IN UINTN DataLength)

Performs digest on a data buffer of the specified length. This function can be called multiple times to compute the digest of long or discontinuous data streams.

If HashContext is NULL, then ASSERT().

Parameters:
[in,out] | HashContext | Pointer to the MD5 context.
[in] | Data | Pointer to the buffer containing the data to be hashed.
[in] | DataLength | Length of Data buffer in bytes.
Return values:
TRUE | HASH data digest succeeded.
FALSE | Invalid HASH context. After HashFinal function has been called, the HASH context cannot be reused.

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.c File Reference

Defines

#define | TPM_PP_USER_ABORT ((TPM_RESULT)(-0x10))
#define | TPM_PP_BIOS_FAILURE ((TPM_RESULT)(-0x0f))
#define | CONFIRM_BUFFER_SIZE 4096

Functions

CHAR16 * | PhysicalPresenceGetStringById (IN EFI_STRING_ID Id)
EFI_STATUS | GetTpmCapability (IN EFI_TCG_PROTOCOL *TcgProtocol, OUT BOOLEAN *LifetimeLock, OUT BOOLEAN *CmdEnable)
EFI_STATUS | TpmPhysicalPresence (IN EFI_TCG_PROTOCOL *TcgProtocol, IN TPM_PHYSICAL_PRESENCE PhysicalPresence)
TPM_RESULT | TpmCommandNoReturnData (IN EFI_TCG_PROTOCOL *TcgProtocol, IN TPM_COMMAND_CODE Ordinal, IN UINTN AdditionalParameterSize, IN VOID *AdditionalParameters)
TPM_RESULT | ExecutePhysicalPresence (IN EFI_TCG_PROTOCOL *TcgProtocol, IN UINT8 CommandCode, IN OUT UINT8 *PpiFlags)
BOOLEAN | ReadUserKey (IN BOOLEAN CautionKey)
EFI_STATUS EFIAPI | TcgPhysicalPresenceLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
BOOLEAN | UserConfirm (IN UINT8 TpmPpCommand)
BOOLEAN | HaveValidTpmRequest (IN EFI_PHYSICAL_PRESENCE *TcgPpData, OUT BOOLEAN *RequestConfirmed)
VOID | ExecutePendingTpmRequest (IN EFI_TCG_PROTOCOL *TcgProtocol, IN EFI_PHYSICAL_PRESENCE *TcgPpData)
VOID EFIAPI | TcgPhysicalPresenceLibProcessRequest (VOID)
BOOLEAN EFIAPI | TcgPhysicalPresenceLibNeedUserConfirm (VOID)

Variables

EFI_HII_HANDLE | mPpStringPackHandle

Detailed Description

Execute pending TPM requests from OS or BIOS and Lock TPM.

Caution: This module requires additional review when modified. This driver will have external input - variable. This external input must be validated carefully to avoid security issue.

ExecutePendingTpmRequest() will receive untrusted input and do validation.

Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define CONFIRM_BUFFER_SIZE 4096

Referenced by UserConfirm().

#define TPM_PP_BIOS_FAILURE ((TPM_RESULT)(-0x0f))

Referenced by ExecutePendingTpmRequest(), ExecutePhysicalPresence(), and TpmCommandNoReturnData().

#define TPM_PP_USER_ABORT ((TPM_RESULT)(-0x10))

Referenced by ExecutePendingTpmRequest().

Function Documentation

VOID ExecutePendingTpmRequest | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | IN EFI_PHYSICAL_PRESENCE * | TcgPpData
 | ) |  |

Check and execute the requested physical presence command.

Caution: This function may receive untrusted input. TcgPpData variable is external input, so this function will validate its data structure to be valid value.

Parameters:
[in] | TcgProtocol | EFI TCG Protocol instance.
[in] | TcgPpData | Point to the physical presence NV variable.

References ExecutePhysicalPresence(), FLAG_RESET_TRACK, gEfiPhysicalPresenceGuid, HaveValidTpmRequest(), PHYSICAL_PRESENCE_ACTIVATE, PHYSICAL_PRESENCE_CLEAR, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE, PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE, PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_VARIABLE, TPM_PP_BIOS_FAILURE, TPM_PP_USER_ABORT, and UserConfirm().

Referenced by TcgPhysicalPresenceLibProcessRequest().

TPM_RESULT ExecutePhysicalPresence | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | IN UINT8 | CommandCode,
 |  | IN OUT UINT8 * | PpiFlags
 | ) |  |

Execute physical presence operation requested by the OS.

Parameters:
[in] | TcgProtocol | EFI TCG Protocol instance.
[in] | CommandCode | Physical presence operation value.
[in,out] | PpiFlags | The physical presence interface flags.
Return values:
TPM_PP_BIOS_FAILURE | Unknown physical presence operation.
TPM_PP_BIOS_FAILURE | Error occurred during sending command to TPM or receiving response from TPM.
Others | Return code from the TPM device after command execution.

References FLAG_NO_PPI_CLEAR, FLAG_NO_PPI_MAINTENANCE, FLAG_NO_PPI_PROVISION, FLAG_RESET_TRACK, PHYSICAL_PRESENCE_ACTIVATE, PHYSICAL_PRESENCE_CLEAR, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE, PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE, PHYSICAL_PRESENCE_DISABLE, PHYSICAL_PRESENCE_ENABLE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE, PHYSICAL_PRESENCE_SET_OPERATOR_AUTH, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE, TPM_PP_BIOS_FAILURE, TpmCommandNoReturnData(), and TRUE.

Referenced by ExecutePendingTpmRequest().

EFI_STATUS GetTpmCapability | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | OUT BOOLEAN * | LifetimeLock,
 |  | OUT BOOLEAN * | CmdEnable
 | ) |  |

Get TPM physical presence permanent flags.

Parameters:
[in] | TcgProtocol | EFI TCG Protocol instance.
[out] | LifetimeLock | physicalPresenceLifetimeLock permanent flag.
[out] | CmdEnable | physicalPresenceCMDEnable permanent flag.
Return values:
EFI_SUCCESS | Flags were returns successfully.
other | Failed to locate EFI TCG Protocol.

Referenced by TcgPhysicalPresenceLibNeedUserConfirm(), and TcgPhysicalPresenceLibProcessRequest().

BOOLEAN HaveValidTpmRequest | ( | IN EFI_PHYSICAL_PRESENCE * | TcgPpData,
 |  | OUT BOOLEAN * | RequestConfirmed
 | ) |  |

Check if there is a valid physical presence command request. Also updates parameter value to whether the requested physical presence command already confirmed by user

Parameters:
[in] | TcgPpData | EFI TCG Physical Presence request data.
[out] | RequestConfirmed | If the physical presence operation command required user confirm from UI. True, it indicates the command doesn't require user confirm, or already confirmed in last boot cycle by user. False, it indicates the command need user confirm from UI.
Return values:
TRUE | Physical Presence operation command is valid.
FALSE | Physical Presence operation command is invalid.

References FLAG_NO_PPI_CLEAR, FLAG_NO_PPI_MAINTENANCE, FLAG_NO_PPI_PROVISION, FLAG_RESET_TRACK, PHYSICAL_PRESENCE_ACTIVATE, PHYSICAL_PRESENCE_CLEAR, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE, PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE, PHYSICAL_PRESENCE_DISABLE, PHYSICAL_PRESENCE_ENABLE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE, PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE, PHYSICAL_PRESENCE_SET_OPERATOR_AUTH, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE, and TRUE.

Referenced by ExecutePendingTpmRequest(), and TcgPhysicalPresenceLibNeedUserConfirm().

CHAR16* PhysicalPresenceGetStringById ( IN EFI_STRING_ID Id )

Get string by string id from HII Interface.

Parameters:
[in] Id String ID.
Return values:
CHAR16 | * String from ID.
NULL | If error occurs.

References mPpStringPackHandle.

Referenced by UserConfirm().

BOOLEAN ReadUserKey ( IN BOOLEAN CautionKey )

Read the specified key for user confirmation.

Parameters:
[in] CautionKey If true, F12 is used as confirm key; If false, F10 is used as confirm key.
Return values:
TRUE | User confirmed the changes by input.
FALSE | User discarded the changes or device error.

References TRUE.

Referenced by UserConfirm().

EFI_STATUS EFIAPI TcgPhysicalPresenceLibConstructor | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

The constructor function register UNI strings into imageHandle.

It will ASSERT() if that operation fails and it will always return EFI_SUCCESS.

Parameters:
ImageHandle | The firmware allocated handle for the EFI image.
SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS | The constructor successfully added string package.
Other | value The constructor can't add string package.

References gEfiPhysicalPresenceGuid, and mPpStringPackHandle.

BOOLEAN EFIAPI TcgPhysicalPresenceLibNeedUserConfirm ( VOID )

Check if the pending TPM request needs user input to confirm.

The TPM request may come from OS. This API will check if TPM request exists and need user input to confirmation.

Return values:
TRUE | TPM needs input to confirm user physical presence.
FALSE | TPM doesn't need input to confirm user physical presence.

References gEfiPhysicalPresenceGuid, GetTpmCapability(), HaveValidTpmRequest(), PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_VARIABLE, EFI_PHYSICAL_PRESENCE::PPRequest, and TRUE.

VOID EFIAPI TcgPhysicalPresenceLibProcessRequest ( VOID )

Check and execute the pending TPM request and Lock TPM.

The TPM request may come from OS or BIOS. This API will display request information and wait for user confirmation if TPM request exists. The TPM request will be sent to TPM device after the TPM request is confirmed, and one or more reset may be required to make TPM request to take effect. At last, it will lock TPM to prevent TPM state change by malware.

This API should be invoked after console in and console out are all ready as they are required to display request information and get user input to confirm the request. This API should also be invoked as early as possible as TPM is locked in this function.

References ExecutePendingTpmRequest(), FLAG_NO_PPI_PROVISION, EFI_PHYSICAL_PRESENCE::Flags, gEfiPhysicalPresenceGuid, GetTpmCapability(), PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_VARIABLE, EFI_PHYSICAL_PRESENCE::PPRequest, EFI_PHYSICAL_PRESENCE::PPResponse, and TpmPhysicalPresence().

TPM_RESULT TpmCommandNoReturnData | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | IN TPM_COMMAND_CODE | Ordinal,
 |  | IN UINTN | AdditionalParameterSize,
 |  | IN VOID * | AdditionalParameters
 | ) |  |

Issue a TPM command for which no additional output data will be returned.

Parameters:
[in] | TcgProtocol | EFI TCG Protocol instance.
[in] | Ordinal | TPM command code.
[in] | AdditionalParameterSize | Additional parameter size.
[in] | AdditionalParameters | Pointer to the Additional paramaters.
Return values:
TPM_PP_BIOS_FAILURE | Error occurred during sending command to TPM or receiving response from TPM.
Others | Return code from the TPM device after command execution.

References TPM_PP_BIOS_FAILURE.

Referenced by ExecutePhysicalPresence().

EFI_STATUS TpmPhysicalPresence | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | IN TPM_PHYSICAL_PRESENCE | PhysicalPresence
 | ) |  |

Issue TSC_PhysicalPresence command to TPM.

Parameters:
[in] | TcgProtocol | EFI TCG Protocol instance.
[in] | PhysicalPresence | The state to set the TPM's Physical Presence flags.
Return values:
EFI_SUCCESS | TPM executed the command successfully.
EFI_SECURITY_VIOLATION | TPM returned error when executing the command.
other | Failed to locate EFI TCG Protocol.

Referenced by TcgPhysicalPresenceLibProcessRequest().

BOOLEAN UserConfirm ( IN UINT8 TpmPpCommand )

Display the confirm text and get user confirmation.

Parameters:
[in] TpmPpCommand The requested TPM physical presence command.
Return values:
TRUE | The user has confirmed the changes.
FALSE | The user doesn't confirm the changes.

References CONFIRM_BUFFER_SIZE, PHYSICAL_PRESENCE_ACTIVATE, PHYSICAL_PRESENCE_CLEAR, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE, PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE, PHYSICAL_PRESENCE_DISABLE, PHYSICAL_PRESENCE_ENABLE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE, PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE, PHYSICAL_PRESENCE_SET_OPERATOR_AUTH, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE, PhysicalPresenceGetStringById(), ReadUserKey(), and TRUE.

Referenced by ExecutePendingTpmRequest().

Variable Documentation

EFI_HII_HANDLE mPpStringPackHandle

Referenced by PhysicalPresenceGetStringById(), and TcgPhysicalPresenceLibConstructor().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeTpmMeasureBootLib/DxeTpmMeasureBootLib.c File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeTpmMeasureBootLib/DxeTpmMeasureBootLib.c File Reference

Functions

EFI_STATUS EFIAPI | DxeTpmMeasureBootLibImageRead (IN VOID *FileHandle, IN UINTN FileOffset, IN OUT UINTN *ReadSize, OUT VOID *Buffer)
EFI_STATUS EFIAPI | TcgMeasureGptTable (IN EFI_TCG_PROTOCOL *TcgProtocol, IN EFI_HANDLE GptHandle)
EFI_STATUS EFIAPI | TcgMeasurePeImage (IN EFI_TCG_PROTOCOL *TcgProtocol, IN EFI_PHYSICAL_ADDRESS ImageAddress, IN UINTN ImageSize, IN UINTN LinkTimeBase, IN UINT16 ImageType, IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
EFI_STATUS EFIAPI | DxeTpmMeasureBootHandler (IN UINT32 AuthenticationStatus, IN CONST EFI_DEVICE_PATH_PROTOCOL *File, IN VOID *FileBuffer, IN UINTN FileSize, IN BOOLEAN BootPolicy)
EFI_STATUS EFIAPI | DxeTpmMeasureBootLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

BOOLEAN | mMeasureGptTableFlag = FALSE
EFI_GUID | mZeroGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}
UINTN | mMeasureGptCount = 0
VOID * | mFileBuffer
UINTN | mImageSize
EFI_HANDLE | mCacheMeasuredHandle = NULL
MEASURED_HOB_DATA * | mMeasuredHobData = NULL

Detailed Description

The library instance provides security service of TPM measure boot.

Caution: This file requires additional review when modified. This library will have external input - PE/COFF image and GPT partition. This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow.

DxeTpmMeasureBootLibImageRead() function will make sure the PE/COFF image content read is within the image buffer.

TcgMeasurePeImage() function will accept untrusted PE/COFF image and validate its data structure within this image buffer before use.

TcgMeasureGptTable() function will receive untrusted GPT partition table, and parse partition data carefully.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI DxeTpmMeasureBootHandler | ( | IN UINT32 | AuthenticationStatus,
 |  | IN CONST EFI_DEVICE_PATH_PROTOCOL * | File,
 |  | IN VOID * | FileBuffer,
 |  | IN UINTN | FileSize,
 |  | IN BOOLEAN | BootPolicy
 | ) |  |

The security handler is used to abstract platform-specific policy from the DXE core response to an attempt to use a file that returns a given status for the authentication check from the section extraction protocol.

The possible responses in a given SAP implementation may include locking flash upon failure to authenticate, attestation logging for all signed drivers, and other exception operations. The File parameter allows for possible logging within the SAP of the driver.

If File is NULL, then EFI_INVALID_PARAMETER is returned.

If the file specified by File with an authentication status specified by AuthenticationStatus is safe for the DXE Core to use, then EFI_SUCCESS is returned.

If the file specified by File with an authentication status specified by AuthenticationStatus is not safe for the DXE Core to use under any circumstances, then EFI_ACCESS_DENIED is returned.

If the file specified by File with an authentication status specified by AuthenticationStatus is not safe for the DXE Core to use right now, but it might be possible to use it at a future time, then EFI_SECURITY_VIOLATION is returned.

Parameters:
[in] | AuthenticationStatus | This is the authentication status returned from the securitymeasurement services for the input file.
[in] | File | This is a pointer to the device path of the file that is being dispatched. This will optionally be used for logging.
[in] | FileBuffer | File buffer matches the input file device path.
[in] | FileSize | Size of File buffer matches the input file device path.
[in] | BootPolicy | A boot policy that was used to call LoadImage() UEFI service.
Return values:
EFI_SUCCESS | The file specified by DevicePath and non-NULL FileBuffer did authenticate, and the platform policy dictates that the DXE Foundation may use the file.
other | error value

References DxeTpmMeasureBootLibImageRead(), mCacheMeasuredHandle, MEASURED_HOB_DATA::MeasuredFvBuf, mFileBuffer, mImageSize, mMeasureGptTableFlag, MEASURED_HOB_DATA::Num, TcgMeasureGptTable(), TcgMeasurePeImage(), and TRUE.

Referenced by DxeTpmMeasureBootLibConstructor().

EFI_STATUS EFIAPI DxeTpmMeasureBootLibConstructor | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Register the security handler to provide TPM measure boot service.

Parameters:
ImageHandle | ImageHandle of the loaded driver.
SystemTable | Pointer to the EFI System Table.
Return values:
EFI_SUCCESS | Register successfully.
EFI_OUT_OF_RESOURCES | No enough memory to register this handler.

References DxeTpmMeasureBootHandler(), and gMeasuredFvHobGuid.

EFI_STATUS EFIAPI DxeTpmMeasureBootLibImageRead | ( | IN VOID * | FileHandle,
 |  | IN UINTN | FileOffset,
 |  | IN OUT UINTN * | ReadSize,
 |  | OUT VOID * | Buffer
 | ) |  |

Reads contents of a PE/COFF image in memory buffer.

Caution: This function may receive untrusted input. PE/COFF image is external input, so this function will make sure the PE/COFF image content read is within the image buffer.

Parameters:
FileHandle | Pointer to the file handle to read the PE/COFF image.
FileOffset | Offset into the PE/COFF image to begin the read operation.
ReadSize | On input, the size in bytes of the requested read operation. On output, the number of bytes actually read.
Buffer | Output buffer that contains the data read from the PE/COFF image.
Return values:
EFI_SUCCESS The specified portion of the PE/COFF image was read and the size

References mImageSize.

Referenced by DxeTpmMeasureBootHandler().

EFI_STATUS EFIAPI TcgMeasureGptTable | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | IN EFI_HANDLE | GptHandle
 | ) |  |

Measure GPT table data into TPM log.

Caution: This function may receive untrusted input. The GPT partition table is external input, so this function should parse partition data carefully.

Parameters:
TcgProtocol | Pointer to the located TCG protocol instance.
GptHandle | Handle that GPT partition was installed.
Return values:
EFI_SUCCESS | Successfully measure GPT table.
EFI_UNSUPPORTED | Not support GPT table on the given handle.
EFI_DEVICE_ERROR | Can't get GPT table because device error.
EFI_OUT_OF_RESOURCES | No enough resource to measure GPT table.
other | error value

References mMeasureGptCount, and mZeroGuid.

Referenced by DxeTpmMeasureBootHandler().

EFI_STATUS EFIAPI TcgMeasurePeImage | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | IN EFI_PHYSICAL_ADDRESS | ImageAddress,
 |  | IN UINTN | ImageSize,
 |  | IN UINTN | LinkTimeBase,
 |  | IN UINT16 | ImageType,
 |  | IN EFI_DEVICE_PATH_PROTOCOL * | FilePath
 | ) |  |

Measure PE image into TPM log based on the authenticode image hashing in PE/COFF Specification 8.0 Appendix A.

Caution: This function may receive untrusted input. PE/COFF image is external input, so this function will validate its data structure within this image buffer before use.

Parameters:
[in] | TcgProtocol | Pointer to the located TCG protocol instance.
[in] | ImageAddress | Start address of image buffer.
[in] | ImageSize | Image size
[in] | LinkTimeBase | Address that the image is loaded into memory.
[in] | ImageType | Image subsystem type.
[in] | FilePath | File path is corresponding to the input image.
Return values:
EFI_SUCCESS | Successfully measure image.
EFI_OUT_OF_RESOURCES | No enough resource to measure image.
EFI_UNSUPPORTED | ImageType is unsupported or PE image is mal-format.
other | error value

Referenced by DxeTpmMeasureBootHandler().

Variable Documentation

EFI_HANDLE mCacheMeasuredHandle = NULL

Referenced by DxeTpmMeasureBootHandler().

VOID* mFileBuffer

Referenced by DxeTpmMeasureBootHandler().

UINTN mImageSize

MEASURED_HOB_DATA* mMeasuredHobData = NULL

UINTN mMeasureGptCount = 0

Referenced by TcgMeasureGptTable().

BOOLEAN mMeasureGptTableFlag = FALSE

Referenced by DxeTpmMeasureBootHandler().

EFI_GUID mZeroGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}

Referenced by SmmVariableGetStatistics(), and TcgMeasureGptTable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.c File Reference

Functions

EFI_STATUS | Tpm12MeasureAndLogData (IN UINT32 PcrIndex, IN UINT32 EventType, IN VOID *EventLog, IN UINT32 LogLen, IN VOID *HashData, IN UINT64 HashDataLen)
EFI_STATUS EFIAPI | TpmMeasureAndLogData (IN UINT32 PcrIndex, IN UINT32 EventType, IN VOID *EventLog, IN UINT32 LogLen, IN VOID *HashData, IN UINT64 HashDataLen)

Detailed Description

This library is used by other modules to measure data to TPM.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS Tpm12MeasureAndLogData | ( | IN UINT32 | PcrIndex,
 |  | IN UINT32 | EventType,
 |  | IN VOID * | EventLog,
 |  | IN UINT32 | LogLen,
 |  | IN VOID * | HashData,
 |  | IN UINT64 | HashDataLen
 | ) |  |

Tpm12 measure and log data, and extend the measurement result into a specific PCR.

Parameters:
[in] | PcrIndex | PCR Index.
[in] | EventType | Event type.
[in] | EventLog | Measurement event log.
[in] | LogLen | Event log length in bytes.
[in] | HashData | The start of the data buffer to be hashed, extended.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_UNSUPPORTED | TPM device not available.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.

Referenced by TpmMeasureAndLogData().

EFI_STATUS EFIAPI TpmMeasureAndLogData | ( | IN UINT32 | PcrIndex,
 |  | IN UINT32 | EventType,
 |  | IN VOID * | EventLog,
 |  | IN UINT32 | LogLen,
 |  | IN VOID * | HashData,
 |  | IN UINT64 | HashDataLen
 | ) |  |

Tpm measure and log data, and extend the measurement result into a specific PCR.

Parameters:
[in] | PcrIndex | PCR Index.
[in] | EventType | Event type.
[in] | EventLog | Measurement event log.
[in] | LogLen | Event log length in bytes.
[in] | HashData | The start of the data buffer to be hashed, extended.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_UNSUPPORTED | TPM device not available.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References Tpm12MeasureAndLogData().

Referenced by PublishAcpiTable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.c File Reference

  • File List
  • Globals

SecurityPkg/Library/PlatformSecureLibNull/PlatformSecureLibNull.c File Reference

Functions

BOOLEAN EFIAPI UserPhysicalPresent (VOID)

Detailed Description

NULL PlatformSecureLib instance does NOT really detect whether a physical present user exists but return TRUE directly. This instance can be used to verify security related features during platform enabling and development. It should be replaced by a platform-specific method(e.g. Button pressed) in a real platform for product.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

BOOLEAN EFIAPI UserPhysicalPresent ( VOID )

This function provides a platform-specific method to detect whether the platform is operating by a physically present user.

Programmatic changing of platform security policy (such as disable Secure Boot, or switch between Standard/Custom Secure Boot mode) MUST NOT be possible during Boot Services or after exiting EFI Boot Services. Only a physically present user is allowed to perform these operations.

NOTE THAT: This function cannot depend on any EFI Variable Service since they are not available when this function is called in AuthenticateVariable driver.

Return values:
TRUE | The platform is operated by a physically present user.
FALSE | The platform is NOT operated by a physically present user.

References TRUE.

Referenced by ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), and SecureBootExtractConfigFromVariable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/TpmCommLib/CommonHeader.h File Reference

  • File List
  • Globals

SecurityPkg/Library/TpmCommLib/CommonHeader.h File Reference

Detailed Description

The intenal header file for TpmCommLib.

Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/TpmCommLib/TisPc.c File Reference

  • File List
  • Globals

SecurityPkg/Library/TpmCommLib/TisPc.c File Reference

Functions

BOOLEAN | TisPcPresenceCheck (IN TIS_PC_REGISTERS_PTR TisReg)
EFI_STATUS EFIAPI | TisPcWaitRegisterBits (IN UINT8 *Register, IN UINT8 BitSet, IN UINT8 BitClear, IN UINT32 TimeOut)
EFI_STATUS EFIAPI | TisPcReadBurstCount (IN TIS_PC_REGISTERS_PTR TisReg, OUT UINT16 *BurstCount)
EFI_STATUS EFIAPI | TisPcPrepareCommand (IN TIS_PC_REGISTERS_PTR TisReg)
EFI_STATUS EFIAPI | TisPcRequestUseTpm (IN TIS_PC_REGISTERS_PTR TisReg)

Detailed Description

Basic TIS (TPM Interface Specification) functions.

Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI TisPcPrepareCommand ( IN TIS_PC_REGISTERS_PTR TisReg )

Set TPM chip to ready state by sending ready command TIS_PC_STS_READY to Status Register in time.

Parameters:
[in] TisReg Pointer to TIS register.
Return values:
EFI_SUCCESS | TPM chip enters into ready state.
EFI_INVALID_PARAMETER | TisReg is NULL.
EFI_TIMEOUT | TPM chip can't be set to ready state in time.

References TIS_PC_STS_READY, TIS_TIMEOUT_B, and TisPcWaitRegisterBits().

Referenced by TisPcSend(), and TisTpmCommand().

BOOLEAN TisPcPresenceCheck ( IN TIS_PC_REGISTERS_PTR TisReg )

Check whether TPM chip exist.

Parameters:
[in] TisReg Pointer to TIS register.
Return values:
TRUE | TPM chip exists.
FALSE | TPM chip is not found.

Referenced by TisPcRequestUseTpm().

EFI_STATUS EFIAPI TisPcReadBurstCount | ( | IN TIS_PC_REGISTERS_PTR | TisReg,
 |  | OUT UINT16 * | BurstCount
 | ) |  |

Get BurstCount by reading the burstCount field of a TIS regiger in the time of default TIS_TIMEOUT_D.

Parameters:
[in] | TisReg | Pointer to TIS register.
[out] | BurstCount | Pointer to a buffer to store the got BurstConut.
Return values:
EFI_SUCCESS | Get BurstCount.
EFI_INVALID_PARAMETER | TisReg is NULL or BurstCount is NULL.
EFI_TIMEOUT | BurstCount can't be got in time.

References TIS_TIMEOUT_D.

Referenced by TisPcReceive(), TisPcSend(), and TisTpmCommand().

EFI_STATUS EFIAPI TisPcRequestUseTpm ( IN TIS_PC_REGISTERS_PTR TisReg )

Get the control of TPM chip by sending requestUse command TIS_PC_ACC_RQUUSE to ACCESS Register in the time of default TIS_TIMEOUT_A.

Parameters:
[in] TisReg Pointer to TIS register.
Return values:
EFI_SUCCESS | Get the control of TPM chip.
EFI_INVALID_PARAMETER | TisReg is NULL.
EFI_NOT_FOUND | TPM chip doesn't exit.
EFI_TIMEOUT | Can't get the TPM control in time.

References TIS_PC_ACC_ACTIVE, TIS_PC_ACC_RQUUSE, TIS_PC_VALID, TIS_TIMEOUT_A, TisPcPresenceCheck(), and TisPcWaitRegisterBits().

Referenced by DriverEntry(), PeimEntryMA(), PeimEntryMP(), and TcgConfigDriverEntryPoint().

EFI_STATUS EFIAPI TisPcWaitRegisterBits | ( | IN UINT8 * | Register,
 |  | IN UINT8 | BitSet,
 |  | IN UINT8 | BitClear,
 |  | IN UINT32 | TimeOut
 | ) |  |

Check whether the value of a TPM chip register satisfies the input BIT setting.

Parameters:
[in] | Register | Address port of register to be checked.
[in] | BitSet | Check these data bits are set.
[in] | BitClear | Check these data bits are clear.
[in] | TimeOut | The max wait time (unit MicroSecond) when checking register.
Return values:
EFI_SUCCESS | The register satisfies the check bit.
EFI_TIMEOUT | The register can't run into the expected status in time.

Referenced by TisPcPrepareCommand(), TisPcReceive(), TisPcRequestUseTpm(), TisPcSend(), and TisTpmCommand().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/TpmCommLib/TpmComm.c File Reference

  • File List
  • Globals

SecurityPkg/Library/TpmCommLib/TpmComm.c File Reference

Functions

EFI_STATUS EFIAPI TpmCommHashAll (IN CONST UINT8 *Data, IN UINTN DataLen, OUT TPM_DIGEST *Digest)

Detailed Description

Basic TPM command functions.

Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI TpmCommHashAll | ( | IN CONST UINT8 * | Data,
 |  | IN UINTN | DataLen,
 |  | OUT TPM_DIGEST * | Digest
 | ) |  |

Single function calculates SHA1 digest value for all raw data. It combines Sha1Init(), Sha1Update() and Sha1Final().

Parameters:
[in] | Data | Raw data to be digested.
[in] | DataLen | Size of the raw data.
[out] | Digest | Pointer to a buffer that stores the final digest.
Return values:
EFI_SUCCESS Always successfully calculate the final digest.

Referenced by HashLogExtendEvent(), TcgDxeHashAll(), and TcgDxeHashLogExtendEventI().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.c File Reference

Functions

VOID EFIAPI | OnReadyToBoot (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI | MorDriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

UINT8 | mMorControl

Detailed Description

TCG MOR (Memory Overwrite Request) Control Driver.

This driver initilize MemoryOverwriteRequestControl variable. It will clear MOR_CLEAR_MEMORY_BIT bit if it is set.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI MorDriverEntryPoint | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Entry Point for TCG MOR Control driver.

Parameters:
[in] | ImageHandle | Image handle of this driver.
[in] | SystemTable | A Pointer to the EFI System Table.
Return values:
EFI_SUCEESS
Returns:
Others Some error occurs.

The firmware is required to create the MemoryOverwriteRequestControl UEFI variable.

References mMorControl, and OnReadyToBoot().

VOID EFIAPI OnReadyToBoot | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Ready to Boot Event notification handler.

Sequence of OS boot events is measured in this event notification handler.

Parameters:
[in] | Event | Event whose notification function is being invoked
[in] | Context | Pointer to the notification function's context

References mMorControl.

Referenced by DriverEntry(), MorDriverEntryPoint(), VariableServiceInitialize(), and VariableSmmRuntimeInitialize().

Variable Documentation

UINT8 mMorControl

Referenced by MorDriverEntryPoint(), and OnReadyToBoot().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.h File Reference

  • File List
  • Globals

SecurityPkg/Tcg/MemoryOverwriteControl/TcgMor.h File Reference

Detailed Description

The header file for TcgMor.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/PhysicalPresencePei/PhysicalPresencePei.c File Reference

Functions

BOOLEAN EFIAPI | LockTpmPhysicalPresence (IN CONST EFI_PEI_SERVICES **PeiServices)
EFI_STATUS EFIAPI | PeimEntry (IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices)

Variables

PEI_LOCK_PHYSICAL_PRESENCE_PPI mLockPhysicalPresencePpi
EFI_PEI_PPI_DESCRIPTOR | mLockPhysicalPresencePpiList

Detailed Description

This driver produces PEI_LOCK_PHYSICAL_PRESENCE_PPI to indicate whether TPM need be locked or not. It can be replaced by a platform specific driver.

Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

BOOLEAN EFIAPI LockTpmPhysicalPresence ( IN CONST EFI_PEI_SERVICES ** PeiServices )

This interface returns whether TPM physical presence needs be locked or not.

Parameters:
[in] PeiServices The pointer to the PEI Services Table.
Return values:
TRUE | The TPM physical presence should be locked.
FALSE | The TPM physical presence cannot be locked.

References gEfiPhysicalPresenceGuid, PHYSICAL_PRESENCE_VARIABLE, EFI_PHYSICAL_PRESENCE::PPRequest, and TRUE.

EFI_STATUS EFIAPI PeimEntry | ( | IN EFI_PEI_FILE_HANDLE | FileHandle,
 |  | IN CONST EFI_PEI_SERVICES ** | PeiServices
 | ) |  |

Entry point of this module.

It installs lock physical presence PPI.

Parameters:
[in] | FileHandle | Handle of the file being invoked.
[in] | PeiServices | Describes the list of possible PEI Services.
Returns:
Status of install lock physical presence PPI.

References mLockPhysicalPresencePpiList.

Variable Documentation

PEI_LOCK_PHYSICAL_PRESENCE_PPI mLockPhysicalPresencePpi

Initial value:

 {
  LockTpmPhysicalPresence
}

EFI_PEI_PPI_DESCRIPTOR mLockPhysicalPresencePpiList

Initial value:

 {
  EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
  &gPeiLockPhysicalPresencePpiGuid,
  &mLockPhysicalPresencePpi
}

Referenced by PeimEntry().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgConfigDxe/TcgConfig.vfr File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgConfigDxe/TcgConfig.vfr File Reference

Variables

formset | guid = TCG_CONFIG_FORM_SET_GUID
formset | title = STRING_TOKEN(STR_TPM_TITLE)
formset | help = STRING_TOKEN(STR_TPM_HELP)
formset | classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID
formset varstore | TCG_CONFIGURATION
formset varstore | varid = TCG_CONFIGURATION_VARSTORE_ID
formset varstore | name = TCG_CONFIGURATION
form | formid = TCG_CONFIGURATION_FORM_ID
subtitle | text = STRING_TOKEN(STR_NULL)
suppressif | TRUE
checkbox | prompt = STRING_TOKEN(STR_NULL)
checkbox | endcheckbox
endif
label | LABEL_TCG_CONFIGURATION_HIDETPM
checkbox | questionid = KEY_HIDE_TPM
checkbox | flags = RESET_REQUIRED
label | LABEL_END
grayoutif ideqval TCG_CONFIGURATION | OriginalHideTpm = = 1
oneof suppressif ideqval
TCG_CONFIGURATION 		TpmEnable = = 0
option | value = PHYSICAL_PRESENCE_DISABLE
endoneof
endform
endformset

Detailed Description

VFR file used by the TCG configuration component.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Variable Documentation

formset classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID

checkbox endcheckbox

endform

endformset

endif

endoneof

text flags = RESET_REQUIRED

form formid = TCG_CONFIGURATION_FORM_ID

formset varstore guid = TCG_CONFIG_FORM_SET_GUID

text help = STRING_TOKEN(STR_TPM_HELP)

label LABEL_END

label LABEL_TCG_CONFIGURATION_HIDETPM

formset varstore name = TCG_CONFIGURATION

grayoutif ideqval TCG_CONFIGURATION OriginalHideTpm = = 1

goto prompt = STRING_TOKEN(STR_NULL)

checkbox questionid = KEY_HIDE_TPM

formset varstore TCG_CONFIGURATION

text text = STRING_TOKEN(STR_NULL)

form title = STRING_TOKEN(STR_TPM_TITLE)

endif suppressif ideqval TCG_CONFIGURATION TpmEnable = = 0

Referenced by TcgExtractConfig().

suppressif TRUE

Referenced by AddProviderToPolicy(), AddPubKeyInStore(), AppendSignatureList(), AutoUpdateLangVariable(), CheckAccessPolicy(), CheckConsole(), CheckCurrentUserAccessRight(), CheckDevicePath(), CheckIdentityPolicy(), CheckNewIdentityPolicy(), CheckProfileInfo(), CheckSignatureListFormat(), CheckUserInfo(), CreateUserProfile(), CredentialDriverCallback(), CredentialEnroll(), DeleteKeyExchangeKey(), DeleteSignature(), DelUserProfile(), DevicePathToStr(), DxeDeferImageLoadHandler(), DxeTpmMeasureBootHandler(), EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), ExecutePhysicalPresence(), ExpandUsermUserProfileDb(), ExpandUserProfile(), FindFileSystem(), FindInfoByType(), FindUserInfoByType(), FindUserProfileByInfo(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), GenerateUserId(), GetAccessControl(), GetAccessRight(), GetAllUserInfo(), GetLangFromSupportedLangCodes(), GetPassword(), GetUserName(), GetUserNameInput(), GrowBuffer(), HaveValidTpmRequest(), IdentifyAndTypeUser(), InCustomMode(), InitUserProfileDb(), InternalIsAddressInSmram(), InternalIsAddressValid(), IsBootOption(), IsConsoleReady(), IsDerEncodeCertificate(), IsDevicePathInList(), IsHwErrRecVariable(), IsLoadForbidden(), IsReadOnlyVariable(), IsSignatureFoundInDatabase(), IsValidPubKeyIndex(), IsValidVariableHeader(), LoadDeferredImage(), LockTpmPhysicalPresence(), MeasureMainBios(), ModifyUserInfo(), NeedPhysicallyPresent(), PeiGetNextVariableName(), PeimEntryMA(), PhysicalPresenceCallback(), PhysicalPresencePpiNotifyCallback(), PrintInfoFromSmm(), ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), ProviderAlreadyInPolicy(), ReadUserKey(), Reclaim(), SaveAccessPolicy(), SecureBootCallback(), SecureBootExtractConfig(), SecureBootExtractConfigFromVariable(), SelectUserToDelete(), SelectUserToModify(), SmmVariableHandler(), TcgExtractConfig(), TcgPhysicalPresenceLibNeedUserConfirm(), TisPcReceiveV(), UpdateFileExplorer(), UpdateVariable(), UserConfirm(), UserIdentifyManagerCallback(), UserPhysicalPresent(), UserProfileDeleteInfo(), UserProfileGetInfo(), UserProfileGetNext(), UserProfileGetNextInfo(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceSetVariable(), VariableWriteServiceInitialize(), VerifyDevicePath(), VerifyTimeBasedPayload(), and VerifyVariable().

option value = PHYSICAL_PRESENCE_DISABLE

string varid = TCG_CONFIGURATION_VARSTORE_ID

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDriver.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgConfigDxe/TcgConfigDriver.c File Reference

Functions

EFI_STATUS EFIAPI | TcgConfigDriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI | TcgConfigDriverUnload (IN EFI_HANDLE ImageHandle)

Detailed Description

The module entry point for Tcg configuration module.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI TcgConfigDriverEntryPoint | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

The entry point for Tcg configuration driver.

Parameters:
[in] | ImageHandle | The image handle of the driver.
[in] | SystemTable | The system table.
Return values:
EFI_ALREADY_STARTED | The driver already exists in system.
EFI_OUT_OF_RESOURCES | Fail to execute entry point due to lack of resources.
EFI_SUCCES | All the related protocols are installed on the driver.
Others | Fail to install protocols as indicated.

References TCG_CONFIG_PRIVATE_DATA::HideTpm, InstallTcgConfigForm(), mTcgConfigPrivateDateTemplate, TCG_CONFIG_PRIVATE_DATA::TcgProtocol, TisPcRequestUseTpm(), TPM_BASE_ADDRESS, and UninstallTcgConfigForm().

EFI_STATUS EFIAPI TcgConfigDriverUnload ( IN EFI_HANDLE ImageHandle )

Unload the Tcg configuration form.

Parameters:
[in] ImageHandle The driver's image handle.
Return values:
EFI_SUCCESS | The Tcg configuration form is unloaded.
Others | Failed to unload the form.

References TCG_CONFIG_PRIVATE_DATA_SIGNATURE, and UninstallTcgConfigForm().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.c File Reference

Functions

EFI_STATUS | GetTpmState (IN EFI_TCG_PROTOCOL *TcgProtocol, OUT BOOLEAN *TpmEnable, OUT BOOLEAN *TpmActivate)
EFI_STATUS EFIAPI | TcgExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | TcgRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS | SavePpRequest (IN UINT8 PpRequest)
EFI_STATUS EFIAPI | TcgCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS | InstallTcgConfigForm (IN OUT TCG_CONFIG_PRIVATE_DATA *PrivateData)
VOID | UninstallTcgConfigForm (IN OUT TCG_CONFIG_PRIVATE_DATA *PrivateData)

Variables

CHAR16 | mTcgStorageName [] = L"TCG_CONFIGURATION"
TCG_CONFIG_PRIVATE_DATA mTcgConfigPrivateDateTemplate
HII_VENDOR_DEVICE_PATH mTcgHiiVendorDevicePath

Detailed Description

HII Config Access protocol implementation of TCG configuration module.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS GetTpmState | ( | IN EFI_TCG_PROTOCOL * | TcgProtocol,
 |  | OUT BOOLEAN * | TpmEnable,
 |  | OUT BOOLEAN * | TpmActivate
 | ) |  |

Get current state of TPM device.

Parameters:
[in] | TcgProtocol | Point to EFI_TCG_PROTOCOL instance.
[out] | TpmEnable | Flag to indicate TPM is enabled or not.
[out] | TpmActivate | Flag to indicate TPM is activated or not.
Return values:
EFI_SUCCESS | State is successfully returned.
EFI_DEVICE_ERROR | Failed to get TPM response.
Others | Other errors as indicated.

Referenced by TcgExtractConfig().

EFI_STATUS InstallTcgConfigForm ( IN OUT TCG_CONFIG_PRIVATE_DATA * PrivateData )

This function publish the TCG configuration Form for TPM device.

Parameters:
[in,out] PrivateData Points to TCG configuration private data.
Return values:
EFI_SUCCESS | HII Form is installed for this network device.
EFI_OUT_OF_RESOURCES | Not enough resource for HII Form installation.
Others | Other errors as indicated.

References gTcgConfigFormSetGuid, LABEL_END, LABEL_TCG_CONFIGURATION_HIDETPM, TCG_CONFIGURATION_FORM_ID, TcgConfigBin, and TcgConfigDxeStrings.

Referenced by TcgConfigDriverEntryPoint().

EFI_STATUS SavePpRequest ( IN UINT8 PpRequest )

Save TPM request to variable space.

Parameters:
[in] PpRequest Physical Presence request command.
Return values:
EFI_SUCCESS | The operation is finished successfully.
Others | Other errors as indicated.

References gEfiPhysicalPresenceGuid, PHYSICAL_PRESENCE_VARIABLE, and EFI_PHYSICAL_PRESENCE::PPRequest.

Referenced by TcgCallback().

EFI_STATUS EFIAPI TcgCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Action | Specifies the type of action taken by the browser.
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in] | Type | The type of value for the question.
[in] | Value | A pointer to the data being sent to the original exporting driver.
[out] | ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved.
EFI_UNSUPPORTED | The specified Action is not supported by the callback.

References KEY_TPM_ACTION, and SavePpRequest().

EFI_STATUS EFIAPI TcgExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Request | A null-terminated Unicode string in <ConfigRequest> format.
[out] | Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
[out] | Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References TCG_CONFIG_PRIVATE_DATA::DriverHandle, GetTpmState(), gTcgConfigFormSetGuid, TCG_CONFIG_PRIVATE_DATA::HideTpm, TCG_CONFIGURATION::HideTpm, TCG_CONFIG_PRIVATE_DATA::HiiHandle, mTcgStorageName, TCG_CONFIGURATION::OriginalHideTpm, PHYSICAL_PRESENCE_ENABLE, TCG_CONFIG_PRIVATE_DATA_FROM_THIS, TCG_CONFIG_PRIVATE_DATA::TcgProtocol, TCG_CONFIGURATION::TpmActivate, TCG_CONFIGURATION::TpmEnable, TpmEnable, TCG_CONFIGURATION::TpmOperation, and TRUE.

EFI_STATUS EFIAPI TcgRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Configuration | A null-terminated Unicode string in <ConfigResp> format.
[out] | Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References gTcgConfigFormSetGuid, and mTcgStorageName.

VOID UninstallTcgConfigForm ( IN OUT TCG_CONFIG_PRIVATE_DATA * PrivateData )

This function removes TCG configuration Form.

Parameters:
[in,out] PrivateData Points to TCG configuration private data.

Referenced by TcgConfigDriverEntryPoint(), and TcgConfigDriverUnload().

Variable Documentation

TCG_CONFIG_PRIVATE_DATA mTcgConfigPrivateDateTemplate

Initial value:

 {
  TCG_CONFIG_PRIVATE_DATA_SIGNATURE,
  {
    TcgExtractConfig,
    TcgRouteConfig,
    TcgCallback
  }
}

Referenced by TcgConfigDriverEntryPoint().

HII_VENDOR_DEVICE_PATH mTcgHiiVendorDevicePath

Initial value:

 {
  {
    {
      HARDWARE_DEVICE_PATH,
      HW_VENDOR_DP,
      {
        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
      }
    },
    TCG_CONFIG_FORM_SET_GUID
  },
  {
    END_DEVICE_PATH_TYPE,
    END_ENTIRE_DEVICE_PATH_SUBTYPE,
    {
      (UINT8) (END_DEVICE_PATH_LENGTH),
      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
    }
  }
}

CHAR16 mTcgStorageName[] = L"TCG_CONFIGURATION"

Referenced by TcgExtractConfig(), and TcgRouteConfig().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.h File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgConfigDxe/TcgConfigImpl.h File Reference

Data Structures

struct | HII_VENDOR_DEVICE_PATH
struct | TCG_CONFIG_PRIVATE_DATA

Defines

#define | TCG_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('T', 'C', 'G', 'D')
#define | TCG_CONFIG_PRIVATE_DATA_FROM_THIS(a) CR (a, TCG_CONFIG_PRIVATE_DATA, ConfigAccess, TCG_CONFIG_PRIVATE_DATA_SIGNATURE)

Functions

EFI_STATUS | InstallTcgConfigForm (IN OUT TCG_CONFIG_PRIVATE_DATA *PrivateData)
VOID | UninstallTcgConfigForm (IN OUT TCG_CONFIG_PRIVATE_DATA *PrivateData)
EFI_STATUS EFIAPI | TcgExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | TcgRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS EFIAPI | TcgCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)

Variables

UINT8 | TcgConfigBin []
UINT8 | TcgConfigDxeStrings []
TCG_CONFIG_PRIVATE_DATA mTcgConfigPrivateDateTemplate

Detailed Description

The header file of HII Config Access protocol implementation of TCG configuration module.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define TCG_CONFIG_PRIVATE_DATA_FROM_THIS ( a ) CR (a, TCG_CONFIG_PRIVATE_DATA, ConfigAccess, TCG_CONFIG_PRIVATE_DATA_SIGNATURE)

Referenced by TcgExtractConfig().

#define TCG_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('T', 'C', 'G', 'D')

Referenced by TcgConfigDriverUnload().

Function Documentation

EFI_STATUS InstallTcgConfigForm ( IN OUT TCG_CONFIG_PRIVATE_DATA * PrivateData )

This function publish the TCG configuration Form for TPM device.

Parameters:
[in,out] PrivateData Points to TCG configuration private data.
Return values:
EFI_SUCCESS | HII Form is installed for this network device.
EFI_OUT_OF_RESOURCES | Not enough resource for HII Form installation.
Others | Other errors as indicated.

References gTcgConfigFormSetGuid, LABEL_END, LABEL_TCG_CONFIGURATION_HIDETPM, TCG_CONFIGURATION_FORM_ID, TcgConfigBin, and TcgConfigDxeStrings.

Referenced by TcgConfigDriverEntryPoint().

EFI_STATUS EFIAPI TcgCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Action | Specifies the type of action taken by the browser.
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in] | Type | The type of value for the question.
[in] | Value | A pointer to the data being sent to the original exporting driver.
[out] | ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved.
EFI_UNSUPPORTED | The specified Action is not supported by the callback.

References KEY_TPM_ACTION, and SavePpRequest().

EFI_STATUS EFIAPI TcgExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Request | A null-terminated Unicode string in <ConfigRequest> format.
[out] | Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
[out] | Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References TCG_CONFIG_PRIVATE_DATA::DriverHandle, GetTpmState(), gTcgConfigFormSetGuid, TCG_CONFIG_PRIVATE_DATA::HideTpm, TCG_CONFIGURATION::HideTpm, TCG_CONFIG_PRIVATE_DATA::HiiHandle, mTcgStorageName, TCG_CONFIGURATION::OriginalHideTpm, PHYSICAL_PRESENCE_ENABLE, TCG_CONFIG_PRIVATE_DATA_FROM_THIS, TCG_CONFIG_PRIVATE_DATA::TcgProtocol, TCG_CONFIGURATION::TpmActivate, TCG_CONFIGURATION::TpmEnable, TpmEnable, TCG_CONFIGURATION::TpmOperation, and TRUE.

EFI_STATUS EFIAPI TcgRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Configuration | A null-terminated Unicode string in <ConfigResp> format.
[out] | Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References gTcgConfigFormSetGuid, and mTcgStorageName.

VOID UninstallTcgConfigForm ( IN OUT TCG_CONFIG_PRIVATE_DATA * PrivateData )

This function removes TCG configuration Form.

Parameters:
[in,out] PrivateData Points to TCG configuration private data.

Referenced by TcgConfigDriverEntryPoint(), and TcgConfigDriverUnload().

Variable Documentation

TCG_CONFIG_PRIVATE_DATA mTcgConfigPrivateDateTemplate

Referenced by TcgConfigDriverEntryPoint().

UINT8 TcgConfigBin[]

Referenced by InstallTcgConfigForm().

UINT8 TcgConfigDxeStrings[]

Referenced by InstallTcgConfigForm().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgConfigDxe/TcgConfigNvData.h File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgConfigDxe/TcgConfigNvData.h File Reference

Data Structures

struct | TCG_CONFIGURATION

Defines

#define | TCG_CONFIGURATION_VARSTORE_ID 0x0001
#define | TCG_CONFIGURATION_FORM_ID 0x0001
#define | KEY_HIDE_TPM 0x2000
#define | KEY_TPM_ACTION 0x3000
#define | KEY_TPM_MOR_ENABLE 0x4000
#define | LABEL_TCG_CONFIGURATION_HIDETPM 0x0001
#define | LABEL_END 0xffff

Detailed Description

Header file for NV data structure definition.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define KEY_HIDE_TPM 0x2000

#define KEY_TPM_ACTION 0x3000

Referenced by TcgCallback().

#define KEY_TPM_MOR_ENABLE 0x4000

label LABEL_END 0xffff

Referenced by DisplayLoadForbid(), DisplayLoadPermit(), IdentifyOrTypeUser(), InstallSecureBootConfigForm(), InstallTcgConfigForm(), ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), SelectUserToDelete(), SelectUserToModify(), UpdateDeletePage(), UserIdentifyManagerCallback(), and UserProfileManagerCallback().

#define LABEL_TCG_CONFIGURATION_HIDETPM 0x0001

Referenced by InstallTcgConfigForm().

#define TCG_CONFIGURATION_FORM_ID 0x0001

Referenced by InstallTcgConfigForm().

#define TCG_CONFIGURATION_VARSTORE_ID 0x0001

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgDxe/TcgDxe.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgDxe/TcgDxe.c File Reference

Defines

#define | EFI_TCG_LOG_AREA_SIZE 0x10000
#define | TCG_DXE_DATA_FROM_THIS(this) BASE_CR (this, TCG_DXE_DATA, TcgProtocol)

Typedefs

typedef struct
_EFI_TCG_CLIENT_ACPI_TABLE 		EFI_TCG_CLIENT_ACPI_TABLE
typedef struct
_EFI_TCG_SERVER_ACPI_TABLE 		EFI_TCG_SERVER_ACPI_TABLE
typedef struct _TCG_DXE_DATA | TCG_DXE_DATA

Functions

EFI_STATUS | GetProcessorsCpuLocation (OUT EFI_CPU_PHYSICAL_LOCATION **LocationBuf, OUT UINTN *Num)
EFI_STATUS EFIAPI | TcgDxeStatusCheck (IN EFI_TCG_PROTOCOL *This, OUT TCG_EFI_BOOT_SERVICE_CAPABILITY *ProtocolCapability, OUT UINT32 *TCGFeatureFlags, OUT EFI_PHYSICAL_ADDRESS *EventLogLocation, OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry)
EFI_STATUS EFIAPI | TcgDxeHashAll (IN EFI_TCG_PROTOCOL *This, IN UINT8 *HashData, IN UINT64 HashDataLen, IN TCG_ALGORITHM_ID AlgorithmId, IN OUT UINT64 *HashedDataLen, IN OUT UINT8 **HashedDataResult)
EFI_STATUS EFIAPI | TcgDxeLogEventI (IN TCG_DXE_DATA *TcgData, IN TCG_PCR_EVENT_HDR *NewEventHdr, IN UINT8 *NewEventData)
EFI_STATUS EFIAPI | TcgDxeLogEvent (IN EFI_TCG_PROTOCOL *This, IN TCG_PCR_EVENT *TCGLogData, IN OUT UINT32 *EventNumber, IN UINT32 Flags)
EFI_STATUS EFIAPI | TcgDxePassThroughToTpm (IN EFI_TCG_PROTOCOL *This, IN UINT32 TpmInputParameterBlockSize, IN UINT8 *TpmInputParameterBlock, IN UINT32 TpmOutputParameterBlockSize, IN UINT8 *TpmOutputParameterBlock)
EFI_STATUS EFIAPI | TcgDxeHashLogExtendEventI (IN TCG_DXE_DATA *TcgData, IN UINT8 *HashData, IN UINT64 HashDataLen, IN OUT TCG_PCR_EVENT_HDR *NewEventHdr, IN UINT8 *NewEventData)
EFI_STATUS EFIAPI | TcgDxeHashLogExtendEvent (IN EFI_TCG_PROTOCOL *This, IN EFI_PHYSICAL_ADDRESS HashData, IN UINT64 HashDataLen, IN TPM_ALGORITHM_ID AlgorithmId, IN OUT TCG_PCR_EVENT *TCGLogData, IN OUT UINT32 *EventNumber, OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry)
EFI_STATUS EFIAPI | SetupEventLog (VOID)
EFI_STATUS EFIAPI | TcgMeasureAction (IN CHAR8 *String)
EFI_STATUS EFIAPI | MeasureHandoffTables (VOID)
EFI_STATUS EFIAPI | MeasureSeparatorEvent (IN TPM_PCRINDEX PCRIndex)
VOID *EFIAPI | ReadVariable (IN CHAR16 *VarName, IN EFI_GUID *VendorGuid, OUT UINTN *VarSize)
EFI_STATUS EFIAPI | MeasureVariable (IN TPM_PCRINDEX PCRIndex, IN TCG_EVENTTYPE EventType, IN CHAR16 *VarName, IN EFI_GUID *VendorGuid, IN VOID *VarData, IN UINTN VarSize)
EFI_STATUS EFIAPI | ReadAndMeasureBootVariable (IN CHAR16 *VarName, IN EFI_GUID *VendorGuid, OUT UINTN *VarSize, OUT VOID **VarData)
EFI_STATUS EFIAPI | MeasureAllBootVariables (VOID)
VOID EFIAPI | OnReadyToBoot (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | InstallAcpiTable (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | OnExitBootServices (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | OnExitBootServicesFailed (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS | GetTpmStatus (OUT BOOLEAN *TPMDeactivatedFlag)
EFI_STATUS EFIAPI | DriverEntry (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_TCG_CLIENT_ACPI_TABLE mTcgClientAcpiTemplate
EFI_TCG_SERVER_ACPI_TABLE mTcgServerAcpiTemplate
UINTN | mBootAttempts = 0
CHAR16 | mBootVarName [] = L"BootOrder"
TCG_DXE_DATA mTcgDxeData

Detailed Description

This module implements TCG EFI Protocol.

Caution: This module requires additional review when modified. This driver will have external input - TcgDxePassThroughToTpm This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow.

TcgDxePassThroughToTpm() will receive untrusted input and do basic validation.

Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define EFI_TCG_LOG_AREA_SIZE 0x10000

Referenced by SetupEventLog().

#define TCG_DXE_DATA_FROM_THIS ( this ) BASE_CR (this, TCG_DXE_DATA, TcgProtocol)

Referenced by TcgDxeHashLogExtendEvent(), TcgDxeLogEvent(), TcgDxePassThroughToTpm(), and TcgDxeStatusCheck().

Typedef Documentation

typedef struct _EFI_TCG_CLIENT_ACPI_TABLE EFI_TCG_CLIENT_ACPI_TABLE

typedef struct _EFI_TCG_SERVER_ACPI_TABLE EFI_TCG_SERVER_ACPI_TABLE

typedef struct _TCG_DXE_DATA TCG_DXE_DATA

Function Documentation

EFI_STATUS EFIAPI DriverEntry | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

The driver's entry point.

It publishes EFI TCG Protocol.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS | The entry point is executed successfully.
other | Some error occurs when executing this entry point.

References GetTpmStatus(), InstallAcpiTable(), OnExitBootServices(), OnExitBootServicesFailed(), OnReadyToBoot(), SetupEventLog(), TisPcRequestUseTpm(), and TPM_BASE_ADDRESS.

EFI_STATUS GetProcessorsCpuLocation | ( | OUT EFI_CPU_PHYSICAL_LOCATION ** | LocationBuf,
 |  | OUT UINTN * | Num
 | ) |  |

Get All processors EFI_CPU_LOCATION in system. LocationBuf is allocated inside the function Caller is responsible to free LocationBuf.

Parameters:
[out] | LocationBuf | Returns Processor Location Buffer.
[out] | Num | Returns processor number.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_UNSUPPORTED | MpService protocol not found.

Referenced by MeasureHandoffTables().

EFI_STATUS GetTpmStatus ( OUT BOOLEAN * TPMDeactivatedFlag )

Get TPM Deactivated state.

Parameters:
[out] TPMDeactivatedFlag Returns TPM Deactivated state.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References TpmCommGetFlags().

Referenced by DriverEntry().

VOID EFIAPI InstallAcpiTable | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Install TCG ACPI Table when ACPI Table Protocol is available.

A system's firmware uses an ACPI table to identify the system's TCG capabilities to the Post-Boot environment. The information in this ACPI table is not guaranteed to be valid until the Host Platform transitions from pre-boot state to post-boot state.

Parameters:
[in] | Event | Event whose notification function is being invoked
[in] | Context | Pointer to the notification function's context

References mTcgClientAcpiTemplate, and TCG_PLATFORM_TYPE_CLIENT.

Referenced by DriverEntry().

EFI_STATUS EFIAPI MeasureAllBootVariables ( VOID )

Measure and log all EFI boot variables, and extend the measurement result into a specific PCR.

The EFI boot variables are BootOrder and Boot#### variables.

Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References ReadAndMeasureBootVariable().

Referenced by OnReadyToBoot().

EFI_STATUS EFIAPI MeasureHandoffTables ( VOID )

Measure and log EFI handoff tables, and extend the measurement result into PCR[1].

Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References GetProcessorsCpuLocation(), TCG_PLATFORM_TYPE_SERVER, and TcgDxeHashLogExtendEventI().

Referenced by OnReadyToBoot().

EFI_STATUS EFIAPI MeasureSeparatorEvent ( IN TPM_PCRINDEX PCRIndex )

Measure and log Separator event, and extend the measurement result into a specific PCR.

Parameters:
[in] PCRIndex PCR index.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References TcgDxeHashLogExtendEventI().

Referenced by OnReadyToBoot().

EFI_STATUS EFIAPI MeasureVariable | ( | IN TPM_PCRINDEX | PCRIndex,
 |  | IN TCG_EVENTTYPE | EventType,
 |  | IN CHAR16 * | VarName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | VarData,
 |  | IN UINTN | VarSize
 | ) |  |

Measure and log an EFI variable, and extend the measurement result into a specific PCR.

Parameters:
[in] | PCRIndex | PCR Index.
[in] | EventType | Event type.
[in] | VarName | A Null-terminated string that is the name of the vendor's variable.
[in] | VendorGuid | A unique identifier for the vendor.
[in] | VarData | The content of the variable data.
[in] | VarSize | The size of the variable data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References TcgDxeHashLogExtendEventI().

Referenced by ReadAndMeasureBootVariable().

VOID EFIAPI OnExitBootServices | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Exit Boot Services Event notification handler.

Measure invocation and success of ExitBootServices.

Parameters:
[in] | Event | Event whose notification function is being invoked
[in] | Context | Pointer to the notification function's context

References TcgMeasureAction().

Referenced by DriverEntry(), and VariableSmmRuntimeInitialize().

VOID EFIAPI OnExitBootServicesFailed | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Exit Boot Services Failed Event notification handler.

Measure Failure of ExitBootServices.

Parameters:
[in] | Event | Event whose notification function is being invoked
[in] | Context | Pointer to the notification function's context

References TcgMeasureAction().

Referenced by DriverEntry().

VOID EFIAPI OnReadyToBoot | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Ready to Boot Event notification handler.

Sequence of OS boot events is measured in this event notification handler.

Parameters:
[in] | Event | Event whose notification function is being invoked
[in] | Context | Pointer to the notification function's context

References MeasureAllBootVariables(), MeasureHandoffTables(), MeasureSeparatorEvent(), and TcgMeasureAction().

EFI_STATUS EFIAPI ReadAndMeasureBootVariable | ( | IN CHAR16 * | VarName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINTN * | VarSize,
 |  | OUT VOID ** | VarData
 | ) |  |

Read then Measure and log an EFI boot variable, and extend the measurement result into PCR[5].

Parameters:
[in] | VarName | A Null-terminated string that is the name of the vendor's variable.
[in] | VendorGuid | A unique identifier for the vendor.
[out] | VarSize | The size of the variable data.
[out] | VarData | Pointer to the content of the variable.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | Out of memory.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References MeasureVariable(), and ReadVariable().

Referenced by MeasureAllBootVariables().

VOID* EFIAPI ReadVariable | ( | IN CHAR16 * | VarName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINTN * | VarSize
 | ) |  |

Read an EFI Variable.

This function allocates a buffer to return the contents of the variable. The caller is responsible for freeing the buffer.

Parameters:
[in] | VarName | A Null-terminated string that is the name of the vendor's variable.
[in] | VendorGuid | A unique identifier for the vendor.
[out] | VarSize | The size of the variable data.
Returns:
A pointer to the buffer to return the contents of the variable.Otherwise NULL.

Referenced by ReadAndMeasureBootVariable().

EFI_STATUS EFIAPI SetupEventLog ( VOID )

Initialize the Event Log and log events passed from the PEI phase.

Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | Out of memory.

References EFI_TCG_LOG_AREA_SIZE, gTcgEventEntryHobGuid, mTcgClientAcpiTemplate, TCG_PLATFORM_TYPE_CLIENT, and TcgDxeLogEventI().

Referenced by DriverEntry().

EFI_STATUS EFIAPI TcgDxeHashAll | ( | IN EFI_TCG_PROTOCOL * | This,
 |  | IN UINT8 * | HashData,
 |  | IN UINT64 | HashDataLen,
 |  | IN TCG_ALGORITHM_ID | AlgorithmId,
 |  | IN OUT UINT64 * | HashedDataLen,
 |  | IN OUT UINT8 ** | HashedDataResult
 | ) |  |

This service abstracts the capability to do a hash operation on a data buffer.

Parameters:
[in] | This | Indicates the calling context
[in] | HashData | Pointer to the data buffer to be hashed
[in] | HashDataLen | Length of the data buffer to be hashed
[in] | AlgorithmId | Identification of the Algorithm to use for the hashing operation
[in,out] | HashedDataLen | Resultant length of the hashed data
[in,out] | HashedDataResult | Resultant buffer of the hashed data
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_INVALID_PARAMETER | HashDataLen is NULL.
EFI_INVALID_PARAMETER | HashDataLenResult is NULL.
EFI_OUT_OF_RESOURCES | Cannot allocate buffer of size *HashedDataLen.
EFI_UNSUPPORTED | AlgorithmId not supported.
EFI_BUFFER_TOO_SMALL | *HashedDataLen < sizeof (TCG_DIGEST).

References TpmCommHashAll().

EFI_STATUS EFIAPI TcgDxeHashLogExtendEvent | ( | IN EFI_TCG_PROTOCOL * | This,
 |  | IN EFI_PHYSICAL_ADDRESS | HashData,
 |  | IN UINT64 | HashDataLen,
 |  | IN TPM_ALGORITHM_ID | AlgorithmId,
 |  | IN OUT TCG_PCR_EVENT * | TCGLogData,
 |  | IN OUT UINT32 * | EventNumber,
 |  | OUT EFI_PHYSICAL_ADDRESS * | EventLogLastEntry
 | ) |  |

This service abstracts the capability to do a hash operation on a data buffer, extend a specific TPM PCR with the hash result, and add an entry to the Event Log

Parameters:
[in] | This | Indicates the calling context
[in] | HashData | Physical address of the start of the data buffer to be hashed, extended, and logged.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData
[in] | AlgorithmId | Identification of the Algorithm to use for the hashing operation
[in,out] | TCGLogData | The physical address of the start of the data buffer containing the TCG_PCR_EVENT data structure.
[in,out] | EventNumber | The event number of the event just logged.
[out] | EventLogLastEntry | Physical address of the first byte of the entry just placed in the Event Log. If the Event Log was empty when this function was called then this physical address will be the same as the physical address of the start of the Event Log.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_UNSUPPORTED | AlgorithmId != TPM_ALG_SHA.
EFI_UNSUPPORTED | Current TPL >= EFI_TPL_CALLBACK.
EFI_DEVICE_ERROR | The command was unsuccessful.

References TCG_DXE_DATA_FROM_THIS, and TcgDxeHashLogExtendEventI().

EFI_STATUS EFIAPI TcgDxeHashLogExtendEventI | ( | IN TCG_DXE_DATA * | TcgData,
 |  | IN UINT8 * | HashData,
 |  | IN UINT64 | HashDataLen,
 |  | IN OUT TCG_PCR_EVENT_HDR * | NewEventHdr,
 |  | IN UINT8 * | NewEventData
 | ) |  |

Do a hash operation on a data buffer, extend a specific TPM PCR with the hash result, and add an entry to the Event Log.

Parameters:
[in] | TcgData | TCG_DXE_DATA structure.
[in] | HashData | Physical address of the start of the data buffer to be hashed, extended, and logged.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData
[in,out] | NewEventHdr | Pointer to a TCG_PCR_EVENT_HDR data structure.
[in] | NewEventData | Pointer to the new event data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.
EFI_DEVICE_ERROR | The command was unsuccessful.

References TcgDxeLogEventI(), TpmCommExtend(), and TpmCommHashAll().

Referenced by MeasureHandoffTables(), MeasureSeparatorEvent(), MeasureVariable(), TcgDxeHashLogExtendEvent(), and TcgMeasureAction().

EFI_STATUS EFIAPI TcgDxeLogEvent | ( | IN EFI_TCG_PROTOCOL * | This,
 |  | IN TCG_PCR_EVENT * | TCGLogData,
 |  | IN OUT UINT32 * | EventNumber,
 |  | IN UINT32 | Flags
 | ) |  |

This service abstracts the capability to add an entry to the Event Log.

Parameters:
[in] | This | Indicates the calling context
[in] | TCGLogData | Pointer to the start of the data buffer containing the TCG_PCR_EVENT data structure. All fields in this structure are properly filled by the caller.
[in,out] | EventNumber | The event number of the event just logged
[in] | Flags | Indicate additional flags. Only one flag has been defined at this time, which is 0x01 and means the extend operation should not be performed. All other bits are reserved.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | Insufficient memory in the event log to complete this action.

References TCG_DXE_DATA_FROM_THIS, and TcgDxeLogEventI().

EFI_STATUS EFIAPI TcgDxeLogEventI | ( | IN TCG_DXE_DATA * | TcgData,
 |  | IN TCG_PCR_EVENT_HDR * | NewEventHdr,
 |  | IN UINT8 * | NewEventData
 | ) |  |

Add a new entry to the Event Log.

Parameters:
[in] | TcgData | TCG_DXE_DATA structure.
[in] | NewEventHdr | Pointer to a TCG_PCR_EVENT_HDR data structure.
[in] | NewEventData | Pointer to the new event data.
Return values:
EFI_SUCCESS | The new event log entry was added.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.

References TCG_PLATFORM_TYPE_CLIENT, and TpmCommLogEvent().

Referenced by SetupEventLog(), TcgDxeHashLogExtendEventI(), and TcgDxeLogEvent().

EFI_STATUS EFIAPI TcgDxePassThroughToTpm | ( | IN EFI_TCG_PROTOCOL * | This,
 |  | IN UINT32 | TpmInputParameterBlockSize,
 |  | IN UINT8 * | TpmInputParameterBlock,
 |  | IN UINT32 | TpmOutputParameterBlockSize,
 |  | IN UINT8 * | TpmOutputParameterBlock
 | ) |  |

This service is a proxy for commands to the TPM.

Parameters:
[in] | This | Indicates the calling context
[in] | TpmInputParameterBlockSize | Size of the TPM input parameter block
[in] | TpmInputParameterBlock | Pointer to the TPM input parameter block
[in] | TpmOutputParameterBlockSize | Size of the TPM output parameter block
[in] | TpmOutputParameterBlock | Pointer to the TPM output parameter block
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_INVALID_PARAMETER | Invalid ordinal.
EFI_UNSUPPORTED | Current Task Priority Level >= EFI_TPL_CALLBACK.
EFI_TIMEOUT | The TIS timed-out.

References TCG_DXE_DATA_FROM_THIS, and TisPcExecute().

EFI_STATUS EFIAPI TcgDxeStatusCheck | ( | IN EFI_TCG_PROTOCOL * | This,
 |  | OUT TCG_EFI_BOOT_SERVICE_CAPABILITY * | ProtocolCapability,
 |  | OUT UINT32 * | TCGFeatureFlags,
 |  | OUT EFI_PHYSICAL_ADDRESS * | EventLogLocation,
 |  | OUT EFI_PHYSICAL_ADDRESS * | EventLogLastEntry
 | ) |  |

This service provides EFI protocol capability information, state information about the TPM, and Event Log state information.

Parameters:
[in] | This | Indicates the calling context
[out] | ProtocolCapability | The callee allocates memory for a TCG_BOOT_SERVICE_CAPABILITY structure and fills in the fields with the EFI protocol capability information and the current TPM state information.
[out] | TCGFeatureFlags | This is a pointer to the feature flags. No feature flags are currently defined so this parameter MUST be set to 0. However, in the future, feature flags may be defined that, for example, enable hash algorithm agility.
[out] | EventLogLocation | This is a pointer to the address of the event log in memory.
[out] | EventLogLastEntry | If the Event Log contains more than one entry, this is a pointer to the address of the start of the last entry in the event log in memory.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_INVALID_PARAMETER | ProtocolCapability does not match TCG capability.

References TCG_DXE_DATA_FROM_THIS, and TCG_PLATFORM_TYPE_CLIENT.

EFI_STATUS EFIAPI TcgMeasureAction ( IN CHAR8 * String )

Measure and log an action string, and extend the measurement result into PCR[5].

Parameters:
[in] String A specific string that indicates an Action event.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The operation was unsuccessful.

References TcgDxeHashLogExtendEventI().

Referenced by OnExitBootServices(), OnExitBootServicesFailed(), and OnReadyToBoot().

Variable Documentation

UINTN mBootAttempts = 0

CHAR16 mBootVarName[] = L"BootOrder"

EFI_TCG_CLIENT_ACPI_TABLE mTcgClientAcpiTemplate

Initial value:

 {
  {
    EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE,
    sizeof (mTcgClientAcpiTemplate),
    0x02

  },
  0,
  0,
  (EFI_PHYSICAL_ADDRESS) (SIZE_4GB - 1)
}

Referenced by InstallAcpiTable(), and SetupEventLog().

TCG_DXE_DATA mTcgDxeData

Initial value:

 {
  {
    TcgDxeStatusCheck,
    TcgDxeHashAll,
    TcgDxeLogEvent,
    TcgDxePassThroughToTpm,
    TcgDxeHashLogExtendEvent
  },
  {
    sizeof (mTcgDxeData.BsCap),
    { 1, 2, 0, 0 },
    { 1, 2, 0, 0 },
    1,
    TRUE,
    FALSE
  },
  &mTcgClientAcpiTemplate,
  &mTcgServerAcpiTemplate,
  0,
  NULL,
  NULL
}

EFI_TCG_SERVER_ACPI_TABLE mTcgServerAcpiTemplate

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgDxe/TisDxe.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgDxe/TisDxe.c File Reference

Functions

EFI_STATUS | TisPcSend (IN TIS_PC_REGISTERS_PTR TisReg, IN UINT8 *TpmBuffer, IN UINT32 DataLength)
EFI_STATUS | TisPcReceive (IN TIS_PC_REGISTERS_PTR TisReg, OUT UINT8 *TpmBuffer, OUT UINT32 *RespSize)
EFI_STATUS | TisPcSendV (IN UINT8 FmtChar, IN OUT VA_LIST *ap, UINT8 *TpmBuffer, UINT32 *DataLength)
EFI_STATUS | TisPcReceiveV (IN UINT8 FmtChar, IN OUT VA_LIST *ap, OUT UINT8 *TpmBuffer, IN OUT UINT32 *DataIndex, IN UINT32 RespSize, OUT BOOLEAN *DataFinished)
EFI_STATUS EFIAPI | TisPcExecute (IN TIS_TPM_HANDLE TisReg, IN CONST CHAR8 *Fmt,...)

Variables

STATIC UINT8 | TpmCommandBuf [TPMCMDBUFLENGTH]

Detailed Description

TIS (TPM Interface Specification) functions used by TPM Dxe driver.

Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI TisPcExecute | ( | IN TIS_TPM_HANDLE | TisReg,
 |  | IN CONST CHAR8 * | Fmt,
 |  |  | ...
 | ) |  |

Send formatted command to TPM for execution and return formatted data from response.

Parameters:
[in] | TisReg | TPM Handle.
[in] | Fmt | Format control string.
[in] ... The variable argument list.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.

References TIS_PC_STS_GO, TIS_PC_STS_READY, TisPcReceive(), TisPcReceiveV(), TisPcSend(), TisPcSendV(), TPMCMDBUFLENGTH, and TpmCommandBuf.

Referenced by TcgDxePassThroughToTpm(), TpmCommExtend(), and TpmCommGetFlags().

EFI_STATUS TisPcReceive | ( | IN TIS_PC_REGISTERS_PTR | TisReg,
 |  | OUT UINT8 * | TpmBuffer,
 |  | OUT UINT32 * | RespSize
 | ) |  |

Receive response data of last command from TPM.

Parameters:
[in] | TisReg | TPM register space base address.
[out] | TpmBuffer | Buffer for response data.
[out] | RespSize | Response data length.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_DEVICE_ERROR | Unexpected device status.
EFI_BUFFER_TOO_SMALL | Response data is too long.

References TIS_PC_STS_DATA, TIS_PC_VALID, TIS_TIMEOUT_B, TisPcReadBurstCount(), TisPcWaitRegisterBits(), and TPMCMDBUFLENGTH.

Referenced by TisPcExecute().

EFI_STATUS TisPcReceiveV | ( | IN UINT8 | FmtChar,
 |  | IN OUT VA_LIST * | ap,
 |  | OUT UINT8 * | TpmBuffer,
 |  | IN OUT UINT32 * | DataIndex,
 |  | IN UINT32 | RespSize,
 |  | OUT BOOLEAN * | DataFinished
 | ) |  |

Format reponse data according to the format control character.

Parameters:
[in] | FmtChar | Format control character.
[in,out] | ap | List of arguments.
[out] | TpmBuffer | Buffer for reponse data.
[in,out] | DataIndex | Data offset in reponse data buffer.
[in] | RespSize | Response data length.
[out] | DataFinished | Reach the end of Response data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_INVALID_PARAMETER | Invalid format control character.
EFI_BUFFER_TOO_SMALL | Buffer too small for command data.

References TPMCMDBUFLENGTH, and TRUE.

Referenced by TisPcExecute().

EFI_STATUS TisPcSend | ( | IN TIS_PC_REGISTERS_PTR | TisReg,
 |  | IN UINT8 * | TpmBuffer,
 |  | IN UINT32 | DataLength
 | ) |  |

Send command to TPM for execution.

Parameters:
[in] | TisReg | TPM register space base address.
[in] | TpmBuffer | Buffer for TPM command data.
[in] | DataLength | TPM command data length.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.

References TIS_PC_STS_EXPECT, TIS_PC_VALID, TIS_TIMEOUT_C, TisPcPrepareCommand(), TisPcReadBurstCount(), and TisPcWaitRegisterBits().

Referenced by TisPcExecute().

EFI_STATUS TisPcSendV | ( | IN UINT8 | FmtChar,
 |  | IN OUT VA_LIST * | ap,
 |  | UINT8 * | TpmBuffer,
 |  | UINT32 * | DataLength
 | ) |  |

Format TPM command data according to the format control character.

Parameters:
[in] | FmtChar | Format control character.
[in,out] | ap | List of arguments.
[in] | TpmBuffer | Buffer for TPM command data.
[out] | DataLength | TPM command data length.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_INVALID_PARAMETER | Invalid format control character.
EFI_BUFFER_TOO_SMALL | Buffer too small for command data.

References TPMCMDBUFLENGTH.

Referenced by TisPcExecute().

Variable Documentation

STATIC UINT8 TpmCommandBuf[TPMCMDBUFLENGTH]

Referenced by TisPcExecute().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgDxe/TpmComm.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgDxe/TpmComm.c File Reference

Functions

EFI_STATUS | TpmCommExtend (IN TIS_TPM_HANDLE TpmHandle, IN TPM_DIGEST *DigestToExtend, IN TPM_PCRINDEX PcrIndex, OUT TPM_DIGEST *NewPcrValue)
EFI_STATUS | TpmCommGetFlags (IN TIS_TPM_HANDLE TpmHandle, IN UINT32 FlagSubcap, OUT VOID *FlagBuffer, IN UINTN FlagSize)
EFI_STATUS | TpmCommLogEvent (IN OUT UINT8 **EventLogPtr, IN OUT UINTN *LogSize, IN UINTN MaxSize, IN TCG_PCR_EVENT_HDR *NewEventHdr, IN UINT8 *NewEventData)

Detailed Description

Utility functions used by TPM Dxe driver.

Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS TpmCommExtend | ( | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TPM_DIGEST * | DigestToExtend,
 |  | IN TPM_PCRINDEX | PcrIndex,
 |  | OUT TPM_DIGEST * | NewPcrValue
 | ) |  |

Extend a TPM PCR.

Parameters:
[in] | TpmHandle | TPM handle.
[in] | DigestToExtend | The 160 bit value representing the event to be recorded.
[in] | PcrIndex | The PCR to be updated.
[out] | NewPcrValue | New PCR value after extend.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The command was unsuccessful.

References TisPcExecute().

Referenced by HashLogExtendEvent(), and TcgDxeHashLogExtendEventI().

EFI_STATUS TpmCommGetFlags | ( | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN UINT32 | FlagSubcap,
 |  | OUT VOID * | FlagBuffer,
 |  | IN UINTN | FlagSize
 | ) |  |

Get TPM capability flags.

Parameters:
[in] | TpmHandle | TPM handle.
[in] | FlagSubcap | Flag subcap.
[out] | FlagBuffer | Pointer to the buffer for returned flag structure.
[in] | FlagSize | Size of the buffer.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The command was unsuccessful.

References TisPcExecute().

Referenced by GetTpmStatus().

EFI_STATUS TpmCommLogEvent | ( | IN OUT UINT8 ** | EventLogPtr,
 |  | IN OUT UINTN * | LogSize,
 |  | IN UINTN | MaxSize,
 |  | IN TCG_PCR_EVENT_HDR * | NewEventHdr,
 |  | IN UINT8 * | NewEventData
 | ) |  |

Add a new entry to the Event Log.

Parameters:
[in,out] | EventLogPtr | Pointer to the Event Log data.
[in,out] | LogSize | Size of the Event Log.
[in] | MaxSize | Maximum size of the Event Log.
[in] | NewEventHdr | Pointer to a TCG_PCR_EVENT_HDR data structure.
[in] | NewEventData | Pointer to the new event data.
Return values:
EFI_SUCCESS | The new event log entry was added.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.

Referenced by TcgDxeLogEventI().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgDxe/TpmComm.h File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgDxe/TpmComm.h File Reference

Functions

EFI_STATUS | TpmCommLogEvent (IN OUT UINT8 **EventLogPtr, IN OUT UINTN *LogSize, IN UINTN MaxSize, IN TCG_PCR_EVENT_HDR *NewEventHdr, IN UINT8 *NewEventData)
EFI_STATUS | TpmCommExtend (IN TIS_TPM_HANDLE TpmHandle, IN TPM_DIGEST *DigestToExtend, IN TPM_PCRINDEX PcrIndex, OUT TPM_DIGEST *NewPcrValue)
EFI_STATUS | TpmCommGetFlags (IN TIS_TPM_HANDLE TpmHandle, IN UINT32 FlagSubcap, OUT VOID *Buffer, IN UINTN Size)
EFI_STATUS EFIAPI | TisPcExecute (IN TIS_TPM_HANDLE TisReg, IN CONST CHAR8 *Fmt,...)

Detailed Description

Definitions and function prototypes used by TPM DXE driver.

Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI TisPcExecute | ( | IN TIS_TPM_HANDLE | TisReg,
 |  | IN CONST CHAR8 * | Fmt,
 |  |  | ...
 | ) |  |

Send formatted command to TPM for execution and return formatted data from response.

Parameters:
[in] | TisReg | TPM Handle.
[in] | Fmt | Format control string.
[in] ... The variable argument list.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.

References TIS_PC_STS_GO, TIS_PC_STS_READY, TisPcReceive(), TisPcReceiveV(), TisPcSend(), TisPcSendV(), TPMCMDBUFLENGTH, and TpmCommandBuf.

Referenced by TcgDxePassThroughToTpm(), TpmCommExtend(), and TpmCommGetFlags().

EFI_STATUS TpmCommExtend | ( | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TPM_DIGEST * | DigestToExtend,
 |  | IN TPM_PCRINDEX | PcrIndex,
 |  | OUT TPM_DIGEST * | NewPcrValue
 | ) |  |

Extend a TPM PCR.

Parameters:
[in] | TpmHandle | TPM handle.
[in] | DigestToExtend | The 160 bit value representing the event to be recorded.
[in] | PcrIndex | The PCR to be updated.
[out] | NewPcrValue | New PCR value after extend.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The command was unsuccessful.

References TisPcExecute().

Referenced by HashLogExtendEvent(), and TcgDxeHashLogExtendEventI().

EFI_STATUS TpmCommGetFlags | ( | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN UINT32 | FlagSubcap,
 |  | OUT VOID * | FlagBuffer,
 |  | IN UINTN | FlagSize
 | ) |  |

Get TPM capability flags.

Parameters:
[in] | TpmHandle | TPM handle.
[in] | FlagSubcap | Flag subcap.
[out] | FlagBuffer | Pointer to the buffer for returned flag structure.
[in] | FlagSize | Size of the buffer.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_DEVICE_ERROR | The command was unsuccessful.

References TisPcExecute().

Referenced by GetTpmStatus().

EFI_STATUS TpmCommLogEvent | ( | IN OUT UINT8 ** | EventLogPtr,
 |  | IN OUT UINTN * | LogSize,
 |  | IN UINTN | MaxSize,
 |  | IN TCG_PCR_EVENT_HDR * | NewEventHdr,
 |  | IN UINT8 * | NewEventData
 | ) |  |

Add a new entry to the Event Log.

Parameters:
[in,out] | EventLogPtr | Pointer to the Event Log data.
[in,out] | LogSize | Size of the Event Log.
[in] | MaxSize | Maximum size of the Event Log.
[in] | NewEventHdr | Pointer to a TCG_PCR_EVENT_HDR data structure.
[in] | NewEventData | Pointer to the new event data.
Return values:
EFI_SUCCESS | The new event log entry was added.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.

Referenced by TcgDxeLogEventI().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgPei/TcgPei.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgPei/TcgPei.c File Reference

Functions

EFI_STATUS EFIAPI | PhysicalPresencePpiNotifyCallback (IN EFI_PEI_SERVICES **PeiServices, IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor, IN VOID *Ppi)
EFI_STATUS EFIAPI | FirmwareVolmeInfoPpiNotifyCallback (IN EFI_PEI_SERVICES **PeiServices, IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor, IN VOID *Ppi)
EFI_STATUS EFIAPI | EndofPeiSignalNotifyCallBack (IN EFI_PEI_SERVICES **PeiServices, IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor, IN VOID *Ppi)
EFI_STATUS | HashLogExtendEvent (IN EFI_PEI_SERVICES **PeiServices, IN UINT8 *HashData, IN UINTN HashDataLen, IN TIS_TPM_HANDLE TpmHandle, IN TCG_PCR_EVENT_HDR *NewEventHdr, IN UINT8 *NewEventData)
EFI_STATUS EFIAPI | MeasureCRTMVersion (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle)
EFI_STATUS EFIAPI | MeasureFvImage (IN EFI_PHYSICAL_ADDRESS FvBase, IN UINT64 FvLength)
EFI_STATUS EFIAPI | MeasureMainBios (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle)
BOOLEAN EFIAPI | IsTpmUsable (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle)
EFI_STATUS EFIAPI | PeimEntryMP (IN EFI_PEI_SERVICES **PeiServices)
EFI_STATUS EFIAPI | PeimEntryMA (IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices)

Variables

BOOLEAN | mImageInMemory = FALSE
EFI_PEI_PPI_DESCRIPTOR | mTpmInitializedPpiList
EFI_PLATFORM_FIRMWARE_BLOB | mMeasuredBaseFvInfo [FixedPcdGet32(PcdPeiCoreMaxFvSupported)]
UINT32 | mMeasuredBaseFvIndex = 0
EFI_PLATFORM_FIRMWARE_BLOB | mMeasuredChildFvInfo [FixedPcdGet32(PcdPeiCoreMaxFvSupported)]
UINT32 | mMeasuredChildFvIndex = 0
EFI_PEI_NOTIFY_DESCRIPTOR | mNotifyList []

Detailed Description

Initialize TPM device and measure FVs before handing off control to DXE.

Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI EndofPeiSignalNotifyCallBack | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyDescriptor,
 |  | IN VOID * | Ppi
 | ) |  |

Record all measured Firmware Volum Information into a Guid Hob

Parameters:
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
[in] | NotifyDescriptor | Address of the notification descriptor data structure.
[in] | Ppi | Address of the PPI that was installed.
Return values:
EFI_SUCCESS The FV Info is measured and recorded to TPM.
Returns:
Others Fail to measure FV.
Record all measured Firmware Volum Information into a Guid Hob Guid Hob payload layout is

UINT32 *************************** FIRMWARE_BLOB number EFI_PLATFORM_FIRMWARE_BLOB******** BLOB Array

Parameters:
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
[in] | NotifyDescriptor | Address of the notification descriptor data structure.
[in] | Ppi | Address of the PPI that was installed.
Return values:
EFI_SUCCESS The FV Info is measured and recorded to TPM.
Returns:
Others Fail to measure FV.

References gMeasuredFvHobGuid, MEASURED_HOB_DATA::MeasuredFvBuf, mMeasuredBaseFvIndex, mMeasuredBaseFvInfo, mMeasuredChildFvIndex, mMeasuredChildFvInfo, and MEASURED_HOB_DATA::Num.

EFI_STATUS EFIAPI FirmwareVolmeInfoPpiNotifyCallback | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyDescriptor,
 |  | IN VOID * | Ppi
 | ) |  |

Measure and record the Firmware Volum Information once FvInfoPPI install.

Parameters:
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.
[in] | NotifyDescriptor | Address of the notification descriptor data structure.
[in] | Ppi | Address of the PPI that was installed.
Return values:
EFI_SUCCESS The FV Info is measured and recorded to TPM.
Returns:
Others Fail to measure FV.

References MeasureFvImage(), mMeasuredChildFvIndex, and mMeasuredChildFvInfo.

EFI_STATUS HashLogExtendEvent | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN UINT8 * | HashData,
 |  | IN UINTN | HashDataLen,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TCG_PCR_EVENT_HDR * | NewEventHdr,
 |  | IN UINT8 * | NewEventData
 | ) |  |

Do a hash operation on a data buffer, extend a specific TPM PCR with the hash result, and build a GUIDed HOB recording the event which will be passed to the DXE phase and added into the Event Log.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | HashData | Physical address of the start of the data buffer to be hashed, extended, and logged.
[in] | HashDataLen | The length, in bytes, of the buffer referenced by HashData.
[in] | TpmHandle | TPM handle.
[in] | NewEventHdr | Pointer to a TCG_PCR_EVENT_HDR data structure.
[in] | NewEventData | Pointer to the new event data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.
EFI_DEVICE_ERROR | The command was unsuccessful.

References gTcgEventEntryHobGuid, TpmCommExtend(), and TpmCommHashAll().

Referenced by MeasureCRTMVersion(), and MeasureFvImage().

BOOLEAN EFIAPI IsTpmUsable | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle
 | ) |  |

Check if TPM chip is activeated or not.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
Return values:
TRUE | TPM is activated.
FALSE | TPM is deactivated.

References TpmCommGetCapability().

Referenced by PeimEntryMP().

EFI_STATUS EFIAPI MeasureCRTMVersion | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle
 | ) |  |

Measure CRTM version.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.
EFI_DEVICE_ERROR | The command was unsuccessful.

References HashLogExtendEvent().

Referenced by PeimEntryMP().

EFI_STATUS EFIAPI MeasureFvImage | ( | IN EFI_PHYSICAL_ADDRESS | FvBase,
 |  | IN UINT64 | FvLength
 | ) |  |

Measure FV image. Add it into the measured FV list after the FV is measured successfully.

Parameters:
[in] | FvBase | Base address of FV image.
[in] | FvLength | Length of FV image.
Return values:
EFI_SUCCESS | Fv image is measured successfully or it has been already measured.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.
EFI_DEVICE_ERROR | The command was unsuccessful.

References HashLogExtendEvent(), mMeasuredBaseFvIndex, mMeasuredBaseFvInfo, and TPM_BASE_ADDRESS.

Referenced by FirmwareVolmeInfoPpiNotifyCallback(), and MeasureMainBios().

EFI_STATUS EFIAPI MeasureMainBios | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle
 | ) |  |

Measure main BIOS.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.
EFI_DEVICE_ERROR | The command was unsuccessful.

References MeasureFvImage(), and TRUE.

Referenced by PeimEntryMP().

EFI_STATUS EFIAPI PeimEntryMA | ( | IN EFI_PEI_FILE_HANDLE | FileHandle,
 |  | IN CONST EFI_PEI_SERVICES ** | PeiServices
 | ) |  |

Entry point of this module.

Parameters:
[in] | FileHandle | Handle of the file being invoked.
[in] | PeiServices | Describes the list of possible PEI Services.
Returns:
Status.

References mImageInMemory, mTpmInitializedPpiList, PeimEntryMP(), TisPcRequestUseTpm(), TPM_BASE_ADDRESS, TpmCommContinueSelfTest(), TpmCommStartup(), and TRUE.

EFI_STATUS EFIAPI PeimEntryMP ( IN EFI_PEI_SERVICES ** PeiServices )

Do measurement after memory is ready.

Parameters:
[in] PeiServices Describes the list of possible PEI Services.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_OUT_OF_RESOURCES | No enough memory to log the new event.
EFI_DEVICE_ERROR | The command was unsuccessful.

References IsTpmUsable(), MeasureCRTMVersion(), MeasureMainBios(), mNotifyList, TisPcRequestUseTpm(), and TPM_BASE_ADDRESS.

Referenced by PeimEntryMA().

EFI_STATUS EFIAPI PhysicalPresencePpiNotifyCallback | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN EFI_PEI_NOTIFY_DESCRIPTOR * | NotifyDescriptor,
 |  | IN VOID * | Ppi
 | ) |  |

Lock physical presence if needed.

Parameters:
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
[in] | NotifyDescriptor | Address of the notification descriptor data structure.
[in] | Ppi | Address of the PPI that was installed.
Return values:
EFI_SUCCESS Operation completed successfully.
Set physicalPresenceLifetimeLock, physicalPresenceHWEnable and physicalPresenceCMDEnable bit by corresponding PCDs. And lock physical presence if needed.

Parameters:
[in] | PeiServices | An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation
[in] | NotifyDescriptor | Address of the notification descriptor data structure.
[in] | Ppi | Address of the PPI that was installed.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_ABORTED | physicalPresenceCMDEnable is locked.
EFI_DEVICE_ERROR | The command was unsuccessful.

References _PEI_LOCK_PHYSICAL_PRESENCE_PPI::LockPhysicalPresence, TPM_BASE_ADDRESS, TpmCommGetCapability(), TpmCommPhysicalPresence(), and TRUE.

Variable Documentation

BOOLEAN mImageInMemory = FALSE

Referenced by PeimEntryMA().

UINT32 mMeasuredBaseFvIndex = 0

Referenced by EndofPeiSignalNotifyCallBack(), and MeasureFvImage().

EFI_PLATFORM_FIRMWARE_BLOB mMeasuredBaseFvInfo[FixedPcdGet32(PcdPeiCoreMaxFvSupported)]

Referenced by EndofPeiSignalNotifyCallBack(), and MeasureFvImage().

UINT32 mMeasuredChildFvIndex = 0

Referenced by EndofPeiSignalNotifyCallBack(), and FirmwareVolmeInfoPpiNotifyCallback().

EFI_PLATFORM_FIRMWARE_BLOB mMeasuredChildFvInfo[FixedPcdGet32(PcdPeiCoreMaxFvSupported)]

Referenced by EndofPeiSignalNotifyCallBack(), and FirmwareVolmeInfoPpiNotifyCallback().

EFI_PEI_NOTIFY_DESCRIPTOR mNotifyList[]

Initial value:

 {
  {
    EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,
    &gPeiLockPhysicalPresencePpiGuid,
    PhysicalPresencePpiNotifyCallback
  },
  {
    EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,
    &gEfiPeiFirmwareVolumeInfoPpiGuid,
    FirmwareVolmeInfoPpiNotifyCallback
  },
  {
    (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
    &gEfiEndOfPeiSignalPpiGuid,
    EndofPeiSignalNotifyCallBack
  }
}

Referenced by PeimEntryMP().

EFI_PEI_PPI_DESCRIPTOR mTpmInitializedPpiList

Initial value:

 {
  EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
  &gPeiTpmInitializedPpiGuid,
  NULL
}

Referenced by PeimEntryMA().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgPei/TisPei.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgPei/TisPei.c File Reference

Functions

EFI_STATUS TisTpmCommand (IN EFI_PEI_SERVICES **PeiServices, IN TIS_PC_REGISTERS_PTR TisReg, IN UINT8 *BufferIn, IN UINT32 SizeIn, IN OUT UINT8 *BufferOut, IN OUT UINT32 *SizeOut)

Detailed Description

TIS (TPM Interface Specification) functions used by TPM PEI driver.

Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS TisTpmCommand | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_PC_REGISTERS_PTR | TisReg,
 |  | IN UINT8 * | BufferIn,
 |  | IN UINT32 | SizeIn,
 |  | IN OUT UINT8 * | BufferOut,
 |  | IN OUT UINT32 * | SizeOut
 | ) |  |

Send a command to TPM for execution and return response data.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TisReg | TPM register space base address.
[in] | BufferIn | Buffer for command data.
[in] | SizeIn | Size of command data.
[in,out] | BufferOut | Buffer for response data.
[in,out] | SizeOut | Size of response data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TIS_PC_STS_DATA, TIS_PC_STS_EXPECT, TIS_PC_STS_GO, TIS_PC_STS_READY, TIS_PC_VALID, TIS_TIMEOUT_B, TIS_TIMEOUT_C, TisPcPrepareCommand(), TisPcReadBurstCount(), and TisPcWaitRegisterBits().

Referenced by TpmCommContinueSelfTest(), TpmCommExtend(), TpmCommGetCapability(), TpmCommPhysicalPresence(), and TpmCommStartup().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgPei/TpmComm.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgPei/TpmComm.c File Reference

Functions

EFI_STATUS | TisTpmCommand (IN EFI_PEI_SERVICES **PeiServices, IN TIS_PC_REGISTERS_PTR TisReg, IN UINT8 *BufferIn, IN UINT32 SizeIn, IN OUT UINT8 *BufferOut, IN OUT UINT32 *SizeOut)
EFI_STATUS | TpmCommStartup (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, IN EFI_BOOT_MODE BootMode)
EFI_STATUS | TpmCommContinueSelfTest (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle)
EFI_STATUS | TpmCommGetCapability (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, OUT BOOLEAN *Deactivated, OUT BOOLEAN *LifetimeLock, OUT BOOLEAN *CmdEnable)
EFI_STATUS | TpmCommExtend (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, IN TPM_DIGEST *DigestToExtend, IN TPM_PCRINDEX PcrIndex, OUT TPM_DIGEST *NewPcrValue)
EFI_STATUS | TpmCommPhysicalPresence (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, IN TPM_PHYSICAL_PRESENCE PhysicalPresence)

Detailed Description

Utility functions used by TPM PEI driver.

Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS TisTpmCommand | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_PC_REGISTERS_PTR | TisReg,
 |  | IN UINT8 * | BufferIn,
 |  | IN UINT32 | SizeIn,
 |  | IN OUT UINT8 * | BufferOut,
 |  | IN OUT UINT32 * | SizeOut
 | ) |  |

Send a command to TPM for execution and return response data.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TisReg | TPM register space base address.
[in] | BufferIn | Buffer for command data.
[in] | SizeIn | Size of command data.
[in,out] | BufferOut | Buffer for response data.
[in,out] | SizeOut | size of response data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.
Send a command to TPM for execution and return response data.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TisReg | TPM register space base address.
[in] | BufferIn | Buffer for command data.
[in] | SizeIn | Size of command data.
[in,out] | BufferOut | Buffer for response data.
[in,out] | SizeOut | Size of response data.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TIS_PC_STS_DATA, TIS_PC_STS_EXPECT, TIS_PC_STS_GO, TIS_PC_STS_READY, TIS_PC_VALID, TIS_TIMEOUT_B, TIS_TIMEOUT_C, TisPcPrepareCommand(), TisPcReadBurstCount(), and TisPcWaitRegisterBits().

Referenced by TpmCommContinueSelfTest(), TpmCommExtend(), TpmCommGetCapability(), TpmCommPhysicalPresence(), and TpmCommStartup().

EFI_STATUS TpmCommContinueSelfTest | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle
 | ) |  |

Send TPM_ContinueSelfTest command to TPM.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_SELF_TEST::Hdr, and TisTpmCommand().

Referenced by PeimEntryMA().

EFI_STATUS TpmCommExtend | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TPM_DIGEST * | DigestToExtend,
 |  | IN TPM_PCRINDEX | PcrIndex,
 |  | OUT TPM_DIGEST * | NewPcrValue
 | ) |  |

Extend a TPM PCR.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[in] | DigestToExtend | The 160 bit value representing the event to be recorded.
[in] | PcrIndex | The PCR to be updated.
[out] | NewPcrValue | New PCR value after extend.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_EXTEND::Hdr, TPM_CMD_EXTEND::PcrIndex, TisTpmCommand(), and TPM_CMD_EXTEND::TpmDigest.

EFI_STATUS TpmCommGetCapability | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | OUT BOOLEAN * | Deactivated,
 |  | OUT BOOLEAN * | LifetimeLock,
 |  | OUT BOOLEAN * | CmdEnable
 | ) |  |

Get TPM capability flags.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[out] | Deactivated | Returns deactivated flag.
[out] | LifetimeLock | Returns physicalPresenceLifetimeLock permanent flag.
[out] | CmdEnable | Returns physicalPresenceCMDEnable permanent flag.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_GET_CAPABILITY::Capability, TPM_CMD_GET_CAPABILITY::CapabilityFlag, TPM_CMD_GET_CAPABILITY::CapabilityFlagSize, TPM_CMD_GET_CAPABILITY::Hdr, and TisTpmCommand().

Referenced by IsTpmUsable(), and PhysicalPresencePpiNotifyCallback().

EFI_STATUS TpmCommPhysicalPresence | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TPM_PHYSICAL_PRESENCE | PhysicalPresence
 | ) |  |

Send TSC_PhysicalPresence command to TPM.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[in] | PhysicalPresence | The state to set the TPMs Physical Presence flags.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_PHYSICAL_PRESENCE::Hdr, TPM_CMD_PHYSICAL_PRESENCE::PhysicalPresence, and TisTpmCommand().

Referenced by PhysicalPresencePpiNotifyCallback().

EFI_STATUS TpmCommStartup | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN EFI_BOOT_MODE | BootMode
 | ) |  |

Send TPM_Startup command to TPM.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[in] | BootMode | Boot mode.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_START_UP::Hdr, TisTpmCommand(), and TPM_CMD_START_UP::TpmSt.

Referenced by PeimEntryMA().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgPei/TpmComm.h File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgPei/TpmComm.h File Reference

Data Structures

struct | TPM_CMD_START_UP
struct | TPM_CMD_SELF_TEST
struct | TPM_CMD_GET_CAPABILITY
struct | TPM_CMD_EXTEND
struct | TPM_CMD_PHYSICAL_PRESENCE

Functions

EFI_STATUS | TpmCommStartup (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, IN EFI_BOOT_MODE BootMode)
EFI_STATUS | TpmCommContinueSelfTest (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle)
EFI_STATUS | TpmCommGetCapability (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, OUT BOOLEAN *Deactivated, OUT BOOLEAN *LifetimeLock, OUT BOOLEAN *CmdEnable)
EFI_STATUS | TpmCommExtend (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, IN TPM_DIGEST *DigestToExtend, IN TPM_PCRINDEX PcrIndex, OUT TPM_DIGEST *NewPcrValue)
EFI_STATUS | TpmCommPhysicalPresence (IN EFI_PEI_SERVICES **PeiServices, IN TIS_TPM_HANDLE TpmHandle, IN TPM_PHYSICAL_PRESENCE PhysicalPresence)

Detailed Description

The header file for TPM PEI driver.

Copyright (c) 2005 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS TpmCommContinueSelfTest | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle
 | ) |  |

Send TPM_ContinueSelfTest command to TPM.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_SELF_TEST::Hdr, and TisTpmCommand().

Referenced by PeimEntryMA().

EFI_STATUS TpmCommExtend | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TPM_DIGEST * | DigestToExtend,
 |  | IN TPM_PCRINDEX | PcrIndex,
 |  | OUT TPM_DIGEST * | NewPcrValue
 | ) |  |

Extend a TPM PCR.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[in] | DigestToExtend | The 160 bit value representing the event to be recorded.
[in] | PcrIndex | The PCR to be updated.
[out] | NewPcrValue | New PCR value after extend.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_EXTEND::Hdr, TPM_CMD_EXTEND::PcrIndex, TisTpmCommand(), and TPM_CMD_EXTEND::TpmDigest.

EFI_STATUS TpmCommGetCapability | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | OUT BOOLEAN * | Deactivated,
 |  | OUT BOOLEAN * | LifetimeLock,
 |  | OUT BOOLEAN * | CmdEnable
 | ) |  |

Get TPM capability flags.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[out] | Deactivated | Returns deactivated flag.
[out] | LifetimeLock | Returns physicalPresenceLifetimeLock permanent flag.
[out] | CmdEnable | Returns physicalPresenceCMDEnable permanent flag.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_GET_CAPABILITY::Capability, TPM_CMD_GET_CAPABILITY::CapabilityFlag, TPM_CMD_GET_CAPABILITY::CapabilityFlagSize, TPM_CMD_GET_CAPABILITY::Hdr, and TisTpmCommand().

Referenced by IsTpmUsable(), and PhysicalPresencePpiNotifyCallback().

EFI_STATUS TpmCommPhysicalPresence | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN TPM_PHYSICAL_PRESENCE | PhysicalPresence
 | ) |  |

Send TSC_PhysicalPresence command to TPM.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[in] | PhysicalPresence | The state to set the TPMs Physical Presence flags.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_PHYSICAL_PRESENCE::Hdr, TPM_CMD_PHYSICAL_PRESENCE::PhysicalPresence, and TisTpmCommand().

Referenced by PhysicalPresencePpiNotifyCallback().

EFI_STATUS TpmCommStartup | ( | IN EFI_PEI_SERVICES ** | PeiServices,
 |  | IN TIS_TPM_HANDLE | TpmHandle,
 |  | IN EFI_BOOT_MODE | BootMode
 | ) |  |

Send TPM_Startup command to TPM.

Parameters:
[in] | PeiServices | Describes the list of possible PEI Services.
[in] | TpmHandle | TPM handle.
[in] | BootMode | Boot mode.
Return values:
EFI_SUCCESS | Operation completed successfully.
EFI_TIMEOUT | The register can't run into the expected status in time.
EFI_BUFFER_TOO_SMALL | Response data buffer is too small.
EFI_DEVICE_ERROR | Unexpected device behavior.

References TPM_CMD_START_UP::Hdr, TisTpmCommand(), and TPM_CMD_START_UP::TpmSt.

Referenced by PeimEntryMA().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgSmm/TcgSmm.c File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgSmm/TcgSmm.c File Reference

Functions

EFI_STATUS EFIAPI | PhysicalPresenceCallback (IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)
EFI_STATUS EFIAPI | MemoryClearCallback (IN EFI_HANDLE DispatchHandle, IN CONST VOID *Context, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)
VOID * | AssignOpRegion (EFI_ACPI_DESCRIPTION_HEADER *Table, UINT32 Name, UINT16 Size)
EFI_STATUS | PublishAcpiTable (VOID)
EFI_STATUS EFIAPI | InitializeTcgSmm (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_SMM_VARIABLE_PROTOCOL * | mSmmVariable
TCG_NVS * mTcgNvs

Detailed Description

It updates TPM items in ACPI table and registers SMI callback functions for physical presence and ClearMemory.

Caution: This module requires additional review when modified. This driver will have external input - variable and ACPINvs data in SMM mode. This external input must be validated carefully to avoid security issue.

PhysicalPresenceCallback() and MemoryClearCallback() will receive untrusted input and do some check.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID* AssignOpRegion | ( | EFI_ACPI_DESCRIPTION_HEADER * | Table,
 |  | UINT32 | Name,
 |  | UINT16 | Size
 | ) |  |

Find the operation region in TCG ACPI table by given Name and Size, and initialize it if the region is found.

Parameters:
[in,out] | Table | The TPM item in ACPI table.
[in] | Name | The name string to find in TPM table.
[in] | Size | The size of the region to find.
Returns:
The allocated address for the found region.

References AML_OP_REGION_32_8::BytePrefix, AML_OP_REGION_32_8::DWordPrefix, AML_OP_REGION_32_8::NameString, AML_OP_REGION_32_8::OpRegionOp, AML_OP_REGION_32_8::RegionLen, and AML_OP_REGION_32_8::RegionOffset.

Referenced by PublishAcpiTable().

EFI_STATUS EFIAPI InitializeTcgSmm | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

The driver's entry point.

It install callbacks for TPM physical presence and MemoryClear, and locate SMM variable to be used in the callback function.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS | The entry point is executed successfully.
Others | Some error occurs when executing this entry point.

References TCG_NVS::MemoryClear, MemoryClearCallback(), mSmmVariable, TCG_NVS::PhysicalPresence, PhysicalPresenceCallback(), PublishAcpiTable(), MEMORY_CLEAR_NVS::SoftwareSmi, and PHYSICAL_PRESENCE_NVS::SoftwareSmi.

EFI_STATUS EFIAPI MemoryClearCallback | ( | IN EFI_HANDLE | DispatchHandle,
 |  | IN CONST VOID * | Context,
 |  | IN OUT VOID * | CommBuffer,
 |  | IN OUT UINTN * | CommBufferSize
 | ) |  |

Software SMI callback for MemoryClear which is called from ACPI method.

Caution: This function may receive untrusted input. Variable and ACPINvs are external input, so this function will validate its data structure to be valid value.

Parameters:
[in] | DispatchHandle | The unique handle assigned to this handler by SmiHandlerRegister().
[in] | Context | Points to an optional handler context which was specified when the handler was registered.
[in,out] | CommBuffer | A pointer to a collection of data in memory that will be conveyed from a non-SMM environment into an SMM environment.
[in,out] | CommBufferSize | The size of the CommBuffer.
Return values:
EFI_SUCCESS The interrupt was handled successfully.

References ACPI_FUNCTION_DSM_MEMORY_CLEAR_INTERFACE, ACPI_FUNCTION_PTS_CLEAR_MOR_BIT, TCG_NVS::MemoryClear, MOR_REQUEST_GENERAL_FAILURE, MOR_REQUEST_SUCCESS, mSmmVariable, MEMORY_CLEAR_NVS::Parameter, MEMORY_CLEAR_NVS::Request, and MEMORY_CLEAR_NVS::ReturnCode.

Referenced by InitializeTcgSmm().

EFI_STATUS EFIAPI PhysicalPresenceCallback | ( | IN EFI_HANDLE | DispatchHandle,
 |  | IN CONST VOID * | Context,
 |  | IN OUT VOID * | CommBuffer,
 |  | IN OUT UINTN * | CommBufferSize
 | ) |  |

Software SMI callback for TPM physical presence which is called from ACPI method.

Caution: This function may receive untrusted input. Variable and ACPINvs are external input, so this function will validate its data structure to be valid value.

Parameters:
[in] | DispatchHandle | The unique handle assigned to this handler by SmiHandlerRegister().
[in] | Context | Points to an optional handler context which was specified when the handler was registered.
[in,out] | CommBuffer | A pointer to a collection of data in memory that will be conveyed from a non-SMM environment into an SMM environment.
[in,out] | CommBufferSize | The size of the CommBuffer.
Return values:
EFI_SUCCESS The interrupt was handled successfully.

References ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST, ACPI_FUNCTION_RETURN_REQUEST_RESPONSE_TO_OS, ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS, ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS_2, FLAG_NO_PPI_CLEAR, FLAG_NO_PPI_MAINTENANCE, FLAG_NO_PPI_PROVISION, EFI_PHYSICAL_PRESENCE::Flags, gEfiPhysicalPresenceGuid, EFI_PHYSICAL_PRESENCE::LastPPRequest, PHYSICAL_PRESENCE_NVS::LastRequest, mSmmVariable, PHYSICAL_PRESENCE_NVS::Parameter, PHYSICAL_PRESENCE_ACTIVATE, PHYSICAL_PRESENCE_CLEAR, PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE, PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE, PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE, PHYSICAL_PRESENCE_DISABLE, PHYSICAL_PRESENCE_ENABLE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE, PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE, PHYSICAL_PRESENCE_NO_ACTION, PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE, PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE, PHYSICAL_PRESENCE_SET_OPERATOR_AUTH, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE, PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE, PHYSICAL_PRESENCE_VARIABLE, TCG_NVS::PhysicalPresence, PP_REQUEST_ALLOWED_AND_PPUSER_NOT_REQUIRED, PP_REQUEST_ALLOWED_AND_PPUSER_REQUIRED, PP_REQUEST_NOT_IMPLEMENTED, PP_SUBMIT_REQUEST_GENERAL_FAILURE, PP_SUBMIT_REQUEST_NOT_IMPLEMENTED, PP_SUBMIT_REQUEST_SUCCESS, EFI_PHYSICAL_PRESENCE::PPRequest, EFI_PHYSICAL_PRESENCE::PPResponse, PHYSICAL_PRESENCE_NVS::Request, PHYSICAL_PRESENCE_NVS::Response, PHYSICAL_PRESENCE_NVS::ReturnCode, and TRUE.

Referenced by InitializeTcgSmm().

EFI_STATUS PublishAcpiTable ( VOID )

Initialize and publish TPM items in ACPI table.

Return values:
EFI_SUCCESS | The TCG ACPI table is published successfully.
Others | The TCG ACPI table is not published.

References AssignOpRegion(), and TpmMeasureAndLogData().

Referenced by InitializeTcgSmm().

Variable Documentation

EFI_SMM_VARIABLE_PROTOCOL* mSmmVariable

Referenced by InitializeTcgSmm(), MemoryClearCallback(), PhysicalPresenceCallback(), and SmmVariableReady().

TCG_NVS* mTcgNvs

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgSmm/TcgSmm.h File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgSmm/TcgSmm.h File Reference

Data Structures

struct | PHYSICAL_PRESENCE_NVS
struct | MEMORY_CLEAR_NVS
struct | TCG_NVS
struct | AML_OP_REGION_32_8

Defines

#define | ACPI_FUNCTION_GET_PHYSICAL_PRESENCE_INTERFACE_VERSION 1
#define | ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS 2
#define | ACPI_FUNCTION_GET_PENDING_REQUEST_BY_OS 3
#define | ACPI_FUNCTION_GET_PLATFORM_ACTION_TO_TRANSITION_TO_BIOS 4
#define | ACPI_FUNCTION_RETURN_REQUEST_RESPONSE_TO_OS 5
#define | ACPI_FUNCTION_SUBMIT_PREFERRED_USER_LANGUAGE 6
#define | ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS_2 7
#define | ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST 8
#define | PP_REQUEST_NOT_IMPLEMENTED 0
#define | PP_REQUEST_BIOS_ONLY 1
#define | PP_REQUEST_BLOCKED 2
#define | PP_REQUEST_ALLOWED_AND_PPUSER_REQUIRED 3
#define | PP_REQUEST_ALLOWED_AND_PPUSER_NOT_REQUIRED 4
#define | PP_SUBMIT_REQUEST_SUCCESS 0
#define | PP_SUBMIT_REQUEST_NOT_IMPLEMENTED 1
#define | PP_SUBMIT_REQUEST_GENERAL_FAILURE 2
#define | PP_SUBMIT_REQUEST_BLOCKED_BY_BIOS_SETTINGS 3
#define | ACPI_FUNCTION_DSM_MEMORY_CLEAR_INTERFACE 1
#define | ACPI_FUNCTION_PTS_CLEAR_MOR_BIT 2
#define | MOR_REQUEST_SUCCESS 0
#define | MOR_REQUEST_GENERAL_FAILURE 1

Detailed Description

The header file for TCG SMM driver.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define ACPI_FUNCTION_DSM_MEMORY_CLEAR_INTERFACE 1

Referenced by MemoryClearCallback().

#define ACPI_FUNCTION_GET_PENDING_REQUEST_BY_OS 3

#define ACPI_FUNCTION_GET_PHYSICAL_PRESENCE_INTERFACE_VERSION 1

#define ACPI_FUNCTION_GET_PLATFORM_ACTION_TO_TRANSITION_TO_BIOS 4

#define ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST 8

Referenced by PhysicalPresenceCallback().

#define ACPI_FUNCTION_PTS_CLEAR_MOR_BIT 2

Referenced by MemoryClearCallback().

#define ACPI_FUNCTION_RETURN_REQUEST_RESPONSE_TO_OS 5

Referenced by PhysicalPresenceCallback().

#define ACPI_FUNCTION_SUBMIT_PREFERRED_USER_LANGUAGE 6

#define ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS 2

Referenced by PhysicalPresenceCallback().

#define ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS_2 7

Referenced by PhysicalPresenceCallback().

#define MOR_REQUEST_GENERAL_FAILURE 1

Referenced by MemoryClearCallback().

#define MOR_REQUEST_SUCCESS 0

Referenced by MemoryClearCallback().

#define PP_REQUEST_ALLOWED_AND_PPUSER_NOT_REQUIRED 4

Referenced by PhysicalPresenceCallback().

#define PP_REQUEST_ALLOWED_AND_PPUSER_REQUIRED 3

Referenced by PhysicalPresenceCallback().

#define PP_REQUEST_BIOS_ONLY 1

#define PP_REQUEST_BLOCKED 2

#define PP_REQUEST_NOT_IMPLEMENTED 0

Referenced by PhysicalPresenceCallback().

#define PP_SUBMIT_REQUEST_BLOCKED_BY_BIOS_SETTINGS 3

#define PP_SUBMIT_REQUEST_GENERAL_FAILURE 2

Referenced by PhysicalPresenceCallback().

#define PP_SUBMIT_REQUEST_NOT_IMPLEMENTED 1

Referenced by PhysicalPresenceCallback().

#define PP_SUBMIT_REQUEST_SUCCESS 0

Referenced by PhysicalPresenceCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgSmm/Tpm.asl File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgSmm/Tpm.asl File Reference

Functions

DefinitionBlock ("Tpm.aml","SSDT", 1,"Intel_","TcgTable", 0x1000)

Detailed Description

The TPM definition block in ACPI table for physical presence and MemoryClear.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

DefinitionBlock | ( | "Tpm.aml" | ,
 |  | "SSDT" | ,
 |  | 1 | ,
 |  | "Intel_" | ,
 |  | "TcgTable" | ,
 |  | 0x1000 |
 | ) |  |

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.c File Reference

Functions

CHAR16 * | GetStringById (IN EFI_STRING_ID Id)
VOID | ExpandTableSize (VOID)
EFI_STATUS | ModifyTable (IN UINTN Index, IN PASSWORD_INFO *Info)
EFI_STATUS | InitCredentialTable (VOID)
BOOLEAN | GenerateCredential (IN CHAR16 *Password, IN UINTN PasswordSize, OUT UINT8 *Credential)
VOID | GetPassword (IN BOOLEAN FirstPwd, OUT CHAR8 *Credential)
EFI_STATUS | CheckPassword (IN CHAR8 *Password)
EFI_STATUS | FindUserInfoByType (IN EFI_USER_PROFILE_HANDLE User, IN UINT8 InfoType, OUT EFI_USER_INFO **Info)
EFI_STATUS EFIAPI | CredentialDriverCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS EFIAPI | FakeExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | FakeRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS | InitFormBrowser (VOID)
EFI_STATUS EFIAPI | CredentialEnroll (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | CredentialForm (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_GUID *FormSetId, OUT EFI_FORM_ID *FormId)
EFI_STATUS EFIAPI | CredentialTile (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT UINTN *Width, IN OUT UINTN *Height, OUT EFI_HII_HANDLE *Hii, OUT EFI_IMAGE_ID *Image)
EFI_STATUS EFIAPI | CredentialTitle (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_STRING_ID *String)
EFI_STATUS EFIAPI | CredentialUser (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, OUT EFI_USER_INFO_IDENTIFIER *Identifier)
EFI_STATUS EFIAPI | CredentialSelect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialDeselect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This)
EFI_STATUS EFIAPI | CredentialDefault (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialGetInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | CredentialGetNextInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT EFI_USER_INFO_HANDLE *UserInfo)
EFI_STATUS EFIAPI | CredentialDelete (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | PasswordProviderInit (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

CREDENTIAL_TABLE * | mPwdTable = NULL
PWD_PROVIDER_CALLBACK_INFO * | mCallbackInfo = NULL
PASSWORD_CREDENTIAL_INFO * | mPwdInfoHandle = NULL
HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath
EFI_USER_CREDENTIAL2_PROTOCOL | gPwdCredentialProviderDriver

Detailed Description

Password Credential Provider driver implementation.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS CheckPassword ( IN CHAR8 * Password )

Check whether the password can be found on this provider.

Parameters:
[in] Password The password to be found.
Return values:
EFI_SUCCESS | Found password sucessfully.
EFI_NOT_FOUND | Fail to find the password.

References CREDENTIAL_TABLE::Count, CREDENTIAL_LEN, PASSWORD_INFO::Password, CREDENTIAL_TABLE::UserInfo, and CREDENTIAL_TABLE::ValidIndex.

Referenced by CredentialDriverCallback().

EFI_STATUS EFIAPI CredentialDefault | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Return the default logon behavior for this user credential.

This function reports the default login behavior regarding this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, holds whether the credential provider should be used by default to automatically log on the user.
Return values:
EFI_SUCCESS | Default information successfully returned.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialDelete | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete a user on this credential provider.

This function deletes a user on this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle to delete.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user profile does not permit deletion on the user profile handle. Either the user profile cannot delete on any user profile or cannot delete on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support deletion in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be deleted because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

EFI_STATUS EFIAPI CredentialDeselect ( IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * This )

Indicate that user interface interaction has ended for the specified credential.

This function is called when a credential provider is deselected by the user.

Parameters:
[in] This Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
Return values:
EFI_SUCCESS Credential provider successfully deselected.

EFI_STATUS EFIAPI CredentialDriverCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Action | Specifies the type of action taken by the browser.
QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
Type | The type of value for the question.
Value | A pointer to the data being sent to the original exporting driver.
ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved.
EFI_UNSUPPORTED | The specified Action is not supported by the callback.

References CheckPassword(), CREDENTIAL_LEN, GetPassword(), GetStringById(), KEY_GET_PASSWORD, and TRUE.

Referenced by InitFormBrowser().

EFI_STATUS EFIAPI CredentialEnroll | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Enroll a user on a credential provider.

This function enrolls a user on this credential provider. If the user exists on this credential provider, update the user information on this credential provider; otherwise add the user information on credential provider.

Parameters:
[in] | This | Points to this instance of EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile to enroll.
Return values:
EFI_SUCCESS | User profile was successfully enrolled.
EFI_ACCESS_DENIED | Current user profile does not permit enrollment on the user profile handle. Either the user profile cannot enroll on any user profile or cannot enroll on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support enrollment in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be created because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

EFI_STATUS EFIAPI CredentialForm | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_GUID * | FormSetId,
 |  | OUT EFI_FORM_ID * | FormId
 | ) |  |

Returns the user interface information used during user identification.

This function returns information about the form used when interacting with the user during user identification. The form is the first enabled form in the form-set class EFI_HII_USER_CREDENTIAL_FORMSET_GUID installed on the HII handle HiiHandle. If the user credential provider does not require a form to identify the user, then this function should return EFI_NOT_FOUND.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | FormSetId | On return, holds the identifier of the form set which contains the form used during user identification.
[out] | FormId | On return, holds the identifier of the form used during user identification.
Return values:
EFI_SUCCESS | Form returned successfully.
EFI_NOT_FOUND | Form not returned.
EFI_INVALID_PARAMETER | Hii is NULL or FormSetId is NULL or FormId is NULL.

EFI_STATUS EFIAPI CredentialGetInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

Return information attached to the credential provider.

This function returns user information.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | UserInfo | Handle of the user information data record.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_BUFFER_TOO_SMALL | The size specified by InfoSize is too small to hold all of the user information. The size required is returned in *InfoSize.
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL.
EFI_NOT_FOUND | The specified UserInfo does not refer to a valid user info handle.

EFI_STATUS EFIAPI CredentialGetNextInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Enumerate all of the user informations on the credential provider.

This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | UserInfo | On entry, points to the previous user information handle or NULL to start enumeration. On exit, points to the next user information handle or NULL if there is no more user information.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
EFI_INVALID_PARAMETER | UserInfo is NULL.

EFI_STATUS EFIAPI CredentialSelect | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Indicate that user interface interaction has begun for the specified credential.

This function is called when a credential provider is selected by the user. If AutoLogon returns FALSE, then the user interface will be constructed by the User Identity Manager.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, points to the credential provider's capabilities after the credential provider has been selected by the user.
Return values:
EFI_SUCCESS | Credential provider successfully selected.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialTile | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT UINTN * | Width,
 |  | IN OUT UINTN * | Height,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_IMAGE_ID * | Image
 | ) |  |

Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap that is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.

EFI_STATUS EFIAPI CredentialTitle | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_STRING_ID * | String
 | ) |  |

Returns string used to describe the credential provider type.

This function returns a string which describes the credential provider. If no such string exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | String | On return, holds the HII string identifier.
Return values:
EFI_SUCCESS | String identifier returned successfully.
EFI_NOT_FOUND | String identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or String is NULL.

EFI_STATUS EFIAPI CredentialUser | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | OUT EFI_USER_INFO_IDENTIFIER * | Identifier
 | ) |  |

Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form, OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database

VOID ExpandTableSize ( VOID )

Expand password table size.

References CREDENTIAL_TABLE::Count, CREDENTIAL_TABLE::MaxCount, PASSWORD_TABLE_INC, CREDENTIAL_TABLE::UserInfo, and CREDENTIAL_TABLE::ValidIndex.

Referenced by ModifyTable().

EFI_STATUS EFIAPI FakeExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Request | A null-terminated Unicode string in <ConfigRequest> format.
Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

Referenced by InitFormBrowser(), and UserProfileManagerInit().

EFI_STATUS EFIAPI FakeRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Configuration | A null-terminated Unicode string in <ConfigResp> format.
Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

Referenced by InitFormBrowser(), and UserProfileManagerInit().

EFI_STATUS FindUserInfoByType | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINT8 | InfoType,
 |  | OUT EFI_USER_INFO ** | Info
 | ) |  |

Find a user infomation record by the information record type.

This function searches all user information records of User from beginning until either the information is found, or there are no more user infomation records. A match occurs when a Info.InfoType field matches the user information record type.

Parameters:
[in] | User | Points to the user profile record to search.
[in] | InfoType | The infomation type to be searched.
[out] | Info | Points to the user info found, the caller is responsible to free.
Return values:
EFI_SUCCESS | Find the user information successfully.
Others | Fail to find the user information.

References TRUE.

Referenced by AddUserSelection(), CheckCurrentUserAccessRight(), CredentialDelete(), CredentialEnroll(), CredentialUser(), FindUserProfileByInfo(), GenerateUserId(), GetIdentifyType(), IdentifyAndTypeUser(), IdentifyOrTypeUser(), IdentifyUser(), ModifyUserInfo(), PublishUserTable(), and UpdateUserInfo().

BOOLEAN GenerateCredential | ( | IN CHAR16 * | Password,
 |  | IN UINTN | PasswordSize,
 |  | OUT UINT8 * | Credential
 | ) |  |

Hash the password to get credential.

Parameters:
[in] | Password | Points to the input password.
[in] | PasswordSize | The size of password, in bytes.
[out] | Credential | Points to the hashed result.
Return values:
TRUE | Hash the password successfully.
FALSE | Failed to hash the password.

Referenced by GetPassword(), and GetToken().

VOID GetPassword | ( | IN BOOLEAN | FirstPwd,
 |  | OUT CHAR8 * | Credential
 | ) |  |

Get password from user input.

Parameters:
[in] | FirstPwd | If True, prompt to input the first password. If False, prompt to input password again.
[out] | Credential | Points to the input password.

References CREDENTIAL_LEN, GenerateCredential(), GetStringById(), and TRUE.

Referenced by CredentialDriverCallback(), and CredentialEnroll().

CHAR16* GetStringById ( IN EFI_STRING_ID Id )

Get string by string id from HII Interface.

Parameters:
[in] Id String ID to get the string from.
Return values:
CHAR16 | * String from ID.
NULL | If error occurs.

Referenced by CallAddUser(), CredentialDriverCallback(), CredentialEnroll(), CredentialGetNextInfo(), CredentialUser(), GetPassword(), and UserProfileManagerCallback().

EFI_STATUS InitCredentialTable ( VOID )

Create a password table.

Return values:
EFI_SUCCESS | Create a password table successfully.
Others | Failed to create a password.

References CREDENTIAL_TABLE::Count, gPwdCredentialProviderGuid, CREDENTIAL_TABLE::MaxCount, PASSWORD_TABLE_INC, CREDENTIAL_TABLE::UserInfo, and CREDENTIAL_TABLE::ValidIndex.

Referenced by PasswordProviderInit(), and UsbProviderInit().

EFI_STATUS InitFormBrowser ( VOID )

This function initialize the data mainly used in form browser.

Return values:
EFI_SUCCESS | Initialize form data successfully.
Others | Fail to Initialize form data.

References PWD_PROVIDER_CALLBACK_INFO::ConfigAccess, CredentialDriverCallback(), PWD_PROVIDER_CALLBACK_INFO::DriverHandle, FakeExtractConfig(), FakeRouteConfig(), gPwdCredentialProviderGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, PWD_PROVIDER_SIGNATURE, PwdCredentialProviderStrings, PwdCredentialProviderVfrBin, and PWD_PROVIDER_CALLBACK_INFO::Signature.

Referenced by PasswordProviderInit(), UsbProviderInit(), and UserIdentifyManagerInit().

EFI_STATUS ModifyTable | ( | IN UINTN | Index,
 |  | IN PASSWORD_INFO * | Info
 | ) |  |

Add, update or delete info in table, and sync with NV variable.

Parameters:
[in] | Index | The index of the password in table. If index is found in table, update the info, else add the into to table.
[in] | Info | The new password info to add into table.If Info is NULL, delete the info by Index.
Return values:
EFI_INVALID_PARAMETER | Info is NULL when save the info.
EFI_SUCCESS | Modify the table successfully.
Others | Failed to modify the table.

References CREDENTIAL_TABLE::Count, ExpandTableSize(), gPwdCredentialProviderGuid, CREDENTIAL_TABLE::MaxCount, and CREDENTIAL_TABLE::UserInfo.

Referenced by CredentialDelete(), and CredentialEnroll().

EFI_STATUS EFIAPI PasswordProviderInit | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Main entry for this driver.

Parameters:
ImageHandle | Image handle this driver.
SystemTable | Pointer to SystemTable.
Return values:
EFI_SUCESS This function always complete successfully.

References PWD_PROVIDER_CALLBACK_INFO::DriverHandle, InitCredentialTable(), and InitFormBrowser().

Variable Documentation

EFI_USER_CREDENTIAL2_PROTOCOL gPwdCredentialProviderDriver

Initial value:

 {
  PWD_CREDENTIAL_PROVIDER_GUID,
  EFI_USER_CREDENTIAL_CLASS_PASSWORD,
  CredentialEnroll,
  CredentialForm,
  CredentialTile,
  CredentialTitle,
  CredentialUser,
  CredentialSelect,
  CredentialDeselect,
  CredentialDefault,
  CredentialGetInfo,
  CredentialGetNextInfo,
  EFI_CREDENTIAL_CAPABILITIES_ENROLL,
  CredentialDelete
}

PWD_PROVIDER_CALLBACK_INFO* mCallbackInfo = NULL

Referenced by AddDevicePath(), DisplayLoadForbid(), DisplayLoadPermit(), GetUserName(), ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), ModifyUserName(), ResolveCount(), ResolveDate(), ResolveIdentityPolicy(), SelectUserToDelete(), and SelectUserToModify().

HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath

Initial value:

 {
  {
    {
      HARDWARE_DEVICE_PATH,
      HW_VENDOR_DP,
      {
        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
      }
    },
    PWD_CREDENTIAL_PROVIDER_GUID
  },
  {
    END_DEVICE_PATH_TYPE,
    END_ENTIRE_DEVICE_PATH_SUBTYPE,
    {
      (UINT8) (END_DEVICE_PATH_LENGTH),
      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
    }
  }
}

PASSWORD_CREDENTIAL_INFO* mPwdInfoHandle = NULL

CREDENTIAL_TABLE* mPwdTable = NULL

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProvider.h File Reference

Data Structures

struct | PASSWORD_INFO
struct | CREDENTIAL_TABLE
struct | PASSWORD_CREDENTIAL_INFO
struct | HII_VENDOR_DEVICE_PATH
struct | PWD_PROVIDER_CALLBACK_INFO

Defines

#define | PASSWORD_TABLE_INC 16
#define | CREDENTIAL_LEN 20
#define | PWD_PROVIDER_SIGNATURE SIGNATURE_32 ('P', 'W', 'D', 'P')

Functions

EFI_STATUS EFIAPI | CredentialEnroll (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | CredentialForm (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_GUID *FormSetId, OUT EFI_FORM_ID *FormId)
EFI_STATUS EFIAPI | CredentialTile (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT UINTN *Width, IN OUT UINTN *Height, OUT EFI_HII_HANDLE *Hii, OUT EFI_IMAGE_ID *Image)
EFI_STATUS EFIAPI | CredentialTitle (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_STRING_ID *String)
EFI_STATUS EFIAPI | CredentialUser (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, OUT EFI_USER_INFO_IDENTIFIER *Identifier)
EFI_STATUS EFIAPI | CredentialSelect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialDeselect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This)
EFI_STATUS EFIAPI | CredentialDefault (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialGetInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | CredentialGetNextInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT EFI_USER_INFO_HANDLE *UserInfo)
EFI_STATUS EFIAPI | CredentialDelete (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)

Variables

UINT8 | PwdCredentialProviderStrings []
UINT8 | PwdCredentialProviderVfrBin []

Detailed Description

Password Credential Provider driver header file.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define CREDENTIAL_LEN 20

Referenced by CheckPassword(), CredentialDriverCallback(), CredentialEnroll(), CredentialUser(), and GetPassword().

#define PASSWORD_TABLE_INC 16

Referenced by ExpandTableSize(), and InitCredentialTable().

#define PWD_PROVIDER_SIGNATURE SIGNATURE_32 ('P', 'W', 'D', 'P')

Referenced by InitFormBrowser().

Function Documentation

EFI_STATUS EFIAPI CredentialDefault | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Return the default logon behavior for this user credential.

This function reports the default login behavior regarding this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, holds whether the credential provider should be used by default to automatically log on the user.
Return values:
EFI_SUCCESS | Default information successfully returned.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialDelete | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete a user on this credential provider.

This function deletes a user on this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle to delete.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user profile does not permit deletion on the user profile handle. Either the user profile cannot delete on any user profile or cannot delete on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support deletion in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be deleted because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

EFI_STATUS EFIAPI CredentialDeselect ( IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * This )

Indicate that user interface interaction has ended for the specified credential.

This function is called when a credential provider is deselected by the user.

Parameters:
[in] This Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
Return values:
EFI_SUCCESS Credential provider successfully deselected.

EFI_STATUS EFIAPI CredentialEnroll | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Enroll a user on a credential provider.

This function enrolls a user on this credential provider. If the user exists on this credential provider, update the user information on this credential provider; otherwise delete the user information on credential provider.

Parameters:
[in] | This | Points to this instance of EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile to enroll.
Return values:
EFI_SUCCESS | User profile was successfully enrolled.
EFI_ACCESS_DENIED | Current user profile does not permit enrollment on the user profile handle. Either the user profile cannot enroll on any user profile or cannot enroll on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support enrollment in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be created because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.
Enroll a user on a credential provider.

This function enrolls a user on this credential provider. If the user exists on this credential provider, update the user information on this credential provider; otherwise add the user information on credential provider.

Parameters:
[in] | This | Points to this instance of EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile to enroll.
Return values:
EFI_SUCCESS | User profile was successfully enrolled.
EFI_ACCESS_DENIED | Current user profile does not permit enrollment on the user profile handle. Either the user profile cannot enroll on any user profile or cannot enroll on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support enrollment in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be created because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

EFI_STATUS EFIAPI CredentialForm | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_GUID * | FormSetId,
 |  | OUT EFI_FORM_ID * | FormId
 | ) |  |

Returns the user interface information used during user identification.

This function returns information about the form used when interacting with the user during user identification. The form is the first enabled form in the form-set class EFI_HII_USER_CREDENTIAL_FORMSET_GUID installed on the HII handle HiiHandle. If the user credential provider does not require a form to identify the user, then this function should return EFI_NOT_FOUND.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | FormSetId | On return, holds the identifier of the form set which contains the form used during user identification.
[out] | FormId | On return, holds the identifier of the form used during user identification.
Return values:
EFI_SUCCESS | Form returned successfully.
EFI_NOT_FOUND | Form not returned.
EFI_INVALID_PARAMETER | Hii is NULL or FormSetId is NULL or FormId is NULL.

EFI_STATUS EFIAPI CredentialGetInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

Return information attached to the credential provider.

This function returns user information.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | UserInfo | Handle of the user information data record.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_BUFFER_TOO_SMALL | The size specified by InfoSize is too small to hold all of the user information. The size required is returned in *InfoSize.
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL.
EFI_NOT_FOUND | The specified UserInfo does not refer to a valid user info handle.

EFI_STATUS EFIAPI CredentialGetNextInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Enumerate all of the user informations on the credential provider.

This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | UserInfo | On entry, points to the previous user information handle or NULL to start enumeration. On exit, points to the next user information handle or NULL if there is no more user information.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
EFI_INVALID_PARAMETER | UserInfo is NULL.

EFI_STATUS EFIAPI CredentialSelect | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Indicate that user interface interaction has begun for the specified credential.

This function is called when a credential provider is selected by the user. If AutoLogon returns FALSE, then the user interface will be constructed by the User Identity Manager.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, points to the credential provider's capabilities after the credential provider has been selected by the user.
Return values:
EFI_SUCCESS | Credential provider successfully selected.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialTile | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT UINTN * | Width,
 |  | IN OUT UINTN * | Height,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_IMAGE_ID * | Image
 | ) |  |

Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap which is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.
Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap that is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.
Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap which is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned.
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.

EFI_STATUS EFIAPI CredentialTitle | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_STRING_ID * | String
 | ) |  |

Returns string used to describe the credential provider type.

This function returns a string which describes the credential provider. If no such string exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | String | On return, holds the HII string identifier.
Return values:
EFI_SUCCESS | String identifier returned successfully.
EFI_NOT_FOUND | String identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or String is NULL.

EFI_STATUS EFIAPI CredentialUser | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | OUT EFI_USER_INFO_IDENTIFIER * | Identifier
 | ) |  |

Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database
Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form, OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database
Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database.

Variable Documentation

UINT8 PwdCredentialProviderStrings[]

Referenced by InitFormBrowser().

UINT8 PwdCredentialProviderVfrBin[]

Referenced by InitFormBrowser().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderData.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderData.h File Reference

Defines

#define | FORMID_GET_PASSWORD_FORM 1
#define | KEY_GET_PASSWORD 0x1000

Detailed Description

Data structure used by the Password Credential Provider driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define FORMID_GET_PASSWORD_FORM 1

Referenced by CredentialForm().

#define KEY_GET_PASSWORD 0x1000

Referenced by CredentialDriverCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderVfr.Vfr File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderVfr.Vfr File Reference

Variables

formset | guid = PWD_CREDENTIAL_PROVIDER_GUID
formset | title = STRING_TOKEN(STR_CREDENTIAL_TITLE)
formset | help = STRING_TOKEN(STR_NULL_STRING)
formset | classguid = PWD_CREDENTIAL_PROVIDER_GUID
formset form | formid = FORMID_GET_PASSWORD_FORM
text | text = STRING_TOKEN(STR_INPUT_PASSWORD)
text | flags = INTERACTIVE
text | key = KEY_GET_PASSWORD
endform
endformset

Detailed Description

Password Credential Provider formset.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Variable Documentation

formset classguid = PWD_CREDENTIAL_PROVIDER_GUID

endform

endformset

text flags = INTERACTIVE

formset form formid = FORMID_GET_PASSWORD_FORM

formset guid = PWD_CREDENTIAL_PROVIDER_GUID

text help = STRING_TOKEN(STR_NULL_STRING)

text key = KEY_GET_PASSWORD

text text = STRING_TOKEN(STR_INPUT_PASSWORD)

formset form title = STRING_TOKEN(STR_CREDENTIAL_TITLE)

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.c File Reference

Functions

CHAR16 * | GetStringById (IN EFI_STRING_ID Id)
VOID | ExpandTableSize (VOID)
EFI_STATUS | ModifyTable (IN UINTN Index, IN USB_INFO *Info)
EFI_STATUS | InitCredentialTable (VOID)
EFI_STATUS | GetFileData (IN CHAR16 *FileName, OUT VOID **Buffer, OUT UINTN *BufferSize)
BOOLEAN | GenerateCredential (IN UINT8 *Buffer, IN UINTN BufferSize, OUT UINT8 *Credential)
EFI_STATUS | GetToken (OUT UINT8 *Token)
EFI_STATUS | FindUserInfoByType (IN EFI_USER_PROFILE_HANDLE User, IN UINT8 InfoType, OUT EFI_USER_INFO **Info)
EFI_STATUS | InitFormBrowser (VOID)
EFI_STATUS EFIAPI | CredentialEnroll (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | CredentialForm (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_GUID *FormSetId, OUT EFI_FORM_ID *FormId)
EFI_STATUS EFIAPI | CredentialTile (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT UINTN *Width, IN OUT UINTN *Height, OUT EFI_HII_HANDLE *Hii, OUT EFI_IMAGE_ID *Image)
EFI_STATUS EFIAPI | CredentialTitle (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_STRING_ID *String)
EFI_STATUS EFIAPI | CredentialUser (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, OUT EFI_USER_INFO_IDENTIFIER *Identifier)
EFI_STATUS EFIAPI | CredentialSelect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialDeselect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This)
EFI_STATUS EFIAPI | CredentialDefault (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialGetInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | CredentialGetNextInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT EFI_USER_INFO_HANDLE *UserInfo)
EFI_STATUS EFIAPI | CredentialDelete (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | UsbProviderInit (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

CREDENTIAL_TABLE * | mUsbTable = NULL
USB_PROVIDER_CALLBACK_INFO * | mCallbackInfo = NULL
USB_CREDENTIAL_INFO * | mUsbInfoHandle = NULL
EFI_USER_CREDENTIAL2_PROTOCOL | gUsbCredentialProviderDriver

Detailed Description

Usb Credential Provider driver implemenetation.

Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI CredentialDefault | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Return the default logon behavior for this user credential.

This function reports the default login behavior regarding this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, holds whether the credential provider should be used by default to automatically log on the user.
Return values:
EFI_SUCCESS | Default information successfully returned.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialDelete | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete a user on this credential provider.

This function deletes a user on this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle to delete.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user profile does not permit deletion on the user profile handle. Either the user profile cannot delete on any user profile or cannot delete on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support deletion in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be deleted because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

References CREDENTIAL_TABLE::Count, FindUserInfoByType(), ModifyTable(), PASSWORD_INFO::UserId, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS EFIAPI CredentialDeselect ( IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * This )

Indicate that user interface interaction has ended for the specified credential.

This function is called when a credential provider is deselected by the user.

Parameters:
[in] This Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
Return values:
EFI_SUCCESS Credential provider successfully deselected.

EFI_STATUS EFIAPI CredentialEnroll | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Enroll a user on a credential provider.

This function enrolls a user on this credential provider. If the user exists on this credential provider, update the user information on this credential provider; otherwise add the user information on credential provider.

Parameters:
[in] | This | Points to this instance of EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile to enroll.
Return values:
EFI_SUCCESS | User profile was successfully enrolled.
EFI_ACCESS_DENIED | Current user profile does not permit enrollment on the user profile handle. Either the user profile cannot enroll on any user profile or cannot enroll on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support enrollment in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be created because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

References CREDENTIAL_TABLE::Count, CREDENTIAL_LEN, FindUserInfoByType(), GetPassword(), GetStringById(), GetToken(), ModifyTable(), PASSWORD_INFO::Password, USB_INFO::Token, TRUE, USB_INFO::UserId, PASSWORD_INFO::UserId, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS EFIAPI CredentialForm | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_GUID * | FormSetId,
 |  | OUT EFI_FORM_ID * | FormId
 | ) |  |

Returns the user interface information used during user identification.

This function returns information about the form used when interacting with the user during user identification. The form is the first enabled form in the form-set class EFI_HII_USER_CREDENTIAL_FORMSET_GUID installed on the HII handle HiiHandle. If the user credential provider does not require a form to identify the user, then this function should return EFI_NOT_FOUND.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | FormSetId | On return, holds the identifier of the form set which contains the form used during user identification.
[out] | FormId | On return, holds the identifier of the form used during user identification.
Return values:
EFI_SUCCESS | Form returned successfully.
EFI_NOT_FOUND | Form not returned.
EFI_INVALID_PARAMETER | Hii is NULL or FormSetId is NULL or FormId is NULL.

References FORMID_GET_PASSWORD_FORM, gPwdCredentialProviderGuid, and PWD_PROVIDER_CALLBACK_INFO::HiiHandle.

EFI_STATUS EFIAPI CredentialGetInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

Return information attached to the credential provider.

This function returns user information.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | UserInfo | Handle of the user information data record.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_BUFFER_TOO_SMALL | The size specified by InfoSize is too small to hold all of the user information. The size required is returned in *InfoSize.
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL.
EFI_NOT_FOUND | The specified UserInfo does not refer to a valid user info handle.

References USB_CREDENTIAL_INFO::Count, PASSWORD_CREDENTIAL_INFO::Count, USB_CREDENTIAL_INFO::Info, and PASSWORD_CREDENTIAL_INFO::Info.

EFI_STATUS EFIAPI CredentialGetNextInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Enumerate all of the user informations on the credential provider.

This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | UserInfo | On entry, points to the previous user information handle or NULL to start enumeration. On exit, points to the next user information handle or NULL if there is no more user information.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
EFI_INVALID_PARAMETER | UserInfo is NULL.

References USB_CREDENTIAL_INFO::Count, PASSWORD_CREDENTIAL_INFO::Count, GetStringById(), gPwdCredentialProviderGuid, gUsbCredentialProviderGuid, USB_CREDENTIAL_INFO::Info, and PASSWORD_CREDENTIAL_INFO::Info.

EFI_STATUS EFIAPI CredentialSelect | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Indicate that user interface interaction has begun for the specified credential.

This function is called when a credential provider is selected by the user. If AutoLogon returns FALSE, then the user interface will be constructed by the User Identity Manager.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, points to the credential provider's capabilities after the credential provider has been selected by the user.
Return values:
EFI_SUCCESS | Credential provider successfully selected.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialTile | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT UINTN * | Width,
 |  | IN OUT UINTN * | Height,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_IMAGE_ID * | Image
 | ) |  |

Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap which is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned.
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.

EFI_STATUS EFIAPI CredentialTitle | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_STRING_ID * | String
 | ) |  |

Returns string used to describe the credential provider type.

This function returns a string which describes the credential provider. If no such string exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | String | On return, holds the HII string identifier.
Return values:
EFI_SUCCESS | String identifier returned successfully.
EFI_NOT_FOUND | String identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or String is NULL.

References USB_PROVIDER_CALLBACK_INFO::HiiHandle, and PWD_PROVIDER_CALLBACK_INFO::HiiHandle.

EFI_STATUS EFIAPI CredentialUser | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | OUT EFI_USER_INFO_IDENTIFIER * | Identifier
 | ) |  |

Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database.

References CREDENTIAL_TABLE::Count, CREDENTIAL_LEN, FindUserInfoByType(), GetStringById(), GetToken(), HASHED_CREDENTIAL_LEN, PASSWORD_INFO::Password, PASSWORD_INFO::UserId, CREDENTIAL_TABLE::UserInfo, and CREDENTIAL_TABLE::ValidIndex.

VOID ExpandTableSize ( VOID )

Expand password table size.

References CREDENTIAL_TABLE::Count, CREDENTIAL_TABLE::MaxCount, USB_TABLE_INC, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS FindUserInfoByType | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINT8 | InfoType,
 |  | OUT EFI_USER_INFO ** | Info
 | ) |  |

Find a user infomation record by the information record type.

This function searches all user information records of User from beginning until either the information is found or there are no more user infomation record. A match occurs when a Info.InfoType field matches the user information record type.

Parameters:
[in] | User | Points to the user profile record to search.
[in] | InfoType | The infomation type to be searched.
[out] | Info | Points to the user info found, the caller is responsible to free.
Return values:
EFI_SUCCESS | Find the user information successfully.
Others | Fail to find the user information.

References TRUE.

BOOLEAN GenerateCredential | ( | IN UINT8 * | Buffer,
 |  | IN UINTN | BufferSize,
 |  | OUT UINT8 * | Credential
 | ) |  |

Hash the data to get credential.

Parameters:
[in] | Buffer | Points to the data buffer
[in] | BufferSize | The size of data in buffer, in bytes.
[out] | Credential | Points to the hashed result
Return values:
TRUE | Hash the data successfully.
FALSE | Failed to hash the data.

EFI_STATUS GetFileData | ( | IN CHAR16 * | FileName,
 |  | OUT VOID ** | Buffer,
 |  | OUT UINTN * | BufferSize
 | ) |  |

Read the specified file by FileName in the Usb key and return the file size in BufferSize and file content in Buffer. Note: the caller is responsible to free the buffer memory.

Parameters:
FileName | File to read.
Buffer | Returned with data read from the file.
BufferSize | Size of the data buffer.
Return values:
EFI_SUCCESS | The command completed successfully.
EFI_OUT_OF_RESOURCES | Resource allocation failed.
EFI_NOT_FOUND | File not found.
EFI_DEVICE_ERROR | Device I/O error.

References FileInfo().

Referenced by GetToken().

CHAR16* GetStringById ( IN EFI_STRING_ID Id )

Get string by string id from HII Interface.

Parameters:
[in] Id String ID to get the string from.
Return values:
CHAR16 | * String from ID.
NULL | If error occurs.

References USB_PROVIDER_CALLBACK_INFO::HiiHandle.

EFI_STATUS GetToken ( OUT UINT8 * Token )

Read the token file, and default the Token is saved at the begining of the file.

Parameters:
[out] Token Token read from a Token file.
Return values:
EFI_SUCCESS | Read a Token successfully.
Others | Fails to read a Token.

References GenerateCredential(), and GetFileData().

Referenced by CredentialEnroll(), and CredentialUser().

EFI_STATUS InitCredentialTable ( VOID )

Create a credential table

Return values:
EFI_SUCCESS | Create a credential table successfully.
Others | Failed to create a password.

References CREDENTIAL_TABLE::Count, gUsbCredentialProviderGuid, CREDENTIAL_TABLE::MaxCount, USB_TABLE_INC, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS InitFormBrowser ( VOID )

This function initialize the data mainly used in form browser.

Return values:
EFI_SUCCESS | Initialize form data successfully.
Others | Fail to Initialize form data.

References USB_PROVIDER_CALLBACK_INFO::DriverHandle, gUsbCredentialProviderGuid, USB_PROVIDER_CALLBACK_INFO::HiiHandle, and UsbCredentialProviderStrings.

EFI_STATUS ModifyTable | ( | IN UINTN | Index,
 |  | IN USB_INFO * | Info
 | ) |  |

Add, update or delete info in table, and sync with NV variable.

Parameters:
[in] | Index | The index of the password in table. If index is found in table, update the info, else add the into to table.
[in] | Info | The new credential info to add into table. If Info is NULL, delete the info by Index.
Return values:
EFI_INVALID_PARAMETER | Info is NULL when save the info.
EFI_SUCCESS | Modify the table successfully.
Others | Failed to modify the table.

References CREDENTIAL_TABLE::Count, ExpandTableSize(), gUsbCredentialProviderGuid, CREDENTIAL_TABLE::MaxCount, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS EFIAPI UsbProviderInit | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Main entry for this driver.

Parameters:
ImageHandle | Image handle this driver.
SystemTable | Pointer to SystemTable.
Return values:
EFI_SUCESS This function always complete successfully.

References USB_PROVIDER_CALLBACK_INFO::DriverHandle, gUsbCredentialProviderDriver, InitCredentialTable(), and InitFormBrowser().

Variable Documentation

EFI_USER_CREDENTIAL2_PROTOCOL gUsbCredentialProviderDriver

Initial value:

 {
  USB_CREDENTIAL_PROVIDER_GUID,
  EFI_USER_CREDENTIAL_CLASS_SECURE_CARD,
  CredentialEnroll,
  CredentialForm,
  CredentialTile,
  CredentialTitle,
  CredentialUser,
  CredentialSelect,
  CredentialDeselect,
  CredentialDefault,
  CredentialGetInfo,
  CredentialGetNextInfo,
  EFI_CREDENTIAL_CAPABILITIES_ENROLL,
  CredentialDelete
}

Referenced by UsbProviderInit().

USB_PROVIDER_CALLBACK_INFO* mCallbackInfo = NULL

USB_CREDENTIAL_INFO* mUsbInfoHandle = NULL

CREDENTIAL_TABLE* mUsbTable = NULL

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProvider.h File Reference

Data Structures

struct | USB_INFO
struct | CREDENTIAL_TABLE
struct | USB_CREDENTIAL_INFO
struct | USB_PROVIDER_CALLBACK_INFO

Defines

#define | USB_TABLE_INC 16
#define | HASHED_CREDENTIAL_LEN 20
#define | USB_PROVIDER_SIGNATURE SIGNATURE_32 ('U', 'S', 'B', 'P')

Functions

EFI_STATUS EFIAPI | CredentialEnroll (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | CredentialForm (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_GUID *FormSetId, OUT EFI_FORM_ID *FormId)
EFI_STATUS EFIAPI | CredentialTile (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT UINTN *Width, IN OUT UINTN *Height, OUT EFI_HII_HANDLE *Hii, OUT EFI_IMAGE_ID *Image)
EFI_STATUS EFIAPI | CredentialTitle (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_HII_HANDLE *Hii, OUT EFI_STRING_ID *String)
EFI_STATUS EFIAPI | CredentialUser (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, OUT EFI_USER_INFO_IDENTIFIER *Identifier)
EFI_STATUS EFIAPI | CredentialSelect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialDeselect (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This)
EFI_STATUS EFIAPI | CredentialDefault (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, OUT EFI_CREDENTIAL_LOGON_FLAGS *AutoLogon)
EFI_STATUS EFIAPI | CredentialGetInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | CredentialGetNextInfo (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN OUT EFI_USER_INFO_HANDLE *UserInfo)
EFI_STATUS EFIAPI | CredentialDelete (IN CONST EFI_USER_CREDENTIAL2_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)

Variables

UINT8 | UsbCredentialProviderStrings []

Detailed Description

Usb Credential Provider driver header file.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define HASHED_CREDENTIAL_LEN 20

Referenced by CredentialUser().

#define USB_PROVIDER_SIGNATURE SIGNATURE_32 ('U', 'S', 'B', 'P')

#define USB_TABLE_INC 16

Referenced by ExpandTableSize(), and InitCredentialTable().

Function Documentation

EFI_STATUS EFIAPI CredentialDefault | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Return the default logon behavior for this user credential.

This function reports the default login behavior regarding this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, holds whether the credential provider should be used by default to automatically log on the user.
Return values:
EFI_SUCCESS | Default information successfully returned.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialDelete | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete a user on this credential provider.

This function deletes a user on this credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle to delete.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user profile does not permit deletion on the user profile handle. Either the user profile cannot delete on any user profile or cannot delete on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support deletion in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be deleted because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

References CREDENTIAL_TABLE::Count, FindUserInfoByType(), ModifyTable(), PASSWORD_INFO::UserId, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS EFIAPI CredentialDeselect ( IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * This )

Indicate that user interface interaction has ended for the specified credential.

This function is called when a credential provider is deselected by the user.

Parameters:
[in] This Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
Return values:
EFI_SUCCESS Credential provider successfully deselected.

EFI_STATUS EFIAPI CredentialEnroll | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Enroll a user on a credential provider.

This function enrolls and deletes a user profile using this credential provider. If a user profile is successfully enrolled, it calls the User Manager Protocol function Notify() to notify the user manager driver that credential information has changed. If an enrolled user does exist, delete the user on the credential provider.

Parameters:
[in] | This | Points to this instance of EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile to enroll.
Return values:
EFI_SUCCESS | User profile was successfully enrolled.
EFI_ACCESS_DENIED | Current user profile does not permit enrollment on the user profile handle. Either the user profile cannot enroll on any user profile or cannot enroll on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support enrollment in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be created because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.
Enroll a user on a credential provider.

This function enrolls a user on this credential provider. If the user exists on this credential provider, update the user information on this credential provider; otherwise add the user information on credential provider.

Parameters:
[in] | This | Points to this instance of EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile to enroll.
Return values:
EFI_SUCCESS | User profile was successfully enrolled.
EFI_ACCESS_DENIED | Current user profile does not permit enrollment on the user profile handle. Either the user profile cannot enroll on any user profile or cannot enroll on a user profile other than the current user profile.
EFI_UNSUPPORTED | This credential provider does not support enrollment in the pre-OS.
EFI_DEVICE_ERROR | The new credential could not be created because of a device error.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile handle.

References CREDENTIAL_TABLE::Count, CREDENTIAL_LEN, FindUserInfoByType(), GetPassword(), GetStringById(), GetToken(), ModifyTable(), PASSWORD_INFO::Password, USB_INFO::Token, TRUE, USB_INFO::UserId, PASSWORD_INFO::UserId, and CREDENTIAL_TABLE::UserInfo.

EFI_STATUS EFIAPI CredentialForm | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_GUID * | FormSetId,
 |  | OUT EFI_FORM_ID * | FormId
 | ) |  |

Returns the user interface information used during user identification.

This function enrolls a user on this credential provider. If the user exists on this credential provider, update the user information on this credential provider; otherwise delete the user information on credential provider.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | FormSetId | On return, holds the identifier of the form set which contains the form used during user identification.
[out] | FormId | On return, holds the identifier of the form used during user identification.
Return values:
EFI_SUCCESS | Form returned successfully.
EFI_NOT_FOUND | Form not returned.
EFI_INVALID_PARAMETER | Hii is NULL or FormSetId is NULL or FormId is NULL.
Returns the user interface information used during user identification.

This function returns information about the form used when interacting with the user during user identification. The form is the first enabled form in the form-set class EFI_HII_USER_CREDENTIAL_FORMSET_GUID installed on the HII handle HiiHandle. If the user credential provider does not require a form to identify the user, then this function should return EFI_NOT_FOUND.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | FormSetId | On return, holds the identifier of the form set which contains the form used during user identification.
[out] | FormId | On return, holds the identifier of the form used during user identification.
Return values:
EFI_SUCCESS | Form returned successfully.
EFI_NOT_FOUND | Form not returned.
EFI_INVALID_PARAMETER | Hii is NULL or FormSetId is NULL or FormId is NULL.

References FORMID_GET_PASSWORD_FORM, gPwdCredentialProviderGuid, and PWD_PROVIDER_CALLBACK_INFO::HiiHandle.

EFI_STATUS EFIAPI CredentialGetInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

Return information attached to the credential provider.

This function returns user information.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | UserInfo | Handle of the user information data record.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_BUFFER_TOO_SMALL | The size specified by InfoSize is too small to hold all of the user information. The size required is returned in *InfoSize.
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL.
EFI_NOT_FOUND | The specified UserInfo does not refer to a valid user info handle.

References USB_CREDENTIAL_INFO::Count, PASSWORD_CREDENTIAL_INFO::Count, USB_CREDENTIAL_INFO::Info, and PASSWORD_CREDENTIAL_INFO::Info.

EFI_STATUS EFIAPI CredentialGetNextInfo | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Enumerate all of the user informations on the credential provider.

This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | UserInfo | On entry, points to the previous user information handle or NULL to start enumeration. On exit, points to the next user information handle or NULL if there is no more user information.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
EFI_INVALID_PARAMETER | UserInfo is NULL.

References USB_CREDENTIAL_INFO::Count, PASSWORD_CREDENTIAL_INFO::Count, GetStringById(), gPwdCredentialProviderGuid, gUsbCredentialProviderGuid, USB_CREDENTIAL_INFO::Info, and PASSWORD_CREDENTIAL_INFO::Info.

EFI_STATUS EFIAPI CredentialSelect | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_CREDENTIAL_LOGON_FLAGS * | AutoLogon
 | ) |  |

Indicate that user interface interaction has begun for the specified credential.

This function is called when a credential provider is selected by the user. If AutoLogon returns FALSE, then the user interface will be constructed by the User Identity Manager.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | AutoLogon | On return, points to the credential provider's capabilities after the credential provider has been selected by the user.
Return values:
EFI_SUCCESS | Credential provider successfully selected.
EFI_INVALID_PARAMETER | AutoLogon is NULL.

EFI_STATUS EFIAPI CredentialTile | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN OUT UINTN * | Width,
 |  | IN OUT UINTN * | Height,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_IMAGE_ID * | Image
 | ) |  |

Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap which is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned.
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.
Returns bitmap used to describe the credential provider type.

This optional function returns a bitmap that is less than or equal to the number of pixels specified by Width and Height. If no such bitmap exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in,out] | Width | On entry, points to the desired bitmap width. If NULL then no bitmap information will be returned. On exit, points to the width of the bitmap returned.
[in,out] | Height | On entry, points to the desired bitmap height. If NULL then no bitmap information will be returned. On exit, points to the height of the bitmap returned
[out] | Hii | On return, holds the HII database handle.
[out] | Image | On return, holds the HII image identifier.
Return values:
EFI_SUCCESS | Image identifier returned successfully.
EFI_NOT_FOUND | Image identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or Image is NULL.

EFI_STATUS EFIAPI CredentialTitle | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | OUT EFI_HII_HANDLE * | Hii,
 |  | OUT EFI_STRING_ID * | String
 | ) |  |

Returns string used to describe the credential provider type.

This function returns a string which describes the credential provider. If no such string exists, then EFI_NOT_FOUND is returned.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[out] | Hii | On return, holds the HII database handle.
[out] | String | On return, holds the HII string identifier.
Return values:
EFI_SUCCESS | String identifier returned successfully.
EFI_NOT_FOUND | String identifier not returned.
EFI_INVALID_PARAMETER | Hii is NULL or String is NULL.

References USB_PROVIDER_CALLBACK_INFO::HiiHandle, and PWD_PROVIDER_CALLBACK_INFO::HiiHandle.

EFI_STATUS EFIAPI CredentialUser | ( | IN CONST EFI_USER_CREDENTIAL2_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | OUT EFI_USER_INFO_IDENTIFIER * | Identifier
 | ) |  |

Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database.
Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form, OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database
Return the user identifier associated with the currently authenticated user.

This function returns the user identifier of the user authenticated by this credential provider. This function is called after the credential-related information has been submitted on a form OR after a call to Default() has returned that this credential is ready to log on.

Parameters:
[in] | This | Points to this instance of the EFI_USER_CREDENTIAL2_PROTOCOL.
[in] | User | The user profile handle of the user profile currently being considered by the user identity manager. If NULL, then no user profile is currently under consideration.
[out] | Identifier | On return, points to the user identifier.
Return values:
EFI_SUCCESS | User identifier returned successfully.
EFI_NOT_READY | No user identifier can be returned.
EFI_ACCESS_DENIED | The user has been locked out of this user credential.
EFI_INVALID_PARAMETER | This is NULL, or Identifier is NULL.
EFI_NOT_FOUND | User is not NULL, and the specified user handle can't be found in user profile database.

References CREDENTIAL_TABLE::Count, CREDENTIAL_LEN, FindUserInfoByType(), GetStringById(), GetToken(), HASHED_CREDENTIAL_LEN, PASSWORD_INFO::Password, PASSWORD_INFO::UserId, CREDENTIAL_TABLE::UserInfo, and CREDENTIAL_TABLE::ValidIndex.

Variable Documentation

UINT8 UsbCredentialProviderStrings[]

Referenced by InitFormBrowser().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserIdentifyManagerDxe/LoadDeferredImage.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserIdentifyManagerDxe/LoadDeferredImage.c File Reference

Functions

VOID EFIAPI | LoadDeferredImage (IN EFI_EVENT Event, IN VOID *Context)
VOID | LoadDeferredImageInit (IN EFI_HANDLE ImageHandle)

Variables

EFI_HANDLE | mDeferredImageHandle

Detailed Description

Load the deferred images after user is identified.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID EFIAPI LoadDeferredImage | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

The function will load all the deferred images again. If the deferred image is loaded successfully, try to start it.

Parameters:
Event | Event whose notification function is being invoked.
Context | Pointer to the notification function's context

References mDeferredImageHandle, and TRUE.

Referenced by LoadDeferredImageInit().

VOID LoadDeferredImageInit ( IN EFI_HANDLE ImageHandle )

Register an event notification function for user profile changed.

Parameters:
[in] ImageHandle Image handle this driver.

References LoadDeferredImage(), and mDeferredImageHandle.

Referenced by UserIdentifyManagerInit().

Variable Documentation

EFI_HANDLE mDeferredImageHandle

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.c File Reference

Functions

EFI_STATUS | FindUserProfile (IN OUT USER_PROFILE_ENTRY **User, IN BOOLEAN NextUser, OUT UINTN *ProfileIndex)
EFI_STATUS | FindUserInfo (IN USER_PROFILE_ENTRY *User, IN OUT EFI_USER_INFO **Info, IN BOOLEAN NextInfo, OUT UINTN *Offset)
EFI_STATUS | FindUserInfoByType (IN USER_PROFILE_ENTRY *User, IN OUT EFI_USER_INFO **Info, IN UINT8 InfoType)
EFI_STATUS | FindUserProfileByInfo (IN OUT USER_PROFILE_ENTRY **User, IN OUT EFI_USER_INFO **UserInfo, IN EFI_USER_INFO *Info, IN UINTN InfoSize)
BOOLEAN | CheckAccessPolicy (IN UINT8 *PolicyInfo, IN UINTN InfoLen)
BOOLEAN | CheckIdentityPolicy (IN UINT8 *PolicyInfo, IN UINTN InfoLen)
BOOLEAN | CheckUserInfo (IN CONST EFI_USER_INFO *Info)
BOOLEAN | CheckProfileInfo (IN UINT8 *UserProfileInfo, IN UINTN UserProfileSize)
BOOLEAN | CheckCurrentUserAccessRight (IN UINT32 RightType)
VOID | GenerateIdentifier (OUT UINT8 *Identifier)
VOID | GenerateUserId (OUT UINT8 *UserId)
BOOLEAN | ExpandUsermUserProfileDb (VOID)
BOOLEAN | ExpandUserProfile (IN USER_PROFILE_ENTRY *User, IN UINTN ExpandSize)
EFI_STATUS | SaveNvUserProfile (IN USER_PROFILE_ENTRY *User, IN BOOLEAN Delete)
EFI_STATUS | AddUserInfo (IN USER_PROFILE_ENTRY *User, IN UINT8 *Info, IN UINTN InfoSize, OUT EFI_USER_INFO **UserInfo, IN BOOLEAN Save)
EFI_STATUS | GetUserInfo (IN USER_PROFILE_ENTRY *User, IN EFI_USER_INFO *UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize, IN BOOLEAN ChkRight)
EFI_STATUS | DelUserInfo (IN USER_PROFILE_ENTRY *User, IN EFI_USER_INFO *Info, IN BOOLEAN Save)
EFI_STATUS | ModifyUserInfo (IN USER_PROFILE_ENTRY *User, IN OUT EFI_USER_INFO **UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS | DelUserProfile (IN USER_PROFILE_ENTRY *User)
EFI_STATUS | AddUserProfile (OUT USER_PROFILE_ENTRY **UserProfile, IN UINTN ProfileSize, IN UINT8 *ProfileInfo, IN BOOLEAN Save)
EFI_STATUS | CreateUserProfile (OUT USER_PROFILE_ENTRY **User)
EFI_STATUS | AddDefaultUserProfile (VOID)
EFI_STATUS | PublishUserTable (VOID)
EFI_STATUS | GetIdentifyType (IN EFI_USER_PROFILE_HANDLE User, OUT UINT8 *PolicyType)
EFI_STATUS | IdentifyByProviderId (IN EFI_USER_PROFILE_HANDLE User, IN EFI_GUID *Provider)
EFI_STATUS | UpdateUserInfo (IN USER_PROFILE_ENTRY *User)
VOID | AddProviderSelection (IN EFI_GUID *ProviderGuid, IN VOID *OpCodeHandle)
EFI_STATUS | AddUserSelection (IN UINT16 Index, IN USER_PROFILE_ENTRY *User, IN VOID *OpCodeHandle)
EFI_STATUS | IdentifyAndTypeUser (IN USER_PROFILE_ENTRY *User)
EFI_STATUS | IdentifyOrTypeUser (IN USER_PROFILE_ENTRY *User)
EFI_STATUS EFIAPI | UserIdentifyManagerCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS | InitUserProfileDb (VOID)
EFI_STATUS | InitProviderInfo (VOID)
EFI_STATUS EFIAPI | FakeExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | FakeRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS | InitFormBrowser (VOID)
EFI_STATUS | IdentifyAutoLogonUser (IN UINTN ProviderIndex, OUT USER_PROFILE_ENTRY **User)
BOOLEAN | CheckConsole (EFI_GUID *ProtocolGuid)
BOOLEAN | IsConsoleReady (VOID)
EFI_STATUS | IdentifyUser (OUT USER_PROFILE_ENTRY **User)
VOID EFIAPI | InternalEmptyFuntion (IN EFI_EVENT Event, IN VOID *Context)
VOID | SignalEventUserProfileChanged (VOID)
EFI_STATUS EFIAPI | UserProfileCreate (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS EFIAPI | UserProfileDelete (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | UserProfileGetNext (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS EFIAPI | UserProfileCurrent (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *CurrentUser)
EFI_STATUS EFIAPI | UserProfileIdentify (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS EFIAPI | UserProfileFind (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User, IN OUT EFI_USER_INFO_HANDLE *UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS EFIAPI | UserProfileGetInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | UserProfileSetInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS EFIAPI | UserProfileNotify (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_HANDLE Changed)
EFI_STATUS EFIAPI | UserProfileDeleteInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo)
EFI_STATUS EFIAPI | UserProfileGetNextInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo)
EFI_STATUS EFIAPI | UserIdentifyManagerInit (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

CHAR16 | mUserName [] = L"Administrator"
USER_PROFILE_DB * | mUserProfileDb = NULL
CREDENTIAL_PROVIDER_INFO * | mProviderDb = NULL
EFI_USER_PROFILE_HANDLE | mCurrentUser = NULL
BOOLEAN | mIdentified = FALSE
USER_MANAGER_CALLBACK_INFO * | mCallbackInfo = NULL
HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath
EFI_USER_MANAGER_PROTOCOL | gUserIdentifyManager

Detailed Description

This driver manages user information and produces user manager protocol.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS AddDefaultUserProfile ( VOID )

Add a default user profile to user profile database.

Return values:
EFI_SUCCESS | A default user profile is added successfully.
Others | Fail to add a default user profile

References CreateUserProfile(), INFO_PAYLOAD_SIZE, ModifyUserInfo(), and mUserName.

Referenced by InitUserProfileDb().

VOID AddProviderSelection | ( | IN EFI_GUID * | ProviderGuid,
 |  | IN VOID * | OpCodeHandle
 | ) |  |

Add a credenetial provider item in form.

Parameters:
[in] | ProviderGuid | Points to the identifir of credential provider.
[in] | OpCodeHandle | Points to container for dynamic created opcodes.

References CREDENTIAL_PROVIDER_INFO::Count, USER_MANAGER_CALLBACK_INFO::HiiHandle, LABEL_PROVIDER_NAME, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by IdentifyOrTypeUser().

EFI_STATUS AddUserInfo | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN UINT8 * | Info,
 |  | IN UINTN | InfoSize,
 |  | OUT EFI_USER_INFO ** | UserInfo,
 |  | IN BOOLEAN | Save
 | ) |  |

Add one new user info into the user's profile.

Parameters:
[in] | User | point to the user profile
[in] | Info | Points to the user information payload.
[in] | InfoSize | The size of the user information payload, in bytes.
[out] | UserInfo | Point to the new info in user profile
[in] | Save | If TRUE, save the profile to NV flash. If FALSE, don't need to save the profile to NV flash.
Return values:
EFI_SUCCESS | Add user info to user profile successfully.
Others | Fail to add user info to user profile.

References ExpandUserProfile(), FindUserProfile(), and SaveNvUserProfile().

Referenced by AddUserProfile(), and ModifyUserInfo().

EFI_STATUS AddUserProfile | ( | OUT USER_PROFILE_ENTRY ** | UserProfile,
 |  | IN UINTN | ProfileSize,
 |  | IN UINT8 * | ProfileInfo,
 |  | IN BOOLEAN | Save
 | ) |  |

Add user profile to user profile database.

Parameters:
[out] | UserProfile | Point to the newly added user profile.
[in] | ProfileSize | The size of the user profile.
[in] | ProfileInfo | Point to the user profie data.
[in] | Save | If TRUE, save the new added profile to NV flash. If FALSE, don't save the profile to NV flash.
Return values:
EFI_SUCCESS | Add user profile to user profile database successfully.
Others | Fail to add user profile to user profile database.

References AddUserInfo(), CheckProfileInfo(), DelUserProfile(), ExpandUsermUserProfileDb(), USER_PROFILE_DB::MaxProfileNum, USER_PROFILE_ENTRY::MaxProfileSize, USER_PROFILE_ENTRY::ProfileInfo, USER_PROFILE_DB::UserProfile, USER_PROFILE_DB::UserProfileNum, USER_PROFILE_ENTRY::UserProfileSize, and USER_PROFILE_ENTRY::UserVarName.

Referenced by CreateUserProfile(), and InitUserProfileDb().

EFI_STATUS AddUserSelection | ( | IN UINT16 | Index,
 |  | IN USER_PROFILE_ENTRY * | User,
 |  | IN VOID * | OpCodeHandle
 | ) |  |

Add a username item in form.

Parameters:
[in] | Index | The index of the user in the user name list.
[in] | User | Points to the user profile whose username is added.
[in] | OpCodeHandle | Points to container for dynamic created opcodes.
Return values:
EFI_SUCCESS | Add a username successfully.
Others | Fail to add a username.

References FindUserInfoByType(), FORMID_PROVIDER_FORM, and USER_MANAGER_CALLBACK_INFO::HiiHandle.

Referenced by UserIdentifyManagerCallback().

BOOLEAN CheckAccessPolicy | ( | IN UINT8 * | PolicyInfo,
 |  | IN UINTN | InfoLen
 | ) |  |

Check whether the access policy is valid.

Parameters:
[in] | PolicyInfo | Point to the access policy.
[in] | InfoLen | The policy length.
Return values:
TRUE | The policy is a valid access policy.
FALSE | The access policy is not a valid access policy.

References TRUE.

Referenced by CheckUserInfo().

BOOLEAN CheckConsole ( EFI_GUID * ProtocolGuid )

Check whether the given console is ready.

Parameters:
[in] ProtocolGuid Points to the protocol guid of sonsole .
Return values:
TRUE | The given console is ready.
FALSE | The given console is not ready.

References TRUE.

Referenced by IsConsoleReady().

BOOLEAN CheckCurrentUserAccessRight ( IN UINT32 RightType )

Find the specified RightType in current user profile.

Parameters:
[in] RightType Could be EFI_USER_INFO_ACCESS_MANAGE, EFI_USER_INFO_ACCESS_ENROLL_OTHERS or EFI_USER_INFO_ACCESS_ENROLL_SELF.
Return values:
TRUE | Find the specified RightType in current user profile.
FALSE | Can't find the right in the profile.

References FindUserInfoByType(), mCurrentUser, and TRUE.

Referenced by UserProfileCreate(), UserProfileDelete(), UserProfileDeleteInfo(), and UserProfileSetInfo().

BOOLEAN CheckIdentityPolicy | ( | IN UINT8 * | PolicyInfo,
 |  | IN UINTN | InfoLen
 | ) |  |

Check whether the identity policy is valid.

Parameters:
[in] | PolicyInfo | Point to the identity policy.
[in] | InfoLen | The policy length.
Return values:
TRUE | The policy is a valid identity policy.
FALSE | The access policy is not a valid identity policy.

References TRUE.

Referenced by CheckUserInfo().

BOOLEAN CheckProfileInfo | ( | IN UINT8 * | UserProfileInfo,
 |  | IN UINTN | UserProfileSize
 | ) |  |

Check the user profile data format to be added.

Parameters:
[in] | UserProfileInfo | Points to the user profile data.
[in] | UserProfileSize | The length of user profile data.
Return values:
TRUE | It is a valid user profile.
FALSE | It is not a valid user profile.

References CheckUserInfo(), and TRUE.

Referenced by AddUserProfile().

BOOLEAN CheckUserInfo ( IN CONST EFI_USER_INFO * Info )

Check whether the user information is a valid user information record.

Parameters:
[in] Info points to the user information.
Return values:
TRUE | The info is a valid user information record.
FALSE | The info is not a valid user information record.

References CheckAccessPolicy(), CheckIdentityPolicy(), and TRUE.

Referenced by CheckProfileInfo(), and ModifyUserInfo().

EFI_STATUS CreateUserProfile ( OUT USER_PROFILE_ENTRY ** User )

This function creates a new user profile with only a new user identifier attached and returns its handle. The user profile is non-volatile, but the handle User can change across reboots.

Parameters:
[out] User Handle of a new user profile.
Return values:
EFI_SUCCESS | User profile was successfully created.
Others | Fail to create user profile

References AddUserProfile(), GenerateUserId(), and TRUE.

Referenced by AddDefaultUserProfile(), and UserProfileCreate().

EFI_STATUS DelUserInfo | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN EFI_USER_INFO * | Info,
 |  | IN BOOLEAN | Save
 | ) |  |

Delete the specified user information from user profile.

Parameters:
[in] | User | Point to the user profile.
[in] | Info | Point to the user information record to delete.
[in] | Save | If TRUE, save the profile to NV flash. If FALSE, don't need to save the profile to NV flash.
Return values:
EFI_SUCCESS | Delete user info from user profile successfully.
Others | Fail to delete user info from user profile.

References FindUserInfo(), and SaveNvUserProfile().

Referenced by ModifyUserInfo(), and UserProfileDeleteInfo().

EFI_STATUS DelUserProfile ( IN USER_PROFILE_ENTRY * User )

Delete the user profile from non-volatile memory and database.

Parameters:
[in] User Points to the user profile.
Return values:
EFI_SUCCESS | Delete user from the user profile successfully.
Others | Fail to delete user from user profile

References FindUserProfile(), mCurrentUser, SaveNvUserProfile(), TRUE, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by AddUserProfile(), and UserProfileDelete().

BOOLEAN ExpandUsermUserProfileDb ( VOID )

Expand user profile database.

Return values:
TRUE | Success to expand user profile database.
FALSE | Fail to expand user profile database.

References USER_PROFILE_DB::MaxProfileNum, TRUE, USER_NUMBER_INC, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by AddUserProfile(), and InitUserProfileDb().

BOOLEAN ExpandUserProfile | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN UINTN | ExpandSize
 | ) |  |

Expand user profile

Parameters:
[in] | User | Points to user profile.
[in] | ExpandSize | The size of user profile.
Return values:
TRUE | Success to expand user profile size.
FALSE | Fail to expand user profile size.

References TRUE.

Referenced by AddUserInfo().

EFI_STATUS EFIAPI FakeExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Request | A null-terminated Unicode string in <ConfigRequest> format.
Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

EFI_STATUS EFIAPI FakeRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Configuration | A null-terminated Unicode string in <ConfigResp> format.
Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

EFI_STATUS FindUserInfo | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN OUT EFI_USER_INFO ** | Info,
 |  | IN BOOLEAN | NextInfo,
 |  | OUT UINTN * | Offset
 | ) |  |

Find the specified user information record in the specified User profile.

This function searches the specified user information record from the beginning of the user profile. And if NextInfo is TRUE, return the next info in the user profile.

Parameters:
[in] | User | Points to the user profile entry.
[in,out] | Info | On entry, points to the user information record or NULL to start searching with the first user information record. On return, points to the user information record or NULL if not found.
[in] | NextInfo | If FALSE, find the user information record in profile specifyed by User. If TRUE, find the next user information record in profile specifyed by User.
[out] | Offset | A pointer to the offset of the information record in the user profile.
Return values:
EFI_INVALID_PARAMETER | Info is NULL
EFI_NOT_FOUND | Info was not found, or the next Info was not found.
EFI_SUCCESS | Info or the next info are found in user profile.

References FindUserProfile().

Referenced by DelUserInfo(), FindUserInfoByType(), GetUserInfo(), and UserProfileGetNextInfo().

EFI_STATUS FindUserInfoByType | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN OUT EFI_USER_INFO ** | Info,
 |  | IN UINT8 | InfoType
 | ) |  |

Find a user infomation record by the information record type.

This function searches all user information records of User. The search starts with the user information record following Info and continues until either the information is found or there are no more user infomation record. A match occurs when a Info.InfoType field matches the user information record type.

Parameters:
[in] | User | Points to the user profile record to search.
[in,out] | Info | On entry, points to the user information record or NULL to start searching with the first user information record. On return, points to the user information record or NULL if not found.
[in] | InfoType | The infomation type to be searched.
Return values:
EFI_SUCCESS | User information was found. Info points to the user information record.
EFI_NOT_FOUND | User information was not found.
EFI_INVALID_PARAMETER | User is NULL or Info is NULL.

References FindUserInfo(), FindUserProfile(), and TRUE.

EFI_STATUS FindUserProfile | ( | IN OUT USER_PROFILE_ENTRY ** | User,
 |  | IN BOOLEAN | NextUser,
 |  | OUT UINTN * | ProfileIndex
 | ) |  |

Find the specified user in the user database.

This function searches the specified user from the beginning of the user database. And if NextUser is TRUE, return the next User in the user database.

Parameters:
[in,out] | User | On entry, points to the user profile entry to search. On return, points to the user profile entry or NULL if not found.
[in] | NextUser | If FALSE, find the user in user profile database specifyed by User If TRUE, find the next user in user profile database specifyed by User.
[out] | ProfileIndex | A pointer to the index of user profile database that matches the user specifyed by User.
Return values:
EFI_NOT_FOUND | User was NULL, or User was not found, or the next user was not found.
EFI_SUCCESS | User or the next user are found in user profile database

References USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by AddUserInfo(), DelUserProfile(), FindUserInfo(), FindUserInfoByType(), FindUserProfileByInfo(), SaveNvUserProfile(), and UserProfileGetNext().

EFI_STATUS FindUserProfileByInfo | ( | IN OUT USER_PROFILE_ENTRY ** | User,
 |  | IN OUT EFI_USER_INFO ** | UserInfo,
 |  | IN EFI_USER_INFO * | Info,
 |  | IN UINTN | InfoSize
 | ) |  |

Find a user using a user information record.

This function searches all user profiles for the specified user information record. The search starts with the user information record handle following UserInfo and continues until either the information is found or there are no more user profiles. A match occurs when the Info.InfoType field matches the user information record type and the user information record data matches the portion of Info passed the EFI_USER_INFO header.

Parameters:
[in,out] | User | On entry, points to the previously returned user profile record, or NULL to start searching with the first user profile. On return, points to the user profile entry, or NULL if not found.
[in,out] | UserInfo | On entry, points to the previously returned user information record, or NULL to start searching with the first. On return, points to the user information record, or NULL if not found.
[in] | Info | Points to the buffer containing the user information to be compared to the user information record.
[in] | InfoSize | The size of Info, in bytes. Same as Info->InfoSize.
Return values:
EFI_SUCCESS | User information was found. User points to the user profile record, and UserInfo points to the user information record.
EFI_NOT_FOUND | User information was not found.
EFI_INVALID_PARAMETER | User is NULL; Info is NULL; or, InfoSize is too small.

References FindUserInfoByType(), FindUserProfile(), TRUE, and USER_PROFILE_DB::UserProfile.

Referenced by IdentifyAutoLogonUser(), and UserProfileFind().

VOID GenerateIdentifier ( OUT UINT8 * Identifier )

Create a unique user identifier.

Parameters:
[out] Identifier This points to the identifier.

Referenced by GenerateUserId().

VOID GenerateUserId ( OUT UINT8 * UserId )

Generate unique user ID.

Parameters:
[out] UserId Points to the user identifer.

References FindUserInfoByType(), GenerateIdentifier(), TRUE, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by CreateUserProfile().

EFI_STATUS GetIdentifyType | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | OUT UINT8 * | PolicyType
 | ) |  |

Get the user's identity type.

The identify manager only supports the identity policy in which the credential provider handles are connected by the operator 'AND' or 'OR'.

Parameters:
[in] | User | Handle of a user profile.
[out] | PolicyType | Point to the identity type.
Return values:
EFI_SUCCESS | Get user's identity type successfully.
Others | Fail to get user's identity type.

References FindUserInfoByType().

Referenced by IdentifyAutoLogonUser(), and UserIdentifyManagerCallback().

EFI_STATUS GetUserInfo | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN EFI_USER_INFO * | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize,
 |  | IN BOOLEAN | ChkRight
 | ) |  |

Get the user info from the specified user info handle.

Parameters:
[in] | User | Point to the user profile.
[in] | UserInfo | Point to the user information record to get.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
[in] | ChkRight | If TRUE, check the user info attribute. If FALSE, don't check the user info attribute.
Return values:
EFI_ACCESS_DENIED | The information cannot be accessed by the current user.
EFI_INVALID_PARAMETER | InfoSize is NULL or UserInfo is NULL.
EFI_BUFFER_TOO_SMALL | The number of bytes specified by *InfoSize is too small to hold the returned data. The actual size required is returned in *InfoSize.
EFI_SUCCESS | Information returned successfully.

References FindUserInfo(), and mCurrentUser.

Referenced by UserProfileGetInfo().

EFI_STATUS IdentifyAndTypeUser ( IN USER_PROFILE_ENTRY * User )

Identify the user whose identity policy does not contain the operator 'OR'.

Parameters:
[in] User Points to the user profile.
Return values:
EFI_SUCCESS | The specified user is identified successfully.
Others | Fail to identify the user.

References FindUserInfoByType(), IdentifyByProviderId(), and TRUE.

Referenced by UserIdentifyManagerCallback().

EFI_STATUS IdentifyAutoLogonUser | ( | IN UINTN | ProviderIndex,
 |  | OUT USER_PROFILE_ENTRY ** | User
 | ) |  |

Identify the user whose identification policy supports auto logon.

Parameters:
[in] | ProviderIndex | The provider index in the provider list.
[out] | User | Points to user user profile if a user is identified successfully.
Return values:
EFI_SUCCESS | Identify a user with the specified provider successfully.
Others | Fail to identify a user.

References FindUserProfileByInfo(), GetIdentifyType(), and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by IdentifyUser().

EFI_STATUS IdentifyByProviderId | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN EFI_GUID * | Provider
 | ) |  |

Identify the User by the specfied provider.

Parameters:
[in] | User | Handle of a user profile.
[in] | Provider | Points to the identifier of credential provider.
Return values:
EFI_INVALID_PARAMETER | Provider is NULL.
EFI_NOT_FOUND | Fail to identify the specified user.
EFI_SUCCESS | User is identified successfully.

References CREDENTIAL_PROVIDER_INFO::Count, USER_MANAGER_CALLBACK_INFO::FormBrowser2, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by IdentifyAndTypeUser(), and UserIdentifyManagerCallback().

EFI_STATUS IdentifyOrTypeUser ( IN USER_PROFILE_ENTRY * User )

Identify the user whose identity policy does not contain the operator 'AND'.

Parameters:
[in] User Points to the user profile.
Return values:
EFI_SUCCESS | The specified user is identified successfully.
Others | Fail to identify the user.

References AddProviderSelection(), FindUserInfoByType(), FORMID_PROVIDER_FORM, gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiHandle, LABEL_END, and LABEL_PROVIDER_NAME.

Referenced by UserIdentifyManagerCallback().

EFI_STATUS IdentifyUser ( OUT USER_PROFILE_ENTRY ** User )

Identify a user to logon.

Parameters:
[out] User Points to user user profile if a user is identified successfully.
Return values:
EFI_SUCCESS Identify a user successfully.

References CREDENTIAL_PROVIDER_INFO::Count, FindUserInfoByType(), USER_MANAGER_CALLBACK_INFO::FormBrowser2, gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiHandle, IdentifyAutoLogonUser(), InitProviderInfo(), InitUserProfileDb(), IsConsoleReady(), mCurrentUser, mIdentified, CREDENTIAL_PROVIDER_INFO::Provider, UpdateUserInfo(), USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by UserProfileIdentify().

EFI_STATUS InitFormBrowser ( VOID )

This function initialize the data mainly used in form browser.

Return values:
EFI_SUCCESS | Initialize form data successfully.
Others | Fail to Initialize form data.

References USER_MANAGER_CALLBACK_INFO::ConfigAccess, USER_MANAGER_CALLBACK_INFO::DriverHandle, FakeExtractConfig(), FakeRouteConfig(), USER_MANAGER_CALLBACK_INFO::FormBrowser2, gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiDatabase, USER_MANAGER_CALLBACK_INFO::HiiHandle, USER_MANAGER_CALLBACK_INFO::HiiString, USER_MANAGER_CALLBACK_INFO::Signature, USER_MANAGER_SIGNATURE, UserIdentifyManagerCallback(), UserIdentifyManagerStrings, and UserIdentifyManagerVfrBin.

EFI_STATUS InitProviderInfo ( VOID )

This function collects all the credential providers and saves to mProviderDb.

Return values:
EFI_SUCCESS | Collect credential providers successfully.
Others | Fail to collect credential providers.

References CREDENTIAL_PROVIDER_INFO::Count, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by IdentifyUser(), and UserProfileManagerCallback().

EFI_STATUS InitUserProfileDb ( VOID )

This function construct user profile database from user data saved in the Flash. If no user is found in Flash, add one default user "administrator" in the user profile database.

Return values:
EFI_SUCCESS | Init user profile database successfully.
Others | Fail to init user profile database.

References AddDefaultUserProfile(), AddUserProfile(), DEFAULT_PROFILE_SIZE, ExpandUsermUserProfileDb(), gUserIdentifyManagerGuid, SaveNvUserProfile(), TRUE, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by IdentifyUser().

VOID EFIAPI InternalEmptyFuntion | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

An empty function to pass error checking of CreateEventEx ().

Parameters:
Event | Event whose notification function is being invoked.
Context | Pointer to the notification function's context, which is implementation-dependent.

Referenced by SignalEventUserProfileChanged().

BOOLEAN IsConsoleReady ( VOID )

Check whether the console is ready.

Return values:
TRUE | The console is ready.
FALSE | The console is not ready.

References CheckConsole(), and TRUE.

Referenced by IdentifyUser().

EFI_STATUS ModifyUserInfo | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN OUT EFI_USER_INFO ** | UserInfo,
 |  | IN CONST EFI_USER_INFO * | Info,
 |  | IN UINTN | InfoSize
 | ) |  |

Add or update user information.

Parameters:
[in] | User | Point to the user profile.
[in,out] | UserInfo | On entry, points to the user information to modify, or NULL to add a new UserInfo. On return, points to the modified user information.
[in] | Info | Points to the new user information.
[in] | InfoSize | The size of Info,in bytes.
Return values:
EFI_INVALID_PARAMETER | UserInfo is NULL or Info is NULL.
EFI_ACCESS_DENIED | The record is exclusive.
EFI_SUCCESS | User information was successfully changed/added.

References AddUserInfo(), CheckUserInfo(), DelUserInfo(), FindUserInfoByType(), and TRUE.

Referenced by AddDefaultUserProfile(), UpdateUserInfo(), UserProfileManagerCallback(), and UserProfileSetInfo().

EFI_STATUS PublishUserTable ( VOID )

Publish current user information into EFI System Configuration Table.

By UEFI spec, the User Identity Manager will publish the current user profile into the EFI System Configuration Table. Currently, only the user identifier and user name are published.

Return values:
EFI_SUCCESS | Current user information is published successfully.
Others | Fail to publish current user information

References FindUserInfoByType(), and mCurrentUser.

Referenced by UserProfileIdentify().

EFI_STATUS SaveNvUserProfile | ( | IN USER_PROFILE_ENTRY * | User,
 |  | IN BOOLEAN | Delete
 | ) |  |

Save the user profile to non-volatile memory, or delete it from non-volatile memory.

Parameters:
[in] | User | Point to the user profile
[in] | Delete | If TRUE, delete the found user profile. If FALSE, save the user profile.
Return values:
EFI_SUCCESS | Save or delete user profile successfully.
Others | Fail to change the profile.

References FindUserProfile(), and gUserIdentifyManagerGuid.

Referenced by AddUserInfo(), DelUserInfo(), DelUserProfile(), and InitUserProfileDb().

VOID SignalEventUserProfileChanged ( VOID )

Create, Signal, and Close the User Profile Changed event.

References InternalEmptyFuntion().

Referenced by UserProfileIdentify().

EFI_STATUS UpdateUserInfo ( IN USER_PROFILE_ENTRY * User )

Update user information when user is logon on successfully.

Parameters:
[in] User Points to user profile.
Return values:
EFI_SUCCESS | Update user information successfully.
Others | Fail to update user information.

References FindUserInfoByType(), and ModifyUserInfo().

Referenced by IdentifyUser().

EFI_STATUS EFIAPI UserIdentifyManagerCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Action | Specifies the type of action taken by the browser.
QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
Type | The type of value for the question.
Value | A pointer to the data being sent to the original exporting driver.
ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
Others | Fail to handle the action.

References AddUserSelection(), FORM_OPEN_QUESTION_ID, FORMID_INVALID_FORM, FORMID_USER_FORM, GetIdentifyType(), gUserIdentifyManagerGuid, USER_MANAGER_CALLBACK_INFO::HiiHandle, IdentifyAndTypeUser(), IdentifyByProviderId(), IdentifyOrTypeUser(), LABEL_END, LABEL_PROVIDER_NAME, LABEL_USER_NAME, mCurrentUser, mIdentified, CREDENTIAL_PROVIDER_INFO::Provider, TRUE, USER_PROFILE_DB::UserProfile, and USER_PROFILE_DB::UserProfileNum.

Referenced by InitFormBrowser().

EFI_STATUS EFIAPI UserIdentifyManagerInit | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Main entry for this driver.

Parameters:
[in] | ImageHandle | Image handle this driver.
[in] | SystemTable | Pointer to SystemTable.
Return values:
EFI_SUCESS This function always complete successfully.

References USER_MANAGER_CALLBACK_INFO::DriverHandle, InitFormBrowser(), and LoadDeferredImageInit().

EFI_STATUS EFIAPI UserProfileCreate | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | OUT EFI_USER_PROFILE_HANDLE * | User
 | ) |  |

Create a new user profile.

This function creates a new user profile with only a new user identifier attached and returns its handle. The user profile is non-volatile, but the handle User can change across reboots.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[out] | User | On return, points to the new user profile handle. The user profile handle is unique only during this boot.
Return values:
EFI_SUCCESS | User profile was successfully created.
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to create a user profile.
EFI_UNSUPPORTED | Creation of new user profiles is not supported.
EFI_INVALID_PARAMETER | The User parameter is NULL.

References CheckCurrentUserAccessRight(), and CreateUserProfile().

EFI_STATUS EFIAPI UserProfileCurrent | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | OUT EFI_USER_PROFILE_HANDLE * | CurrentUser
 | ) |  |

Return the current user profile handle.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[out] | CurrentUser | On return, points to the current user profile handle.
Return values:
EFI_SUCCESS | Current user profile handle returned successfully.
EFI_INVALID_PARAMETER | The CurrentUser parameter is NULL.

References mCurrentUser.

EFI_STATUS EFIAPI UserProfileDelete | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete an existing user profile.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | User profile handle.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to delete a user profile or there is only one user profile.
EFI_UNSUPPORTED | Deletion of new user profiles is not supported.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile.

References CheckCurrentUserAccessRight(), and DelUserProfile().

EFI_STATUS EFIAPI UserProfileDeleteInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo
 | ) |  |

Delete user information.

Delete the user information attached to the user profile specified by the UserInfo.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose information will be deleted.
[in] | UserInfo | Handle of the user information to remove.
Return values:
EFI_SUCCESS | User information deleted successfully.
EFI_NOT_FOUND | User information record UserInfo does not exist in the user profile.
EFI_ACCESS_DENIED | The current user does not have permission to delete this user information.

References CheckCurrentUserAccessRight(), DelUserInfo(), mCurrentUser, and TRUE.

EFI_STATUS EFIAPI UserProfileFind | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN OUT EFI_USER_PROFILE_HANDLE * | User,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo,
 |  | IN CONST EFI_USER_INFO * | Info,
 |  | IN UINTN | InfoSize
 | ) |  |

Find a user using a user information record.

This function searches all user profiles for the specified user information record. The search starts with the user information record handle following UserInfo and continues until either the information is found or there are no more user profiles. A match occurs when the Info.InfoType field matches the user information record type and the user information record data matches the portion of Info.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in,out] | User | On entry, points to the previously returned user profile handle, or NULL to start searching with the first user profile. On return, points to the user profile handle, or NULL if not found.
[in,out] | UserInfo | On entry, points to the previously returned user information handle, or NULL to start searching with the first. On return, points to the user information handle of the user information record, or NULL if not found. Can be NULL, in which case only one user information record per user can be returned.
[in] | Info | Points to the buffer containing the user information to be compared to the user information record. If the user information record data is empty, then only the user information record type is compared. If InfoSize is 0, then the user information record must be empty.
[in] | InfoSize | The size of Info, in bytes.
Return values:
EFI_SUCCESS | User information was found. User points to the user profile handle, and UserInfo points to the user information handle.
EFI_NOT_FOUND | User information was not found. User points to NULL, and UserInfo points to NULL.
EFI_INVALID_PARAMETER | User is NULL. Or Info is NULL.

References FindUserProfileByInfo().

EFI_STATUS EFIAPI UserProfileGetInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

Return information attached to the user.

This function returns user information. The format of the information is described in User Information. The function may return EFI_ACCESS_DENIED if the information is marked private and the handle specified by User is not the current user profile. The function may return EFI_ACCESS_DENIED if the information is marked protected and the information is associated with a credential provider for which the user has not been authenticated.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose profile will be retrieved.
[in] | UserInfo | Handle of the user information data record.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_ACCESS_DENIED | The information about the specified user cannot be accessed by the current user.
EFI_BUFFER_TOO_SMALL | The number of bytes specified by *InfoSize is too small to hold the returned data. The actual size required is returned in *InfoSize.
EFI_NOT_FOUND | User does not refer to a valid user profile or UserInfo does not refer to a valid user info handle.
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL.

References GetUserInfo(), and TRUE.

EFI_STATUS EFIAPI UserProfileGetNext | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN OUT EFI_USER_PROFILE_HANDLE * | User
 | ) |  |

Enumerate all of the enrolled users on the platform.

This function returns the next enrolled user profile. To retrieve the first user profile handle, point User at a NULL. Each subsequent call will retrieve another user profile handle until there are no more, at which point User will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in,out] | User | On entry, points to the previous user profile handle or NULL to start enumeration. On exit, points to the next user profile handle or NULL if there are no more user profiles.
Return values:
EFI_SUCCESS | Next enrolled user profile successfully returned.
EFI_ACCESS_DENIED | Next enrolled user profile was not successfully returned.
EFI_INVALID_PARAMETER | The User parameter is NULL.

References FindUserProfile(), and TRUE.

EFI_STATUS EFIAPI UserProfileGetNextInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Enumerate user information of all the enrolled users on the platform.

This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose information will be deleted.
[in,out] | UserInfo | Handle of the user information to remove.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
EFI_INVALID_PARAMETER | UserInfo is NULL.

References FindUserInfo(), and TRUE.

EFI_STATUS EFIAPI UserProfileIdentify | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | OUT EFI_USER_PROFILE_HANDLE * | User
 | ) |  |

Identify a user.

Identify the user and, if authenticated, returns the user handle and changes the current user profile. All user information marked as private in a previously selected profile is no longer available for inspection. Whenever the current user profile is changed then the an event with the GUID EFI_EVENT_GROUP_USER_PROFILE_CHANGED is signaled.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[out] | User | On return, points to the user profile handle for the current user profile.
Return values:
EFI_SUCCESS | User was successfully identified.
EFI_ACCESS_DENIED | User was not successfully identified.
EFI_INVALID_PARAMETER | The User parameter is NULL.

References IdentifyUser(), mCurrentUser, PublishUserTable(), and SignalEventUserProfileChanged().

EFI_STATUS EFIAPI UserProfileNotify | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_HANDLE | Changed
 | ) |  |

Called by credential provider to notify of information change.

This function allows the credential provider to notify the User Identity Manager when user status has changed. If the User Identity Manager doesn't support asynchronous changes in credentials, then this function should return EFI_UNSUPPORTED. If current user does not exist, and the credential provider can identify a user, then make the user to be current user and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event. If current user already exists, and the credential provider can identify another user, then switch current user to the newly identified user, and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event. If current user was identified by this credential provider and now the credential provider cannot identify current user, then logout current user and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | Changed | Handle on which is installed an instance of the EFI_USER_CREDENTIAL2_PROTOCOL where the user has changed.
Return values:
EFI_SUCCESS | The User Identity Manager has handled the notification.
EFI_NOT_READY | The function was called while the specified credential provider was not selected.
EFI_UNSUPPORTED | The User Identity Manager doesn't support asynchronous notifications.

EFI_STATUS EFIAPI UserProfileSetInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo,
 |  | IN CONST EFI_USER_INFO * | Info,
 |  | IN UINTN | InfoSize
 | ) |  |

Add or update user information.

This function changes user information. If NULL is pointed to by UserInfo, then a new user information record is created and its handle is returned in UserInfo. Otherwise, the existing one is replaced. If EFI_USER_INFO_IDENITTY_POLICY_RECORD is changed, it is the caller's responsibility to keep it to be synced with the information on credential providers. If EFI_USER_INFO_EXCLUSIVE is specified in Info and a user information record of the same type already exists in the user profile, then EFI_ACCESS_DENIED will be returned and UserInfo will point to the handle of the existing record.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose profile will be retrieved.
[in,out] | UserInfo | Handle of the user information data record.
[in] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_ACCESS_DENIED | The record is exclusive.
EFI_SECURITY_VIOLATION | The current user does not have permission to change the specified user profile or user information record.
EFI_NOT_FOUND | User does not refer to a valid user profile or UserInfo does not refer to a valid user info handle.
EFI_INVALID_PARAMETER | UserInfo is NULL or Info is NULL.

References CheckCurrentUserAccessRight(), mCurrentUser, and ModifyUserInfo().

Variable Documentation

EFI_USER_MANAGER_PROTOCOL gUserIdentifyManager

Initial value:

 {
  UserProfileCreate,
  UserProfileDelete,
  UserProfileGetNext,
  UserProfileCurrent,
  UserProfileIdentify,
  UserProfileFind,
  UserProfileNotify,
  UserProfileGetInfo,
  UserProfileSetInfo,
  UserProfileDeleteInfo,
  UserProfileGetNextInfo,
}

USER_MANAGER_CALLBACK_INFO* mCallbackInfo = NULL

EFI_USER_PROFILE_HANDLE mCurrentUser = NULL

Referenced by CheckCurrentUserAccessRight(), DelUserProfile(), GetUserInfo(), IdentifyUser(), PublishUserTable(), UserIdentifyManagerCallback(), UserProfileCurrent(), UserProfileDeleteInfo(), UserProfileIdentify(), and UserProfileSetInfo().

HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath

Initial value:

 {
  {
    {
      HARDWARE_DEVICE_PATH,
      HW_VENDOR_DP,
      {
        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
      }
    },
    USER_IDENTIFY_MANAGER_GUID
  },
  {
    END_DEVICE_PATH_TYPE,
    END_ENTIRE_DEVICE_PATH_SUBTYPE,
    {
      (UINT8) (END_DEVICE_PATH_LENGTH),
      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
    }
  }
}

BOOLEAN mIdentified = FALSE

Referenced by IdentifyUser(), and UserIdentifyManagerCallback().

CREDENTIAL_PROVIDER_INFO* mProviderDb = NULL

CHAR16 mUserName[] = L"Administrator"

Referenced by AddDefaultUserProfile().

USER_PROFILE_DB* mUserProfileDb = NULL

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManager.h File Reference

Data Structures

struct | CREDENTIAL_PROVIDER_INFO
struct | USER_PROFILE_ENTRY
struct | USER_PROFILE_DB
struct | USER_MANAGER_CALLBACK_INFO
struct | HII_VENDOR_DEVICE_PATH

Defines

#define | USER_NUMBER_INC 32
#define | DEFAULT_PROFILE_SIZE 512
#define | INFO_PAYLOAD_SIZE 64
#define | USER_MANAGER_SIGNATURE SIGNATURE_32 ('U', 'I', 'M', 'S')

Functions

VOID | LoadDeferredImageInit (IN EFI_HANDLE ImageHandle)
EFI_STATUS EFIAPI | UserProfileCreate (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS EFIAPI | UserProfileDelete (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS EFIAPI | UserProfileGetNext (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS EFIAPI | UserProfileCurrent (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *CurrentUser)
EFI_STATUS EFIAPI | UserProfileIdentify (IN CONST EFI_USER_MANAGER_PROTOCOL *This, OUT EFI_USER_PROFILE_HANDLE *User)
EFI_STATUS EFIAPI | UserProfileFind (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN OUT EFI_USER_PROFILE_HANDLE *User, IN OUT EFI_USER_INFO_HANDLE *UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS EFIAPI | UserProfileGetInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo, OUT EFI_USER_INFO *Info, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | UserProfileSetInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo, IN CONST EFI_USER_INFO *Info, IN UINTN InfoSize)
EFI_STATUS EFIAPI | UserProfileNotify (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_HANDLE Changed)
EFI_STATUS EFIAPI | UserProfileDeleteInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN EFI_USER_INFO_HANDLE UserInfo)
EFI_STATUS EFIAPI | UserProfileGetNextInfo (IN CONST EFI_USER_MANAGER_PROTOCOL *This, IN EFI_USER_PROFILE_HANDLE User, IN OUT EFI_USER_INFO_HANDLE *UserInfo)

Variables

UINT8 | UserIdentifyManagerVfrBin []
UINT8 | UserIdentifyManagerStrings []

Detailed Description

The header file for User identify Manager driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define DEFAULT_PROFILE_SIZE 512

Referenced by InitUserProfileDb().

#define INFO_PAYLOAD_SIZE 64

Referenced by AddDefaultUserProfile().

#define USER_MANAGER_SIGNATURE SIGNATURE_32 ('U', 'I', 'M', 'S')

Referenced by InitFormBrowser().

#define USER_NUMBER_INC 32

Referenced by ExpandUsermUserProfileDb().

Function Documentation

VOID LoadDeferredImageInit ( IN EFI_HANDLE ImageHandle )

Register an event notification function for the user profile changed.

Parameters:
[in] ImageHandle Image handle this driver.
Register an event notification function for user profile changed.

Parameters:
[in] ImageHandle Image handle this driver.

References LoadDeferredImage(), and mDeferredImageHandle.

Referenced by UserIdentifyManagerInit().

EFI_STATUS EFIAPI UserProfileCreate | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | OUT EFI_USER_PROFILE_HANDLE * | User
 | ) |  |

This function creates a new user profile with only a new user identifier attached and returns its handle. The user profile is non-volatile, but the handle User can change across reboots.

Parameters:
[in] | This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
[out] | User | Handle of a new user profile.
Return values:
EFI_SUCCESS | User profile was successfully created.
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to create a user profile.
EFI_UNSUPPORTED | Creation of new user profiles is not supported.
EFI_INVALID_PARAMETER | User is NULL.
Create a new user profile.

This function creates a new user profile with only a new user identifier attached and returns its handle. The user profile is non-volatile, but the handle User can change across reboots.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[out] | User | On return, points to the new user profile handle. The user profile handle is unique only during this boot.
Return values:
EFI_SUCCESS | User profile was successfully created.
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to create a user profile.
EFI_UNSUPPORTED | Creation of new user profiles is not supported.
EFI_INVALID_PARAMETER | The User parameter is NULL.

References CheckCurrentUserAccessRight(), and CreateUserProfile().

EFI_STATUS EFIAPI UserProfileCurrent | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | OUT EFI_USER_PROFILE_HANDLE * | CurrentUser
 | ) |  |

This function returns the current user profile handle.

Parameters:
[in] | This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
[out] | CurrentUser | User profile handle.
Return values:
EFI_SUCCESS | Current user profile handle returned successfully.
EFI_INVALID_PARAMETER | CurrentUser is NULL.
Return the current user profile handle.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[out] | CurrentUser | On return, points to the current user profile handle.
Return values:
EFI_SUCCESS | Current user profile handle returned successfully.
EFI_INVALID_PARAMETER | The CurrentUser parameter is NULL.

References mCurrentUser.

EFI_STATUS EFIAPI UserProfileDelete | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete an existing user profile.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
User | User profile handle.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to delete a user profile or there is only one user profile.
EFI_UNSUPPORTED | Deletion of new user profiles is not supported.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile.
Delete an existing user profile.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | User profile handle.
Return values:
EFI_SUCCESS | User profile was successfully deleted.
EFI_ACCESS_DENIED | Current user does not have sufficient permissions to delete a user profile or there is only one user profile.
EFI_UNSUPPORTED | Deletion of new user profiles is not supported.
EFI_INVALID_PARAMETER | User does not refer to a valid user profile.

References CheckCurrentUserAccessRight(), and DelUserProfile().

EFI_STATUS EFIAPI UserProfileDeleteInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo
 | ) |  |

Delete the user information attached to the user profile specified by the UserInfo.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
User | Handle of the user whose profile will be retrieved.
UserInfo | Handle of the user information data record.
Return values:
EFI_SUCCESS | User information deleted successfully.
EFI_ACCESS_DENIED | The current user does not have permission to delete this user in-formation.
EFI_NOT_FOUND | User information record UserInfo does not exist in the user pro-file.
Delete user information.

Delete the user information attached to the user profile specified by the UserInfo.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose information will be deleted.
[in] | UserInfo | Handle of the user information to remove.
Return values:
EFI_SUCCESS | User information deleted successfully.
EFI_NOT_FOUND | User information record UserInfo does not exist in the user profile.
EFI_ACCESS_DENIED | The current user does not have permission to delete this user information.

References CheckCurrentUserAccessRight(), DelUserInfo(), mCurrentUser, and TRUE.

EFI_STATUS EFIAPI UserProfileFind | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN OUT EFI_USER_PROFILE_HANDLE * | User,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo,
 |  | IN CONST EFI_USER_INFO * | Info,
 |  | IN UINTN | InfoSize
 | ) |  |

Find a user using a user information record.

This function searches all user profiles for the specified user information record. The search starts with the user information record handle following UserInfo and continues until either the information is found or there are no more user profiles. A match occurs when the Info.InfoType field matches the user information record type and the user information record data matches the portion of Info passed the EFI_USER_INFO header.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in,out] | User | On entry, points to the previously returned user profile handle, or NULL to start searching with the first user profile. On return, points to the user profile handle, or NULL if not found.
[in,out] | UserInfo | On entry, points to the previously returned user information handle, or NULL to start searching with the first. On return, points to the user information handle of the user information record, or NULL if not found. Can be NULL, in which case only one user information record per user can be returned.
[in] | Info | Points to the buffer containing the user information to be compared to the user information record. If NULL, then only the user information record type is compared. If InfoSize is 0, then the user information record must be empty.
[in] | InfoSize | The size of Info, in bytes.
Return values:
EFI_SUCCESS | User information was found. User points to the user profile handle, and UserInfo points to the user information handle.
EFI_NOT_FOUND | User information was not found. User points to NULL and UserInfo points to NULL.
Find a user using a user information record.

This function searches all user profiles for the specified user information record. The search starts with the user information record handle following UserInfo and continues until either the information is found or there are no more user profiles. A match occurs when the Info.InfoType field matches the user information record type and the user information record data matches the portion of Info.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in,out] | User | On entry, points to the previously returned user profile handle, or NULL to start searching with the first user profile. On return, points to the user profile handle, or NULL if not found.
[in,out] | UserInfo | On entry, points to the previously returned user information handle, or NULL to start searching with the first. On return, points to the user information handle of the user information record, or NULL if not found. Can be NULL, in which case only one user information record per user can be returned.
[in] | Info | Points to the buffer containing the user information to be compared to the user information record. If the user information record data is empty, then only the user information record type is compared. If InfoSize is 0, then the user information record must be empty.
[in] | InfoSize | The size of Info, in bytes.
Return values:
EFI_SUCCESS | User information was found. User points to the user profile handle, and UserInfo points to the user information handle.
EFI_NOT_FOUND | User information was not found. User points to NULL, and UserInfo points to NULL.
EFI_INVALID_PARAMETER | User is NULL. Or Info is NULL.

References FindUserProfileByInfo().

EFI_STATUS EFIAPI UserProfileGetInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN EFI_USER_INFO_HANDLE | UserInfo,
 |  | OUT EFI_USER_INFO * | Info,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

This function returns user information.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
User | Handle of the user whose profile will be retrieved.
UserInfo | Handle of the user information data record.
Info | On entry, points to a buffer of at least InfoSize bytes. On exit, holds the user information.
InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_ACCESS_DENIED | The information about the specified user cannot be accessed by the current user. EFI_BUFFER_TOO_SMALL- The number of bytes specified by *InfoSize is too small to hold the returned data.
Return information attached to the user.

This function returns user information. The format of the information is described in User Information. The function may return EFI_ACCESS_DENIED if the information is marked private and the handle specified by User is not the current user profile. The function may return EFI_ACCESS_DENIED if the information is marked protected and the information is associated with a credential provider for which the user has not been authenticated.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose profile will be retrieved.
[in] | UserInfo | Handle of the user information data record.
[out] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in,out] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_ACCESS_DENIED | The information about the specified user cannot be accessed by the current user.
EFI_BUFFER_TOO_SMALL | The number of bytes specified by *InfoSize is too small to hold the returned data. The actual size required is returned in *InfoSize.
EFI_NOT_FOUND | User does not refer to a valid user profile or UserInfo does not refer to a valid user info handle.
EFI_INVALID_PARAMETER | Info is NULL or InfoSize is NULL.

References GetUserInfo(), and TRUE.

EFI_STATUS EFIAPI UserProfileGetNext | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN OUT EFI_USER_PROFILE_HANDLE * | User
 | ) |  |

Get next user profile from the user profile database.

Parameters:
[in] | This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
[in,out] | User | User profile handle.
Return values:
EFI_SUCCESS | Next enrolled user profile successfully returned.
EFI_INVALID_PARAMETER | User is NULL.
Enumerate all of the enrolled users on the platform.

This function returns the next enrolled user profile. To retrieve the first user profile handle, point User at a NULL. Each subsequent call will retrieve another user profile handle until there are no more, at which point User will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in,out] | User | On entry, points to the previous user profile handle or NULL to start enumeration. On exit, points to the next user profile handle or NULL if there are no more user profiles.
Return values:
EFI_SUCCESS | Next enrolled user profile successfully returned.
EFI_ACCESS_DENIED | Next enrolled user profile was not successfully returned.
EFI_INVALID_PARAMETER | The User parameter is NULL.

References FindUserProfile(), and TRUE.

EFI_STATUS EFIAPI UserProfileGetNextInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

This function returns the next user information record.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
User | Handle of the user whose profile will be retrieved.
UserInfo | Handle of the user information data record.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
Enumerate user information of all the enrolled users on the platform.

This function returns the next user information record. To retrieve the first user information record handle, point UserInfo at a NULL. Each subsequent call will retrieve another user information record handle until there are no more, at which point UserInfo will point to NULL.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose information will be deleted.
[in,out] | UserInfo | Handle of the user information to remove.
Return values:
EFI_SUCCESS | User information returned.
EFI_NOT_FOUND | No more user information found.
EFI_INVALID_PARAMETER | UserInfo is NULL.

References FindUserInfo(), and TRUE.

EFI_STATUS EFIAPI UserProfileIdentify | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | OUT EFI_USER_PROFILE_HANDLE * | User
 | ) |  |

Identify the user and, if authenticated, returns the user handle and changes the current user profile.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
CurrentUser | User profile handle.
Return values:
EFI_SUCCESS | User was successfully identified.
EFI_INVALID_PARAMETER | User is NULL.
EFI_ACCESS_DENIED | User was not successfully identified.
Identify a user.

Identify the user and, if authenticated, returns the user handle and changes the current user profile. All user information marked as private in a previously selected profile is no longer available for inspection. Whenever the current user profile is changed then the an event with the GUID EFI_EVENT_GROUP_USER_PROFILE_CHANGED is signaled.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[out] | User | On return, points to the user profile handle for the current user profile.
Return values:
EFI_SUCCESS | User was successfully identified.
EFI_ACCESS_DENIED | User was not successfully identified.
EFI_INVALID_PARAMETER | The User parameter is NULL.

References IdentifyUser(), mCurrentUser, PublishUserTable(), and SignalEventUserProfileChanged().

EFI_STATUS EFIAPI UserProfileNotify | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_HANDLE | Changed
 | ) |  |

This function allows the credential provider to notify the User Identity Manager when user status has changed while deselected.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
Changed | Points to the instance of the EFI_USER_CREDENTIAL_PROTOCOL where the user has changed.
Return values:
EFI_SUCCESS | The User Identity Manager has handled the notification.
EFI_NOT_READY | The function was called while the specified credential provider was not selected.
EFI_UNSUPPORTED | The User Identity Manager doesn't support asynchronous notifications.
Called by credential provider to notify of information change.

This function allows the credential provider to notify the User Identity Manager when user status has changed. If the User Identity Manager doesn't support asynchronous changes in credentials, then this function should return EFI_UNSUPPORTED. If current user does not exist, and the credential provider can identify a user, then make the user to be current user and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event. If current user already exists, and the credential provider can identify another user, then switch current user to the newly identified user, and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event. If current user was identified by this credential provider and now the credential provider cannot identify current user, then logout current user and signal the EFI_EVENT_GROUP_USER_PROFILE_CHANGED event.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | Changed | Handle on which is installed an instance of the EFI_USER_CREDENTIAL2_PROTOCOL where the user has changed.
Return values:
EFI_SUCCESS | The User Identity Manager has handled the notification.
EFI_NOT_READY | The function was called while the specified credential provider was not selected.
EFI_UNSUPPORTED | The User Identity Manager doesn't support asynchronous notifications.

EFI_STATUS EFIAPI UserProfileSetInfo | ( | IN CONST EFI_USER_MANAGER_PROTOCOL * | This,
 |  | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN OUT EFI_USER_INFO_HANDLE * | UserInfo,
 |  | IN CONST EFI_USER_INFO * | Info,
 |  | IN UINTN | InfoSize
 | ) |  |

This function changes user information.

Parameters:
This | Protocol EFI_USER_MANAGER_PROTOCOL instance pointer.
User | Handle of the user whose profile will be retrieved.
UserInfo | Handle of the user information data record.
Info | Points to the user information.
InfoSize | The size of Info, in bytes.
Return values:
EFI_SUCCESS | User profile information was successfully changed/added.
EFI_ACCESS_DENIED | The record is exclusive.
EFI_SECURITY_VIOLATION | The current user does not have permission to change the specified user profile or user information record.
Add or update user information.

This function changes user information. If NULL is pointed to by UserInfo, then a new user information record is created and its handle is returned in UserInfo. Otherwise, the existing one is replaced. If EFI_USER_INFO_IDENITTY_POLICY_RECORD is changed, it is the caller's responsibility to keep it to be synced with the information on credential providers. If EFI_USER_INFO_EXCLUSIVE is specified in Info and a user information record of the same type already exists in the user profile, then EFI_ACCESS_DENIED will be returned and UserInfo will point to the handle of the existing record.

Parameters:
[in] | This | Points to this instance of the EFI_USER_MANAGER_PROTOCOL.
[in] | User | Handle of the user whose profile will be retrieved.
[in,out] | UserInfo | Handle of the user information data record.
[in] | Info | On entry, points to a buffer of at least *InfoSize bytes. On exit, holds the user information. If the buffer is too small to hold the information, then EFI_BUFFER_TOO_SMALL is returned and InfoSize is updated to contain the number of bytes actually required.
[in] | InfoSize | On entry, points to the size of Info. On return, points to the size of the user information.
Return values:
EFI_SUCCESS | Information returned successfully.
EFI_ACCESS_DENIED | The record is exclusive.
EFI_SECURITY_VIOLATION | The current user does not have permission to change the specified user profile or user information record.
EFI_NOT_FOUND | User does not refer to a valid user profile or UserInfo does not refer to a valid user info handle.
EFI_INVALID_PARAMETER | UserInfo is NULL or Info is NULL.

References CheckCurrentUserAccessRight(), mCurrentUser, and ModifyUserInfo().

Variable Documentation

UINT8 UserIdentifyManagerStrings[]

Referenced by InitFormBrowser().

UINT8 UserIdentifyManagerVfrBin[]

Referenced by InitFormBrowser().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerData.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerData.h File Reference

Defines

#define | FORMID_USER_FORM 1
#define | FORMID_PROVIDER_FORM 2
#define | FORMID_INVALID_FORM 0x0FFF
#define | LABEL_USER_NAME 0x1000
#define | LABEL_PROVIDER_NAME 0x3000
#define | LABEL_END 0xffff
#define | FORM_OPEN_QUESTION_ID 0xfffe

Detailed Description

Data structure used by the user identify manager driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define FORM_OPEN_QUESTION_ID 0xfffe

Referenced by UserIdentifyManagerCallback().

#define FORMID_INVALID_FORM 0x0FFF

Referenced by UserIdentifyManagerCallback().

#define FORMID_PROVIDER_FORM 2

Referenced by AddUserSelection(), and IdentifyOrTypeUser().

#define FORMID_USER_FORM 1

Referenced by UserIdentifyManagerCallback().

#define LABEL_END 0xffff

#define LABEL_PROVIDER_NAME 0x3000

Referenced by AddProviderSelection(), IdentifyOrTypeUser(), and UserIdentifyManagerCallback().

#define LABEL_USER_NAME 0x1000

Referenced by UserIdentifyManagerCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerVfr.Vfr File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerVfr.Vfr File Reference

Variables

formset | guid = USER_IDENTIFY_MANAGER_GUID
formset | title = STRING_TOKEN(STR_TITLE)
formset | help = STRING_TOKEN(STR_NULL_STRING)
formset | classguid = USER_IDENTIFY_MANAGER_GUID
formset form | formid = FORMID_USER_FORM
suppressif | TRUE
text | text = STRING_TOKEN(STR_NULL_STRING)
text | flags = INTERACTIVE
text | key = FORM_OPEN_QUESTION_ID
endif
label | LABEL_USER_NAME
label | LABEL_END
endform
label | LABEL_PROVIDER_NAME
endformset

Detailed Description

User identify manager formset.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Variable Documentation

formset classguid = USER_IDENTIFY_MANAGER_GUID

endform

endformset

endif

text flags = INTERACTIVE

form formid = FORMID_USER_FORM

formset guid = USER_IDENTIFY_MANAGER_GUID

text help = STRING_TOKEN(STR_NULL_STRING)

text key = FORM_OPEN_QUESTION_ID

label LABEL_END

label LABEL_PROVIDER_NAME

label LABEL_USER_NAME

text text = STRING_TOKEN(STR_NULL_STRING)

form title = STRING_TOKEN(STR_TITLE)

suppressif TRUE

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyAccessPolicy.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyAccessPolicy.c File Reference

Functions

VOID | SaveAccessPolicy (VOID)
VOID | AddDevicePath (IN UINTN QuestionID, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN VOID *OpCodeHandle)
BOOLEAN | IsLoadForbidden (IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
VOID | DisplayLoadPermit (VOID)
VOID | DisplayLoadForbid (VOID)
VOID | DisplayConnectPermit (VOID)
VOID | DisplayConnectForbid (VOID)
VOID | DeleteFromForbidLoad (IN UINT16 DriverIndex)
VOID | AddToForbidLoad (IN UINT16 DriverIndex)

Detailed Description

The functions for access policy modification.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AddDevicePath | ( | IN UINTN | QuestionID,
 |  | IN EFI_DEVICE_PATH_PROTOCOL * | DevicePath,
 |  | IN VOID * | OpCodeHandle
 | ) |  |

Create an action OpCode with QuestionID and DevicePath on a given OpCodeHandle.

Parameters:
[in] | QuestionID | The question ID.
[in] | DevicePath | Points to device path.
[in] | OpCodeHandle | Points to container for dynamic created opcodes.

References PWD_PROVIDER_CALLBACK_INFO::HiiHandle, and mCallbackInfo.

Referenced by DisplayLoadForbid(), and DisplayLoadPermit().

VOID AddToForbidLoad ( IN UINT16 DriverIndex )

Add the specified device path by DriverIndex to the forbid device path list (mAccessInfo.LoadForbid).

Parameters:
[in] DriverIndex The index of driver saved in driver options.

References USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, and mAccessInfo.

Referenced by UserProfileManagerCallback().

VOID DeleteFromForbidLoad ( IN UINT16 DriverIndex )

Delete the specified device path by DriverIndex from the forbid device path list (mAccessInfo.LoadForbid).

Parameters:
[in] DriverIndex The index of driver in forbidden device path list.

References USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, and mAccessInfo.

Referenced by UserProfileManagerCallback().

VOID DisplayConnectForbid ( VOID )

Display the forbid connect device path list.

Referenced by UserProfileManagerCallback().

VOID DisplayConnectPermit ( VOID )

Display the permit connect device path.

Referenced by UserProfileManagerCallback().

VOID DisplayLoadForbid ( VOID )

Display the forbid load device path list (mAccessInfo.LoadForbid).

References AddDevicePath(), FORMID_FORBID_LOAD_DP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_LOAD_FORBID_MODIFY, KEY_MODIFY_AP_DP, KEY_MODIFY_USER, LABEL_END, LABLE_FORBID_LOAD_FUNC, USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, mAccessInfo, and mCallbackInfo.

Referenced by UserProfileManagerCallback().

VOID DisplayLoadPermit ( VOID )

Display the permit load device path in the loadable device path list.

References AddDevicePath(), FORMID_PERMIT_LOAD_DP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, IsLoadForbidden(), KEY_LOAD_PERMIT_MODIFY, KEY_MODIFY_AP_DP, KEY_MODIFY_USER, LABEL_END, LABEL_PERMIT_LOAD_FUNC, and mCallbackInfo.

Referenced by UserProfileManagerCallback().

BOOLEAN IsLoadForbidden ( IN EFI_DEVICE_PATH_PROTOCOL * DevicePath )

Check whether the DevicePath is in the device path forbid list (mAccessInfo.LoadForbid).

Parameters:
[in] DevicePath Points to device path.
Return values:
TRUE | The DevicePath is in the device path forbid list.
FALSE | The DevicePath is not in the device path forbid list.

References USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, mAccessInfo, and TRUE.

Referenced by DisplayLoadPermit().

VOID SaveAccessPolicy ( VOID )

Collect all the access policy data to mUserInfo.AccessPolicy, and save it to user profile.

References ACCESS_SETUP_ADMIN, ACCESS_SETUP_NORMAL, ACCESS_SETUP_RESTRICTED, USER_INFO_ACCESS::AccessBootOrder, USER_INFO::AccessPolicy, USER_INFO::AccessPolicyLen, USER_INFO::AccessPolicyModified, USER_INFO_ACCESS::AccessRight, USER_INFO_ACCESS::AccessSetup, USER_INFO_ACCESS::ConnectForbid, USER_INFO_ACCESS::ConnectForbidLen, USER_INFO_ACCESS::ConnectPermit, USER_INFO_ACCESS::ConnectPermitLen, ExpandMemory(), FindInfoByType(), USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, USER_INFO_ACCESS::LoadPermit, USER_INFO_ACCESS::LoadPermitLen, mAccessInfo, mModifyUser, mUserInfo, mUserManager, and TRUE.

Referenced by UserProfileManagerCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyIdentityPolicy.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/ModifyIdentityPolicy.c File Reference

Functions

BOOLEAN | ProviderAlreadyInPolicy (IN EFI_GUID *NewGuid)
EFI_STATUS | EnrollUserOnProvider (IN EFI_USER_INFO_IDENTITY_POLICY *Identity, IN EFI_USER_PROFILE_HANDLE User)
EFI_STATUS | DeleteUserOnProvider (IN EFI_USER_INFO_IDENTITY_POLICY *Identity, IN EFI_USER_PROFILE_HANDLE User)
VOID | DeleteCredentialFromProviders (IN UINT8 *IdentityPolicy, IN UINTN IdentityPolicyLen, IN EFI_USER_PROFILE_HANDLE User)
VOID | DeleteProviderFromPolicy (IN EFI_USER_INFO_IDENTITY_POLICY *IdentityPolicy, IN UINTN Offset)
VOID | AddProviderToPolicy (IN EFI_GUID *NewGuid)
EFI_STATUS | UpdateCredentialProvider ()
BOOLEAN | CheckNewIdentityPolicy (IN UINT8 *PolicyInfo, IN UINTN PolicyInfoLen)
VOID | SaveIdentityPolicy (VOID)
VOID | AddIdentityPolicyItem (VOID)

Detailed Description

The functions for identification policy modification.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AddIdentityPolicyItem ( VOID )

Update the mUserInfo.NewIdentityPolicy, and UI when 'add option' is pressed.

References AddProviderToPolicy(), CREDENTIAL_PROVIDER_INFO::Count, mProviderChoice, mProviderInfo, mUserInfo, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, CREDENTIAL_PROVIDER_INFO::Provider, ProviderAlreadyInPolicy(), and ResolveIdentityPolicy().

Referenced by UserProfileManagerCallback().

VOID AddProviderToPolicy ( IN EFI_GUID * NewGuid )

Add a new provider to the mUserInfo.NewIdentityPolicy.

It is invoked when 'add option' in UI is pressed.

Parameters:
[in] NewGuid Points to the credential provider guid.

References mConncetLogical, mUserInfo, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, USER_INFO::NewIdentityPolicyModified, and TRUE.

Referenced by AddIdentityPolicyItem().

BOOLEAN CheckNewIdentityPolicy | ( | IN UINT8 * | PolicyInfo,
 |  | IN UINTN | PolicyInfoLen
 | ) |  |

Check whether the identity policy is valid.

Parameters:
[in] | PolicyInfo | Point to the identity policy.
[in] | PolicyInfoLen | The policy length.
Return values:
TRUE | The policy is a valid identity policy.
FALSE | The policy is not a valid identity policy.

References TRUE.

Referenced by SaveIdentityPolicy().

VOID DeleteCredentialFromProviders | ( | IN UINT8 * | IdentityPolicy,
 |  | IN UINTN | IdentityPolicyLen,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete User's credental from all the providers that exist in User's identity policy.

Parameters:
[in] | IdentityPolicy | Point to User's identity policy.
[in] | IdentityPolicyLen | The length of the identity policy.
[in] | User | Points to user profile.

References DeleteUserOnProvider().

Referenced by DeleteUser(), and UpdateCredentialProvider().

VOID DeleteProviderFromPolicy | ( | IN EFI_USER_INFO_IDENTITY_POLICY * | IdentityPolicy,
 |  | IN UINTN | Offset
 | ) |  |

Remove the provider specified by Offset from the new user identification record.

Parameters:
[in] | IdentityPolicy | Point to user identity item in new identification policy.
[in] | Offset | The item offset in the new identification policy.

References mUserInfo, and USER_INFO::NewIdentityPolicyLen.

Referenced by UpdateCredentialProvider().

EFI_STATUS DeleteUserOnProvider | ( | IN EFI_USER_INFO_IDENTITY_POLICY * | Identity,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete the User's credential record on the provider.

Parameters:
[in] | Identity | Point to EFI_USER_INFO_IDENTITY_CREDENTIAL_PROVIDER user info.
[in] | User | Points to user profile.
Return values:
EFI_SUCCESS | Delete User's credential record successfully.
Others | Fail to add or delete record.

References CREDENTIAL_PROVIDER_INFO::Count, mProviderInfo, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by DeleteCredentialFromProviders().

EFI_STATUS EnrollUserOnProvider | ( | IN EFI_USER_INFO_IDENTITY_POLICY * | Identity,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Add the user's credential record in the provider.

Parameters:
[in] | Identity | Identity policy item including credential provider.
[in] | User | Points to user profile.
Return values:
EFI_SUCCESS | Add or delete record successfully.
Others | Fail to add or delete record.

References CREDENTIAL_PROVIDER_INFO::Count, mProviderInfo, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by UpdateCredentialProvider().

BOOLEAN ProviderAlreadyInPolicy ( IN EFI_GUID * NewGuid )

Verify the new identity policy in the current implementation. The same credential provider can't appear twice in one identity policy.

Parameters:
[in] NewGuid Points to the credential provider guid.
Return values:
TRUE | The NewGuid was found in the identity policy.
FALSE | The NewGuid was not found.

References mUserInfo, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, and TRUE.

Referenced by AddIdentityPolicyItem().

VOID SaveIdentityPolicy ( VOID )

Save the identity policy and update UI with it.

This funciton will verify the new identity policy, in current implementation, the identity policy can be: T, P & P & P & ..., P | P | P | ... Here, "T" means "True", "P" means "Credential Provider", "&" means "and", "|" means "or". Other identity policies are not supported.

References CheckNewIdentityPolicy(), FindInfoByType(), USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, mModifyUser, mUserInfo, mUserManager, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, USER_INFO::NewIdentityPolicyModified, ResolveIdentityPolicy(), and UpdateCredentialProvider().

Referenced by UserProfileManagerCallback().

EFI_STATUS UpdateCredentialProvider ( )

This function replaces the old identity policy with a new identity policy.

This function delete the user identity policy information. If enroll new credential failed, recover the old identity policy.

Return values:
EFI_SUCCESS | Modify user identity policy successfully.
Others | Fail to modify user identity policy.

References DeleteCredentialFromProviders(), DeleteProviderFromPolicy(), EnrollUserOnProvider(), USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, mModifyUser, mUserInfo, USER_INFO::NewIdentityPolicy, and USER_INFO::NewIdentityPolicyLen.

Referenced by SaveIdentityPolicy().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileAdd.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileAdd.c File Reference

Functions

EFI_STATUS | GetUserNameInput (IN OUT UINTN *UserNameLen, OUT CHAR16 *UserName)
EFI_STATUS | SetUserName (IN EFI_USER_PROFILE_HANDLE User, IN UINTN UserNameLen, IN CHAR16 *UserName)
VOID | SetCreateDate (IN EFI_USER_PROFILE_HANDLE User)
VOID | SetIdentityPolicy (IN EFI_USER_PROFILE_HANDLE User)
VOID | SetAccessPolicy (IN EFI_USER_PROFILE_HANDLE User)
VOID | CallAddUser (VOID)

Detailed Description

The functions to add a user profile.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID CallAddUser ( VOID )

Add a new user profile into the user profile database.

References GetStringById(), GetUserNameInput(), mUserManager, SetAccessPolicy(), SetCreateDate(), SetIdentityPolicy(), SetUserName(), and USER_NAME_LENGTH.

Referenced by UserProfileManagerCallback().

EFI_STATUS GetUserNameInput | ( | IN OUT UINTN * | UserNameLen,
 |  | OUT CHAR16 * | UserName
 | ) |  |

Get user name from the popup windows.

Parameters:
[in,out] | UserNameLen | On entry, point to UserName buffer lengh, in bytes. On exit, point to input user name length, in bytes.
[out] | UserName | The buffer to hold the input user name.
Return values:
EFI_ABORTED | It is given up by pressing 'ESC' key.
EFI_NOT_READY | Not a valid input at all.
EFI_SUCCESS | Get a user name successfully.

References TRUE, and USER_NAME_LENGTH.

Referenced by CallAddUser(), and ModifyUserName().

VOID SetAccessPolicy ( IN EFI_USER_PROFILE_HANDLE User )

Set the default access policy of the specified user.

Parameters:
[in] User Handle of a user profile.

References mUserManager.

Referenced by CallAddUser().

VOID SetCreateDate ( IN EFI_USER_PROFILE_HANDLE User )

Set create date of the specified user.

Parameters:
[in] User Handle of a user profile.

References mUserManager.

Referenced by CallAddUser().

VOID SetIdentityPolicy ( IN EFI_USER_PROFILE_HANDLE User )

Set the default identity policy of the specified user.

Parameters:
[in] User Handle of a user profile.

References mUserManager.

Referenced by CallAddUser().

EFI_STATUS SetUserName | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINTN | UserNameLen,
 |  | IN CHAR16 * | UserName
 | ) |  |

Set a user's username.

Parameters:
[in] | User | Handle of a user profile .
[in] | UserNameLen | The lengh of UserName.
[in] | UserName | Point to the buffer of user name.
Return values:
EFI_NOT_READY | The usernme in mAddUserName had been used.
EFI_SUCCESS | Change the user's username successfully with username in mAddUserName.

References mUserManager.

Referenced by CallAddUser().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c File Reference

Functions

EFI_STRING_ID | GetUserName (IN EFI_USER_PROFILE_HANDLE User)
VOID | AddUserToForm (IN EFI_USER_PROFILE_HANDLE User, IN UINT16 Index, IN VOID *OpCodeHandle)
VOID | DeleteUser (IN UINT8 UserIndex)
VOID | SelectUserToDelete (VOID)

Detailed Description

The functions to delete a user profile.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AddUserToForm | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINT16 | Index,
 |  | IN VOID * | OpCodeHandle
 | ) |  |

Add a username item in form.

Parameters:
[in] | User | Points to the user profile whose username is added.
[in] | Index | The index of the user in the user name list
[in] | OpCodeHandle | Points to container for dynamic created opcodes.

References FORMID_USER_INFO, GetUserName(), KEY_DEL_USER, KEY_FIRST_FORM_MASK, and KEY_MODIFY_USER.

Referenced by SelectUserToDelete(), and SelectUserToModify().

VOID DeleteUser ( IN UINT8 UserIndex )

Delete the user specified by UserIndex in user profile database.

Parameters:
[in] UserIndex The index of user in the user name list to be deleted.

References DeleteCredentialFromProviders(), FindInfoByType(), and mUserManager.

Referenced by UserProfileManagerCallback().

EFI_STRING_ID GetUserName ( IN EFI_USER_PROFILE_HANDLE User )

Get the username from the specified user.

Parameters:
[in] User Handle of a user profile.
Return values:
EFI_STRING_ID The String Id of the user's username.

References PWD_PROVIDER_CALLBACK_INFO::HiiHandle, mCallbackInfo, mUserManager, TRUE, and USER_NAME_LENGTH.

Referenced by AddUserToForm().

VOID SelectUserToDelete ( VOID )

Display user select form, cab select a user to delete.

References AddUserToForm(), FORMID_DEL_USER, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_DEL_USER, KEY_SELECT_USER, LABEL_END, LABEL_USER_DEL_FUNC, mCallbackInfo, mUserManager, and TRUE.

Referenced by UserProfileManagerCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.c File Reference

Functions

CHAR16 * | GetStringById (IN EFI_STRING_ID Id)
EFI_STATUS | InitProviderInfo (VOID)
EFI_STATUS EFIAPI | UserProfileManagerCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS EFIAPI | FakeExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | FakeRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS EFIAPI | UserProfileManagerInit (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_USER_MANAGER_PROTOCOL * | mUserManager = NULL
CREDENTIAL_PROVIDER_INFO * | mProviderInfo = NULL
UINT8 | mProviderChoice
UINT8 | mConncetLogical
USER_INFO_ACCESS mAccessInfo
USER_INFO mUserInfo
USER_PROFILE_MANAGER_CALLBACK_INFO * mCallbackInfo
HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath

Detailed Description

This driver is a configuration tool for adding, deleting or modifying user profiles, including gathering the necessary information to ascertain their identity in the future, updating user access policy and identification policy, etc.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI FakeExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Request | A null-terminated Unicode string in <ConfigRequest> format.
Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

EFI_STATUS EFIAPI FakeRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Configuration | A null-terminated Unicode string in <ConfigResp> format.
Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

CHAR16* GetStringById ( IN EFI_STRING_ID Id )

Get string by string id from HII Interface.

Parameters:
[in] Id String ID to get the string from.
Return values:
CHAR16 | * String from ID.
NULL | If error occurs.

References USER_PROFILE_MANAGER_CALLBACK_INFO::HiiHandle, and PWD_PROVIDER_CALLBACK_INFO::HiiHandle.

EFI_STATUS InitProviderInfo ( VOID )

This function gets all the credential providers in the system and saved them to mProviderInfo.

Return values:
EFI_SUCESS | Init credential provider database successfully.
Others | Fail to init credential provider database.

References CREDENTIAL_PROVIDER_INFO::Count, and CREDENTIAL_PROVIDER_INFO::Provider.

EFI_STATUS EFIAPI UserProfileManagerCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function processes changes in user profile configuration.

Parameters:
This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
Action | Specifies the type of action taken by the browser.
QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
Type | The type of value for the question.
Value | A pointer to the data being sent to the original exporting driver.
ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
Others | Fail to handle the action.

References USER_INFO_ACCESS::AccessBootOrder, USER_INFO_ACCESS::AccessRight, USER_INFO_ACCESS::AccessSetup, AddIdentityPolicyItem(), AddToForbidLoad(), CallAddUser(), DeleteFromForbidLoad(), DeleteUser(), DisplayConnectForbid(), DisplayConnectPermit(), DisplayLoadForbid(), DisplayLoadPermit(), FORMID_DEL_USER, FORMID_MODIFY_USER, FORMID_USER_MANAGE, GetAccessRight(), GetStringById(), gUserProfileManagerGuid, USER_PROFILE_MANAGER_CALLBACK_INFO::HiiHandle, InitProviderInfo(), KEY_ADD_IP_OP, KEY_ADD_USER, KEY_AP_RETURN_UIF, KEY_CONNECT_FORBID_MODIFY, KEY_CONNECT_PERMIT_MODIFY, KEY_DEL_USER, KEY_DISPLAY_DP_MASK, KEY_ENTER_NEXT_FORM, KEY_FIRST_FORM_MASK, KEY_FORBID_MODIFY, KEY_IP_RETURN_UIF, KEY_LOAD_FORBID_MODIFY, KEY_LOAD_PERMIT_MODIFY, KEY_MODIFY_AP, KEY_MODIFY_AP_DP, KEY_MODIFY_AP_MASK, KEY_MODIFY_BOOT, KEY_MODIFY_CONN, KEY_MODIFY_CONNECT, KEY_MODIFY_DP_MASK, KEY_MODIFY_INFO_MASK, KEY_MODIFY_IP, KEY_MODIFY_IP_MASK, KEY_MODIFY_LOAD, KEY_MODIFY_NAME, KEY_MODIFY_PROV, KEY_MODIFY_RIGHT, KEY_MODIFY_SETUP, KEY_MODIFY_USER, KEY_PERMIT_MODIFY, KEY_SECOND_FORM_MASK, KEY_SELECT_USER, LABEL_END, LABEL_USER_MANAGE_FUNC, mConncetLogical, ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), ModifyUserName(), mProviderChoice, mUserManager, QUESTIONID_USER_MANAGE, SaveAccessPolicy(), SaveIdentityPolicy(), SelectUserToDelete(), and SelectUserToModify().

Referenced by UserProfileManagerInit().

EFI_STATUS EFIAPI UserProfileManagerInit | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Main entry for this driver.

Parameters:
ImageHandle | Image handle this driver.
SystemTable | Pointer to SystemTable.
Return values:
EFI_SUCESS This function always complete successfully.

References USER_PROFILE_MANAGER_CALLBACK_INFO::ConfigAccess, USER_PROFILE_MANAGER_CALLBACK_INFO::DriverHandle, FakeExtractConfig(), FakeRouteConfig(), gUserProfileManagerGuid, USER_PROFILE_MANAGER_CALLBACK_INFO::HiiHandle, mUserManager, USER_PROFILE_MANAGER_CALLBACK_INFO::Signature, USER_PROFILE_MANAGER_SIGNATURE, UserProfileManagerCallback(), UserProfileManagerStrings, and UserProfileManagerVfrBin.

Variable Documentation

USER_INFO_ACCESS mAccessInfo

Referenced by AddToForbidLoad(), DeleteFromForbidLoad(), DisplayLoadForbid(), IsLoadForbidden(), ModidyAccessPolicy(), ResolveAccessPolicy(), and SaveAccessPolicy().

USER_PROFILE_MANAGER_CALLBACK_INFO* mCallbackInfo

UINT8 mConncetLogical

Referenced by AddProviderToPolicy(), GetAllUserInfo(), ModifyIdentityPolicy(), and UserProfileManagerCallback().

HII_VENDOR_DEVICE_PATH mHiiVendorDevicePath

Initial value:

 {
  {
    {
      HARDWARE_DEVICE_PATH,
      HW_VENDOR_DP,
      {
        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
      }
    },
    USER_PROFILE_MANAGER_GUID
  },
  {
    END_DEVICE_PATH_TYPE,
    END_ENTIRE_DEVICE_PATH_SUBTYPE,
    {
      (UINT8) (END_DEVICE_PATH_LENGTH),
      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
    }
  }
}

UINT8 mProviderChoice

Referenced by AddIdentityPolicyItem(), GetAllUserInfo(), ModifyIdentityPolicy(), and UserProfileManagerCallback().

CREDENTIAL_PROVIDER_INFO* mProviderInfo = NULL

Referenced by AddIdentityPolicyItem(), DeleteUserOnProvider(), EnrollUserOnProvider(), ModifyIdentityPolicy(), and ResolveIdentityPolicy().

USER_INFO mUserInfo

Referenced by AddIdentityPolicyItem(), AddProviderToPolicy(), DeleteProviderFromPolicy(), ExpandMemory(), GetAllUserInfo(), ModifyIdentityPolicy(), ModifyUserInfo(), ModifyUserName(), ProviderAlreadyInPolicy(), ResolveAccessPolicy(), SaveAccessPolicy(), SaveIdentityPolicy(), and UpdateCredentialProvider().

EFI_USER_MANAGER_PROTOCOL* mUserManager = NULL

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.h File Reference

Data Structures

struct | CREDENTIAL_PROVIDER_INFO
struct | USER_INFO
struct | USER_INFO_ACCESS
struct | USER_PROFILE_MANAGER_CALLBACK_INFO
struct | HII_VENDOR_DEVICE_PATH

Defines

#define | USER_NAME_LENGTH 17
#define | USER_PROFILE_MANAGER_SIGNATURE SIGNATURE_32 ('U', 'P', 'M', 'S')

Functions

CHAR16 * | GetStringById (IN EFI_STRING_ID Id)
VOID | CallAddUser (VOID)
VOID | SelectUserToModify (VOID)
VOID | SelectUserToDelete (VOID)
VOID | DeleteUser (IN UINT8 UserIndex)
VOID | AddUserToForm (IN EFI_USER_PROFILE_HANDLE User, IN UINT16 Index, IN VOID *OpCodeHandle)
VOID | ModifyUserInfo (IN UINT8 UserIndex)
VOID | ModifyUserName (VOID)
VOID | ModifyIdentityPolicy (VOID)
VOID | AddIdentityPolicyItem (VOID)
VOID | SaveIdentityPolicy (VOID)
VOID | ModidyAccessPolicy (VOID)
VOID | SaveAccessPolicy (VOID)
EFI_STATUS | GetAccessRight (OUT UINT32 *AccessRight)
VOID | DisplayLoadPermit (VOID)
VOID | DisplayLoadForbid (VOID)
VOID | DisplayConnectPermit (VOID)
VOID | DisplayConnectForbid (VOID)
VOID | DeleteFromForbidLoad (IN UINT16 DriverIndex)
VOID | AddToForbidLoad (IN UINT16 DriverIndex)
EFI_STATUS | GetUserNameInput (IN OUT UINTN *UserNameLen, OUT CHAR16 *UserName)
EFI_STATUS | FindInfoByType (IN EFI_USER_PROFILE_HANDLE User, IN UINT8 InfoType, OUT EFI_USER_INFO_HANDLE *UserInfo)
VOID | ResolveIdentityPolicy (IN UINT8 *Ip, IN UINTN IpLen, IN EFI_STRING_ID IpStringId)
VOID | ExpandMemory (IN UINTN ValidLen, IN UINTN ExpandLen)
VOID | DeleteCredentialFromProviders (IN UINT8 *IdentityPolicy, IN UINTN IdentityPolicyLen, IN EFI_USER_PROFILE_HANDLE User)

Variables

UINT8 | UserProfileManagerVfrBin []
UINT8 | UserProfileManagerStrings []
EFI_USER_MANAGER_PROTOCOL * | mUserManager
CREDENTIAL_PROVIDER_INFO * mProviderInfo
UINT8 | mProviderChoice
UINT8 | mConncetLogical
USER_INFO_ACCESS mAccessInfo
USER_INFO mUserInfo
USER_PROFILE_MANAGER_CALLBACK_INFO * mCallbackInfo
EFI_USER_PROFILE_HANDLE | mModifyUser

Detailed Description

The header file for user profile manager driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define USER_NAME_LENGTH 17

Referenced by CallAddUser(), GetUserName(), GetUserNameInput(), and ModifyUserName().

#define USER_PROFILE_MANAGER_SIGNATURE SIGNATURE_32 ('U', 'P', 'M', 'S')

Referenced by UserProfileManagerInit().

Function Documentation

VOID AddIdentityPolicyItem ( VOID )

Update the mUserInfo.NewIdentityPolicy and UI when 'add option' is pressed.

Update the mUserInfo.NewIdentityPolicy, and UI when 'add option' is pressed.

References AddProviderToPolicy(), CREDENTIAL_PROVIDER_INFO::Count, mProviderChoice, mProviderInfo, mUserInfo, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, CREDENTIAL_PROVIDER_INFO::Provider, ProviderAlreadyInPolicy(), and ResolveIdentityPolicy().

Referenced by UserProfileManagerCallback().

VOID AddToForbidLoad ( IN UINT16 DriverIndex )

Add the specified device path by DriverIndex to the forbid device path list (mAccessInfo.LoadForbid).

Parameters:
[in] DriverIndex The index of driver saved in driver options.

References USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, and mAccessInfo.

Referenced by UserProfileManagerCallback().

VOID AddUserToForm | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINT16 | Index,
 |  | IN VOID * | OpCodeHandle
 | ) |  |

Add a username item in form.

Parameters:
[in] | User | Points to the user profile whose username is added.
[in] | Index | The index of the user in the user name list.
[in] | OpCodeHandle | Points to container for dynamic created opcodes.
Add a username item in form.

Parameters:
[in] | User | Points to the user profile whose username is added.
[in] | Index | The index of the user in the user name list
[in] | OpCodeHandle | Points to container for dynamic created opcodes.

References FORMID_USER_INFO, GetUserName(), KEY_DEL_USER, KEY_FIRST_FORM_MASK, and KEY_MODIFY_USER.

Referenced by SelectUserToDelete(), and SelectUserToModify().

VOID CallAddUser ( VOID )

Add a new user profile into the user profile database.

References GetStringById(), GetUserNameInput(), mUserManager, SetAccessPolicy(), SetCreateDate(), SetIdentityPolicy(), SetUserName(), and USER_NAME_LENGTH.

Referenced by UserProfileManagerCallback().

VOID DeleteCredentialFromProviders | ( | IN UINT8 * | IdentityPolicy,
 |  | IN UINTN | IdentityPolicyLen,
 |  | IN EFI_USER_PROFILE_HANDLE | User
 | ) |  |

Delete User's credental from all the providers that exist in User's identity policy.

Parameters:
[in] | IdentityPolicy | Point to User's identity policy.
[in] | IdentityPolicyLen | The length of the identity policy.
[in] | User | Points to user profile.

References DeleteUserOnProvider().

Referenced by DeleteUser(), and UpdateCredentialProvider().

VOID DeleteFromForbidLoad ( IN UINT16 DriverIndex )

Delete the specified device path by DriverIndex from the forbid device path list (mAccessInfo.LoadForbid).

Parameters:
[in] DriverIndex The index of driver in a forbidden device path list.
Delete the specified device path by DriverIndex from the forbid device path list (mAccessInfo.LoadForbid).

Parameters:
[in] DriverIndex The index of driver in forbidden device path list.

References USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, and mAccessInfo.

Referenced by UserProfileManagerCallback().

VOID DeleteUser ( IN UINT8 UserIndex )

Delete the user specified by UserIndex in user profile database.

Parameters:
[in] UserIndex The index of user in the user name list to be deleted.
Delete the user specified by UserIndex in user profile database.

Parameters:
[in] UserIndex The index of user in the user name list to be deleted.

References DeleteCredentialFromProviders(), FindInfoByType(), and mUserManager.

Referenced by UserProfileManagerCallback().

VOID DisplayConnectForbid ( VOID )

Display the forbid connect device path list.

Referenced by UserProfileManagerCallback().

VOID DisplayConnectPermit ( VOID )

Display the permit connect device path.

Referenced by UserProfileManagerCallback().

VOID DisplayLoadForbid ( VOID )

Display the forbid load device path list (mAccessInfo.LoadForbid).

References AddDevicePath(), FORMID_FORBID_LOAD_DP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_LOAD_FORBID_MODIFY, KEY_MODIFY_AP_DP, KEY_MODIFY_USER, LABEL_END, LABLE_FORBID_LOAD_FUNC, USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, mAccessInfo, and mCallbackInfo.

Referenced by UserProfileManagerCallback().

VOID DisplayLoadPermit ( VOID )

Display the permit load device path in the loadable device path list.

References AddDevicePath(), FORMID_PERMIT_LOAD_DP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, IsLoadForbidden(), KEY_LOAD_PERMIT_MODIFY, KEY_MODIFY_AP_DP, KEY_MODIFY_USER, LABEL_END, LABEL_PERMIT_LOAD_FUNC, and mCallbackInfo.

Referenced by UserProfileManagerCallback().

VOID ExpandMemory | ( | IN UINTN | ValidLen,
 |  | IN UINTN | ExpandLen
 | ) |  |

Expand access policy memory size.

Parameters:
[in] | ValidLen | The valid access policy length.
[in] | ExpandLen | The length that is needed to expand.

References USER_INFO::AccessPolicy, USER_INFO::AccessPolicyLen, and mUserInfo.

Referenced by SaveAccessPolicy().

EFI_STATUS FindInfoByType | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINT8 | InfoType,
 |  | OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Find the specified info in User profile by the InfoType.

Parameters:
[in] | User | Handle of the user whose information will be searched.
[in] | InfoType | The user information type to find.
[out] | UserInfo | Points to user information handle found.
Return values:
EFI_SUCCESS | Find the user information successfully.
Others | Fail to find the user information.

References mUserManager, and TRUE.

Referenced by DeleteUser(), ModifyUserName(), SaveAccessPolicy(), and SaveIdentityPolicy().

EFI_STATUS GetAccessRight ( OUT UINT32 * AccessRight )

Get current user's access rights.

Parameters:
[out] AccessRight Points to the buffer used for user's access rights.
Return values:
EFI_SUCCESS | Get current user access rights successfully.
others | Fail to get current user access rights.
Get current user's access right.

Parameters:
[out] AccessRight Points to the buffer used for user's access right.
Return values:
EFI_SUCCESS | Get current user access right successfully.
others | Fail to get current user access right.

References mUserManager, and TRUE.

Referenced by ModifyUserInfo(), SelectUserToModify(), and UserProfileManagerCallback().

CHAR16* GetStringById ( IN EFI_STRING_ID Id )

Get string by string id from HII Interface.

Parameters:
[in] Id String ID to get the string from.
Return values:
CHAR16 | * String from ID.
NULL | If error occurs.

References USER_PROFILE_MANAGER_CALLBACK_INFO::HiiHandle, USB_PROVIDER_CALLBACK_INFO::HiiHandle, and PWD_PROVIDER_CALLBACK_INFO::HiiHandle.

Referenced by CallAddUser(), CredentialDriverCallback(), CredentialEnroll(), CredentialGetNextInfo(), CredentialUser(), GetPassword(), and UserProfileManagerCallback().

EFI_STATUS GetUserNameInput | ( | IN OUT UINTN * | UserNameLen,
 |  | OUT CHAR16 * | UserName
 | ) |  |

Get user name from the popup windows.

Parameters:
[in,out] | UserNameLen | On entry, point to the buffer lengh of UserName. On exit, point to the input user name length.
[out] | UserName | The buffer to hold the input user name.
Return values:
EFI_ABORTED | It is given up by pressing 'ESC' key.
EFI_NOT_READY | Not a valid input at all.
EFI_SUCCESS | Get a user name successfully.
Get user name from the popup windows.

Parameters:
[in,out] | UserNameLen | On entry, point to UserName buffer lengh, in bytes. On exit, point to input user name length, in bytes.
[out] | UserName | The buffer to hold the input user name.
Return values:
EFI_ABORTED | It is given up by pressing 'ESC' key.
EFI_NOT_READY | Not a valid input at all.
EFI_SUCCESS | Get a user name successfully.

References TRUE, and USER_NAME_LENGTH.

Referenced by CallAddUser(), and ModifyUserName().

VOID ModidyAccessPolicy ( VOID )

Display modify user access policy form

In this form, access right, access setu,p and access boot order are dynamically added. Load devicepath and connect devicepath are displayed too.

Display modify user access policy form.

In this form, access right, access setup and access boot order are dynamically added. Load devicepath and connect devicepath are displayed too.

References ACCESS_SETUP_ADMIN, ACCESS_SETUP_NORMAL, ACCESS_SETUP_RESTRICTED, USER_INFO_ACCESS::AccessBootOrder, USER_INFO_ACCESS::AccessRight, USER_INFO_ACCESS::AccessSetup, FORMID_MODIFY_AP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_MODIFY_AP, KEY_MODIFY_BOOT, KEY_MODIFY_RIGHT, KEY_MODIFY_SETUP, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_AP_MOD_FUNC, LABEL_END, mAccessInfo, mCallbackInfo, and ResolveAccessPolicy().

Referenced by UserProfileManagerCallback().

VOID ModifyIdentityPolicy ( VOID )

Display the form of modifying user identity policy.

Display the form of the modifying user identity policy.

References CREDENTIAL_PROVIDER_INFO::Count, FORMID_MODIFY_IP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, KEY_MODIFY_CONN, KEY_MODIFY_IP, KEY_MODIFY_PROV, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_END, LABEL_IP_MOD_FUNC, mCallbackInfo, mConncetLogical, mProviderChoice, mProviderInfo, mUserInfo, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, USER_INFO::NewIdentityPolicyModified, CREDENTIAL_PROVIDER_INFO::Provider, and ResolveIdentityPolicy().

Referenced by UserProfileManagerCallback().

VOID ModifyUserInfo ( IN UINT8 UserIndex )

Display modify user information form

In this form, username, create Date, usage date, usage count, identity policy, and access policy are displayed.

Parameters:
[in] UserIndex The index of the user in display list to modify.
Display modify user information form.

This form displays, username, create Date, usage date, usage count, identity policy, and access policy.

Parameters:
[in] UserIndex The index of the user in display list to modify.

References USER_INFO::CreateDate, USER_INFO::CreateDateExist, FORMID_MODIFY_AP, FORMID_MODIFY_IP, FORMID_USER_INFO, GetAccessRight(), GetAllUserInfo(), gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, KEY_MODIFY_AP, KEY_MODIFY_IP, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_END, LABEL_USER_INFO_FUNC, mCallbackInfo, mModifyUser, mUserInfo, mUserManager, ResolveCount(), ResolveDate(), ResolveIdentityPolicy(), USER_INFO::UsageCount, USER_INFO::UsageDate, USER_INFO::UsageDateExist, and USER_INFO::UserName.

VOID ModifyUserName ( VOID )

Get the username from user input and update username string in Hii database with it.

Get the username from user input, and update username string in the Hii database with it.

References FindInfoByType(), GetUserNameInput(), PWD_PROVIDER_CALLBACK_INFO::HiiHandle, mCallbackInfo, mModifyUser, mUserInfo, mUserManager, USER_NAME_LENGTH, and USER_INFO::UserName.

Referenced by UserProfileManagerCallback().

VOID ResolveIdentityPolicy | ( | IN UINT8 * | Ip,
 |  | IN UINTN | IpLen,
 |  | IN EFI_STRING_ID | IpStringId
 | ) |  |

Convert the identity policy to a unicode string and update the Hii database IpStringId string with it.

Parameters:
[in] | Ip | Points to identity policy.
[in] | IpLen | The identity policy length.
[in] | IpStringId | String ID in the HII database to be replaced.

References AddStr(), CREDENTIAL_PROVIDER_INFO::Count, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, mCallbackInfo, mProviderInfo, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by AddIdentityPolicyItem(), ModifyIdentityPolicy(), ModifyUserInfo(), and SaveIdentityPolicy().

VOID SaveAccessPolicy ( VOID )

Collect all the access policy data to mUserInfo.AccessPolicy, and save it to user profile.

References ACCESS_SETUP_ADMIN, ACCESS_SETUP_NORMAL, ACCESS_SETUP_RESTRICTED, USER_INFO_ACCESS::AccessBootOrder, USER_INFO::AccessPolicy, USER_INFO::AccessPolicyLen, USER_INFO::AccessPolicyModified, USER_INFO_ACCESS::AccessRight, USER_INFO_ACCESS::AccessSetup, USER_INFO_ACCESS::ConnectForbid, USER_INFO_ACCESS::ConnectForbidLen, USER_INFO_ACCESS::ConnectPermit, USER_INFO_ACCESS::ConnectPermitLen, ExpandMemory(), FindInfoByType(), USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, USER_INFO_ACCESS::LoadPermit, USER_INFO_ACCESS::LoadPermitLen, mAccessInfo, mModifyUser, mUserInfo, mUserManager, and TRUE.

Referenced by UserProfileManagerCallback().

VOID SaveIdentityPolicy ( VOID )

Save the identity policy and update UI with it.

This funciton will verify the new identity policy, in current implementation, the identity policy can be: T, P & P & P & ..., P | P | P | ... Here, "T" means "True", "P" means "Credential Provider", "&" means "and", "|" means "or". Other identity policies are not supported.

References CheckNewIdentityPolicy(), FindInfoByType(), USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, mModifyUser, mUserInfo, mUserManager, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, USER_INFO::NewIdentityPolicyModified, ResolveIdentityPolicy(), and UpdateCredentialProvider().

Referenced by UserProfileManagerCallback().

VOID SelectUserToDelete ( VOID )

Display user select form, cab select a user to delete.

References AddUserToForm(), FORMID_DEL_USER, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_DEL_USER, KEY_SELECT_USER, LABEL_END, LABEL_USER_DEL_FUNC, mCallbackInfo, mUserManager, and TRUE.

Referenced by UserProfileManagerCallback().

VOID SelectUserToModify ( VOID )

Display user select form; can select a user to modify.

Display user select form, cab select a user to modify.

References AddUserToForm(), FORMID_MODIFY_USER, GetAccessRight(), gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_END, LABEL_USER_MOD_FUNC, mCallbackInfo, mUserManager, and TRUE.

Referenced by UserProfileManagerCallback().

Variable Documentation

USER_INFO_ACCESS mAccessInfo

Referenced by AddToForbidLoad(), DeleteFromForbidLoad(), DisplayLoadForbid(), IsLoadForbidden(), ModidyAccessPolicy(), ResolveAccessPolicy(), and SaveAccessPolicy().

USER_PROFILE_MANAGER_CALLBACK_INFO* mCallbackInfo

Referenced by AddDevicePath(), DisplayLoadForbid(), DisplayLoadPermit(), GetUserName(), ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), ModifyUserName(), ResolveCount(), ResolveDate(), ResolveIdentityPolicy(), SelectUserToDelete(), and SelectUserToModify().

UINT8 mConncetLogical

Referenced by AddProviderToPolicy(), GetAllUserInfo(), ModifyIdentityPolicy(), and UserProfileManagerCallback().

EFI_USER_PROFILE_HANDLE mModifyUser

Referenced by GetAllUserInfo(), ModifyUserInfo(), ModifyUserName(), SaveAccessPolicy(), SaveIdentityPolicy(), and UpdateCredentialProvider().

UINT8 mProviderChoice

Referenced by AddIdentityPolicyItem(), GetAllUserInfo(), ModifyIdentityPolicy(), and UserProfileManagerCallback().

CREDENTIAL_PROVIDER_INFO* mProviderInfo

Referenced by AddIdentityPolicyItem(), DeleteUserOnProvider(), EnrollUserOnProvider(), ModifyIdentityPolicy(), and ResolveIdentityPolicy().

USER_INFO mUserInfo

Referenced by AddIdentityPolicyItem(), AddProviderToPolicy(), DeleteProviderFromPolicy(), ExpandMemory(), GetAllUserInfo(), ModifyIdentityPolicy(), ModifyUserInfo(), ModifyUserName(), ProviderAlreadyInPolicy(), ResolveAccessPolicy(), SaveAccessPolicy(), SaveIdentityPolicy(), and UpdateCredentialProvider().

EFI_USER_MANAGER_PROTOCOL* mUserManager

Referenced by CallAddUser(), DeleteUser(), DxeDeferImageLoadHandler(), FindInfoByType(), FindUserManagerProtocol(), GetAccessRight(), GetAllUserInfo(), GetUserName(), ModifyUserInfo(), ModifyUserName(), SaveAccessPolicy(), SaveIdentityPolicy(), SelectUserToDelete(), SelectUserToModify(), SetAccessPolicy(), SetCreateDate(), SetIdentityPolicy(), SetUserName(), UserProfileManagerCallback(), and UserProfileManagerInit().

UINT8 UserProfileManagerStrings[]

Referenced by UserProfileManagerInit().

UINT8 UserProfileManagerVfrBin[]

Referenced by UserProfileManagerInit().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerData.h File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerData.h File Reference

Defines

#define | FORMID_USER_MANAGE 0x0001
#define | FORMID_MODIFY_USER 0x0002
#define | FORMID_DEL_USER 0x0003
#define | FORMID_USER_INFO 0x0004
#define | FORMID_MODIFY_IP 0x0005
#define | FORMID_MODIFY_AP 0x0006
#define | FORMID_LOAD_DP 0x0007
#define | FORMID_CONNECT_DP 0x0008
#define | FORMID_PERMIT_LOAD_DP 0x0009
#define | FORMID_FORBID_LOAD_DP 0x000A
#define | FORMID_PERMIT_CONNECT_DP 0x000B
#define | FORMID_FORBID_CONNECT_DP 0x000C
#define | LABEL_USER_MANAGE_FUNC 0x0010
#define | LABEL_USER_DEL_FUNC 0x0020
#define | LABEL_USER_MOD_FUNC 0x0030
#define | LABEL_USER_INFO_FUNC 0x0040
#define | LABEL_IP_MOD_FUNC 0x0050
#define | LABEL_AP_MOD_FUNC 0x0060
#define | LABEL_PERMIT_LOAD_FUNC 0x0070
#define | LABLE_FORBID_LOAD_FUNC 0x0080
#define | LABEL_END 0x00F0
#define | KEY_MODIFY_USER 0x4000
#define | KEY_DEL_USER 0x8000
#define | KEY_ADD_USER 0xC000
#define | KEY_FIRST_FORM_MASK 0xC000
#define | KEY_ENTER_NEXT_FORM 0x0000
#define | KEY_SELECT_USER 0x1000
#define | KEY_MODIFY_AP_DP 0x2000
#define | KEY_OPEN_CLOSE_FORM_ACTION 0x3000
#define | KEY_SECOND_FORM_MASK 0x3000
#define | KEY_MODIFY_NAME 0x0200
#define | KEY_MODIFY_IP 0x0400
#define | KEY_MODIFY_AP 0x0600
#define | KEY_MODIFY_INFO_MASK 0x0E00
#define | KEY_MODIFY_USER_NAME 0x5200
#define | KEY_MODIFY_PROV 0x0040
#define | KEY_MODIFY_MTYPE 0x0080
#define | KEY_MODIFY_CONN 0x00C0
#define | KEY_ADD_IP_OP 0x0100
#define | KEY_IP_RETURN_UIF 0x0140
#define | KEY_MODIFY_IP_MASK 0x01C0
#define | KEY_ADD_LOGICAL_OP 0x5500
#define | KEY_IP_RETURN 0x5540
#define | KEY_MODIFY_RIGHT 0x0040
#define | KEY_MODIFY_SETUP 0x0080
#define | KEY_MODIFY_BOOT 0x00C0
#define | KEY_MODIFY_LOAD 0x0100
#define | KEY_MODIFY_CONNECT 0x0140
#define | KEY_AP_RETURN_UIF 0x0180
#define | KEY_MODIFY_AP_MASK 0x01C0
#define | KEY_LOAD_DP 0x5700
#define | KEY_CONN_DP 0x5740
#define | KEY_AP_RETURN 0x5780
#define | KEY_PERMIT_MODIFY 0x0010
#define | KEY_FORBID_MODIFY 0x0020
#define | KEY_DISPLAY_DP_MASK 0x0030
#define | KEY_LOAD_PERMIT 0x5710
#define | KEY_LOAD_FORBID 0x5720
#define | KEY_CONNECT_PERMIT 0x5750
#define | KEY_CONNECT_FORBID 0x5760
#define | KEY_LOAD_PERMIT_MODIFY 0x0000
#define | KEY_LOAD_FORBID_MODIFY 0x0400
#define | KEY_CONNECT_PERMIT_MODIFY 0x0800
#define | KEY_CONNECT_FORBID_MODIFY 0x0C00
#define | KEY_MODIFY_DP_MASK 0x0C00
#define | ACCESS_SETUP_RESTRICTED 1
#define | ACCESS_SETUP_NORMAL 2
#define | ACCESS_SETUP_ADMIN 3
#define | QUESTIONID_USER_MANAGE 0x3001

Detailed Description

The form data for user profile manager driver.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define ACCESS_SETUP_ADMIN 3

Referenced by ModidyAccessPolicy(), ResolveAccessPolicy(), and SaveAccessPolicy().

#define ACCESS_SETUP_NORMAL 2

Referenced by ModidyAccessPolicy(), ResolveAccessPolicy(), and SaveAccessPolicy().

#define ACCESS_SETUP_RESTRICTED 1

Referenced by ModidyAccessPolicy(), ResolveAccessPolicy(), and SaveAccessPolicy().

#define FORMID_CONNECT_DP 0x0008

#define FORMID_DEL_USER 0x0003

Referenced by SelectUserToDelete(), and UserProfileManagerCallback().

#define FORMID_FORBID_CONNECT_DP 0x000C

#define FORMID_FORBID_LOAD_DP 0x000A

Referenced by DisplayLoadForbid().

#define FORMID_LOAD_DP 0x0007

#define FORMID_MODIFY_AP 0x0006

Referenced by ModidyAccessPolicy(), and ModifyUserInfo().

#define FORMID_MODIFY_IP 0x0005

Referenced by ModifyIdentityPolicy(), and ModifyUserInfo().

#define FORMID_MODIFY_USER 0x0002

Referenced by SelectUserToModify(), and UserProfileManagerCallback().

#define FORMID_PERMIT_CONNECT_DP 0x000B

#define FORMID_PERMIT_LOAD_DP 0x0009

Referenced by DisplayLoadPermit().

#define FORMID_USER_INFO 0x0004

Referenced by AddUserToForm(), and ModifyUserInfo().

#define FORMID_USER_MANAGE 0x0001

Referenced by UserProfileManagerCallback().

#define KEY_ADD_IP_OP 0x0100

Referenced by UserProfileManagerCallback().

#define KEY_ADD_LOGICAL_OP 0x5500

#define KEY_ADD_USER 0xC000

Referenced by UserProfileManagerCallback().

#define KEY_AP_RETURN 0x5780

#define KEY_AP_RETURN_UIF 0x0180

Referenced by UserProfileManagerCallback().

#define KEY_CONN_DP 0x5740

#define KEY_CONNECT_FORBID 0x5760

#define KEY_CONNECT_FORBID_MODIFY 0x0C00

Referenced by UserProfileManagerCallback().

#define KEY_CONNECT_PERMIT 0x5750

#define KEY_CONNECT_PERMIT_MODIFY 0x0800

Referenced by UserProfileManagerCallback().

#define KEY_DEL_USER 0x8000

Referenced by AddUserToForm(), SelectUserToDelete(), and UserProfileManagerCallback().

#define KEY_DISPLAY_DP_MASK 0x0030

Referenced by UserProfileManagerCallback().

#define KEY_ENTER_NEXT_FORM 0x0000

Referenced by UserProfileManagerCallback().

#define KEY_FIRST_FORM_MASK 0xC000

Referenced by AddUserToForm(), and UserProfileManagerCallback().

#define KEY_FORBID_MODIFY 0x0020

Referenced by UserProfileManagerCallback().

#define KEY_IP_RETURN 0x5540

#define KEY_IP_RETURN_UIF 0x0140

Referenced by UserProfileManagerCallback().

#define KEY_LOAD_DP 0x5700

#define KEY_LOAD_FORBID 0x5720

#define KEY_LOAD_FORBID_MODIFY 0x0400

Referenced by DisplayLoadForbid(), and UserProfileManagerCallback().

#define KEY_LOAD_PERMIT 0x5710

#define KEY_LOAD_PERMIT_MODIFY 0x0000

Referenced by DisplayLoadPermit(), and UserProfileManagerCallback().

#define KEY_MODIFY_AP 0x0600

Referenced by ModidyAccessPolicy(), ModifyUserInfo(), and UserProfileManagerCallback().

#define KEY_MODIFY_AP_DP 0x2000

Referenced by DisplayLoadForbid(), DisplayLoadPermit(), and UserProfileManagerCallback().

#define KEY_MODIFY_AP_MASK 0x01C0

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_BOOT 0x00C0

Referenced by ModidyAccessPolicy(), and UserProfileManagerCallback().

#define KEY_MODIFY_CONN 0x00C0

Referenced by ModifyIdentityPolicy(), and UserProfileManagerCallback().

#define KEY_MODIFY_CONNECT 0x0140

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_DP_MASK 0x0C00

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_INFO_MASK 0x0E00

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_IP 0x0400

Referenced by ModifyIdentityPolicy(), ModifyUserInfo(), and UserProfileManagerCallback().

#define KEY_MODIFY_IP_MASK 0x01C0

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_LOAD 0x0100

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_MTYPE 0x0080

#define KEY_MODIFY_NAME 0x0200

Referenced by UserProfileManagerCallback().

#define KEY_MODIFY_PROV 0x0040

Referenced by ModifyIdentityPolicy(), and UserProfileManagerCallback().

#define KEY_MODIFY_RIGHT 0x0040

Referenced by ModidyAccessPolicy(), and UserProfileManagerCallback().

#define KEY_MODIFY_SETUP 0x0080

Referenced by ModidyAccessPolicy(), and UserProfileManagerCallback().

#define KEY_MODIFY_USER 0x4000

Referenced by AddUserToForm(), DisplayLoadForbid(), DisplayLoadPermit(), ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), SelectUserToModify(), and UserProfileManagerCallback().

#define KEY_MODIFY_USER_NAME 0x5200

#define KEY_OPEN_CLOSE_FORM_ACTION 0x3000

#define KEY_PERMIT_MODIFY 0x0010

Referenced by UserProfileManagerCallback().

#define KEY_SECOND_FORM_MASK 0x3000

Referenced by UserProfileManagerCallback().

#define KEY_SELECT_USER 0x1000

Referenced by ModidyAccessPolicy(), ModifyIdentityPolicy(), ModifyUserInfo(), SelectUserToDelete(), SelectUserToModify(), and UserProfileManagerCallback().

#define LABEL_AP_MOD_FUNC 0x0060

Referenced by ModidyAccessPolicy().

#define LABEL_END 0x00F0

#define LABEL_IP_MOD_FUNC 0x0050

Referenced by ModifyIdentityPolicy().

#define LABEL_PERMIT_LOAD_FUNC 0x0070

Referenced by DisplayLoadPermit().

#define LABEL_USER_DEL_FUNC 0x0020

Referenced by SelectUserToDelete().

#define LABEL_USER_INFO_FUNC 0x0040

Referenced by ModifyUserInfo().

#define LABEL_USER_MANAGE_FUNC 0x0010

Referenced by UserProfileManagerCallback().

#define LABEL_USER_MOD_FUNC 0x0030

Referenced by SelectUserToModify().

#define LABLE_FORBID_LOAD_FUNC 0x0080

Referenced by DisplayLoadForbid().

#define QUESTIONID_USER_MANAGE 0x3001

Referenced by UserProfileManagerCallback().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerVfr.Vfr File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerVfr.Vfr File Reference

Defines

#define | USER_MANAGER_CLASS 0x00
#define | USER_MANAGER_SUBCLASS 0x04

Variables

formset | guid = USER_PROFILE_MANAGER_GUID
formset | title = STRING_TOKEN(STR_FORMSET_TITLE)
formset | help = STRING_TOKEN(STR_TITLE_HELP)
formset class USER_MANAGER_CLASS | subclass = USER_MANAGER_SUBCLASS
formset class
USER_MANAGER_CLASS form 		formid = FORMID_USER_MANAGE
label | LABEL_USER_MANAGE_FUNC
label | LABEL_END
suppressif | TRUE
text | text = STRING_TOKEN(STR_NULL_STRING)
text | flags = INTERACTIVE
text | key = QUESTIONID_USER_MANAGE
endif
endform
label | LABEL_USER_MOD_FUNC
label | LABEL_USER_DEL_FUNC
label | LABEL_USER_INFO_FUNC
label | LABEL_IP_MOD_FUNC
label | LABEL_AP_MOD_FUNC
goto | FORMID_LOAD_DP
goto | prompt = STRING_TOKEN(STR_LOAD)
goto | FORMID_CONNECT_DP
goto | FORMID_PERMIT_LOAD_DP
goto | FORMID_FORBID_LOAD_DP
label | LABEL_PERMIT_LOAD_FUNC
label | LABLE_FORBID_LOAD_FUNC
goto | FORMID_PERMIT_CONNECT_DP
goto | FORMID_FORBID_CONNECT_DP
endformset

Detailed Description

User Profile Manager formset.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define USER_MANAGER_CLASS 0x00

#define USER_MANAGER_SUBCLASS 0x04

Variable Documentation

endform

endformset

endif

goto flags = INTERACTIVE

form formid = FORMID_USER_MANAGE

goto FORMID_CONNECT_DP

goto FORMID_FORBID_CONNECT_DP

goto FORMID_FORBID_LOAD_DP

goto FORMID_LOAD_DP

goto FORMID_PERMIT_CONNECT_DP

goto FORMID_PERMIT_LOAD_DP

formset guid = USER_PROFILE_MANAGER_GUID

goto help = STRING_TOKEN(STR_TITLE_HELP)

goto key = QUESTIONID_USER_MANAGE

label LABEL_AP_MOD_FUNC

label LABEL_END

label LABEL_IP_MOD_FUNC

label LABEL_PERMIT_LOAD_FUNC

label LABEL_USER_DEL_FUNC

label LABEL_USER_INFO_FUNC

label LABEL_USER_MANAGE_FUNC

label LABEL_USER_MOD_FUNC

label LABLE_FORBID_LOAD_FUNC

goto prompt = STRING_TOKEN(STR_LOAD)

formset class USER_MANAGER_CLASS subclass = USER_MANAGER_SUBCLASS

subtitle text = STRING_TOKEN(STR_NULL_STRING)

form title = STRING_TOKEN(STR_FORMSET_TITLE)

suppressif TRUE

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileModify.c File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileModify.c File Reference

Functions

VOID | SelectUserToModify (VOID)
VOID | GetAllUserInfo (VOID)
VOID | ResolveDate (IN EFI_TIME *Date, IN EFI_STRING_ID DateId)
VOID | ResolveCount (IN UINT32 CountVal, IN EFI_STRING_ID CountId)
VOID | AddStr (IN OUT CHAR16 **Source1, IN CONST CHAR16 *Source2)
VOID | ResolveIdentityPolicy (IN UINT8 *Ip, IN UINTN IpLen, IN EFI_STRING_ID IpStringId)
VOID | ModifyUserInfo (IN UINT8 UserIndex)
VOID | ResolveAccessPolicy (VOID)
EFI_STATUS | FindInfoByType (IN EFI_USER_PROFILE_HANDLE User, IN UINT8 InfoType, OUT EFI_USER_INFO_HANDLE *UserInfo)
VOID | ModidyAccessPolicy (VOID)
VOID | ExpandMemory (IN UINTN ValidLen, IN UINTN ExpandLen)
VOID | ModifyUserName (VOID)
VOID | ModifyIdentityPolicy (VOID)
EFI_STATUS | GetAccessRight (OUT UINT32 *AccessRight)

Variables

EFI_USER_PROFILE_HANDLE | mModifyUser = NULL

Detailed Description

The functions to modify a user profile.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AddStr | ( | IN OUT CHAR16 ** | Source1,
 |  | IN CONST CHAR16 * | Source2
 | ) |  |

Concatenates one Null-terminated Unicode string to another Null-terminated Unicode string.

Parameters:
[in,out] | Source1 | On entry, point to a Null-terminated Unicode string. On exit, point to a new concatenated Unicode string
[in] | Source2 | Pointer to a Null-terminated Unicode string.

Referenced by ResolveIdentityPolicy().

VOID ExpandMemory | ( | IN UINTN | ValidLen,
 |  | IN UINTN | ExpandLen
 | ) |  |

Expand access policy memory size.

Parameters:
[in] | ValidLen | The valid access policy length.
[in] | ExpandLen | The length that is needed to expand.

References USER_INFO::AccessPolicy, USER_INFO::AccessPolicyLen, and mUserInfo.

Referenced by SaveAccessPolicy().

EFI_STATUS FindInfoByType | ( | IN EFI_USER_PROFILE_HANDLE | User,
 |  | IN UINT8 | InfoType,
 |  | OUT EFI_USER_INFO_HANDLE * | UserInfo
 | ) |  |

Find the specified info in User profile by the InfoType.

Parameters:
[in] | User | Handle of the user whose information will be searched.
[in] | InfoType | The user information type to find.
[out] | UserInfo | Points to user information handle found.
Return values:
EFI_SUCCESS | Find the user information successfully.
Others | Fail to find the user information.

References mUserManager, and TRUE.

Referenced by DeleteUser(), ModifyUserName(), SaveAccessPolicy(), and SaveIdentityPolicy().

EFI_STATUS GetAccessRight ( OUT UINT32 * AccessRight )

Get current user's access right.

Parameters:
[out] AccessRight Points to the buffer used for user's access right.
Return values:
EFI_SUCCESS | Get current user access right successfully.
others | Fail to get current user access right.

References mUserManager, and TRUE.

Referenced by ModifyUserInfo(), SelectUserToModify(), and UserProfileManagerCallback().

VOID GetAllUserInfo ( VOID )

Get all the user info from mModifyUser in the user manager, and save on the global variable.

References USER_INFO::AccessPolicy, USER_INFO::AccessPolicyLen, USER_INFO::AccessPolicyModified, USER_INFO::CreateDate, USER_INFO::CreateDateExist, USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, USER_INFO::IdentityPolicyModified, mConncetLogical, mModifyUser, mProviderChoice, mUserInfo, mUserManager, TRUE, USER_INFO::UsageCount, USER_INFO::UsageDate, USER_INFO::UsageDateExist, and USER_INFO::UserName.

Referenced by ModifyUserInfo().

VOID ModidyAccessPolicy ( VOID )

Display modify user access policy form.

In this form, access right, access setup and access boot order are dynamically added. Load devicepath and connect devicepath are displayed too.

References ACCESS_SETUP_ADMIN, ACCESS_SETUP_NORMAL, ACCESS_SETUP_RESTRICTED, USER_INFO_ACCESS::AccessBootOrder, USER_INFO_ACCESS::AccessRight, USER_INFO_ACCESS::AccessSetup, FORMID_MODIFY_AP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_MODIFY_AP, KEY_MODIFY_BOOT, KEY_MODIFY_RIGHT, KEY_MODIFY_SETUP, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_AP_MOD_FUNC, LABEL_END, mAccessInfo, mCallbackInfo, and ResolveAccessPolicy().

Referenced by UserProfileManagerCallback().

VOID ModifyIdentityPolicy ( VOID )

Display the form of the modifying user identity policy.

References CREDENTIAL_PROVIDER_INFO::Count, FORMID_MODIFY_IP, gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, KEY_MODIFY_CONN, KEY_MODIFY_IP, KEY_MODIFY_PROV, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_END, LABEL_IP_MOD_FUNC, mCallbackInfo, mConncetLogical, mProviderChoice, mProviderInfo, mUserInfo, USER_INFO::NewIdentityPolicy, USER_INFO::NewIdentityPolicyLen, USER_INFO::NewIdentityPolicyModified, CREDENTIAL_PROVIDER_INFO::Provider, and ResolveIdentityPolicy().

Referenced by UserProfileManagerCallback().

VOID ModifyUserInfo ( IN UINT8 UserIndex )

Display modify user information form.

This form displays, username, create Date, usage date, usage count, identity policy, and access policy.

Parameters:
[in] UserIndex The index of the user in display list to modify.

References USER_INFO::CreateDate, USER_INFO::CreateDateExist, FORMID_MODIFY_AP, FORMID_MODIFY_IP, FORMID_USER_INFO, GetAccessRight(), GetAllUserInfo(), gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, USER_INFO::IdentityPolicy, USER_INFO::IdentityPolicyLen, KEY_MODIFY_AP, KEY_MODIFY_IP, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_END, LABEL_USER_INFO_FUNC, mCallbackInfo, mModifyUser, mUserInfo, mUserManager, ResolveCount(), ResolveDate(), ResolveIdentityPolicy(), USER_INFO::UsageCount, USER_INFO::UsageDate, USER_INFO::UsageDateExist, and USER_INFO::UserName.

VOID ModifyUserName ( VOID )

Get the username from user input, and update username string in the Hii database with it.

References FindInfoByType(), GetUserNameInput(), PWD_PROVIDER_CALLBACK_INFO::HiiHandle, mCallbackInfo, mModifyUser, mUserInfo, mUserManager, USER_NAME_LENGTH, and USER_INFO::UserName.

Referenced by UserProfileManagerCallback().

VOID ResolveAccessPolicy ( VOID )

Get all the access policy info from current user info, and save in the global variable.

References ACCESS_SETUP_ADMIN, ACCESS_SETUP_NORMAL, ACCESS_SETUP_RESTRICTED, USER_INFO_ACCESS::AccessBootOrder, USER_INFO::AccessPolicy, USER_INFO::AccessPolicyLen, USER_INFO_ACCESS::AccessRight, USER_INFO_ACCESS::AccessSetup, USER_INFO_ACCESS::ConnectForbid, USER_INFO_ACCESS::ConnectForbidLen, USER_INFO_ACCESS::ConnectPermit, USER_INFO_ACCESS::ConnectPermitLen, USER_INFO_ACCESS::LoadForbid, USER_INFO_ACCESS::LoadForbidLen, USER_INFO_ACCESS::LoadPermit, USER_INFO_ACCESS::LoadPermitLen, mAccessInfo, and mUserInfo.

Referenced by ModidyAccessPolicy().

VOID ResolveCount | ( | IN UINT32 | CountVal,
 |  | IN EFI_STRING_ID | CountId
 | ) |  |

Convert the CountVal to a string, and update the Hii database CountId string with it.

Parameters:
[in] | CountVal | The hex value to convert.
[in] | CountId | String ID in the HII database to be replaced.

References PWD_PROVIDER_CALLBACK_INFO::HiiHandle, and mCallbackInfo.

Referenced by ModifyUserInfo().

VOID ResolveDate | ( | IN EFI_TIME * | Date,
 |  | IN EFI_STRING_ID | DateId
 | ) |  |

Convert the Date to a string, and update the Hii database DateID string with it.

Parameters:
[in] | Date | Points to the date to be converted.
[in] | DateId | String ID in the HII database to be replaced.

References PWD_PROVIDER_CALLBACK_INFO::HiiHandle, and mCallbackInfo.

Referenced by ModifyUserInfo().

VOID ResolveIdentityPolicy | ( | IN UINT8 * | Ip,
 |  | IN UINTN | IpLen,
 |  | IN EFI_STRING_ID | IpStringId
 | ) |  |

Convert the identity policy to a unicode string and update the Hii database IpStringId string with it.

Parameters:
[in] | Ip | Points to identity policy.
[in] | IpLen | The identity policy length.
[in] | IpStringId | String ID in the HII database to be replaced.

References AddStr(), CREDENTIAL_PROVIDER_INFO::Count, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, mCallbackInfo, mProviderInfo, and CREDENTIAL_PROVIDER_INFO::Provider.

Referenced by AddIdentityPolicyItem(), ModifyIdentityPolicy(), ModifyUserInfo(), and SaveIdentityPolicy().

VOID SelectUserToModify ( VOID )

Display user select form, cab select a user to modify.

References AddUserToForm(), FORMID_MODIFY_USER, GetAccessRight(), gUserProfileManagerGuid, PWD_PROVIDER_CALLBACK_INFO::HiiHandle, KEY_MODIFY_USER, KEY_SELECT_USER, LABEL_END, LABEL_USER_MOD_FUNC, mCallbackInfo, mUserManager, and TRUE.

Referenced by UserProfileManagerCallback().

Variable Documentation

EFI_USER_PROFILE_HANDLE mModifyUser = NULL

Referenced by GetAllUserInfo(), ModifyUserInfo(), ModifyUserName(), SaveAccessPolicy(), SaveIdentityPolicy(), and UpdateCredentialProvider().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.c File Reference

Functions

EFI_STATUS | AutenticatedVariableServiceInitialize (VOID)
UINT32 | AddPubKeyInStore (IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN UINT8 *PubKey)
EFI_STATUS | VerifyDataPayload (IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN UINT8 *Data, IN UINTN DataSize, IN UINT8 *PubKey)
VOID | UpdatePlatformMode (IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN UINT32 Mode)
EFI_STATUS | ProcessVarWithPk (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, IN BOOLEAN IsPk)
EFI_STATUS | ProcessVarWithKek (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes)
EFI_STATUS | VerifyVariable (IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, OUT UINT32 *KeyIndex, OUT UINT64 *MonotonicCount)

Variables

UINT32 | mPubKeyNumber
UINT32 | mPlatformMode
EFI_GUID | mSignatureSupport [SIGSUPPORT_NUM] = {EFI_CERT_RSA2048_SHA256_GUID, EFI_CERT_RSA2048_SHA1_GUID}
CONST UINT8 | mRsaE [] = { 0x01, 0x00, 0x01 }

Detailed Description

Implement authentication services for the authenticated variable service in UEFI2.2.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

UINT32 AddPubKeyInStore | ( | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN UINT8 * | PubKey
 | ) |  |

Add public key in store and return its index.

Parameters:
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | PubKey | The input pointer to Public Key data.
Returns:
The index of new added item.

References EFI_CERT_TYPE_RSA2048_SIZE, FindVariable(), MAX_KEY_NUM, mPubKeyNumber, TRUE, UpdateVariable(), and VAR_AUTH_KEY_DB.

Referenced by ProcessVariable(), and VerifyVariable().

EFI_STATUS AutenticatedVariableServiceInitialize ( VOID )

Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | The function successfully executed.
EFI_OUT_OF_RESOURCES | Failed to allocate enough memory resources.

Referenced by VariableServiceInitialize(), and VariableWriteServiceInitialize().

EFI_STATUS ProcessVarWithKek | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes
 | ) |  |

Process variable with key exchange key for verification.

Parameters:
[in] | VariableName | The name of Variable to be found.
[in] | VendorGuid | The variable vendor GUID.
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable did NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable passed validation successfully.

References AUTHINFO_SIZE, VARIABLE_POINTER_TRACK::CurrPtr, EFI_CERT_TYPE_RSA2048_SIZE, FindVariable(), GetVariableDataPtr(), IsValidVariableHeader(), MAX_KEYDB_SIZE, VARIABLE_HEADER::MonotonicCount, mPlatformMode, TRUE, UpdateVariable(), VAR_KEY_EXCHANGE_KEY, VerifyDataPayload(), and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalSetVariable(), and VariableServiceSetVariable().

EFI_STATUS ProcessVarWithPk | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | IN BOOLEAN | IsPk
 | ) |  |

Process variable with platform key for verification.

Parameters:
[in] | VariableName | The name of Variable to be found.
[in] | VendorGuid | The variable vendor GUID.
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
[in] | IsPk | Indicates whether to process pk.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable passed validation successfully.

References AUTHINFO_SIZE, VARIABLE_POINTER_TRACK::CurrPtr, FindVariable(), GetVariableDataPtr(), IsValidVariableHeader(), MAX_KEYDB_SIZE, VARIABLE_HEADER::MonotonicCount, mPlatformMode, UpdatePlatformMode(), UpdateVariable(), VAR_PLATFORM_KEY, VerifyDataPayload(), and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalSetVariable(), and VariableServiceSetVariable().

VOID UpdatePlatformMode | ( | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN UINT32 | Mode
 | ) |  |

Update platform mode.

Parameters:
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Mode | SETUP_MODE or USER_MODE.

References FindVariable(), mPlatformMode, UpdateVariable(), and VAR_SETUP_MODE.

Referenced by ProcessVarWithPk().

EFI_STATUS VerifyDataPayload | ( | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN UINT8 * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINT8 * | PubKey
 | ) |  |

Verify data payload with AuthInfo in EFI_CERT_TYPE_RSA2048_SHA256 type. Follow the steps in UEFI2.2.

Parameters:
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Data | The pointer to data with AuthInfo.
[in] | DataSize | The size of Data.
[in] | PubKey | The public key used for verification.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | Authentication failed.
EFI_SUCCESS | Authentication successful.

References AUTHINFO_SIZE, EFI_CERT_TYPE_RSA2048_SHA256_SIZE, EFI_CERT_TYPE_RSA2048_SIZE, mRsaE, and SHA256_DIGEST_SIZE.

Referenced by ProcessVarWithKek(), ProcessVarWithPk(), and VerifyVariable().

EFI_STATUS VerifyVariable | ( | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | OUT UINT32 * | KeyIndex,
 |  | OUT UINT64 * | MonotonicCount
 | ) |  |

Process variable with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, and return the index of associated public key.

Parameters:
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
[out] | KeyIndex | The output index of corresponding public key in database.
[out] | MonotonicCount | The output value of corresponding Monotonic Count.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_WRITE_PROTECTED | The variable is write-protected and needs authentication with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set.
EFI_SECURITY_VIOLATION | The variable is with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, but the AuthInfo does NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable is not write-protected, or passed validation successfully.

References AddPubKeyInStore(), VARIABLE_HEADER::Attributes, AUTHINFO_SIZE, EFI_CERT_TYPE_RSA2048_SIZE, IsValidVariableHeader(), VARIABLE_HEADER::MonotonicCount, VARIABLE_HEADER::PubKeyIndex, TRUE, and VerifyDataPayload().

Referenced by EsalSetVariable().

Variable Documentation

UINT32 mPlatformMode

Referenced by AutenticatedVariableServiceInitialize(), ProcessVarWithKek(), ProcessVarWithPk(), and UpdatePlatformMode().

UINT32 mPubKeyNumber

Global database array for scratch

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), IsValidPubKeyIndex(), and Reclaim().

CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 }

EFI_GUID mSignatureSupport[SIGSUPPORT_NUM] = {EFI_CERT_RSA2048_SHA256_GUID, EFI_CERT_RSA2048_SHA1_GUID}

Referenced by AutenticatedVariableServiceInitialize().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/AuthService.h File Reference

Defines

#define | EFI_CERT_TYPE_RSA2048_SHA256_SIZE 256
#define | EFI_CERT_TYPE_RSA2048_SIZE 256
#define | AUTHINFO_SIZE (((UINTN)(((EFI_VARIABLE_AUTHENTICATION *) 0)->AuthInfo.CertData)) + sizeof (EFI_CERT_BLOCK_RSA_2048_SHA256))
#define | SIGSUPPORT_NUM 2

Functions

EFI_STATUS | VerifyVariable (IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, OUT UINT32 *KeyIndex, OUT UINT64 *MonotonicCount)
EFI_STATUS | AutenticatedVariableServiceInitialize (VOID)
VOID | CryptLibraryInitialize (VOID)
EFI_STATUS | ProcessVarWithPk (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, IN BOOLEAN IsPk)
EFI_STATUS | ProcessVarWithKek (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes)

Detailed Description

The internal header file includes the common header files, defines internal structure and functions used by AuthService module.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define AUTHINFO_SIZE (((UINTN)(((EFI_VARIABLE_AUTHENTICATION *) 0)->AuthInfo.CertData)) + sizeof (EFI_CERT_BLOCK_RSA_2048_SHA256))

Size of AuthInfo prior to the data payload

Referenced by EsalSetVariable(), ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), VariableServiceSetVariable(), VerifyCounterBasedPayload(), VerifyDataPayload(), and VerifyVariable().

#define EFI_CERT_TYPE_RSA2048_SHA256_SIZE 256

#define EFI_CERT_TYPE_RSA2048_SIZE 256

#define SIGSUPPORT_NUM 2

Item number of support signature types.

Referenced by AutenticatedVariableServiceInitialize().

Function Documentation

EFI_STATUS AutenticatedVariableServiceInitialize ( VOID )

Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | The function successfully executed.
EFI_OUT_OF_RESOURCES | Failed to allocate enough memory resources.
Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resources.

VOID CryptLibraryInitialize ( VOID )

Initializes for cryptlib service before use, include register algrithm and allocate scratch.

EFI_STATUS ProcessVarWithKek | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes
 | ) |  |

Process variable with key exchange key for verification.

Parameters:
[in] | VariableName | The name of Variable to be found.
[in] | VendorGuid | The variable vendor GUID.
[in] | Data | The data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable passed validation successfully.
Process variable with key exchange key for verification.

Parameters:
[in] | VariableName | The name of Variable to be found.
[in] | VendorGuid | The variable vendor GUID.
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable did NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable passed validation successfully.

References AUTHINFO_SIZE, VARIABLE_POINTER_TRACK::CurrPtr, EFI_CERT_TYPE_RSA2048_SIZE, FindVariable(), GetVariableDataPtr(), IsValidVariableHeader(), MAX_KEYDB_SIZE, VARIABLE_HEADER::MonotonicCount, mPlatformMode, TRUE, UpdateVariable(), VAR_KEY_EXCHANGE_KEY, VerifyDataPayload(), and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalSetVariable(), and VariableServiceSetVariable().

EFI_STATUS ProcessVarWithPk | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | IN BOOLEAN | IsPk
 | ) |  |

Process variable with platform key for verification.

Parameters:
[in] | VariableName | The name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
[in] | IsPk | Indicates whether to process pk.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable passed validation successfully.
Process variable with platform key for verification.

Parameters:
[in] | VariableName | The name of Variable to be found.
[in] | VendorGuid | The variable vendor GUID.
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
[in] | IsPk | Indicates whether to process pk.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable passed validation successfully.

References AUTHINFO_SIZE, VARIABLE_POINTER_TRACK::CurrPtr, FindVariable(), GetVariableDataPtr(), IsValidVariableHeader(), MAX_KEYDB_SIZE, VARIABLE_HEADER::MonotonicCount, mPlatformMode, UpdatePlatformMode(), UpdateVariable(), VAR_PLATFORM_KEY, VerifyDataPayload(), and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalSetVariable(), and VariableServiceSetVariable().

EFI_STATUS VerifyVariable | ( | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | OUT UINT32 * | KeyIndex,
 |  | OUT UINT64 * | MonotonicCount
 | ) |  |

Process variable with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, and return the index of associated public key.

Parameters:
[in] | Data | The data pointer.
[in] | DataSize | The size of Data found. If size is less than the data, this value contains the required size.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | The attribute value of the variable.
[out] | KeyIndex | The output index of corresponding public key in database.
[out] | MonotonicCount | The output value of corresponding Monotonic Count.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_WRITE_PROTECTED | The variable is write-protected and needs authentication with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set.
EFI_SECURITY_VIOLATION | The variable is with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, but the AuthInfo does NOT pass the validation check carried out by the firmware.
EFI_SUCCESS | The variable is not write-protected, or passed validation successfully.

References AddPubKeyInStore(), VARIABLE_HEADER::Attributes, AUTHINFO_SIZE, EFI_CERT_TYPE_RSA2048_SIZE, IsValidVariableHeader(), VARIABLE_HEADER::MonotonicCount, VARIABLE_HEADER::PubKeyIndex, TRUE, and VerifyDataPayload().

Referenced by EsalSetVariable().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/InitVariable.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/InitVariable.c File Reference

Functions

SAL_RETURN_REGS EFIAPI | EsalVariableCommonEntry (IN UINT64 FunctionId, IN UINT64 Arg2, IN UINT64 Arg3, IN UINT64 Arg4, IN UINT64 Arg5, IN UINT64 Arg6, IN UINT64 Arg7, IN UINT64 Arg8, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
VOID EFIAPI | VariableClassAddressChangeEvent (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI | VariableServiceInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_EVENT | mEfiVirtualNotifyEvent

Detailed Description

Entrypoint of Extended SAL variable service module.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

SAL_RETURN_REGS EFIAPI EsalVariableCommonEntry | ( | IN UINT64 | FunctionId,
 |  | IN UINT64 | Arg2,
 |  | IN UINT64 | Arg3,
 |  | IN UINT64 | Arg4,
 |  | IN UINT64 | Arg5,
 |  | IN UINT64 | Arg6,
 |  | IN UINT64 | Arg7,
 |  | IN UINT64 | Arg8,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Common entry for Extended SAL Variable Services Class.

This is the common entry of all functions of Extended SAL Variable Services Class.

Parameters:
[in] | FunctionId | The Function ID of member function in Extended SAL Variable Services Class.
[in] | Arg2 | The 2nd parameter for SAL procedure call.
[in] | Arg3 | The 3rd parameter for SAL procedure call.
[in] | Arg4 | The 4th parameter for SAL procedure call.
[in] | Arg5 | The 5th parameter for SAL procedure call.
[in] | Arg6 | The 6th parameter for SAL procedure call.
[in] | Arg7 | The 7th parameter for SAL procedure call.
[in] | Arg8 | The 8th parameter for SAL procedure call.
[in] | VirtualMode | The current calling mode for this function.
[in] | Global | The context of this Extended SAL Variable Services Class call.
Returns:
The register of SAL.

References EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), and EsalSetVariable().

Referenced by VariableServiceInitialize().

VOID EFIAPI VariableClassAddressChangeEvent | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.

This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event. It convers pointer to new virtual address.

Parameters:
[in] | Event | The event whose notification function is being invoked.
[in] | Context | The pointer to the notification function's context.

Referenced by VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Entry point of Extended SAL Variable service module.

This function is the entry point of Extended SAL Variable service module. It registers all functions of Extended SAL Variable class, initializes variable store for non-volatile and volatile variables, and registers notification function for EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The Image handle of this driver.
[in] | SystemTable | The pointer of EFI_SYSTEM_TABLE.
Return values:
EFI_SUCCESS Extended SAL Variable Services Class successfully registered.

Variable Documentation

EFI_EVENT mEfiVirtualNotifyEvent

Referenced by VariableServiceInitialize().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Reclaim.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Reclaim.c File Reference

Functions

EFI_STATUS | GetFvbHandleByAddress (IN EFI_PHYSICAL_ADDRESS Address, OUT EFI_HANDLE *FvbHandle)
EFI_STATUS | GetLbaAndOffsetByAddress (IN EFI_PHYSICAL_ADDRESS Address, OUT EFI_LBA *Lba, OUT UINTN *Offset)
EFI_STATUS | FtwVariableSpace (IN EFI_PHYSICAL_ADDRESS VariableBase, IN UINT8 *Buffer, IN UINTN BufferSize)

Detailed Description

Handles non-volatile variable store garbage collection, using FTW (Fault Tolerant Write) protocol.

Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS FtwVariableSpace | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | IN UINT8 * | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Writes a buffer to variable storage space.

This function writes a buffer to variable storage space into firmware volume block device. The destination is specified by parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
[in] | VariableBase | The base address of the variable to write.
[in] | Buffer | Points to the data buffer.
[in] | BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
Other | The function could not complete successfully.

Referenced by Reclaim().

EFI_STATUS GetFvbHandleByAddress | ( | IN EFI_PHYSICAL_ADDRESS | Address,
 |  | OUT EFI_HANDLE * | FvbHandle
 | ) |  |

Gets firmware volume block handle by given address.

This function gets firmware volume block handle whose address range contains the parameter Address.

Parameters:
[in] | Address | Address which should be contained by returned FVB handle.
[out] | FvbHandle | Pointer to FVB handle for output.
Return values:
EFI_SUCCESS | FVB handle successfully returned.
EFI_NOT_FOUND | Failed to find FVB handle by address.

Referenced by FtwVariableSpace(), and GetLbaAndOffsetByAddress().

EFI_STATUS GetLbaAndOffsetByAddress | ( | IN EFI_PHYSICAL_ADDRESS | Address,
 |  | OUT EFI_LBA * | Lba,
 |  | OUT UINTN * | Offset
 | ) |  |

Gets LBA of block and offset by given address.

This function gets the Logical Block Address (LBA) of firmware volume block containing the given address, and the offset of address on the block.

Parameters:
[in] | Address | Address which should be contained by returned FVB handle.
[out] | Lba | The pointer to LBA for output.
[out] | Offset | The pointer to offset for output.
Return values:
EFI_SUCCESS | LBA and offset successfully returned.
EFI_NOT_FOUND | Failed to find FVB handle by address.
EFI_ABORTED | Failed to find valid LBA and offset.

References GetFvbHandleByAddress().

Referenced by FtwVariableSpace().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.c File Reference

Functions

VOID | AcquireLockOnlyAtBootTime (IN EFI_LOCK *Lock)
VOID | ReleaseLockOnlyAtBootTime (IN EFI_LOCK *Lock)
EFI_STATUS | AccessVariableStore (IN BOOLEAN Write, IN VARIABLE_GLOBAL *Global, IN BOOLEAN Volatile, IN UINTN Instance, IN EFI_PHYSICAL_ADDRESS StartAddress, IN UINT32 DataSize, IN OUT VOID *Buffer)
VOID | GetVarStoreHeader (IN EFI_PHYSICAL_ADDRESS VarStoreAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance, OUT VARIABLE_STORE_HEADER *VarStoreHeader)
BOOLEAN | IsValidVariableHeader (IN EFI_PHYSICAL_ADDRESS VariableAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance, OUT VARIABLE_HEADER *VariableHeader)
VARIABLE_STORE_STATUS | GetVariableStoreStatus (IN VARIABLE_STORE_HEADER *VarStoreHeader)
UINTN | NameSizeOfVariable (IN VARIABLE_HEADER *Variable)
UINTN | DataSizeOfVariable (IN VARIABLE_HEADER *Variable)
VOID | GetVariableNamePtr (IN EFI_PHYSICAL_ADDRESS VariableAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance, OUT CHAR16 *VariableName)
VOID | GetVariableDataPtr (IN EFI_PHYSICAL_ADDRESS VariableAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance, OUT CHAR16 *VariableData)
EFI_PHYSICAL_ADDRESS | GetNextVariablePtr (IN EFI_PHYSICAL_ADDRESS VariableAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance)
EFI_PHYSICAL_ADDRESS | GetStartPointer (IN EFI_PHYSICAL_ADDRESS VarStoreHeaderAddress)
EFI_PHYSICAL_ADDRESS | GetEndPointer (IN EFI_PHYSICAL_ADDRESS VarStoreHeaderAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance)
VOID | UpdateVariableInfo (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN BOOLEAN Volatile, IN BOOLEAN Read, IN BOOLEAN Write, IN BOOLEAN Delete, IN BOOLEAN Cache)
VOID | UpdateVariableCache (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
EFI_STATUS | FindVariableInCache (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS | FindVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack, IN VARIABLE_GLOBAL *Global, IN UINTN Instance)
EFI_STATUS | Reclaim (IN EFI_PHYSICAL_ADDRESS VariableBase, OUT UINTN *LastVariableOffset, IN BOOLEAN IsVolatile, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN EFI_PHYSICAL_ADDRESS UpdatingVariable)
UINTN | GetIndexFromSupportedLangCodes (IN CHAR8 *SupportedLang, IN CHAR8 *Lang, IN BOOLEAN Iso639Language)
CHAR8 * | GetLangFromSupportedLangCodes (IN CHAR8 *SupportedLang, IN UINTN Index, IN BOOLEAN Iso639Language, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
CHAR8 * | VariableGetBestLanguage (IN CONST CHAR8 *SupportedLanguages, IN BOOLEAN Iso639Language, IN BOOLEAN VirtualMode,...)
VOID | AutoUpdateLangVariable (IN CHAR16 *VariableName, IN VOID *Data, IN UINTN DataSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | UpdateVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN UINT32 Attributes, IN UINT32 KeyIndex, IN UINT64 MonotonicCount, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable)
EFI_STATUS EFIAPI | EsalGetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | EsalGetNextVariableName (IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | EsalSetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | EsalQueryVariableInfo (IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
VOID EFIAPI | ReclaimForOS (IN EFI_EVENT Event, IN VOID *Context)
VOID | FlushHob2Nv (VOID)
EFI_STATUS | VariableCommonInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

ESAL_VARIABLE_GLOBAL * mVariableModuleGlobal
CHAR16 * | mVariableName [NUM_VAR_NAME]
GLOBAL_REMOVE_IF_UNREFERENCED
VARIABLE_INFO_ENTRY * 		gVariableInfo = NULL
VARIABLE_CACHE_ENTRY mVariableCache []

Detailed Description

The implementation of Extended SAL variable services.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS AccessVariableStore | ( | IN BOOLEAN | Write,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN BOOLEAN | Volatile,
 |  | IN UINTN | Instance,
 |  | IN EFI_PHYSICAL_ADDRESS | StartAddress,
 |  | IN UINT32 | DataSize,
 |  | IN OUT VOID * | Buffer
 | ) |  |

Reads/Writes variable storage, volatile or non-volatile.

This function reads or writes volatile or non-volatile variable stroage. For volatile storage, it performs memory copy. For non-volatile storage, it accesses data on firmware storage. Data area to access can span multiple firmware blocks.

Parameters:
[in] | Write | TRUE - Write variable store. FALSE - Read variable store.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Instance | Instance of FV Block services.
[in] | StartAddress | Start address of data to access.
[in] | DataSize | Size of data to access.
[in,out] | Buffer | For write, pointer to the buffer from which data is written. For read, pointer to the buffer to hold the data read.
Return values:
EFI_SUCCESS | Variable store successfully accessed.
EFI_INVALID_PARAMETER | Data area to access exceeds valid variable storage.

References VARIABLE_STORE_HEADER::Size.

Referenced by AutoUpdateLangVariable(), GetEndPointer(), GetVariableDataPtr(), GetVariableNamePtr(), GetVarStoreHeader(), IsValidVariableHeader(), UpdateVariable(), and VariableCommonInitialize().

VOID AcquireLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Acquires lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiAcquireLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiAcquireLock() at boot time, and simply returns at runtime.

Parameters:
[in] Lock A pointer to the lock to acquire.

Referenced by EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), RuntimeServiceSetVariable(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

VOID AutoUpdateLangVariable | ( | IN CHAR16 * | VariableName,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Hook the operations in PlatformLangCodes, LangCodes, PlatformLang and Lang.

When setting Lang/LangCodes, simultaneously update PlatformLang/PlatformLangCodes. According to UEFI spec, PlatformLangCodes/LangCodes are only set once in firmware initialization, and are read-only. Therefore, in variable driver, only store the original value for other use.

Parameters:
[in] | VariableName | Name of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.

References AccessVariableStore(), VARIABLE_POINTER_TRACK::CurrPtr, FindVariable(), GetEndPointer(), GetIndexFromSupportedLangCodes(), GetLangFromSupportedLangCodes(), GetVariableDataPtr(), ISO_639_2_ENTRY_SIZE, ESAL_VARIABLE_GLOBAL::PlatformLangCodes, TRUE, UpdateVariable(), VAR_LANG, VAR_LANG_CODES, VAR_PLATFORM_LANG, VAR_PLATFORM_LANG_CODES, VariableGetBestLanguage(), VARIABLE_POINTER_TRACK::Volatile, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by EsalSetVariable(), and VariableServiceSetVariable().

UINTN DataSizeOfVariable ( IN VARIABLE_HEADER * Variable )

Gets the size of variable data area.

This function gets the size of variable data area. The variable is specified by its variable header. If variable header contains raw data, just return 0.

Parameters:
[in] Variable Pointer to the variable header.
Returns:
Size of variable data area in bytes.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), EsalGetVariable(), GetCertsFromDb(), GetNextVariablePtr(), InsertCertsToDb(), PeiGetVariable(), UpdateVariable(), and VariableServiceGetVariable().

EFI_STATUS EFIAPI EsalGetNextVariableName | ( | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VendorGuid,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalGetNextVariableName function of Extended SAL Variable Services Class.

This function implements EsalGetNextVariableName function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service GetNextVariableName().

Parameters:
[in,out] | VariableNameSize | Size of the variable
[in,out] | VariableName | On input, supplies the last VariableName that was returned by GetNextVariableName(). On output, returns the Null-terminated Unicode string of the current variable.
[in,out] | VendorGuid | On input, supplies the last VendorGuid that was returned by GetNextVariableName(). On output, returns the VendorGuid of the current variable.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | The next variable was not found.
EFI_BUFFER_TOO_SMALL | VariableNameSize is too small for the result. VariableNameSize has been updated with the size needed to complete the request.
EFI_INVALID_PARAMETER | VariableNameSize is NULL.
EFI_INVALID_PARAMETER | VariableName is NULL.
EFI_INVALID_PARAMETER | VendorGuid is NULL.
EFI_DEVICE_ERROR | The variable name could not be retrieved due to a hardware error.

References AcquireLockOnlyAtBootTime(), VARIABLE_HEADER::Attributes, VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_POINTER_TRACK::EndPtr, FindVariable(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), IsValidVariableHeader(), NameSizeOfVariable(), VARIABLE_GLOBAL::NonVolatileVariableBase, ReleaseLockOnlyAtBootTime(), VARIABLE_POINTER_TRACK::StartPtr, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VARIABLE_GLOBAL::VariableServicesLock, VARIABLE_HEADER::VendorGuid, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalVariableCommonEntry().

EFI_STATUS EFIAPI EsalGetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalGetVariable function of Extended SAL Variable Services Class.

This function implements EsalGetVariable function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service GetVariable().

Parameters:
[in] | VariableName | A Null-terminated Unicode string that is the name of the vendor's variable.
[in] | VendorGuid | A unique identifier for the vendor.
[out] | Attributes | If not NULL, a pointer to the memory location to return the attributes bitmask for the variable.
[in,out] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[out] | Data | On input, the size in bytes of the return Data buffer. On output, the size of data returned in Data.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | The variable was not found.
EFI_BUFFER_TOO_SMALL | DataSize is too small for the result. DataSize has been updated with the size needed to complete the request.
EFI_INVALID_PARAMETER | VariableName is NULL.
EFI_INVALID_PARAMETER | VendorGuid is NULL.
EFI_INVALID_PARAMETER | DataSize is NULL.
EFI_INVALID_PARAMETER | DataSize is not too small and Data is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved due to a hardware error.
EFI_SECURITY_VIOLATION | The variable could not be retrieved due to an authentication failure.

References AcquireLockOnlyAtBootTime(), VARIABLE_HEADER::Attributes, VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), FindVariable(), FindVariableInCache(), GetVariableDataPtr(), IsValidVariableHeader(), ReleaseLockOnlyAtBootTime(), TRUE, UpdateVariableCache(), UpdateVariableInfo(), VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalVariableCommonEntry().

EFI_STATUS EFIAPI EsalQueryVariableInfo | ( | IN UINT32 | Attributes,
 |  | OUT UINT64 * | MaximumVariableStorageSize,
 |  | OUT UINT64 * | RemainingVariableStorageSize,
 |  | OUT UINT64 * | MaximumVariableSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalQueryVariableInfo function of Extended SAL Variable Services Class.

This function implements EsalQueryVariableInfo function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service QueryVariableInfo().

Parameters:
[in] | Attributes | Attributes bitmask to specify the type of variables on which to return information.
[out] | MaximumVariableStorageSize | On output the maximum size of the storage space available for the EFI variables associated with the attributes specified.
[out] | RemainingVariableStorageSize | Returns the remaining size of the storage space available for EFI variables associated with the attributes specified.
[out] | MaximumVariableSize | Returns the maximum size of an individual EFI variable associated with the attributes specified.
[in] | VirtualMode | Current calling mode for this function
[in] | Global | Context of this Extended SAL Variable Services Class call
Return values:
EFI_SUCCESS | Valid answer returned.
EFI_INVALID_PARAMETER | An invalid combination of attribute bits was supplied.
EFI_UNSUPPORTED | The attribute is not supported on this platform, and the MaximumVariableStorageSize, RemainingVariableStorageSize, MaximumVariableSize are undefined.

References AcquireLockOnlyAtBootTime(), VARIABLE_HEADER::Attributes, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVarStoreHeader(), IsValidVariableHeader(), VARIABLE_GLOBAL::NonVolatileVariableBase, ReleaseLockOnlyAtBootTime(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by EsalVariableCommonEntry().

EFI_STATUS EFIAPI EsalSetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT32 | Attributes,
 |  | IN UINTN | DataSize,
 |  | IN VOID * | Data,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalSetVariable function of Extended SAL Variable Services Class.

This function implements EsalSetVariable function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service SetVariable().

Parameters:
[in] | VariableName | A Null-terminated Unicode string that is the name of the vendor's variable. Each VariableName is unique for each VendorGuid. VariableName must contain 1 or more Unicode characters. If VariableName is an empty Unicode string, then EFI_INVALID_PARAMETER is returned.
[in] | VendorGuid | A unique identifier for the vendor.
[in] | Attributes | Attributes bitmask to set for the variable.
[in] | DataSize | The size in bytes of the Data buffer. A size of zero causes the variable to be deleted.
[in] | Data | The contents for the variable.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Return values:
EFI_SUCCESS | The firmware has successfully stored the variable and its data as defined by the Attributes.
EFI_INVALID_PARAMETER | An invalid combination of attribute bits was supplied, or the DataSize exceeds the maximum allowed.
EFI_INVALID_PARAMETER | VariableName is an empty Unicode string.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved due to a hardware failure.
EFI_WRITE_PROTECTED | The variable in question is read-only.
EFI_WRITE_PROTECTED | The variable in question cannot be deleted.
EFI_SECURITY_VIOLATION | The variable could not be retrieved due to an authentication failure.
EFI_NOT_FOUND | The variable trying to be updated or deleted was not found.

References AcquireLockOnlyAtBootTime(), AUTHINFO_SIZE, AutoUpdateLangVariable(), FindVariable(), GetNextVariablePtr(), GetStartPointer(), IsValidVariableHeader(), VARIABLE_GLOBAL::NonVolatileVariableBase, ProcessVarWithKek(), ProcessVarWithPk(), ReleaseLockOnlyAtBootTime(), TRUE, UpdateVariable(), VAR_HW_ERR_REC, VAR_KEY_EXCHANGE_KEY, VAR_PLATFORM_KEY, VARIABLE_GLOBAL::VariableServicesLock, and VerifyVariable().

Referenced by EsalVariableCommonEntry(), and FlushHob2Nv().

EFI_STATUS FindVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance
 | ) |  |

Finds variable in volatile and non-volatile storage areas.

This code finds variable in volatile and non-volatile storage areas. If VariableName is an empty string, then we just return the first qualified variable without comparing VariableName and VendorGuid. Otherwise, VariableName and VendorGuid are compared.

Parameters:
[in] | VariableName | Name of the variable to be found.
[in] | VendorGuid | Vendor GUID to be found.
[out] | PtrTrack | VARIABLE_POINTER_TRACK structure for output, including the range searched and the target position.
[in] | Global | Pointer to VARIABLE_GLOBAL structure, including base of volatile variable storage area, base of NV variable storage area, and a lock.
[in] | Instance | Instance of FV Block services.
Return values:
EFI_INVALID_PARAMETER | If VariableName is not an empty string, while VendorGuid is NULL.
EFI_SUCCESS | Variable successfully found.
EFI_INVALID_PARAMETER | Variable not found.

References VARIABLE_HEADER::Attributes, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), IsValidVariableHeader(), MAX_NAME_SIZE, NameSizeOfVariable(), VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, and VARIABLE_HEADER::VendorGuid.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), DeleteVariable(), EsalGetNextVariableName(), EsalGetVariable(), EsalSetVariable(), GetCertsFromDb(), InCustomMode(), InsertCertsToDb(), PeiGetNextVariableName(), PeiGetVariable(), ProcessVarWithKek(), ProcessVarWithPk(), UpdatePlatformMode(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceSetVariable(), and VerifyTimeBasedPayload().

EFI_STATUS FindVariableInCache | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data
 | ) |  |

Search the cache to check if the variable is in it.

This function searches the variable cache. If the variable to find exists, return its data and attributes.

Parameters:
[in] | VariableName | A Null-terminated Unicode string that is the name of the vendor's variable. Each VariableName is unique for each VendorGuid.
[in] | VendorGuid | A unique identifier for the vendor
[out] | Attributes | Pointer to the attributes bitmask of the variable for output.
[in,out] | DataSize | On input, size of the buffer of Data. On output, size of the variable's data.
[out] | Data | Pointer to the data buffer for output.
Return values:
EFI_SUCCESS | VariableGuid & VariableName data was returned.
EFI_NOT_FOUND | No matching variable found in cache.
EFI_BUFFER_TOO_SMALL | *DataSize is smaller than size of the variable's data to return.

References VARIABLE_CACHE_ENTRY::Attributes, VARIABLE_CACHE_ENTRY::Data, VARIABLE_CACHE_ENTRY::DataSize, VARIABLE_CACHE_ENTRY::Guid, and VARIABLE_CACHE_ENTRY::Name.

Referenced by EsalGetVariable().

VOID FlushHob2Nv ( VOID )

Flush the HOB variable to NV variable storage.

References VARIABLE_HEADER::Attributes, VARIABLE_HEADER::DataSize, EsalSetVariable(), VARIABLE_STORE_HEADER::Format, gEfiAuthenticatedVariableGuid, GET_PAD_SIZE, HEADER_ALIGN, VARIABLE_HEADER::NameSize, Physical, VARIABLE_STORE_HEADER::Signature, VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::StartId, VARIABLE_HEADER::State, VARIABLE_STORE_HEADER::State, VAR_ADDED, VARIABLE_DATA, VARIABLE_STORE_FORMATTED, VARIABLE_STORE_HEALTHY, and VARIABLE_HEADER::VendorGuid.

Referenced by VariableServiceInitialize().

EFI_PHYSICAL_ADDRESS GetEndPointer | ( | IN EFI_PHYSICAL_ADDRESS | VarStoreHeaderAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance
 | ) |  |

Gets the pointer to the end of given variable store area.

This function gets the pointer to the end of given variable store area. The variable store area is given by its start address.

Parameters:
[in] | VarStoreHeaderAddress | Pointer to the header of variable store area.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
Returns:
Pointer to the end of given variable store area.

References AccessVariableStore(), HEADER_ALIGN, and VARIABLE_STORE_HEADER::Size.

Referenced by AutoUpdateLangVariable(), EsalGetNextVariableName(), EsalQueryVariableInfo(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), GetVariableStore(), PeiGetNextVariableName(), UpdateVariable(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

UINTN GetIndexFromSupportedLangCodes | ( | IN CHAR8 * | SupportedLang,
 |  | IN CHAR8 * | Lang,
 |  | IN BOOLEAN | Iso639Language
 | ) |  |

Get index from supported language codes according to language string.

This code is used to get corresponding index in supported language codes. It can handle RFC4646 and ISO639 language tags. In ISO639 language tags, take 3-characters as a delimitation to find matched string and calculate the index. In RFC4646 language tags, take semicolon as a delimitation to find matched string and calculate the index.

For example: SupportedLang = "engfraengfra" Lang = "eng" Iso639Language = TRUE The return value is "0". Another example: SupportedLang = "en;fr;en-US;fr-FR" Lang = "fr-FR" Iso639Language = FALSE The return value is "3".

Parameters:
[in] | SupportedLang | Platform supported language codes.
[in] | Lang | Configured language.
[in] | Iso639Language | A bool value to signify if the handler is operated on ISO639 or RFC4646.
Returns:
The index of language in the language codes.

References ISO_639_2_ENTRY_SIZE.

Referenced by AutoUpdateLangVariable().

CHAR8* GetLangFromSupportedLangCodes | ( | IN CHAR8 * | SupportedLang,
 |  | IN UINTN | Index,
 |  | IN BOOLEAN | Iso639Language,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Get language string from supported language codes according to index.

This code is used to get corresponding language string in supported language codes. It can handle RFC4646 and ISO639 language tags. In ISO639 language tags, take 3-characters as a delimitation. Find language string according to the index. In RFC4646 language tags, take semicolon as a delimitation. Find language string according to the index.

For example: SupportedLang = "engfraengfra" Index = "1" Iso639Language = TRUE The return value is "fra". Another example: SupportedLang = "en;fr;en-US;fr-FR" Index = "1" Iso639Language = FALSE The return value is "fr".

Parameters:
[in] | SupportedLang | Platform supported language codes.
[in] | Index | the index in supported language codes.
[in] | Iso639Language | A bool value to signify if the handler is operated on ISO639 or RFC4646.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Returns:
The language string in the language codes.

References ISO_639_2_ENTRY_SIZE, and TRUE.

Referenced by AutoUpdateLangVariable().

EFI_PHYSICAL_ADDRESS GetNextVariablePtr | ( | IN EFI_PHYSICAL_ADDRESS | VariableAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance
 | ) |  |

Gets the pointer to the next variable header.

This function gets the pointer to the next variable header. The variable is specified by its variable header.

Parameters:
[in] | VariableAddress | Start address of variable header.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
Returns:
Pointer to the next variable header. NULL if variable header is invalid.

References DataSizeOfVariable(), GET_PAD_SIZE, HEADER_ALIGN, IsValidVariableHeader(), and NameSizeOfVariable().

Referenced by EsalGetNextVariableName(), EsalQueryVariableInfo(), EsalSetVariable(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), IsValidPubKeyIndex(), PeiGetNextVariableName(), Reclaim(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

EFI_PHYSICAL_ADDRESS GetStartPointer ( IN EFI_PHYSICAL_ADDRESS VarStoreHeaderAddress )

Gets the pointer to the first variable header in given variable store area.

This function gets the pointer to the first variable header in given variable store area. The variable store area is given by its start address.

Parameters:
[in] VarStoreHeaderAddress Pointer to the header of variable store area.
Returns:
Pointer to the first variable header.

References HEADER_ALIGN.

Referenced by EsalGetNextVariableName(), EsalQueryVariableInfo(), EsalSetVariable(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), GetVariableStore(), IsValidPubKeyIndex(), PeiGetNextVariableName(), Reclaim(), UpdateVariable(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

VOID GetVariableDataPtr | ( | IN EFI_PHYSICAL_ADDRESS | VariableAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance,
 |  | OUT CHAR16 * | VariableData
 | ) |  |

Gets the pointer to variable data area.

This function gets the pointer to variable data area. The variable is specified by its variable header.

Parameters:
[in] | VariableAddress | Start address of variable header.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
[out] | VariableData | Buffer to hold variable data for output.

References AccessVariableStore(), VARIABLE_HEADER::DataSize, GET_PAD_SIZE, IsValidVariableHeader(), and NameSizeOfVariable().

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), EsalGetVariable(), FlushHobVariableToFlash(), GetCertsFromDb(), GetNextVariablePtr(), InCustomMode(), InsertCertsToDb(), PeiGetVariable(), ProcessVarWithKek(), ProcessVarWithPk(), Reclaim(), UpdatePlatformMode(), UpdateVariable(), VariableServiceGetVariable(), and VerifyTimeBasedPayload().

VOID GetVariableNamePtr | ( | IN EFI_PHYSICAL_ADDRESS | VariableAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance,
 |  | OUT CHAR16 * | VariableName
 | ) |  |

Gets the pointer to variable name.

This function gets the pointer to variable name. The variable is specified by its variable header.

Parameters:
[in] | VariableAddress | Start address of variable header.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
[out] | VariableName | Buffer to hold variable name for output.

References AccessVariableStore(), IsValidVariableHeader(), and VARIABLE_HEADER::NameSize.

Referenced by CompareWithValidVariable(), EsalGetNextVariableName(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), GetVariableDataPtr(), PeiGetNextVariableName(), Reclaim(), and VariableServiceGetNextVariableName().

VARIABLE_STORE_STATUS GetVariableStoreStatus ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

Gets status of variable store.

This function gets the current status of variable store.

Parameters:
[in] VarStoreHeader Pointer to header of variable store.
Return values:
EfiRaw | Variable store status is raw.
EfiValid | Variable store status is valid.
EfiInvalid | Variable store status is invalid.

References EfiInvalid, EfiRaw, EfiValid, gEfiAuthenticatedVariableGuid, VARIABLE_STORE_FORMATTED, and VARIABLE_STORE_HEALTHY.

Referenced by FindVariableEx(), and VariableCommonInitialize().

VOID GetVarStoreHeader | ( | IN EFI_PHYSICAL_ADDRESS | VarStoreAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance,
 |  | OUT VARIABLE_STORE_HEADER * | VarStoreHeader
 | ) |  |

Retrieves header of volatile or non-volatile variable stroage.

Parameters:
[in] | VarStoreAddress | Start address of variable storage.
[in] | Volatile | TRUE - Variable storage is volatile. FALSE - Variable storage is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
[out] | VarStoreHeader | Pointer to VARIABLE_STORE_HEADER for output.

References AccessVariableStore().

Referenced by EsalQueryVariableInfo(), Reclaim(), and UpdateVariable().

BOOLEAN IsValidVariableHeader | ( | IN EFI_PHYSICAL_ADDRESS | VariableAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance,
 |  | OUT VARIABLE_HEADER * | VariableHeader
 | ) |  |

Checks variable header.

This function checks if variable header is valid or not.

Parameters:
[in] | VariableAddress | Start address of variable header.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
[out] | VariableHeader | Pointer to VARIABLE_HEADER for output.
Return values:
TRUE | Variable header is valid.
FALSE | Variable header is not valid.

References AccessVariableStore(), VARIABLE_HEADER::StartId, TRUE, and VARIABLE_DATA.

Referenced by AutenticatedVariableServiceInitialize(), EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), GetNextVariablePtr(), GetVariableDataPtr(), GetVariableNamePtr(), IsValidPubKeyIndex(), PeiGetNextVariableName(), ProcessVarWithKek(), ProcessVarWithPk(), Reclaim(), UpdateVariable(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), VariableServiceSetVariable(), and VerifyVariable().

UINTN NameSizeOfVariable ( IN VARIABLE_HEADER * Variable )

Gets the size of variable name.

This function gets the size of variable name. The variable is specified by its variable header. If variable header contains raw data, just return 0.

Parameters:
[in] Variable Pointer to the variable header.
Returns:
Size of variable name in bytes.

Referenced by CompareWithValidVariable(), EsalGetNextVariableName(), FindVariable(), FindVariableEx(), GetNextVariablePtr(), GetVariableDataPtr(), PeiGetNextVariableName(), Reclaim(), and VariableServiceGetNextVariableName().

EFI_STATUS Reclaim | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | OUT UINTN * | LastVariableOffset,
 |  | IN BOOLEAN | IsVolatile,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN EFI_PHYSICAL_ADDRESS | UpdatingVariable
 | ) |  |

Variable store garbage collection and reclaim operation.

Parameters:
[in] | VariableBase | Base address of variable store area.
[out] | LastVariableOffset | Offset of last variable.
[in] | IsVolatile | The variable store is volatile or not, if it is non-volatile, need FTW.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
[in] | UpdatingVariable | Pointer to header of the variable that is being updated.
Return values:
EFI_SUCCESS | Variable store successfully reclaimed.
EFI_OUT_OF_RESOURCES | Fail to allocate memory buffer to hold all valid variables.

References FtwVariableSpace(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), GetVarStoreHeader(), IsValidVariableHeader(), MAX_NAME_SIZE, NameSizeOfVariable(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, and VARIABLE_HEADER::VendorGuid.

Referenced by AddPubKeyInStore(), ReclaimForOS(), UpdateVariable(), VariableCommonInitialize(), and VariableWriteServiceInitialize().

VOID EFIAPI ReclaimForOS | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Notification function of EVT_GROUP_READY_TO_BOOT event group.

This is a notification function registered on EVT_GROUP_READY_TO_BOOT event group. When the Boot Manager is about to load and execute a boot option, it reclaims variable storage if free size is below the threshold.

Parameters:
[in] | Event | Event whose notification function is being invoked.
[in] | Context | Pointer to the notification function's context.

References ESAL_VARIABLE_GLOBAL::CommonVariableTotalSize, ESAL_VARIABLE_GLOBAL::HwErrVariableTotalSize, ESAL_VARIABLE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Physical, Reclaim(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by OnReadyToBoot(), SmmVariableHandler(), and VariableCommonInitialize().

VOID ReleaseLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Releases lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiReleaseLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiReleaseLock() at boot time, and simply returns at runtime

Parameters:
[in] Lock A pointer to the lock to release.

Referenced by EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), RuntimeServiceSetVariable(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

EFI_STATUS EFIAPI UpdateVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINT32 | Attributes,
 |  | IN UINT32 | KeyIndex,
 |  | IN UINT64 | MonotonicCount,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable
 | ) |  |

Update the variable region with Variable information. These are the same arguments as the EFI Variable services.

Parameters:
[in] | VariableName | Name of variable.
[in] | VendorGuid | Guid of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.
[in] | Attributes | Attributes of the variable.
[in] | KeyIndex | Index of associated public key.
[in] | MonotonicCount | Value of associated monotonic count.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
Return values:
EFI_SUCCESS | The update operation is success.
EFI_OUT_OF_RESOURCES | Variable region is full, can not write other data into this region.

References AccessVariableStore(), VARIABLE_HEADER::Attributes, VARIABLE_HEADER::DataSize, DataSizeOfVariable(), GET_PAD_SIZE, GetEndPointer(), GetVariableDataPtr(), GetVarStoreHeader(), HEADER_ALIGN, IsValidVariableHeader(), VARIABLE_HEADER::MonotonicCount, VARIABLE_HEADER::NameSize, VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_HEADER::PubKeyIndex, Reclaim(), VARIABLE_HEADER::Reserved, VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::StartId, VARIABLE_HEADER::State, TRUE, UpdateVariableCache(), UpdateVariableInfo(), VAR_ADDED, VAR_DELETED, VAR_HEADER_VALID_ONLY, VAR_IN_DELETED_TRANSITION, VARIABLE_DATA, VARIABLE_HEADER::VendorGuid, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), DeleteVariable(), EsalSetVariable(), InsertCertsToDb(), ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), UpdatePlatformMode(), and VerifyTimeBasedPayload().

VOID UpdateVariableCache | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT32 | Attributes,
 |  | IN UINTN | DataSize,
 |  | IN VOID * | Data
 | ) |  |

Updates variable in cache.

This function searches the variable cache. If the variable to set exists in the cache, it updates the variable in cache. It has the same parameters with UEFI SetVariable() service.

Parameters:
[in] | VariableName | A Null-terminated Unicode string that is the name of the vendor's variable. Each VariableName is unique for each VendorGuid.
[in] | VendorGuid | A unique identifier for the vendor.
[in] | Attributes | Attributes bitmask to set for the variable.
[in] | DataSize | The size in bytes of the Data buffer. A size of zero causes the variable to be deleted.
[in] | Data | The contents for the variable.

References VARIABLE_CACHE_ENTRY::Attributes, VARIABLE_CACHE_ENTRY::Data, VARIABLE_CACHE_ENTRY::DataSize, VARIABLE_CACHE_ENTRY::Guid, and VARIABLE_CACHE_ENTRY::Name.

Referenced by EsalGetVariable(), and UpdateVariable().

VOID UpdateVariableInfo | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN BOOLEAN | Volatile,
 |  | IN BOOLEAN | Read,
 |  | IN BOOLEAN | Write,
 |  | IN BOOLEAN | Delete,
 |  | IN BOOLEAN | Cache
 | ) |  |

Updates variable info entry in EFI system table for statistical information.

Routine used to track statistical information about variable usage. The data is stored in the EFI system table so it can be accessed later. VariableInfo.efi can dump out the table. Only Boot Services variable accesses are tracked by this code. The PcdVariableCollectStatistics build flag controls if this feature is enabled. A read that hits in the cache will have Read and Cache true for the transaction. Data is allocated by this routine, but never freed.

Parameters:
[in] | VariableName | Name of the Variable to track.
[in] | VendorGuid | Guid of the Variable to track.
[in] | Volatile | TRUE if volatile FALSE if non-volatile.
[in] | Read | TRUE if GetVariable() was called.
[in] | Write | TRUE if SetVariable() was called.
[in] | Delete | TRUE if deleted via SetVariable().
[in] | Cache | TRUE for a cache hit.

References _VARIABLE_INFO_ENTRY::CacheCount, _VARIABLE_INFO_ENTRY::DeleteCount, gEfiAuthenticatedVariableGuid, gVariableInfo, _VARIABLE_INFO_ENTRY::Name, _VARIABLE_INFO_ENTRY::Next, _VARIABLE_INFO_ENTRY::ReadCount, _VARIABLE_INFO_ENTRY::VendorGuid, _VARIABLE_INFO_ENTRY::Volatile, and _VARIABLE_INFO_ENTRY::WriteCount.

Referenced by EsalGetVariable(), UpdateVariable(), and VariableServiceGetVariable().

EFI_STATUS VariableCommonInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Initializes variable store area for non-volatile and volatile variable.

This function allocates and initializes memory space for global context of ESAL variable service and variable store area for non-volatile and volatile variable.

Parameters:
[in] | ImageHandle | The Image handle of this driver.
[in] | SystemTable | The pointer of EFI_SYSTEM_TABLE.
Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resource.

References AccessVariableStore(), ESAL_VARIABLE_GLOBAL::CommonVariableTotalSize, EfiValid, VARIABLE_STORE_HEADER::Format, ESAL_VARIABLE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, GetNextVariablePtr(), GetStartPointer(), GetVariableStoreStatus(), ESAL_VARIABLE_GLOBAL::GlobalVariableGuid, ESAL_VARIABLE_GLOBAL::HwErrVariableTotalSize, IsValidVariableHeader(), mVariableName, ESAL_VARIABLE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Physical, Reclaim(), ReclaimForOS(), VARIABLE_STORE_HEADER::Reserved, VARIABLE_STORE_HEADER::Reserved1, VARIABLE_STORE_HEADER::Signature, VARIABLE_STORE_HEADER::Size, VARIABLE_STORE_HEADER::State, TRUE, VARIABLE_STORE_FORMATTED, VARIABLE_STORE_HEALTHY, ESAL_VARIABLE_GLOBAL::VariableGlobal, ESAL_VARIABLE_GLOBAL::VariableName, VARIABLE_GLOBAL::VariableServicesLock, ESAL_VARIABLE_GLOBAL::VolatileLastVariableOffset, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by VariableServiceInitialize().

CHAR8* VariableGetBestLanguage | ( | IN CONST CHAR8 * | SupportedLanguages,
 |  | IN BOOLEAN | Iso639Language,
 |  | IN BOOLEAN | VirtualMode,
 |  |  | ...
 | ) |  |

Returns a pointer to an allocated buffer that contains the best matching language from a set of supported languages.

This function supports both ISO 639-2 and RFC 4646 language codes, but language code types may not be mixed in a single call to this function. This function supports a variable argument list that allows the caller to pass in a prioritized list of language codes to test against all the language codes in SupportedLanguages.

If SupportedLanguages is NULL, then ASSERT().

Parameters:
[in] | SupportedLanguages | A pointer to a Null-terminated ASCII string that contains a set of language codes in the format specified by Iso639Language.
[in] | Iso639Language | If TRUE, then all language codes are assumed to be in ISO 639-2 format. If FALSE, then all language codes are assumed to be in RFC 4646 language format.
[in] | VirtualMode | Current calling mode for this function.
[in] ... A variable argument list that contains pointers to Null-terminated ASCII strings that contain one or more language codes in the format specified by Iso639Language. The first language code from each of these language code lists is used to determine if it is an exact or close match to any of the language codes in SupportedLanguages. Close matches only apply to RFC 4646 language codes, and the matching algorithm from RFC 4647 is used to determine if a close match is present. If an exact or close match is found, then the matching language code from SupportedLanguages is returned. If no matches are found, then the next variable argument parameter is evaluated. The variable argument list is terminated by a NULL.
Return values:
NULL | The best matching language could not be found in SupportedLanguages.
NULL | There are not enough resources available to return the best matching language.
Other | A pointer to a Null-terminated ASCII string that is the best matching language in SupportedLanguages.

References ESAL_VARIABLE_GLOBAL::Lang, and ESAL_VARIABLE_GLOBAL::PlatformLang.

Referenced by AutoUpdateLangVariable().

Variable Documentation

GLOBAL_REMOVE_IF_UNREFERENCED VARIABLE_INFO_ENTRY* gVariableInfo = NULL

Referenced by UpdateVariableInfo().

VARIABLE_CACHE_ENTRY mVariableCache[]

Initial value:

 {
  {
    &gEfiGlobalVariableGuid,
    L"Lang",
    0x00000000,
    0x00,
    NULL
  },
  {
    &gEfiGlobalVariableGuid,
    L"PlatformLang",
    0x00000000,
    0x00,
    NULL
  }
}

ESAL_VARIABLE_GLOBAL* mVariableModuleGlobal

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), DeleteVariable(), FtwNotificationEvent(), GetCertsFromDb(), InCustomMode(), InsertCertsToDb(), SmmFtwNotificationEvent(), UpdatePlatformMode(), VariableClassAddressChangeEvent(), VariableServiceInitialize(), and VerifyTimeBasedPayload().

CHAR16* mVariableName[NUM_VAR_NAME]

Initial value:

 {
  L"PlatformLangCodes",
  L"LangCodes",
  L"PlatformLang",
  L"Lang",
  L"HwErrRec",
  AUTHVAR_KEYDB_NAME,
  EFI_SETUP_MODE_NAME,
  EFI_PLATFORM_KEY_NAME,
  EFI_KEY_EXCHANGE_KEY_NAME
}

Referenced by VariableCommonInitialize().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/EsalVariableDxeSal/Variable.h File Reference

Data Structures

struct | VARIABLE_POINTER_TRACK
struct | VARIABLE_GLOBAL
struct | ESAL_VARIABLE_GLOBAL
struct | VARIABLE_CACHE_ENTRY

Defines

#define | MAX_NAME_SIZE 0x100
#define | NUM_VAR_NAME 9
#define | VAR_PLATFORM_LANG_CODES 0
#define | VAR_LANG_CODES 1
#define | VAR_PLATFORM_LANG 2
#define | VAR_LANG 3
#define | VAR_HW_ERR_REC 4
#define | VAR_AUTH_KEY_DB 5
#define | VAR_SETUP_MODE 6
#define | VAR_PLATFORM_KEY 7
#define | VAR_KEY_EXCHANGE_KEY 8
#define | AUTHVAR_KEYDB_NAME L"AuthVarKeyDatabase"
#define | AUTHVAR_KEYDB_NAME_SIZE 38
#define | MAX_KEYDB_SIZE (FixedPcdGet32 (PcdMaxVariableSize) - sizeof (VARIABLE_HEADER) - AUTHVAR_KEYDB_NAME_SIZE)
#define | MAX_KEY_NUM (MAX_KEYDB_SIZE / EFI_CERT_TYPE_RSA2048_SIZE)
#define | ISO_639_2_ENTRY_SIZE 3

Enumerations

enum | VARIABLE_POINTER_TYPE { Physical, Virtual }

Functions

EFI_STATUS | VariableCommonInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI | VariableServiceInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
VOID EFIAPI | VariableClassAddressChangeEvent (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI | EsalGetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | EsalGetNextVariableName (IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | EsalSetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS EFIAPI | EsalQueryVariableInfo (IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global)
EFI_STATUS | FtwVariableSpace (IN EFI_PHYSICAL_ADDRESS VariableBase, IN UINT8 *Buffer, IN UINTN BufferSize)
EFI_STATUS | FindVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack, IN VARIABLE_GLOBAL *Global, IN UINTN Instance)
VOID | GetVariableDataPtr (IN EFI_PHYSICAL_ADDRESS VariableAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance, OUT CHAR16 *VariableData)
UINTN | DataSizeOfVariable (IN VARIABLE_HEADER *Variable)
EFI_STATUS EFIAPI | UpdateVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN UINT32 Attributes, IN UINT32 KeyIndex, IN UINT64 MonotonicCount, IN BOOLEAN VirtualMode, IN ESAL_VARIABLE_GLOBAL *Global, IN VARIABLE_POINTER_TRACK *Variable)
BOOLEAN | IsValidVariableHeader (IN EFI_PHYSICAL_ADDRESS VariableAddress, IN BOOLEAN Volatile, IN VARIABLE_GLOBAL *Global, IN UINTN Instance, OUT VARIABLE_HEADER *VariableHeader)
VOID | FlushHob2Nv (VOID)

Variables

ESAL_VARIABLE_GLOBAL * mVariableModuleGlobal

Detailed Description

Internal header file for Extended SAL variable service module.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define AUTHVAR_KEYDB_NAME L"AuthVarKeyDatabase"

"AuthVarKeyDatabase" variable for the Public Key store.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), and Reclaim().

#define AUTHVAR_KEYDB_NAME_SIZE 38

#define ISO_639_2_ENTRY_SIZE 3

The size of a 3 character ISO639 language code.

Referenced by AutoUpdateLangVariable(), GetIndexFromSupportedLangCodes(), and GetLangFromSupportedLangCodes().

#define MAX_KEY_NUM (MAX_KEYDB_SIZE / EFI_CERT_TYPE_RSA2048_SIZE)

Referenced by AddPubKeyInStore().

#define MAX_KEYDB_SIZE (FixedPcdGet32 (PcdMaxVariableSize) - sizeof (VARIABLE_HEADER) - AUTHVAR_KEYDB_NAME_SIZE)

The maximum size of the public key database, restricted by maximum individal EFI varible size, and excluding the variable header and name size.

Referenced by AutenticatedVariableServiceInitialize(), ProcessVarWithKek(), and ProcessVarWithPk().

#define MAX_NAME_SIZE 0x100

Referenced by FindVariable(), and Reclaim().

#define NUM_VAR_NAME 9

Referenced by VariableClassAddressChangeEvent().

#define VAR_AUTH_KEY_DB 5

Referenced by AddPubKeyInStore(), and AutenticatedVariableServiceInitialize().

#define VAR_HW_ERR_REC 4

Referenced by EsalSetVariable().

#define VAR_KEY_EXCHANGE_KEY 8

Referenced by EsalSetVariable(), and ProcessVarWithKek().

#define VAR_LANG 3

Referenced by AutoUpdateLangVariable().

#define VAR_LANG_CODES 1

Referenced by AutoUpdateLangVariable().

#define VAR_PLATFORM_KEY 7

Referenced by AutenticatedVariableServiceInitialize(), EsalSetVariable(), and ProcessVarWithPk().

#define VAR_PLATFORM_LANG 2

Referenced by AutoUpdateLangVariable().

#define VAR_PLATFORM_LANG_CODES 0

Referenced by AutoUpdateLangVariable().

#define VAR_SETUP_MODE 6

Referenced by AutenticatedVariableServiceInitialize(), and UpdatePlatformMode().

Enumeration Type Documentation

enum VARIABLE_POINTER_TYPE

Enumerator:
Physical
Virtual

Function Documentation

UINTN DataSizeOfVariable ( IN VARIABLE_HEADER * Variable )

Gets the size of variable data area.

This function gets the size of variable data area. The variable is specified by its variable header. If variable header contains raw data, just return 0.

Parameters:
[in] Variable Pointer to the variable header.
Returns:
Size of variable data area in bytes.
This code gets the size of data of variable.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes in type UINTN.
This code gets the size of variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes.

EFI_STATUS EFIAPI EsalGetNextVariableName | ( | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VendorGuid,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalGetNextVariableName function of Extended SAL Variable Services Class.

This function implements EsalGetNextVariableName function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service GetNextVariableName().

Parameters:
[in,out] | VariableNameSize | Size of the variable
[in,out] | VariableName | On input, supplies the last VariableName that was returned by GetNextVariableName(). On output, returns the Null-terminated Unicode string of the current variable.
[in,out] | VendorGuid | On input, supplies the last VendorGuid that was returned by GetNextVariableName(). On output, returns the VendorGuid of the current variable.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | The next variable was not found.
EFI_BUFFER_TOO_SMALL | VariableNameSize is too small for the result. VariableNameSize has been updated with the size needed to complete the request.
EFI_INVALID_PARAMETER | VariableNameSize is NULL.
EFI_INVALID_PARAMETER | VariableName is NULL.
EFI_INVALID_PARAMETER | VendorGuid is NULL.
EFI_DEVICE_ERROR | The variable name could not be retrieved due to a hardware error.

References AcquireLockOnlyAtBootTime(), VARIABLE_HEADER::Attributes, VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_POINTER_TRACK::EndPtr, FindVariable(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), IsValidVariableHeader(), NameSizeOfVariable(), VARIABLE_GLOBAL::NonVolatileVariableBase, ReleaseLockOnlyAtBootTime(), VARIABLE_POINTER_TRACK::StartPtr, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VARIABLE_GLOBAL::VariableServicesLock, VARIABLE_HEADER::VendorGuid, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalVariableCommonEntry().

EFI_STATUS EFIAPI EsalGetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalGetVariable function of Extended SAL Variable Services Class.

This function implements EsalGetVariable function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service GetVariable().

Parameters:
[in] | VariableName | A Null-terminated Unicode string that is the name of the vendor's variable.
[in] | VendorGuid | A unique identifier for the vendor.
[out] | Attributes | If not NULL, a pointer to the memory location to return the attributes bitmask for the variable.
[in,out] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[out] | Data | On input, the size in bytes of the return Data buffer. On output, the size of data returned in Data.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | The variable was not found.
EFI_BUFFER_TOO_SMALL | DataSize is too small for the result. DataSize has been updated with the size needed to complete the request.
EFI_INVALID_PARAMETER | VariableName is NULL.
EFI_INVALID_PARAMETER | VendorGuid is NULL.
EFI_INVALID_PARAMETER | DataSize is NULL.
EFI_INVALID_PARAMETER | DataSize is not too small and Data is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved due to a hardware error.
EFI_SECURITY_VIOLATION | The variable could not be retrieved due to an authentication failure.

References AcquireLockOnlyAtBootTime(), VARIABLE_HEADER::Attributes, VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), FindVariable(), FindVariableInCache(), GetVariableDataPtr(), IsValidVariableHeader(), ReleaseLockOnlyAtBootTime(), TRUE, UpdateVariableCache(), UpdateVariableInfo(), VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by EsalVariableCommonEntry().

EFI_STATUS EFIAPI EsalQueryVariableInfo | ( | IN UINT32 | Attributes,
 |  | OUT UINT64 * | MaximumVariableStorageSize,
 |  | OUT UINT64 * | RemainingVariableStorageSize,
 |  | OUT UINT64 * | MaximumVariableSize,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalQueryVariableInfo function of Extended SAL Variable Services Class.

This function implements EsalQueryVariableInfo function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service QueryVariableInfo().

Parameters:
[in] | Attributes | Attributes bitmask to specify the type of variables on which to return information.
[out] | MaximumVariableStorageSize | On output the maximum size of the storage space available for the EFI variables associated with the attributes specified.
[out] | RemainingVariableStorageSize | Returns the remaining size of the storage space available for EFI variables associated with the attributes specified.
[out] | MaximumVariableSize | Returns the maximum size of an individual EFI variable associated with the attributes specified.
[in] | VirtualMode | Current calling mode for this function
[in] | Global | Context of this Extended SAL Variable Services Class call
Return values:
EFI_SUCCESS | Valid answer returned.
EFI_INVALID_PARAMETER | An invalid combination of attribute bits was supplied.
EFI_UNSUPPORTED | The attribute is not supported on this platform, and the MaximumVariableStorageSize, RemainingVariableStorageSize, MaximumVariableSize are undefined.

References AcquireLockOnlyAtBootTime(), VARIABLE_HEADER::Attributes, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVarStoreHeader(), IsValidVariableHeader(), VARIABLE_GLOBAL::NonVolatileVariableBase, ReleaseLockOnlyAtBootTime(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by EsalVariableCommonEntry().

EFI_STATUS EFIAPI EsalSetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT32 | Attributes,
 |  | IN UINTN | DataSize,
 |  | IN VOID * | Data,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global
 | ) |  |

Implements EsalSetVariable function of Extended SAL Variable Services Class.

This function implements EsalSetVariable function of Extended SAL Variable Services Class. It is equivalent in functionality to the EFI Runtime Service SetVariable().

Parameters:
[in] | VariableName | A Null-terminated Unicode string that is the name of the vendor's variable. Each VariableName is unique for each VendorGuid. VariableName must contain 1 or more Unicode characters. If VariableName is an empty Unicode string, then EFI_INVALID_PARAMETER is returned.
[in] | VendorGuid | A unique identifier for the vendor.
[in] | Attributes | Attributes bitmask to set for the variable.
[in] | DataSize | The size in bytes of the Data buffer. A size of zero causes the variable to be deleted.
[in] | Data | The contents for the variable.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
Return values:
EFI_SUCCESS | The firmware has successfully stored the variable and its data as defined by the Attributes.
EFI_INVALID_PARAMETER | An invalid combination of attribute bits was supplied, or the DataSize exceeds the maximum allowed.
EFI_INVALID_PARAMETER | VariableName is an empty Unicode string.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved due to a hardware failure.
EFI_WRITE_PROTECTED | The variable in question is read-only.
EFI_WRITE_PROTECTED | The variable in question cannot be deleted.
EFI_SECURITY_VIOLATION | The variable could not be retrieved due to an authentication failure.
EFI_NOT_FOUND | The variable trying to be updated or deleted was not found.

References AcquireLockOnlyAtBootTime(), AUTHINFO_SIZE, AutoUpdateLangVariable(), FindVariable(), GetNextVariablePtr(), GetStartPointer(), IsValidVariableHeader(), VARIABLE_GLOBAL::NonVolatileVariableBase, ProcessVarWithKek(), ProcessVarWithPk(), ReleaseLockOnlyAtBootTime(), TRUE, UpdateVariable(), VAR_HW_ERR_REC, VAR_KEY_EXCHANGE_KEY, VAR_PLATFORM_KEY, VARIABLE_GLOBAL::VariableServicesLock, and VerifyVariable().

Referenced by EsalVariableCommonEntry(), and FlushHob2Nv().

EFI_STATUS FindVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance
 | ) |  |

Finds variable in volatile and non-volatile storage areas.

This code finds variable in volatile and non-volatile storage areas. If VariableName is an empty string, then we just return the first qualified variable without comparing VariableName and VendorGuid. Otherwise, VariableName and VendorGuid are compared.

Parameters:
[in] | VariableName | Name of the variable to be found.
[in] | VendorGuid | Vendor GUID to be found.
[out] | PtrTrack | VARIABLE_POINTER_TRACK structure for output, including the range searched and the target position.
[in] | Global | Pointer to VARIABLE_GLOBAL structure, including base of volatile variable storage area, base of NV variable storage area, and a lock.
[in] | Instance | Instance of FV Block services.
Return values:
EFI_INVALID_PARAMETER | If VariableName is not an empty string, while VendorGuid is NULL.
EFI_SUCCESS | Variable successfully found.
EFI_INVALID_PARAMETER | Variable not found.

References VARIABLE_HEADER::Attributes, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), IsValidVariableHeader(), MAX_NAME_SIZE, NameSizeOfVariable(), VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, and VARIABLE_HEADER::VendorGuid.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), DeleteVariable(), EsalGetNextVariableName(), EsalGetVariable(), EsalSetVariable(), GetCertsFromDb(), InCustomMode(), InsertCertsToDb(), PeiGetNextVariableName(), PeiGetVariable(), ProcessVarWithKek(), ProcessVarWithPk(), UpdatePlatformMode(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceSetVariable(), and VerifyTimeBasedPayload().

VOID FlushHob2Nv ( VOID )

Flush the HOB variable to NV variable storage.

References VARIABLE_HEADER::Attributes, VARIABLE_HEADER::DataSize, EsalSetVariable(), VARIABLE_STORE_HEADER::Format, gEfiAuthenticatedVariableGuid, GET_PAD_SIZE, HEADER_ALIGN, VARIABLE_HEADER::NameSize, Physical, VARIABLE_STORE_HEADER::Signature, VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::StartId, VARIABLE_HEADER::State, VARIABLE_STORE_HEADER::State, VAR_ADDED, VARIABLE_DATA, VARIABLE_STORE_FORMATTED, VARIABLE_STORE_HEALTHY, and VARIABLE_HEADER::VendorGuid.

Referenced by VariableServiceInitialize().

EFI_STATUS FtwVariableSpace | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | IN UINT8 * | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Writes a buffer to variable storage space.

This function writes a buffer to variable storage space into firmware volume block device. The destination is specified by parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
[in] | VariableBase | The base address of the variable to write.
[in] | Buffer | Points to the data buffer.
[in] | BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
Other | The function could not complete successfully.
Writes a buffer to variable storage space, in the working block.

This function writes a buffer to variable storage space into a firmware volume block device. The destination is specified by parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
VariableBase | Base address of variable to write
Buffer | Point to the data buffer.
BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
EFI_ABORTED | The function could not complete successfully.

VOID GetVariableDataPtr | ( | IN EFI_PHYSICAL_ADDRESS | VariableAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance,
 |  | OUT CHAR16 * | VariableData
 | ) |  |

Gets the pointer to variable data area.

This function gets the pointer to variable data area. The variable is specified by its variable header.

Parameters:
[in] | VariableAddress | Start address of variable header.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
[out] | VariableData | Buffer to hold variable data for output.

References AccessVariableStore(), VARIABLE_HEADER::DataSize, GET_PAD_SIZE, IsValidVariableHeader(), and NameSizeOfVariable().

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), EsalGetVariable(), FlushHobVariableToFlash(), GetCertsFromDb(), GetNextVariablePtr(), InCustomMode(), InsertCertsToDb(), PeiGetVariable(), ProcessVarWithKek(), ProcessVarWithPk(), Reclaim(), UpdatePlatformMode(), UpdateVariable(), VariableServiceGetVariable(), and VerifyTimeBasedPayload().

BOOLEAN IsValidVariableHeader | ( | IN EFI_PHYSICAL_ADDRESS | VariableAddress,
 |  | IN BOOLEAN | Volatile,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN UINTN | Instance,
 |  | OUT VARIABLE_HEADER * | VariableHeader
 | ) |  |

Checks variable header.

This function checks if variable header is valid or not.

Parameters:
[in] | VariableAddress | Start address of variable header.
[in] | Volatile | TRUE - Variable is volatile. FALSE - Variable is non-volatile.
[in] | Global | Pointer to VARAIBLE_GLOBAL structure.
[in] | Instance | Instance of FV Block services.
[out] | VariableHeader | Pointer to VARIABLE_HEADER for output.
Return values:
TRUE | Variable header is valid.
FALSE | Variable header is not valid.

References AccessVariableStore(), VARIABLE_HEADER::StartId, TRUE, and VARIABLE_DATA.

Referenced by AutenticatedVariableServiceInitialize(), EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), FindVariable(), FindVariableEx(), FlushHobVariableToFlash(), GetNextVariablePtr(), GetVariableDataPtr(), GetVariableNamePtr(), IsValidPubKeyIndex(), PeiGetNextVariableName(), ProcessVarWithKek(), ProcessVarWithPk(), Reclaim(), UpdateVariable(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), VariableServiceSetVariable(), and VerifyVariable().

EFI_STATUS EFIAPI UpdateVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINT32 | Attributes,
 |  | IN UINT32 | KeyIndex,
 |  | IN UINT64 | MonotonicCount,
 |  | IN BOOLEAN | VirtualMode,
 |  | IN ESAL_VARIABLE_GLOBAL * | Global,
 |  | IN VARIABLE_POINTER_TRACK * | Variable
 | ) |  |

Update the variable region with Variable information. These are the same arguments as the EFI Variable services.

Parameters:
[in] | VariableName | Name of variable.
[in] | VendorGuid | Guid of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.
[in] | Attributes | Attributes of the variable.
[in] | KeyIndex | Index of associated public key.
[in] | MonotonicCount | Value of associated monotonic count.
[in] | VirtualMode | Current calling mode for this function.
[in] | Global | Context of this Extended SAL Variable Services Class call.
[in] | Variable | The variable information which is used to keep track of variable usage.
Return values:
EFI_SUCCESS | The update operation is success.
EFI_OUT_OF_RESOURCES | Variable region is full, can not write other data into this region.

References AccessVariableStore(), VARIABLE_HEADER::Attributes, VARIABLE_HEADER::DataSize, DataSizeOfVariable(), GET_PAD_SIZE, GetEndPointer(), GetVariableDataPtr(), GetVarStoreHeader(), HEADER_ALIGN, IsValidVariableHeader(), VARIABLE_HEADER::MonotonicCount, VARIABLE_HEADER::NameSize, VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_HEADER::PubKeyIndex, Reclaim(), VARIABLE_HEADER::Reserved, VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::StartId, VARIABLE_HEADER::State, TRUE, UpdateVariableCache(), UpdateVariableInfo(), VAR_ADDED, VAR_DELETED, VAR_HEADER_VALID_ONLY, VAR_IN_DELETED_TRANSITION, VARIABLE_DATA, VARIABLE_HEADER::VendorGuid, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), AutoUpdateLangVariable(), DeleteCertsFromDb(), DeleteVariable(), EsalSetVariable(), InsertCertsToDb(), ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), UpdatePlatformMode(), and VerifyTimeBasedPayload().

VOID EFIAPI VariableClassAddressChangeEvent | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.

This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event. It convers pointer to new virtual address.

Parameters:
[in] | Event | The event whose notification function is being invoked.
[in] | Context | The pointer to the notification function's context.
Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.

This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event. It convers pointer to new virtual address.

Parameters:
Event | Event whose notification function is being invoked.
Context | Pointer to the notification function's context.

References ESAL_VARIABLE_GLOBAL::AuthenticatedVariableGuid, ESAL_VARIABLE_GLOBAL::CertRsa2048Sha256Guid, ESAL_VARIABLE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, ESAL_VARIABLE_GLOBAL::GlobalVariableGuid, ESAL_VARIABLE_GLOBAL::HashContext, ESAL_VARIABLE_GLOBAL::ImageSecurityDatabaseGuid, ESAL_VARIABLE_GLOBAL::LangCodes, mHashCtx, mSerializationRuntimeBuffer, mStorageArea, mVariableModuleGlobal, VARIABLE_GLOBAL::NonVolatileVariableBase, NUM_VAR_NAME, Physical, ESAL_VARIABLE_GLOBAL::PlatformLang, ESAL_VARIABLE_GLOBAL::PlatformLangCodes, ESAL_VARIABLE_GLOBAL::VariableGlobal, ESAL_VARIABLE_GLOBAL::VariableName, Virtual, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by VariableServiceInitialize().

EFI_STATUS VariableCommonInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Initializes variable store area for non-volatile and volatile variable.

This function allocates and initializes memory space for global context of ESAL variable service and variable store area for non-volatile and volatile variable.

Parameters:
[in] | ImageHandle | The Image handle of this driver.
[in] | SystemTable | The pointer of EFI_SYSTEM_TABLE.
Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Failed to allocate enough memory resource.
Initializes variable store area for non-volatile and volatile variable.

This function allocates and initializes memory space for global context of ESAL variable service and variable store area for non-volatile and volatile variable.

Parameters:
[in] | ImageHandle | The Image handle of this driver.
[in] | SystemTable | The pointer of EFI_SYSTEM_TABLE.
Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resource.

References AccessVariableStore(), ESAL_VARIABLE_GLOBAL::CommonVariableTotalSize, EfiValid, VARIABLE_STORE_HEADER::Format, ESAL_VARIABLE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, GetNextVariablePtr(), GetStartPointer(), GetVariableStoreStatus(), ESAL_VARIABLE_GLOBAL::GlobalVariableGuid, ESAL_VARIABLE_GLOBAL::HwErrVariableTotalSize, IsValidVariableHeader(), mVariableName, ESAL_VARIABLE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Physical, Reclaim(), ReclaimForOS(), VARIABLE_STORE_HEADER::Reserved, VARIABLE_STORE_HEADER::Reserved1, VARIABLE_STORE_HEADER::Signature, VARIABLE_STORE_HEADER::Size, VARIABLE_STORE_HEADER::State, TRUE, VARIABLE_STORE_FORMATTED, VARIABLE_STORE_HEALTHY, ESAL_VARIABLE_GLOBAL::VariableGlobal, ESAL_VARIABLE_GLOBAL::VariableName, VARIABLE_GLOBAL::VariableServicesLock, ESAL_VARIABLE_GLOBAL::VolatileLastVariableOffset, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Entry point of Extended SAL Variable service module.

This function is the entry point of Extended SAL Variable service module. It registers all functions of Extended SAL Variable class, initializes variable store for non-volatile and volatile variables, and registers notification function for EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The Image handle of this driver.
[in] | SystemTable | The pointer of EFI_SYSTEM_TABLE.
Return values:
EFI_SUCCESS Extended SAL Variable Services Class successfully registered.
Variable Driver main entry point. The Variable driver places the 4 EFI runtime services in the EFI System Table and installs arch protocols for variable read and write services being available. It also registers a notification function for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS Variable service successfully initialized.
Variable Driver main entry point. The Variable driver places the 4 EFI runtime services in the EFI System Table and installs arch protocols for variable read and write services being available. It also registers a notification function for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS Variable service successfully initialized.

Register SMM variable SMI handler

References AutenticatedVariableServiceInitialize(), EsalVariableCommonEntry(), FlushHob2Nv(), FtwNotificationEvent(), gSmmVariable, mEfiVirtualNotifyEvent, mFtwRegistration, mHandle, mSmramRangeCount, mSmramRanges, mVariableBufferPayload, mVariableBufferPayloadSize, mVariableHandle, mVariableModuleGlobal, mVirtualAddressChangeEvent, OnReadyToBoot(), SmmFtwNotificationEvent(), SmmVariableHandler(), VariableClassAddressChangeEvent(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

Variable Documentation

ESAL_VARIABLE_GLOBAL* mVariableModuleGlobal


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/Pei/Variable.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/Pei/Variable.c File Reference

Functions

EFI_STATUS EFIAPI | PeimInitializeVariableServices (IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices)
VARIABLE_HEADER * | GetStartPointer (IN VARIABLE_STORE_HEADER *VarStoreHeader)
VARIABLE_HEADER * | GetEndPointer (IN VARIABLE_STORE_HEADER *VarStoreHeader)
BOOLEAN | IsValidVariableHeader (IN VARIABLE_HEADER *Variable)
UINTN | NameSizeOfVariable (IN VARIABLE_HEADER *Variable)
UINTN | DataSizeOfVariable (IN VARIABLE_HEADER *Variable)
CHAR16 * | GetVariableNamePtr (IN VARIABLE_HEADER *Variable)
UINT8 * | GetVariableDataPtr (IN VARIABLE_HEADER *Variable)
VARIABLE_HEADER * | GetNextVariablePtr (IN VARIABLE_HEADER *Variable)
VARIABLE_STORE_STATUS | GetVariableStoreStatus (IN VARIABLE_STORE_HEADER *VarStoreHeader)
EFI_STATUS | CompareWithValidVariable (IN VARIABLE_HEADER *Variable, IN CONST CHAR16 *VariableName, IN CONST EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack)
VARIABLE_STORE_HEADER * | GetVariableStore (IN VARIABLE_STORE_TYPE Type, OUT VARIABLE_INDEX_TABLE **IndexTable)
EFI_STATUS | FindVariableEx (IN VARIABLE_STORE_HEADER *VariableStoreHeader, IN VARIABLE_INDEX_TABLE *IndexTable, IN CONST CHAR16 *VariableName, IN CONST EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack)
EFI_STATUS | FindVariable (IN CONST CHAR16 *VariableName, IN CONST EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack)
EFI_STATUS EFIAPI | PeiGetVariable (IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This, IN CONST CHAR16 *VariableName, IN CONST EFI_GUID *VariableGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS EFIAPI | PeiGetNextVariableName (IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This, IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VariableGuid)

Variables

EFI_PEI_READ_ONLY_VARIABLE2_PPI | mVariablePpi
EFI_PEI_PPI_DESCRIPTOR | mPpiListVariable

Detailed Description

Implement ReadOnly Variable Services required by PEIM and install PEI ReadOnly Varaiable2 PPI. These services operates the non-volatile storage space.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS CompareWithValidVariable | ( | IN VARIABLE_HEADER * | Variable,
 |  | IN CONST CHAR16 * | VariableName,
 |  | IN CONST EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack
 | ) |  |

This function compares a variable with variable entries in database.

Parameters:
Variable | Pointer to the variable in our database
VariableName | Name of the variable to compare to 'Variable'
VendorGuid | GUID of the variable to compare to 'Variable'
PtrTrack | Variable Track Pointer structure that contains Variable Information.
Return values:
EFI_SUCCESS | Found match variable
EFI_NOT_FOUND | Variable not found

References GetVariableNamePtr(), and NameSizeOfVariable().

Referenced by FindVariableEx().

UINTN DataSizeOfVariable ( IN VARIABLE_HEADER * Variable )

This code gets the size of data of variable.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes in type UINTN.

EFI_STATUS FindVariable | ( | IN CONST CHAR16 * | VariableName,
 |  | IN CONST EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack
 | ) |  |

Find the variable in HOB and Non-Volatile variable storages.

Parameters:
VariableName | Name of the variable to be found
VendorGuid | Vendor GUID to be found.
PtrTrack | Variable Track Pointer structure that contains Variable Information.
Return values:
EFI_SUCCESS | Variable found successfully
EFI_NOT_FOUND | Variable not found
EFI_INVALID_PARAMETER | Invalid variable name

References FindVariableEx(), GetVariableStore(), and VariableStoreTypeMax.

EFI_STATUS FindVariableEx | ( | IN VARIABLE_STORE_HEADER * | VariableStoreHeader,
 |  | IN VARIABLE_INDEX_TABLE * | IndexTable,
 |  | IN CONST CHAR16 * | VariableName,
 |  | IN CONST EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack
 | ) |  |

Find the variable in the specified variable store.

Parameters:
VariableStoreHeader | Pointer to the variable store header.
IndexTable | Pointer to the index table.
VariableName | Name of the variable to be found
VendorGuid | Vendor GUID to be found.
PtrTrack | Variable Track Pointer structure that contains Variable Information.
Return values:
EFI_SUCCESS | Variable found successfully
EFI_NOT_FOUND | Variable not found
EFI_INVALID_PARAMETER | Invalid variable name

References CompareWithValidVariable(), EfiValid, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableStoreStatus(), IsValidVariableHeader(), VARIABLE_HEADER::State, TRUE, VAR_ADDED, and VAR_IN_DELETED_TRANSITION.

Referenced by FindVariable(), PeiGetNextVariableName(), and VariableServiceGetNextVariableName().

VARIABLE_HEADER* GetEndPointer ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

This code gets the pointer to the last variable memory pointer byte.

Parameters:
VarStoreHeader Pointer to the Variable Store Header.
Returns:
VARIABLE_HEADER* pointer to last unavailable Variable Header.

References HEADER_ALIGN.

VARIABLE_HEADER* GetNextVariablePtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the next variable header.

Parameters:
Variable Pointer to the Variable Header.
Returns:
A VARIABLE_HEADER* pointer to next variable header.

References DataSizeOfVariable(), GET_PAD_SIZE, GetVariableDataPtr(), HEADER_ALIGN, and IsValidVariableHeader().

VARIABLE_HEADER* GetStartPointer ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

Gets the pointer to the first variable header in given variable store area.

Parameters:
VarStoreHeader Pointer to the Variable Store Header.
Returns:
Pointer to the first variable header

References HEADER_ALIGN.

UINT8* GetVariableDataPtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
A UINT8* pointer to Variable Data.

CHAR16* GetVariableNamePtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the variable name.

Parameters:
Variable Pointer to the Variable Header.
Returns:
A CHAR16* pointer to Variable Name.

VARIABLE_STORE_HEADER* GetVariableStore | ( | IN VARIABLE_STORE_TYPE | Type,
 |  | OUT VARIABLE_INDEX_TABLE ** | IndexTable
 | ) |  |

Return the variable store header and the index table based on the Index.

Parameters:
Type | The type of the variable store.
IndexTable | Return the index table.
Returns:
Pointer to the variable store header.

References gEfiAuthenticatedVariableGuid, GetEndPointer(), GetStartPointer(), VariableStoreTypeHob, and VariableStoreTypeNv.

Referenced by FindVariable(), and PeiGetNextVariableName().

VARIABLE_STORE_STATUS GetVariableStoreStatus ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

This code gets the pointer to the variable name.

Parameters:
VarStoreHeader Pointer to the Variable Store Header.
Return values:
EfiRaw | Variable store is raw
EfiValid | Variable store is valid
EfiInvalid | Variable store is invalid

References EfiInvalid, EfiRaw, EfiValid, gEfiAuthenticatedVariableGuid, VARIABLE_STORE_FORMATTED, and VARIABLE_STORE_HEALTHY.

BOOLEAN IsValidVariableHeader ( IN VARIABLE_HEADER * Variable )

This code checks if variable header is valid or not.

Parameters:
Variable Pointer to the Variable Header.
Return values:
TRUE | Variable header is valid.
FALSE | Variable header is not valid.

References TRUE, and VARIABLE_DATA.

UINTN NameSizeOfVariable ( IN VARIABLE_HEADER * Variable )

This code gets the size of name of variable.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes in type UINTN.

EFI_STATUS EFIAPI PeiGetNextVariableName | ( | IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI * | This,
 |  | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VariableGuid
 | ) |  |

Return the next variable name and GUID.

This function is called multiple times to retrieve the VariableName and VariableGuid of all variables currently available in the system. On each call, the previous results are passed into the interface, and, on return, the interface returns the data for the next interface. When the entire variable list has been returned, EFI_NOT_FOUND is returned.

Parameters:
This | A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
VariableNameSize | On entry, points to the size of the buffer pointed to by VariableName. On return, the size of the variable name buffer.
VariableName | On entry, a pointer to a null-terminated string that is the variable's name. On return, points to the next variable's null-terminated name string.
VariableGuid | On entry, a pointer to an EFI_GUID that is the variable's GUID. On return, a pointer to the next variable's GUID.
Return values:
EFI_SUCCESS | The variable was read successfully.
EFI_NOT_FOUND | The variable could not be found.
EFI_BUFFER_TOO_SMALL | The VariableNameSize is too small for the resulting data. VariableNameSize is updated with the size required for the specified variable.
EFI_INVALID_PARAMETER | VariableName, VariableGuid or VariableNameSize is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved because of a device error.

References VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_POINTER_TRACK::EndPtr, FindVariable(), FindVariableEx(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), GetVariableStore(), IsValidVariableHeader(), NameSizeOfVariable(), VARIABLE_POINTER_TRACK::StartPtr, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, VariableStoreTypeHob, VariableStoreTypeMax, and VariableStoreTypeNv.

EFI_STATUS EFIAPI PeiGetVariable | ( | IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI * | This,
 |  | IN CONST CHAR16 * | VariableName,
 |  | IN CONST EFI_GUID * | VariableGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data
 | ) |  |

This service retrieves a variable's value using its name and GUID.

Read the specified variable from the UEFI variable store. If the Data buffer is too small to hold the contents of the variable, the error EFI_BUFFER_TOO_SMALL is returned and DataSize is set to the required buffer size to obtain the data.

Parameters:
This | A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
VariableName | A pointer to a null-terminated string that is the variable's name.
VariableGuid | A pointer to an EFI_GUID that is the variable's GUID. The combination of VariableGuid and VariableName must be unique.
Attributes | If non-NULL, on return, points to the variable's attributes.
DataSize | On entry, points to the size in bytes of the Data buffer. On return, points to the size of the data returned in Data.
Data | Points to the buffer which will hold the returned variable value.
Return values:
EFI_SUCCESS | The variable was read successfully.
EFI_NOT_FOUND | The variable could not be found.
EFI_BUFFER_TOO_SMALL | The DataSize is too small for the resulting data. DataSize is updated with the size required for the specified variable.
EFI_INVALID_PARAMETER | VariableName, VariableGuid, DataSize or Data is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved because of a device error.

References VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), FindVariable(), and GetVariableDataPtr().

EFI_STATUS EFIAPI PeimInitializeVariableServices | ( | IN EFI_PEI_FILE_HANDLE | FileHandle,
 |  | IN CONST EFI_PEI_SERVICES ** | PeiServices
 | ) |  |

Provide the functionality of the variable services.

Parameters:
FileHandle | Handle of the file being invoked. Type EFI_PEI_FILE_HANDLE is defined in FfsFindNextFile().
PeiServices | General purpose services available to every PEIM.
Return values:
EFI_SUCCESS | If the interface could be successfully installed
Others | Returned from PeiServicesInstallPpi()

References mPpiListVariable.

Variable Documentation

EFI_PEI_PPI_DESCRIPTOR mPpiListVariable

Initial value:

 {
  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
  &gEfiPeiReadOnlyVariable2PpiGuid,
  &mVariablePpi
}

Referenced by PeimInitializeVariableServices().

EFI_PEI_READ_ONLY_VARIABLE2_PPI mVariablePpi

Initial value:

 {
  PeiGetVariable,
  PeiGetNextVariableName
}


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/Pei/Variable.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/Pei/Variable.h File Reference

Enumerations

enum VARIABLE_STORE_TYPE {
VariableStoreTypeHob, VariableStoreTypeNv, VariableStoreTypeMax, VariableStoreTypeVolatile,
VariableStoreTypeHob, VariableStoreTypeNv, VariableStoreTypeMax
}

Functions

EFI_STATUS EFIAPI | PeimInitializeVariableServices (IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices)
EFI_STATUS EFIAPI | PeiGetVariable (IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This, IN CONST CHAR16 *VariableName, IN CONST EFI_GUID *VariableGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS EFIAPI | PeiGetNextVariableName (IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This, IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VariableGuid)

Detailed Description

The internal header file includes the common header files, defines internal structure and functions used by PeiVariable module.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Enumeration Type Documentation

enum VARIABLE_STORE_TYPE

Enumerator:
VariableStoreTypeHob
VariableStoreTypeNv
VariableStoreTypeMax
VariableStoreTypeVolatile
VariableStoreTypeHob
VariableStoreTypeNv
VariableStoreTypeMax

Function Documentation

EFI_STATUS EFIAPI PeiGetNextVariableName | ( | IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI * | This,
 |  | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VariableGuid
 | ) |  |

Return the next variable name and GUID.

This function is called multiple times to retrieve the VariableName and VariableGuid of all variables currently available in the system. On each call, the previous results are passed into the interface, and, on return, the interface returns the data for the next interface. When the entire variable list has been returned, EFI_NOT_FOUND is returned.

Parameters:
This | A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
VariableNameSize | On entry, points to the size of the buffer pointed to by VariableName.
VariableName | On entry, a pointer to a null-terminated string that is the variable's name. On return, points to the next variable's null-terminated name string.
VariableGuid | On entry, a pointer to an UEFI _GUID that is the variable's GUID. On return, a pointer to the next variable's GUID.
Return values:
EFI_SUCCESS | The variable was read successfully.
EFI_NOT_FOUND | The variable could not be found.
EFI_BUFFER_TOO_SMALL | The VariableNameSize is too small for the resulting data. VariableNameSize is updated with the size required for the specified variable.
EFI_INVALID_PARAMETER | VariableName, VariableGuid or VariableNameSize is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved because of a device error.
Return the next variable name and GUID.

This function is called multiple times to retrieve the VariableName and VariableGuid of all variables currently available in the system. On each call, the previous results are passed into the interface, and, on return, the interface returns the data for the next interface. When the entire variable list has been returned, EFI_NOT_FOUND is returned.

Parameters:
This | A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
VariableNameSize | On entry, points to the size of the buffer pointed to by VariableName. On return, the size of the variable name buffer.
VariableName | On entry, a pointer to a null-terminated string that is the variable's name. On return, points to the next variable's null-terminated name string.
VariableGuid | On entry, a pointer to an EFI_GUID that is the variable's GUID. On return, a pointer to the next variable's GUID.
Return values:
EFI_SUCCESS | The variable was read successfully.
EFI_NOT_FOUND | The variable could not be found.
EFI_BUFFER_TOO_SMALL | The VariableNameSize is too small for the resulting data. VariableNameSize is updated with the size required for the specified variable.
EFI_INVALID_PARAMETER | VariableName, VariableGuid or VariableNameSize is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved because of a device error.

References VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_POINTER_TRACK::EndPtr, FindVariable(), FindVariableEx(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), GetVariableStore(), IsValidVariableHeader(), NameSizeOfVariable(), VARIABLE_POINTER_TRACK::StartPtr, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, VariableStoreTypeHob, VariableStoreTypeMax, and VariableStoreTypeNv.

EFI_STATUS EFIAPI PeiGetVariable | ( | IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI * | This,
 |  | IN CONST CHAR16 * | VariableName,
 |  | IN CONST EFI_GUID * | VariableGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data
 | ) |  |

This service retrieves a variable's value using its name and GUID.

Read the specified variable from the UEFI variable store. If the Data buffer is too small to hold the contents of the variable, the error EFI_BUFFER_TOO_SMALL is returned and DataSize is set to the required buffer size to obtain the data.

Parameters:
This | A pointer to this instance of the EFI_PEI_READ_ONLY_VARIABLE2_PPI.
VariableName | A pointer to a null-terminated string that is the variable's name.
VariableGuid | A pointer to an EFI_GUID that is the variable's GUID. The combination of VariableGuid and VariableName must be unique.
Attributes | If non-NULL, on return, points to the variable's attributes.
DataSize | On entry, points to the size in bytes of the Data buffer. On return, points to the size of the data returned in Data.
Data | Points to the buffer which will hold the returned variable value.
Return values:
EFI_SUCCESS | The variable was read successfully.
EFI_NOT_FOUND | The variable could not be found.
EFI_BUFFER_TOO_SMALL | The DataSize is too small for the resulting data. DataSize is updated with the size required for the specified variable.
EFI_INVALID_PARAMETER | VariableName, VariableGuid, DataSize or Data is NULL.
EFI_DEVICE_ERROR | The variable could not be retrieved because of a device error.

References VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), FindVariable(), and GetVariableDataPtr().

EFI_STATUS EFIAPI PeimInitializeVariableServices | ( | IN EFI_PEI_FILE_HANDLE | FileHandle,
 |  | IN CONST EFI_PEI_SERVICES ** | PeiServices
 | ) |  |

Provide the functionality of the variable services.

Parameters:
FileHandle | Handle of the file being invoked. Type EFI_PEI_FILE_HANDLE is defined in FfsFindNextFile().
PeiServices | General purpose services available to every PEIM.
Return values:
EFI_SUCCESS | If the interface could be successfully installed
Others | Returned from PeiServicesInstallPpi()
Provide the functionality of the variable services.

Parameters:
FileHandle | Handle of the file being invoked. Type EFI_PEI_FILE_HANDLE is defined in FfsFindNextFile().
PeiServices | General purpose services available to every PEIM.
Return values:
EFI_SUCCESS | If the interface could be successfully installed
Others | Returned from PeiServicesInstallPpi()

References mPpiListVariable.


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.c File Reference

Functions

BOOLEAN | NeedPhysicallyPresent (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
BOOLEAN | InCustomMode (VOID)
EFI_STATUS | DeleteVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS | AutenticatedVariableServiceInitialize (VOID)
UINT32 | AddPubKeyInStore (IN UINT8 *PubKey)
EFI_STATUS | VerifyCounterBasedPayload (IN UINT8 *Data, IN UINTN DataSize, IN UINT8 *PubKey)
EFI_STATUS | UpdatePlatformMode (IN UINT32 Mode)
EFI_STATUS | CheckSignatureListFormat (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize)
EFI_STATUS | ProcessVarWithPk (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, IN BOOLEAN IsPk)
EFI_STATUS | ProcessVarWithKek (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes)
EFI_STATUS | ProcessVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes)
EFI_STATUS | AppendSignatureList (IN OUT VOID *Data, IN UINTN DataSize, IN UINTN FreeBufSize, IN VOID *NewData, IN UINTN NewDataSize, OUT UINTN *MergedBufSize)
BOOLEAN | CompareTimeStamp (IN EFI_TIME *FirstTime, IN EFI_TIME *SecondTime)
EFI_STATUS | FindCertsFromDb (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT8 *Data, IN UINTN DataSize, OUT UINT32 *CertOffset, OUT UINT32 *CertDataSize, OUT UINT32 *CertNodeOffset, OUT UINT32 *CertNodeSize)
EFI_STATUS | GetCertsFromDb (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT8 **CertData, OUT UINT32 *CertDataSize)
EFI_STATUS | DeleteCertsFromDb (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS | InsertCertsToDb (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT8 *CertData, IN UINTN CertDataSize)
EFI_STATUS | VerifyTimeBasedPayload (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, IN AUTHVAR_TYPE AuthVarType, OUT BOOLEAN *VarDel)

Variables

UINT8 | mPubKeyStore [MAX_KEYDB_SIZE]
UINT32 | mPubKeyNumber
UINT8 | mCertDbStore [MAX_CERTDB_SIZE]
UINT32 | mPlatformMode
EFI_GUID | mSignatureSupport [] = {EFI_CERT_SHA1_GUID, EFI_CERT_SHA256_GUID, EFI_CERT_RSA2048_GUID, EFI_CERT_X509_GUID}
CONST UINT8 | mRsaE [] = { 0x01, 0x00, 0x01 }
VOID * | mHashCtx = NULL
VOID * | mStorageArea = NULL
UINT8 * | mSerializationRuntimeBuffer = NULL
EFI_SIGNATURE_ITEM mSupportSigItem []

Detailed Description

Implement authentication services for the authenticated variable service in UEFI2.2.

Caution: This module requires additional review when modified. This driver will have external input - variable data. It may be input in SMM mode. This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow. Variable attribute should also be checked to avoid authentication bypass.

ProcessVarWithPk(), ProcessVarWithKek() and ProcessVariable() are the function to do variable authentication.

VerifyTimeBasedPayload() and VerifyCounterBasedPayload() are sub function to do verification. They will do basic validation for authentication data structure, then call crypto library to verify the signature.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

UINT32 AddPubKeyInStore ( IN UINT8 * PubKey )

Add public key in store and return its index.

Parameters:
[in] PubKey Input pointer to Public Key data
Returns:
Index of new added item

References AtRuntime(), AUTHVAR_KEYDB_NAME, VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), EFI_CERT_TYPE_RSA2048_SIZE, FindVariable(), gEfiAuthenticatedVariableGuid, GetVariableDataPtr(), MAX_KEY_NUM, mPubKeyNumber, mPubKeyStore, mVariableModuleGlobal, ESAL_VARIABLE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Reclaim(), TRUE, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

EFI_STATUS AppendSignatureList | ( | IN OUT VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINTN | FreeBufSize,
 |  | IN VOID * | NewData,
 |  | IN UINTN | NewDataSize,
 |  | OUT UINTN * | MergedBufSize
 | ) |  |

Merge two buffers which formatted as EFI_SIGNATURE_LIST. Only the new EFI_SIGNATURE_DATA will be appended to the original EFI_SIGNATURE_LIST, duplicate EFI_SIGNATURE_DATA will be ignored.

Parameters:
[in,out] | Data | Pointer to original EFI_SIGNATURE_LIST.
[in] | DataSize | Size of Data buffer.
[in] | FreeBufSize | Size of free data buffer
[in] | NewData | Pointer to new EFI_SIGNATURE_LIST to be appended.
[in] | NewDataSize | Size of NewData buffer.
[out] | MergedBufSize | Size of the merged buffer
Returns:
EFI_BUFFER_TOO_SMALL if input Data buffer overflowed

References TRUE.

Referenced by UpdateVariable().

EFI_STATUS AutenticatedVariableServiceInitialize ( VOID )

Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resources.

References ESAL_VARIABLE_GLOBAL::AuthenticatedVariableGuid, AUTHVAR_KEYDB_NAME, ESAL_VARIABLE_GLOBAL::CertRsa2048Sha256Guid, VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), EFI_CERT_DB_NAME, EFI_CERT_TYPE_RSA2048_SIZE, EFI_CUSTOM_MODE_NAME, EFI_SECURE_BOOT_ENABLE_NAME, FindVariable(), ESAL_VARIABLE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, gEfiCertDbGuid, gEfiCustomModeEnableGuid, gEfiSecureBootEnableDisableGuid, GetVariableDataPtr(), ESAL_VARIABLE_GLOBAL::HashContext, ESAL_VARIABLE_GLOBAL::ImageSecurityDatabaseGuid, IsValidVariableHeader(), MAX_KEYDB_SIZE, mHashCtx, mPlatformMode, mPubKeyNumber, mPubKeyStore, mSerializationRuntimeBuffer, mSignatureSupport, mStorageArea, mVariableModuleGlobal, Physical, ESAL_VARIABLE_GLOBAL::PubKeyStore, SECURE_BOOT_DISABLE, SECURE_BOOT_ENABLE, SecureBootMode, SIGSUPPORT_NUM, STANDARD_SECURE_BOOT_MODE, UpdateVariable(), VAR_AUTH_KEY_DB, VAR_PLATFORM_KEY, VAR_SETUP_MODE, ESAL_VARIABLE_GLOBAL::VariableGlobal, ESAL_VARIABLE_GLOBAL::VariableName, and VARIABLE_POINTER_TRACK::Volatile.

EFI_STATUS CheckSignatureListFormat | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize
 | ) |  |

Check input data form to make sure it is a valid EFI_SIGNATURE_LIST for PK/KEK/db/dbx variable.

Parameters:
[in] | VariableName | Name of Variable to be check.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Point to the variable data to be checked.
[in] | DataSize | Size of Data.
Returns:
EFI_INVALID_PARAMETER Invalid signature list format.

EFI_SUCCESS Passed signature list format check successfully.

References EFI_SIGNATURE_ITEM::SigHeaderSize, EFI_SIGNATURE_ITEM::SigType, and TRUE.

Referenced by ProcessVarWithKek(), ProcessVarWithPk(), and VerifyTimeBasedPayload().

BOOLEAN CompareTimeStamp | ( | IN EFI_TIME * | FirstTime,
 |  | IN EFI_TIME * | SecondTime
 | ) |  |

Compare two EFI_TIME data.

Parameters:
FirstTime | A pointer to the first EFI_TIME data.
SecondTime | A pointer to the second EFI_TIME data.
Return values:
TRUE | The FirstTime is not later than the SecondTime.
FALSE | The FirstTime is later than the SecondTime.

Referenced by UpdateVariable(), and VerifyTimeBasedPayload().

EFI_STATUS DeleteCertsFromDb | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Delete matching signer's certificates when deleting common authenticated variable by corresponding VariableName and VendorGuid from "certdb".

Parameters:
[in] | VariableName | Name of authenticated Variable.
[in] | VendorGuid | Vendor GUID of authenticated Variable.
Return values:
EFI_INVALID_PARAMETER | Any input parameter is invalid.
EFI_NOT_FOUND | Fail to find "certdb" or matching certs.
EFI_OUT_OF_RESOURCES | The operation is failed due to lack of resources.
EFI_SUCCESS | The operation is completed successfully.

References VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), EFI_CERT_DB_NAME, FindCertsFromDb(), FindVariable(), gEfiCertDbGuid, GetVariableDataPtr(), mCertDbStore, mVariableModuleGlobal, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by VerifyTimeBasedPayload().

EFI_STATUS DeleteVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Internal function to delete a Variable given its name and GUID, no authentication required.

Parameters:
[in] | VariableName | Name of the Variable.
[in] | VendorGuid | GUID of the Variable.
Return values:
EFI_SUCCESS | Variable deleted successfully.
Others | The driver failded to start the device.

References VARIABLE_POINTER_TRACK::CurrPtr, FindVariable(), mVariableModuleGlobal, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by DeletePlatformKey().

EFI_STATUS FindCertsFromDb | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT8 * | Data,
 |  | IN UINTN | DataSize,
 |  | OUT UINT32 * | CertOffset,
 |  | OUT UINT32 * | CertDataSize,
 |  | OUT UINT32 * | CertNodeOffset,
 |  | OUT UINT32 * | CertNodeSize
 | ) |  |

Find matching signer's certificates for common authenticated variable by corresponding VariableName and VendorGuid from "certdb".

The data format of "certdb":

UINT32 CertDbListSize; /// AUTH_CERT_DB_DATA Certs1[]; /// AUTH_CERT_DB_DATA Certs2[]; /// ... /// AUTH_CERT_DB_DATA Certsn[];

Parameters:
[in] | VariableName | Name of authenticated Variable.
[in] | VendorGuid | Vendor GUID of authenticated Variable.
[in] | Data | Pointer to variable "certdb".
[in] | DataSize | Size of variable "certdb".
[out] | CertOffset | Offset of matching CertData, from starting of Data.
[out] | CertDataSize | Length of CertData in bytes.
[out] | CertNodeOffset | Offset of matching AUTH_CERT_DB_DATA , from starting of Data.
[out] | CertNodeSize | Length of AUTH_CERT_DB_DATA in bytes.
Return values:
EFI_INVALID_PARAMETER | Any input parameter is invalid.
EFI_NOT_FOUND | Fail to find matching certs.
EFI_SUCCESS | Find matching certs and output parameters.

References AUTH_CERT_DB_DATA::CertDataSize, AUTH_CERT_DB_DATA::CertNodeSize, AUTH_CERT_DB_DATA::NameSize, and AUTH_CERT_DB_DATA::VendorGuid.

Referenced by DeleteCertsFromDb(), GetCertsFromDb(), and InsertCertsToDb().

EFI_STATUS GetCertsFromDb | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT8 ** | CertData,
 |  | OUT UINT32 * | CertDataSize
 | ) |  |

Retrieve signer's certificates for common authenticated variable by corresponding VariableName and VendorGuid from "certdb".

Parameters:
[in] | VariableName | Name of authenticated Variable.
[in] | VendorGuid | Vendor GUID of authenticated Variable.
[out] | CertData | Pointer to signer's certificates.
[out] | CertDataSize | Length of CertData in bytes.
Return values:
EFI_INVALID_PARAMETER | Any input parameter is invalid.
EFI_NOT_FOUND | Fail to find "certdb" or matching certs.
EFI_SUCCESS | Get signer's certificates successfully.

References VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), EFI_CERT_DB_NAME, FindCertsFromDb(), FindVariable(), gEfiCertDbGuid, GetVariableDataPtr(), mVariableModuleGlobal, and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by VerifyTimeBasedPayload().

BOOLEAN InCustomMode ( VOID )

Determine whether the platform is operating in Custom Secure Boot mode.

Return values:
TRUE | The platform is operating in Custom mode.
FALSE | The platform is operating in Standard mode.

References VARIABLE_POINTER_TRACK::CurrPtr, CUSTOM_SECURE_BOOT_MODE, EFI_CUSTOM_MODE_NAME, FindVariable(), gEfiCustomModeEnableGuid, GetVariableDataPtr(), mVariableModuleGlobal, TRUE, and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by ProcessVarWithKek(), and ProcessVarWithPk().

EFI_STATUS InsertCertsToDb | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT8 * | CertData,
 |  | IN UINTN | CertDataSize
 | ) |  |

Insert signer's certificates for common authenticated variable with VariableName and VendorGuid in AUTH_CERT_DB_DATA to "certdb".

Parameters:
[in] | VariableName | Name of authenticated Variable.
[in] | VendorGuid | Vendor GUID of authenticated Variable.
[in] | CertData | Pointer to signer's certificates.
[in] | CertDataSize | Length of CertData in bytes.
Return values:
EFI_INVALID_PARAMETER | Any input parameter is invalid.
EFI_ACCESS_DENIED | An AUTH_CERT_DB_DATA entry with same VariableName and VendorGuid already exists.
EFI_OUT_OF_RESOURCES | The operation is failed due to lack of resources.
EFI_SUCCESS | Insert an AUTH_CERT_DB_DATA entry to "certdb"

References AUTH_CERT_DB_DATA::CertDataSize, AUTH_CERT_DB_DATA::CertNodeSize, VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), EFI_CERT_DB_NAME, FindCertsFromDb(), FindVariable(), gEfiCertDbGuid, GetVariableDataPtr(), MAX_CERTDB_SIZE, mCertDbStore, mVariableModuleGlobal, AUTH_CERT_DB_DATA::NameSize, UpdateVariable(), ESAL_VARIABLE_GLOBAL::VariableGlobal, and AUTH_CERT_DB_DATA::VendorGuid.

Referenced by VerifyTimeBasedPayload().

BOOLEAN NeedPhysicallyPresent | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Determine whether this operation needs a physical present user.

Parameters:
[in] | VariableName | Name of the Variable.
[in] | VendorGuid | GUID of the Variable.
Return values:
TRUE | This variable is protected, only a physical present user could set this variable.
FALSE | This variable is not protected.

References EFI_CUSTOM_MODE_NAME, EFI_SECURE_BOOT_ENABLE_NAME, gEfiCustomModeEnableGuid, gEfiSecureBootEnableDisableGuid, and TRUE.

Referenced by ProcessVariable().

EFI_STATUS ProcessVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes
 | ) |  |

Process variable with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS/EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_WRITE_PROTECTED Variable is write-protected and needs authentication with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set.

EFI_OUT_OF_RESOURCES The Database to save the public key is full.

EFI_SECURITY_VIOLATION The variable is with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, but the AuthInfo does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable is not write-protected or pass validation successfully.

References AddPubKeyInStore(), AUTHINFO_SIZE, AuthVarTypePriv, EFI_CERT_TYPE_RSA2048_SIZE, mPubKeyStore, NeedPhysicallyPresent(), TRUE, UpdateVariable(), UserPhysicalPresent(), VerifyCounterBasedPayload(), and VerifyTimeBasedPayload().

Referenced by VariableServiceSetVariable().

EFI_STATUS ProcessVarWithKek | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes
 | ) |  |

Process variable with key exchange key for verification.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SECURITY_VIOLATION The variable does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable pass validation successfully.

References AUTHINFO2_SIZE, AuthVarTypeKek, CheckSignatureListFormat(), InCustomMode(), mPlatformMode, UpdateVariable(), UserPhysicalPresent(), and VerifyTimeBasedPayload().

EFI_STATUS ProcessVarWithPk | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | IN BOOLEAN | IsPk
 | ) |  |

Process variable with platform key for verification.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable
[in] | IsPk | Indicate whether it is to process pk.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SECURITY_VIOLATION The variable does NOT pass the validation. check carried out by the firmware.

EFI_SUCCESS Variable passed validation successfully.

References AUTHINFO2_SIZE, AuthVarTypePayload, AuthVarTypePk, CheckSignatureListFormat(), InCustomMode(), mPlatformMode, TRUE, UpdatePlatformMode(), UpdateVariable(), UserPhysicalPresent(), and VerifyTimeBasedPayload().

EFI_STATUS UpdatePlatformMode ( IN UINT32 Mode )

Update platform mode.

Parameters:
[in] Mode SETUP_MODE or USER_MODE.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Update platform mode successfully.

References AtRuntime(), VARIABLE_POINTER_TRACK::CurrPtr, EFI_SECURE_BOOT_ENABLE_NAME, FindVariable(), gEfiSecureBootEnableDisableGuid, GetVariableDataPtr(), mPlatformMode, mVariableModuleGlobal, SECURE_BOOT_DISABLE, SECURE_BOOT_ENABLE, SecureBootMode, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

EFI_STATUS VerifyCounterBasedPayload | ( | IN UINT8 * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINT8 * | PubKey
 | ) |  |

Verify data payload with AuthInfo in EFI_CERT_TYPE_RSA2048_SHA256_GUID type. Follow the steps in UEFI2.2.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow.

Parameters:
[in] | Data | Pointer to data with AuthInfo.
[in] | DataSize | Size of Data.
[in] | PubKey | Public key used for verification.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | If authentication failed.
EFI_SUCCESS | Authentication successful.

References AUTHINFO_SIZE, EFI_CERT_TYPE_RSA2048_SHA256_SIZE, EFI_CERT_TYPE_RSA2048_SIZE, mHashCtx, mRsaE, and SHA256_DIGEST_SIZE.

Referenced by ProcessVariable().

EFI_STATUS VerifyTimeBasedPayload | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | IN AUTHVAR_TYPE | AuthVarType,
 |  | OUT BOOLEAN * | VarDel
 | ) |  |

Process variable with EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
[in] | AuthVarType | Verify against PK, KEK database, private database or certificate in data payload.
[out] | VarDel | Delete the variable or not.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_OUT_OF_RESOURCES | Failed to process variable due to lack of resources.
EFI_SUCCESS | Variable pass validation successfully.

References AuthVarTypeKek, AuthVarTypePayload, AuthVarTypePk, AuthVarTypePriv, CheckSignatureListFormat(), CompareTimeStamp(), VARIABLE_POINTER_TRACK::CurrPtr, DeleteCertsFromDb(), FindVariable(), GetCertsFromDb(), GetVariableDataPtr(), InsertCertsToDb(), mSerializationRuntimeBuffer, mVariableModuleGlobal, OFFSET_OF_AUTHINFO2_CERT_DATA, TRUE, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by ProcessVariable(), ProcessVarWithKek(), and ProcessVarWithPk().

Variable Documentation

UINT8 mCertDbStore[MAX_CERTDB_SIZE]

Referenced by DeleteCertsFromDb(), and InsertCertsToDb().

VOID* mHashCtx = NULL

Referenced by AutenticatedVariableServiceInitialize(), VariableClassAddressChangeEvent(), and VerifyCounterBasedPayload().

UINT32 mPlatformMode

UINT32 mPubKeyNumber

Global database array for scratch

UINT8 mPubKeyStore[MAX_KEYDB_SIZE]

Global database array for scratch

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), ProcessVariable(), and Reclaim().

CONST UINT8 mRsaE[] = { 0x01, 0x00, 0x01 }

UINT8* mSerializationRuntimeBuffer = NULL

Referenced by AutenticatedVariableServiceInitialize(), VariableClassAddressChangeEvent(), and VerifyTimeBasedPayload().

EFI_GUID mSignatureSupport[] = {EFI_CERT_SHA1_GUID, EFI_CERT_SHA256_GUID, EFI_CERT_RSA2048_GUID, EFI_CERT_X509_GUID}

VOID* mStorageArea = NULL

Referenced by AutenticatedVariableServiceInitialize(), UpdateVariable(), and VariableClassAddressChangeEvent().

EFI_SIGNATURE_ITEM mSupportSigItem[]

Initial value:

 {

  {EFI_CERT_SHA256_GUID,          0,               32           },
  {EFI_CERT_RSA2048_GUID,         0,               256          },
  {EFI_CERT_RSA2048_SHA256_GUID,  0,               256          },
  {EFI_CERT_SHA1_GUID,            0,               20           },
  {EFI_CERT_RSA2048_SHA1_GUID,    0,               256          },
  {EFI_CERT_X509_GUID,            0,               ((UINT32) ~0)},
  {EFI_CERT_SHA224_GUID,          0,               28           },
  {EFI_CERT_SHA384_GUID,          0,               48           },
  {EFI_CERT_SHA512_GUID,          0,               64           }
}

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/AuthService.h File Reference

Data Structures

struct | EFI_SIGNATURE_ITEM
struct | AUTH_CERT_DB_DATA

Defines

#define | EFI_CERT_TYPE_RSA2048_SHA256_SIZE 256
#define | EFI_CERT_TYPE_RSA2048_SIZE 256
#define | AUTHINFO_SIZE
#define | AUTHINFO2_SIZE(VarAuth2)
#define | OFFSET_OF_AUTHINFO2_CERT_DATA
#define | AUTHVAR_KEYDB_NAME L"AuthVarKeyDatabase"
#define | MAX_KEYDB_SIZE (FixedPcdGet32 (PcdMaxVariableSize) - sizeof (VARIABLE_HEADER) - sizeof (AUTHVAR_KEYDB_NAME))
#define | MAX_KEY_NUM (MAX_KEYDB_SIZE / EFI_CERT_TYPE_RSA2048_SIZE)
#define | EFI_CERT_DB_NAME L"certdb"
#define | MAX_CERTDB_SIZE (FixedPcdGet32 (PcdMaxVariableSize) - sizeof (VARIABLE_HEADER) - sizeof (EFI_CERT_DB_NAME))

Enumerations

enum | AUTHVAR_TYPE { AuthVarTypePk, AuthVarTypeKek, AuthVarTypePriv, AuthVarTypePayload }

Functions

EFI_STATUS | ProcessVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes)
EFI_STATUS | UpdatePlatformMode (IN UINT32 Mode)
EFI_STATUS | AutenticatedVariableServiceInitialize (VOID)
VOID | CryptLibraryInitialize (VOID)
EFI_STATUS | CheckSignatureListFormat (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize)
EFI_STATUS | ProcessVarWithPk (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, IN BOOLEAN IsPk)
EFI_STATUS | ProcessVarWithKek (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes)
EFI_STATUS | AppendSignatureList (IN OUT VOID *Data, IN UINTN DataSize, IN UINTN FreeBufSize, IN VOID *NewData, IN UINTN NewDataSize, OUT UINTN *MergedBufSize)
BOOLEAN | CompareTimeStamp (IN EFI_TIME *FirstTime, IN EFI_TIME *SecondTime)
EFI_STATUS | VerifyTimeBasedPayload (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN VARIABLE_POINTER_TRACK *Variable, IN UINT32 Attributes, IN AUTHVAR_TYPE AuthVarType, OUT BOOLEAN *VarDel)

Variables

UINT8 | mPubKeyStore [MAX_KEYDB_SIZE]
UINT32 | mPubKeyNumber
VOID * | mHashCtx
VOID * | mStorageArea
UINT8 * | mSerializationRuntimeBuffer

Detailed Description

The internal header file includes the common header files, defines internal structure and functions used by AuthService module.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define AUTHINFO2_SIZE ( VarAuth2 )

Value:

((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \
                                  (UINTN) ((EFI_VARIABLE_AUTHENTICATION_2 *) (VarAuth2))->AuthInfo.Hdr.dwLength)

Referenced by ProcessVarWithKek(), ProcessVarWithPk(), and VariableServiceSetVariable().

#define AUTHINFO_SIZE

Value:

((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION, AuthInfo)) + \
                       (OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)) + \
                       sizeof (EFI_CERT_BLOCK_RSA_2048_SHA256))
Size of AuthInfo prior to the data payload.

#define AUTHVAR_KEYDB_NAME L"AuthVarKeyDatabase"

"AuthVarKeyDatabase" variable for the Public Key store.

#define EFI_CERT_DB_NAME L"certdb"

"certdb" variable stores the signer's certificates for non PK/KEK/DB/DBX variables with EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set.

Referenced by AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), GetCertsFromDb(), and InsertCertsToDb().

#define EFI_CERT_TYPE_RSA2048_SHA256_SIZE 256

#define EFI_CERT_TYPE_RSA2048_SIZE 256

#define MAX_CERTDB_SIZE (FixedPcdGet32 (PcdMaxVariableSize) - sizeof (VARIABLE_HEADER) - sizeof (EFI_CERT_DB_NAME))

Referenced by InsertCertsToDb().

#define MAX_KEY_NUM (MAX_KEYDB_SIZE / EFI_CERT_TYPE_RSA2048_SIZE)

#define MAX_KEYDB_SIZE (FixedPcdGet32 (PcdMaxVariableSize) - sizeof (VARIABLE_HEADER) - sizeof (AUTHVAR_KEYDB_NAME))

Max size of public key database, restricted by max individal EFI varible size, exclude variable header and name size.

#define OFFSET_OF_AUTHINFO2_CERT_DATA

Value:

((OFFSET_OF (EFI_VARIABLE_AUTHENTICATION_2, AuthInfo)) + \
                                       (OFFSET_OF (WIN_CERTIFICATE_UEFI_GUID, CertData)))

Referenced by VariableServiceSetVariable(), and VerifyTimeBasedPayload().

Enumeration Type Documentation

enum AUTHVAR_TYPE

Enumerator:
AuthVarTypePk
AuthVarTypeKek
AuthVarTypePriv
AuthVarTypePayload

Function Documentation

EFI_STATUS AppendSignatureList | ( | IN OUT VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINTN | FreeBufSize,
 |  | IN VOID * | NewData,
 |  | IN UINTN | NewDataSize,
 |  | OUT UINTN * | MergedBufSize
 | ) |  |

Merge two buffers which formatted as EFI_SIGNATURE_LIST. Only the new EFI_SIGNATURE_DATA will be appended to the original EFI_SIGNATURE_LIST, duplicate EFI_SIGNATURE_DATA will be ignored.

Parameters:
[in,out] | Data | Pointer to original EFI_SIGNATURE_LIST.
[in] | DataSize | Size of Data buffer.
[in] | FreeBufSize | Size of free data buffer
[in] | NewData | Pointer to new EFI_SIGNATURE_LIST to be appended.
[in] | NewDataSize | Size of NewData buffer.
[out] | MergedBufSize | Size of the merged buffer
Returns:
EFI_BUFFER_TOO_SMALL if input Data buffer overflowed
Merge two buffers which formatted as EFI_SIGNATURE_LIST. Only the new EFI_SIGNATURE_DATA will be appended to the original EFI_SIGNATURE_LIST, duplicate EFI_SIGNATURE_DATA will be ignored.

Parameters:
[in,out] | Data | Pointer to original EFI_SIGNATURE_LIST.
[in] | DataSize | Size of Data buffer.
[in] | FreeBufSize | Size of free data buffer
[in] | NewData | Pointer to new EFI_SIGNATURE_LIST to be appended.
[in] | NewDataSize | Size of NewData buffer.
[out] | MergedBufSize | Size of the merged buffer
Returns:
EFI_BUFFER_TOO_SMALL if input Data buffer overflowed

References TRUE.

Referenced by UpdateVariable().

EFI_STATUS AutenticatedVariableServiceInitialize ( VOID )

Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resource.
Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | The function successfully executed.
EFI_OUT_OF_RESOURCES | Failed to allocate enough memory resources.
Initializes for authenticated varibale service.

Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resources.

References ESAL_VARIABLE_GLOBAL::AuthenticatedVariableGuid, AUTHVAR_KEYDB_NAME, ESAL_VARIABLE_GLOBAL::CertRsa2048Sha256Guid, VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), EFI_CERT_DB_NAME, EFI_CERT_TYPE_RSA2048_SIZE, EFI_CUSTOM_MODE_NAME, EFI_SECURE_BOOT_ENABLE_NAME, FindVariable(), ESAL_VARIABLE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, gEfiCertDbGuid, gEfiCustomModeEnableGuid, gEfiSecureBootEnableDisableGuid, GetVariableDataPtr(), ESAL_VARIABLE_GLOBAL::HashContext, ESAL_VARIABLE_GLOBAL::ImageSecurityDatabaseGuid, IsValidVariableHeader(), MAX_KEYDB_SIZE, mHashCtx, mPlatformMode, mPubKeyNumber, mPubKeyStore, mSerializationRuntimeBuffer, mSignatureSupport, mStorageArea, mVariableModuleGlobal, Physical, ESAL_VARIABLE_GLOBAL::PubKeyStore, SECURE_BOOT_DISABLE, SECURE_BOOT_ENABLE, SecureBootMode, SIGSUPPORT_NUM, STANDARD_SECURE_BOOT_MODE, UpdateVariable(), VAR_AUTH_KEY_DB, VAR_PLATFORM_KEY, VAR_SETUP_MODE, ESAL_VARIABLE_GLOBAL::VariableGlobal, ESAL_VARIABLE_GLOBAL::VariableName, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by VariableServiceInitialize(), and VariableWriteServiceInitialize().

EFI_STATUS CheckSignatureListFormat | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize
 | ) |  |

Check input data form to make sure it is a valid EFI_SIGNATURE_LIST for PK/KEK variable.

Parameters:
[in] | VariableName | Name of Variable to be check.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Point to the variable data to be checked.
[in] | DataSize | Size of Data.
Returns:
EFI_INVALID_PARAMETER Invalid signature list format.

EFI_SUCCESS Passed signature list format check successfully.

Check input data form to make sure it is a valid EFI_SIGNATURE_LIST for PK/KEK/db/dbx variable.

Parameters:
[in] | VariableName | Name of Variable to be check.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Point to the variable data to be checked.
[in] | DataSize | Size of Data.
Returns:
EFI_INVALID_PARAMETER Invalid signature list format.

EFI_SUCCESS Passed signature list format check successfully.

References EFI_SIGNATURE_ITEM::SigHeaderSize, EFI_SIGNATURE_ITEM::SigType, and TRUE.

Referenced by ProcessVarWithKek(), ProcessVarWithPk(), and VerifyTimeBasedPayload().

BOOLEAN CompareTimeStamp | ( | IN EFI_TIME * | FirstTime,
 |  | IN EFI_TIME * | SecondTime
 | ) |  |

Compare two EFI_TIME data.

Parameters:
FirstTime | A pointer to the first EFI_TIME data.
SecondTime | A pointer to the second EFI_TIME data.
Return values:
TRUE | The FirstTime is not later than the SecondTime.
FALSE | The FirstTime is later than the SecondTime.

Referenced by UpdateVariable(), and VerifyTimeBasedPayload().

VOID CryptLibraryInitialize ( VOID )

Initializes for cryptlib service before use, include register algrithm and allocate scratch.

EFI_STATUS ProcessVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes
 | ) |  |

Process variable with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS/EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
Returns:
EFI_INVALID_PARAMETER Invalid parameter

EFI_WRITE_PROTECTED Variable is write-protected and needs authentication with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set.

EFI_SECURITY_VIOLATION The variable is with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, but the AuthInfo does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable is not write-protected, or passed validation successfully.

Process variable with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS/EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_WRITE_PROTECTED Variable is write-protected and needs authentication with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set.

EFI_OUT_OF_RESOURCES The Database to save the public key is full.

EFI_SECURITY_VIOLATION The variable is with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS set, but the AuthInfo does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable is not write-protected or pass validation successfully.

References AddPubKeyInStore(), AUTHINFO_SIZE, AuthVarTypePriv, EFI_CERT_TYPE_RSA2048_SIZE, mPubKeyStore, NeedPhysicallyPresent(), TRUE, UpdateVariable(), UserPhysicalPresent(), VerifyCounterBasedPayload(), and VerifyTimeBasedPayload().

Referenced by VariableServiceSetVariable().

EFI_STATUS ProcessVarWithKek | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes
 | ) |  |

Process variable with key exchange key for verification.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information that is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SECURITY_VIOLATION The variable does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable passed validation successfully.

Process variable with key exchange key for verification.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SECURITY_VIOLATION The variable does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable pass validation successfully.

References AUTHINFO2_SIZE, AuthVarTypeKek, CheckSignatureListFormat(), InCustomMode(), mPlatformMode, UpdateVariable(), UserPhysicalPresent(), and VerifyTimeBasedPayload().

EFI_STATUS ProcessVarWithPk | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | IN BOOLEAN | IsPk
 | ) |  |

Process variable with platform key for verification.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
[in] | IsPk | Indicate whether it is to process pk.
Returns:
EFI_INVALID_PARAMETER Invalid parameter

EFI_SECURITY_VIOLATION The variable does NOT pass the validation check carried out by the firmware.

EFI_SUCCESS Variable passed validation successfully.

Process variable with platform key for verification.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable
[in] | IsPk | Indicate whether it is to process pk.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SECURITY_VIOLATION The variable does NOT pass the validation. check carried out by the firmware.

EFI_SUCCESS Variable passed validation successfully.

References AUTHINFO2_SIZE, AuthVarTypePayload, AuthVarTypePk, CheckSignatureListFormat(), InCustomMode(), mPlatformMode, TRUE, UpdatePlatformMode(), UpdateVariable(), UserPhysicalPresent(), and VerifyTimeBasedPayload().

EFI_STATUS UpdatePlatformMode ( IN UINT32 Mode )

Update platform mode.

Parameters:
[in] Mode SETUP_MODE or USER_MODE.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Update platform mode successfully.

References AtRuntime(), VARIABLE_POINTER_TRACK::CurrPtr, EFI_SECURE_BOOT_ENABLE_NAME, FindVariable(), gEfiSecureBootEnableDisableGuid, GetVariableDataPtr(), mPlatformMode, mVariableModuleGlobal, SECURE_BOOT_DISABLE, SECURE_BOOT_ENABLE, SecureBootMode, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

EFI_STATUS VerifyTimeBasedPayload | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN VARIABLE_POINTER_TRACK * | Variable,
 |  | IN UINT32 | Attributes,
 |  | IN AUTHVAR_TYPE | AuthVarType,
 |  | OUT BOOLEAN * | VarDel
 | ) |  |

Process variable with EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
[in] | AuthVarType | Verify against PK or KEK database or private database.
[out] | VarDel | Delete the variable or not.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_OUT_OF_RESOURCES | Failed to process variable due to lack of resources.
EFI_SUCCESS | Variable pass validation successfully.
Process variable with EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS set

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Data | Data pointer.
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Variable | The variable information which is used to keep track of variable usage.
[in] | Attributes | Attribute value of the variable.
[in] | AuthVarType | Verify against PK, KEK database, private database or certificate in data payload.
[out] | VarDel | Delete the variable or not.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SECURITY_VIOLATION | The variable does NOT pass the validation check carried out by the firmware.
EFI_OUT_OF_RESOURCES | Failed to process variable due to lack of resources.
EFI_SUCCESS | Variable pass validation successfully.

References AuthVarTypeKek, AuthVarTypePayload, AuthVarTypePk, AuthVarTypePriv, CheckSignatureListFormat(), CompareTimeStamp(), VARIABLE_POINTER_TRACK::CurrPtr, DeleteCertsFromDb(), FindVariable(), GetCertsFromDb(), GetVariableDataPtr(), InsertCertsToDb(), mSerializationRuntimeBuffer, mVariableModuleGlobal, OFFSET_OF_AUTHINFO2_CERT_DATA, TRUE, UpdateVariable(), and ESAL_VARIABLE_GLOBAL::VariableGlobal.

Referenced by ProcessVariable(), ProcessVarWithKek(), and ProcessVarWithPk().

Variable Documentation

VOID* mHashCtx

Referenced by AutenticatedVariableServiceInitialize(), VariableClassAddressChangeEvent(), and VerifyCounterBasedPayload().

UINT32 mPubKeyNumber

Global database array for scratch

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), IsValidPubKeyIndex(), and Reclaim().

UINT8 mPubKeyStore[MAX_KEYDB_SIZE]

Global database array for scratch

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), ProcessVariable(), and Reclaim().

UINT8* mSerializationRuntimeBuffer

Referenced by AutenticatedVariableServiceInitialize(), VariableClassAddressChangeEvent(), and VerifyTimeBasedPayload().

VOID* mStorageArea

Referenced by AutenticatedVariableServiceInitialize(), UpdateVariable(), and VariableClassAddressChangeEvent().

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/Reclaim.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/Reclaim.c File Reference

Functions

EFI_STATUS | GetLbaAndOffsetByAddress (IN EFI_PHYSICAL_ADDRESS Address, OUT EFI_LBA *Lba, OUT UINTN *Offset)
EFI_STATUS | FtwVariableSpace (IN EFI_PHYSICAL_ADDRESS VariableBase, IN UINT8 *Buffer, IN UINTN BufferSize)

Detailed Description

Handles non-volatile variable store garbage collection, using FTW (Fault Tolerant Write) protocol.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS FtwVariableSpace | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | IN UINT8 * | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Writes a buffer to variable storage space, in the working block.

This function writes a buffer to variable storage space into a firmware volume block device. The destination is specified by parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
VariableBase | Base address of variable to write
Buffer | Point to the data buffer.
BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
EFI_ABORTED | The function could not complete successfully.

References GetFtwProtocol(), GetFvbHandleByAddress(), GetFvbInfoByAddress(), and GetLbaAndOffsetByAddress().

EFI_STATUS GetLbaAndOffsetByAddress | ( | IN EFI_PHYSICAL_ADDRESS | Address,
 |  | OUT EFI_LBA * | Lba,
 |  | OUT UINTN * | Offset
 | ) |  |

Gets LBA of block and offset by given address.

This function gets the Logical Block Address (LBA) of a firmware volume block containing the given address, and the offset of the address on the block.

Parameters:
Address | Address which should be contained by returned FVB handle.
Lba | Pointer to LBA for output.
Offset | Pointer to offset for output.
Return values:
EFI_SUCCESS | LBA and offset successfully returned.
EFI_NOT_FOUND | Fail to find FVB handle by address.
EFI_ABORTED | Fail to find valid LBA and offset.

References GetFvbInfoByAddress().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.c File Reference

Functions

VOID | UpdateVariableInfo (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN BOOLEAN Volatile, IN BOOLEAN Read, IN BOOLEAN Write, IN BOOLEAN Delete, IN BOOLEAN Cache)
BOOLEAN | IsValidVariableHeader (IN VARIABLE_HEADER *Variable)
EFI_STATUS | UpdateVariableStore (IN VARIABLE_GLOBAL *Global, IN BOOLEAN Volatile, IN BOOLEAN SetByIndex, IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb, IN UINTN DataPtrIndex, IN UINT32 DataSize, IN UINT8 *Buffer)
VARIABLE_STORE_STATUS | GetVariableStoreStatus (IN VARIABLE_STORE_HEADER *VarStoreHeader)
UINTN | NameSizeOfVariable (IN VARIABLE_HEADER *Variable)
UINTN | DataSizeOfVariable (IN VARIABLE_HEADER *Variable)
CHAR16 * | GetVariableNamePtr (IN VARIABLE_HEADER *Variable)
UINT8 * | GetVariableDataPtr (IN VARIABLE_HEADER *Variable)
VARIABLE_HEADER * | GetNextVariablePtr (IN VARIABLE_HEADER *Variable)
VARIABLE_HEADER * | GetStartPointer (IN VARIABLE_STORE_HEADER *VarStoreHeader)
VARIABLE_HEADER * | GetEndPointer (IN VARIABLE_STORE_HEADER *VarStoreHeader)
BOOLEAN | IsValidPubKeyIndex (IN UINT32 PubKeyIndex)
UINT32 | GetValidPubKeyNumber (IN UINT32 PubKeyNumber)
EFI_STATUS | PubKeyStoreFilter (IN UINT8 *PubKeyStore, IN UINT32 PubKeyNumber, OUT UINT32 **NewPubKeyIndex, OUT UINT8 **NewPubKeyStore, OUT UINT32 *NewPubKeySize)
EFI_STATUS | Reclaim (IN EFI_PHYSICAL_ADDRESS VariableBase, OUT UINTN *LastVariableOffset, IN BOOLEAN IsVolatile, IN OUT VARIABLE_POINTER_TRACK *UpdatingPtrTrack, IN BOOLEAN ReclaimPubKeyStore, IN BOOLEAN ReclaimAnyway)
EFI_STATUS | FindVariableEx (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN BOOLEAN IgnoreRtCheck, IN OUT VARIABLE_POINTER_TRACK *PtrTrack)
EFI_STATUS | FindVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack, IN VARIABLE_GLOBAL *Global, IN BOOLEAN IgnoreRtCheck)
UINTN | GetIndexFromSupportedLangCodes (IN CHAR8 *SupportedLang, IN CHAR8 *Lang, IN BOOLEAN Iso639Language)
CHAR8 * | GetLangFromSupportedLangCodes (IN CHAR8 *SupportedLang, IN UINTN Index, IN BOOLEAN Iso639Language)
CHAR8 *EFIAPI | VariableGetBestLanguage (IN CONST CHAR8 *SupportedLanguages, IN BOOLEAN Iso639Language,...)
VOID | AutoUpdateLangVariable (IN CHAR16 *VariableName, IN VOID *Data, IN UINTN DataSize)
EFI_STATUS | UpdateVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN UINT32 Attributes, IN UINT32 KeyIndex, IN UINT64 MonotonicCount, IN OUT VARIABLE_POINTER_TRACK *CacheVariable, IN EFI_TIME *TimeStamp)
BOOLEAN EFIAPI | IsHexaDecimalDigitCharacter (IN CHAR16 Char)
BOOLEAN EFIAPI | IsHwErrRecVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
BOOLEAN | IsReadOnlyVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS EFIAPI | VariableServiceGetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS EFIAPI | VariableServiceGetNextVariableName (IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
EFI_STATUS EFIAPI | VariableServiceSetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
EFI_STATUS EFIAPI | VariableServiceQueryVariableInfo (IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
VOID | ReclaimForOS (VOID)
VOID | FlushHobVariableToFlash (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS | VariableWriteServiceInitialize (VOID)
EFI_STATUS | VariableCommonInitialize (VOID)
EFI_STATUS | GetFvbInfoByAddress (IN EFI_PHYSICAL_ADDRESS Address, OUT EFI_HANDLE *FvbHandle, OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvbProtocol)

Variables

VARIABLE_MODULE_GLOBAL * mVariableModuleGlobal
VARIABLE_STORE_HEADER * | mNvVariableCache = NULL
VARIABLE_INFO_ENTRY * | gVariableInfo = NULL

Detailed Description

The common variable operation routines shared by DXE_RUNTIME variable module and DXE_SMM variable module.

Caution: This module requires additional review when modified. This driver will have external input - variable data. They may be input in SMM mode. This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow.

VariableServiceGetNextVariableName () and VariableServiceQueryVariableInfo() are external API. They need check input parameter.

VariableServiceGetVariable() and VariableServiceSetVariable() are external API to receive datasize and data buffer. The size should be checked carefully.

VariableServiceSetVariable() should also check authenticate data to avoid buffer overflow, integer overflow. It should also check attribute to avoid authentication bypass.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AutoUpdateLangVariable | ( | IN CHAR16 * | VariableName,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize
 | ) |  |

Hook the operations in PlatformLangCodes, LangCodes, PlatformLang and Lang.

When setting Lang/LangCodes, simultaneously update PlatformLang/PlatformLangCodes.

According to UEFI spec, PlatformLangCodes/LangCodes are only set once in firmware initialization, and are read-only. Therefore, in variable driver, only store the original value for other use.

Parameters:
[in] | VariableName | Name of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.

References AtRuntime(), VARIABLE_POINTER_TRACK::CurrPtr, FindVariable(), GetIndexFromSupportedLangCodes(), GetLangFromSupportedLangCodes(), GetVariableDataPtr(), ISO_639_2_ENTRY_SIZE, VARIABLE_MODULE_GLOBAL::LangCodes, VARIABLE_MODULE_GLOBAL::PlatformLang, VARIABLE_MODULE_GLOBAL::PlatformLangCodes, TRUE, UpdateVariable(), VariableGetBestLanguage(), and VARIABLE_MODULE_GLOBAL::VariableGlobal.

UINTN DataSizeOfVariable ( IN VARIABLE_HEADER * Variable )

This code gets the size of variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes.

EFI_STATUS FindVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN BOOLEAN | IgnoreRtCheck
 | ) |  |

Finds variable in storage blocks of volatile and non-volatile storage areas.

This code finds variable in storage blocks of volatile and non-volatile storage areas. If VariableName is an empty string, then we just return the first qualified variable without comparing VariableName and VendorGuid. If IgnoreRtCheck is TRUE, then we ignore the EFI_VARIABLE_RUNTIME_ACCESS attribute check at runtime when searching existing variable, only VariableName and VendorGuid are compared. Otherwise, variables without EFI_VARIABLE_RUNTIME_ACCESS are not visible at runtime.

Parameters:
[in] | VariableName | Name of the variable to be found.
[in] | VendorGuid | Vendor GUID to be found.
[out] | PtrTrack | VARIABLE_POINTER_TRACK structure for output, including the range searched and the target position.
[in] | Global | Pointer to VARIABLE_GLOBAL structure, including base of volatile variable storage area, base of NV variable storage area, and a lock.
[in] | IgnoreRtCheck | Ignore EFI_VARIABLE_RUNTIME_ACCESS attribute check at runtime when searching variable.
Return values:
EFI_INVALID_PARAMETER | If VariableName is not an empty string, while VendorGuid is NULL.
EFI_SUCCESS | Variable successfully found.
EFI_NOT_FOUND | Variable not found

References FindVariableEx(), GetEndPointer(), GetStartPointer(), VariableStoreTypeHob, VariableStoreTypeMax, VariableStoreTypeNv, and VariableStoreTypeVolatile.

EFI_STATUS FindVariableEx | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN BOOLEAN | IgnoreRtCheck,
 |  | IN OUT VARIABLE_POINTER_TRACK * | PtrTrack
 | ) |  |

Find the variable in the specified variable store.

Parameters:
[in] | VariableName | Name of the variable to be found
[in] | VendorGuid | Vendor GUID to be found.
[in] | IgnoreRtCheck | Ignore EFI_VARIABLE_RUNTIME_ACCESS attribute check at runtime when searching variable.
[in,out] | PtrTrack | Variable Track Pointer structure that contains Variable Information.
Return values:
EFI_SUCCESS | Variable found successfully
EFI_NOT_FOUND | Variable not found

References AtRuntime(), GetNextVariablePtr(), GetVariableNamePtr(), IsValidVariableHeader(), NameSizeOfVariable(), VAR_ADDED, and VAR_IN_DELETED_TRANSITION.

VOID FlushHobVariableToFlash | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Flush the HOB variable to flash.

Parameters:
[in] | VariableName | Name of variable has been updated or deleted.
[in] | VendorGuid | Guid of variable has been updated or deleted.

References AtRuntime(), VARIABLE_HEADER::Attributes, VARIABLE_HEADER::DataSize, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableDataPtr(), GetVariableNamePtr(), VARIABLE_GLOBAL::HobVariableBase, IsValidVariableHeader(), VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_DELETED, VARIABLE_MODULE_GLOBAL::VariableGlobal, VariableServiceSetVariable(), and VARIABLE_HEADER::VendorGuid.

Referenced by UpdateVariable(), and VariableWriteServiceInitialize().

VARIABLE_HEADER* GetEndPointer ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

Gets the pointer to the end of the variable storage area.

This function gets pointer to the end of the variable storage area, according to the input variable store header.

Parameters:
VarStoreHeader Pointer to the Variable Store Header.
Returns:
Pointer to the end of the variable storage area.

References HEADER_ALIGN.

EFI_STATUS GetFvbInfoByAddress | ( | IN EFI_PHYSICAL_ADDRESS | Address,
 |  | OUT EFI_HANDLE * | FvbHandle,
 |  | OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL ** | FvbProtocol
 | ) |  |

Get the proper fvb handle and/or fvb protocol by the given Flash address.

Parameters:
[in] | Address | The Flash address.
[out] | FvbHandle | In output, if it is not NULL, it points to the proper FVB handle.
[out] | FvbProtocol | In output, if it is not NULL, it points to the proper FVB protocol.

References GetFvbByHandle(), and GetFvbCountAndBuffer().

Referenced by FtwNotificationEvent(), FtwVariableSpace(), GetLbaAndOffsetByAddress(), and SmmFtwNotificationEvent().

UINTN GetIndexFromSupportedLangCodes | ( | IN CHAR8 * | SupportedLang,
 |  | IN CHAR8 * | Lang,
 |  | IN BOOLEAN | Iso639Language
 | ) |  |

Get index from supported language codes according to language string.

This code is used to get corresponding index in supported language codes. It can handle RFC4646 and ISO639 language tags. In ISO639 language tags, take 3-characters as a delimitation to find matched string and calculate the index. In RFC4646 language tags, take semicolon as a delimitation to find matched string and calculate the index.

For example: SupportedLang = "engfraengfra" Lang = "eng" Iso639Language = TRUE The return value is "0". Another example: SupportedLang = "en;fr;en-US;fr-FR" Lang = "fr-FR" Iso639Language = FALSE The return value is "3".

Parameters:
SupportedLang | Platform supported language codes.
Lang | Configured language.
Iso639Language | A bool value to signify if the handler is operated on ISO639 or RFC4646.
Return values:
The index of language in the language codes.

References ISO_639_2_ENTRY_SIZE.

CHAR8* GetLangFromSupportedLangCodes | ( | IN CHAR8 * | SupportedLang,
 |  | IN UINTN | Index,
 |  | IN BOOLEAN | Iso639Language
 | ) |  |

Get language string from supported language codes according to index.

This code is used to get corresponding language strings in supported language codes. It can handle RFC4646 and ISO639 language tags. In ISO639 language tags, take 3-characters as a delimitation. Find language string according to the index. In RFC4646 language tags, take semicolon as a delimitation. Find language string according to the index.

For example: SupportedLang = "engfraengfra" Index = "1" Iso639Language = TRUE The return value is "fra". Another example: SupportedLang = "en;fr;en-US;fr-FR" Index = "1" Iso639Language = FALSE The return value is "fr".

Parameters:
SupportedLang | Platform supported language codes.
Index | The index in supported language codes.
Iso639Language | A bool value to signify if the handler is operated on ISO639 or RFC4646.
Return values:
The language string in the language codes.

References ISO_639_2_ENTRY_SIZE, VARIABLE_MODULE_GLOBAL::Lang, VARIABLE_MODULE_GLOBAL::PlatformLang, and TRUE.

VARIABLE_HEADER* GetNextVariablePtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the next variable header.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Pointer to next variable header.

References DataSizeOfVariable(), GET_PAD_SIZE, GetVariableDataPtr(), HEADER_ALIGN, and IsValidVariableHeader().

VARIABLE_HEADER* GetStartPointer ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

Gets the pointer to the first variable header in given variable store area.

Parameters:
VarStoreHeader Pointer to the Variable Store Header.
Returns:
Pointer to the first variable header.

References HEADER_ALIGN.

UINT32 GetValidPubKeyNumber ( IN UINT32 PubKeyNumber )

Get the number of valid public key in PubKeyStore.

Parameters:
[in] PubKeyNumber Number of the public key in public key store.
Returns:
Number of valid public key in PubKeyStore.

References IsValidPubKeyIndex().

Referenced by PubKeyStoreFilter().

UINT8* GetVariableDataPtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Pointer to Variable Data.

References GET_PAD_SIZE, GetVariableNamePtr(), and NameSizeOfVariable().

CHAR16* GetVariableNamePtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the variable name.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Pointer to Variable Name which is Unicode encoding.

VARIABLE_STORE_STATUS GetVariableStoreStatus ( IN VARIABLE_STORE_HEADER * VarStoreHeader )

This code gets the current status of Variable Store.

Parameters:
VarStoreHeader Pointer to the Variable Store Header.
Return values:
EfiRaw | Variable store status is raw.
EfiValid | Variable store status is valid.
EfiInvalid | Variable store status is invalid.

References EfiInvalid, EfiRaw, EfiValid, gEfiAuthenticatedVariableGuid, VARIABLE_STORE_FORMATTED, and VARIABLE_STORE_HEALTHY.

BOOLEAN EFIAPI IsHexaDecimalDigitCharacter ( IN CHAR16 Char )

Check if a Unicode character is a hexadecimal character.

This function checks if a Unicode character is a hexadecimal character. The valid hexadecimal character is L'0' to L'9', L'a' to L'f', or L'A' to L'F'.

Parameters:
Char The character to check against.
Return values:
TRUE | If the Char is a hexadecmial character.
FALSE | If the Char is not a hexadecmial character.

Referenced by IsHwErrRecVariable().

BOOLEAN EFIAPI IsHwErrRecVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

This code checks if variable is hardware error record variable or not.

According to UEFI spec, hardware error record variable should use the EFI_HARDWARE_ERROR_VARIABLE VendorGuid and have the L"HwErrRec####" name convention, #### is a printed hex value and no 0x or h is included in the hex value.

Parameters:
VariableName | Pointer to variable name.
VendorGuid | Variable Vendor Guid.
Return values:
TRUE | Variable is hardware error record variable.
FALSE | Variable is not hardware error record variable.

References IsHexaDecimalDigitCharacter(), and TRUE.

Referenced by VariableServiceSetVariable().

BOOLEAN IsReadOnlyVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

This code checks if variable should be treated as read-only variable.

Parameters:
[in] | VariableName | Name of the Variable.
[in] | VendorGuid | GUID of the Variable.
Return values:
TRUE | This variable is read-only variable.
FALSE | This variable is NOT read-only variable.

References TRUE.

Referenced by VariableServiceSetVariable().

BOOLEAN IsValidPubKeyIndex ( IN UINT32 PubKeyIndex )

Check the PubKeyIndex is a valid key or not.

This function will iterate the NV storage to see if this PubKeyIndex is still referenced by any valid count-based auth variabe.

Parameters:
[in] PubKeyIndex Index of the public key in public key store.
Return values:
TRUE | The PubKeyIndex is still in use.
FALSE | The PubKeyIndex is not referenced by any count-based auth variabe.

References GetNextVariablePtr(), GetStartPointer(), IsValidVariableHeader(), mPubKeyNumber, VARIABLE_HEADER::PubKeyIndex, VARIABLE_HEADER::State, TRUE, VAR_ADDED, and VAR_IN_DELETED_TRANSITION.

Referenced by GetValidPubKeyNumber(), and PubKeyStoreFilter().

BOOLEAN IsValidVariableHeader ( IN VARIABLE_HEADER * Variable )

This code checks if variable header is valid or not.

Parameters:
Variable Pointer to the Variable Header.
Return values:
TRUE | Variable header is valid.
FALSE | Variable header is not valid.

References TRUE, and VARIABLE_DATA.

UINTN NameSizeOfVariable ( IN VARIABLE_HEADER * Variable )

This code gets the size of name of variable.

Parameters:
Variable Pointer to the Variable Header.
Returns:
UINTN Size of variable in bytes.

EFI_STATUS PubKeyStoreFilter | ( | IN UINT8 * | PubKeyStore,
 |  | IN UINT32 | PubKeyNumber,
 |  | OUT UINT32 ** | NewPubKeyIndex,
 |  | OUT UINT8 ** | NewPubKeyStore,
 |  | OUT UINT32 * | NewPubKeySize
 | ) |  |

Filter the useless key in public key store.

This function will find out all valid public keys in public key database, save them in new allocated buffer NewPubKeyStore, and give the new PubKeyIndex. The caller is responsible for freeing buffer NewPubKeyIndex and NewPubKeyStore with FreePool().

Parameters:
[in] | PubKeyStore | Point to the public key database.
[in] | PubKeyNumber | Number of the public key in PubKeyStore.
[out] | NewPubKeyIndex | Point to an array of new PubKeyIndex corresponds to NewPubKeyStore.
[out] | NewPubKeyStore | Saved all valid public keys in PubKeyStore.
[out] | NewPubKeySize | Buffer size of the NewPubKeyStore.
Return values:
EFI_SUCCESS | Trim operation is complete successfully.
EFI_OUT_OF_RESOURCES | No enough memory resources, or no useless key in PubKeyStore.

References EFI_CERT_TYPE_RSA2048_SIZE, GetValidPubKeyNumber(), and IsValidPubKeyIndex().

Referenced by Reclaim().

EFI_STATUS Reclaim | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | OUT UINTN * | LastVariableOffset,
 |  | IN BOOLEAN | IsVolatile,
 |  | IN OUT VARIABLE_POINTER_TRACK * | UpdatingPtrTrack,
 |  | IN BOOLEAN | ReclaimPubKeyStore,
 |  | IN BOOLEAN | ReclaimAnyway
 | ) |  |

Variable store garbage collection and reclaim operation.

If ReclaimPubKeyStore is FALSE, reclaim variable space by deleting the obsoleted varaibles. If ReclaimPubKeyStore is TRUE, reclaim invalid key in public key database and update the PubKeyIndex for all the count-based authenticate variable in NV storage.

Parameters:
[in] | VariableBase | Base address of variable store.
[out] | LastVariableOffset | Offset of last variable.
[in] | IsVolatile | The variable store is volatile or not; if it is non-volatile, need FTW.
[in,out] | UpdatingPtrTrack | Pointer to updating variable pointer track structure.
[in] | ReclaimPubKeyStore | Reclaim for public key database or not.
[in] | ReclaimAnyway | If TRUE, do reclaim anyway.
Returns:
EFI_SUCCESS Reclaim operation has finished successfully.

EFI_OUT_OF_RESOURCES No enough memory resources.

EFI_DEVICE_ERROR The public key database doesn't exist.

Others Unexpect error happened during reclaim operation.

References VARIABLE_HEADER::Attributes, AUTHVAR_KEYDB_NAME, VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, VARIABLE_HEADER::DataSize, FtwVariableSpace(), gEfiAuthenticatedVariableGuid, GetNextVariablePtr(), GetStartPointer(), GetVariableDataPtr(), GetVariableNamePtr(), HEADER_ALIGN, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, IsValidVariableHeader(), mPubKeyNumber, mPubKeyStore, VARIABLE_HEADER::NameSize, NameSizeOfVariable(), PubKeyStoreFilter(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, and VARIABLE_HEADER::VendorGuid.

VOID ReclaimForOS ( VOID )

This function reclaims variable storage if free size is below the threshold.

Caution: This function may be invoked at SMM mode. Care must be taken to make sure not security issue.

References VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Reclaim(), and VARIABLE_MODULE_GLOBAL::VariableGlobal.

EFI_STATUS UpdateVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINT32 | Attributes,
 |  | IN UINT32 | KeyIndex,
 |  | IN UINT64 | MonotonicCount,
 |  | IN OUT VARIABLE_POINTER_TRACK * | CacheVariable,
 |  | IN EFI_TIME * | TimeStamp
 | ) |  |

Update the variable region with Variable information. If EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS is set, index of associated public key is needed.

Parameters:
[in] | VariableName | Name of variable.
[in] | VendorGuid | Guid of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.
[in] | Attributes | Attributes of the variable.
[in] | KeyIndex | Index of associated public key.
[in] | MonotonicCount | Value of associated monotonic count.
[in,out] | CacheVariable | The variable information which is used to keep track of variable usage.
[in] | TimeStamp | Value of associated TimeStamp.
Return values:
EFI_SUCCESS | The update operation is success.
EFI_OUT_OF_RESOURCES | Variable region is full, can not write other data into this region.

References AppendSignatureList(), AtRuntime(), VARIABLE_HEADER::Attributes, VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, CompareTimeStamp(), VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_HEADER::DataSize, DataSizeOfVariable(), VARIABLE_POINTER_TRACK::EndPtr, FlushHobVariableToFlash(), VARIABLE_MODULE_GLOBAL::FvbInstance, GET_PAD_SIZE, GetEndPointer(), GetStartPointer(), GetVariableDataPtr(), HEADER_ALIGN, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, VARIABLE_POINTER_TRACK::InDeletedTransitionPtr, VARIABLE_HEADER::MonotonicCount, mStorageArea, VARIABLE_HEADER::NameSize, VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_HEADER::PubKeyIndex, Reclaim(), VARIABLE_HEADER::Reserved, VARIABLE_HEADER::StartId, VARIABLE_POINTER_TRACK::StartPtr, VARIABLE_HEADER::State, VARIABLE_HEADER::TimeStamp, TRUE, UpdateVariableInfo(), UpdateVariableStore(), VAR_ADDED, VAR_DELETED, VAR_HEADER_VALID_ONLY, VAR_IN_DELETED_TRANSITION, VARIABLE_DATA, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_HEADER::VendorGuid, VARIABLE_POINTER_TRACK::Volatile, VARIABLE_MODULE_GLOBAL::VolatileLastVariableOffset, and VARIABLE_GLOBAL::VolatileVariableBase.

VOID UpdateVariableInfo | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN BOOLEAN | Volatile,
 |  | IN BOOLEAN | Read,
 |  | IN BOOLEAN | Write,
 |  | IN BOOLEAN | Delete,
 |  | IN BOOLEAN | Cache
 | ) |  |

Routine used to track statistical information about variable usage. The data is stored in the EFI system table so it can be accessed later. VariableInfo.efi can dump out the table. Only Boot Services variable accesses are tracked by this code. The PcdVariableCollectStatistics build flag controls if this feature is enabled.

A read that hits in the cache will have Read and Cache true for the transaction. Data is allocated by this routine, but never freed.

Parameters:
[in] | VariableName | Name of the Variable to track.
[in] | VendorGuid | Guid of the Variable to track.
[in] | Volatile | TRUE if volatile FALSE if non-volatile.
[in] | Read | TRUE if GetVariable() was called.
[in] | Write | TRUE if SetVariable() was called.
[in] | Delete | TRUE if deleted via SetVariable().
[in] | Cache | TRUE for a cache hit.

References AtRuntime(), _VARIABLE_INFO_ENTRY::CacheCount, _VARIABLE_INFO_ENTRY::DeleteCount, _VARIABLE_INFO_ENTRY::Name, _VARIABLE_INFO_ENTRY::Next, _VARIABLE_INFO_ENTRY::ReadCount, _VARIABLE_INFO_ENTRY::VendorGuid, _VARIABLE_INFO_ENTRY::Volatile, and _VARIABLE_INFO_ENTRY::WriteCount.

EFI_STATUS UpdateVariableStore | ( | IN VARIABLE_GLOBAL * | Global,
 |  | IN BOOLEAN | Volatile,
 |  | IN BOOLEAN | SetByIndex,
 |  | IN EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL * | Fvb,
 |  | IN UINTN | DataPtrIndex,
 |  | IN UINT32 | DataSize,
 |  | IN UINT8 * | Buffer
 | ) |  |

This function writes data to the FWH at the correct LBA even if the LBAs are fragmented.

Parameters:
Global | Pointer to VARAIBLE_GLOBAL structure.
Volatile | Point out the Variable is Volatile or Non-Volatile.
SetByIndex | TRUE if target pointer is given as index. FALSE if target pointer is absolute.
Fvb | Pointer to the writable FVB protocol.
DataPtrIndex | Pointer to the Data from the end of VARIABLE_STORE_HEADER structure.
DataSize | Size of data to be written.
Buffer | Pointer to the buffer from which data is written.
Return values:
EFI_INVALID_PARAMETER | Parameters not valid.
EFI_SUCCESS | Variable store successfully updated.

References VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_STORE_HEADER::Size, VARIABLE_MODULE_GLOBAL::VariableGlobal, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by UpdateVariable().

EFI_STATUS VariableCommonInitialize ( VOID )

Initializes variable store area for non-volatile and volatile variable.

Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resource.

References VARIABLE_HEADER::Attributes, VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, VARIABLE_HEADER::DataSize, EfiValid, VARIABLE_STORE_HEADER::Format, VARIABLE_MODULE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, GetNextVariablePtr(), GetStartPointer(), GetVariableStoreStatus(), HEADER_ALIGN, VARIABLE_GLOBAL::HobVariableBase, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, InitializeLock(), IsValidVariableHeader(), VARIABLE_HEADER::NameSize, VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_STORE_HEADER::Reserved, VARIABLE_STORE_HEADER::Reserved1, VARIABLE_STORE_HEADER::Signature, VARIABLE_STORE_HEADER::Size, VARIABLE_STORE_HEADER::State, VARIABLE_STORE_FORMATTED, VARIABLE_STORE_HEALTHY, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, VARIABLE_MODULE_GLOBAL::VolatileLastVariableOffset, and VARIABLE_GLOBAL::VolatileVariableBase.

CHAR8* EFIAPI VariableGetBestLanguage | ( | IN CONST CHAR8 * | SupportedLanguages,
 |  | IN BOOLEAN | Iso639Language,
 |  |  | ...
 | ) |  |

Returns a pointer to an allocated buffer that contains the best matching language from a set of supported languages.

This function supports both ISO 639-2 and RFC 4646 language codes, but language code types may not be mixed in a single call to this function. This function supports a variable argument list that allows the caller to pass in a prioritized list of language codes to test against all the language codes in SupportedLanguages.

If SupportedLanguages is NULL, then ASSERT().

Parameters:
[in] | SupportedLanguages | A pointer to a Null-terminated ASCII string that contains a set of language codes in the format specified by Iso639Language.
[in] | Iso639Language | If TRUE, then all language codes are assumed to be in ISO 639-2 format. If FALSE, then all language codes are assumed to be in RFC 4646 language format
[in] ... A variable argument list that contains pointers to Null-terminated ASCII strings that contain one or more language codes in the format specified by Iso639Language. The first language code from each of these language code lists is used to determine if it is an exact or close match to any of the language codes in SupportedLanguages. Close matches only apply to RFC 4646 language codes, and the matching algorithm from RFC 4647 is used to determine if a close match is present. If an exact or close match is found, then the matching language code from SupportedLanguages is returned. If no matches are found, then the next variable argument parameter is evaluated. The variable argument list is terminated by a NULL.
Return values:
NULL | The best matching language could not be found in SupportedLanguages.
NULL | There are not enough resources available to return the best matching language.
Other | A pointer to a Null-terminated ASCII string that is the best matching language in SupportedLanguages.

References VARIABLE_MODULE_GLOBAL::Lang, and VARIABLE_MODULE_GLOBAL::PlatformLang.

EFI_STATUS EFIAPI VariableServiceGetNextVariableName | ( | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VendorGuid
 | ) |  |

This code Finds the Next available variable.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode. This function will do basic validation, before parse the data.

Parameters:
VariableNameSize | Size of the variable name.
VariableName | Pointer to variable name.
VendorGuid | Variable Vendor Guid.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Find the specified variable.

EFI_NOT_FOUND Not found.

EFI_BUFFER_TO_SMALL DataSize is too small for the result.

References AcquireLockOnlyAtBootTime(), AtRuntime(), VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_POINTER_TRACK::EndPtr, FindVariable(), FindVariableEx(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), VARIABLE_GLOBAL::HobVariableBase, IsValidVariableHeader(), NameSizeOfVariable(), ReleaseLockOnlyAtBootTime(), VARIABLE_POINTER_TRACK::StartPtr, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, VariableStoreTypeHob, VariableStoreTypeMax, VariableStoreTypeNv, VariableStoreTypeVolatile, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceGetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data
 | ) |  |

This code finds variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize is external input. This function will do basic validation, before parse the data.

Parameters:
VariableName | Name of Variable to be found.
VendorGuid | Variable vendor GUID.
Attributes | Attribute value of the variable found.
DataSize | Size of Data found. If size is less than the data, this value contains the required size.
Data | Data pointer.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Find the specified variable.

EFI_NOT_FOUND Not found.

EFI_BUFFER_TO_SMALL DataSize is too small for the result.

References AcquireLockOnlyAtBootTime(), VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), FindVariable(), GetVariableDataPtr(), ReleaseLockOnlyAtBootTime(), TRUE, UpdateVariableInfo(), VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceQueryVariableInfo | ( | IN UINT32 | Attributes,
 |  | OUT UINT64 * | MaximumVariableStorageSize,
 |  | OUT UINT64 * | RemainingVariableStorageSize,
 |  | OUT UINT64 * | MaximumVariableSize
 | ) |  |

This code returns information about the EFI variables.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode. This function will do basic validation, before parse the data.

Parameters:
Attributes | Attributes bitmask to specify the type of variables on which to return information.
MaximumVariableStorageSize | Pointer to the maximum size of the storage space available for the EFI variables associated with the attributes specified.
RemainingVariableStorageSize | Pointer to the remaining size of the storage space available for EFI variables associated with the attributes specified.
MaximumVariableSize | Pointer to the maximum size of an individual EFI variables associated with the attributes specified.
Returns:
EFI_INVALID_PARAMETER An invalid combination of attribute bits was supplied.

EFI_SUCCESS Query successfully.

EFI_UNSUPPORTED The attribute is not supported on this platform.

References AcquireLockOnlyAtBootTime(), AtRuntime(), VARIABLE_HEADER::Attributes, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), IsValidVariableHeader(), ReleaseLockOnlyAtBootTime(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, VAR_ADDED, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceSetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT32 | Attributes,
 |  | IN UINTN | DataSize,
 |  | IN VOID * | Data
 | ) |  |

This code sets variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
VariableName | Name of Variable to be found.
VendorGuid | Variable vendor GUID.
Attributes | Attribute value of the variable found
DataSize | Size of Data found. If size is less than the data, this value contains the required size.
Data | Data pointer.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Set successfully.

EFI_OUT_OF_RESOURCES Resource not enough to set variable.

EFI_NOT_FOUND Not found.

EFI_WRITE_PROTECTED Variable is read-only.

References AcquireLockOnlyAtBootTime(), AtRuntime(), AUTHINFO2_SIZE, AUTHINFO_SIZE, AutoUpdateLangVariable(), VARIABLE_POINTER_TRACK::CurrPtr, EFI_VARIABLE_ATTRIBUTES_MASK, FindVariable(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), IsHwErrRecVariable(), IsReadOnlyVariable(), IsValidVariableHeader(), VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, OFFSET_OF_AUTHINFO2_CERT_DATA, ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), VARIABLE_GLOBAL::ReentrantState, ReleaseLockOnlyAtBootTime(), TRUE, VARIABLE_MODULE_GLOBAL::VariableGlobal, and VARIABLE_GLOBAL::VariableServicesLock.

Referenced by FlushHobVariableToFlash(), SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS VariableWriteServiceInitialize ( VOID )

Initializes variable write service after FVB was ready.

Return values:
EFI_SUCCESS | Function successfully executed.
Others | Fail to initialize the variable service.

References AutenticatedVariableServiceInitialize(), FlushHobVariableToFlash(), VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Reclaim(), TRUE, and VARIABLE_MODULE_GLOBAL::VariableGlobal.

Referenced by FtwNotificationEvent(), and SmmFtwNotificationEvent().

Variable Documentation

VARIABLE_INFO_ENTRY* gVariableInfo = NULL

The memory entry used for variable statistics data.

VARIABLE_STORE_HEADER* mNvVariableCache = NULL

Define a memory cache that improves the search performance for a variable.

VARIABLE_MODULE_GLOBAL* mVariableModuleGlobal


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/Variable.h File Reference

Data Structures

struct | VARIABLE_POINTER_TRACK
struct | VARIABLE_GLOBAL
struct | VARIABLE_MODULE_GLOBAL
struct | VARIABLE_CACHE_ENTRY

Defines

#define | VARIABLE_RECLAIM_THRESHOLD (1024)
#define | EFI_VARIABLE_ATTRIBUTES_MASK
#define | ISO_639_2_ENTRY_SIZE 3

Enumerations

enum VARIABLE_STORE_TYPE {
VariableStoreTypeHob, VariableStoreTypeNv, VariableStoreTypeMax, VariableStoreTypeVolatile,
VariableStoreTypeHob, VariableStoreTypeNv, VariableStoreTypeMax
}

Functions

VOID | FlushHobVariableToFlash (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS | FtwVariableSpace (IN EFI_PHYSICAL_ADDRESS VariableBase, IN UINT8 *Buffer, IN UINTN BufferSize)
EFI_STATUS | FindVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT VARIABLE_POINTER_TRACK *PtrTrack, IN VARIABLE_GLOBAL *Global, IN BOOLEAN IgnoreRtCheck)
UINT8 * | GetVariableDataPtr (IN VARIABLE_HEADER *Variable)
UINTN | DataSizeOfVariable (IN VARIABLE_HEADER *Variable)
EFI_STATUS | UpdateVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN VOID *Data, IN UINTN DataSize, IN UINT32 Attributes, IN UINT32 KeyIndex, IN UINT64 MonotonicCount, IN OUT VARIABLE_POINTER_TRACK *Variable, IN EFI_TIME *TimeStamp)
BOOLEAN | AtRuntime (VOID)
EFI_LOCK * | InitializeLock (IN OUT EFI_LOCK *Lock, IN EFI_TPL Priority)
VOID | AcquireLockOnlyAtBootTime (IN EFI_LOCK *Lock)
VOID | ReleaseLockOnlyAtBootTime (IN EFI_LOCK *Lock)
EFI_STATUS | GetFvbByHandle (IN EFI_HANDLE FvBlockHandle, OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock)
EFI_STATUS | GetSarProtocol (OUT VOID **SarProtocol)
EFI_STATUS | GetFvbCountAndBuffer (OUT UINTN *NumberHandles, OUT EFI_HANDLE **Buffer)
EFI_STATUS | VariableCommonInitialize (VOID)
EFI_STATUS | Reclaim (IN EFI_PHYSICAL_ADDRESS VariableBase, OUT UINTN *LastVariableOffset, IN BOOLEAN IsVolatile, IN OUT VARIABLE_POINTER_TRACK *UpdatingPtrTrack, IN BOOLEAN ReclaimPubKeyStore, IN BOOLEAN ReclaimAnyway)
VOID | ReclaimForOS (VOID)
EFI_STATUS | VariableWriteServiceInitialize (VOID)
EFI_STATUS | GetFtwProtocol (OUT VOID **FtwProtocol)
EFI_STATUS | GetFvbInfoByAddress (IN EFI_PHYSICAL_ADDRESS Address, OUT EFI_HANDLE *FvbHandle, OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvbProtocol)
EFI_STATUS EFIAPI | VariableServiceGetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS EFIAPI | VariableServiceGetNextVariableName (IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
EFI_STATUS EFIAPI | VariableServiceSetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
EFI_STATUS EFIAPI | VariableServiceQueryVariableInfo (IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)

Variables

VARIABLE_MODULE_GLOBAL * mVariableModuleGlobal

Detailed Description

The internal header file includes the common header files, defines internal structure and functions used by Variable modules.

Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define EFI_VARIABLE_ATTRIBUTES_MASK

Value:

(EFI_VARIABLE_NON_VOLATILE | \
                                      EFI_VARIABLE_BOOTSERVICE_ACCESS | \
                                      EFI_VARIABLE_RUNTIME_ACCESS | \
                                      EFI_VARIABLE_HARDWARE_ERROR_RECORD | \
                                      EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \
                                      EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \
                                      EFI_VARIABLE_APPEND_WRITE)

Referenced by VariableServiceSetVariable().

#define ISO_639_2_ENTRY_SIZE 3

The size of a 3 character ISO639 language code.

#define VARIABLE_RECLAIM_THRESHOLD (1024)

Enumeration Type Documentation

enum VARIABLE_STORE_TYPE

Enumerator:
VariableStoreTypeHob
VariableStoreTypeNv
VariableStoreTypeMax
VariableStoreTypeVolatile
VariableStoreTypeHob
VariableStoreTypeNv
VariableStoreTypeMax

Function Documentation

VOID AcquireLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Acquires lock only at boot time. Simply returns at runtime.

This is a temperary function that will be removed when EfiAcquireLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiAcquireLock() at boot time, and simply returns at runtime.

Parameters:
Lock A pointer to the lock to acquire.
Acquires lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiAcquireLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiAcquireLock() at boot time, and simply returns at runtime.

Parameters:
[in] Lock A pointer to the lock to acquire.

References AtRuntime().

Referenced by EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), RuntimeServiceSetVariable(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

BOOLEAN AtRuntime ( VOID )

Return TRUE if ExitBootServices () has been called.

Return values:
TRUE If ExitBootServices () has been called.

References mAtRuntime.

Referenced by AcquireLockOnlyAtBootTime(), AddPubKeyInStore(), AutoUpdateLangVariable(), FindVariableEx(), FlushHobVariableToFlash(), ReleaseLockOnlyAtBootTime(), SmmVariableHandler(), UpdatePlatformMode(), UpdateVariable(), UpdateVariableInfo(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

UINTN DataSizeOfVariable ( IN VARIABLE_HEADER * Variable )

This code gets the size of variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes.
Gets the size of variable data area.

This function gets the size of variable data area. The variable is specified by its variable header. If variable header contains raw data, just return 0.

Parameters:
[in] Variable Pointer to the variable header.
Returns:
Size of variable data area in bytes.
This code gets the size of data of variable.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Size of variable in bytes in type UINTN.

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), EsalGetVariable(), GetCertsFromDb(), GetNextVariablePtr(), InsertCertsToDb(), PeiGetVariable(), UpdateVariable(), and VariableServiceGetVariable().

EFI_STATUS FindVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT VARIABLE_POINTER_TRACK * | PtrTrack,
 |  | IN VARIABLE_GLOBAL * | Global,
 |  | IN BOOLEAN | IgnoreRtCheck
 | ) |  |

Finds variable in storage blocks of volatile and non-volatile storage areas.

This code finds variable in storage blocks of volatile and non-volatile storage areas. If VariableName is an empty string, then we just return the first qualified variable without comparing VariableName and VendorGuid. If IgnoreRtCheck is TRUE, then we ignore the EFI_VARIABLE_RUNTIME_ACCESS attribute check at runtime when searching existing variable, only VariableName and VendorGuid are compared. Otherwise, variables without EFI_VARIABLE_RUNTIME_ACCESS are not visible at runtime.

Parameters:
[in] | VariableName | Name of the variable to be found.
[in] | VendorGuid | Vendor GUID to be found.
[out] | PtrTrack | VARIABLE_POINTER_TRACK structure for output, including the range searched and the target position.
[in] | Global | Pointer to VARIABLE_GLOBAL structure, including base of volatile variable storage area, base of NV variable storage area, and a lock.
[in] | IgnoreRtCheck | Ignore EFI_VARIABLE_RUNTIME_ACCESS attribute check at runtime when searching variable.
Return values:
EFI_INVALID_PARAMETER | If VariableName is not an empty string, while VendorGuid is NULL.
EFI_SUCCESS | Variable successfully found.
EFI_NOT_FOUND | Variable not found

References FindVariableEx(), GetEndPointer(), GetStartPointer(), VariableStoreTypeHob, VariableStoreTypeMax, VariableStoreTypeNv, and VariableStoreTypeVolatile.

VOID FlushHobVariableToFlash | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Flush the HOB variable to flash.

Parameters:
[in] | VariableName | Name of variable has been updated or deleted.
[in] | VendorGuid | Guid of variable has been updated or deleted.

References AtRuntime(), VARIABLE_HEADER::Attributes, VARIABLE_HEADER::DataSize, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableDataPtr(), GetVariableNamePtr(), VARIABLE_GLOBAL::HobVariableBase, IsValidVariableHeader(), VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_DELETED, VARIABLE_MODULE_GLOBAL::VariableGlobal, VariableServiceSetVariable(), and VARIABLE_HEADER::VendorGuid.

Referenced by UpdateVariable(), and VariableWriteServiceInitialize().

EFI_STATUS FtwVariableSpace | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | IN UINT8 * | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Writes a buffer to variable storage space, in the working block.

This function writes a buffer to variable storage space into a firmware volume block device. The destination is specified by the parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
VariableBase | Base address of the variable to write.
Buffer | Point to the data buffer.
BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
EFI_ABORTED | The function could not complete successfully.
Writes a buffer to variable storage space.

This function writes a buffer to variable storage space into firmware volume block device. The destination is specified by parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
[in] | VariableBase | The base address of the variable to write.
[in] | Buffer | Points to the data buffer.
[in] | BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
Other | The function could not complete successfully.
Writes a buffer to variable storage space, in the working block.

This function writes a buffer to variable storage space into a firmware volume block device. The destination is specified by parameter VariableBase. Fault Tolerant Write protocol is used for writing.

Parameters:
VariableBase | Base address of variable to write
Buffer | Point to the data buffer.
BufferSize | The number of bytes of the data Buffer.
Return values:
EFI_SUCCESS | The function completed successfully.
EFI_NOT_FOUND | Fail to locate Fault Tolerant Write protocol.
EFI_ABORTED | The function could not complete successfully.

References GetFtwProtocol(), GetFvbHandleByAddress(), GetFvbInfoByAddress(), and GetLbaAndOffsetByAddress().

Referenced by Reclaim().

EFI_STATUS GetFtwProtocol ( OUT VOID ** FtwProtocol )

Retrive the SMM Fault Tolerent Write protocol interface.

Parameters:
[out] FtwProtocol The interface of SMM Ftw protocol
Return values:
EFI_SUCCESS | The SMM SAR protocol instance was found and returned in SarProtocol.
EFI_NOT_FOUND | The SMM SAR protocol instance was not found.
EFI_INVALID_PARAMETER | SarProtocol is NULL.
Retrive the Fault Tolerent Write protocol interface.

Parameters:
[out] FtwProtocol The interface of Ftw protocol
Return values:
EFI_SUCCESS | The FTW protocol instance was found and returned in FtwProtocol.
EFI_NOT_FOUND | The FTW protocol instance was not found.
EFI_INVALID_PARAMETER | SarProtocol is NULL.
Retrive the SMM Fault Tolerent Write protocol interface.

Parameters:
[out] FtwProtocol The interface of SMM Ftw protocol
Return values:
EFI_SUCCESS | The SMM FTW protocol instance was found and returned in FtwProtocol.
EFI_NOT_FOUND | The SMM FTW protocol instance was not found.
EFI_INVALID_PARAMETER | SarProtocol is NULL.

Referenced by FtwNotificationEvent(), FtwVariableSpace(), and SmmFtwNotificationEvent().

EFI_STATUS GetFvbByHandle | ( | IN EFI_HANDLE | FvBlockHandle,
 |  | OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL ** | FvBlock
 | ) |  |

Retrive the FVB protocol interface by HANDLE.

Parameters:
[in] | FvBlockHandle | The handle of FVB protocol that provides services for reading, writing, and erasing the target block.
[out] | FvBlock | The interface of FVB protocol
Return values:
EFI_SUCCESS | The interface information for the specified protocol was returned.
EFI_UNSUPPORTED | The device does not support the FVB protocol.
EFI_INVALID_PARAMETER | FvBlockHandle is not a valid EFI_HANDLE or FvBlock is NULL.
Retrive the SMM FVB protocol interface by HANDLE.

Parameters:
[in] | FvBlockHandle | The handle of SMM FVB protocol that provides services for reading, writing, and erasing the target block.
[out] | FvBlock | The interface of SMM FVB protocol
Return values:
EFI_SUCCESS | The interface information for the specified protocol was returned.
EFI_UNSUPPORTED | The device does not support the SMM FVB protocol.
EFI_INVALID_PARAMETER | FvBlockHandle is not a valid EFI_HANDLE or FvBlock is NULL.

Referenced by GetFvbInfoByAddress().

EFI_STATUS GetFvbCountAndBuffer | ( | OUT UINTN * | NumberHandles,
 |  | OUT EFI_HANDLE ** | Buffer
 | ) |  |

Function returns an array of handles that support the FVB protocol in a buffer allocated from pool.

Parameters:
[out] | NumberHandles | The number of handles returned in Buffer.
[out] | Buffer | A pointer to the buffer to return the requested array of handles that support FVB protocol.
Return values:
EFI_SUCCESS | The array of handles was returned in Buffer, and the number of handles in Buffer was returned in NumberHandles.
EFI_NOT_FOUND | No FVB handle was found.
EFI_OUT_OF_RESOURCES | There is not enough pool memory to store the matching results.
EFI_INVALID_PARAMETER | NumberHandles is NULL or Buffer is NULL.
Function returns an array of handles that support the FVB protocol in a buffer allocated from pool.

Parameters:
[out] | NumberHandles | The number of handles returned in Buffer.
[out] | Buffer | A pointer to the buffer to return the requested array of handles that support FVB protocol.
Return values:
EFI_SUCCESS | The array of handles was returned in Buffer, and the number of handles in Buffer was returned in NumberHandles.
EFI_NOT_FOUND | No FVB handle was found.
EFI_OUT_OF_RESOURCES | There is not enough pool memory to store the matching results.
EFI_INVALID_PARAMETER | NumberHandles is NULL or Buffer is NULL.
Function returns an array of handles that support the SMM FVB protocol in a buffer allocated from pool.

Parameters:
[out] | NumberHandles | The number of handles returned in Buffer.
[out] | Buffer | A pointer to the buffer to return the requested array of handles that support SMM FVB protocol.
Return values:
EFI_SUCCESS | The array of handles was returned in Buffer, and the number of handles in Buffer was returned in NumberHandles.
EFI_NOT_FOUND | No SMM FVB handle was found.
EFI_OUT_OF_RESOURCES | There is not enough pool memory to store the matching results.
EFI_INVALID_PARAMETER | NumberHandles is NULL or Buffer is NULL.

Referenced by GetFvbInfoByAddress().

EFI_STATUS GetFvbInfoByAddress | ( | IN EFI_PHYSICAL_ADDRESS | Address,
 |  | OUT EFI_HANDLE * | FvbHandle,
 |  | OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL ** | FvbProtocol
 | ) |  |

Get the proper fvb handle and/or fvb protocol by the given Flash address.

Parameters:
[in] | Address | The Flash address.
[out] | FvbHandle | In output, if it is not NULL, it points to the proper FVB handle.
[out] | FvbProtocol | In output, if it is not NULL, it points to the proper FVB protocol.
Get the proper fvb handle and/or fvb protocol by the given Flash address.

Parameters:
[in] | Address | The Flash address.
[out] | FvbHandle | In output, if it is not NULL, it points to the proper FVB handle.
[out] | FvbProtocol | In output, if it is not NULL, it points to the proper FVB protocol.

References GetFvbByHandle(), and GetFvbCountAndBuffer().

Referenced by FtwNotificationEvent(), FtwVariableSpace(), GetLbaAndOffsetByAddress(), and SmmFtwNotificationEvent().

EFI_STATUS GetSarProtocol ( OUT VOID ** SarProtocol )

Retrive the Swap Address Range protocol interface.

Parameters:
[out] SarProtocol The interface of SAR protocol
Return values:
EFI_SUCCESS | The SAR protocol instance was found and returned in SarProtocol.
EFI_NOT_FOUND | The SAR protocol instance was not found.
EFI_INVALID_PARAMETER | SarProtocol is NULL.

UINT8* GetVariableDataPtr ( IN VARIABLE_HEADER * Variable )

This code gets the pointer to the variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
Pointer to Variable Data.
This code gets the pointer to the variable data.

Parameters:
Variable Pointer to the Variable Header.
Returns:
A UINT8* pointer to Variable Data.

References GET_PAD_SIZE, GetVariableNamePtr(), and NameSizeOfVariable().

EFI_LOCK* InitializeLock | ( | IN OUT EFI_LOCK * | Lock,
 |  | IN EFI_TPL | Priority
 | ) |  |

Initializes a basic mutual exclusion lock.

This function initializes a basic mutual exclusion lock to the released state and returns the lock. Each lock provides mutual exclusion access at its task priority level. Since there is no preemption or multiprocessor support in EFI, acquiring the lock only consists of raising to the locks TPL. If Lock is NULL, then ASSERT(). If Priority is not a valid TPL value, then ASSERT().

Parameters:
Lock | A pointer to the lock data structure to initialize.
Priority | EFI TPL is associated with the lock.
Returns:
The lock.
Initializes a basic mutual exclusion lock.

This function initializes a basic mutual exclusion lock to the released state and returns the lock. Each lock provides mutual exclusion access at its task priority level. Since there is no preemption or multiprocessor support in EFI, acquiring the lock only consists of raising to the locks TPL. If Lock is NULL, then ASSERT(). If Priority is not a valid TPL value, then ASSERT().

Parameters:
Lock | A pointer to the lock data structure to initialize.
Priority | EFI TPL is associated with the lock.
Returns:
The lock.

Referenced by VariableCommonInitialize().

EFI_STATUS Reclaim | ( | IN EFI_PHYSICAL_ADDRESS | VariableBase,
 |  | OUT UINTN * | LastVariableOffset,
 |  | IN BOOLEAN | IsVolatile,
 |  | IN OUT VARIABLE_POINTER_TRACK * | UpdatingPtrTrack,
 |  | IN BOOLEAN | ReclaimPubKeyStore,
 |  | IN BOOLEAN | ReclaimAnyway
 | ) |  |

Variable store garbage collection and reclaim operation.

If ReclaimPubKeyStore is FALSE, reclaim variable space by deleting the obsoleted varaibles. If ReclaimPubKeyStore is TRUE, reclaim invalid key in public key database and update the PubKeyIndex for all the count-based authenticate variable in NV storage.

Parameters:
[in] | VariableBase | Base address of variable store.
[out] | LastVariableOffset | Offset of last variable.
[in] | IsVolatile | The variable store is volatile or not; if it is non-volatile, need FTW.
[in,out] | UpdatingPtrTrack | Pointer to updating variable pointer track structure.
[in] | ReclaimPubKeyStore | Reclaim for public key database or not.
[in] | ReclaimAnyway | If TRUE, do reclaim anyway.
Returns:
EFI_SUCCESS Reclaim operation has finished successfully.

EFI_OUT_OF_RESOURCES No enough memory resources.

EFI_DEVICE_ERROR The public key database doesn't exist.

Others Unexpect error happened during reclaim operation.

References VARIABLE_HEADER::Attributes, AUTHVAR_KEYDB_NAME, VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, VARIABLE_HEADER::DataSize, FtwVariableSpace(), gEfiAuthenticatedVariableGuid, GetNextVariablePtr(), GetStartPointer(), GetVariableDataPtr(), GetVariableNamePtr(), HEADER_ALIGN, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, IsValidVariableHeader(), mPubKeyNumber, mPubKeyStore, VARIABLE_HEADER::NameSize, NameSizeOfVariable(), PubKeyStoreFilter(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, and VARIABLE_HEADER::VendorGuid.

VOID ReclaimForOS ( VOID )

This function reclaims variable storage if free size is below the threshold.

This function reclaims variable storage if free size is below the threshold.

Caution: This function may be invoked at SMM mode. Care must be taken to make sure not security issue.

References VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Reclaim(), and VARIABLE_MODULE_GLOBAL::VariableGlobal.

VOID ReleaseLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Releases lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiReleaseLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiReleaseLock() at boot time and simply returns at runtime.

Parameters:
Lock A pointer to the lock to release.
Releases lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiReleaseLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiReleaseLock() at boot time, and simply returns at runtime

Parameters:
[in] Lock A pointer to the lock to release.

References AtRuntime().

Referenced by EsalGetNextVariableName(), EsalGetVariable(), EsalQueryVariableInfo(), EsalSetVariable(), RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), RuntimeServiceSetVariable(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

EFI_STATUS UpdateVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN VOID * | Data,
 |  | IN UINTN | DataSize,
 |  | IN UINT32 | Attributes,
 |  | IN UINT32 | KeyIndex,
 |  | IN UINT64 | MonotonicCount,
 |  | IN OUT VARIABLE_POINTER_TRACK * | CacheVariable,
 |  | IN EFI_TIME * | TimeStamp
 | ) |  |

Update the variable region with Variable information. If EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS is set, index of associated public key is needed.

Parameters:
[in] | VariableName | Name of variable.
[in] | VendorGuid | Guid of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.
[in] | Attributes | Attributes of the variable.
[in] | KeyIndex | Index of associated public key.
[in] | MonotonicCount | Value of associated monotonic count.
[in,out] | Variable | The variable information that is used to keep track of variable usage.
[in] | TimeStamp | Value of associated TimeStamp.
Return values:
EFI_SUCCESS | The update operation is success.
EFI_OUT_OF_RESOURCES | Variable region is full, cannot write other data into this region.
Update the variable region with Variable information. If EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS is set, index of associated public key is needed.

Parameters:
[in] | VariableName | Name of variable.
[in] | VendorGuid | Guid of variable.
[in] | Data | Variable data.
[in] | DataSize | Size of data. 0 means delete.
[in] | Attributes | Attributes of the variable.
[in] | KeyIndex | Index of associated public key.
[in] | MonotonicCount | Value of associated monotonic count.
[in,out] | CacheVariable | The variable information which is used to keep track of variable usage.
[in] | TimeStamp | Value of associated TimeStamp.
Return values:
EFI_SUCCESS | The update operation is success.
EFI_OUT_OF_RESOURCES | Variable region is full, can not write other data into this region.

References AppendSignatureList(), AtRuntime(), VARIABLE_HEADER::Attributes, VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, CompareTimeStamp(), VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_HEADER::DataSize, DataSizeOfVariable(), VARIABLE_POINTER_TRACK::EndPtr, FlushHobVariableToFlash(), VARIABLE_MODULE_GLOBAL::FvbInstance, GET_PAD_SIZE, GetEndPointer(), GetStartPointer(), GetVariableDataPtr(), HEADER_ALIGN, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, VARIABLE_POINTER_TRACK::InDeletedTransitionPtr, VARIABLE_HEADER::MonotonicCount, mStorageArea, VARIABLE_HEADER::NameSize, VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_HEADER::PubKeyIndex, Reclaim(), VARIABLE_HEADER::Reserved, VARIABLE_HEADER::StartId, VARIABLE_POINTER_TRACK::StartPtr, VARIABLE_HEADER::State, VARIABLE_HEADER::TimeStamp, TRUE, UpdateVariableInfo(), UpdateVariableStore(), VAR_ADDED, VAR_DELETED, VAR_HEADER_VALID_ONLY, VAR_IN_DELETED_TRANSITION, VARIABLE_DATA, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_HEADER::VendorGuid, VARIABLE_POINTER_TRACK::Volatile, VARIABLE_MODULE_GLOBAL::VolatileLastVariableOffset, and VARIABLE_GLOBAL::VolatileVariableBase.

EFI_STATUS VariableCommonInitialize ( VOID )

Initializes variable store area for non-volatile and volatile variable.

Return values:
EFI_SUCCESS | Function successfully executed.
EFI_OUT_OF_RESOURCES | Fail to allocate enough memory resource.

References VARIABLE_HEADER::Attributes, VARIABLE_MODULE_GLOBAL::CommonVariableTotalSize, VARIABLE_HEADER::DataSize, EfiValid, VARIABLE_STORE_HEADER::Format, VARIABLE_MODULE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, GetNextVariablePtr(), GetStartPointer(), GetVariableStoreStatus(), HEADER_ALIGN, VARIABLE_GLOBAL::HobVariableBase, VARIABLE_MODULE_GLOBAL::HwErrVariableTotalSize, InitializeLock(), IsValidVariableHeader(), VARIABLE_HEADER::NameSize, VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, VARIABLE_STORE_HEADER::Reserved, VARIABLE_STORE_HEADER::Reserved1, VARIABLE_STORE_HEADER::Signature, VARIABLE_STORE_HEADER::Size, VARIABLE_STORE_HEADER::State, VARIABLE_STORE_FORMATTED, VARIABLE_STORE_HEALTHY, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, VARIABLE_MODULE_GLOBAL::VolatileLastVariableOffset, and VARIABLE_GLOBAL::VolatileVariableBase.

EFI_STATUS EFIAPI VariableServiceGetNextVariableName | ( | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VendorGuid
 | ) |  |

This code Finds the Next available variable.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode. This function will do basic validation, before parse the data.

Parameters:
VariableNameSize | Size of the variable name.
VariableName | Pointer to variable name.
VendorGuid | Variable Vendor Guid.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Find the specified variable.

EFI_NOT_FOUND Not found.

EFI_BUFFER_TO_SMALL DataSize is too small for the result.

References AcquireLockOnlyAtBootTime(), AtRuntime(), VARIABLE_POINTER_TRACK::CurrPtr, VARIABLE_POINTER_TRACK::EndPtr, FindVariable(), FindVariableEx(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), GetVariableNamePtr(), VARIABLE_GLOBAL::HobVariableBase, IsValidVariableHeader(), NameSizeOfVariable(), ReleaseLockOnlyAtBootTime(), VARIABLE_POINTER_TRACK::StartPtr, TRUE, VAR_ADDED, VAR_IN_DELETED_TRANSITION, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, VariableStoreTypeHob, VariableStoreTypeMax, VariableStoreTypeNv, VariableStoreTypeVolatile, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceGetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data
 | ) |  |

This code finds variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data.

Parameters:
VariableName | Name of Variable to be found.
VendorGuid | Variable vendor GUID.
Attributes | Attribute value of the variable found.
DataSize | Size of Data found. If size is less than the data, this value contains the required size.
Data | Data pointer.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Find the specified variable.

EFI_NOT_FOUND Not found.

EFI_BUFFER_TO_SMALL DataSize is too small for the result.

This code finds variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize is external input. This function will do basic validation, before parse the data.

Parameters:
VariableName | Name of Variable to be found.
VendorGuid | Variable vendor GUID.
Attributes | Attribute value of the variable found.
DataSize | Size of Data found. If size is less than the data, this value contains the required size.
Data | Data pointer.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Find the specified variable.

EFI_NOT_FOUND Not found.

EFI_BUFFER_TO_SMALL DataSize is too small for the result.

References AcquireLockOnlyAtBootTime(), VARIABLE_POINTER_TRACK::CurrPtr, DataSizeOfVariable(), FindVariable(), GetVariableDataPtr(), ReleaseLockOnlyAtBootTime(), TRUE, UpdateVariableInfo(), VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_POINTER_TRACK::Volatile.

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceQueryVariableInfo | ( | IN UINT32 | Attributes,
 |  | OUT UINT64 * | MaximumVariableStorageSize,
 |  | OUT UINT64 * | RemainingVariableStorageSize,
 |  | OUT UINT64 * | MaximumVariableSize
 | ) |  |

This code returns information about the EFI variables.

Caution: This function may receive untrusted input. This function may be invoked in SMM mode. This function will do basic validation, before parse the data.

Parameters:
Attributes | Attributes bitmask to specify the type of variables on which to return information.
MaximumVariableStorageSize | Pointer to the maximum size of the storage space available for the EFI variables associated with the attributes specified.
RemainingVariableStorageSize | Pointer to the remaining size of the storage space available for EFI variables associated with the attributes specified.
MaximumVariableSize | Pointer to the maximum size of an individual EFI variables associated with the attributes specified.
Returns:
EFI_INVALID_PARAMETER An invalid combination of attribute bits was supplied.

EFI_SUCCESS Query successfully.

EFI_UNSUPPORTED The attribute is not supported on this platform.

References AcquireLockOnlyAtBootTime(), AtRuntime(), VARIABLE_HEADER::Attributes, GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), IsValidVariableHeader(), ReleaseLockOnlyAtBootTime(), VARIABLE_STORE_HEADER::Size, VARIABLE_HEADER::State, VAR_ADDED, VARIABLE_MODULE_GLOBAL::VariableGlobal, VARIABLE_GLOBAL::VariableServicesLock, and VARIABLE_GLOBAL::VolatileVariableBase.

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceSetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT32 | Attributes,
 |  | IN UINTN | DataSize,
 |  | IN VOID * | Data
 | ) |  |

This code sets variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. This function may be invoked in SMM mode, and datasize and data are external input. This function will do basic validation, before parse the data. This function will parse the authentication carefully to avoid security issues, like buffer overflow, integer overflow. This function will check attribute carefully to avoid authentication bypass.

Parameters:
VariableName | Name of Variable to be found.
VendorGuid | Variable vendor GUID.
Attributes | Attribute value of the variable found
DataSize | Size of Data found. If size is less than the data, this value contains the required size.
Data | Data pointer.
Returns:
EFI_INVALID_PARAMETER Invalid parameter.

EFI_SUCCESS Set successfully.

EFI_OUT_OF_RESOURCES Resource not enough to set variable.

EFI_NOT_FOUND Not found.

EFI_WRITE_PROTECTED Variable is read-only.

References AcquireLockOnlyAtBootTime(), AtRuntime(), AUTHINFO2_SIZE, AUTHINFO_SIZE, AutoUpdateLangVariable(), VARIABLE_POINTER_TRACK::CurrPtr, EFI_VARIABLE_ATTRIBUTES_MASK, FindVariable(), GetEndPointer(), GetNextVariablePtr(), GetStartPointer(), IsHwErrRecVariable(), IsReadOnlyVariable(), IsValidVariableHeader(), VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, OFFSET_OF_AUTHINFO2_CERT_DATA, ProcessVariable(), ProcessVarWithKek(), ProcessVarWithPk(), VARIABLE_GLOBAL::ReentrantState, ReleaseLockOnlyAtBootTime(), TRUE, VARIABLE_MODULE_GLOBAL::VariableGlobal, and VARIABLE_GLOBAL::VariableServicesLock.

Referenced by FlushHobVariableToFlash(), SmmVariableHandler(), and VariableServiceInitialize().

EFI_STATUS VariableWriteServiceInitialize ( VOID )

Initializes variable write service after FVB was ready.

Return values:
EFI_SUCCESS | Function successfully executed.
Others | Fail to initialize the variable service.

References AutenticatedVariableServiceInitialize(), FlushHobVariableToFlash(), VARIABLE_MODULE_GLOBAL::NonVolatileLastVariableOffset, VARIABLE_GLOBAL::NonVolatileVariableBase, Reclaim(), TRUE, and VARIABLE_MODULE_GLOBAL::VariableGlobal.

Referenced by FtwNotificationEvent(), and SmmFtwNotificationEvent().

Variable Documentation

VARIABLE_MODULE_GLOBAL* mVariableModuleGlobal

Referenced by AddPubKeyInStore(), AutenticatedVariableServiceInitialize(), DeleteCertsFromDb(), DeleteVariable(), FtwNotificationEvent(), GetCertsFromDb(), InCustomMode(), InsertCertsToDb(), SmmFtwNotificationEvent(), UpdatePlatformMode(), VariableClassAddressChangeEvent(), VariableServiceInitialize(), and VerifyTimeBasedPayload().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableDxe.c File Reference

Functions

BOOLEAN | AtRuntime (VOID)
EFI_LOCK * | InitializeLock (IN OUT EFI_LOCK *Lock, IN EFI_TPL Priority)
VOID | AcquireLockOnlyAtBootTime (IN EFI_LOCK *Lock)
VOID | ReleaseLockOnlyAtBootTime (IN EFI_LOCK *Lock)
EFI_STATUS | GetFtwProtocol (OUT VOID **FtwProtocol)
EFI_STATUS | GetFvbByHandle (IN EFI_HANDLE FvBlockHandle, OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock)
EFI_STATUS | GetFvbCountAndBuffer (OUT UINTN *NumberHandles, OUT EFI_HANDLE **Buffer)
VOID EFIAPI | VariableClassAddressChangeEvent (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | OnReadyToBoot (EFI_EVENT Event, VOID *Context)
VOID EFIAPI | FtwNotificationEvent (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI | VariableServiceInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

VARIABLE_STORE_HEADER * mNvVariableCache
VARIABLE_INFO_ENTRY * gVariableInfo
EFI_HANDLE | mHandle = NULL
EFI_EVENT | mVirtualAddressChangeEvent = NULL
EFI_EVENT | mFtwRegistration = NULL

Detailed Description

Implement all four UEFI Runtime Variable services for the nonvolatile and volatile storage space and install variable architecture protocol.

Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AcquireLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Acquires lock only at boot time. Simply returns at runtime.

This is a temperary function that will be removed when EfiAcquireLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiAcquireLock() at boot time, and simply returns at runtime.

Parameters:
Lock A pointer to the lock to acquire.

References AtRuntime().

BOOLEAN AtRuntime ( VOID )

Return TRUE if ExitBootServices () has been called.

Return values:
TRUE If ExitBootServices () has been called.

Referenced by AcquireLockOnlyAtBootTime(), AddPubKeyInStore(), AutoUpdateLangVariable(), FindVariableEx(), FlushHobVariableToFlash(), ReleaseLockOnlyAtBootTime(), SmmVariableHandler(), UpdatePlatformMode(), UpdateVariable(), UpdateVariableInfo(), VariableServiceGetNextVariableName(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

VOID EFIAPI FtwNotificationEvent | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Fault Tolerant Write protocol notification event handler.

Non-Volatile variable write may needs FTW protocol to reclaim when writting variable.

Parameters:
[in] | Event | Event whose notification function is being invoked.
[in] | Context | Pointer to the notification function's context.

References ESAL_VARIABLE_GLOBAL::FvbInstance, GetFtwProtocol(), GetFvbInfoByAddress(), mHandle, mVariableModuleGlobal, VARIABLE_GLOBAL::NonVolatileVariableBase, ESAL_VARIABLE_GLOBAL::VariableGlobal, and VariableWriteServiceInitialize().

Referenced by VariableServiceInitialize().

EFI_STATUS GetFtwProtocol ( OUT VOID ** FtwProtocol )

Retrive the Fault Tolerent Write protocol interface.

Parameters:
[out] FtwProtocol The interface of Ftw protocol
Return values:
EFI_SUCCESS | The FTW protocol instance was found and returned in FtwProtocol.
EFI_NOT_FOUND | The FTW protocol instance was not found.
EFI_INVALID_PARAMETER | SarProtocol is NULL.

Referenced by FtwNotificationEvent(), FtwVariableSpace(), and SmmFtwNotificationEvent().

EFI_STATUS GetFvbByHandle | ( | IN EFI_HANDLE | FvBlockHandle,
 |  | OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL ** | FvBlock
 | ) |  |

Retrive the FVB protocol interface by HANDLE.

Parameters:
[in] | FvBlockHandle | The handle of FVB protocol that provides services for reading, writing, and erasing the target block.
[out] | FvBlock | The interface of FVB protocol
Return values:
EFI_SUCCESS | The interface information for the specified protocol was returned.
EFI_UNSUPPORTED | The device does not support the FVB protocol.
EFI_INVALID_PARAMETER | FvBlockHandle is not a valid EFI_HANDLE or FvBlock is NULL.

Referenced by GetFvbInfoByAddress().

EFI_STATUS GetFvbCountAndBuffer | ( | OUT UINTN * | NumberHandles,
 |  | OUT EFI_HANDLE ** | Buffer
 | ) |  |

Function returns an array of handles that support the FVB protocol in a buffer allocated from pool.

Parameters:
[out] | NumberHandles | The number of handles returned in Buffer.
[out] | Buffer | A pointer to the buffer to return the requested array of handles that support FVB protocol.
Return values:
EFI_SUCCESS | The array of handles was returned in Buffer, and the number of handles in Buffer was returned in NumberHandles.
EFI_NOT_FOUND | No FVB handle was found.
EFI_OUT_OF_RESOURCES | There is not enough pool memory to store the matching results.
EFI_INVALID_PARAMETER | NumberHandles is NULL or Buffer is NULL.

Referenced by GetFvbInfoByAddress().

EFI_LOCK* InitializeLock | ( | IN OUT EFI_LOCK * | Lock,
 |  | IN EFI_TPL | Priority
 | ) |  |

Initializes a basic mutual exclusion lock.

This function initializes a basic mutual exclusion lock to the released state and returns the lock. Each lock provides mutual exclusion access at its task priority level. Since there is no preemption or multiprocessor support in EFI, acquiring the lock only consists of raising to the locks TPL. If Lock is NULL, then ASSERT(). If Priority is not a valid TPL value, then ASSERT().

Parameters:
Lock | A pointer to the lock data structure to initialize.
Priority | EFI TPL is associated with the lock.
Returns:
The lock.

Referenced by VariableCommonInitialize().

VOID EFIAPI OnReadyToBoot | ( | EFI_EVENT | Event,
 |  | VOID * | Context
 | ) |  |

Notification function of EVT_GROUP_READY_TO_BOOT event group.

This is a notification function registered on EVT_GROUP_READY_TO_BOOT event group. When the Boot Manager is about to load and execute a boot option, it reclaims variable storage if free size is below the threshold.

Parameters:
Event | Event whose notification function is being invoked.
Context | Pointer to the notification function's context.

References gEfiAuthenticatedVariableGuid, and ReclaimForOS().

VOID ReleaseLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Releases lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiReleaseLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiReleaseLock() at boot time and simply returns at runtime.

Parameters:
Lock A pointer to the lock to release.

References AtRuntime().

VOID EFIAPI VariableClassAddressChangeEvent | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.

This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event. It convers pointer to new virtual address.

Parameters:
Event | Event whose notification function is being invoked.
Context | Pointer to the notification function's context.

References ESAL_VARIABLE_GLOBAL::AuthenticatedVariableGuid, ESAL_VARIABLE_GLOBAL::CertRsa2048Sha256Guid, ESAL_VARIABLE_GLOBAL::FvbInstance, gEfiAuthenticatedVariableGuid, ESAL_VARIABLE_GLOBAL::GlobalVariableGuid, ESAL_VARIABLE_GLOBAL::HashContext, ESAL_VARIABLE_GLOBAL::ImageSecurityDatabaseGuid, ESAL_VARIABLE_GLOBAL::LangCodes, mHashCtx, mSerializationRuntimeBuffer, mStorageArea, mVariableModuleGlobal, VARIABLE_GLOBAL::NonVolatileVariableBase, NUM_VAR_NAME, Physical, ESAL_VARIABLE_GLOBAL::PlatformLang, ESAL_VARIABLE_GLOBAL::PlatformLangCodes, ESAL_VARIABLE_GLOBAL::VariableGlobal, ESAL_VARIABLE_GLOBAL::VariableName, Virtual, and VARIABLE_GLOBAL::VolatileVariableBase.

EFI_STATUS EFIAPI VariableServiceInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Variable Driver main entry point. The Variable driver places the 4 EFI runtime services in the EFI System Table and installs arch protocols for variable read and write services being available. It also registers a notification function for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS Variable service successfully initialized.

References FtwNotificationEvent(), mFtwRegistration, mHandle, mVirtualAddressChangeEvent, OnReadyToBoot(), VariableClassAddressChangeEvent(), VariableCommonInitialize(), VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

Variable Documentation

VARIABLE_INFO_ENTRY* gVariableInfo

The memory entry used for variable statistics data.

EFI_EVENT mFtwRegistration = NULL

Referenced by VariableServiceInitialize().

EFI_HANDLE mHandle = NULL

Referenced by FtwNotificationEvent(), SmmVariableReady(), SmmVariableWriteReady(), and VariableServiceInitialize().

VARIABLE_STORE_HEADER* mNvVariableCache

Define a memory cache that improves the search performance for a variable.

EFI_EVENT mVirtualAddressChangeEvent = NULL

Referenced by VariableServiceInitialize(), and VariableSmmRuntimeInitialize().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmm.c File Reference

Functions

BOOLEAN | AtRuntime (VOID)
BOOLEAN | InternalIsAddressInSmram (IN EFI_PHYSICAL_ADDRESS Buffer, IN UINT64 Length)
BOOLEAN | InternalIsAddressValid (IN UINTN Buffer, IN UINTN Length)
EFI_LOCK * | InitializeLock (IN OUT EFI_LOCK *Lock, IN EFI_TPL Priority)
VOID | AcquireLockOnlyAtBootTime (IN EFI_LOCK *Lock)
VOID | ReleaseLockOnlyAtBootTime (IN EFI_LOCK *Lock)
EFI_STATUS | GetFtwProtocol (OUT VOID **FtwProtocol)
EFI_STATUS | GetFvbByHandle (IN EFI_HANDLE FvBlockHandle, OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL **FvBlock)
EFI_STATUS | GetFvbCountAndBuffer (OUT UINTN *NumberHandles, OUT EFI_HANDLE **Buffer)
EFI_STATUS | SmmVariableGetStatistics (IN OUT VARIABLE_INFO_ENTRY *InfoEntry, IN OUT UINTN *InfoSize)
EFI_STATUS EFIAPI | SmmVariableHandler (IN EFI_HANDLE DispatchHandle, IN CONST VOID *RegisterContext, IN OUT VOID *CommBuffer, IN OUT UINTN *CommBufferSize)
EFI_STATUS EFIAPI | SmmFtwNotificationEvent (IN CONST EFI_GUID *Protocol, IN VOID *Interface, IN EFI_HANDLE Handle)
EFI_STATUS EFIAPI | VariableServiceInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_SMRAM_DESCRIPTOR * | mSmramRanges
UINTN | mSmramRangeCount
VARIABLE_INFO_ENTRY * gVariableInfo
EFI_HANDLE | mSmmVariableHandle = NULL
EFI_HANDLE | mVariableHandle = NULL
BOOLEAN | mAtRuntime = FALSE
EFI_GUID | mZeroGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}
UINT8 * | mVariableBufferPayload = NULL
UINTN | mVariableBufferPayloadSize
EFI_SMM_VARIABLE_PROTOCOL | gSmmVariable

Detailed Description

The sample implementation for SMM variable protocol. And this driver implements an SMI handler to communicate with the DXE runtime driver to provide variable services.

Caution: This module requires additional review when modified. This driver will have external input - variable data and communicate buffer in SMM mode. This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow.

SmmVariableHandler() will receive untrusted input and do basic validation.

Each sub function VariableServiceGetVariable(), VariableServiceGetNextVariableName(), VariableServiceSetVariable(), VariableServiceQueryVariableInfo(), ReclaimForOS(), SmmVariableGetStatistics() should also do validation based on its own knowledge.

Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AcquireLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Acquires lock only at boot time. Simply returns at runtime.

This is a temperary function that will be removed when EfiAcquireLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiAcquireLock() at boot time, and simply returns at runtime.

Parameters:
Lock A pointer to the lock to acquire.

BOOLEAN AtRuntime ( VOID )

Return TRUE if ExitBootServices () has been called.

Return values:
TRUE If ExitBootServices () has been called.

References mAtRuntime.

EFI_STATUS GetFtwProtocol ( OUT VOID ** FtwProtocol )

Retrive the SMM Fault Tolerent Write protocol interface.

Parameters:
[out] FtwProtocol The interface of SMM Ftw protocol
Return values:
EFI_SUCCESS | The SMM FTW protocol instance was found and returned in FtwProtocol.
EFI_NOT_FOUND | The SMM FTW protocol instance was not found.
EFI_INVALID_PARAMETER | SarProtocol is NULL.

EFI_STATUS GetFvbByHandle | ( | IN EFI_HANDLE | FvBlockHandle,
 |  | OUT EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL ** | FvBlock
 | ) |  |

Retrive the SMM FVB protocol interface by HANDLE.

Parameters:
[in] | FvBlockHandle | The handle of SMM FVB protocol that provides services for reading, writing, and erasing the target block.
[out] | FvBlock | The interface of SMM FVB protocol
Return values:
EFI_SUCCESS | The interface information for the specified protocol was returned.
EFI_UNSUPPORTED | The device does not support the SMM FVB protocol.
EFI_INVALID_PARAMETER | FvBlockHandle is not a valid EFI_HANDLE or FvBlock is NULL.

EFI_STATUS GetFvbCountAndBuffer | ( | OUT UINTN * | NumberHandles,
 |  | OUT EFI_HANDLE ** | Buffer
 | ) |  |

Function returns an array of handles that support the SMM FVB protocol in a buffer allocated from pool.

Parameters:
[out] | NumberHandles | The number of handles returned in Buffer.
[out] | Buffer | A pointer to the buffer to return the requested array of handles that support SMM FVB protocol.
Return values:
EFI_SUCCESS | The array of handles was returned in Buffer, and the number of handles in Buffer was returned in NumberHandles.
EFI_NOT_FOUND | No SMM FVB handle was found.
EFI_OUT_OF_RESOURCES | There is not enough pool memory to store the matching results.
EFI_INVALID_PARAMETER | NumberHandles is NULL or Buffer is NULL.

EFI_LOCK* InitializeLock | ( | IN OUT EFI_LOCK * | Lock,
 |  | IN EFI_TPL | Priority
 | ) |  |

Initializes a basic mutual exclusion lock.

This function initializes a basic mutual exclusion lock to the released state and returns the lock. Each lock provides mutual exclusion access at its task priority level. Since there is no preemption or multiprocessor support in EFI, acquiring the lock only consists of raising to the locks TPL. If Lock is NULL, then ASSERT(). If Priority is not a valid TPL value, then ASSERT().

Parameters:
Lock | A pointer to the lock data structure to initialize.
Priority | EFI TPL is associated with the lock.
Returns:
The lock.

BOOLEAN InternalIsAddressInSmram | ( | IN EFI_PHYSICAL_ADDRESS | Buffer,
 |  | IN UINT64 | Length
 | ) |  |

This function check if the address is in SMRAM.

Parameters:
Buffer | the buffer address to be checked.
Length | the buffer length to be checked.
Return values:
TRUE | this address is in SMRAM.
FALSE | this address is NOT in SMRAM.

References mSmramRangeCount, mSmramRanges, and TRUE.

Referenced by InternalIsAddressValid(), and SmmVariableHandler().

BOOLEAN InternalIsAddressValid | ( | IN UINTN | Buffer,
 |  | IN UINTN | Length
 | ) |  |

This function check if the address refered by Buffer and Length is valid.

Parameters:
Buffer | the buffer address to be checked.
Length | the buffer length to be checked.
Return values:
TRUE | this address is valid.
FALSE | this address is NOT valid.

References InternalIsAddressInSmram(), and TRUE.

Referenced by SmmVariableHandler().

VOID ReleaseLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Releases lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiReleaseLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiReleaseLock() at boot time and simply returns at runtime.

Parameters:
Lock A pointer to the lock to release.

EFI_STATUS EFIAPI SmmFtwNotificationEvent | ( | IN CONST EFI_GUID * | Protocol,
 |  | IN VOID * | Interface,
 |  | IN EFI_HANDLE | Handle
 | ) |  |

SMM Fault Tolerant Write protocol notification event handler.

Non-Volatile variable write may needs FTW protocol to reclaim when writting variable.

Parameters:
Protocol | Points to the protocol's unique identifier
Interface | Points to the interface instance
Handle | The handle on which the interface was installed
Return values:
EFI_SUCCESS | SmmEventCallback runs successfully
EFI_NOT_FOUND | The Fvb protocol for variable is not found.

References ESAL_VARIABLE_GLOBAL::FvbInstance, GetFtwProtocol(), GetFvbInfoByAddress(), mSmmVariableHandle, mVariableModuleGlobal, and VariableWriteServiceInitialize().

Referenced by VariableServiceInitialize().

EFI_STATUS SmmVariableGetStatistics | ( | IN OUT VARIABLE_INFO_ENTRY * | InfoEntry,
 |  | IN OUT UINTN * | InfoSize
 | ) |  |

Get the variable statistics information from the information buffer pointed by gVariableInfo.

Caution: This function may be invoked at SMM runtime. InfoEntry and InfoSize are external input. Care must be taken to make sure not security issue at runtime.

Parameters:
[in,out] | InfoEntry | A pointer to the buffer of variable information entry. On input, point to the variable information returned last time. if InfoEntry->VendorGuid is zero, return the first information. On output, point to the next variable information.
[in,out] | InfoSize | On input, the size of the variable information buffer. On output, the returned variable information size.
Return values:
EFI_SUCCESS | The variable information is found and returned successfully.
EFI_UNSUPPORTED | No variable inoformation exists in variable driver. The PcdVariableCollectStatistics should be set TRUE to support it.
EFI_BUFFER_TOO_SMALL | The buffer is too small to hold the next variable information.
EFI_INVALID_PARAMETER | Input parameter is invalid.

References mZeroGuid, _VARIABLE_INFO_ENTRY::Name, _VARIABLE_INFO_ENTRY::Next, and _VARIABLE_INFO_ENTRY::VendorGuid.

Referenced by SmmVariableHandler().

EFI_STATUS EFIAPI SmmVariableHandler | ( | IN EFI_HANDLE | DispatchHandle,
 |  | IN CONST VOID * | RegisterContext,
 |  | IN OUT VOID * | CommBuffer,
 |  | IN OUT UINTN * | CommBufferSize
 | ) |  |

Communication service SMI Handler entry.

This SMI handler provides services for the variable wrapper driver.

Caution: This function may receive untrusted input. This variable data and communicate buffer are external input, so this function will do basic validation. Each sub function VariableServiceGetVariable(), VariableServiceGetNextVariableName(), VariableServiceSetVariable(), VariableServiceQueryVariableInfo(), ReclaimForOS(), SmmVariableGetStatistics() should also do validation based on its own knowledge.

Parameters:
[in] | DispatchHandle | The unique handle assigned to this handler by SmiHandlerRegister().
[in] | RegisterContext | Points to an optional handler context which was specified when the handler was registered.
[in,out] | CommBuffer | A pointer to a collection of data in memory that will be conveyed from a non-SMM environment into an SMM environment.
[in,out] | CommBufferSize | The size of the CommBuffer.
Return values:
EFI_SUCCESS | The interrupt was handled and quiesced. No other handlers should still be called.
EFI_WARN_INTERRUPT_SOURCE_QUIESCED | The interrupt has been quiesced but other handlers should still be called.
EFI_WARN_INTERRUPT_SOURCE_PENDING | The interrupt is still pending and other handlers should still be called.
EFI_INTERRUPT_PENDING | The interrupt could not be quiesced.

References AtRuntime(), InternalIsAddressInSmram(), InternalIsAddressValid(), mAtRuntime, mVariableBufferPayload, mVariableBufferPayloadSize, ReclaimForOS(), SmmVariableGetStatistics(), TRUE, VariableServiceGetNextVariableName(), VariableServiceGetVariable(), VariableServiceQueryVariableInfo(), and VariableServiceSetVariable().

Referenced by VariableServiceInitialize().

EFI_STATUS EFIAPI VariableServiceInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Variable Driver main entry point. The Variable driver places the 4 EFI runtime services in the EFI System Table and installs arch protocols for variable read and write services being available. It also registers a notification function for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS Variable service successfully initialized.

Register SMM variable SMI handler

References AutenticatedVariableServiceInitialize(), EsalVariableCommonEntry(), FlushHob2Nv(), gSmmVariable, mEfiVirtualNotifyEvent, mSmramRangeCount, mSmramRanges, mVariableBufferPayload, mVariableBufferPayloadSize, mVariableHandle, mVariableModuleGlobal, SmmFtwNotificationEvent(), SmmVariableHandler(), VariableClassAddressChangeEvent(), and VariableCommonInitialize().

Variable Documentation

EFI_SMM_VARIABLE_PROTOCOL gSmmVariable

Initial value:

 {
  VariableServiceGetVariable,
  VariableServiceGetNextVariableName,
  VariableServiceSetVariable,
  VariableServiceQueryVariableInfo
}

Referenced by VariableServiceInitialize().

VARIABLE_INFO_ENTRY* gVariableInfo

The memory entry used for variable statistics data.

Referenced by UpdateVariableInfo().

BOOLEAN mAtRuntime = FALSE

Referenced by AtRuntime(), and SmmVariableHandler().

EFI_HANDLE mSmmVariableHandle = NULL

Referenced by SmmFtwNotificationEvent().

UINTN mSmramRangeCount

Referenced by InternalIsAddressInSmram(), and VariableServiceInitialize().

EFI_SMRAM_DESCRIPTOR* mSmramRanges

Referenced by InternalIsAddressInSmram(), and VariableServiceInitialize().

UINT8* mVariableBufferPayload = NULL

Referenced by SmmVariableHandler(), and VariableServiceInitialize().

UINTN mVariableBufferPayloadSize

Referenced by RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceSetVariable(), SmmVariableHandler(), SmmVariableReady(), and VariableServiceInitialize().

EFI_HANDLE mVariableHandle = NULL

Referenced by VariableServiceInitialize().

EFI_GUID mZeroGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxe.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableSmmRuntimeDxe.c File Reference

Functions

VOID | AcquireLockOnlyAtBootTime (IN EFI_LOCK *Lock)
VOID | ReleaseLockOnlyAtBootTime (IN EFI_LOCK *Lock)
EFI_STATUS | InitCommunicateBuffer (OUT VOID **DataPtr, IN UINTN DataSize, IN UINTN Function)
EFI_STATUS | SendCommunicateBuffer (IN UINTN DataSize)
EFI_STATUS EFIAPI | RuntimeServiceGetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, IN OUT UINTN *DataSize, OUT VOID *Data)
EFI_STATUS EFIAPI | RuntimeServiceGetNextVariableName (IN OUT UINTN *VariableNameSize, IN OUT CHAR16 *VariableName, IN OUT EFI_GUID *VendorGuid)
EFI_STATUS EFIAPI | RuntimeServiceSetVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 Attributes, IN UINTN DataSize, IN VOID *Data)
EFI_STATUS EFIAPI | RuntimeServiceQueryVariableInfo (IN UINT32 Attributes, OUT UINT64 *MaximumVariableStorageSize, OUT UINT64 *RemainingVariableStorageSize, OUT UINT64 *MaximumVariableSize)
VOID EFIAPI | OnExitBootServices (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | OnReadyToBoot (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | VariableAddressChangeEvent (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | SmmVariableReady (IN EFI_EVENT Event, IN VOID *Context)
VOID EFIAPI | SmmVariableWriteReady (IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS EFIAPI | VariableSmmRuntimeInitialize (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

EFI_HANDLE | mHandle = NULL
EFI_SMM_VARIABLE_PROTOCOL * | mSmmVariable = NULL
EFI_EVENT | mVirtualAddressChangeEvent = NULL
EFI_SMM_COMMUNICATION_PROTOCOL * | mSmmCommunication = NULL
UINT8 * | mVariableBuffer = NULL
UINT8 * | mVariableBufferPhysical = NULL
UINTN | mVariableBufferSize
UINTN | mVariableBufferPayloadSize
EFI_LOCK | mVariableServicesLock

Detailed Description

Implement all four UEFI Runtime Variable services for the nonvolatile and volatile storage space and install variable architecture protocol based on SMM variable module.

Caution: This module requires additional review when modified. This driver will have external input - variable data. This external input must be validated carefully to avoid security issue like buffer overflow, integer overflow.

RuntimeServiceGetVariable() and RuntimeServiceSetVariable() are external API to receive data buffer. The size should be checked carefully.

InitCommunicateBuffer() is really function to check the variable data size.

Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID AcquireLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Acquires lock only at boot time. Simply returns at runtime.

This is a temperary function that will be removed when EfiAcquireLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiAcquireLock() at boot time, and simply returns at runtime.

Parameters:
Lock A pointer to the lock to acquire.

EFI_STATUS InitCommunicateBuffer | ( | OUT VOID ** | DataPtr,
 |  | IN UINTN | DataSize,
 |  | IN UINTN | Function
 | ) |  |

Initialize the communicate buffer using DataSize and Function.

The communicate size is: SMM_COMMUNICATE_HEADER_SIZE + SMM_VARIABLE_COMMUNICATE_HEADER_SIZE + DataSize.

Caution: This function may receive untrusted input. The data size external input, so this function will validate it carefully to avoid buffer overflow.

Parameters:
[out] | DataPtr | Points to the data in the communicate buffer.
[in] | DataSize | The data size to send to SMM.
[in] | Function | The function number to initialize the communicate header.
Return values:
EFI_INVALID_PARAMETER | The data size is too big.
EFI_SUCCESS | Find the specified variable.

References mVariableBuffer, and mVariableBufferSize.

Referenced by OnExitBootServices(), OnReadyToBoot(), RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), and RuntimeServiceSetVariable().

VOID EFIAPI OnExitBootServices | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Exit Boot Services Event notification handler.

Notify SMM variable driver about the event.

Parameters:
[in] | Event | Event whose notification function is being invoked.
[in] | Context | Pointer to the notification function's context.

References InitCommunicateBuffer(), and SendCommunicateBuffer().

VOID EFIAPI OnReadyToBoot | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

On Ready To Boot Services Event notification handler.

Notify SMM variable driver about the event.

Parameters:
[in] | Event | Event whose notification function is being invoked
[in] | Context | Pointer to the notification function's context

References InitCommunicateBuffer(), and SendCommunicateBuffer().

VOID ReleaseLockOnlyAtBootTime ( IN EFI_LOCK * Lock )

Releases lock only at boot time. Simply returns at runtime.

This is a temperary function which will be removed when EfiReleaseLock() in UefiLib can handle the call in UEFI Runtimer driver in RT phase. It calls EfiReleaseLock() at boot time and simply returns at runtime.

Parameters:
Lock A pointer to the lock to release.

EFI_STATUS EFIAPI RuntimeServiceGetNextVariableName | ( | IN OUT UINTN * | VariableNameSize,
 |  | IN OUT CHAR16 * | VariableName,
 |  | IN OUT EFI_GUID * | VendorGuid
 | ) |  |

This code Finds the Next available variable.

Parameters:
[in,out] | VariableNameSize | Size of the variable name.
[in,out] | VariableName | Pointer to variable name.
[in,out] | VendorGuid | Variable Vendor Guid.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SUCCESS | Find the specified variable.
EFI_NOT_FOUND | Not found.
EFI_BUFFER_TO_SMALL | DataSize is too small for the result.

References AcquireLockOnlyAtBootTime(), InitCommunicateBuffer(), mVariableBufferPayloadSize, mVariableServicesLock, ReleaseLockOnlyAtBootTime(), and SendCommunicateBuffer().

Referenced by SmmVariableReady().

EFI_STATUS EFIAPI RuntimeServiceGetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | OUT UINT32 * | Attributes,
 |  | IN OUT UINTN * | DataSize,
 |  | OUT VOID * | Data
 | ) |  |

This code finds variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. The data size is external input, so this function will validate it carefully to avoid buffer overflow.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[out] | Attributes | Attribute value of the variable found.
[in,out] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[out] | Data | Data pointer.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SUCCESS | Find the specified variable.
EFI_NOT_FOUND | Not found.
EFI_BUFFER_TO_SMALL | DataSize is too small for the result.

References AcquireLockOnlyAtBootTime(), InitCommunicateBuffer(), mVariableBufferPayloadSize, mVariableServicesLock, ReleaseLockOnlyAtBootTime(), and SendCommunicateBuffer().

Referenced by SmmVariableReady().

EFI_STATUS EFIAPI RuntimeServiceQueryVariableInfo | ( | IN UINT32 | Attributes,
 |  | OUT UINT64 * | MaximumVariableStorageSize,
 |  | OUT UINT64 * | RemainingVariableStorageSize,
 |  | OUT UINT64 * | MaximumVariableSize
 | ) |  |

This code returns information about the EFI variables.

Parameters:
[in] | Attributes | Attributes bitmask to specify the type of variables on which to return information.
[out] | MaximumVariableStorageSize | Pointer to the maximum size of the storage space available for the EFI variables associated with the attributes specified.
[out] | RemainingVariableStorageSize | Pointer to the remaining size of the storage space available for EFI variables associated with the attributes specified.
[out] | MaximumVariableSize | Pointer to the maximum size of an individual EFI variables associated with the attributes specified.
Return values:
EFI_INVALID_PARAMETER | An invalid combination of attribute bits was supplied.
EFI_SUCCESS | Query successfully.
EFI_UNSUPPORTED | The attribute is not supported on this platform.

References AcquireLockOnlyAtBootTime(), InitCommunicateBuffer(), mVariableServicesLock, ReleaseLockOnlyAtBootTime(), and SendCommunicateBuffer().

Referenced by SmmVariableReady().

EFI_STATUS EFIAPI RuntimeServiceSetVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT32 | Attributes,
 |  | IN UINTN | DataSize,
 |  | IN VOID * | Data
 | ) |  |

This code sets variable in storage blocks (Volatile or Non-Volatile).

Caution: This function may receive untrusted input. The data size and data are external input, so this function will validate it carefully to avoid buffer overflow.

Parameters:
[in] | VariableName | Name of Variable to be found.
[in] | VendorGuid | Variable vendor GUID.
[in] | Attributes | Attribute value of the variable found
[in] | DataSize | Size of Data found. If size is less than the data, this value contains the required size.
[in] | Data | Data pointer.
Return values:
EFI_INVALID_PARAMETER | Invalid parameter.
EFI_SUCCESS | Set successfully.
EFI_OUT_OF_RESOURCES | Resource not enough to set variable.
EFI_NOT_FOUND | Not found.
EFI_WRITE_PROTECTED | Variable is read-only.

References AcquireLockOnlyAtBootTime(), InitCommunicateBuffer(), mVariableBufferPayloadSize, mVariableServicesLock, ReleaseLockOnlyAtBootTime(), and SendCommunicateBuffer().

Referenced by SmmVariableReady().

EFI_STATUS SendCommunicateBuffer ( IN UINTN DataSize )

Send the data in communicate buffer to SMM.

Parameters:
[in] DataSize This size of the function header and the data.
Return values:
EFI_SUCCESS | Success is returned from the functin in SMM.
Others | Failure is returned from the function in SMM.

References mSmmCommunication, mVariableBuffer, and mVariableBufferPhysical.

Referenced by OnExitBootServices(), OnReadyToBoot(), RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), and RuntimeServiceSetVariable().

VOID EFIAPI SmmVariableReady | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Initialize variable service and install Variable Architectural protocol.

Parameters:
[in] | Event | Event whose notification function is being invoked.
[in] | Context | Pointer to the notification function's context.

References mHandle, mSmmCommunication, mSmmVariable, mVariableBuffer, mVariableBufferPayloadSize, mVariableBufferPhysical, mVariableBufferSize, RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), and RuntimeServiceSetVariable().

Referenced by VariableSmmRuntimeInitialize().

VOID EFIAPI SmmVariableWriteReady | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

SMM Non-Volatile variable write service is ready notify event handler.

Parameters:
[in] | Event | Event whose notification function is being invoked.
[in] | Context | Pointer to the notification function's context.

References mHandle.

Referenced by VariableSmmRuntimeInitialize().

VOID EFIAPI VariableAddressChangeEvent | ( | IN EFI_EVENT | Event,
 |  | IN VOID * | Context
 | ) |  |

Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.

This is a notification function registered on EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event. It convers pointer to new virtual address.

Parameters:
[in] | Event | Event whose notification function is being invoked.
[in] | Context | Pointer to the notification function's context.

References mSmmCommunication, and mVariableBuffer.

Referenced by VariableSmmRuntimeInitialize().

EFI_STATUS EFIAPI VariableSmmRuntimeInitialize | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

Variable Driver main entry point. The Variable driver places the 4 EFI runtime services in the EFI System Table and installs arch protocols for variable read and write services being available. It also registers a notification function for an EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE event.

Parameters:
[in] | ImageHandle | The firmware allocated handle for the EFI image.
[in] | SystemTable | A pointer to the EFI System Table.
Return values:
EFI_SUCCESS Variable service successfully initialized.

References mVariableServicesLock, mVirtualAddressChangeEvent, OnExitBootServices(), OnReadyToBoot(), SmmVariableReady(), SmmVariableWriteReady(), and VariableAddressChangeEvent().

Variable Documentation

EFI_HANDLE mHandle = NULL

EFI_SMM_COMMUNICATION_PROTOCOL* mSmmCommunication = NULL

EFI_SMM_VARIABLE_PROTOCOL* mSmmVariable = NULL

UINT8* mVariableBuffer = NULL

Referenced by InitCommunicateBuffer(), SendCommunicateBuffer(), SmmVariableReady(), and VariableAddressChangeEvent().

UINTN mVariableBufferPayloadSize

UINT8* mVariableBufferPhysical = NULL

Referenced by SendCommunicateBuffer(), and SmmVariableReady().

UINTN mVariableBufferSize

Referenced by InitCommunicateBuffer(), and SmmVariableReady().

EFI_LOCK mVariableServicesLock

Referenced by RuntimeServiceGetNextVariableName(), RuntimeServiceGetVariable(), RuntimeServiceQueryVariableInfo(), RuntimeServiceSetVariable(), and VariableSmmRuntimeInitialize().

EFI_EVENT mVirtualAddressChangeEvent = NULL


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfig.vfr File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfig.vfr File Reference

Variables

formset | guid = SECUREBOOT_CONFIG_FORM_SET_GUID
formset | title = STRING_TOKEN(STR_SECUREBOOT_TITLE)
formset | help = STRING_TOKEN(STR_SECUREBOOT_HELP)
formset | classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID
formset varstore | SECUREBOOT_CONFIGURATION
formset varstore | varid = SECUREBOOT_CONFIGURATION_VARSTORE_ID
formset varstore | name = SECUREBOOT_CONFIGURATION
form | formid = SECUREBOOT_CONFIGURATION_FORM_ID
subtitle | text = STRING_TOKEN(STR_NULL)
suppressif | TRUE
checkbox | prompt = STRING_TOKEN(STR_NULL)
checkbox | endcheckbox
endif
grayoutif ideqval
SECUREBOOT_CONFIGURATION 		HideSecureBoot = = 1
checkbox | questionid = KEY_SECURE_BOOT_ENABLE
checkbox | flags = INTERACTIVE | RESET_REQUIRED
oneof option | value = SECURE_BOOT_MODE_STANDARD
endoneof
suppressif ideqval
SECUREBOOT_CONFIGURATION 		SecureBootMode = = SECURE_BOOT_MODE_STANDARD
grayoutif NOT ideqval
SECUREBOOT_CONFIGURATION 		PhysicalPresent = = 1
goto | FORMID_SECURE_BOOT_OPTION_FORM
goto | key = KEY_SECURE_BOOT_OPTION
endform
goto | FORMID_SECURE_BOOT_PK_OPTION_FORM
goto | FORMID_SECURE_BOOT_KEK_OPTION_FORM
goto | FORMID_SECURE_BOOT_DB_OPTION_FORM
goto | FORMID_SECURE_BOOT_DBX_OPTION_FORM
grayoutif ideqval
SECUREBOOT_CONFIGURATION 		HasPk = = 1
goto | FORMID_ENROLL_PK_FORM
goto | FORM_FILE_EXPLORER_ID_PK
goto | FORMID_ENROLL_KEK_FORM
goto | FORMID_DELETE_KEK_FORM
goto | FORM_FILE_EXPLORER_ID_KEK
label | LABEL_END
string | minsize = SECURE_BOOT_GUID_SIZE
string | maxsize = SECURE_BOOT_GUID_SIZE
string | endstring
label | LABEL_KEK_DELETE
goto | SECUREBOOT_ENROLL_SIGNATURE_TO_DB
goto | SECUREBOOT_DELETE_SIGNATURE_FROM_DB
goto | SECUREBOOT_ENROLL_SIGNATURE_TO_DBX
goto | SECUREBOOT_DELETE_SIGNATURE_FROM_DBX
label | LABEL_DB_DELETE
label | LABEL_DBX_DELETE
goto | FORM_FILE_EXPLORER_ID_DB
goto | FORM_FILE_EXPLORER_ID_DBX
label | FORM_FILE_EXPLORER_ID
label | SECUREBOOT_ADD_PK_FILE_FORM_ID
endformset

Detailed Description

VFR file used by the SecureBoot configuration component.

Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Variable Documentation

formset classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID

checkbox endcheckbox

endform

endformset

endif

endoneof

string endstring

text flags = INTERACTIVE | RESET_REQUIRED

label FORM_FILE_EXPLORER_ID

goto FORM_FILE_EXPLORER_ID_DB

goto FORM_FILE_EXPLORER_ID_DBX

goto FORM_FILE_EXPLORER_ID_KEK

goto FORM_FILE_EXPLORER_ID_PK

form formid = SECUREBOOT_CONFIGURATION_FORM_ID

goto FORMID_DELETE_KEK_FORM

label FORMID_ENROLL_KEK_FORM

goto FORMID_ENROLL_PK_FORM

goto FORMID_SECURE_BOOT_DB_OPTION_FORM

goto FORMID_SECURE_BOOT_DBX_OPTION_FORM

goto FORMID_SECURE_BOOT_KEK_OPTION_FORM

goto FORMID_SECURE_BOOT_OPTION_FORM

goto FORMID_SECURE_BOOT_PK_OPTION_FORM

formset varstore guid = SECUREBOOT_CONFIG_FORM_SET_GUID

grayoutif ideqval SECUREBOOT_CONFIGURATION HasPk = = 1

text help = STRING_TOKEN(STR_SECUREBOOT_HELP)

grayoutif ideqval SECUREBOOT_CONFIGURATION HideSecureBoot = = 1

text key = KEY_SECURE_BOOT_OPTION

label LABEL_DB_DELETE

label LABEL_DBX_DELETE

label LABEL_END

label LABEL_KEK_DELETE

string maxsize = SECURE_BOOT_GUID_SIZE

string minsize = SECURE_BOOT_GUID_SIZE

formset varstore name = SECUREBOOT_CONFIGURATION

grayoutif NOT ideqval SECUREBOOT_CONFIGURATION PhysicalPresent = = 1

goto prompt = STRING_TOKEN(STR_NULL)

checkbox questionid = KEY_SECURE_BOOT_ENABLE

label SECUREBOOT_ADD_PK_FILE_FORM_ID

formset varstore SECUREBOOT_CONFIGURATION

goto SECUREBOOT_DELETE_SIGNATURE_FROM_DB

goto SECUREBOOT_DELETE_SIGNATURE_FROM_DBX

label SECUREBOOT_ENROLL_SIGNATURE_TO_DB

label SECUREBOOT_ENROLL_SIGNATURE_TO_DBX

suppressif ideqval SECUREBOOT_CONFIGURATION SecureBootMode = = SECURE_BOOT_MODE_STANDARD

Referenced by AutenticatedVariableServiceInitialize(), SecureBootCallback(), SecureBootExtractConfigFromVariable(), and UpdatePlatformMode().

text text = STRING_TOKEN(STR_NULL)

form title = STRING_TOKEN(STR_SECUREBOOT_TITLE)

suppressif TRUE

option value = SECURE_BOOT_MODE_STANDARD

string varid = SECUREBOOT_CONFIGURATION_VARSTORE_ID


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDevicePath.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDevicePath.c File Reference

Functions

CHAR16 *EFIAPI | CatPrint (IN OUT POOL_PRINT *Str, IN CHAR16 *Fmt,...)
VOID | DevPathPci (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathPccard (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathMemMap (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathController (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathVendor (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathAcpi (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathExtendedAcpi (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathAdrAcpi (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathAtapi (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathScsi (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathFibre (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPath1394 (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathUsb (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathUsbWWID (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathLogicalUnit (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathUsbClass (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathSata (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathI2O (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathMacAddr (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathIPv4 (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathIPv6 (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathInfiniBand (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathUart (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathiSCSI (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathVlan (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathHardDrive (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathCDROM (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathFilePath (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathMediaProtocol (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathFvFilePath (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathRelativeOffsetRange (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathBssBss (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathEndInstance (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathNodeUnknown (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
VOID | DevPathFvPath (IN OUT POOL_PRINT *Str, IN VOID *DevPath)
CHAR16 *EFIAPI | DevicePathToStr (IN EFI_DEVICE_PATH_PROTOCOL *DevPath)

Variables

DEVICE_PATH_STRING_TABLE DevPathTable []

Detailed Description

Internal function defines the default device path string for SecureBoot configuration module.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

CHAR16* EFIAPI CatPrint | ( | IN OUT POOL_PRINT * | Str,
 |  | IN CHAR16 * | Fmt,
 |  |  | ...
 | ) |  |

Concatenates a formatted unicode string to allocated pool. The caller must free the resulting buffer.

Parameters:
[in,out] | Str | Tracks the allocated pool, size in use, and amount of pool allocated.
[in] | Fmt | The format string
[in] ... The data will be printed.
Returns:
Allocated buffer with the formatted string printed in it. The caller must free the allocated buffer. The buffer allocation is not packed.

References MAX_CHAR.

Referenced by DevicePathToStr(), DevPath1394(), DevPathAcpi(), DevPathAdrAcpi(), DevPathAtapi(), DevPathBssBss(), DevPathCDROM(), DevPathController(), DevPathEndInstance(), DevPathExtendedAcpi(), DevPathFibre(), DevPathFilePath(), DevPathFvFilePath(), DevPathFvPath(), DevPathHardDrive(), DevPathI2O(), DevPathInfiniBand(), DevPathIPv4(), DevPathIPv6(), DevPathiSCSI(), DevPathLogicalUnit(), DevPathMacAddr(), DevPathMediaProtocol(), DevPathMemMap(), DevPathNodeUnknown(), DevPathPccard(), DevPathPci(), DevPathRelativeOffsetRange(), DevPathSata(), DevPathScsi(), DevPathUart(), DevPathUsb(), DevPathUsbClass(), DevPathUsbWWID(), DevPathVendor(), and DevPathVlan().

CHAR16* EFIAPI DevicePathToStr ( IN EFI_DEVICE_PATH_PROTOCOL * DevPath )

This function converts an input device structure to a Unicode string.

Parameters:
[in] DevPath A pointer to the device path structure.
Returns:
A new allocated Unicode string that represents the device path.

References CatPrint(), DevPathEndInstance(), DevPathNodeUnknown(), DEVICE_PATH_STRING_TABLE::Function, POOL_PRINT::Len, POOL_PRINT::Str, and TRUE.

Referenced by FindFileSystem().

VOID DevPath1394 | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathAcpi | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathAdrAcpi | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathAtapi | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathBssBss | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathCDROM | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathController | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathEndInstance | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

Referenced by DevicePathToStr().

VOID DevPathExtendedAcpi | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathFibre | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathFilePath | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathFvFilePath | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathFvPath | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathHardDrive | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathI2O | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathInfiniBand | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathIPv4 | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathIPv6 | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathiSCSI | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint(), ISCSI_DEVICE_PATH_WITH_NAME::LoginOption, ISCSI_DEVICE_PATH_WITH_NAME::Lun, ISCSI_DEVICE_PATH_WITH_NAME::NetworkProtocol, ISCSI_DEVICE_PATH_WITH_NAME::TargetName, and ISCSI_DEVICE_PATH_WITH_NAME::TargetPortalGroupTag.

VOID DevPathLogicalUnit | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathMacAddr | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathMediaProtocol | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathMemMap | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathNodeUnknown | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

Referenced by DevicePathToStr().

VOID DevPathPccard | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathPci | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathRelativeOffsetRange | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathSata | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathScsi | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathUart | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathUsb | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathUsbClass | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathUsbWWID | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

VOID DevPathVendor | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Vendor device path to device name.

Parameters:
[in,out] | Str | The buffer store device name
[in] | DevPath | Pointer to vendor device path

References CatPrint().

VOID DevPathVlan | ( | IN OUT POOL_PRINT * | Str,
 |  | IN VOID * | DevPath
 | ) |  |

Convert Device Path to a Unicode string for printing.

Parameters:
[in,out] | Str | The buffer holding the output string. This buffer contains the length of the string and the maixmum length reserved for the string buffer.
[in] | DevPath | The device path.

References CatPrint().

Variable Documentation

DEVICE_PATH_STRING_TABLE DevPathTable[]


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDriver.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDriver.c File Reference

Functions

EFI_STATUS EFIAPI | SecureBootConfigDriverEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
EFI_STATUS EFIAPI | SecureBootConfigDriverUnload (IN EFI_HANDLE ImageHandle)

Detailed Description

The module entry point for SecureBoot configuration module.

Copyright (c) 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS EFIAPI SecureBootConfigDriverEntryPoint | ( | IN EFI_HANDLE | ImageHandle,
 |  | IN EFI_SYSTEM_TABLE * | SystemTable
 | ) |  |

The entry point for SecureBoot configuration driver.

Parameters:
[in] | ImageHandle | The image handle of the driver.
[in] | SystemTable | The system table.
Return values:
EFI_ALREADY_STARTED | The driver already exists in system.
EFI_OUT_OF_RESOURCES | Fail to execute entry point due to lack of resources.
EFI_SUCCES | All the related protocols are installed on the driver.
Others | Fail to get the SecureBootEnable variable.

References InstallSecureBootConfigForm(), mSecureBootConfigPrivateDateTemplate, and UninstallSecureBootConfigForm().

EFI_STATUS EFIAPI SecureBootConfigDriverUnload ( IN EFI_HANDLE ImageHandle )

Unload the SecureBoot configuration form.

Parameters:
[in] ImageHandle The driver's image handle.
Return values:
EFI_SUCCESS | The SecureBoot configuration form is unloaded.
Others | Failed to unload the form.

References SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE, and UninstallSecureBootConfigForm().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigFileExplorer.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigFileExplorer.c File Reference

Functions

CHAR16 * | StrDuplicate (IN CHAR16 *Src)
BOOLEAN | GrowBuffer (IN OUT EFI_STATUS *Status, IN OUT VOID **Buffer, IN UINTN BufferSize)
CHAR16 * | AppendFileName (IN CHAR16 *Str1, IN CHAR16 *Str2)
SECUREBOOT_MENU_ENTRY * | CreateMenuEntry (VOID)
SECUREBOOT_MENU_ENTRY * | GetMenuEntry (IN SECUREBOOT_MENU_OPTION *MenuOption, IN UINTN MenuNumber)
VOID | CreateMenuStringToken (IN EFI_HII_HANDLE HiiHandle, IN SECUREBOOT_MENU_OPTION *MenuOption)
VOID | DestroyMenuEntry (IN OUT SECUREBOOT_MENU_ENTRY *MenuEntry)
VOID | FreeMenu (IN OUT SECUREBOOT_MENU_OPTION *MenuOption)
EFI_FILE_INFO * | FileInfo (IN EFI_FILE_HANDLE FHand)
EFI_FILE_SYSTEM_VOLUME_LABEL * | FileSystemVolumeLabelInfo (IN EFI_FILE_HANDLE FHand)
EFI_STATUS EFIAPI | OpenFileByDevicePath (IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath, OUT EFI_FILE_HANDLE *FileHandle, IN UINT64 OpenMode, IN UINT64 Attributes)
EFI_FILE_HANDLE | OpenRoot (IN EFI_HANDLE DeviceHandle)
EFI_STATUS | FindFileSystem (VOID)
EFI_STATUS | FindFiles (IN SECUREBOOT_MENU_ENTRY *MenuEntry)
VOID | RefreshUpdateData (VOID)
VOID | UpdateFileExplorePage (IN EFI_HII_HANDLE HiiHandle, IN SECUREBOOT_MENU_OPTION *MenuOption, IN FILE_EXPLORER_STATE FeCurrentState)
BOOLEAN | UpdateFileExplorer (IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData, IN UINT16 KeyValue)
VOID | CleanUpPage (IN UINT16 LabelId, IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData)

Variables

SECUREBOOT_MENU_OPTION FsOptionMenu
SECUREBOOT_MENU_OPTION DirectoryMenu
VOID * | mStartOpCodeHandle = NULL
VOID * | mEndOpCodeHandle = NULL
EFI_IFR_GUID_LABEL * | mStartLabel = NULL
EFI_IFR_GUID_LABEL * | mEndLabel = NULL

Detailed Description

Internal file explorer functions for SecureBoot configuration module.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

CHAR16* AppendFileName | ( | IN CHAR16 * | Str1,
 |  | IN CHAR16 * | Str2
 | ) |  |

Append file name to existing file name, and allocate a new buffer to hold the appended result.

Parameters:
[in] | Str1 | The existing file name
[in] | Str2 | The file name to be appended
Returns:
A new string with appended result.

Referenced by FindFiles().

VOID CleanUpPage | ( | IN UINT16 | LabelId,
 |  | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData
 | ) |  |

Clean up the dynamic opcode at label and form specified by both LabelId.

Parameters:
[in] | LabelId | It is both the Form ID and Label ID for opcode deletion.
[in] | PrivateData | Module private data.

References gSecureBootConfigFormSetGuid, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, and RefreshUpdateData().

Referenced by SecureBootCallback().

SECUREBOOT_MENU_ENTRY* CreateMenuEntry ( VOID )

Create a SECUREBOOT_MENU_ENTRY, and stores it in a buffer allocated from the pool.

Returns:
The new menu entry or NULL of error happens.

References SECUREBOOT_MENU_ENTRY::FileContext, SECUREBOOT_MENU_ENTRY_SIGNATURE, and SECUREBOOT_MENU_ENTRY::Signature.

Referenced by FindFiles(), and FindFileSystem().

VOID CreateMenuStringToken | ( | IN EFI_HII_HANDLE | HiiHandle,
 |  | IN SECUREBOOT_MENU_OPTION * | MenuOption
 | ) |  |

Create string tokens for a menu from its help strings and display strings.

Parameters:
[in] | HiiHandle | Hii Handle of the package to be updated.
[in] | MenuOption | The Menu whose string tokens need to be created.

References SECUREBOOT_MENU_ENTRY::DisplayString, SECUREBOOT_MENU_ENTRY::DisplayStringToken, GetMenuEntry(), SECUREBOOT_MENU_ENTRY::HelpString, and SECUREBOOT_MENU_ENTRY::HelpStringToken.

Referenced by UpdateFileExplorer().

VOID DestroyMenuEntry ( IN OUT SECUREBOOT_MENU_ENTRY * MenuEntry )

Free up all resources allocated for a SECUREBOOT_MENU_ENTRY.

Parameters:
[in,out] MenuEntry A pointer to SECUREBOOT_MENU_ENTRY.

References SECUREBOOT_FILE_CONTEXT::DevicePath, SECUREBOOT_FILE_CONTEXT::FHandle, SECUREBOOT_FILE_CONTEXT::FileName, SECUREBOOT_FILE_CONTEXT::Info, and SECUREBOOT_FILE_CONTEXT::IsRoot.

Referenced by FindFileSystem(), FreeMenu(), and UpdateFileExplorer().

EFI_FILE_INFO* FileInfo ( IN EFI_FILE_HANDLE FHand )

This function gets the file information from an open file descriptor, and stores it in a buffer allocated from pool.

Parameters:
[in] FHand File Handle.
Returns:
A pointer to a buffer with file information or NULL is returned

References GrowBuffer().

Referenced by FindFiles(), and GetFileData().

EFI_FILE_SYSTEM_VOLUME_LABEL* FileSystemVolumeLabelInfo ( IN EFI_FILE_HANDLE FHand )

This function gets the file system information from an open file descriptor, and stores it in a buffer allocated from pool.

Parameters:
[in] FHand The file handle.
Returns:
A pointer to a buffer with file information.
Return values:
NULL is returned if failed to get Vaolume Label Info.

References GrowBuffer().

Referenced by FindFileSystem().

EFI_STATUS FindFiles ( IN SECUREBOOT_MENU_ENTRY * MenuEntry )

Find files under the current directory. All files and sub-directories in current directory will be stored in DirectoryMenu for future use.

Parameters:
[in] MenuEntry The Menu Entry.
Return values:
EFI_SUCCESS Get files from current dir successfully.
Returns:
Other Can't get files from current dir.

References AppendFileName(), CreateMenuEntry(), SECUREBOOT_FILE_CONTEXT::DevicePath, SECUREBOOT_MENU_ENTRY::DisplayString, SECUREBOOT_FILE_CONTEXT::FHandle, SECUREBOOT_MENU_ENTRY::FileContext, FileInfo(), SECUREBOOT_FILE_CONTEXT::FileName, SECUREBOOT_FILE_CONTEXT::Handle, SECUREBOOT_MENU_OPTION::Head, SECUREBOOT_MENU_ENTRY::HelpString, SECUREBOOT_FILE_CONTEXT::IsDir, SECUREBOOT_FILE_CONTEXT::IsLoadFile, SECUREBOOT_FILE_CONTEXT::IsRemovableMedia, SECUREBOOT_FILE_CONTEXT::IsRoot, SECUREBOOT_MENU_ENTRY::Link, SECUREBOOT_MENU_OPTION::MenuNumber, SECUREBOOT_MENU_ENTRY::OptionNumber, and StrDuplicate().

Referenced by UpdateFileExplorer().

EFI_STATUS FindFileSystem ( VOID )

This function builds the FsOptionMenu list which records all available file system in the system. They include all instances of EFI_SIMPLE_FILE_SYSTEM_PROTOCOL, all instances of EFI_LOAD_FILE_SYSTEM and all type of legacy boot device.

Return values:
EFI_SUCCESS | Success find the file system
EFI_OUT_OF_RESOURCES | Can not create menu entry

References CreateMenuEntry(), DestroyMenuEntry(), SECUREBOOT_FILE_CONTEXT::DevicePath, DevicePathToStr(), SECUREBOOT_MENU_ENTRY::DisplayString, SECUREBOOT_FILE_CONTEXT::FHandle, SECUREBOOT_MENU_ENTRY::FileContext, SECUREBOOT_FILE_CONTEXT::FileName, FileSystemVolumeLabelInfo(), SECUREBOOT_FILE_CONTEXT::Handle, SECUREBOOT_MENU_OPTION::Head, SECUREBOOT_MENU_ENTRY::HelpString, SECUREBOOT_FILE_CONTEXT::Info, SECUREBOOT_FILE_CONTEXT::IsDir, SECUREBOOT_FILE_CONTEXT::IsLoadFile, SECUREBOOT_FILE_CONTEXT::IsRemovableMedia, SECUREBOOT_FILE_CONTEXT::IsRoot, SECUREBOOT_MENU_ENTRY::Link, MAX_CHAR, SECUREBOOT_MENU_OPTION::MenuNumber, OpenRoot(), SECUREBOOT_MENU_ENTRY::OptionNumber, StrDuplicate(), and TRUE.

Referenced by UpdateFileExplorer().

VOID FreeMenu ( IN OUT SECUREBOOT_MENU_OPTION * MenuOption )

Free resources allocated in Allocate Rountine.

Parameters:
[in,out] MenuOption Menu to be freed

References DestroyMenuEntry(), SECUREBOOT_MENU_ENTRY::Link, and SECUREBOOT_MENU_ENTRY_SIGNATURE.

Referenced by SecureBootCallback(), UninstallSecureBootConfigForm(), and UpdateFileExplorer().

SECUREBOOT_MENU_ENTRY* GetMenuEntry | ( | IN SECUREBOOT_MENU_OPTION * | MenuOption,
 |  | IN UINTN | MenuNumber
 | ) |  |

Get Menu Entry from the Menu Entry List by MenuNumber.

If MenuNumber is great or equal to the number of Menu Entry in the list, then ASSERT.

Parameters:
[in] | MenuOption | The Menu Entry List to read the menu entry.
[in] | MenuNumber | The index of Menu Entry.
Returns:
The Menu Entry.

References SECUREBOOT_MENU_ENTRY_SIGNATURE.

Referenced by CreateMenuStringToken(), UpdateFileExplorePage(), and UpdateFileExplorer().

BOOLEAN GrowBuffer | ( | IN OUT EFI_STATUS * | Status,
 |  | IN OUT VOID ** | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Helper function called as part of the code needed to allocate the proper sized buffer for various EFI interfaces.

Parameters:
[in,out] | Status | Current status
[in,out] | Buffer | Current allocated buffer, or NULL
[in] | BufferSize | Current buffer size needed
Return values:
TRUE | If the buffer was reallocated and the caller should try the API again.
FALSE | The caller should not call this function again.

References TRUE.

Referenced by FileInfo(), and FileSystemVolumeLabelInfo().

EFI_STATUS EFIAPI OpenFileByDevicePath | ( | IN OUT EFI_DEVICE_PATH_PROTOCOL ** | FilePath,
 |  | OUT EFI_FILE_HANDLE * | FileHandle,
 |  | IN UINT64 | OpenMode,
 |  | IN UINT64 | Attributes
 | ) |  |

This function will open a file or directory referenced by DevicePath.

This function opens a file with the open mode according to the file path. The Attributes is valid only for EFI_FILE_MODE_CREATE.

Parameters:
[in,out] | FilePath | On input, the device path to the file. On output, the remaining device path.
[out] | FileHandle | Pointer to the file handle.
[in] | OpenMode | The mode to open the file with.
[in] | Attributes | The file's file attributes.
Return values:
EFI_SUCCESS | The information was set.
EFI_INVALID_PARAMETER | One of the parameters has an invalid value.
EFI_UNSUPPORTED | Could not open the file path.
EFI_NOT_FOUND | The specified file could not be found on the device or the file system could not be found on the device.
EFI_NO_MEDIA | The device has no medium.
EFI_MEDIA_CHANGED | The device has a different medium in it or the medium is no longer supported.
EFI_DEVICE_ERROR | The device reported an error.
EFI_VOLUME_CORRUPTED | The file system structures are corrupted.
EFI_WRITE_PROTECTED | The file or medium is write protected.
EFI_ACCESS_DENIED | The file was opened read only.
EFI_OUT_OF_RESOURCES | Not enough resources were available to open the file.
EFI_VOLUME_FULL | The volume is full.

Referenced by UpdateFileExplorer().

EFI_FILE_HANDLE OpenRoot ( IN EFI_HANDLE DeviceHandle )

Function opens and returns a file handle to the root directory of a volume.

Parameters:
[in] DeviceHandle A handle for a device
Returns:
A valid file handle or NULL if error happens.

Referenced by FindFileSystem().

VOID RefreshUpdateData ( VOID )

Refresh the global UpdateData structure.

References mStartLabel, and mStartOpCodeHandle.

Referenced by CleanUpPage(), UpdateFileExplorePage(), and UpdateFileExplorer().

CHAR16* StrDuplicate ( IN CHAR16 * Src )

Duplicate a string.

Parameters:
[in] Src The source string.
Returns:
A new string which is duplicated copy of the source, or NULL if there is not enough memory.

Referenced by FindFiles(), and FindFileSystem().

VOID UpdateFileExplorePage | ( | IN EFI_HII_HANDLE | HiiHandle,
 |  | IN SECUREBOOT_MENU_OPTION * | MenuOption,
 |  | IN FILE_EXPLORER_STATE | FeCurrentState
 | ) |  |

Update the File Explore page.

Parameters:
[in] | HiiHandle | Hii Handle of the package to be updated.
[in] | MenuOption | The Menu whose string tokens need to be updated.
[in] | FeCurrentState | Current file explorer state.

References SECUREBOOT_MENU_ENTRY::DisplayStringToken, FILE_OPTION_OFFSET, SECUREBOOT_MENU_ENTRY::FileContext, FileExplorerStateEnrollKekFile, FileExplorerStateEnrollPkFile, FileExplorerStateEnrollSignatureFileToDb, FileExplorerStateEnrollSignatureFileToDbx, FORM_FILE_EXPLORER_ID, FORM_FILE_EXPLORER_ID_DB, FORM_FILE_EXPLORER_ID_DBX, FORM_FILE_EXPLORER_ID_KEK, FORM_FILE_EXPLORER_ID_PK, FORMID_ENROLL_KEK_FORM, GetMenuEntry(), gSecureBootConfigFormSetGuid, SECUREBOOT_FILE_CONTEXT::IsDir, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, RefreshUpdateData(), SECUREBOOT_ADD_PK_FILE_FORM_ID, SECUREBOOT_ENROLL_SIGNATURE_TO_DB, and SECUREBOOT_ENROLL_SIGNATURE_TO_DBX.

Referenced by UpdateFileExplorer().

BOOLEAN UpdateFileExplorer | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData,
 |  | IN UINT16 | KeyValue
 | ) |  |

Update the file explorer page with the refreshed file system.

Parameters:
[in] | PrivateData | Module private data.
[in] | KeyValue | Key value to identify the type of data to expect.
Return values:
TRUE | Inform the caller to create a callback packet to exit file explorer.
FALSE | Indicate that there is no need to exit file explorer.

References CreateMenuStringToken(), DestroyMenuEntry(), SECUREBOOT_FILE_CONTEXT::DevicePath, SECUREBOOT_MENU_ENTRY::DisplayStringToken, FILE_OPTION_MASK, SECUREBOOT_MENU_ENTRY::FileContext, FileExplorerDisplayDirectory, FileExplorerDisplayFileSystem, FileExplorerDisplayUnknown, FileExplorerStateEnrollKekFile, FileExplorerStateEnrollPkFile, FileExplorerStateEnrollSignatureFileToDb, FileExplorerStateEnrollSignatureFileToDbx, SECUREBOOT_FILE_CONTEXT::FileName, FindFiles(), FindFileSystem(), FORMID_ENROLL_KEK_FORM, FreeMenu(), GetMenuEntry(), gSecureBootConfigFormSetGuid, SECUREBOOT_FILE_CONTEXT::IsDir, SECUREBOOT_MENU_ENTRY::Link, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, OpenFileByDevicePath(), RefreshUpdateData(), SECUREBOOT_ADD_PK_FILE_FORM_ID, SECUREBOOT_ENROLL_SIGNATURE_TO_DB, SECUREBOOT_ENROLL_SIGNATURE_TO_DBX, TRUE, and UpdateFileExplorePage().

Referenced by SecureBootCallback().

Variable Documentation

SECUREBOOT_MENU_OPTION DirectoryMenu

Initial value:

 {
  SECUREBOOT_MENU_OPTION_SIGNATURE,
  {NULL},
  0
}
Files and sub-directories in current directory menu

Referenced by InstallSecureBootConfigForm(), SecureBootCallback(), and UninstallSecureBootConfigForm().

SECUREBOOT_MENU_OPTION FsOptionMenu

Initial value:

 {
  SECUREBOOT_MENU_OPTION_SIGNATURE,
  {NULL},
  0
}
File system selection menu

Referenced by InstallSecureBootConfigForm(), SecureBootCallback(), and UninstallSecureBootConfigForm().

EFI_IFR_GUID_LABEL* mEndLabel = NULL

Referenced by InstallSecureBootConfigForm().

VOID* mEndOpCodeHandle = NULL

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), UninstallSecureBootConfigForm(), UpdateFileExplorePage(), and UpdateFileExplorer().

EFI_IFR_GUID_LABEL* mStartLabel = NULL

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), RefreshUpdateData(), UpdateFileExplorePage(), and UpdateFileExplorer().

VOID* mStartOpCodeHandle = NULL

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), RefreshUpdateData(), UninstallSecureBootConfigForm(), UpdateFileExplorePage(), and UpdateFileExplorer().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c File Reference

Functions

BOOLEAN | IsDerEncodeCertificate (IN CONST CHAR16 *FileSuffix)
EFI_STATUS | SaveSecureBootVariable (IN UINT8 VarValue)
EFI_STATUS | CreateTimeBasedPayload (IN OUT UINTN *DataSize, IN OUT UINT8 **Data)
EFI_STATUS | DeleteVariable (IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
EFI_STATUS | SetSecureBootMode (IN UINT8 SecureBootMode)
EFI_STATUS | CreatePkX509SignatureList (IN EFI_FILE_HANDLE X509File, OUT EFI_SIGNATURE_LIST **PkCert)
EFI_STATUS | EnrollPlatformKey (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private)
EFI_STATUS | DeletePlatformKey (VOID)
EFI_STATUS | EnrollRsa2048ToKek (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private)
EFI_STATUS | EnrollX509ToKek (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private)
EFI_STATUS | EnrollKeyExchangeKey (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private)
EFI_STATUS | EnrollX509toSigDB (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private, IN CHAR16 *VariableName)
EFI_STATUS | LoadPeImage (VOID)
BOOLEAN | HashPeImage (IN UINT32 HashAlg)
EFI_STATUS | HashPeImageByType (VOID)
EFI_STATUS | EnrollImageSignatureToSigDB (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private, IN CHAR16 *VariableName)
EFI_STATUS | EnrollSignatureDatabase (IN SECUREBOOT_CONFIG_PRIVATE_DATA *Private, IN CHAR16 *VariableName)
EFI_STATUS | UpdateDeletePage (IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData, IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT16 LabelNumber, IN EFI_FORM_ID FormId, IN EFI_QUESTION_ID QuestionIdBase)
EFI_STATUS | DeleteKeyExchangeKey (IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData, IN EFI_QUESTION_ID QuestionId)
EFI_STATUS | DeleteSignature (IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData, IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT16 LabelNumber, IN EFI_FORM_ID FormId, IN EFI_QUESTION_ID QuestionIdBase, IN UINTN DeleteIndex)
VOID | SecureBootExtractConfigFromVariable (IN OUT SECUREBOOT_CONFIGURATION *ConfigData)
EFI_STATUS EFIAPI | SecureBootExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | SecureBootRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS EFIAPI | SecureBootCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS | InstallSecureBootConfigForm (IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData)
VOID | UninstallSecureBootConfigForm (IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData)

Variables

CHAR16 | mSecureBootStorageName [] = L"SECUREBOOT_CONFIGURATION"
SECUREBOOT_CONFIG_PRIVATE_DATA mSecureBootConfigPrivateDateTemplate
HII_VENDOR_DEVICE_PATH mSecureBootHiiVendorDevicePath
UINT8 | mHashOidValue []
HASH_TABLE mHash []
UINT32 | mPeCoffHeaderOffset = 0
WIN_CERTIFICATE * | mCertificate = NULL
IMAGE_TYPE mImageType
UINT8 * | mImageBase = NULL
UINTN | mImageSize = 0
UINT8 | mImageDigest [MAX_DIGEST_SIZE]
UINTN | mImageDigestSize
EFI_GUID | mCertType
EFI_IMAGE_SECURITY_DATA_DIRECTORY * | mSecDataDir = NULL
EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION | mNtHeader
CHAR16 * | mDerEncodedSuffix []
CHAR16 * | mSupportX509Suffix = L"*.cer/der/crt"

Detailed Description

HII Config Access protocol implementation of SecureBoot configuration module.

Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

EFI_STATUS CreatePkX509SignatureList | ( | IN EFI_FILE_HANDLE | X509File,
 |  | OUT EFI_SIGNATURE_LIST ** | PkCert
 | ) |  |

Generate the PK signature list from the X509 Certificate storing file (.cer)

Parameters:
[in] | X509File | FileHandle of X509 Certificate storing file.
[out] | PkCert | Point to the data buffer to store the signature list.
Returns:
EFI_UNSUPPORTED Unsupported Key Length.

EFI_OUT_OF_RESOURCES There are not enough memory resourses to form the signature list.

References ReadFileContent().

Referenced by EnrollPlatformKey().

EFI_STATUS CreateTimeBasedPayload | ( | IN OUT UINTN * | DataSize,
 |  | IN OUT UINT8 ** | Data
 | ) |  |

Create a time based data payload by concatenating the EFI_VARIABLE_AUTHENTICATION_2 descriptor with the input data. NO authentication is required in this function.

Parameters:
[in,out] | DataSize | On input, the size of Data buffer in bytes. On output, the size of data returned in Data buffer in bytes.
[in,out] | Data | On input, Pointer to data buffer to be wrapped or pointer to NULL to wrap an empty payload. On output, Pointer to the new payload date buffer allocated from pool, it's caller's responsibility to free the memory when finish using it.
Return values:
EFI_SUCCESS | Create time based payload successfully.
EFI_OUT_OF_RESOURCES | There are not enough memory resourses to create time based payload.
EFI_INVALID_PARAMETER | The parameter is invalid.
Others | Unexpected error happens.

Referenced by DeleteKeyExchangeKey(), DeleteSignature(), DeleteVariable(), EnrollImageSignatureToSigDB(), EnrollPlatformKey(), EnrollRsa2048ToKek(), EnrollX509ToKek(), and EnrollX509toSigDB().

EFI_STATUS DeleteKeyExchangeKey | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData,
 |  | IN EFI_QUESTION_ID | QuestionId
 | ) |  |

Delete a KEK entry from KEK database.

Parameters:
[in] | PrivateData | Module's private data.
[in] | QuestionId | Question id of the KEK item to delete.
Return values:
EFI_SUCCESS | Delete kek item successfully.
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CreateTimeBasedPayload(), CUSTOM_SECURE_BOOT_MODE, FORMID_DELETE_KEK_FORM, LABEL_KEK_DELETE, OPTION_DEL_KEK_QUESTION_ID, SetSecureBootMode(), TRUE, and UpdateDeletePage().

Referenced by SecureBootCallback().

EFI_STATUS DeletePlatformKey ( VOID )

Remove the PK variable.

Return values:
EFI_SUCCESS | Delete PK successfully.
Others | Could not allow to delete PK.

References CUSTOM_SECURE_BOOT_MODE, DeleteVariable(), and SetSecureBootMode().

Referenced by SecureBootCallback().

EFI_STATUS DeleteSignature | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData,
 |  | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT16 | LabelNumber,
 |  | IN EFI_FORM_ID | FormId,
 |  | IN EFI_QUESTION_ID | QuestionIdBase,
 |  | IN UINTN | DeleteIndex
 | ) |  |

Delete a signature entry from siganture database.

Parameters:
[in] | PrivateData | Module's private data.
[in] | VariableName | The variable name of the vendor's signature database.
[in] | VendorGuid | A unique identifier for the vendor.
[in] | LabelNumber | Label number to insert opcodes.
[in] | FormId | Form ID of current page.
[in] | QuestionIdBase | Base question id of the signature list.
[in] | DeleteIndex | Signature index to delete.
Return values:
EFI_SUCCESS | Delete siganture successfully.
EFI_NOT_FOUND | Can't find the signature item,
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CreateTimeBasedPayload(), CUSTOM_SECURE_BOOT_MODE, SetSecureBootMode(), TRUE, and UpdateDeletePage().

Referenced by SecureBootCallback().

EFI_STATUS DeleteVariable | ( | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid
 | ) |  |

Internal helper function to delete a Variable given its name and GUID, NO authentication required.

Parameters:
[in] | VariableName | Name of the Variable.
[in] | VendorGuid | GUID of the Variable.
Return values:
EFI_SUCCESS | Variable deleted successfully.
Others | The driver failed to start the device.

References CreateTimeBasedPayload().

EFI_STATUS EnrollImageSignatureToSigDB | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | Private,
 |  | IN CHAR16 * | VariableName
 | ) |  |

Enroll a new executable's signature into Signature Database.

Parameters:
[in] | PrivateData | The module's private data.
[in] | VariableName | Variable name of signature database, must be EFI_IMAGE_SECURITY_DATABASE or EFI_IMAGE_SECURITY_DATABASE1.
Return values:
EFI_SUCCESS | New signature is enrolled successfully.
EFI_INVALID_PARAMETER | The parameter is invalid.
EFI_UNSUPPORTED | Unsupported command.
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CloseFile(), CreateTimeBasedPayload(), HASHALG_SHA256, HashPeImage(), HashPeImageByType(), LoadPeImage(), EFI_IMAGE_SECURITY_DATA_DIRECTORY::Offset, ReadFileContent(), and EFI_IMAGE_SECURITY_DATA_DIRECTORY::SizeOfCert.

Referenced by EnrollSignatureDatabase().

EFI_STATUS EnrollKeyExchangeKey ( IN SECUREBOOT_CONFIG_PRIVATE_DATA * Private )

Enroll new KEK into the System without PK's authentication. The SignatureOwner GUID will be Private->SignatureGUID.

Parameters:
[in] PrivateData The module's private data.
Return values:
EFI_SUCCESS | New KEK enrolled successful.
EFI_INVALID_PARAMETER | The parameter is invalid.
others | Fail to enroll KEK data.

References CUSTOM_SECURE_BOOT_MODE, EnrollRsa2048ToKek(), EnrollX509ToKek(), IsDerEncodeCertificate(), and SetSecureBootMode().

Referenced by SecureBootCallback().

EFI_STATUS EnrollPlatformKey ( IN SECUREBOOT_CONFIG_PRIVATE_DATA * Private )

Enroll new PK into the System without original PK's authentication.

The SignatureOwner GUID will be the same with PK's vendorguid.

Parameters:
[in] PrivateData The module's private data.
Return values:
EFI_SUCCESS | New PK enrolled successfully.
EFI_INVALID_PARAMETER | The parameter is invalid.
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CloseFile(), CreatePkX509SignatureList(), CreateTimeBasedPayload(), CUSTOM_SECURE_BOOT_MODE, IsDerEncodeCertificate(), and SetSecureBootMode().

Referenced by SecureBootCallback().

EFI_STATUS EnrollRsa2048ToKek ( IN SECUREBOOT_CONFIG_PRIVATE_DATA * Private )

Enroll a new KEK item from public key storing file (*.pbk).

Parameters:
[in] PrivateData The module's private data.
Return values:
EFI_SUCCESS | New KEK enrolled successfully.
EFI_INVALID_PARAMETER | The parameter is invalid.
EFI_UNSUPPORTED | Unsupported command.
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CloseFile(), CreateTimeBasedPayload(), Int2OctStr(), _CPL_KEY_INFO::KeyLengthInBits, ReadFileContent(), and WIN_CERT_UEFI_RSA2048_SIZE.

Referenced by EnrollKeyExchangeKey().

EFI_STATUS EnrollSignatureDatabase | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | Private,
 |  | IN CHAR16 * | VariableName
 | ) |  |

Enroll signature into DB/DBX without KEK's authentication. The SignatureOwner GUID will be Private->SignatureGUID.

Parameters:
[in] | PrivateData | The module's private data.
[in] | VariableName | Variable name of signature database, must be EFI_IMAGE_SECURITY_DATABASE or EFI_IMAGE_SECURITY_DATABASE1.
Return values:
EFI_SUCCESS | New signature enrolled successfully.
EFI_INVALID_PARAMETER | The parameter is invalid.
others | Fail to enroll signature data.

References CUSTOM_SECURE_BOOT_MODE, EnrollImageSignatureToSigDB(), EnrollX509toSigDB(), IsDerEncodeCertificate(), and SetSecureBootMode().

Referenced by SecureBootCallback().

EFI_STATUS EnrollX509ToKek ( IN SECUREBOOT_CONFIG_PRIVATE_DATA * Private )

Enroll a new KEK item from X509 certificate file.

Parameters:
[in] PrivateData The module's private data.
Return values:
EFI_SUCCESS | New X509 is enrolled successfully.
EFI_INVALID_PARAMETER | The parameter is invalid.
EFI_UNSUPPORTED | Unsupported command.
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CloseFile(), CreateTimeBasedPayload(), and ReadFileContent().

Referenced by EnrollKeyExchangeKey().

EFI_STATUS EnrollX509toSigDB | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | Private,
 |  | IN CHAR16 * | VariableName
 | ) |  |

Enroll a new X509 certificate into Signature Database (DB or DBX) without KEK's authentication.

Parameters:
[in] | PrivateData | The module's private data.
[in] | VariableName | Variable name of signature database, must be EFI_IMAGE_SECURITY_DATABASE or EFI_IMAGE_SECURITY_DATABASE1.
Return values:
EFI_SUCCESS | New X509 is enrolled successfully.
EFI_OUT_OF_RESOURCES | Could not allocate needed resources.

References CloseFile(), CreateTimeBasedPayload(), and ReadFileContent().

Referenced by EnrollSignatureDatabase().

BOOLEAN HashPeImage ( IN UINT32 HashAlg )

Calculate hash of Pe/Coff image based on the authenticode image hashing in PE/COFF Specification 8.0 Appendix A

Parameters:
[in] HashAlg Hash algorithm type.
Return values:
TRUE | Successfully hash image.
FALSE | Fail in hash image.

References HASH_TABLE::GetContextSize, HASHALG_SHA1, HASHALG_SHA256, HASH_TABLE::HashFinal, HASH_TABLE::HashInit, HASH_TABLE::HashUpdate, MAX_DIGEST_SIZE, SHA1_DIGEST_SIZE, and SHA256_DIGEST_SIZE.

EFI_STATUS HashPeImageByType ( VOID )

Recognize the Hash algorithm in PE/COFF Authenticode and caculate hash of Pe/Coff image based on the authenticated image hashing in PE/COFF Specification 8.0 Appendix A

Return values:
EFI_UNSUPPORTED | Hash algorithm is not supported.
EFI_SUCCESS | Hash successfully.

References WIN_CERTIFICATE_EFI_PKCS::CertData, HASHALG_MAX, HashPeImage(), EFI_IMAGE_SECURITY_DATA_DIRECTORY::Offset, HASH_TABLE::OidLength, HASH_TABLE::OidValue, and TWO_BYTE_ENCODE.

EFI_STATUS InstallSecureBootConfigForm ( IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA * PrivateData )

This function publish the SecureBoot configuration Form.

Parameters:
[in,out] PrivateData Points to SecureBoot configuration private data.
Return values:
EFI_SUCCESS | HII Form is installed successfully.
EFI_OUT_OF_RESOURCES | Not enough resource for HII Form installation.
Others | Other errors as indicated.

References DirectoryMenu, FileExplorerDisplayUnknown, FileExplorerStateInActive, FsOptionMenu, gSecureBootConfigFormSetGuid, SECUREBOOT_MENU_OPTION::Head, LABEL_END, mEndLabel, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, SecureBootConfigBin, SecureBootConfigDxeStrings, and UninstallSecureBootConfigForm().

Referenced by SecureBootConfigDriverEntryPoint().

BOOLEAN IsDerEncodeCertificate ( IN CONST CHAR16 * FileSuffix )

This code checks if the FileSuffix is one of the possible DER-encoded certificate suffix.

Parameters:
[in] FileSuffix The suffix of the input certificate file
Return values:
TRUE | It's a DER-encoded certificate.
FALSE | It's NOT a DER-encoded certificate.

References TRUE.

Referenced by EnrollKeyExchangeKey(), EnrollPlatformKey(), and EnrollSignatureDatabase().

EFI_STATUS LoadPeImage ( VOID )

Load PE/COFF image information into internal buffer and check its validity.

Return values:
EFI_SUCCESS | Successful
EFI_UNSUPPORTED | Invalid PE/COFF file
EFI_ABORTED | Serious error occurs, like file I/O error etc.

References ImageType_IA32, and ImageType_X64.

Referenced by EnrollImageSignatureToSigDB().

EFI_STATUS SaveSecureBootVariable ( IN UINT8 VarValue )

Set Secure Boot option into variable space.

Parameters:
[in] VarValue The option of Secure Boot.
Return values:
EFI_SUCCESS | The operation is finished successfully.
Others | Other errors as indicated.

References EFI_SECURE_BOOT_ENABLE_NAME, and gEfiSecureBootEnableDisableGuid.

Referenced by SecureBootCallback().

EFI_STATUS EFIAPI SecureBootCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function is called to provide results data to the driver.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Action | Specifies the type of action taken by the browser.
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in] | Type | The type of value for the question.
[in] | Value | A pointer to the data being sent to the original exporting driver.
[out] | ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved.
EFI_UNSUPPORTED | The specified Action is not supported by the callback.

References CleanUpPage(), CloseFile(), CUSTOM_SECURE_BOOT_MODE, DeleteKeyExchangeKey(), DeletePlatformKey(), DeleteSignature(), DirectoryMenu, EFI_CUSTOM_MODE_NAME, EFI_SECURE_BOOT_ENABLE_NAME, EnrollKeyExchangeKey(), EnrollPlatformKey(), EnrollSignatureDatabase(), SECUREBOOT_CONFIG_PRIVATE_DATA::FeCurrentState, SECUREBOOT_CONFIG_PRIVATE_DATA::FeDisplayContext, SECUREBOOT_FILE_CONTEXT::FHandle, FILE_OPTION_OFFSET, SECUREBOOT_CONFIG_PRIVATE_DATA::FileContext, FileExplorerDisplayUnknown, FileExplorerStateEnrollKekFile, FileExplorerStateEnrollPkFile, FileExplorerStateEnrollSignatureFileToDb, FileExplorerStateEnrollSignatureFileToDbx, SECUREBOOT_FILE_CONTEXT::FileName, FORM_FILE_EXPLORER_ID, FORMID_DELETE_KEK_FORM, FORMID_ENROLL_KEK_FORM, FreeMenu(), FsOptionMenu, gEfiCustomModeEnableGuid, gEfiSecureBootEnableDisableGuid, KEY_DELETE_KEK, KEY_SECURE_BOOT_DB_OPTION, KEY_SECURE_BOOT_DBX_OPTION, KEY_SECURE_BOOT_DELETE_PK, KEY_SECURE_BOOT_ENABLE, KEY_SECURE_BOOT_KEK_GUID, KEY_SECURE_BOOT_KEK_OPTION, KEY_SECURE_BOOT_MODE, KEY_SECURE_BOOT_OPTION, KEY_SECURE_BOOT_SIGNATURE_GUID_DB, KEY_SECURE_BOOT_SIGNATURE_GUID_DBX, KEY_VALUE_NO_SAVE_AND_EXIT_DB, KEY_VALUE_NO_SAVE_AND_EXIT_DBX, KEY_VALUE_NO_SAVE_AND_EXIT_KEK, KEY_VALUE_NO_SAVE_AND_EXIT_PK, KEY_VALUE_SAVE_AND_EXIT_DB, KEY_VALUE_SAVE_AND_EXIT_DBX, KEY_VALUE_SAVE_AND_EXIT_KEK, KEY_VALUE_SAVE_AND_EXIT_PK, LABEL_DB_DELETE, LABEL_DBX_DELETE, LABEL_KEK_DELETE, OPTION_CONFIG_RANGE, OPTION_DEL_DB_QUESTION_ID, OPTION_DEL_DBX_QUESTION_ID, OPTION_DEL_KEK_QUESTION_ID, SaveSecureBootVariable(), SECUREBOOT_ADD_PK_FILE_FORM_ID, SECUREBOOT_CONFIG_PRIVATE_FROM_THIS, SECUREBOOT_DELETE_SIGNATURE_FROM_DB, SECUREBOOT_DELETE_SIGNATURE_FROM_DBX, SECUREBOOT_ENROLL_SIGNATURE_TO_DB, SECUREBOOT_ENROLL_SIGNATURE_TO_DBX, SecureBootMode, SetSecureBootMode(), SECUREBOOT_CONFIG_PRIVATE_DATA::SignatureGUID, STANDARD_SECURE_BOOT_MODE, StringToGuid(), TRUE, UpdateDeletePage(), and UpdateFileExplorer().

EFI_STATUS EFIAPI SecureBootExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Request | A null-terminated Unicode string in <ConfigRequest> format.
[out] | Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
[out] | Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References SECUREBOOT_CONFIG_PRIVATE_DATA::DriverHandle, gSecureBootConfigFormSetGuid, SECUREBOOT_CONFIG_PRIVATE_DATA::HiiHandle, mSecureBootStorageName, SECUREBOOT_CONFIG_PRIVATE_FROM_THIS, SecureBootExtractConfigFromVariable(), and TRUE.

VOID SecureBootExtractConfigFromVariable ( IN OUT SECUREBOOT_CONFIGURATION * ConfigData )

This function extracts configuration from variable.

Parameters:
[in,out] ConfigData Point to SecureBoot configuration private data.

References SECUREBOOT_CONFIGURATION::AttemptSecureBoot, EFI_CUSTOM_MODE_NAME, EFI_SECURE_BOOT_ENABLE_NAME, gEfiCustomModeEnableGuid, gEfiSecureBootEnableDisableGuid, SECURE_BOOT_ENABLE, SecureBootMode, STANDARD_SECURE_BOOT_MODE, TRUE, and UserPhysicalPresent().

Referenced by SecureBootExtractConfig().

EFI_STATUS EFIAPI SecureBootRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Configuration | A null-terminated Unicode string in <ConfigResp> format.
[out] | Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References gSecureBootConfigFormSetGuid, and mSecureBootStorageName.

EFI_STATUS SetSecureBootMode ( IN UINT8 SecureBootMode )

Set the platform secure boot mode into "Custom" or "Standard" mode.

Parameters:
[in] SecureBootMode New secure boot mode: STANDARD_SECURE_BOOT_MODE or CUSTOM_SECURE_BOOT_MODE.
Returns:
EFI_SUCCESS The platform has switched to the special mode successfully.

other Fail to operate the secure boot mode.

References EFI_CUSTOM_MODE_NAME, and gEfiCustomModeEnableGuid.

Referenced by DeleteKeyExchangeKey(), DeletePlatformKey(), DeleteSignature(), EnrollKeyExchangeKey(), EnrollPlatformKey(), EnrollSignatureDatabase(), and SecureBootCallback().

VOID UninstallSecureBootConfigForm ( IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA * PrivateData )

This function removes SecureBoot configuration Form.

Parameters:
[in,out] PrivateData Points to SecureBoot configuration private data.

References DirectoryMenu, FreeMenu(), FsOptionMenu, mEndOpCodeHandle, and mStartOpCodeHandle.

Referenced by InstallSecureBootConfigForm(), SecureBootConfigDriverEntryPoint(), and SecureBootConfigDriverUnload().

EFI_STATUS UpdateDeletePage | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData,
 |  | IN CHAR16 * | VariableName,
 |  | IN EFI_GUID * | VendorGuid,
 |  | IN UINT16 | LabelNumber,
 |  | IN EFI_FORM_ID | FormId,
 |  | IN EFI_QUESTION_ID | QuestionIdBase
 | ) |  |

List all signatures in specified signature database (e.g. KEK/DB/DBX) by GUID in the page for user to select and delete as needed.

Parameters:
[in] | PrivateData | Module's private data.
[in] | VariableName | The variable name of the vendor's signature database.
[in] | VendorGuid | A unique identifier for the vendor.
[in] | LabelNumber | Label number to insert opcodes.
[in] | FormId | Form ID of current page.
[in] | QuestionIdBase | Base question id of the signature list.
Return values:
EFI_SUCCESS | Success to update the signature list page
EFI_OUT_OF_RESOURCES | Unable to allocate required resources.

References gSecureBootConfigFormSetGuid, GuidToString(), and LABEL_END.

Referenced by DeleteKeyExchangeKey(), DeleteSignature(), and SecureBootCallback().

Variable Documentation

WIN_CERTIFICATE* mCertificate = NULL

EFI_GUID mCertType

CHAR16* mDerEncodedSuffix[]

Initial value:

 {
  L".cer",
  L".der",
  L".crt",
  NULL
}

HASH_TABLE mHash[]

Initial value:

 {
  { L"SHA1",   20, &mHashOidValue[8],  5, Sha1GetContextSize,  Sha1Init,   Sha1Update,    Sha1Final  },
  { L"SHA224", 28, &mHashOidValue[13], 9, NULL,                NULL,       NULL,          NULL       },
  { L"SHA256", 32, &mHashOidValue[22], 9, Sha256GetContextSize,Sha256Init, Sha256Update,  Sha256Final},
  { L"SHA384", 48, &mHashOidValue[31], 9, NULL,                NULL,       NULL,          NULL       },
  { L"SHA512", 64, &mHashOidValue[40], 9, NULL,                NULL,       NULL,          NULL       }
}

UINT8 mHashOidValue[]

Initial value:

 {
  0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x02, 0x05,
  0x2B, 0x0E, 0x03, 0x02, 0x1A,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02,
  0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03,
  }

UINT8* mImageBase = NULL

UINT8 mImageDigest[MAX_DIGEST_SIZE]

UINTN mImageDigestSize

UINTN mImageSize = 0

IMAGE_TYPE mImageType

EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION mNtHeader

UINT32 mPeCoffHeaderOffset = 0

EFI_IMAGE_SECURITY_DATA_DIRECTORY* mSecDataDir = NULL

SECUREBOOT_CONFIG_PRIVATE_DATA mSecureBootConfigPrivateDateTemplate

Initial value:

 {
  SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE,
  {
    SecureBootExtractConfig,
    SecureBootRouteConfig,
    SecureBootCallback
  }
}

Referenced by SecureBootConfigDriverEntryPoint().

HII_VENDOR_DEVICE_PATH mSecureBootHiiVendorDevicePath

Initial value:

 {
  {
    {
      HARDWARE_DEVICE_PATH,
      HW_VENDOR_DP,
      {
        (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
        (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
      }
    },
    SECUREBOOT_CONFIG_FORM_SET_GUID
  },
  {
    END_DEVICE_PATH_TYPE,
    END_ENTIRE_DEVICE_PATH_SUBTYPE,
    {
      (UINT8) (END_DEVICE_PATH_LENGTH),
      (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
    }
  }
}

CHAR16 mSecureBootStorageName[] = L"SECUREBOOT_CONFIGURATION"

Referenced by SecureBootExtractConfig(), and SecureBootRouteConfig().

CHAR16* mSupportX509Suffix = L"*.cer/der/crt"


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h File Reference

Data Structures

struct | VENDOR_DEVICE_PATH_WITH_DATA
struct | ISCSI_DEVICE_PATH_WITH_NAME
struct | POOL_PRINT
struct | DEVICE_PATH_STRING_TABLE
struct | SECUREBOOT_MENU_OPTION
struct | SECUREBOOT_MENU_ENTRY
struct | SECUREBOOT_FILE_CONTEXT
struct | EFI_IMAGE_SECURITY_DATA_DIRECTORY
struct | HII_VENDOR_DEVICE_PATH
struct | SECUREBOOT_CONFIG_PRIVATE_DATA
struct | _CPL_KEY_INFO
struct | HASH_TABLE
struct | WIN_CERTIFICATE_EFI_PKCS

Defines

#define | MAX_CHAR 480
#define | TWO_BYTE_ENCODE 0x82
#define | SHA1_DIGEST_SIZE 20
#define | SHA256_DIGEST_SIZE 32
#define | MAX_DIGEST_SIZE SHA256_DIGEST_SIZE
#define | WIN_CERT_UEFI_RSA2048_SIZE 256
#define | HASHALG_SHA1 0x00000000
#define | HASHALG_SHA224 0x00000001
#define | HASHALG_SHA256 0x00000002
#define | HASHALG_SHA384 0x00000003
#define | HASHALG_SHA512 0x00000004
#define | HASHALG_MAX 0x00000005
#define | SECUREBOOT_MENU_OPTION_SIGNATURE SIGNATURE_32 ('S', 'b', 'M', 'u')
#define | SECUREBOOT_MENU_ENTRY_SIGNATURE SIGNATURE_32 ('S', 'b', 'M', 'r')
#define | SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('S', 'E', 'C', 'B')
#define | SECUREBOOT_CONFIG_PRIVATE_FROM_THIS(a) CR (a, SECUREBOOT_CONFIG_PRIVATE_DATA, ConfigAccess, SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE)

Typedefs

typedef enum
_FILE_EXPLORER_DISPLAY_CONTEXT 		FILE_EXPLORER_DISPLAY_CONTEXT
typedef enum _FILE_EXPLORER_STATE | FILE_EXPLORER_STATE
typedef VOID(* | DEV_PATH_FUNCTION )(IN OUT POOL_PRINT *Str, IN VOID *DevPath)
typedef struct _CPL_KEY_INFO | CPL_KEY_INFO
typedef EFI_STATUS(EFIAPI * | HASH_GET_CONTEXT_SIZE )(VOID)
typedef BOOLEAN(EFIAPI * | HASH_INIT )(IN OUT VOID *HashContext)
typedef BOOLEAN(EFIAPI * | HASH_UPDATE )(IN OUT VOID *HashContext, IN CONST VOID *Data, IN UINTN DataLength)
typedef BOOLEAN(EFIAPI * | HASH_FINAL )(IN OUT VOID *HashContext, OUT UINT8 *HashValue)

Enumerations

enum | _FILE_EXPLORER_DISPLAY_CONTEXT { FileExplorerDisplayFileSystem, FileExplorerDisplayDirectory, FileExplorerDisplayUnknown }
enum _FILE_EXPLORER_STATE {
FileExplorerStateInActive = 0, FileExplorerStateEnrollPkFile, FileExplorerStateEnrollKekFile, FileExplorerStateEnrollSignatureFileToDb,
FileExplorerStateEnrollSignatureFileToDbx, FileExplorerStateUnknown
}
enum | IMAGE_TYPE { ImageType_IA32, ImageType_X64 }

Functions

EFI_STATUS | InstallSecureBootConfigForm (IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData)
VOID | UninstallSecureBootConfigForm (IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData)
EFI_STATUS EFIAPI | SecureBootExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS EFIAPI | SecureBootRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
EFI_STATUS EFIAPI | SecureBootCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
CHAR16 *EFIAPI | DevicePathToStr (IN EFI_DEVICE_PATH_PROTOCOL *DevPath)
VOID | CleanUpPage (IN UINT16 LabelId, IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData)
BOOLEAN | UpdateFileExplorer (IN SECUREBOOT_CONFIG_PRIVATE_DATA *PrivateData, IN UINT16 KeyValue)
VOID | FreeMenu (IN OUT SECUREBOOT_MENU_OPTION *MenuOption)
EFI_STATUS | ReadFileContent (IN EFI_FILE_HANDLE FileHandle, IN OUT VOID **BufferPtr, OUT UINTN *FileSize, IN UINTN AddtionAllocateSize)
VOID | CloseFile (IN EFI_FILE_HANDLE FileHandle)
EFI_STATUS EFIAPI | Int2OctStr (IN CONST UINTN *Integer, IN UINTN IntSizeInWords, OUT UINT8 *OctetString, IN UINTN OSSizeInBytes)
EFI_STATUS | StringToGuid (IN CHAR16 *Str, IN UINTN StrLen, OUT EFI_GUID *Guid)
UINTN | GuidToString (IN EFI_GUID *Guid, IN CHAR16 *Buffer, IN UINTN BufferSize)

Variables

UINT8 | SecureBootConfigBin []
UINT8 | SecureBootConfigDxeStrings []
VOID * | mStartOpCodeHandle
VOID * | mEndOpCodeHandle
EFI_IFR_GUID_LABEL * | mStartLabel
EFI_IFR_GUID_LABEL * | mEndLabel
SECUREBOOT_MENU_OPTION FsOptionMenu
SECUREBOOT_MENU_OPTION DirectoryMenu
SECUREBOOT_CONFIG_PRIVATE_DATA mSecureBootConfigPrivateDateTemplate

Detailed Description

The header file of HII Config Access protocol implementation of SecureBoot configuration module.

Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define HASHALG_MAX 0x00000005

#define HASHALG_SHA1 0x00000000

#define HASHALG_SHA224 0x00000001

#define HASHALG_SHA256 0x00000002

#define HASHALG_SHA384 0x00000003

#define HASHALG_SHA512 0x00000004

#define MAX_CHAR 480

Referenced by CatPrint(), and FindFileSystem().

#define MAX_DIGEST_SIZE SHA256_DIGEST_SIZE

#define SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('S', 'E', 'C', 'B')

Referenced by SecureBootConfigDriverUnload().

#define SECUREBOOT_CONFIG_PRIVATE_FROM_THIS ( a ) CR (a, SECUREBOOT_CONFIG_PRIVATE_DATA, ConfigAccess, SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE)

Referenced by SecureBootCallback(), and SecureBootExtractConfig().

#define SECUREBOOT_MENU_ENTRY_SIGNATURE SIGNATURE_32 ('S', 'b', 'M', 'r')

Referenced by CreateMenuEntry(), FreeMenu(), and GetMenuEntry().

#define SECUREBOOT_MENU_OPTION_SIGNATURE SIGNATURE_32 ('S', 'b', 'M', 'u')

#define SHA1_DIGEST_SIZE 20

Referenced by HashPeImage().

#define SHA256_DIGEST_SIZE 32

Referenced by HashPeImage(), VerifyCounterBasedPayload(), and VerifyDataPayload().

#define TWO_BYTE_ENCODE 0x82

#define WIN_CERT_UEFI_RSA2048_SIZE 256

Referenced by EnrollRsa2048ToKek().

Typedef Documentation

typedef struct _CPL_KEY_INFO CPL_KEY_INFO

typedef VOID(* DEV_PATH_FUNCTION)(IN OUT POOL_PRINT *Str, IN VOID *DevPath)

typedef enum _FILE_EXPLORER_DISPLAY_CONTEXT FILE_EXPLORER_DISPLAY_CONTEXT

typedef enum _FILE_EXPLORER_STATE FILE_EXPLORER_STATE

typedef BOOLEAN(EFIAPI * HASH_FINAL)(IN OUT VOID *HashContext, OUT UINT8 *HashValue)

Completes hash computation and retrieves the digest value into the specified memory. After this function has been called, the context cannot be used again.

If HashContext is NULL, then ASSERT(). If HashValue is NULL, then ASSERT().

Parameters:
[in,out] | HashContext | Pointer to the MD5 context
[out] | HashValue | Pointer to a buffer that receives the HASH digest value (16 bytes).
Return values:
TRUE | HASH digest computation succeeded.
FALSE | HASH digest computation failed.

typedef EFI_STATUS(EFIAPI * HASH_GET_CONTEXT_SIZE)(VOID)

Retrieves the size, in bytes, of the context buffer required for hash operations.

Returns:
The size, in bytes, of the context buffer required for hash operations.

typedef BOOLEAN(EFIAPI * HASH_INIT)(IN OUT VOID *HashContext)

Initializes user-supplied memory pointed by HashContext as hash context for subsequent use.

If HashContext is NULL, then ASSERT().

Parameters:
[in,out] HashContext Pointer to Context being initialized.
Return values:
TRUE | HASH context initialization succeeded.
FALSE | HASH context initialization failed.

typedef BOOLEAN(EFIAPI * HASH_UPDATE)(IN OUT VOID *HashContext, IN CONST VOID *Data, IN UINTN DataLength)

Performs digest on a data buffer of the specified length. This function can be called multiple times to compute the digest of long or discontinuous data streams.

If HashContext is NULL, then ASSERT().

Parameters:
[in,out] | HashContext | Pointer to the MD5 context.
[in] | Data | Pointer to the buffer containing the data to be hashed.
[in] | DataLength | Length of Data buffer in bytes.
Return values:
TRUE | HASH data digest succeeded.
FALSE | Invalid HASH context. After HashFinal function has been called, the HASH context cannot be reused.

Enumeration Type Documentation

enum _FILE_EXPLORER_DISPLAY_CONTEXT

Enumerator:
FileExplorerDisplayFileSystem
FileExplorerDisplayDirectory
FileExplorerDisplayUnknown

enum _FILE_EXPLORER_STATE

Enumerator:
FileExplorerStateInActive
FileExplorerStateEnrollPkFile
FileExplorerStateEnrollKekFile
FileExplorerStateEnrollSignatureFileToDb
FileExplorerStateEnrollSignatureFileToDbx
FileExplorerStateUnknown

enum IMAGE_TYPE

Enumerator:
ImageType_IA32
ImageType_X64

Function Documentation

VOID CleanUpPage | ( | IN UINT16 | LabelId,
 |  | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData
 | ) |  |

Clean up the dynamic opcode at label and form specified by both LabelId.

Parameters:
[in] | LabelId | It is both the Form ID and Label ID for opcode deletion.
[in] | PrivateData | Module private data.

References gSecureBootConfigFormSetGuid, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, and RefreshUpdateData().

Referenced by SecureBootCallback().

VOID CloseFile ( IN EFI_FILE_HANDLE FileHandle )

Close an open file handle.

Parameters:
[in] FileHandle The file handle to close.

Referenced by EnrollImageSignatureToSigDB(), EnrollPlatformKey(), EnrollRsa2048ToKek(), EnrollX509ToKek(), EnrollX509toSigDB(), and SecureBootCallback().

CHAR16* EFIAPI DevicePathToStr ( IN EFI_DEVICE_PATH_PROTOCOL * DevPath )

This function converts an input device structure to a Unicode string.

Parameters:
[in] DevPath A pointer to the device path structure.
Returns:
A new allocated Unicode string that represents the device path.

References CatPrint(), DevPathEndInstance(), DevPathNodeUnknown(), DEVICE_PATH_STRING_TABLE::Function, POOL_PRINT::Len, POOL_PRINT::Str, and TRUE.

Referenced by FindFileSystem().

VOID FreeMenu ( IN OUT SECUREBOOT_MENU_OPTION * MenuOption )

Free resources allocated in Allocate Rountine.

Parameters:
[in,out] MenuOption Menu to be freed

References DestroyMenuEntry(), SECUREBOOT_MENU_ENTRY::Link, and SECUREBOOT_MENU_ENTRY_SIGNATURE.

Referenced by SecureBootCallback(), UninstallSecureBootConfigForm(), and UpdateFileExplorer().

UINTN GuidToString | ( | IN EFI_GUID * | Guid,
 |  | IN CHAR16 * | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Worker function that prints an EFI_GUID into specified Buffer.

Parameters:
[in] | Guid | Pointer to GUID to print.
[in] | Buffer | Buffer to print Guid into.
[in] | BufferSize | Size of Buffer.
Return values:
Number of characters printed.

Referenced by UpdateDeletePage().

EFI_STATUS InstallSecureBootConfigForm ( IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA * PrivateData )

This function publish the SecureBoot configuration Form.

Parameters:
[in,out] PrivateData Points to SecureBoot configuration private data.
Return values:
EFI_SUCCESS | HII Form is installed successfully.
EFI_OUT_OF_RESOURCES | Not enough resource for HII Form installation.
Others | Other errors as indicated.

References DirectoryMenu, FileExplorerDisplayUnknown, FileExplorerStateInActive, FsOptionMenu, gSecureBootConfigFormSetGuid, SECUREBOOT_MENU_OPTION::Head, LABEL_END, mEndLabel, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, SecureBootConfigBin, SecureBootConfigDxeStrings, and UninstallSecureBootConfigForm().

Referenced by SecureBootConfigDriverEntryPoint().

EFI_STATUS EFIAPI Int2OctStr | ( | IN CONST UINTN * | Integer,
 |  | IN UINTN | IntSizeInWords,
 |  | OUT UINT8 * | OctetString,
 |  | IN UINTN | OSSizeInBytes
 | ) |  |

Converts a nonnegative integer to an octet string of a specified length.

Parameters:
[in] | Integer | Pointer to the nonnegative integer to be converted
[in] | IntSizeInWords | Length of integer buffer in words
[out] | OctetString | Converted octet string of the specified length
[in] | OSSizeInBytes | Intended length of resulting octet string in bytes
Returns:

Return values:
EFI_SUCCESS | Data conversion successfully
EFI_BUFFER_TOOL_SMALL | Buffer is too small for output string
Convert a nonnegative integer to an octet string of a specified length.

Parameters:
[in] | Integer | Pointer to the nonnegative integer to be converted
[in] | IntSizeInWords | Length of integer buffer in words
[out] | OctetString | Converted octet string of the specified length
[in] | OSSizeInBytes | Intended length of resulting octet string in bytes
Returns:

Return values:
EFI_SUCCESS | Data conversion successfully
EFI_BUFFER_TOOL_SMALL | Buffer is too small for output string

Referenced by EnrollRsa2048ToKek().

EFI_STATUS ReadFileContent | ( | IN EFI_FILE_HANDLE | FileHandle,
 |  | IN OUT VOID ** | BufferPtr,
 |  | OUT UINTN * | FileSize,
 |  | IN UINTN | AddtionAllocateSize
 | ) |  |

Read file content into BufferPtr, the size of the allocate buffer is *FileSize plus AddtionAllocateSize.

Parameters:
[in] | FileHandle | The file to be read.
[in,out] | BufferPtr | Pointers to the pointer of allocated buffer.
[out] | FileSize | Size of input file
[in] | AddtionAllocateSize | Addtion size the buffer need to be allocated. In case the buffer need to contain others besides the file content.
Return values:
EFI_SUCCESS | The file was read into the buffer.
EFI_INVALID_PARAMETER | A parameter was invalid.
EFI_OUT_OF_RESOURCES | A memory allocation failed.
others | Unexpected error.

Referenced by CreatePkX509SignatureList(), EnrollImageSignatureToSigDB(), EnrollRsa2048ToKek(), EnrollX509ToKek(), and EnrollX509toSigDB().

EFI_STATUS EFIAPI SecureBootCallback | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN EFI_BROWSER_ACTION | Action,
 |  | IN EFI_QUESTION_ID | QuestionId,
 |  | IN UINT8 | Type,
 |  | IN EFI_IFR_TYPE_VALUE * | Value,
 |  | OUT EFI_BROWSER_ACTION_REQUEST * | ActionRequest
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Action | Specifies the type of action taken by the browser.
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in] | Type | The type of value for the question.
[in] | Value | A pointer to the data being sent to the original exporting driver.
[out] | ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved.
EFI_UNSUPPORTED | The specified Action is not supported by the callback.
This function is called to provide results data to the driver.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Action | Specifies the type of action taken by the browser.
[in] | QuestionId | A unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
[in] | Type | The type of value for the question.
[in] | Value | A pointer to the data being sent to the original exporting driver.
[out] | ActionRequest | On return, points to the action requested by the callback function.
Return values:
EFI_SUCCESS | The callback successfully handled the action.
EFI_OUT_OF_RESOURCES | Not enough storage is available to hold the variable and its data.
EFI_DEVICE_ERROR | The variable could not be saved.
EFI_UNSUPPORTED | The specified Action is not supported by the callback.

References CleanUpPage(), CloseFile(), CUSTOM_SECURE_BOOT_MODE, DeleteKeyExchangeKey(), DeletePlatformKey(), DeleteSignature(), DirectoryMenu, EFI_CUSTOM_MODE_NAME, EFI_SECURE_BOOT_ENABLE_NAME, EnrollKeyExchangeKey(), EnrollPlatformKey(), EnrollSignatureDatabase(), SECUREBOOT_CONFIG_PRIVATE_DATA::FeCurrentState, SECUREBOOT_CONFIG_PRIVATE_DATA::FeDisplayContext, SECUREBOOT_FILE_CONTEXT::FHandle, FILE_OPTION_OFFSET, SECUREBOOT_CONFIG_PRIVATE_DATA::FileContext, FileExplorerDisplayUnknown, FileExplorerStateEnrollKekFile, FileExplorerStateEnrollPkFile, FileExplorerStateEnrollSignatureFileToDb, FileExplorerStateEnrollSignatureFileToDbx, SECUREBOOT_FILE_CONTEXT::FileName, FORM_FILE_EXPLORER_ID, FORMID_DELETE_KEK_FORM, FORMID_ENROLL_KEK_FORM, FreeMenu(), FsOptionMenu, gEfiCustomModeEnableGuid, gEfiSecureBootEnableDisableGuid, KEY_DELETE_KEK, KEY_SECURE_BOOT_DB_OPTION, KEY_SECURE_BOOT_DBX_OPTION, KEY_SECURE_BOOT_DELETE_PK, KEY_SECURE_BOOT_ENABLE, KEY_SECURE_BOOT_KEK_GUID, KEY_SECURE_BOOT_KEK_OPTION, KEY_SECURE_BOOT_MODE, KEY_SECURE_BOOT_OPTION, KEY_SECURE_BOOT_SIGNATURE_GUID_DB, KEY_SECURE_BOOT_SIGNATURE_GUID_DBX, KEY_VALUE_NO_SAVE_AND_EXIT_DB, KEY_VALUE_NO_SAVE_AND_EXIT_DBX, KEY_VALUE_NO_SAVE_AND_EXIT_KEK, KEY_VALUE_NO_SAVE_AND_EXIT_PK, KEY_VALUE_SAVE_AND_EXIT_DB, KEY_VALUE_SAVE_AND_EXIT_DBX, KEY_VALUE_SAVE_AND_EXIT_KEK, KEY_VALUE_SAVE_AND_EXIT_PK, LABEL_DB_DELETE, LABEL_DBX_DELETE, LABEL_KEK_DELETE, OPTION_CONFIG_RANGE, OPTION_DEL_DB_QUESTION_ID, OPTION_DEL_DBX_QUESTION_ID, OPTION_DEL_KEK_QUESTION_ID, SaveSecureBootVariable(), SECUREBOOT_ADD_PK_FILE_FORM_ID, SECUREBOOT_CONFIG_PRIVATE_FROM_THIS, SECUREBOOT_DELETE_SIGNATURE_FROM_DB, SECUREBOOT_DELETE_SIGNATURE_FROM_DBX, SECUREBOOT_ENROLL_SIGNATURE_TO_DB, SECUREBOOT_ENROLL_SIGNATURE_TO_DBX, SecureBootMode, SetSecureBootMode(), SECUREBOOT_CONFIG_PRIVATE_DATA::SignatureGUID, STANDARD_SECURE_BOOT_MODE, StringToGuid(), TRUE, UpdateDeletePage(), and UpdateFileExplorer().

EFI_STATUS EFIAPI SecureBootExtractConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Request,
 |  | OUT EFI_STRING * | Progress,
 |  | OUT EFI_STRING * | Results
 | ) |  |

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Request | A null-terminated Unicode string in <ConfigRequest> format.
[out] | Progress | On return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
[out] | Results | A null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values:
EFI_SUCCESS | The Results is filled with the requested values.
EFI_OUT_OF_RESOURCES | Not enough memory to store the results.
EFI_INVALID_PARAMETER | Request is illegal syntax, or unknown name.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References SECUREBOOT_CONFIG_PRIVATE_DATA::DriverHandle, gSecureBootConfigFormSetGuid, SECUREBOOT_CONFIG_PRIVATE_DATA::HiiHandle, mSecureBootStorageName, SECUREBOOT_CONFIG_PRIVATE_FROM_THIS, SecureBootExtractConfigFromVariable(), and TRUE.

EFI_STATUS EFIAPI SecureBootRouteConfig | ( | IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL * | This,
 |  | IN CONST EFI_STRING | Configuration,
 |  | OUT EFI_STRING * | Progress
 | ) |  |

This function processes the results of changes in configuration.

Parameters:
[in] | This | Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
[in] | Configuration | A null-terminated Unicode string in <ConfigResp> format.
[out] | Progress | A pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values:
EFI_SUCCESS | The Results is processed successfully.
EFI_INVALID_PARAMETER | Configuration is NULL.
EFI_NOT_FOUND | Routing data doesn't match any storage in this driver.

References gSecureBootConfigFormSetGuid, and mSecureBootStorageName.

EFI_STATUS StringToGuid | ( | IN CHAR16 * | Str,
 |  | IN UINTN | StrLen,
 |  | OUT EFI_GUID * | Guid
 | ) |  |

Convert a String to Guid Value.

Parameters:
[in] | Str | Specifies the String to be converted.
[in] | StrLen | Number of Unicode Characters of String (exclusive )
[out] | Guid | Return the result Guid value.
Return values:
EFI_SUCCESS | The operation is finished successfully.
EFI_NOT_FOUND | Invalid string.

Referenced by SecureBootCallback().

VOID UninstallSecureBootConfigForm ( IN OUT SECUREBOOT_CONFIG_PRIVATE_DATA * PrivateData )

This function removes SecureBoot configuration Form.

Parameters:
[in,out] PrivateData Points to SecureBoot configuration private data.

References DirectoryMenu, FreeMenu(), FsOptionMenu, mEndOpCodeHandle, and mStartOpCodeHandle.

Referenced by InstallSecureBootConfigForm(), SecureBootConfigDriverEntryPoint(), and SecureBootConfigDriverUnload().

BOOLEAN UpdateFileExplorer | ( | IN SECUREBOOT_CONFIG_PRIVATE_DATA * | PrivateData,
 |  | IN UINT16 | KeyValue
 | ) |  |

Update the file explorer page with the refreshed file system.

Parameters:
[in] | PrivateData | Module private data.
[in] | KeyValue | Key value to identify the type of data to expect.
Return values:
TRUE | Inform the caller to create a callback packet to exit file explorer.
FALSE | Indicate that there is no need to exit file explorer.

References CreateMenuStringToken(), DestroyMenuEntry(), SECUREBOOT_FILE_CONTEXT::DevicePath, SECUREBOOT_MENU_ENTRY::DisplayStringToken, FILE_OPTION_MASK, SECUREBOOT_MENU_ENTRY::FileContext, FileExplorerDisplayDirectory, FileExplorerDisplayFileSystem, FileExplorerDisplayUnknown, FileExplorerStateEnrollKekFile, FileExplorerStateEnrollPkFile, FileExplorerStateEnrollSignatureFileToDb, FileExplorerStateEnrollSignatureFileToDbx, SECUREBOOT_FILE_CONTEXT::FileName, FindFiles(), FindFileSystem(), FORMID_ENROLL_KEK_FORM, FreeMenu(), GetMenuEntry(), gSecureBootConfigFormSetGuid, SECUREBOOT_FILE_CONTEXT::IsDir, SECUREBOOT_MENU_ENTRY::Link, mEndOpCodeHandle, mStartLabel, mStartOpCodeHandle, OpenFileByDevicePath(), RefreshUpdateData(), SECUREBOOT_ADD_PK_FILE_FORM_ID, SECUREBOOT_ENROLL_SIGNATURE_TO_DB, SECUREBOOT_ENROLL_SIGNATURE_TO_DBX, TRUE, and UpdateFileExplorePage().

Referenced by SecureBootCallback().

Variable Documentation

SECUREBOOT_MENU_OPTION DirectoryMenu

Files and sub-directories in current directory menu

Referenced by InstallSecureBootConfigForm(), SecureBootCallback(), and UninstallSecureBootConfigForm().

SECUREBOOT_MENU_OPTION FsOptionMenu

File system selection menu

Referenced by InstallSecureBootConfigForm(), SecureBootCallback(), and UninstallSecureBootConfigForm().

EFI_IFR_GUID_LABEL* mEndLabel

Referenced by InstallSecureBootConfigForm().

VOID* mEndOpCodeHandle

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), UninstallSecureBootConfigForm(), UpdateFileExplorePage(), and UpdateFileExplorer().

SECUREBOOT_CONFIG_PRIVATE_DATA mSecureBootConfigPrivateDateTemplate

Referenced by SecureBootConfigDriverEntryPoint().

EFI_IFR_GUID_LABEL* mStartLabel

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), RefreshUpdateData(), UpdateFileExplorePage(), and UpdateFileExplorer().

VOID* mStartOpCodeHandle

Referenced by CleanUpPage(), InstallSecureBootConfigForm(), RefreshUpdateData(), UninstallSecureBootConfigForm(), UpdateFileExplorePage(), and UpdateFileExplorer().

UINT8 SecureBootConfigBin[]

Referenced by InstallSecureBootConfigForm().

UINT8 SecureBootConfigDxeStrings[]

Referenced by InstallSecureBootConfigForm().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c File Reference

Functions

EFI_STATUS | ReadFileContent (IN EFI_FILE_HANDLE FileHandle, IN OUT VOID **BufferPtr, OUT UINTN *FileSize, IN UINTN AddtionAllocateSize)
VOID | CloseFile (IN EFI_FILE_HANDLE FileHandle)
EFI_STATUS EFIAPI | Int2OctStr (IN CONST UINTN *Integer, IN UINTN IntSizeInWords, OUT UINT8 *OctetString, IN UINTN OSSizeInBytes)
EFI_STATUS | StringToGuid (IN CHAR16 *Str, IN UINTN StrLen, OUT EFI_GUID *Guid)
UINTN | GuidToString (IN EFI_GUID *Guid, IN CHAR16 *Buffer, IN UINTN BufferSize)

Detailed Description

Helper functions for SecureBoot configuration module.

Copyright (c) 2012, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Function Documentation

VOID CloseFile ( IN EFI_FILE_HANDLE FileHandle )

Close an open file handle.

Parameters:
[in] FileHandle The file handle to close.

Referenced by EnrollImageSignatureToSigDB(), EnrollPlatformKey(), EnrollRsa2048ToKek(), EnrollX509ToKek(), EnrollX509toSigDB(), and SecureBootCallback().

UINTN GuidToString | ( | IN EFI_GUID * | Guid,
 |  | IN CHAR16 * | Buffer,
 |  | IN UINTN | BufferSize
 | ) |  |

Worker function that prints an EFI_GUID into specified Buffer.

Parameters:
[in] | Guid | Pointer to GUID to print.
[in] | Buffer | Buffer to print Guid into.
[in] | BufferSize | Size of Buffer.
Return values:
Number of characters printed.

Referenced by UpdateDeletePage().

EFI_STATUS EFIAPI Int2OctStr | ( | IN CONST UINTN * | Integer,
 |  | IN UINTN | IntSizeInWords,
 |  | OUT UINT8 * | OctetString,
 |  | IN UINTN | OSSizeInBytes
 | ) |  |

Convert a nonnegative integer to an octet string of a specified length.

Parameters:
[in] | Integer | Pointer to the nonnegative integer to be converted
[in] | IntSizeInWords | Length of integer buffer in words
[out] | OctetString | Converted octet string of the specified length
[in] | OSSizeInBytes | Intended length of resulting octet string in bytes
Returns:

Return values:
EFI_SUCCESS | Data conversion successfully
EFI_BUFFER_TOOL_SMALL | Buffer is too small for output string

Referenced by EnrollRsa2048ToKek().

EFI_STATUS ReadFileContent | ( | IN EFI_FILE_HANDLE | FileHandle,
 |  | IN OUT VOID ** | BufferPtr,
 |  | OUT UINTN * | FileSize,
 |  | IN UINTN | AddtionAllocateSize
 | ) |  |

Read file content into BufferPtr, the size of the allocate buffer is *FileSize plus AddtionAllocateSize.

Parameters:
[in] | FileHandle | The file to be read.
[in,out] | BufferPtr | Pointers to the pointer of allocated buffer.
[out] | FileSize | Size of input file
[in] | AddtionAllocateSize | Addtion size the buffer need to be allocated. In case the buffer need to contain others besides the file content.
Return values:
EFI_SUCCESS | The file was read into the buffer.
EFI_INVALID_PARAMETER | A parameter was invalid.
EFI_OUT_OF_RESOURCES | A memory allocation failed.
others | Unexpected error.

Referenced by CreatePkX509SignatureList(), EnrollImageSignatureToSigDB(), EnrollRsa2048ToKek(), EnrollX509ToKek(), and EnrollX509toSigDB().

EFI_STATUS StringToGuid | ( | IN CHAR16 * | Str,
 |  | IN UINTN | StrLen,
 |  | OUT EFI_GUID * | Guid
 | ) |  |

Convert a String to Guid Value.

Parameters:
[in] | Str | Specifies the String to be converted.
[in] | StrLen | Number of Unicode Characters of String (exclusive )
[out] | Guid | Return the result Guid value.
Return values:
EFI_SUCCESS | The operation is finished successfully.
EFI_NOT_FOUND | Invalid string.

Referenced by SecureBootCallback().


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigNvData.h File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigNvData.h File Reference

Data Structures

struct | SECUREBOOT_CONFIGURATION

Defines

#define | SECUREBOOT_CONFIGURATION_VARSTORE_ID 0x0001
#define | SECUREBOOT_CONFIGURATION_FORM_ID 0x01
#define | FORMID_SECURE_BOOT_OPTION_FORM 0x02
#define | FORMID_SECURE_BOOT_PK_OPTION_FORM 0x03
#define | FORMID_SECURE_BOOT_KEK_OPTION_FORM 0x04
#define | FORMID_SECURE_BOOT_DB_OPTION_FORM 0x05
#define | FORMID_SECURE_BOOT_DBX_OPTION_FORM 0x06
#define | FORMID_ENROLL_PK_FORM 0x07
#define | SECUREBOOT_ADD_PK_FILE_FORM_ID 0x08
#define | FORMID_ENROLL_KEK_FORM 0x09
#define | FORMID_DELETE_KEK_FORM 0x0a
#define | SECUREBOOT_ENROLL_SIGNATURE_TO_DB 0x0b
#define | SECUREBOOT_DELETE_SIGNATURE_FROM_DB 0x0c
#define | SECUREBOOT_ENROLL_SIGNATURE_TO_DBX 0x0d
#define | SECUREBOOT_DELETE_SIGNATURE_FROM_DBX 0x0e
#define | FORM_FILE_EXPLORER_ID 0x0f
#define | FORM_FILE_EXPLORER_ID_PK 0x10
#define | FORM_FILE_EXPLORER_ID_KEK 0x11
#define | FORM_FILE_EXPLORER_ID_DB 0x12
#define | FORM_FILE_EXPLORER_ID_DBX 0x13
#define | SECURE_BOOT_MODE_CUSTOM 0x01
#define | SECURE_BOOT_MODE_STANDARD 0x00
#define | KEY_SECURE_BOOT_ENABLE 0x1000
#define | KEY_SECURE_BOOT_MODE 0x1001
#define | KEY_VALUE_SAVE_AND_EXIT_DB 0x1002
#define | KEY_VALUE_NO_SAVE_AND_EXIT_DB 0x1003
#define | KEY_VALUE_SAVE_AND_EXIT_PK 0x1004
#define | KEY_VALUE_NO_SAVE_AND_EXIT_PK 0x1005
#define | KEY_VALUE_SAVE_AND_EXIT_KEK 0x1008
#define | KEY_VALUE_NO_SAVE_AND_EXIT_KEK 0x1009
#define | KEY_VALUE_SAVE_AND_EXIT_DBX 0x100a
#define | KEY_VALUE_NO_SAVE_AND_EXIT_DBX 0x100b
#define | KEY_SECURE_BOOT_OPTION 0x1100
#define | KEY_SECURE_BOOT_PK_OPTION 0x1101
#define | KEY_SECURE_BOOT_KEK_OPTION 0x1102
#define | KEY_SECURE_BOOT_DB_OPTION 0x1103
#define | KEY_SECURE_BOOT_DBX_OPTION 0x1104
#define | KEY_SECURE_BOOT_DELETE_PK 0x1105
#define | KEY_ENROLL_PK 0x1106
#define | KEY_ENROLL_KEK 0x1107
#define | KEY_DELETE_KEK 0x1108
#define | KEY_SECURE_BOOT_KEK_GUID 0x110a
#define | KEY_SECURE_BOOT_SIGNATURE_GUID_DB 0x110b
#define | KEY_SECURE_BOOT_SIGNATURE_GUID_DBX 0x110c
#define | LABEL_KEK_DELETE 0x1200
#define | LABEL_DB_DELETE 0x1201
#define | LABEL_DBX_DELETE 0x1202
#define | LABEL_END 0xffff
#define | SECURE_BOOT_MAX_ATTEMPTS_NUM 255
#define | CONFIG_OPTION_OFFSET 0x2000
#define | OPTION_CONFIG_QUESTION_ID 0x2000
#define | OPTION_CONFIG_RANGE 0x1000
#define | OPTION_DEL_KEK_QUESTION_ID 0x2000
#define | OPTION_DEL_DB_QUESTION_ID 0x3000
#define | OPTION_DEL_DBX_QUESTION_ID 0x4000
#define | FILE_OPTION_OFFSET 0x8000
#define | FILE_OPTION_MASK 0x7FFF
#define | SECURE_BOOT_GUID_SIZE 36
#define | SECURE_BOOT_GUID_STORAGE_SIZE 37

Detailed Description

Header file for NV data structure definition.

Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Define Documentation

#define CONFIG_OPTION_OFFSET 0x2000

#define FILE_OPTION_MASK 0x7FFF

Referenced by UpdateFileExplorer().

#define FILE_OPTION_OFFSET 0x8000

Referenced by SecureBootCallback(), and UpdateFileExplorePage().

label FORM_FILE_EXPLORER_ID 0x0f

Referenced by SecureBootCallback(), and UpdateFileExplorePage().

#define FORM_FILE_EXPLORER_ID_DB 0x12

Referenced by UpdateFileExplorePage().

#define FORM_FILE_EXPLORER_ID_DBX 0x13

Referenced by UpdateFileExplorePage().

#define FORM_FILE_EXPLORER_ID_KEK 0x11

Referenced by UpdateFileExplorePage().

#define FORM_FILE_EXPLORER_ID_PK 0x10

Referenced by UpdateFileExplorePage().

#define FORMID_DELETE_KEK_FORM 0x0a

Referenced by DeleteKeyExchangeKey(), and SecureBootCallback().

label FORMID_ENROLL_KEK_FORM 0x09

Referenced by SecureBootCallback(), UpdateFileExplorePage(), and UpdateFileExplorer().

#define FORMID_ENROLL_PK_FORM 0x07

#define FORMID_SECURE_BOOT_DB_OPTION_FORM 0x05

#define FORMID_SECURE_BOOT_DBX_OPTION_FORM 0x06

#define FORMID_SECURE_BOOT_KEK_OPTION_FORM 0x04

goto FORMID_SECURE_BOOT_OPTION_FORM 0x02

#define FORMID_SECURE_BOOT_PK_OPTION_FORM 0x03

#define KEY_DELETE_KEK 0x1108

Referenced by SecureBootCallback().

#define KEY_ENROLL_KEK 0x1107

#define KEY_ENROLL_PK 0x1106

#define KEY_SECURE_BOOT_DB_OPTION 0x1103

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_DBX_OPTION 0x1104

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_DELETE_PK 0x1105

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_ENABLE 0x1000

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_KEK_GUID 0x110a

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_KEK_OPTION 0x1102

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_MODE 0x1001

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_OPTION 0x1100

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_PK_OPTION 0x1101

#define KEY_SECURE_BOOT_SIGNATURE_GUID_DB 0x110b

Referenced by SecureBootCallback().

#define KEY_SECURE_BOOT_SIGNATURE_GUID_DBX 0x110c

Referenced by SecureBootCallback().

#define KEY_VALUE_NO_SAVE_AND_EXIT_DB 0x1003

Referenced by SecureBootCallback().

#define KEY_VALUE_NO_SAVE_AND_EXIT_DBX 0x100b

Referenced by SecureBootCallback().

#define KEY_VALUE_NO_SAVE_AND_EXIT_KEK 0x1009

Referenced by SecureBootCallback().

#define KEY_VALUE_NO_SAVE_AND_EXIT_PK 0x1005

Referenced by SecureBootCallback().

#define KEY_VALUE_SAVE_AND_EXIT_DB 0x1002

Referenced by SecureBootCallback().

#define KEY_VALUE_SAVE_AND_EXIT_DBX 0x100a

Referenced by SecureBootCallback().

#define KEY_VALUE_SAVE_AND_EXIT_KEK 0x1008

Referenced by SecureBootCallback().

#define KEY_VALUE_SAVE_AND_EXIT_PK 0x1004

Referenced by SecureBootCallback().

#define LABEL_DB_DELETE 0x1201

Referenced by SecureBootCallback().

#define LABEL_DBX_DELETE 0x1202

Referenced by SecureBootCallback().

#define LABEL_END 0xffff

#define LABEL_KEK_DELETE 0x1200

Referenced by DeleteKeyExchangeKey(), and SecureBootCallback().

#define OPTION_CONFIG_QUESTION_ID 0x2000

#define OPTION_CONFIG_RANGE 0x1000

Referenced by SecureBootCallback().

#define OPTION_DEL_DB_QUESTION_ID 0x3000

Referenced by SecureBootCallback().

#define OPTION_DEL_DBX_QUESTION_ID 0x4000

Referenced by SecureBootCallback().

#define OPTION_DEL_KEK_QUESTION_ID 0x2000

Referenced by DeleteKeyExchangeKey(), and SecureBootCallback().

#define SECURE_BOOT_GUID_SIZE 36

#define SECURE_BOOT_GUID_STORAGE_SIZE 37

#define SECURE_BOOT_MAX_ATTEMPTS_NUM 255

#define SECURE_BOOT_MODE_CUSTOM 0x01

#define SECURE_BOOT_MODE_STANDARD 0x00

#define SECUREBOOT_ADD_PK_FILE_FORM_ID 0x08

Referenced by SecureBootCallback(), UpdateFileExplorePage(), and UpdateFileExplorer().

#define SECUREBOOT_CONFIGURATION_FORM_ID 0x01

#define SECUREBOOT_CONFIGURATION_VARSTORE_ID 0x0001

#define SECUREBOOT_DELETE_SIGNATURE_FROM_DB 0x0c

Referenced by SecureBootCallback().

#define SECUREBOOT_DELETE_SIGNATURE_FROM_DBX 0x0e

Referenced by SecureBootCallback().

label SECUREBOOT_ENROLL_SIGNATURE_TO_DB 0x0b

Referenced by SecureBootCallback(), UpdateFileExplorePage(), and UpdateFileExplorer().

label SECUREBOOT_ENROLL_SIGNATURE_TO_DBX 0x0d

Referenced by SecureBootCallback(), UpdateFileExplorePage(), and UpdateFileExplorer().


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- _ -

  • _FILE_EXPLORER_DISPLAY_CONTEXT : SecureBootConfigImpl.h
  • _FILE_EXPLORER_STATE : SecureBootConfigImpl.h


SecurityPkg[ALL]: Alphabetical List

  • Data Fields

Data Structure Index

A | C | D | E | H | I | M | P | S | T | U | V | W | _

A
ESAL_VARIABLE_GLOBAL PWD_PROVIDER_CALLBACK_INFO TPM_CMD_PHYSICAL_PRESENCE VARIABLE_CACHE_ENTRY
AML_OP_REGION_32_8
H
S
TPM_CMD_SELF_TEST VARIABLE_GLOBAL
AUTH_CERT_DB_DATA HASH_TABLE SECUREBOOT_CONFIG_PRIVATE_DATA TPM_CMD_START_UP VARIABLE_HEADER
C
HII_VENDOR_DEVICE_PATH SECUREBOOT_CONFIGURATION
U
VARIABLE_MODULE_GLOBAL
CREDENTIAL_PROVIDER_INFO
I
SECUREBOOT_FILE_CONTEXT USB_CREDENTIAL_INFO VARIABLE_POINTER_TRACK
CREDENTIAL_TABLE ISCSI_DEVICE_PATH_WITH_NAME SECUREBOOT_MENU_ENTRY USB_INFO VARIABLE_STORE_HEADER
D
M
SECUREBOOT_MENU_OPTION USB_PROVIDER_CALLBACK_INFO VENDOR_DEVICE_PATH_WITH_DATA
DEFERRED_IMAGE_INFO MEASURED_HOB_DATA
T
USER_INFO
W
DEFERRED_IMAGE_TABLE MEMORY_CLEAR_NVS TCG_CONFIG_PRIVATE_DATA USER_INFO_ACCESS WIN_CERTIFICATE_EFI_PKCS
DEVICE_PATH_STRING_TABLE
P
TCG_CONFIGURATION USER_MANAGER_CALLBACK_INFO
_
E
PASSWORD_CREDENTIAL_INFO TCG_NVS USER_PROFILE_DB _CPL_KEY_INFO
EFI_IMAGE_SECURITY_DATA_DIRECTORY PASSWORD_INFO TIS_PC_REGISTERS USER_PROFILE_ENTRY _PEI_LOCK_PHYSICAL_PRESENCE_PPI
EFI_PHYSICAL_PRESENCE PHYSICAL_PRESENCE_NVS TPM_CMD_EXTEND USER_PROFILE_MANAGER_CALLBACK_INFO _VARIABLE_INFO_ENTRY
EFI_SIGNATURE_ITEM POOL_PRINT TPM_CMD_GET_CAPABILITY
V

A | C | D | E | H | I | M | P | S | T | U | V | W | _


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- k -

  • KeyLengthInBits : _CPL_KEY_INFO
  • KeyList : ESAL_VARIABLE_GLOBAL
  • KeyType : _CPL_KEY_INFO


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- l -

  • Lang : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • LangCodes : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • LastPPRequest : EFI_PHYSICAL_PRESENCE
  • LastRequest : PHYSICAL_PRESENCE_NVS
  • LegacyAddress1 : TIS_PC_REGISTERS
  • LegacyAddress1Ex : TIS_PC_REGISTERS
  • LegacyAddress2 : TIS_PC_REGISTERS
  • LegacyAddress2Ex : TIS_PC_REGISTERS
  • Len : POOL_PRINT
  • Link : SECUREBOOT_MENU_ENTRY
  • LoadForbid : USER_INFO_ACCESS
  • LoadForbidLen : USER_INFO_ACCESS
  • LoadPermit : USER_INFO_ACCESS
  • LoadPermitLen : USER_INFO_ACCESS
  • LockPhysicalPresence : _PEI_LOCK_PHYSICAL_PRESENCE_PPI
  • LoginOption : ISCSI_DEVICE_PATH_WITH_NAME
  • Lun : ISCSI_DEVICE_PATH_WITH_NAME


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- m -

  • MaxCount : CREDENTIAL_TABLE
  • Maxlen : POOL_PRINT
  • MaxProfileNum : USER_PROFILE_DB
  • MaxProfileSize : USER_PROFILE_ENTRY
  • MeasuredFvBuf : MEASURED_HOB_DATA
  • MemoryClear : TCG_NVS
  • MenuEntry : SECUREBOOT_CONFIG_PRIVATE_DATA
  • MenuNumber : SECUREBOOT_MENU_OPTION
  • MonotonicCount : VARIABLE_HEADER


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- n -

  • Name : _VARIABLE_INFO_ENTRY , HASH_TABLE , VARIABLE_CACHE_ENTRY
  • NameSize : VARIABLE_HEADER , AUTH_CERT_DB_DATA
  • NameString : AML_OP_REGION_32_8
  • NetworkProtocol : ISCSI_DEVICE_PATH_WITH_NAME
  • NewIdentityPolicy : USER_INFO
  • NewIdentityPolicyLen : USER_INFO
  • NewIdentityPolicyModified : USER_INFO
  • Next : _VARIABLE_INFO_ENTRY
  • NonVolatileLastVariableOffset : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • NonVolatileVariableBase : VARIABLE_GLOBAL
  • Num : MEASURED_HOB_DATA


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- o -

  • Offset : EFI_IMAGE_SECURITY_DATA_DIRECTORY
  • OidLength : HASH_TABLE
  • OidValue : HASH_TABLE
  • OpRegionOp : AML_OP_REGION_32_8
  • OptionNumber : SECUREBOOT_MENU_ENTRY
  • OriginalHideTpm : TCG_CONFIGURATION


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- b -

  • BlockSize : _CPL_KEY_INFO
  • BootOption : DEFERRED_IMAGE_INFO
  • BurstCount : TIS_PC_REGISTERS
  • BytePrefix : AML_OP_REGION_32_8


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- c -

  • CacheCount : _VARIABLE_INFO_ENTRY
  • Capability : TPM_CMD_GET_CAPABILITY
  • CapabilityFlag : TPM_CMD_GET_CAPABILITY
  • CapabilityFlagSize : TPM_CMD_GET_CAPABILITY
  • CertData : WIN_CERTIFICATE_EFI_PKCS
  • CertDataSize : AUTH_CERT_DB_DATA
  • CertNodeSize : AUTH_CERT_DB_DATA
  • CertRsa2048Sha256Guid : ESAL_VARIABLE_GLOBAL
  • CipherBlockSize : _CPL_KEY_INFO
  • CipherMode : _CPL_KEY_INFO
  • CommonVariableTotalSize : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • ConfigAccess : USER_PROFILE_MANAGER_CALLBACK_INFO , SECUREBOOT_CONFIG_PRIVATE_DATA , TCG_CONFIG_PRIVATE_DATA , PWD_PROVIDER_CALLBACK_INFO , USER_MANAGER_CALLBACK_INFO
  • ConnectForbid : USER_INFO_ACCESS
  • ConnectForbidLen : USER_INFO_ACCESS
  • ConnectPermit : USER_INFO_ACCESS
  • ConnectPermitLen : USER_INFO_ACCESS
  • Count : DEFERRED_IMAGE_TABLE , CREDENTIAL_TABLE , PASSWORD_CREDENTIAL_INFO , CREDENTIAL_PROVIDER_INFO , USB_CREDENTIAL_INFO
  • CreateDate : USER_INFO
  • CreateDateExist : USER_INFO
  • CurrPtr : VARIABLE_POINTER_TRACK


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- d -

  • Data : VARIABLE_CACHE_ENTRY
  • DataFifo : TIS_PC_REGISTERS
  • DataSize : VARIABLE_CACHE_ENTRY , VARIABLE_HEADER
  • DeleteCount : _VARIABLE_INFO_ENTRY
  • DeletePk : SECUREBOOT_CONFIGURATION
  • DevicePath : SECUREBOOT_FILE_CONTEXT
  • Did : TIS_PC_REGISTERS
  • DigestLength : HASH_TABLE
  • DisplayString : SECUREBOOT_MENU_ENTRY
  • DisplayStringToken : SECUREBOOT_MENU_ENTRY
  • DriverHandle : USER_MANAGER_CALLBACK_INFO , USB_PROVIDER_CALLBACK_INFO , TCG_CONFIG_PRIVATE_DATA , SECUREBOOT_CONFIG_PRIVATE_DATA , USER_PROFILE_MANAGER_CALLBACK_INFO , PWD_PROVIDER_CALLBACK_INFO
  • DWordPrefix : AML_OP_REGION_32_8


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- e -

  • End : HII_VENDOR_DEVICE_PATH
  • EndPtr : VARIABLE_POINTER_TRACK


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- f -

  • FeCurrentState : SECUREBOOT_CONFIG_PRIVATE_DATA
  • FeDisplayContext : SECUREBOOT_CONFIG_PRIVATE_DATA
  • FHandle : SECUREBOOT_FILE_CONTEXT
  • FileContext : SECUREBOOT_MENU_ENTRY , SECUREBOOT_CONFIG_PRIVATE_DATA
  • FileName : SECUREBOOT_FILE_CONTEXT
  • Flags : _CPL_KEY_INFO , EFI_PHYSICAL_PRESENCE
  • Format : VARIABLE_STORE_HEADER
  • FormBrowser2 : USER_MANAGER_CALLBACK_INFO
  • Function : DEVICE_PATH_STRING_TABLE
  • FvbInstance : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- g -

  • GetContextSize : HASH_TABLE
  • GlobalVariableGuid : ESAL_VARIABLE_GLOBAL
  • Guid : VARIABLE_CACHE_ENTRY , VENDOR_DEVICE_PATH_WITH_DATA


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- h -

  • Handle : SECUREBOOT_FILE_CONTEXT
  • HashContext : ESAL_VARIABLE_GLOBAL
  • HashFinal : HASH_TABLE
  • HashInit : HASH_TABLE
  • HashUpdate : HASH_TABLE
  • HasPk : SECUREBOOT_CONFIGURATION
  • Hdr : TPM_CMD_START_UP , TPM_CMD_SELF_TEST , TPM_CMD_GET_CAPABILITY , TPM_CMD_EXTEND , TPM_CMD_PHYSICAL_PRESENCE , WIN_CERTIFICATE_EFI_PKCS
  • Head : SECUREBOOT_MENU_OPTION
  • Header : VENDOR_DEVICE_PATH_WITH_DATA , ISCSI_DEVICE_PATH_WITH_NAME
  • HelpString : SECUREBOOT_MENU_ENTRY
  • HelpStringToken : SECUREBOOT_MENU_ENTRY
  • HideSecureBoot : SECUREBOOT_CONFIGURATION
  • HideTpm : TCG_CONFIGURATION , TCG_CONFIG_PRIVATE_DATA
  • HiiConfigRouting : USER_MANAGER_CALLBACK_INFO
  • HiiDatabase : USER_MANAGER_CALLBACK_INFO
  • HiiHandle : USB_PROVIDER_CALLBACK_INFO , USER_PROFILE_MANAGER_CALLBACK_INFO , SECUREBOOT_CONFIG_PRIVATE_DATA , USER_MANAGER_CALLBACK_INFO , TCG_CONFIG_PRIVATE_DATA , PWD_PROVIDER_CALLBACK_INFO
  • HiiString : USER_MANAGER_CALLBACK_INFO
  • HobVariableBase : VARIABLE_GLOBAL
  • HwErrVariableTotalSize : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- i -

  • IdentityPolicy : USER_INFO
  • IdentityPolicyLen : USER_INFO
  • IdentityPolicyModified : USER_INFO
  • Image : DEFERRED_IMAGE_INFO
  • ImageDevicePath : DEFERRED_IMAGE_INFO
  • ImageInfo : DEFERRED_IMAGE_TABLE
  • ImageSecurityDatabaseGuid : ESAL_VARIABLE_GLOBAL
  • ImageSize : DEFERRED_IMAGE_INFO
  • InDeletedTransitionPtr : VARIABLE_POINTER_TRACK
  • Info : PASSWORD_CREDENTIAL_INFO , USB_CREDENTIAL_INFO , SECUREBOOT_FILE_CONTEXT
  • IntEnable : TIS_PC_REGISTERS
  • IntfCapability : TIS_PC_REGISTERS
  • IntSts : TIS_PC_REGISTERS
  • IntVector : TIS_PC_REGISTERS
  • IsBootLegacy : SECUREBOOT_FILE_CONTEXT
  • IsDir : SECUREBOOT_FILE_CONTEXT
  • IsLoadFile : SECUREBOOT_FILE_CONTEXT
  • IsRemovableMedia : SECUREBOOT_FILE_CONTEXT
  • IsRoot : SECUREBOOT_FILE_CONTEXT


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- p -

  • Parameter : PHYSICAL_PRESENCE_NVS , MEMORY_CLEAR_NVS
  • Password : PASSWORD_INFO
  • PcrIndex : TPM_CMD_EXTEND
  • PhysicalPresence : TPM_CMD_PHYSICAL_PRESENCE , TCG_NVS
  • PhysicalPresent : SECUREBOOT_CONFIGURATION
  • PlatformLang : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • PlatformLangCodes : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • PPRequest : EFI_PHYSICAL_PRESENCE
  • PPResponse : EFI_PHYSICAL_PRESENCE
  • ProfileInfo : USER_PROFILE_ENTRY
  • Provider : CREDENTIAL_PROVIDER_INFO
  • PubKeyIndex : VARIABLE_HEADER
  • PubKeyStore : ESAL_VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- r -

  • ReadCount : _VARIABLE_INFO_ENTRY
  • ReentrantState : ESAL_VARIABLE_GLOBAL , VARIABLE_GLOBAL
  • RegionLen : AML_OP_REGION_32_8
  • RegionOffset : AML_OP_REGION_32_8
  • RegionSpace : AML_OP_REGION_32_8
  • Request : MEMORY_CLEAR_NVS , PHYSICAL_PRESENCE_NVS
  • Reserved : VARIABLE_STORE_HEADER , VARIABLE_HEADER
  • Reserved1 : VARIABLE_STORE_HEADER , TIS_PC_REGISTERS
  • Reserved2 : TIS_PC_REGISTERS
  • Reserved3 : TIS_PC_REGISTERS
  • Reserved4 : TIS_PC_REGISTERS
  • Response : PHYSICAL_PRESENCE_NVS
  • ReturnCode : MEMORY_CLEAR_NVS , PHYSICAL_PRESENCE_NVS
  • Rid : TIS_PC_REGISTERS


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- s -

  • SecureBootMode : SECUREBOOT_CONFIGURATION
  • SigDataSize : EFI_SIGNATURE_ITEM
  • SigHeaderSize : EFI_SIGNATURE_ITEM
  • Signature : VARIABLE_STORE_HEADER , USER_MANAGER_CALLBACK_INFO , USER_PROFILE_MANAGER_CALLBACK_INFO , TCG_CONFIG_PRIVATE_DATA , SECUREBOOT_MENU_OPTION , SECUREBOOT_MENU_ENTRY , PWD_PROVIDER_CALLBACK_INFO , SECUREBOOT_CONFIG_PRIVATE_DATA , USB_PROVIDER_CALLBACK_INFO
  • SignatureGuid : SECUREBOOT_CONFIGURATION
  • SignatureGUID : SECUREBOOT_CONFIG_PRIVATE_DATA
  • SigType : EFI_SIGNATURE_ITEM
  • Size : VARIABLE_STORE_HEADER
  • SizeOfCert : EFI_IMAGE_SECURITY_DATA_DIRECTORY
  • SoftwareSmi : PHYSICAL_PRESENCE_NVS , MEMORY_CLEAR_NVS
  • StartId : VARIABLE_HEADER
  • StartPtr : VARIABLE_POINTER_TRACK
  • State : VARIABLE_STORE_HEADER , VARIABLE_HEADER
  • Status : TIS_PC_REGISTERS
  • Str : POOL_PRINT
  • SubType : DEVICE_PATH_STRING_TABLE


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- t -

  • TargetName : ISCSI_DEVICE_PATH_WITH_NAME
  • TargetPortalGroupTag : ISCSI_DEVICE_PATH_WITH_NAME
  • TcgDefined : TIS_PC_REGISTERS
  • TcgProtocol : TCG_CONFIG_PRIVATE_DATA
  • TimeStamp : VARIABLE_HEADER
  • Token : USB_INFO
  • TpmActivate : TCG_CONFIGURATION
  • TpmDigest : TPM_CMD_EXTEND
  • TpmEnable : TCG_CONFIGURATION
  • TpmOperation : TCG_CONFIGURATION
  • TpmSt : TPM_CMD_START_UP
  • Type : DEVICE_PATH_STRING_TABLE


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- u -

  • UsageCount : USER_INFO
  • UsageDate : USER_INFO
  • UsageDateExist : USER_INFO
  • UserId : PASSWORD_INFO , USB_INFO
  • UserInfo : CREDENTIAL_TABLE
  • UserName : USER_INFO
  • UserProfile : USER_PROFILE_DB
  • UserProfileNum : USER_PROFILE_DB
  • UserProfileSize : USER_PROFILE_ENTRY
  • UserVarName : USER_PROFILE_ENTRY


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- v -

  • ValidIndex : CREDENTIAL_TABLE
  • VariableGlobal : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • VariableName : ESAL_VARIABLE_GLOBAL
  • VariableServicesLock : VARIABLE_GLOBAL
  • VendorDefined : TIS_PC_REGISTERS
  • VendorDefinedData : VENDOR_DEVICE_PATH_WITH_DATA
  • VendorDevicePath : HII_VENDOR_DEVICE_PATH
  • VendorGuid : AUTH_CERT_DB_DATA , VARIABLE_HEADER , _VARIABLE_INFO_ENTRY
  • Vid : TIS_PC_REGISTERS
  • Volatile : VARIABLE_POINTER_TRACK , _VARIABLE_INFO_ENTRY
  • VolatileLastVariableOffset : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • VolatileVariableBase : VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- w -

  • WriteCount : _VARIABLE_INFO_ENTRY


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- a -

  • Access : TIS_PC_REGISTERS
  • AccessBootOrder : USER_INFO_ACCESS
  • AccessPolicy : USER_INFO
  • AccessPolicyLen : USER_INFO
  • AccessPolicyModified : USER_INFO
  • AccessRight : USER_INFO_ACCESS
  • AccessSetup : USER_INFO_ACCESS
  • AttemptSecureBoot : SECUREBOOT_CONFIGURATION
  • Attributes : _VARIABLE_INFO_ENTRY , VARIABLE_HEADER , VARIABLE_CACHE_ENTRY
  • AuthenticatedVariableGuid : ESAL_VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- k -

  • KeyLengthInBits : _CPL_KEY_INFO
  • KeyList : ESAL_VARIABLE_GLOBAL
  • KeyType : _CPL_KEY_INFO


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- l -

  • Lang : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • LangCodes : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • LastPPRequest : EFI_PHYSICAL_PRESENCE
  • LastRequest : PHYSICAL_PRESENCE_NVS
  • LegacyAddress1 : TIS_PC_REGISTERS
  • LegacyAddress1Ex : TIS_PC_REGISTERS
  • LegacyAddress2 : TIS_PC_REGISTERS
  • LegacyAddress2Ex : TIS_PC_REGISTERS
  • Len : POOL_PRINT
  • Link : SECUREBOOT_MENU_ENTRY
  • LoadForbid : USER_INFO_ACCESS
  • LoadForbidLen : USER_INFO_ACCESS
  • LoadPermit : USER_INFO_ACCESS
  • LoadPermitLen : USER_INFO_ACCESS
  • LockPhysicalPresence : _PEI_LOCK_PHYSICAL_PRESENCE_PPI
  • LoginOption : ISCSI_DEVICE_PATH_WITH_NAME
  • Lun : ISCSI_DEVICE_PATH_WITH_NAME


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- m -

  • MaxCount : CREDENTIAL_TABLE
  • Maxlen : POOL_PRINT
  • MaxProfileNum : USER_PROFILE_DB
  • MaxProfileSize : USER_PROFILE_ENTRY
  • MeasuredFvBuf : MEASURED_HOB_DATA
  • MemoryClear : TCG_NVS
  • MenuEntry : SECUREBOOT_CONFIG_PRIVATE_DATA
  • MenuNumber : SECUREBOOT_MENU_OPTION
  • MonotonicCount : VARIABLE_HEADER


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- n -

  • Name : _VARIABLE_INFO_ENTRY , HASH_TABLE , VARIABLE_CACHE_ENTRY
  • NameSize : VARIABLE_HEADER , AUTH_CERT_DB_DATA
  • NameString : AML_OP_REGION_32_8
  • NetworkProtocol : ISCSI_DEVICE_PATH_WITH_NAME
  • NewIdentityPolicy : USER_INFO
  • NewIdentityPolicyLen : USER_INFO
  • NewIdentityPolicyModified : USER_INFO
  • Next : _VARIABLE_INFO_ENTRY
  • NonVolatileLastVariableOffset : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • NonVolatileVariableBase : VARIABLE_GLOBAL
  • Num : MEASURED_HOB_DATA


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- o -

  • Offset : EFI_IMAGE_SECURITY_DATA_DIRECTORY
  • OidLength : HASH_TABLE
  • OidValue : HASH_TABLE
  • OpRegionOp : AML_OP_REGION_32_8
  • OptionNumber : SECUREBOOT_MENU_ENTRY
  • OriginalHideTpm : TCG_CONFIGURATION


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- b -

  • BlockSize : _CPL_KEY_INFO
  • BootOption : DEFERRED_IMAGE_INFO
  • BurstCount : TIS_PC_REGISTERS
  • BytePrefix : AML_OP_REGION_32_8


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- c -

  • CacheCount : _VARIABLE_INFO_ENTRY
  • Capability : TPM_CMD_GET_CAPABILITY
  • CapabilityFlag : TPM_CMD_GET_CAPABILITY
  • CapabilityFlagSize : TPM_CMD_GET_CAPABILITY
  • CertData : WIN_CERTIFICATE_EFI_PKCS
  • CertDataSize : AUTH_CERT_DB_DATA
  • CertNodeSize : AUTH_CERT_DB_DATA
  • CertRsa2048Sha256Guid : ESAL_VARIABLE_GLOBAL
  • CipherBlockSize : _CPL_KEY_INFO
  • CipherMode : _CPL_KEY_INFO
  • CommonVariableTotalSize : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • ConfigAccess : USER_PROFILE_MANAGER_CALLBACK_INFO , SECUREBOOT_CONFIG_PRIVATE_DATA , TCG_CONFIG_PRIVATE_DATA , PWD_PROVIDER_CALLBACK_INFO , USER_MANAGER_CALLBACK_INFO
  • ConnectForbid : USER_INFO_ACCESS
  • ConnectForbidLen : USER_INFO_ACCESS
  • ConnectPermit : USER_INFO_ACCESS
  • ConnectPermitLen : USER_INFO_ACCESS
  • Count : DEFERRED_IMAGE_TABLE , CREDENTIAL_TABLE , PASSWORD_CREDENTIAL_INFO , CREDENTIAL_PROVIDER_INFO , USB_CREDENTIAL_INFO
  • CreateDate : USER_INFO
  • CreateDateExist : USER_INFO
  • CurrPtr : VARIABLE_POINTER_TRACK


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- d -

  • Data : VARIABLE_CACHE_ENTRY
  • DataFifo : TIS_PC_REGISTERS
  • DataSize : VARIABLE_CACHE_ENTRY , VARIABLE_HEADER
  • DeleteCount : _VARIABLE_INFO_ENTRY
  • DeletePk : SECUREBOOT_CONFIGURATION
  • DevicePath : SECUREBOOT_FILE_CONTEXT
  • Did : TIS_PC_REGISTERS
  • DigestLength : HASH_TABLE
  • DisplayString : SECUREBOOT_MENU_ENTRY
  • DisplayStringToken : SECUREBOOT_MENU_ENTRY
  • DriverHandle : USER_MANAGER_CALLBACK_INFO , USB_PROVIDER_CALLBACK_INFO , TCG_CONFIG_PRIVATE_DATA , SECUREBOOT_CONFIG_PRIVATE_DATA , USER_PROFILE_MANAGER_CALLBACK_INFO , PWD_PROVIDER_CALLBACK_INFO
  • DWordPrefix : AML_OP_REGION_32_8


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- e -

  • End : HII_VENDOR_DEVICE_PATH
  • EndPtr : VARIABLE_POINTER_TRACK


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- f -

  • FeCurrentState : SECUREBOOT_CONFIG_PRIVATE_DATA
  • FeDisplayContext : SECUREBOOT_CONFIG_PRIVATE_DATA
  • FHandle : SECUREBOOT_FILE_CONTEXT
  • FileContext : SECUREBOOT_MENU_ENTRY , SECUREBOOT_CONFIG_PRIVATE_DATA
  • FileName : SECUREBOOT_FILE_CONTEXT
  • Flags : _CPL_KEY_INFO , EFI_PHYSICAL_PRESENCE
  • Format : VARIABLE_STORE_HEADER
  • FormBrowser2 : USER_MANAGER_CALLBACK_INFO
  • Function : DEVICE_PATH_STRING_TABLE
  • FvbInstance : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- g -

  • GetContextSize : HASH_TABLE
  • GlobalVariableGuid : ESAL_VARIABLE_GLOBAL
  • Guid : VARIABLE_CACHE_ENTRY , VENDOR_DEVICE_PATH_WITH_DATA


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- h -

  • Handle : SECUREBOOT_FILE_CONTEXT
  • HashContext : ESAL_VARIABLE_GLOBAL
  • HashFinal : HASH_TABLE
  • HashInit : HASH_TABLE
  • HashUpdate : HASH_TABLE
  • HasPk : SECUREBOOT_CONFIGURATION
  • Hdr : TPM_CMD_START_UP , TPM_CMD_SELF_TEST , TPM_CMD_GET_CAPABILITY , TPM_CMD_EXTEND , TPM_CMD_PHYSICAL_PRESENCE , WIN_CERTIFICATE_EFI_PKCS
  • Head : SECUREBOOT_MENU_OPTION
  • Header : VENDOR_DEVICE_PATH_WITH_DATA , ISCSI_DEVICE_PATH_WITH_NAME
  • HelpString : SECUREBOOT_MENU_ENTRY
  • HelpStringToken : SECUREBOOT_MENU_ENTRY
  • HideSecureBoot : SECUREBOOT_CONFIGURATION
  • HideTpm : TCG_CONFIGURATION , TCG_CONFIG_PRIVATE_DATA
  • HiiConfigRouting : USER_MANAGER_CALLBACK_INFO
  • HiiDatabase : USER_MANAGER_CALLBACK_INFO
  • HiiHandle : USB_PROVIDER_CALLBACK_INFO , USER_PROFILE_MANAGER_CALLBACK_INFO , SECUREBOOT_CONFIG_PRIVATE_DATA , USER_MANAGER_CALLBACK_INFO , TCG_CONFIG_PRIVATE_DATA , PWD_PROVIDER_CALLBACK_INFO
  • HiiString : USER_MANAGER_CALLBACK_INFO
  • HobVariableBase : VARIABLE_GLOBAL
  • HwErrVariableTotalSize : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- i -

  • IdentityPolicy : USER_INFO
  • IdentityPolicyLen : USER_INFO
  • IdentityPolicyModified : USER_INFO
  • Image : DEFERRED_IMAGE_INFO
  • ImageDevicePath : DEFERRED_IMAGE_INFO
  • ImageInfo : DEFERRED_IMAGE_TABLE
  • ImageSecurityDatabaseGuid : ESAL_VARIABLE_GLOBAL
  • ImageSize : DEFERRED_IMAGE_INFO
  • InDeletedTransitionPtr : VARIABLE_POINTER_TRACK
  • Info : PASSWORD_CREDENTIAL_INFO , USB_CREDENTIAL_INFO , SECUREBOOT_FILE_CONTEXT
  • IntEnable : TIS_PC_REGISTERS
  • IntfCapability : TIS_PC_REGISTERS
  • IntSts : TIS_PC_REGISTERS
  • IntVector : TIS_PC_REGISTERS
  • IsBootLegacy : SECUREBOOT_FILE_CONTEXT
  • IsDir : SECUREBOOT_FILE_CONTEXT
  • IsLoadFile : SECUREBOOT_FILE_CONTEXT
  • IsRemovableMedia : SECUREBOOT_FILE_CONTEXT
  • IsRoot : SECUREBOOT_FILE_CONTEXT


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- p -

  • Parameter : PHYSICAL_PRESENCE_NVS , MEMORY_CLEAR_NVS
  • Password : PASSWORD_INFO
  • PcrIndex : TPM_CMD_EXTEND
  • PhysicalPresence : TPM_CMD_PHYSICAL_PRESENCE , TCG_NVS
  • PhysicalPresent : SECUREBOOT_CONFIGURATION
  • PlatformLang : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • PlatformLangCodes : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • PPRequest : EFI_PHYSICAL_PRESENCE
  • PPResponse : EFI_PHYSICAL_PRESENCE
  • ProfileInfo : USER_PROFILE_ENTRY
  • Provider : CREDENTIAL_PROVIDER_INFO
  • PubKeyIndex : VARIABLE_HEADER
  • PubKeyStore : ESAL_VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- r -

  • ReadCount : _VARIABLE_INFO_ENTRY
  • ReentrantState : ESAL_VARIABLE_GLOBAL , VARIABLE_GLOBAL
  • RegionLen : AML_OP_REGION_32_8
  • RegionOffset : AML_OP_REGION_32_8
  • RegionSpace : AML_OP_REGION_32_8
  • Request : MEMORY_CLEAR_NVS , PHYSICAL_PRESENCE_NVS
  • Reserved : VARIABLE_STORE_HEADER , VARIABLE_HEADER
  • Reserved1 : VARIABLE_STORE_HEADER , TIS_PC_REGISTERS
  • Reserved2 : TIS_PC_REGISTERS
  • Reserved3 : TIS_PC_REGISTERS
  • Reserved4 : TIS_PC_REGISTERS
  • Response : PHYSICAL_PRESENCE_NVS
  • ReturnCode : MEMORY_CLEAR_NVS , PHYSICAL_PRESENCE_NVS
  • Rid : TIS_PC_REGISTERS


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- s -

  • SecureBootMode : SECUREBOOT_CONFIGURATION
  • SigDataSize : EFI_SIGNATURE_ITEM
  • SigHeaderSize : EFI_SIGNATURE_ITEM
  • Signature : VARIABLE_STORE_HEADER , USER_MANAGER_CALLBACK_INFO , USER_PROFILE_MANAGER_CALLBACK_INFO , TCG_CONFIG_PRIVATE_DATA , SECUREBOOT_MENU_OPTION , SECUREBOOT_MENU_ENTRY , PWD_PROVIDER_CALLBACK_INFO , SECUREBOOT_CONFIG_PRIVATE_DATA , USB_PROVIDER_CALLBACK_INFO
  • SignatureGuid : SECUREBOOT_CONFIGURATION
  • SignatureGUID : SECUREBOOT_CONFIG_PRIVATE_DATA
  • SigType : EFI_SIGNATURE_ITEM
  • Size : VARIABLE_STORE_HEADER
  • SizeOfCert : EFI_IMAGE_SECURITY_DATA_DIRECTORY
  • SoftwareSmi : PHYSICAL_PRESENCE_NVS , MEMORY_CLEAR_NVS
  • StartId : VARIABLE_HEADER
  • StartPtr : VARIABLE_POINTER_TRACK
  • State : VARIABLE_STORE_HEADER , VARIABLE_HEADER
  • Status : TIS_PC_REGISTERS
  • Str : POOL_PRINT
  • SubType : DEVICE_PATH_STRING_TABLE


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- t -

  • TargetName : ISCSI_DEVICE_PATH_WITH_NAME
  • TargetPortalGroupTag : ISCSI_DEVICE_PATH_WITH_NAME
  • TcgDefined : TIS_PC_REGISTERS
  • TcgProtocol : TCG_CONFIG_PRIVATE_DATA
  • TimeStamp : VARIABLE_HEADER
  • Token : USB_INFO
  • TpmActivate : TCG_CONFIGURATION
  • TpmDigest : TPM_CMD_EXTEND
  • TpmEnable : TCG_CONFIGURATION
  • TpmOperation : TCG_CONFIGURATION
  • TpmSt : TPM_CMD_START_UP
  • Type : DEVICE_PATH_STRING_TABLE


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- u -

  • UsageCount : USER_INFO
  • UsageDate : USER_INFO
  • UsageDateExist : USER_INFO
  • UserId : PASSWORD_INFO , USB_INFO
  • UserInfo : CREDENTIAL_TABLE
  • UserName : USER_INFO
  • UserProfile : USER_PROFILE_DB
  • UserProfileNum : USER_PROFILE_DB
  • UserProfileSize : USER_PROFILE_ENTRY
  • UserVarName : USER_PROFILE_ENTRY


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- v -

  • ValidIndex : CREDENTIAL_TABLE
  • VariableGlobal : ESAL_VARIABLE_GLOBAL , VARIABLE_MODULE_GLOBAL
  • VariableName : ESAL_VARIABLE_GLOBAL
  • VariableServicesLock : VARIABLE_GLOBAL
  • VendorDefined : TIS_PC_REGISTERS
  • VendorDefinedData : VENDOR_DEVICE_PATH_WITH_DATA
  • VendorDevicePath : HII_VENDOR_DEVICE_PATH
  • VendorGuid : AUTH_CERT_DB_DATA , VARIABLE_HEADER , _VARIABLE_INFO_ENTRY
  • Vid : TIS_PC_REGISTERS
  • Volatile : VARIABLE_POINTER_TRACK , _VARIABLE_INFO_ENTRY
  • VolatileLastVariableOffset : VARIABLE_MODULE_GLOBAL , ESAL_VARIABLE_GLOBAL
  • VolatileVariableBase : VARIABLE_GLOBAL


SecurityPkg[ALL]: Data Fields - Variables

  • Data Fields
  • All
  • Variables
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w

- w -

  • WriteCount : _VARIABLE_INFO_ENTRY


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- k -

  • key : PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , SecureBootConfig.vfr , UserProfileManagerVfr.Vfr
  • KEY_ADD_IP_OP : UserProfileManagerData.h
  • KEY_ADD_LOGICAL_OP : UserProfileManagerData.h
  • KEY_ADD_USER : UserProfileManagerData.h
  • KEY_AP_RETURN : UserProfileManagerData.h
  • KEY_AP_RETURN_UIF : UserProfileManagerData.h
  • KEY_CONN_DP : UserProfileManagerData.h
  • KEY_CONNECT_FORBID : UserProfileManagerData.h
  • KEY_CONNECT_FORBID_MODIFY : UserProfileManagerData.h
  • KEY_CONNECT_PERMIT : UserProfileManagerData.h
  • KEY_CONNECT_PERMIT_MODIFY : UserProfileManagerData.h
  • KEY_DEL_USER : UserProfileManagerData.h
  • KEY_DELETE_KEK : SecureBootConfigNvData.h
  • KEY_DISPLAY_DP_MASK : UserProfileManagerData.h
  • KEY_ENROLL_KEK : SecureBootConfigNvData.h
  • KEY_ENROLL_PK : SecureBootConfigNvData.h
  • KEY_ENTER_NEXT_FORM : UserProfileManagerData.h
  • KEY_FIRST_FORM_MASK : UserProfileManagerData.h
  • KEY_FORBID_MODIFY : UserProfileManagerData.h
  • KEY_GET_PASSWORD : PwdCredentialProviderData.h
  • KEY_HIDE_TPM : TcgConfigNvData.h
  • KEY_IP_RETURN : UserProfileManagerData.h
  • KEY_IP_RETURN_UIF : UserProfileManagerData.h
  • KEY_LOAD_DP : UserProfileManagerData.h
  • KEY_LOAD_FORBID : UserProfileManagerData.h
  • KEY_LOAD_FORBID_MODIFY : UserProfileManagerData.h
  • KEY_LOAD_PERMIT : UserProfileManagerData.h
  • KEY_LOAD_PERMIT_MODIFY : UserProfileManagerData.h
  • KEY_MODIFY_AP : UserProfileManagerData.h
  • KEY_MODIFY_AP_DP : UserProfileManagerData.h
  • KEY_MODIFY_AP_MASK : UserProfileManagerData.h
  • KEY_MODIFY_BOOT : UserProfileManagerData.h
  • KEY_MODIFY_CONN : UserProfileManagerData.h
  • KEY_MODIFY_CONNECT : UserProfileManagerData.h
  • KEY_MODIFY_DP_MASK : UserProfileManagerData.h
  • KEY_MODIFY_INFO_MASK : UserProfileManagerData.h
  • KEY_MODIFY_IP : UserProfileManagerData.h
  • KEY_MODIFY_IP_MASK : UserProfileManagerData.h
  • KEY_MODIFY_LOAD : UserProfileManagerData.h
  • KEY_MODIFY_MTYPE : UserProfileManagerData.h
  • KEY_MODIFY_NAME : UserProfileManagerData.h
  • KEY_MODIFY_PROV : UserProfileManagerData.h
  • KEY_MODIFY_RIGHT : UserProfileManagerData.h
  • KEY_MODIFY_SETUP : UserProfileManagerData.h
  • KEY_MODIFY_USER : UserProfileManagerData.h
  • KEY_MODIFY_USER_NAME : UserProfileManagerData.h
  • KEY_OPEN_CLOSE_FORM_ACTION : UserProfileManagerData.h
  • KEY_PERMIT_MODIFY : UserProfileManagerData.h
  • KEY_SECOND_FORM_MASK : UserProfileManagerData.h
  • KEY_SECURE_BOOT_DB_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_DBX_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_DELETE_PK : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_ENABLE : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_KEK_GUID : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_KEK_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_MODE : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_PK_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_SIGNATURE_GUID_DB : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_SIGNATURE_GUID_DBX : SecureBootConfigNvData.h
  • KEY_SELECT_USER : UserProfileManagerData.h
  • KEY_TPM_ACTION : TcgConfigNvData.h
  • KEY_TPM_MOR_ENABLE : TcgConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_DB : SecureBootConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_DBX : SecureBootConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_KEK : SecureBootConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_PK : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_DB : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_DBX : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_KEK : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_PK : SecureBootConfigNvData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- l -

  • LABEL_AP_MOD_FUNC : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • LABEL_DB_DELETE : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • LABEL_DBX_DELETE : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • LABEL_END : UserIdentifyManagerData.h , UserProfileManagerData.h , SecureBootConfigNvData.h , TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , TcgConfigNvData.h , SecureBootConfig.vfr
  • LABEL_IP_MOD_FUNC : UserProfileManagerVfr.Vfr , UserProfileManagerData.h
  • LABEL_KEK_DELETE : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • LABEL_PERMIT_LOAD_FUNC : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • LABEL_PROVIDER_NAME : UserIdentifyManagerData.h , UserIdentifyManagerVfr.Vfr
  • LABEL_TCG_CONFIGURATION_HIDETPM : TcgConfigNvData.h , TcgConfig.vfr
  • LABEL_USER_DEL_FUNC : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • LABEL_USER_INFO_FUNC : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • LABEL_USER_MANAGE_FUNC : UserProfileManagerVfr.Vfr , UserProfileManagerData.h
  • LABEL_USER_MOD_FUNC : UserProfileManagerVfr.Vfr , UserProfileManagerData.h
  • LABEL_USER_NAME : UserIdentifyManagerData.h , UserIdentifyManagerVfr.Vfr
  • LABLE_FORBID_LOAD_FUNC : UserProfileManagerVfr.Vfr , UserProfileManagerData.h
  • LoadDeferredImage() : LoadDeferredImage.c
  • LoadDeferredImageInit() : UserIdentifyManager.h , LoadDeferredImage.c
  • LoadPeImage() : SecureBootConfigImpl.c
  • LockTpmPhysicalPresence() : PhysicalPresencePei.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- m -

  • mAccessInfo : UserProfileManager.c , UserProfileManager.h
  • mAtRuntime : VariableSmm.c
  • MAX_CERTDB_SIZE : AuthService.h
  • MAX_CHAR : SecureBootConfigImpl.h
  • MAX_DIGEST_SIZE : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • MAX_KEY_NUM : Variable.h , AuthService.h
  • MAX_KEYDB_SIZE : Variable.h , AuthService.h
  • MAX_NAME_SIZE : Variable.h
  • MAX_NOTIFY_STRING_LEN : DxeImageVerificationLib.h
  • maxsize : SecureBootConfig.vfr
  • mBootAttempts : TcgDxe.c
  • mBootVarName : TcgDxe.c
  • mCacheMeasuredHandle : DxeTpmMeasureBootLib.c
  • mCallbackInfo : PwdCredentialProvider.c , UsbCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c , UserProfileManager.h
  • mCertDbStore : AuthService.c
  • mCertificate : SecureBootConfigImpl.c
  • mCertType : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mConncetLogical : UserProfileManager.c , UserProfileManager.h
  • mCurrentUser : UserIdentifyManager.c
  • mDeferredImage : DxeDeferImageLoadLib.c
  • mDeferredImageHandle : LoadDeferredImage.c , DxeDeferImageLoadLib.c
  • mDerEncodedSuffix : SecureBootConfigImpl.c
  • MeasureAllBootVariables() : TcgDxe.c
  • MeasureCRTMVersion() : TcgPei.c
  • MeasureFvImage() : TcgPei.c
  • MeasureHandoffTables() : TcgDxe.c
  • MeasureMainBios() : TcgPei.c
  • MeasureSeparatorEvent() : TcgDxe.c
  • MeasureVariable() : TcgDxe.c
  • mEfiVirtualNotifyEvent : InitVariable.c
  • MemoryClearCallback() : TcgSmm.c
  • mEndLabel : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • mEndOpCodeHandle : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • mFileBuffer : DxeTpmMeasureBootLib.c
  • mFtwRegistration : VariableDxe.c
  • mHandle : VariableDxe.c , VariableSmmRuntimeDxe.c
  • mHash : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mHashCtx : AuthService.c , AuthService.h
  • mHashOidValue : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mHiiVendorDevicePath : PwdCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c
  • mIdentified : UserIdentifyManager.c
  • mImageBase : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mImageDigest : SecureBootConfigImpl.c , DxeImageVerificationLib.c
  • mImageDigestSize : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mImageInMemory : TcgPei.c
  • mImageSize : DxeImageVerificationLib.c , DxeTpmMeasureBootLib.c , SecureBootConfigImpl.c
  • mImageType : SecureBootConfigImpl.c
  • minsize : SecureBootConfig.vfr
  • mIsProtocolInstalled : DxeDeferImageLoadLib.c
  • mLockPhysicalPresencePpi : PhysicalPresencePei.c
  • mLockPhysicalPresencePpiList : PhysicalPresencePei.c
  • mMeasuredBaseFvIndex : TcgPei.c
  • mMeasuredBaseFvInfo : TcgPei.c
  • mMeasuredChildFvIndex : TcgPei.c
  • mMeasuredChildFvInfo : TcgPei.c
  • mMeasuredHobData : DxeTpmMeasureBootLib.c
  • mMeasureGptCount : DxeTpmMeasureBootLib.c
  • mMeasureGptTableFlag : DxeTpmMeasureBootLib.c
  • mModifyUser : UserProfileManager.h , UserProfileModify.c
  • mMorControl : TcgMor.c
  • mNotifyList : TcgPei.c
  • mNotifyString1 : DxeImageVerificationLib.c
  • mNotifyString2 : DxeImageVerificationLib.c
  • mNtHeader : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mNvVariableCache : Variable.c , VariableDxe.c
  • ModidyAccessPolicy() : UserProfileManager.h , UserProfileModify.c
  • ModifyIdentityPolicy() : UserProfileManager.h , UserProfileModify.c
  • ModifyTable() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • ModifyUserInfo() : UserIdentifyManager.c , UserProfileManager.h , UserProfileModify.c
  • ModifyUserName() : UserProfileModify.c , UserProfileManager.h
  • MOR_REQUEST_GENERAL_FAILURE : TcgSmm.h
  • MOR_REQUEST_SUCCESS : TcgSmm.h
  • MorDriverEntryPoint() : TcgMor.c
  • mPeCoffHeaderOffset : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mPlatformMode : AuthService.c
  • mPpiListVariable : Variable.c
  • mPpStringPackHandle : DxeTcgPhysicalPresenceLib.c
  • mProviderChoice : UserProfileManager.c , UserProfileManager.h
  • mProviderDb : UserIdentifyManager.c
  • mProviderInfo : UserProfileManager.c , UserProfileManager.h
  • mPubKeyNumber : AuthService.c , AuthService.h
  • mPubKeyStore : AuthService.c , AuthService.h
  • mPwdInfoHandle : PwdCredentialProvider.c
  • mPwdTable : PwdCredentialProvider.c
  • mRsaE : AuthService.c , DxeImageVerificationLib.c , AuthService.c
  • mSecDataDir : SecureBootConfigImpl.c
  • mSecureBootConfigPrivateDateTemplate : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • mSecureBootHiiVendorDevicePath : SecureBootConfigImpl.c
  • mSecureBootStorageName : SecureBootConfigImpl.c
  • mSerializationRuntimeBuffer : AuthService.h , AuthService.c
  • mSignatureSupport : AuthService.c
  • mSmmCommunication : VariableSmmRuntimeDxe.c , VariableInfo.c
  • mSmmVariable : VariableSmmRuntimeDxe.c , TcgSmm.c
  • mSmmVariableHandle : VariableSmm.c
  • mSmramRangeCount : VariableSmm.c
  • mSmramRanges : VariableSmm.c
  • mStartLabel : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • mStartOpCodeHandle : SecureBootConfigImpl.h , SecureBootConfigFileExplorer.c
  • mStorageArea : AuthService.c , AuthService.h
  • mSupportSigItem : AuthService.c
  • mSupportX509Suffix : SecureBootConfigImpl.c
  • mTcgClientAcpiTemplate : TcgDxe.c
  • mTcgConfigPrivateDateTemplate : TcgConfigImpl.h , TcgConfigImpl.c
  • mTcgDxeData : TcgDxe.c
  • mTcgHiiVendorDevicePath : TcgConfigImpl.c
  • mTcgNvs : TcgSmm.c
  • mTcgServerAcpiTemplate : TcgDxe.c
  • mTcgStorageName : TcgConfigImpl.c
  • mTpmInitializedPpiList : TcgPei.c
  • mUsbInfoHandle : UsbCredentialProvider.c
  • mUsbTable : UsbCredentialProvider.c
  • mUserInfo : UserProfileManager.h , UserProfileManager.c
  • mUserManager : UserProfileManager.h , UserProfileManager.c , DxeDeferImageLoadLib.c
  • mUserName : UserIdentifyManager.c
  • mUserProfileDb : UserIdentifyManager.c
  • mVariableBuffer : VariableSmmRuntimeDxe.c
  • mVariableBufferPayload : VariableSmm.c
  • mVariableBufferPayloadSize : VariableSmm.c , VariableSmmRuntimeDxe.c
  • mVariableBufferPhysical : VariableSmmRuntimeDxe.c
  • mVariableBufferSize : VariableSmmRuntimeDxe.c
  • mVariableCache : Variable.c
  • mVariableHandle : VariableSmm.c
  • mVariableModuleGlobal : Variable.h , Variable.c , Variable.h , Variable.c
  • mVariableName : Variable.c
  • mVariablePpi : Variable.c
  • mVariableServicesLock : VariableSmmRuntimeDxe.c
  • mVirtualAddressChangeEvent : VariableDxe.c , VariableSmmRuntimeDxe.c
  • mZeroGuid : VariableSmm.c , DxeTpmMeasureBootLib.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- n -

  • name : TcgConfig.vfr , SecureBootConfig.vfr
  • NameSizeOfVariable() : Variable.c
  • NeedPhysicallyPresent() : AuthService.c
  • NEVER_EXECUTE : DxeImageVerificationLib.h
  • NUM_VAR_NAME : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- o -

  • OFFSET_OF_AUTHINFO2_CERT_DATA : AuthService.h
  • OnExitBootServices() : TcgDxe.c , VariableSmmRuntimeDxe.c
  • OnExitBootServicesFailed() : TcgDxe.c
  • OnReadyToBoot() : VariableSmmRuntimeDxe.c , TcgMor.c , TcgDxe.c , VariableDxe.c
  • OpenFileByDevicePath() : SecureBootConfigFileExplorer.c
  • OpenRoot() : SecureBootConfigFileExplorer.c
  • OPTION_CONFIG_QUESTION_ID : SecureBootConfigNvData.h
  • OPTION_CONFIG_RANGE : SecureBootConfigNvData.h
  • OPTION_DEL_DB_QUESTION_ID : SecureBootConfigNvData.h
  • OPTION_DEL_DBX_QUESTION_ID : SecureBootConfigNvData.h
  • OPTION_DEL_KEK_QUESTION_ID : SecureBootConfigNvData.h
  • OriginalHideTpm : TcgConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- a -

  • ACCESS_SETUP_ADMIN : UserProfileManagerData.h
  • ACCESS_SETUP_NORMAL : UserProfileManagerData.h
  • ACCESS_SETUP_RESTRICTED : UserProfileManagerData.h
  • AccessVariableStore() : Variable.c
  • ACPI_FUNCTION_DSM_MEMORY_CLEAR_INTERFACE : TcgSmm.h
  • ACPI_FUNCTION_GET_PENDING_REQUEST_BY_OS : TcgSmm.h
  • ACPI_FUNCTION_GET_PHYSICAL_PRESENCE_INTERFACE_VERSION : TcgSmm.h
  • ACPI_FUNCTION_GET_PLATFORM_ACTION_TO_TRANSITION_TO_BIOS : TcgSmm.h
  • ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST : TcgSmm.h
  • ACPI_FUNCTION_PTS_CLEAR_MOR_BIT : TcgSmm.h
  • ACPI_FUNCTION_RETURN_REQUEST_RESPONSE_TO_OS : TcgSmm.h
  • ACPI_FUNCTION_SUBMIT_PREFERRED_USER_LANGUAGE : TcgSmm.h
  • ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS : TcgSmm.h
  • ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS_2 : TcgSmm.h
  • AcquireLockOnlyAtBootTime() : VariableDxe.c , Variable.h , VariableSmm.c , VariableSmmRuntimeDxe.c , Variable.c
  • AddDefaultUserProfile() : UserIdentifyManager.c
  • AddDevicePath() : ModifyAccessPolicy.c
  • AddIdentityPolicyItem() : UserProfileManager.h , ModifyIdentityPolicy.c
  • AddImageExeInfo() : DxeImageVerificationLib.c
  • AddProviderSelection() : UserIdentifyManager.c
  • AddProviderToPolicy() : ModifyIdentityPolicy.c
  • AddPubKeyInStore() : AuthService.c
  • AddStr() : UserProfileModify.c
  • AddToForbidLoad() : UserProfileManager.h , ModifyAccessPolicy.c
  • AddUserInfo() : UserIdentifyManager.c
  • AddUserProfile() : UserIdentifyManager.c
  • AddUserSelection() : UserIdentifyManager.c
  • AddUserToForm() : UserProfileManager.h , UserProfileDelete.c
  • ALIGN_SIZE : DxeImageVerificationLib.h
  • ALIGNMENT : AuthenticatedVariableFormat.h
  • ALIGNMENT_SIZE : DxeImageVerificationLib.h
  • ALLOW_EXECUTE_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • ALWAYS_EXECUTE : DxeImageVerificationLib.h
  • AppendFileName() : SecureBootConfigFileExplorer.c
  • AppendSignatureList() : AuthService.h , AuthService.c
  • AssignOpRegion() : TcgSmm.c
  • AtRuntime() : VariableDxe.c , Variable.h , VariableSmm.c
  • AutenticatedVariableServiceInitialize() : AuthService.h , AuthService.c
  • AUTHINFO2_SIZE : AuthService.h
  • AUTHINFO_SIZE : AuthService.h
  • AUTHVAR_KEYDB_NAME : AuthService.h , Variable.h
  • AUTHVAR_KEYDB_NAME_SIZE : Variable.h
  • AUTHVAR_TYPE : AuthService.h
  • AuthVarTypeKek : AuthService.h
  • AuthVarTypePayload : AuthService.h
  • AuthVarTypePk : AuthService.h
  • AuthVarTypePriv : AuthService.h
  • AutoUpdateLangVariable() : Variable.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- c -

  • CallAddUser() : UserProfileManager.h , UserProfileAdd.c
  • CatPrint() : SecureBootConfigDevicePath.c
  • CheckAccessPolicy() : UserIdentifyManager.c
  • CheckConsole() : UserIdentifyManager.c
  • CheckCurrentUserAccessRight() : UserIdentifyManager.c
  • CheckDevicePath() : DxeDeferImageLoadLib.c
  • CheckIdentityPolicy() : UserIdentifyManager.c
  • CheckNewIdentityPolicy() : ModifyIdentityPolicy.c
  • CheckPassword() : PwdCredentialProvider.c
  • CheckProfileInfo() : UserIdentifyManager.c
  • CheckSignatureListFormat() : AuthService.c , AuthService.h
  • CheckUserInfo() : UserIdentifyManager.c
  • classguid : PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , SecureBootConfig.vfr , TcgConfig.vfr
  • CleanUpPage() : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • CloseFile() : SecureBootConfigMisc.c , SecureBootConfigImpl.h
  • CompareTimeStamp() : AuthService.c , AuthService.h
  • CompareWithValidVariable() : Variable.c
  • CONFIG_OPTION_OFFSET : SecureBootConfigNvData.h
  • CONFIRM_BUFFER_SIZE : DxeTcgPhysicalPresenceLib.c
  • ConvertDPStr() : DxeDeferImageLoadLib.c
  • CPL_KEY_INFO : SecureBootConfigImpl.h
  • CreateMenuEntry() : SecureBootConfigFileExplorer.c
  • CreateMenuStringToken() : SecureBootConfigFileExplorer.c
  • CreatePkX509SignatureList() : SecureBootConfigImpl.c
  • CreateTimeBasedPayload() : SecureBootConfigImpl.c
  • CreateUserProfile() : UserIdentifyManager.c
  • CREDENTIAL_LEN : PwdCredentialProvider.h
  • CredentialDefault() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialDelete() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialDeselect() : UsbCredentialProvider.h , PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c
  • CredentialDriverCallback() : PwdCredentialProvider.c
  • CredentialEnroll() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialForm() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialGetInfo() : UsbCredentialProvider.c , PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.h
  • CredentialGetNextInfo() : UsbCredentialProvider.h , PwdCredentialProvider.h , PwdCredentialProvider.c , UsbCredentialProvider.c
  • CredentialSelect() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.h , UsbCredentialProvider.c
  • CredentialTile() : UsbCredentialProvider.h , PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c
  • CredentialTitle() : UsbCredentialProvider.c , PwdCredentialProvider.h , PwdCredentialProvider.c , UsbCredentialProvider.h
  • CredentialUser() : UsbCredentialProvider.h , PwdCredentialProvider.c , UsbCredentialProvider.c , PwdCredentialProvider.h
  • CryptLibraryInitialize() : AuthService.h
  • CUSTOM_SECURE_BOOT_MODE : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- d -

  • DataSizeOfVariable() : Variable.c , Variable.h , Variable.c , Variable.h , Variable.c
  • DEFAULT_PROFILE_SIZE : UserIdentifyManager.h
  • DEFER_EXECUTE_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • DefinitionBlock() : Tpm.asl
  • DeleteCertsFromDb() : AuthService.c
  • DeleteCredentialFromProviders() : UserProfileManager.h , ModifyIdentityPolicy.c
  • DeleteFromForbidLoad() : UserProfileManager.h , ModifyAccessPolicy.c
  • DeleteKeyExchangeKey() : SecureBootConfigImpl.c
  • DeletePlatformKey() : SecureBootConfigImpl.c
  • DeleteProviderFromPolicy() : ModifyIdentityPolicy.c
  • DeleteSignature() : SecureBootConfigImpl.c
  • DeleteUser() : UserProfileManager.h , UserProfileDelete.c
  • DeleteUserOnProvider() : ModifyIdentityPolicy.c
  • DeleteVariable() : AuthService.c , SecureBootConfigImpl.c
  • DelUserInfo() : UserIdentifyManager.c
  • DelUserProfile() : UserIdentifyManager.c
  • DENY_EXECUTE_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • DestroyMenuEntry() : SecureBootConfigFileExplorer.c
  • DEV_PATH_FUNCTION : SecureBootConfigImpl.h
  • DevicePathToStr() : SecureBootConfigDevicePath.c , SecureBootConfigImpl.h
  • DevPath1394() : SecureBootConfigDevicePath.c
  • DevPathAcpi() : SecureBootConfigDevicePath.c
  • DevPathAdrAcpi() : SecureBootConfigDevicePath.c
  • DevPathAtapi() : SecureBootConfigDevicePath.c
  • DevPathBssBss() : SecureBootConfigDevicePath.c
  • DevPathCDROM() : SecureBootConfigDevicePath.c
  • DevPathController() : SecureBootConfigDevicePath.c
  • DevPathEndInstance() : SecureBootConfigDevicePath.c
  • DevPathExtendedAcpi() : SecureBootConfigDevicePath.c
  • DevPathFibre() : SecureBootConfigDevicePath.c
  • DevPathFilePath() : SecureBootConfigDevicePath.c
  • DevPathFvFilePath() : SecureBootConfigDevicePath.c
  • DevPathFvPath() : SecureBootConfigDevicePath.c
  • DevPathHardDrive() : SecureBootConfigDevicePath.c
  • DevPathI2O() : SecureBootConfigDevicePath.c
  • DevPathInfiniBand() : SecureBootConfigDevicePath.c
  • DevPathIPv4() : SecureBootConfigDevicePath.c
  • DevPathIPv6() : SecureBootConfigDevicePath.c
  • DevPathiSCSI() : SecureBootConfigDevicePath.c
  • DevPathLogicalUnit() : SecureBootConfigDevicePath.c
  • DevPathMacAddr() : SecureBootConfigDevicePath.c
  • DevPathMediaProtocol() : SecureBootConfigDevicePath.c
  • DevPathMemMap() : SecureBootConfigDevicePath.c
  • DevPathNodeUnknown() : SecureBootConfigDevicePath.c
  • DevPathPccard() : SecureBootConfigDevicePath.c
  • DevPathPci() : SecureBootConfigDevicePath.c
  • DevPathRelativeOffsetRange() : SecureBootConfigDevicePath.c
  • DevPathSata() : SecureBootConfigDevicePath.c
  • DevPathScsi() : SecureBootConfigDevicePath.c
  • DevPathTable : SecureBootConfigDevicePath.c
  • DevPathUart() : SecureBootConfigDevicePath.c
  • DevPathUsb() : SecureBootConfigDevicePath.c
  • DevPathUsbClass() : SecureBootConfigDevicePath.c
  • DevPathUsbWWID() : SecureBootConfigDevicePath.c
  • DevPathVendor() : SecureBootConfigDevicePath.c
  • DevPathVlan() : SecureBootConfigDevicePath.c
  • DirectoryMenu : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • DisplayConnectForbid() : UserProfileManager.h , ModifyAccessPolicy.c
  • DisplayConnectPermit() : ModifyAccessPolicy.c , UserProfileManager.h
  • DisplayLoadForbid() : UserProfileManager.h , ModifyAccessPolicy.c
  • DisplayLoadPermit() : UserProfileManager.h , ModifyAccessPolicy.c
  • DriverEntry() : TcgDxe.c
  • DxeDeferImageLoadHandler() : DxeDeferImageLoadLib.c
  • DxeDeferImageLoadLibConstructor() : DxeDeferImageLoadLib.c
  • DxeImageAuthenticationStatusHandler() : DxeImageAuthenticationStatusLib.c
  • DxeImageAuthenticationStatusLibConstructor() : DxeImageAuthenticationStatusLib.c
  • DxeImageVerificationHandler() : DxeImageVerificationLib.c
  • DxeImageVerificationLibConstructor() : DxeImageVerificationLib.c
  • DxeImageVerificationLibImageRead() : DxeImageVerificationLib.c
  • DxeTpmMeasureBootHandler() : DxeTpmMeasureBootLib.c
  • DxeTpmMeasureBootLibConstructor() : DxeTpmMeasureBootLib.c
  • DxeTpmMeasureBootLibImageRead() : DxeTpmMeasureBootLib.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- e -

  • EFI_AUTHENTICATED_VARIABLE_GUID : AuthenticatedVariableFormat.h
  • EFI_CERT_DB_NAME : AuthService.h
  • EFI_CERT_TYPE_RSA2048_SHA256_SIZE : AuthService.h , DxeImageVerificationLib.h
  • EFI_CERT_TYPE_RSA2048_SIZE : AuthService.h , DxeImageVerificationLib.h , AuthService.h
  • EFI_CUSTOM_MODE_NAME : AuthenticatedVariableFormat.h
  • EFI_MEASURED_FV_HOB_GUID : MeasuredFvHob.h
  • EFI_PHYSICAL_PRESENCE_DATA_GUID : PhysicalPresenceData.h
  • EFI_SECURE_BOOT_ENABLE_DISABLE : AuthenticatedVariableFormat.h
  • EFI_SECURE_BOOT_ENABLE_NAME : AuthenticatedVariableFormat.h
  • EFI_TCG_CLIENT_ACPI_TABLE : TcgDxe.c
  • EFI_TCG_EVENT_HOB_GUID : TcgEventHob.h
  • EFI_TCG_LOG_AREA_SIZE : TcgDxe.c
  • EFI_TCG_SERVER_ACPI_TABLE : TcgDxe.c
  • EFI_VARIABLE_ATTRIBUTES_MASK : Variable.h
  • EfiInvalid : AuthenticatedVariableFormat.h
  • EfiRaw : AuthenticatedVariableFormat.h
  • EfiUnknown : AuthenticatedVariableFormat.h
  • EfiValid : AuthenticatedVariableFormat.h
  • endcheckbox : TcgConfig.vfr , SecureBootConfig.vfr
  • endform : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • endformset : UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr , TcgConfig.vfr , PwdCredentialProviderVfr.Vfr
  • endif : TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • EndofPeiSignalNotifyCallBack() : TcgPei.c
  • endoneof : TcgConfig.vfr , SecureBootConfig.vfr
  • endstring : SecureBootConfig.vfr
  • EnrollImageSignatureToSigDB() : SecureBootConfigImpl.c
  • EnrollKeyExchangeKey() : SecureBootConfigImpl.c
  • EnrollPlatformKey() : SecureBootConfigImpl.c
  • EnrollRsa2048ToKek() : SecureBootConfigImpl.c
  • EnrollSignatureDatabase() : SecureBootConfigImpl.c
  • EnrollUserOnProvider() : ModifyIdentityPolicy.c
  • EnrollX509ToKek() : SecureBootConfigImpl.c
  • EnrollX509toSigDB() : SecureBootConfigImpl.c
  • EsalGetNextVariableName() : Variable.c , Variable.h
  • EsalGetVariable() : Variable.c , Variable.h
  • EsalQueryVariableInfo() : Variable.h , Variable.c
  • EsalSetVariable() : Variable.c , Variable.h
  • EsalVariableCommonEntry() : InitVariable.c
  • ExecutePendingTpmRequest() : DxeTcgPhysicalPresenceLib.c
  • ExecutePhysicalPresence() : DxeTcgPhysicalPresenceLib.c
  • ExpandMemory() : UserProfileManager.h , UserProfileModify.c
  • ExpandTableSize() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • ExpandUsermUserProfileDb() : UserIdentifyManager.c
  • ExpandUserProfile() : UserIdentifyManager.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- f -

  • FakeExtractConfig() : PwdCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c
  • FakeRouteConfig() : PwdCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c
  • FILE_EXPLORER_DISPLAY_CONTEXT : SecureBootConfigImpl.h
  • FILE_EXPLORER_STATE : SecureBootConfigImpl.h
  • FILE_OPTION_MASK : SecureBootConfigNvData.h
  • FILE_OPTION_OFFSET : SecureBootConfigNvData.h
  • FileExplorerDisplayDirectory : SecureBootConfigImpl.h
  • FileExplorerDisplayFileSystem : SecureBootConfigImpl.h
  • FileExplorerDisplayUnknown : SecureBootConfigImpl.h
  • FileExplorerStateEnrollKekFile : SecureBootConfigImpl.h
  • FileExplorerStateEnrollPkFile : SecureBootConfigImpl.h
  • FileExplorerStateEnrollSignatureFileToDb : SecureBootConfigImpl.h
  • FileExplorerStateEnrollSignatureFileToDbx : SecureBootConfigImpl.h
  • FileExplorerStateInActive : SecureBootConfigImpl.h
  • FileExplorerStateUnknown : SecureBootConfigImpl.h
  • FileInfo() : SecureBootConfigFileExplorer.c
  • FileSystemVolumeLabelInfo() : SecureBootConfigFileExplorer.c
  • FindCertsFromDb() : AuthService.c
  • FindFiles() : SecureBootConfigFileExplorer.c
  • FindFileSystem() : SecureBootConfigFileExplorer.c
  • FindInfoByType() : UserProfileManager.h , UserProfileModify.c
  • FindUserInfo() : UserIdentifyManager.c
  • FindUserInfoByType() : PwdCredentialProvider.c , UsbCredentialProvider.c , UserIdentifyManager.c
  • FindUserManagerProtocol() : DxeDeferImageLoadLib.c
  • FindUserProfile() : UserIdentifyManager.c
  • FindUserProfileByInfo() : UserIdentifyManager.c
  • FindVariable() : Variable.c , Variable.h , Variable.c , Variable.h
  • FindVariableEx() : Variable.c
  • FindVariableInCache() : Variable.c
  • FirmwareVolmeInfoPpiNotifyCallback() : TcgPei.c
  • FLAG_NO_PPI_CLEAR : PhysicalPresenceData.h
  • FLAG_NO_PPI_MAINTENANCE : PhysicalPresenceData.h
  • FLAG_NO_PPI_PROVISION : PhysicalPresenceData.h
  • FLAG_RESET_TRACK : PhysicalPresenceData.h
  • flags : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • FlushHob2Nv() : Variable.c , Variable.h
  • FlushHobVariableToFlash() : Variable.c , Variable.h
  • FORM_FILE_EXPLORER_ID : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_DB : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_DBX : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_KEK : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • FORM_FILE_EXPLORER_ID_PK : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORM_OPEN_QUESTION_ID : UserIdentifyManagerData.h
  • formid : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • FORMID_CONNECT_DP : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • FORMID_DEL_USER : UserProfileManagerData.h
  • FORMID_DELETE_KEK_FORM : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • FORMID_ENROLL_KEK_FORM : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORMID_ENROLL_PK_FORM : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORMID_FORBID_CONNECT_DP : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • FORMID_FORBID_LOAD_DP : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • FORMID_GET_PASSWORD_FORM : PwdCredentialProviderData.h
  • FORMID_INVALID_FORM : UserIdentifyManagerData.h
  • FORMID_LOAD_DP : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • FORMID_MODIFY_AP : UserProfileManagerData.h
  • FORMID_MODIFY_IP : UserProfileManagerData.h
  • FORMID_MODIFY_USER : UserProfileManagerData.h
  • FORMID_PERMIT_CONNECT_DP : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • FORMID_PERMIT_LOAD_DP : UserProfileManagerData.h , UserProfileManagerVfr.Vfr
  • FORMID_PROVIDER_FORM : UserIdentifyManagerData.h
  • FORMID_SECURE_BOOT_DB_OPTION_FORM : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_DBX_OPTION_FORM : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_KEK_OPTION_FORM : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORMID_SECURE_BOOT_OPTION_FORM : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_PK_OPTION_FORM : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • FORMID_USER_FORM : UserIdentifyManagerData.h
  • FORMID_USER_INFO : UserProfileManagerData.h
  • FORMID_USER_MANAGE : UserProfileManagerData.h
  • FreeMenu() : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • FsOptionMenu : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • FtwNotificationEvent() : VariableDxe.c
  • FtwVariableSpace() : Variable.h , Reclaim.c , Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- g -

  • gDeferredImageLoad : DxeDeferImageLoadLib.c
  • gEfiAuthenticatedVariableGuid : AuthenticatedVariableFormat.h
  • gEfiCertDbGuid : AuthenticatedVariableFormat.h
  • gEfiCustomModeEnableGuid : AuthenticatedVariableFormat.h
  • gEfiPhysicalPresenceGuid : PhysicalPresenceData.h
  • gEfiSecureBootEnableDisableGuid : AuthenticatedVariableFormat.h
  • gEfiSecurityPkgTokenSpaceGuid : SecurityPkgTokenSpace.h
  • gEfiVariableGuid : VariableInfo.c
  • GenerateCredential() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • GenerateIdentifier() : UserIdentifyManager.c
  • GenerateUserId() : UserIdentifyManager.c
  • GET_PAD_SIZE : AuthenticatedVariableFormat.h
  • GetAccessControl() : DxeDeferImageLoadLib.c
  • GetAccessRight() : UserProfileModify.c , UserProfileManager.h
  • GetAllUserInfo() : UserProfileModify.c
  • GetCertsFromDb() : AuthService.c
  • GetDefferedImageInfo() : DxeDeferImageLoadLib.c , DxeDeferImageLoadLib.h
  • GetEndPointer() : Variable.c
  • GetFileData() : UsbCredentialProvider.c
  • GetFileType() : DxeDeferImageLoadLib.c
  • GetFtwProtocol() : VariableDxe.c , Variable.h , VariableSmm.c
  • GetFvbByHandle() : VariableDxe.c , Variable.h , VariableSmm.c
  • GetFvbCountAndBuffer() : VariableDxe.c , Variable.h , VariableSmm.c
  • GetFvbHandleByAddress() : Reclaim.c
  • GetFvbInfoByAddress() : Variable.c , Variable.h
  • GetIdentifyType() : UserIdentifyManager.c
  • GetImageExeInfoTableSize() : DxeImageVerificationLib.c
  • GetImageType() : DxeImageVerificationLib.c
  • GetIndexFromSupportedLangCodes() : Variable.c
  • GetLangFromSupportedLangCodes() : Variable.c
  • GetLbaAndOffsetByAddress() : Reclaim.c
  • GetMenuEntry() : SecureBootConfigFileExplorer.c
  • GetNextVariablePtr() : Variable.c
  • GetPassword() : PwdCredentialProvider.c
  • GetProcessorsCpuLocation() : TcgDxe.c
  • GetSarProtocol() : Variable.h
  • GetStartPointer() : Variable.c
  • GetStringById() : UserProfileManager.c , PwdCredentialProvider.c , UsbCredentialProvider.c , UserProfileManager.h
  • GetToken() : UsbCredentialProvider.c
  • GetTpmCapability() : DxeTcgPhysicalPresenceLib.c
  • GetTpmState() : TcgConfigImpl.c
  • GetTpmStatus() : TcgDxe.c
  • GetUserInfo() : UserIdentifyManager.c
  • GetUserName() : UserProfileDelete.c
  • GetUserNameInput() : UserProfileManager.h , UserProfileAdd.c
  • GetValidPubKeyNumber() : Variable.c
  • GetVariableDataPtr() : Variable.c , Variable.h
  • GetVariableNamePtr() : Variable.c
  • GetVariableStatisticsData() : VariableInfo.c
  • GetVariableStore() : Variable.c
  • GetVariableStoreStatus() : Variable.c
  • GetVarStoreHeader() : Variable.c
  • gMeasuredFvHobGuid : MeasuredFvHob.h
  • gPeiLockPhysicalPresencePpiGuid : LockPhysicalPresence.h
  • gPeiTpmInitializedPpiGuid : TpmInitialized.h
  • gPwdCredentialProviderDriver : PwdCredentialProvider.c
  • gPwdCredentialProviderGuid : PwdCredentialProviderHii.h
  • GrowBuffer() : SecureBootConfigFileExplorer.c
  • gSecureBootConfigFormSetGuid : SecureBootConfigHii.h
  • gSmmVariable : VariableSmm.c
  • gTcgConfigFormSetGuid : TcgConfigHii.h
  • gTcgEventEntryHobGuid : TcgEventHob.h
  • guid : TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , SecureBootConfig.vfr , PwdCredentialProviderVfr.Vfr , UserProfileManagerVfr.Vfr
  • GuidToString() : SecureBootConfigImpl.h , SecureBootConfigMisc.c
  • gUsbCredentialProviderDriver : UsbCredentialProvider.c
  • gUsbCredentialProviderGuid : UsbCredentialProviderHii.h
  • gUserIdentifyManager : UserIdentifyManager.c
  • gUserIdentifyManagerGuid : UserIdentifyManagerHii.h
  • gUserProfileManagerGuid : UserProfileManagerHii.h
  • gVariableInfo : Variable.c , VariableSmm.c , Variable.c , VariableDxe.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- h -

  • HASH_FINAL : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASH_GET_CONTEXT_SIZE : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • HASH_INIT : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASH_UPDATE : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • HASHALG_MAX : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA1 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA224 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA256 : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • HASHALG_SHA384 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA512 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHED_CREDENTIAL_LEN : UsbCredentialProvider.h
  • HashLogExtendEvent() : TcgPei.c
  • HashPeImage() : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • HashPeImageByType() : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • HasPk : SecureBootConfig.vfr
  • HaveValidTpmRequest() : DxeTcgPhysicalPresenceLib.c
  • HEADER_ALIGN : AuthenticatedVariableFormat.h
  • HEADER_ALIGNMENT : AuthenticatedVariableFormat.h
  • help : UserProfileManagerVfr.Vfr , PwdCredentialProviderVfr.Vfr , TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , SecureBootConfig.vfr
  • HideSecureBoot : SecureBootConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- i -

  • IdentifyAndTypeUser() : UserIdentifyManager.c
  • IdentifyAutoLogonUser() : UserIdentifyManager.c
  • IdentifyByProviderId() : UserIdentifyManager.c
  • IdentifyOrTypeUser() : UserIdentifyManager.c
  • IdentifyUser() : UserIdentifyManager.c
  • IMAGE_FROM_FIXED_MEDIA : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • IMAGE_FROM_FV : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • IMAGE_FROM_OPTION_ROM : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • IMAGE_FROM_REMOVABLE_MEDIA : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • IMAGE_TYPE : SecureBootConfigImpl.h
  • IMAGE_UNKNOWN : DxeImageVerificationLib.h , DxeDeferImageLoadLib.h
  • ImageType_IA32 : SecureBootConfigImpl.h
  • ImageType_X64 : SecureBootConfigImpl.h
  • InCustomMode() : AuthService.c
  • INFO_PAYLOAD_SIZE : UserIdentifyManager.h
  • InitCommunicateBuffer() : VariableSmmRuntimeDxe.c
  • InitCredentialTable() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • InitFormBrowser() : PwdCredentialProvider.c , UsbCredentialProvider.c , UserIdentifyManager.c
  • InitializeLock() : VariableDxe.c , Variable.h , VariableSmm.c
  • InitializeTcgSmm() : TcgSmm.c
  • InitProviderInfo() : UserProfileManager.c , UserIdentifyManager.c
  • InitUserProfileDb() : UserIdentifyManager.c
  • InsertCertsToDb() : AuthService.c
  • InstallAcpiTable() : TcgDxe.c
  • InstallSecureBootConfigForm() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • InstallTcgConfigForm() : TcgConfigImpl.c , TcgConfigImpl.h
  • Int2OctStr() : SecureBootConfigMisc.c , SecureBootConfigImpl.h
  • InternalEmptyFuntion() : UserIdentifyManager.c
  • InternalIsAddressInSmram() : VariableSmm.c
  • InternalIsAddressValid() : VariableSmm.c
  • IsBootOption() : DxeDeferImageLoadLib.c
  • IsConsoleReady() : UserIdentifyManager.c
  • IsDerEncodeCertificate() : SecureBootConfigImpl.c
  • IsDevicePathInList() : DxeDeferImageLoadLib.c
  • IsHexaDecimalDigitCharacter() : Variable.c
  • IsHwErrRecVariable() : Variable.c
  • IsLoadForbidden() : ModifyAccessPolicy.c
  • ISO_639_2_ENTRY_SIZE : Variable.h
  • IsPkcsSignedDataVerifiedBySignatureList() : DxeImageVerificationLib.c
  • IsReadOnlyVariable() : Variable.c
  • IsSignatureFoundInDatabase() : DxeImageVerificationLib.c
  • IsTpmUsable() : TcgPei.c
  • IsValidPubKeyIndex() : Variable.c
  • IsValidVariableHeader() : Variable.c , Variable.h , Variable.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- p -

  • PASSWORD_TABLE_INC : PwdCredentialProvider.h
  • PasswordProviderInit() : PwdCredentialProvider.c
  • PEI_LOCK_PHYSICAL_PRESENCE : LockPhysicalPresence.h
  • PEI_LOCK_PHYSICAL_PRESENCE_PPI : LockPhysicalPresence.h
  • PEI_LOCK_PHYSICAL_PRESENCE_PPI_GUID : LockPhysicalPresence.h
  • PEI_TPM_INITIALIZED_PPI_GUID : TpmInitialized.h
  • PeiGetNextVariableName() : Variable.h , Variable.c
  • PeiGetVariable() : Variable.c , Variable.h
  • PeimEntry() : PhysicalPresencePei.c
  • PeimEntryMA() : TcgPei.c
  • PeimEntryMP() : TcgPei.c
  • PeimInitializeVariableServices() : Variable.c , Variable.h
  • Physical : Variable.h
  • PHYSICAL_PRESENCE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_CLEAR : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEACTIVATE_DISABLE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DISABLE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_NO_ACTION : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_OPERATOR_AUTH : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_VARIABLE : PhysicalPresenceData.h
  • PhysicalPresenceCallback() : TcgSmm.c
  • PhysicalPresenceGetStringById() : DxeTcgPhysicalPresenceLib.c
  • PhysicalPresencePpiNotifyCallback() : TcgPei.c
  • PhysicalPresent : SecureBootConfig.vfr
  • PP_REQUEST_ALLOWED_AND_PPUSER_NOT_REQUIRED : TcgSmm.h
  • PP_REQUEST_ALLOWED_AND_PPUSER_REQUIRED : TcgSmm.h
  • PP_REQUEST_BIOS_ONLY : TcgSmm.h
  • PP_REQUEST_BLOCKED : TcgSmm.h
  • PP_REQUEST_NOT_IMPLEMENTED : TcgSmm.h
  • PP_SUBMIT_REQUEST_BLOCKED_BY_BIOS_SETTINGS : TcgSmm.h
  • PP_SUBMIT_REQUEST_GENERAL_FAILURE : TcgSmm.h
  • PP_SUBMIT_REQUEST_NOT_IMPLEMENTED : TcgSmm.h
  • PP_SUBMIT_REQUEST_SUCCESS : TcgSmm.h
  • PrintInfoFromSmm() : VariableInfo.c
  • ProcessVariable() : AuthService.c , AuthService.h
  • ProcessVarWithKek() : AuthService.c , AuthService.h
  • ProcessVarWithPk() : AuthService.h , AuthService.c , AuthService.h , AuthService.c
  • prompt : TcgConfig.vfr , SecureBootConfig.vfr , UserProfileManagerVfr.Vfr
  • ProviderAlreadyInPolicy() : ModifyIdentityPolicy.c
  • PubKeyStoreFilter() : Variable.c
  • PublishAcpiTable() : TcgSmm.c
  • PublishUserTable() : UserIdentifyManager.c
  • PutDefferedImageInfo() : DxeDeferImageLoadLib.c
  • PWD_CREDENTIAL_PROVIDER_GUID : PwdCredentialProviderHii.h
  • PWD_PROVIDER_SIGNATURE : PwdCredentialProvider.h
  • PwdCredentialProviderStrings : PwdCredentialProvider.h
  • PwdCredentialProviderVfrBin : PwdCredentialProvider.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- q -

  • QUERY_USER_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • questionid : TcgConfig.vfr , SecureBootConfig.vfr
  • QUESTIONID_USER_MANAGE : UserProfileManagerData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- r -

  • ReadAndMeasureBootVariable() : TcgDxe.c
  • ReadFileContent() : SecureBootConfigMisc.c , SecureBootConfigImpl.h
  • ReadUserKey() : DxeTcgPhysicalPresenceLib.c
  • ReadVariable() : TcgDxe.c
  • Reclaim() : Variable.h , Variable.c
  • ReclaimForOS() : Variable.c , Variable.h
  • RefreshUpdateData() : SecureBootConfigFileExplorer.c
  • ReleaseLockOnlyAtBootTime() : Variable.h , VariableSmm.c , VariableSmmRuntimeDxe.c , Variable.c , VariableDxe.c
  • ResolveAccessPolicy() : UserProfileModify.c
  • ResolveCount() : UserProfileModify.c
  • ResolveDate() : UserProfileModify.c
  • ResolveIdentityPolicy() : UserProfileModify.c , UserProfileManager.h
  • RuntimeServiceGetNextVariableName() : VariableSmmRuntimeDxe.c
  • RuntimeServiceGetVariable() : VariableSmmRuntimeDxe.c
  • RuntimeServiceQueryVariableInfo() : VariableSmmRuntimeDxe.c
  • RuntimeServiceSetVariable() : VariableSmmRuntimeDxe.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- s -

  • SaveAccessPolicy() : UserProfileManager.h , ModifyAccessPolicy.c
  • SaveIdentityPolicy() : ModifyIdentityPolicy.c , UserProfileManager.h
  • SaveNvUserProfile() : UserIdentifyManager.c
  • SavePpRequest() : TcgConfigImpl.c
  • SaveSecureBootVariable() : SecureBootConfigImpl.c
  • SECURE_BOOT_DISABLE : AuthenticatedVariableFormat.h
  • SECURE_BOOT_ENABLE : AuthenticatedVariableFormat.h
  • SECURE_BOOT_GUID_SIZE : SecureBootConfigNvData.h
  • SECURE_BOOT_GUID_STORAGE_SIZE : SecureBootConfigNvData.h
  • SECURE_BOOT_MAX_ATTEMPTS_NUM : SecureBootConfigNvData.h
  • SECURE_BOOT_MODE_CUSTOM : SecureBootConfigNvData.h
  • SECURE_BOOT_MODE_STANDARD : SecureBootConfigNvData.h
  • SECUREBOOT_ADD_PK_FILE_FORM_ID : SecureBootConfig.vfr , SecureBootConfigNvData.h
  • SECUREBOOT_CONFIG_FORM_SET_GUID : SecureBootConfigHii.h
  • SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE : SecureBootConfigImpl.h
  • SECUREBOOT_CONFIG_PRIVATE_FROM_THIS : SecureBootConfigImpl.h
  • SECUREBOOT_CONFIGURATION : SecureBootConfig.vfr
  • SECUREBOOT_CONFIGURATION_FORM_ID : SecureBootConfigNvData.h
  • SECUREBOOT_CONFIGURATION_VARSTORE_ID : SecureBootConfigNvData.h
  • SECUREBOOT_DELETE_SIGNATURE_FROM_DB : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • SECUREBOOT_DELETE_SIGNATURE_FROM_DBX : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • SECUREBOOT_ENROLL_SIGNATURE_TO_DB : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • SECUREBOOT_ENROLL_SIGNATURE_TO_DBX : SecureBootConfigNvData.h , SecureBootConfig.vfr
  • SECUREBOOT_MENU_ENTRY_SIGNATURE : SecureBootConfigImpl.h
  • SECUREBOOT_MENU_OPTION_SIGNATURE : SecureBootConfigImpl.h
  • SecureBootCallback() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • SecureBootConfigBin : SecureBootConfigImpl.h
  • SecureBootConfigDriverEntryPoint() : SecureBootConfigDriver.c
  • SecureBootConfigDriverUnload() : SecureBootConfigDriver.c
  • SecureBootConfigDxeStrings : SecureBootConfigImpl.h
  • SecureBootExtractConfig() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • SecureBootExtractConfigFromVariable() : SecureBootConfigImpl.c
  • SecureBootMode : SecureBootConfig.vfr
  • SecureBootRouteConfig() : SecureBootConfigImpl.h , SecureBootConfigImpl.c
  • SECURITYPKG_TOKEN_SPACE_GUID : SecurityPkgTokenSpace.h
  • SelectUserToDelete() : UserProfileManager.h , UserProfileDelete.c
  • SelectUserToModify() : UserProfileManager.h , UserProfileModify.c
  • SendCommunicateBuffer() : VariableSmmRuntimeDxe.c
  • SetAccessPolicy() : UserProfileAdd.c
  • SetCreateDate() : UserProfileAdd.c
  • SetIdentityPolicy() : UserProfileAdd.c
  • SetSecureBootMode() : SecureBootConfigImpl.c
  • SetupEventLog() : TcgDxe.c
  • SetUserName() : UserProfileAdd.c
  • SHA1_DIGEST_SIZE : SecureBootConfigImpl.h
  • SHA256_DIGEST_SIZE : SecureBootConfigImpl.h
  • SignalEventUserProfileChanged() : UserIdentifyManager.c
  • SIGSUPPORT_NUM : AuthService.h
  • SmmFtwNotificationEvent() : VariableSmm.c
  • SmmVariableGetStatistics() : VariableSmm.c
  • SmmVariableHandler() : VariableSmm.c
  • SmmVariableReady() : VariableSmmRuntimeDxe.c
  • SmmVariableWriteReady() : VariableSmmRuntimeDxe.c
  • STANDARD_SECURE_BOOT_MODE : AuthenticatedVariableFormat.h
  • StrDuplicate() : SecureBootConfigFileExplorer.c
  • StringToGuid() : SecureBootConfigImpl.h , SecureBootConfigMisc.c
  • subclass : UserProfileManagerVfr.Vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- t -

  • TCG_CONFIG_FORM_SET_GUID : TcgConfigHii.h
  • TCG_CONFIG_PRIVATE_DATA_FROM_THIS : TcgConfigImpl.h
  • TCG_CONFIG_PRIVATE_DATA_SIGNATURE : TcgConfigImpl.h
  • TCG_CONFIGURATION : TcgConfig.vfr
  • TCG_CONFIGURATION_FORM_ID : TcgConfigNvData.h
  • TCG_CONFIGURATION_VARSTORE_ID : TcgConfigNvData.h
  • TCG_DXE_DATA : TcgDxe.c
  • TCG_DXE_DATA_FROM_THIS : TcgDxe.c
  • TCG_PLATFORM_TYPE_CLIENT : TpmCommLib.h
  • TCG_PLATFORM_TYPE_SERVER : TpmCommLib.h
  • TcgCallback() : TcgConfigImpl.c , TcgConfigImpl.h
  • TcgConfigBin : TcgConfigImpl.h
  • TcgConfigDriverEntryPoint() : TcgConfigDriver.c
  • TcgConfigDriverUnload() : TcgConfigDriver.c
  • TcgConfigDxeStrings : TcgConfigImpl.h
  • TcgDxeHashAll() : TcgDxe.c
  • TcgDxeHashLogExtendEvent() : TcgDxe.c
  • TcgDxeHashLogExtendEventI() : TcgDxe.c
  • TcgDxeLogEvent() : TcgDxe.c
  • TcgDxeLogEventI() : TcgDxe.c
  • TcgDxePassThroughToTpm() : TcgDxe.c
  • TcgDxeStatusCheck() : TcgDxe.c
  • TcgExtractConfig() : TcgConfigImpl.c , TcgConfigImpl.h
  • TcgMeasureAction() : TcgDxe.c
  • TcgMeasureGptTable() : DxeTpmMeasureBootLib.c
  • TcgMeasurePeImage() : DxeTpmMeasureBootLib.c
  • TcgPhysicalPresenceLibConstructor() : DxeTcgPhysicalPresenceLib.c
  • TcgPhysicalPresenceLibNeedUserConfirm() : TcgPhysicalPresenceLib.h , DxeTcgPhysicalPresenceLib.c
  • TcgPhysicalPresenceLibProcessRequest() : TcgPhysicalPresenceLib.h , DxeTcgPhysicalPresenceLib.c
  • TcgRouteConfig() : TcgConfigImpl.c , TcgConfigImpl.h
  • text : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • TIS_PC_ACC_ACTIVE : TpmCommLib.h
  • TIS_PC_ACC_ESTABLISH : TpmCommLib.h
  • TIS_PC_ACC_PENDIND : TpmCommLib.h
  • TIS_PC_ACC_RQUUSE : TpmCommLib.h
  • TIS_PC_ACC_SEIZE : TpmCommLib.h
  • TIS_PC_ACC_SEIZED : TpmCommLib.h
  • TIS_PC_REGISTERS_PTR : TpmCommLib.h
  • TIS_PC_STS_DATA : TpmCommLib.h
  • TIS_PC_STS_EXPECT : TpmCommLib.h
  • TIS_PC_STS_GO : TpmCommLib.h
  • TIS_PC_STS_READY : TpmCommLib.h
  • TIS_PC_STS_RETRY : TpmCommLib.h
  • TIS_PC_VALID : TpmCommLib.h
  • TIS_TIMEOUT_A : TpmCommLib.h
  • TIS_TIMEOUT_B : TpmCommLib.h
  • TIS_TIMEOUT_C : TpmCommLib.h
  • TIS_TIMEOUT_D : TpmCommLib.h
  • TIS_TPM_HANDLE : TpmCommLib.h
  • TisPcExecute() : TisDxe.c , TpmComm.h
  • TisPcPrepareCommand() : TpmCommLib.h , TisPc.c
  • TisPcPresenceCheck() : TisPc.c
  • TisPcReadBurstCount() : TpmCommLib.h , TisPc.c
  • TisPcReceive() : TisDxe.c
  • TisPcReceiveV() : TisDxe.c
  • TisPcRequestUseTpm() : TpmCommLib.h , TisPc.c
  • TisPcSend() : TisDxe.c
  • TisPcSendV() : TisDxe.c
  • TisPcWaitRegisterBits() : TpmCommLib.h , TisPc.c
  • TisTpmCommand() : TisPei.c , TpmComm.c
  • title : UserProfileManagerVfr.Vfr , TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , SecureBootConfig.vfr
  • Tpm12MeasureAndLogData() : DxeTpmMeasurementLib.c
  • TPM_BASE_ADDRESS : TpmCommLib.h
  • TPM_PP_BIOS_FAILURE : DxeTcgPhysicalPresenceLib.c
  • TPM_PP_USER_ABORT : DxeTcgPhysicalPresenceLib.c
  • TPMCMDBUFLENGTH : TpmCommLib.h
  • TpmCommandBuf : TisDxe.c
  • TpmCommandNoReturnData() : DxeTcgPhysicalPresenceLib.c
  • TpmCommContinueSelfTest() : TpmComm.c , TpmComm.h
  • TpmCommExtend() : TpmComm.c , TpmComm.h
  • TpmCommGetCapability() : TpmComm.h , TpmComm.c
  • TpmCommGetFlags() : TpmComm.h , TpmComm.c
  • TpmCommHashAll() : TpmComm.c , TpmCommLib.h
  • TpmCommLogEvent() : TpmComm.h , TpmComm.c
  • TpmCommPhysicalPresence() : TpmComm.c , TpmComm.h
  • TpmCommStartup() : TpmComm.c , TpmComm.h
  • TpmEnable : TcgConfig.vfr
  • TpmMeasureAndLogData() : TpmMeasurementLib.h , DxeTpmMeasurementLib.c
  • TpmPhysicalPresence() : DxeTcgPhysicalPresenceLib.c
  • TRUE : TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • TWO_BYTE_ENCODE : SecureBootConfigImpl.h , DxeImageVerificationLib.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- u -

  • UefiMain() : VariableInfo.c
  • UninstallSecureBootConfigForm() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • UninstallTcgConfigForm() : TcgConfigImpl.c , TcgConfigImpl.h
  • UpdateCredentialProvider() : ModifyIdentityPolicy.c
  • UpdateDeletePage() : SecureBootConfigImpl.c
  • UpdateFileExplorePage() : SecureBootConfigFileExplorer.c
  • UpdateFileExplorer() : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • UpdatePlatformMode() : AuthService.c , AuthService.h
  • UpdateUserInfo() : UserIdentifyManager.c
  • UpdateVariable() : Variable.h , Variable.c , Variable.h , Variable.c
  • UpdateVariableCache() : Variable.c
  • UpdateVariableInfo() : Variable.c
  • UpdateVariableStore() : Variable.c
  • USB_CREDENTIAL_PROVIDER_GUID : UsbCredentialProviderHii.h
  • USB_PROVIDER_SIGNATURE : UsbCredentialProvider.h
  • USB_TABLE_INC : UsbCredentialProvider.h
  • UsbCredentialProviderStrings : UsbCredentialProvider.h
  • UsbProviderInit() : UsbCredentialProvider.c
  • USER_IDENTIFY_MANAGER_GUID : UserIdentifyManagerHii.h
  • USER_MANAGER_CLASS : UserProfileManagerVfr.Vfr
  • USER_MANAGER_SIGNATURE : UserIdentifyManager.h
  • USER_MANAGER_SUBCLASS : UserProfileManagerVfr.Vfr
  • USER_NAME_LENGTH : UserProfileManager.h
  • USER_NUMBER_INC : UserIdentifyManager.h
  • USER_PROFILE_MANAGER_GUID : UserProfileManagerHii.h
  • USER_PROFILE_MANAGER_SIGNATURE : UserProfileManager.h
  • UserConfirm() : DxeTcgPhysicalPresenceLib.c
  • UserIdentifyManagerCallback() : UserIdentifyManager.c
  • UserIdentifyManagerInit() : UserIdentifyManager.c
  • UserIdentifyManagerStrings : UserIdentifyManager.h
  • UserIdentifyManagerVfrBin : UserIdentifyManager.h
  • UserPhysicalPresent() : PlatformSecureLib.h , PlatformSecureLibNull.c
  • UserProfileCreate() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileCurrent() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileDelete() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileDeleteInfo() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileFind() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileGetInfo() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileGetNext() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileGetNextInfo() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileIdentify() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileManagerCallback() : UserProfileManager.c
  • UserProfileManagerInit() : UserProfileManager.c
  • UserProfileManagerStrings : UserProfileManager.h
  • UserProfileManagerVfrBin : UserProfileManager.h
  • UserProfileNotify() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileSetInfo() : UserIdentifyManager.h , UserIdentifyManager.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- v -

  • value : TcgConfig.vfr , SecureBootConfig.vfr
  • VAR_ADDED : AuthenticatedVariableFormat.h
  • VAR_AUTH_KEY_DB : Variable.h
  • VAR_DELETED : AuthenticatedVariableFormat.h
  • VAR_HEADER_VALID_ONLY : AuthenticatedVariableFormat.h
  • VAR_HW_ERR_REC : Variable.h
  • VAR_IN_DELETED_TRANSITION : AuthenticatedVariableFormat.h
  • VAR_KEY_EXCHANGE_KEY : Variable.h
  • VAR_LANG : Variable.h
  • VAR_LANG_CODES : Variable.h
  • VAR_PLATFORM_KEY : Variable.h
  • VAR_PLATFORM_LANG : Variable.h
  • VAR_PLATFORM_LANG_CODES : Variable.h
  • VAR_SETUP_MODE : Variable.h
  • VARIABLE_DATA : AuthenticatedVariableFormat.h
  • VARIABLE_INFO_ENTRY : AuthenticatedVariableFormat.h
  • VARIABLE_POINTER_TYPE : Variable.h
  • VARIABLE_RECLAIM_THRESHOLD : Variable.h
  • VARIABLE_STORE_FORMATTED : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_HEALTHY : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_SIGNATURE : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_STATUS : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_TYPE : Variable.h
  • VariableAddressChangeEvent() : VariableSmmRuntimeDxe.c
  • VariableClassAddressChangeEvent() : InitVariable.c , Variable.h , VariableDxe.c
  • VariableCommonInitialize() : Variable.c , Variable.h , Variable.c , Variable.h
  • VariableGetBestLanguage() : Variable.c
  • VariableServiceGetNextVariableName() : Variable.c , Variable.h
  • VariableServiceGetVariable() : Variable.h , Variable.c
  • VariableServiceInitialize() : InitVariable.c , Variable.h , VariableDxe.c , VariableSmm.c
  • VariableServiceQueryVariableInfo() : Variable.c , Variable.h
  • VariableServiceSetVariable() : Variable.h , Variable.c
  • VariableSmmRuntimeInitialize() : VariableSmmRuntimeDxe.c
  • VariableStoreTypeHob : Variable.h
  • VariableStoreTypeMax : Variable.h
  • VariableStoreTypeNv : Variable.h
  • VariableStoreTypeVolatile : Variable.h
  • VariableWriteServiceInitialize() : Variable.h , Variable.c
  • varid : TcgConfig.vfr , SecureBootConfig.vfr
  • VerifyCounterBasedPayload() : AuthService.c
  • VerifyDataPayload() : AuthService.c
  • VerifyDevicePath() : DxeDeferImageLoadLib.c
  • VerifyTimeBasedPayload() : AuthService.h , AuthService.c
  • VerifyVariable() : AuthService.c , AuthService.h
  • Virtual : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • _
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- w -

  • WIN_CERT_UEFI_RSA2048_SIZE : SecureBootConfigImpl.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- a -

  • ACCESS_SETUP_ADMIN : UserProfileManagerData.h
  • ACCESS_SETUP_NORMAL : UserProfileManagerData.h
  • ACCESS_SETUP_RESTRICTED : UserProfileManagerData.h
  • ACPI_FUNCTION_DSM_MEMORY_CLEAR_INTERFACE : TcgSmm.h
  • ACPI_FUNCTION_GET_PENDING_REQUEST_BY_OS : TcgSmm.h
  • ACPI_FUNCTION_GET_PHYSICAL_PRESENCE_INTERFACE_VERSION : TcgSmm.h
  • ACPI_FUNCTION_GET_PLATFORM_ACTION_TO_TRANSITION_TO_BIOS : TcgSmm.h
  • ACPI_FUNCTION_GET_USER_CONFIRMATION_STATUS_FOR_REQUEST : TcgSmm.h
  • ACPI_FUNCTION_PTS_CLEAR_MOR_BIT : TcgSmm.h
  • ACPI_FUNCTION_RETURN_REQUEST_RESPONSE_TO_OS : TcgSmm.h
  • ACPI_FUNCTION_SUBMIT_PREFERRED_USER_LANGUAGE : TcgSmm.h
  • ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS : TcgSmm.h
  • ACPI_FUNCTION_SUBMIT_REQUEST_TO_BIOS_2 : TcgSmm.h
  • ALIGN_SIZE : DxeImageVerificationLib.h
  • ALIGNMENT : AuthenticatedVariableFormat.h
  • ALIGNMENT_SIZE : DxeImageVerificationLib.h
  • ALLOW_EXECUTE_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • ALWAYS_EXECUTE : DxeImageVerificationLib.h
  • AUTHINFO2_SIZE : AuthService.h
  • AUTHINFO_SIZE : AuthService.h
  • AUTHVAR_KEYDB_NAME : AuthService.h , Variable.h
  • AUTHVAR_KEYDB_NAME_SIZE : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- k -

  • KEY_ADD_IP_OP : UserProfileManagerData.h
  • KEY_ADD_LOGICAL_OP : UserProfileManagerData.h
  • KEY_ADD_USER : UserProfileManagerData.h
  • KEY_AP_RETURN : UserProfileManagerData.h
  • KEY_AP_RETURN_UIF : UserProfileManagerData.h
  • KEY_CONN_DP : UserProfileManagerData.h
  • KEY_CONNECT_FORBID : UserProfileManagerData.h
  • KEY_CONNECT_FORBID_MODIFY : UserProfileManagerData.h
  • KEY_CONNECT_PERMIT : UserProfileManagerData.h
  • KEY_CONNECT_PERMIT_MODIFY : UserProfileManagerData.h
  • KEY_DEL_USER : UserProfileManagerData.h
  • KEY_DELETE_KEK : SecureBootConfigNvData.h
  • KEY_DISPLAY_DP_MASK : UserProfileManagerData.h
  • KEY_ENROLL_KEK : SecureBootConfigNvData.h
  • KEY_ENROLL_PK : SecureBootConfigNvData.h
  • KEY_ENTER_NEXT_FORM : UserProfileManagerData.h
  • KEY_FIRST_FORM_MASK : UserProfileManagerData.h
  • KEY_FORBID_MODIFY : UserProfileManagerData.h
  • KEY_GET_PASSWORD : PwdCredentialProviderData.h
  • KEY_HIDE_TPM : TcgConfigNvData.h
  • KEY_IP_RETURN : UserProfileManagerData.h
  • KEY_IP_RETURN_UIF : UserProfileManagerData.h
  • KEY_LOAD_DP : UserProfileManagerData.h
  • KEY_LOAD_FORBID : UserProfileManagerData.h
  • KEY_LOAD_FORBID_MODIFY : UserProfileManagerData.h
  • KEY_LOAD_PERMIT : UserProfileManagerData.h
  • KEY_LOAD_PERMIT_MODIFY : UserProfileManagerData.h
  • KEY_MODIFY_AP : UserProfileManagerData.h
  • KEY_MODIFY_AP_DP : UserProfileManagerData.h
  • KEY_MODIFY_AP_MASK : UserProfileManagerData.h
  • KEY_MODIFY_BOOT : UserProfileManagerData.h
  • KEY_MODIFY_CONN : UserProfileManagerData.h
  • KEY_MODIFY_CONNECT : UserProfileManagerData.h
  • KEY_MODIFY_DP_MASK : UserProfileManagerData.h
  • KEY_MODIFY_INFO_MASK : UserProfileManagerData.h
  • KEY_MODIFY_IP : UserProfileManagerData.h
  • KEY_MODIFY_IP_MASK : UserProfileManagerData.h
  • KEY_MODIFY_LOAD : UserProfileManagerData.h
  • KEY_MODIFY_MTYPE : UserProfileManagerData.h
  • KEY_MODIFY_NAME : UserProfileManagerData.h
  • KEY_MODIFY_PROV : UserProfileManagerData.h
  • KEY_MODIFY_RIGHT : UserProfileManagerData.h
  • KEY_MODIFY_SETUP : UserProfileManagerData.h
  • KEY_MODIFY_USER : UserProfileManagerData.h
  • KEY_MODIFY_USER_NAME : UserProfileManagerData.h
  • KEY_OPEN_CLOSE_FORM_ACTION : UserProfileManagerData.h
  • KEY_PERMIT_MODIFY : UserProfileManagerData.h
  • KEY_SECOND_FORM_MASK : UserProfileManagerData.h
  • KEY_SECURE_BOOT_DB_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_DBX_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_DELETE_PK : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_ENABLE : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_KEK_GUID : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_KEK_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_MODE : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_PK_OPTION : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_SIGNATURE_GUID_DB : SecureBootConfigNvData.h
  • KEY_SECURE_BOOT_SIGNATURE_GUID_DBX : SecureBootConfigNvData.h
  • KEY_SELECT_USER : UserProfileManagerData.h
  • KEY_TPM_ACTION : TcgConfigNvData.h
  • KEY_TPM_MOR_ENABLE : TcgConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_DB : SecureBootConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_DBX : SecureBootConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_KEK : SecureBootConfigNvData.h
  • KEY_VALUE_NO_SAVE_AND_EXIT_PK : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_DB : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_DBX : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_KEK : SecureBootConfigNvData.h
  • KEY_VALUE_SAVE_AND_EXIT_PK : SecureBootConfigNvData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- l -

  • LABEL_AP_MOD_FUNC : UserProfileManagerData.h
  • LABEL_DB_DELETE : SecureBootConfigNvData.h
  • LABEL_DBX_DELETE : SecureBootConfigNvData.h
  • LABEL_END : TcgConfigNvData.h , UserIdentifyManagerData.h , UserProfileManagerData.h , SecureBootConfigNvData.h
  • LABEL_IP_MOD_FUNC : UserProfileManagerData.h
  • LABEL_KEK_DELETE : SecureBootConfigNvData.h
  • LABEL_PERMIT_LOAD_FUNC : UserProfileManagerData.h
  • LABEL_PROVIDER_NAME : UserIdentifyManagerData.h
  • LABEL_TCG_CONFIGURATION_HIDETPM : TcgConfigNvData.h
  • LABEL_USER_DEL_FUNC : UserProfileManagerData.h
  • LABEL_USER_INFO_FUNC : UserProfileManagerData.h
  • LABEL_USER_MANAGE_FUNC : UserProfileManagerData.h
  • LABEL_USER_MOD_FUNC : UserProfileManagerData.h
  • LABEL_USER_NAME : UserIdentifyManagerData.h
  • LABLE_FORBID_LOAD_FUNC : UserProfileManagerData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- m -

  • MAX_CERTDB_SIZE : AuthService.h
  • MAX_CHAR : SecureBootConfigImpl.h
  • MAX_DIGEST_SIZE : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • MAX_KEY_NUM : Variable.h , AuthService.h
  • MAX_KEYDB_SIZE : AuthService.h , Variable.h
  • MAX_NAME_SIZE : Variable.h
  • MAX_NOTIFY_STRING_LEN : DxeImageVerificationLib.h
  • MOR_REQUEST_GENERAL_FAILURE : TcgSmm.h
  • MOR_REQUEST_SUCCESS : TcgSmm.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- n -

  • NEVER_EXECUTE : DxeImageVerificationLib.h
  • NUM_VAR_NAME : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- o -

  • OFFSET_OF_AUTHINFO2_CERT_DATA : AuthService.h
  • OPTION_CONFIG_QUESTION_ID : SecureBootConfigNvData.h
  • OPTION_CONFIG_RANGE : SecureBootConfigNvData.h
  • OPTION_DEL_DB_QUESTION_ID : SecureBootConfigNvData.h
  • OPTION_DEL_DBX_QUESTION_ID : SecureBootConfigNvData.h
  • OPTION_DEL_KEK_QUESTION_ID : SecureBootConfigNvData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- c -

  • CONFIG_OPTION_OFFSET : SecureBootConfigNvData.h
  • CONFIRM_BUFFER_SIZE : DxeTcgPhysicalPresenceLib.c
  • CREDENTIAL_LEN : PwdCredentialProvider.h
  • CUSTOM_SECURE_BOOT_MODE : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- d -

  • DEFAULT_PROFILE_SIZE : UserIdentifyManager.h
  • DEFER_EXECUTE_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • DENY_EXECUTE_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- e -

  • EFI_AUTHENTICATED_VARIABLE_GUID : AuthenticatedVariableFormat.h
  • EFI_CERT_DB_NAME : AuthService.h
  • EFI_CERT_TYPE_RSA2048_SHA256_SIZE : AuthService.h , DxeImageVerificationLib.h
  • EFI_CERT_TYPE_RSA2048_SIZE : AuthService.h , DxeImageVerificationLib.h , AuthService.h
  • EFI_CUSTOM_MODE_NAME : AuthenticatedVariableFormat.h
  • EFI_MEASURED_FV_HOB_GUID : MeasuredFvHob.h
  • EFI_PHYSICAL_PRESENCE_DATA_GUID : PhysicalPresenceData.h
  • EFI_SECURE_BOOT_ENABLE_DISABLE : AuthenticatedVariableFormat.h
  • EFI_SECURE_BOOT_ENABLE_NAME : AuthenticatedVariableFormat.h
  • EFI_TCG_EVENT_HOB_GUID : TcgEventHob.h
  • EFI_TCG_LOG_AREA_SIZE : TcgDxe.c
  • EFI_VARIABLE_ATTRIBUTES_MASK : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- f -

  • FILE_OPTION_MASK : SecureBootConfigNvData.h
  • FILE_OPTION_OFFSET : SecureBootConfigNvData.h
  • FLAG_NO_PPI_CLEAR : PhysicalPresenceData.h
  • FLAG_NO_PPI_MAINTENANCE : PhysicalPresenceData.h
  • FLAG_NO_PPI_PROVISION : PhysicalPresenceData.h
  • FLAG_RESET_TRACK : PhysicalPresenceData.h
  • FORM_FILE_EXPLORER_ID : SecureBootConfigNvData.h
  • FORM_FILE_EXPLORER_ID_DB : SecureBootConfigNvData.h
  • FORM_FILE_EXPLORER_ID_DBX : SecureBootConfigNvData.h
  • FORM_FILE_EXPLORER_ID_KEK : SecureBootConfigNvData.h
  • FORM_FILE_EXPLORER_ID_PK : SecureBootConfigNvData.h
  • FORM_OPEN_QUESTION_ID : UserIdentifyManagerData.h
  • FORMID_CONNECT_DP : UserProfileManagerData.h
  • FORMID_DEL_USER : UserProfileManagerData.h
  • FORMID_DELETE_KEK_FORM : SecureBootConfigNvData.h
  • FORMID_ENROLL_KEK_FORM : SecureBootConfigNvData.h
  • FORMID_ENROLL_PK_FORM : SecureBootConfigNvData.h
  • FORMID_FORBID_CONNECT_DP : UserProfileManagerData.h
  • FORMID_FORBID_LOAD_DP : UserProfileManagerData.h
  • FORMID_GET_PASSWORD_FORM : PwdCredentialProviderData.h
  • FORMID_INVALID_FORM : UserIdentifyManagerData.h
  • FORMID_LOAD_DP : UserProfileManagerData.h
  • FORMID_MODIFY_AP : UserProfileManagerData.h
  • FORMID_MODIFY_IP : UserProfileManagerData.h
  • FORMID_MODIFY_USER : UserProfileManagerData.h
  • FORMID_PERMIT_CONNECT_DP : UserProfileManagerData.h
  • FORMID_PERMIT_LOAD_DP : UserProfileManagerData.h
  • FORMID_PROVIDER_FORM : UserIdentifyManagerData.h
  • FORMID_SECURE_BOOT_DB_OPTION_FORM : SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_DBX_OPTION_FORM : SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_KEK_OPTION_FORM : SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_OPTION_FORM : SecureBootConfigNvData.h
  • FORMID_SECURE_BOOT_PK_OPTION_FORM : SecureBootConfigNvData.h
  • FORMID_USER_FORM : UserIdentifyManagerData.h
  • FORMID_USER_INFO : UserProfileManagerData.h
  • FORMID_USER_MANAGE : UserProfileManagerData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- g -

  • GET_PAD_SIZE : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- h -

  • HASHALG_MAX : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA1 : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • HASHALG_SHA224 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA256 : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • HASHALG_SHA384 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHALG_SHA512 : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASHED_CREDENTIAL_LEN : UsbCredentialProvider.h
  • HEADER_ALIGN : AuthenticatedVariableFormat.h
  • HEADER_ALIGNMENT : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- i -

  • IMAGE_FROM_FIXED_MEDIA : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • IMAGE_FROM_FV : DxeImageVerificationLib.h , DxeDeferImageLoadLib.h
  • IMAGE_FROM_OPTION_ROM : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • IMAGE_FROM_REMOVABLE_MEDIA : DxeImageVerificationLib.h , DxeDeferImageLoadLib.h
  • IMAGE_UNKNOWN : DxeDeferImageLoadLib.h , DxeImageVerificationLib.h
  • INFO_PAYLOAD_SIZE : UserIdentifyManager.h
  • ISO_639_2_ENTRY_SIZE : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- p -

  • PASSWORD_TABLE_INC : PwdCredentialProvider.h
  • PEI_LOCK_PHYSICAL_PRESENCE_PPI_GUID : LockPhysicalPresence.h
  • PEI_TPM_INITIALIZED_PPI_GUID : TpmInitialized.h
  • PHYSICAL_PRESENCE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_CLEAR : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_CLEAR_ENABLE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEACTIVATE_DISABLE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEACTIVATE_DISABLE_OWNER_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DEFERRED_PP_UNOWNERED_FIELD_UPGRADE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_DISABLE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE_CLEAR_ENABLE_ACTIVATE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_ENABLE_ACTIVATE_OWNER_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_NO_ACTION : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_CLEAR_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_MAINTENANCE_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_NO_PPI_PROVISION_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_OPERATOR_AUTH : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_OWNER_INSTALL_FALSE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_SET_OWNER_INSTALL_TRUE : PhysicalPresenceData.h
  • PHYSICAL_PRESENCE_VARIABLE : PhysicalPresenceData.h
  • PP_REQUEST_ALLOWED_AND_PPUSER_NOT_REQUIRED : TcgSmm.h
  • PP_REQUEST_ALLOWED_AND_PPUSER_REQUIRED : TcgSmm.h
  • PP_REQUEST_BIOS_ONLY : TcgSmm.h
  • PP_REQUEST_BLOCKED : TcgSmm.h
  • PP_REQUEST_NOT_IMPLEMENTED : TcgSmm.h
  • PP_SUBMIT_REQUEST_BLOCKED_BY_BIOS_SETTINGS : TcgSmm.h
  • PP_SUBMIT_REQUEST_GENERAL_FAILURE : TcgSmm.h
  • PP_SUBMIT_REQUEST_NOT_IMPLEMENTED : TcgSmm.h
  • PP_SUBMIT_REQUEST_SUCCESS : TcgSmm.h
  • PWD_CREDENTIAL_PROVIDER_GUID : PwdCredentialProviderHii.h
  • PWD_PROVIDER_SIGNATURE : PwdCredentialProvider.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- q -

  • QUERY_USER_ON_SECURITY_VIOLATION : DxeImageVerificationLib.h
  • QUESTIONID_USER_MANAGE : UserProfileManagerData.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- s -

  • SECURE_BOOT_DISABLE : AuthenticatedVariableFormat.h
  • SECURE_BOOT_ENABLE : AuthenticatedVariableFormat.h
  • SECURE_BOOT_GUID_SIZE : SecureBootConfigNvData.h
  • SECURE_BOOT_GUID_STORAGE_SIZE : SecureBootConfigNvData.h
  • SECURE_BOOT_MAX_ATTEMPTS_NUM : SecureBootConfigNvData.h
  • SECURE_BOOT_MODE_CUSTOM : SecureBootConfigNvData.h
  • SECURE_BOOT_MODE_STANDARD : SecureBootConfigNvData.h
  • SECUREBOOT_ADD_PK_FILE_FORM_ID : SecureBootConfigNvData.h
  • SECUREBOOT_CONFIG_FORM_SET_GUID : SecureBootConfigHii.h
  • SECUREBOOT_CONFIG_PRIVATE_DATA_SIGNATURE : SecureBootConfigImpl.h
  • SECUREBOOT_CONFIG_PRIVATE_FROM_THIS : SecureBootConfigImpl.h
  • SECUREBOOT_CONFIGURATION_FORM_ID : SecureBootConfigNvData.h
  • SECUREBOOT_CONFIGURATION_VARSTORE_ID : SecureBootConfigNvData.h
  • SECUREBOOT_DELETE_SIGNATURE_FROM_DB : SecureBootConfigNvData.h
  • SECUREBOOT_DELETE_SIGNATURE_FROM_DBX : SecureBootConfigNvData.h
  • SECUREBOOT_ENROLL_SIGNATURE_TO_DB : SecureBootConfigNvData.h
  • SECUREBOOT_ENROLL_SIGNATURE_TO_DBX : SecureBootConfigNvData.h
  • SECUREBOOT_MENU_ENTRY_SIGNATURE : SecureBootConfigImpl.h
  • SECUREBOOT_MENU_OPTION_SIGNATURE : SecureBootConfigImpl.h
  • SECURITYPKG_TOKEN_SPACE_GUID : SecurityPkgTokenSpace.h
  • SHA1_DIGEST_SIZE : SecureBootConfigImpl.h
  • SHA256_DIGEST_SIZE : SecureBootConfigImpl.h
  • SIGSUPPORT_NUM : AuthService.h
  • STANDARD_SECURE_BOOT_MODE : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- t -

  • TCG_CONFIG_FORM_SET_GUID : TcgConfigHii.h
  • TCG_CONFIG_PRIVATE_DATA_FROM_THIS : TcgConfigImpl.h
  • TCG_CONFIG_PRIVATE_DATA_SIGNATURE : TcgConfigImpl.h
  • TCG_CONFIGURATION_FORM_ID : TcgConfigNvData.h
  • TCG_CONFIGURATION_VARSTORE_ID : TcgConfigNvData.h
  • TCG_DXE_DATA_FROM_THIS : TcgDxe.c
  • TCG_PLATFORM_TYPE_CLIENT : TpmCommLib.h
  • TCG_PLATFORM_TYPE_SERVER : TpmCommLib.h
  • TIS_PC_ACC_ACTIVE : TpmCommLib.h
  • TIS_PC_ACC_ESTABLISH : TpmCommLib.h
  • TIS_PC_ACC_PENDIND : TpmCommLib.h
  • TIS_PC_ACC_RQUUSE : TpmCommLib.h
  • TIS_PC_ACC_SEIZE : TpmCommLib.h
  • TIS_PC_ACC_SEIZED : TpmCommLib.h
  • TIS_PC_STS_DATA : TpmCommLib.h
  • TIS_PC_STS_EXPECT : TpmCommLib.h
  • TIS_PC_STS_GO : TpmCommLib.h
  • TIS_PC_STS_READY : TpmCommLib.h
  • TIS_PC_STS_RETRY : TpmCommLib.h
  • TIS_PC_VALID : TpmCommLib.h
  • TIS_TIMEOUT_A : TpmCommLib.h
  • TIS_TIMEOUT_B : TpmCommLib.h
  • TIS_TIMEOUT_C : TpmCommLib.h
  • TIS_TIMEOUT_D : TpmCommLib.h
  • TPM_BASE_ADDRESS : TpmCommLib.h
  • TPM_PP_BIOS_FAILURE : DxeTcgPhysicalPresenceLib.c
  • TPM_PP_USER_ABORT : DxeTcgPhysicalPresenceLib.c
  • TPMCMDBUFLENGTH : TpmCommLib.h
  • TWO_BYTE_ENCODE : DxeImageVerificationLib.h , SecureBootConfigImpl.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- u -

  • USB_CREDENTIAL_PROVIDER_GUID : UsbCredentialProviderHii.h
  • USB_PROVIDER_SIGNATURE : UsbCredentialProvider.h
  • USB_TABLE_INC : UsbCredentialProvider.h
  • USER_IDENTIFY_MANAGER_GUID : UserIdentifyManagerHii.h
  • USER_MANAGER_CLASS : UserProfileManagerVfr.Vfr
  • USER_MANAGER_SIGNATURE : UserIdentifyManager.h
  • USER_MANAGER_SUBCLASS : UserProfileManagerVfr.Vfr
  • USER_NAME_LENGTH : UserProfileManager.h
  • USER_NUMBER_INC : UserIdentifyManager.h
  • USER_PROFILE_MANAGER_GUID : UserProfileManagerHii.h
  • USER_PROFILE_MANAGER_SIGNATURE : UserProfileManager.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- v -

  • VAR_ADDED : AuthenticatedVariableFormat.h
  • VAR_AUTH_KEY_DB : Variable.h
  • VAR_DELETED : AuthenticatedVariableFormat.h
  • VAR_HEADER_VALID_ONLY : AuthenticatedVariableFormat.h
  • VAR_HW_ERR_REC : Variable.h
  • VAR_IN_DELETED_TRANSITION : AuthenticatedVariableFormat.h
  • VAR_KEY_EXCHANGE_KEY : Variable.h
  • VAR_LANG : Variable.h
  • VAR_LANG_CODES : Variable.h
  • VAR_PLATFORM_KEY : Variable.h
  • VAR_PLATFORM_LANG : Variable.h
  • VAR_PLATFORM_LANG_CODES : Variable.h
  • VAR_SETUP_MODE : Variable.h
  • VARIABLE_DATA : AuthenticatedVariableFormat.h
  • VARIABLE_RECLAIM_THRESHOLD : Variable.h
  • VARIABLE_STORE_FORMATTED : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_HEALTHY : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_SIGNATURE : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v
  • w

- w -

  • WIN_CERT_UEFI_RSA2048_SIZE : SecureBootConfigImpl.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • _FILE_EXPLORER_DISPLAY_CONTEXT : SecureBootConfigImpl.h
  • _FILE_EXPLORER_STATE : SecureBootConfigImpl.h
  • AUTHVAR_TYPE : AuthService.h
  • IMAGE_TYPE : SecureBootConfigImpl.h
  • VARIABLE_POINTER_TYPE : Variable.h
  • VARIABLE_STORE_STATUS : AuthenticatedVariableFormat.h
  • VARIABLE_STORE_TYPE : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • AuthVarTypeKek : AuthService.h
  • AuthVarTypePayload : AuthService.h
  • AuthVarTypePk : AuthService.h
  • AuthVarTypePriv : AuthService.h
  • EfiInvalid : AuthenticatedVariableFormat.h
  • EfiRaw : AuthenticatedVariableFormat.h
  • EfiUnknown : AuthenticatedVariableFormat.h
  • EfiValid : AuthenticatedVariableFormat.h
  • FileExplorerDisplayDirectory : SecureBootConfigImpl.h
  • FileExplorerDisplayFileSystem : SecureBootConfigImpl.h
  • FileExplorerDisplayUnknown : SecureBootConfigImpl.h
  • FileExplorerStateEnrollKekFile : SecureBootConfigImpl.h
  • FileExplorerStateEnrollPkFile : SecureBootConfigImpl.h
  • FileExplorerStateEnrollSignatureFileToDb : SecureBootConfigImpl.h
  • FileExplorerStateEnrollSignatureFileToDbx : SecureBootConfigImpl.h
  • FileExplorerStateInActive : SecureBootConfigImpl.h
  • FileExplorerStateUnknown : SecureBootConfigImpl.h
  • ImageType_IA32 : SecureBootConfigImpl.h
  • ImageType_X64 : SecureBootConfigImpl.h
  • Physical : Variable.h
  • VariableStoreTypeHob : Variable.h
  • VariableStoreTypeMax : Variable.h
  • VariableStoreTypeNv : Variable.h
  • VariableStoreTypeVolatile : Variable.h
  • Virtual : Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- a -

  • AccessVariableStore() : Variable.c
  • AcquireLockOnlyAtBootTime() : Variable.c , Variable.h , VariableSmm.c , VariableDxe.c , VariableSmmRuntimeDxe.c
  • AddDefaultUserProfile() : UserIdentifyManager.c
  • AddDevicePath() : ModifyAccessPolicy.c
  • AddIdentityPolicyItem() : UserProfileManager.h , ModifyIdentityPolicy.c
  • AddImageExeInfo() : DxeImageVerificationLib.c
  • AddProviderSelection() : UserIdentifyManager.c
  • AddProviderToPolicy() : ModifyIdentityPolicy.c
  • AddPubKeyInStore() : AuthService.c
  • AddStr() : UserProfileModify.c
  • AddToForbidLoad() : UserProfileManager.h , ModifyAccessPolicy.c
  • AddUserInfo() : UserIdentifyManager.c
  • AddUserProfile() : UserIdentifyManager.c
  • AddUserSelection() : UserIdentifyManager.c
  • AddUserToForm() : UserProfileManager.h , UserProfileDelete.c
  • AppendFileName() : SecureBootConfigFileExplorer.c
  • AppendSignatureList() : AuthService.c , AuthService.h
  • AssignOpRegion() : TcgSmm.c
  • AtRuntime() : VariableSmm.c , Variable.h , VariableDxe.c
  • AutenticatedVariableServiceInitialize() : AuthService.c , AuthService.h , AuthService.c
  • AutoUpdateLangVariable() : Variable.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- l -

  • LoadDeferredImage() : LoadDeferredImage.c
  • LoadDeferredImageInit() : LoadDeferredImage.c , UserIdentifyManager.h
  • LoadPeImage() : SecureBootConfigImpl.c
  • LockTpmPhysicalPresence() : PhysicalPresencePei.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- m -

  • MeasureAllBootVariables() : TcgDxe.c
  • MeasureCRTMVersion() : TcgPei.c
  • MeasureFvImage() : TcgPei.c
  • MeasureHandoffTables() : TcgDxe.c
  • MeasureMainBios() : TcgPei.c
  • MeasureSeparatorEvent() : TcgDxe.c
  • MeasureVariable() : TcgDxe.c
  • MemoryClearCallback() : TcgSmm.c
  • ModidyAccessPolicy() : UserProfileManager.h , UserProfileModify.c
  • ModifyIdentityPolicy() : UserProfileManager.h , UserProfileModify.c
  • ModifyTable() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • ModifyUserInfo() : UserProfileManager.h , UserProfileModify.c , UserIdentifyManager.c
  • ModifyUserName() : UserProfileModify.c , UserProfileManager.h
  • MorDriverEntryPoint() : TcgMor.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- n -

  • NameSizeOfVariable() : Variable.c
  • NeedPhysicallyPresent() : AuthService.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- o -

  • OnExitBootServices() : TcgDxe.c , VariableSmmRuntimeDxe.c
  • OnExitBootServicesFailed() : TcgDxe.c
  • OnReadyToBoot() : VariableSmmRuntimeDxe.c , TcgMor.c , TcgDxe.c , VariableDxe.c
  • OpenFileByDevicePath() : SecureBootConfigFileExplorer.c
  • OpenRoot() : SecureBootConfigFileExplorer.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- c -

  • CallAddUser() : UserProfileManager.h , UserProfileAdd.c
  • CatPrint() : SecureBootConfigDevicePath.c
  • CheckAccessPolicy() : UserIdentifyManager.c
  • CheckConsole() : UserIdentifyManager.c
  • CheckCurrentUserAccessRight() : UserIdentifyManager.c
  • CheckDevicePath() : DxeDeferImageLoadLib.c
  • CheckIdentityPolicy() : UserIdentifyManager.c
  • CheckNewIdentityPolicy() : ModifyIdentityPolicy.c
  • CheckPassword() : PwdCredentialProvider.c
  • CheckProfileInfo() : UserIdentifyManager.c
  • CheckSignatureListFormat() : AuthService.c , AuthService.h
  • CheckUserInfo() : UserIdentifyManager.c
  • CleanUpPage() : SecureBootConfigImpl.h , SecureBootConfigFileExplorer.c
  • CloseFile() : SecureBootConfigMisc.c , SecureBootConfigImpl.h
  • CompareTimeStamp() : AuthService.c , AuthService.h
  • CompareWithValidVariable() : Variable.c
  • ConvertDPStr() : DxeDeferImageLoadLib.c
  • CreateMenuEntry() : SecureBootConfigFileExplorer.c
  • CreateMenuStringToken() : SecureBootConfigFileExplorer.c
  • CreatePkX509SignatureList() : SecureBootConfigImpl.c
  • CreateTimeBasedPayload() : SecureBootConfigImpl.c
  • CreateUserProfile() : UserIdentifyManager.c
  • CredentialDefault() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialDelete() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialDeselect() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialDriverCallback() : PwdCredentialProvider.c
  • CredentialEnroll() : UsbCredentialProvider.c , PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.h
  • CredentialForm() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.h , UsbCredentialProvider.c
  • CredentialGetInfo() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialGetNextInfo() : PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.c , UsbCredentialProvider.h
  • CredentialSelect() : UsbCredentialProvider.c , PwdCredentialProvider.c , PwdCredentialProvider.h , UsbCredentialProvider.h
  • CredentialTile() : PwdCredentialProvider.h , UsbCredentialProvider.h , PwdCredentialProvider.c , UsbCredentialProvider.c
  • CredentialTitle() : UsbCredentialProvider.h , UsbCredentialProvider.c , PwdCredentialProvider.h , PwdCredentialProvider.c
  • CredentialUser() : UsbCredentialProvider.c , PwdCredentialProvider.c , UsbCredentialProvider.h , PwdCredentialProvider.h
  • CryptLibraryInitialize() : AuthService.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- d -

  • DataSizeOfVariable() : Variable.c , Variable.h , Variable.c , Variable.h , Variable.c
  • DefinitionBlock() : Tpm.asl
  • DeleteCertsFromDb() : AuthService.c
  • DeleteCredentialFromProviders() : UserProfileManager.h , ModifyIdentityPolicy.c
  • DeleteFromForbidLoad() : UserProfileManager.h , ModifyAccessPolicy.c
  • DeleteKeyExchangeKey() : SecureBootConfigImpl.c
  • DeletePlatformKey() : SecureBootConfigImpl.c
  • DeleteProviderFromPolicy() : ModifyIdentityPolicy.c
  • DeleteSignature() : SecureBootConfigImpl.c
  • DeleteUser() : UserProfileManager.h , UserProfileDelete.c
  • DeleteUserOnProvider() : ModifyIdentityPolicy.c
  • DeleteVariable() : AuthService.c , SecureBootConfigImpl.c
  • DelUserInfo() : UserIdentifyManager.c
  • DelUserProfile() : UserIdentifyManager.c
  • DestroyMenuEntry() : SecureBootConfigFileExplorer.c
  • DevicePathToStr() : SecureBootConfigDevicePath.c , SecureBootConfigImpl.h
  • DevPath1394() : SecureBootConfigDevicePath.c
  • DevPathAcpi() : SecureBootConfigDevicePath.c
  • DevPathAdrAcpi() : SecureBootConfigDevicePath.c
  • DevPathAtapi() : SecureBootConfigDevicePath.c
  • DevPathBssBss() : SecureBootConfigDevicePath.c
  • DevPathCDROM() : SecureBootConfigDevicePath.c
  • DevPathController() : SecureBootConfigDevicePath.c
  • DevPathEndInstance() : SecureBootConfigDevicePath.c
  • DevPathExtendedAcpi() : SecureBootConfigDevicePath.c
  • DevPathFibre() : SecureBootConfigDevicePath.c
  • DevPathFilePath() : SecureBootConfigDevicePath.c
  • DevPathFvFilePath() : SecureBootConfigDevicePath.c
  • DevPathFvPath() : SecureBootConfigDevicePath.c
  • DevPathHardDrive() : SecureBootConfigDevicePath.c
  • DevPathI2O() : SecureBootConfigDevicePath.c
  • DevPathInfiniBand() : SecureBootConfigDevicePath.c
  • DevPathIPv4() : SecureBootConfigDevicePath.c
  • DevPathIPv6() : SecureBootConfigDevicePath.c
  • DevPathiSCSI() : SecureBootConfigDevicePath.c
  • DevPathLogicalUnit() : SecureBootConfigDevicePath.c
  • DevPathMacAddr() : SecureBootConfigDevicePath.c
  • DevPathMediaProtocol() : SecureBootConfigDevicePath.c
  • DevPathMemMap() : SecureBootConfigDevicePath.c
  • DevPathNodeUnknown() : SecureBootConfigDevicePath.c
  • DevPathPccard() : SecureBootConfigDevicePath.c
  • DevPathPci() : SecureBootConfigDevicePath.c
  • DevPathRelativeOffsetRange() : SecureBootConfigDevicePath.c
  • DevPathSata() : SecureBootConfigDevicePath.c
  • DevPathScsi() : SecureBootConfigDevicePath.c
  • DevPathUart() : SecureBootConfigDevicePath.c
  • DevPathUsb() : SecureBootConfigDevicePath.c
  • DevPathUsbClass() : SecureBootConfigDevicePath.c
  • DevPathUsbWWID() : SecureBootConfigDevicePath.c
  • DevPathVendor() : SecureBootConfigDevicePath.c
  • DevPathVlan() : SecureBootConfigDevicePath.c
  • DisplayConnectForbid() : UserProfileManager.h , ModifyAccessPolicy.c
  • DisplayConnectPermit() : UserProfileManager.h , ModifyAccessPolicy.c
  • DisplayLoadForbid() : UserProfileManager.h , ModifyAccessPolicy.c
  • DisplayLoadPermit() : ModifyAccessPolicy.c , UserProfileManager.h
  • DriverEntry() : TcgDxe.c
  • DxeDeferImageLoadHandler() : DxeDeferImageLoadLib.c
  • DxeDeferImageLoadLibConstructor() : DxeDeferImageLoadLib.c
  • DxeImageAuthenticationStatusHandler() : DxeImageAuthenticationStatusLib.c
  • DxeImageAuthenticationStatusLibConstructor() : DxeImageAuthenticationStatusLib.c
  • DxeImageVerificationHandler() : DxeImageVerificationLib.c
  • DxeImageVerificationLibConstructor() : DxeImageVerificationLib.c
  • DxeImageVerificationLibImageRead() : DxeImageVerificationLib.c
  • DxeTpmMeasureBootHandler() : DxeTpmMeasureBootLib.c
  • DxeTpmMeasureBootLibConstructor() : DxeTpmMeasureBootLib.c
  • DxeTpmMeasureBootLibImageRead() : DxeTpmMeasureBootLib.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- e -

  • EndofPeiSignalNotifyCallBack() : TcgPei.c
  • EnrollImageSignatureToSigDB() : SecureBootConfigImpl.c
  • EnrollKeyExchangeKey() : SecureBootConfigImpl.c
  • EnrollPlatformKey() : SecureBootConfigImpl.c
  • EnrollRsa2048ToKek() : SecureBootConfigImpl.c
  • EnrollSignatureDatabase() : SecureBootConfigImpl.c
  • EnrollUserOnProvider() : ModifyIdentityPolicy.c
  • EnrollX509ToKek() : SecureBootConfigImpl.c
  • EnrollX509toSigDB() : SecureBootConfigImpl.c
  • EsalGetNextVariableName() : Variable.c , Variable.h
  • EsalGetVariable() : Variable.c , Variable.h
  • EsalQueryVariableInfo() : Variable.h , Variable.c
  • EsalSetVariable() : Variable.c , Variable.h
  • EsalVariableCommonEntry() : InitVariable.c
  • ExecutePendingTpmRequest() : DxeTcgPhysicalPresenceLib.c
  • ExecutePhysicalPresence() : DxeTcgPhysicalPresenceLib.c
  • ExpandMemory() : UserProfileModify.c , UserProfileManager.h
  • ExpandTableSize() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • ExpandUsermUserProfileDb() : UserIdentifyManager.c
  • ExpandUserProfile() : UserIdentifyManager.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- f -

  • FakeExtractConfig() : PwdCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c
  • FakeRouteConfig() : PwdCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c
  • FileInfo() : SecureBootConfigFileExplorer.c
  • FileSystemVolumeLabelInfo() : SecureBootConfigFileExplorer.c
  • FindCertsFromDb() : AuthService.c
  • FindFiles() : SecureBootConfigFileExplorer.c
  • FindFileSystem() : SecureBootConfigFileExplorer.c
  • FindInfoByType() : UserProfileManager.h , UserProfileModify.c
  • FindUserInfo() : UserIdentifyManager.c
  • FindUserInfoByType() : UsbCredentialProvider.c , UserIdentifyManager.c , PwdCredentialProvider.c
  • FindUserManagerProtocol() : DxeDeferImageLoadLib.c
  • FindUserProfile() : UserIdentifyManager.c
  • FindUserProfileByInfo() : UserIdentifyManager.c
  • FindVariable() : Variable.c , Variable.h , Variable.c , Variable.h
  • FindVariableEx() : Variable.c
  • FindVariableInCache() : Variable.c
  • FirmwareVolmeInfoPpiNotifyCallback() : TcgPei.c
  • FlushHob2Nv() : Variable.h , Variable.c
  • FlushHobVariableToFlash() : Variable.c , Variable.h
  • FreeMenu() : SecureBootConfigImpl.h , SecureBootConfigFileExplorer.c
  • FtwNotificationEvent() : VariableDxe.c
  • FtwVariableSpace() : Variable.h , Reclaim.c , Variable.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- g -

  • GenerateCredential() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • GenerateIdentifier() : UserIdentifyManager.c
  • GenerateUserId() : UserIdentifyManager.c
  • GetAccessControl() : DxeDeferImageLoadLib.c
  • GetAccessRight() : UserProfileManager.h , UserProfileModify.c
  • GetAllUserInfo() : UserProfileModify.c
  • GetCertsFromDb() : AuthService.c
  • GetDefferedImageInfo() : DxeDeferImageLoadLib.c , DxeDeferImageLoadLib.h
  • GetEndPointer() : Variable.c
  • GetFileData() : UsbCredentialProvider.c
  • GetFileType() : DxeDeferImageLoadLib.c
  • GetFtwProtocol() : VariableDxe.c , Variable.h , VariableSmm.c
  • GetFvbByHandle() : VariableDxe.c , Variable.h , VariableSmm.c
  • GetFvbCountAndBuffer() : VariableDxe.c , Variable.h , VariableSmm.c
  • GetFvbHandleByAddress() : Reclaim.c
  • GetFvbInfoByAddress() : Variable.c , Variable.h
  • GetIdentifyType() : UserIdentifyManager.c
  • GetImageExeInfoTableSize() : DxeImageVerificationLib.c
  • GetImageType() : DxeImageVerificationLib.c
  • GetIndexFromSupportedLangCodes() : Variable.c
  • GetLangFromSupportedLangCodes() : Variable.c
  • GetLbaAndOffsetByAddress() : Reclaim.c
  • GetMenuEntry() : SecureBootConfigFileExplorer.c
  • GetNextVariablePtr() : Variable.c
  • GetPassword() : PwdCredentialProvider.c
  • GetProcessorsCpuLocation() : TcgDxe.c
  • GetSarProtocol() : Variable.h
  • GetStartPointer() : Variable.c
  • GetStringById() : PwdCredentialProvider.c , UsbCredentialProvider.c , UserProfileManager.c , UserProfileManager.h
  • GetToken() : UsbCredentialProvider.c
  • GetTpmCapability() : DxeTcgPhysicalPresenceLib.c
  • GetTpmState() : TcgConfigImpl.c
  • GetTpmStatus() : TcgDxe.c
  • GetUserInfo() : UserIdentifyManager.c
  • GetUserName() : UserProfileDelete.c
  • GetUserNameInput() : UserProfileAdd.c , UserProfileManager.h
  • GetValidPubKeyNumber() : Variable.c
  • GetVariableDataPtr() : Variable.h , Variable.c , Variable.h , Variable.c
  • GetVariableNamePtr() : Variable.c
  • GetVariableStatisticsData() : VariableInfo.c
  • GetVariableStore() : Variable.c
  • GetVariableStoreStatus() : Variable.c
  • GetVarStoreHeader() : Variable.c
  • GrowBuffer() : SecureBootConfigFileExplorer.c
  • GuidToString() : SecureBootConfigMisc.c , SecureBootConfigImpl.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- h -

  • HashLogExtendEvent() : TcgPei.c
  • HashPeImage() : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • HashPeImageByType() : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • HaveValidTpmRequest() : DxeTcgPhysicalPresenceLib.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- i -

  • IdentifyAndTypeUser() : UserIdentifyManager.c
  • IdentifyAutoLogonUser() : UserIdentifyManager.c
  • IdentifyByProviderId() : UserIdentifyManager.c
  • IdentifyOrTypeUser() : UserIdentifyManager.c
  • IdentifyUser() : UserIdentifyManager.c
  • InCustomMode() : AuthService.c
  • InitCommunicateBuffer() : VariableSmmRuntimeDxe.c
  • InitCredentialTable() : PwdCredentialProvider.c , UsbCredentialProvider.c
  • InitFormBrowser() : PwdCredentialProvider.c , UsbCredentialProvider.c , UserIdentifyManager.c
  • InitializeLock() : VariableDxe.c , Variable.h , VariableSmm.c
  • InitializeTcgSmm() : TcgSmm.c
  • InitProviderInfo() : UserIdentifyManager.c , UserProfileManager.c
  • InitUserProfileDb() : UserIdentifyManager.c
  • InsertCertsToDb() : AuthService.c
  • InstallAcpiTable() : TcgDxe.c
  • InstallSecureBootConfigForm() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • InstallTcgConfigForm() : TcgConfigImpl.c , TcgConfigImpl.h
  • Int2OctStr() : SecureBootConfigImpl.h , SecureBootConfigMisc.c
  • InternalEmptyFuntion() : UserIdentifyManager.c
  • InternalIsAddressInSmram() : VariableSmm.c
  • InternalIsAddressValid() : VariableSmm.c
  • IsBootOption() : DxeDeferImageLoadLib.c
  • IsConsoleReady() : UserIdentifyManager.c
  • IsDerEncodeCertificate() : SecureBootConfigImpl.c
  • IsDevicePathInList() : DxeDeferImageLoadLib.c
  • IsHexaDecimalDigitCharacter() : Variable.c
  • IsHwErrRecVariable() : Variable.c
  • IsLoadForbidden() : ModifyAccessPolicy.c
  • IsPkcsSignedDataVerifiedBySignatureList() : DxeImageVerificationLib.c
  • IsReadOnlyVariable() : Variable.c
  • IsSignatureFoundInDatabase() : DxeImageVerificationLib.c
  • IsTpmUsable() : TcgPei.c
  • IsValidPubKeyIndex() : Variable.c
  • IsValidVariableHeader() : Variable.c , Variable.h , Variable.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- p -

  • PasswordProviderInit() : PwdCredentialProvider.c
  • PeiGetNextVariableName() : Variable.c , Variable.h
  • PeiGetVariable() : Variable.c , Variable.h
  • PeimEntry() : PhysicalPresencePei.c
  • PeimEntryMA() : TcgPei.c
  • PeimEntryMP() : TcgPei.c
  • PeimInitializeVariableServices() : Variable.c , Variable.h
  • PhysicalPresenceCallback() : TcgSmm.c
  • PhysicalPresenceGetStringById() : DxeTcgPhysicalPresenceLib.c
  • PhysicalPresencePpiNotifyCallback() : TcgPei.c
  • PrintInfoFromSmm() : VariableInfo.c
  • ProcessVariable() : AuthService.h , AuthService.c
  • ProcessVarWithKek() : AuthService.c , AuthService.h , AuthService.c
  • ProcessVarWithPk() : AuthService.c , AuthService.h
  • ProviderAlreadyInPolicy() : ModifyIdentityPolicy.c
  • PubKeyStoreFilter() : Variable.c
  • PublishAcpiTable() : TcgSmm.c
  • PublishUserTable() : UserIdentifyManager.c
  • PutDefferedImageInfo() : DxeDeferImageLoadLib.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- r -

  • ReadAndMeasureBootVariable() : TcgDxe.c
  • ReadFileContent() : SecureBootConfigMisc.c , SecureBootConfigImpl.h
  • ReadUserKey() : DxeTcgPhysicalPresenceLib.c
  • ReadVariable() : TcgDxe.c
  • Reclaim() : Variable.h , Variable.c
  • ReclaimForOS() : Variable.c , Variable.h
  • RefreshUpdateData() : SecureBootConfigFileExplorer.c
  • ReleaseLockOnlyAtBootTime() : Variable.h , VariableSmm.c , VariableSmmRuntimeDxe.c , Variable.c , VariableDxe.c
  • ResolveAccessPolicy() : UserProfileModify.c
  • ResolveCount() : UserProfileModify.c
  • ResolveDate() : UserProfileModify.c
  • ResolveIdentityPolicy() : UserProfileModify.c , UserProfileManager.h
  • RuntimeServiceGetNextVariableName() : VariableSmmRuntimeDxe.c
  • RuntimeServiceGetVariable() : VariableSmmRuntimeDxe.c
  • RuntimeServiceQueryVariableInfo() : VariableSmmRuntimeDxe.c
  • RuntimeServiceSetVariable() : VariableSmmRuntimeDxe.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- s -

  • SaveAccessPolicy() : UserProfileManager.h , ModifyAccessPolicy.c
  • SaveIdentityPolicy() : ModifyIdentityPolicy.c , UserProfileManager.h
  • SaveNvUserProfile() : UserIdentifyManager.c
  • SavePpRequest() : TcgConfigImpl.c
  • SaveSecureBootVariable() : SecureBootConfigImpl.c
  • SecureBootCallback() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • SecureBootConfigDriverEntryPoint() : SecureBootConfigDriver.c
  • SecureBootConfigDriverUnload() : SecureBootConfigDriver.c
  • SecureBootExtractConfig() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • SecureBootExtractConfigFromVariable() : SecureBootConfigImpl.c
  • SecureBootRouteConfig() : SecureBootConfigImpl.h , SecureBootConfigImpl.c
  • SelectUserToDelete() : UserProfileManager.h , UserProfileDelete.c
  • SelectUserToModify() : UserProfileManager.h , UserProfileModify.c
  • SendCommunicateBuffer() : VariableSmmRuntimeDxe.c
  • SetAccessPolicy() : UserProfileAdd.c
  • SetCreateDate() : UserProfileAdd.c
  • SetIdentityPolicy() : UserProfileAdd.c
  • SetSecureBootMode() : SecureBootConfigImpl.c
  • SetupEventLog() : TcgDxe.c
  • SetUserName() : UserProfileAdd.c
  • SignalEventUserProfileChanged() : UserIdentifyManager.c
  • SmmFtwNotificationEvent() : VariableSmm.c
  • SmmVariableGetStatistics() : VariableSmm.c
  • SmmVariableHandler() : VariableSmm.c
  • SmmVariableReady() : VariableSmmRuntimeDxe.c
  • SmmVariableWriteReady() : VariableSmmRuntimeDxe.c
  • StrDuplicate() : SecureBootConfigFileExplorer.c
  • StringToGuid() : SecureBootConfigMisc.c , SecureBootConfigImpl.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- t -

  • TcgCallback() : TcgConfigImpl.c , TcgConfigImpl.h
  • TcgConfigDriverEntryPoint() : TcgConfigDriver.c
  • TcgConfigDriverUnload() : TcgConfigDriver.c
  • TcgDxeHashAll() : TcgDxe.c
  • TcgDxeHashLogExtendEvent() : TcgDxe.c
  • TcgDxeHashLogExtendEventI() : TcgDxe.c
  • TcgDxeLogEvent() : TcgDxe.c
  • TcgDxeLogEventI() : TcgDxe.c
  • TcgDxePassThroughToTpm() : TcgDxe.c
  • TcgDxeStatusCheck() : TcgDxe.c
  • TcgExtractConfig() : TcgConfigImpl.c , TcgConfigImpl.h
  • TcgMeasureAction() : TcgDxe.c
  • TcgMeasureGptTable() : DxeTpmMeasureBootLib.c
  • TcgMeasurePeImage() : DxeTpmMeasureBootLib.c
  • TcgPhysicalPresenceLibConstructor() : DxeTcgPhysicalPresenceLib.c
  • TcgPhysicalPresenceLibNeedUserConfirm() : TcgPhysicalPresenceLib.h , DxeTcgPhysicalPresenceLib.c
  • TcgPhysicalPresenceLibProcessRequest() : TcgPhysicalPresenceLib.h , DxeTcgPhysicalPresenceLib.c
  • TcgRouteConfig() : TcgConfigImpl.c , TcgConfigImpl.h
  • TisPcExecute() : TisDxe.c , TpmComm.h
  • TisPcPrepareCommand() : TpmCommLib.h , TisPc.c
  • TisPcPresenceCheck() : TisPc.c
  • TisPcReadBurstCount() : TpmCommLib.h , TisPc.c
  • TisPcReceive() : TisDxe.c
  • TisPcReceiveV() : TisDxe.c
  • TisPcRequestUseTpm() : TpmCommLib.h , TisPc.c
  • TisPcSend() : TisDxe.c
  • TisPcSendV() : TisDxe.c
  • TisPcWaitRegisterBits() : TpmCommLib.h , TisPc.c
  • TisTpmCommand() : TpmComm.c , TisPei.c
  • Tpm12MeasureAndLogData() : DxeTpmMeasurementLib.c
  • TpmCommandNoReturnData() : DxeTcgPhysicalPresenceLib.c
  • TpmCommContinueSelfTest() : TpmComm.c , TpmComm.h
  • TpmCommExtend() : TpmComm.c , TpmComm.h
  • TpmCommGetCapability() : TpmComm.c , TpmComm.h
  • TpmCommGetFlags() : TpmComm.h , TpmComm.c
  • TpmCommHashAll() : TpmComm.c , TpmCommLib.h
  • TpmCommLogEvent() : TpmComm.h , TpmComm.c
  • TpmCommPhysicalPresence() : TpmComm.h , TpmComm.c
  • TpmCommStartup() : TpmComm.h , TpmComm.c
  • TpmMeasureAndLogData() : TpmMeasurementLib.h , DxeTpmMeasurementLib.c
  • TpmPhysicalPresence() : DxeTcgPhysicalPresenceLib.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- u -

  • UefiMain() : VariableInfo.c
  • UninstallSecureBootConfigForm() : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • UninstallTcgConfigForm() : TcgConfigImpl.c , TcgConfigImpl.h
  • UpdateCredentialProvider() : ModifyIdentityPolicy.c
  • UpdateDeletePage() : SecureBootConfigImpl.c
  • UpdateFileExplorePage() : SecureBootConfigFileExplorer.c
  • UpdateFileExplorer() : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • UpdatePlatformMode() : AuthService.c , AuthService.h
  • UpdateUserInfo() : UserIdentifyManager.c
  • UpdateVariable() : Variable.h , Variable.c , Variable.h , Variable.c
  • UpdateVariableCache() : Variable.c
  • UpdateVariableInfo() : Variable.c
  • UpdateVariableStore() : Variable.c
  • UsbProviderInit() : UsbCredentialProvider.c
  • UserConfirm() : DxeTcgPhysicalPresenceLib.c
  • UserIdentifyManagerCallback() : UserIdentifyManager.c
  • UserIdentifyManagerInit() : UserIdentifyManager.c
  • UserPhysicalPresent() : PlatformSecureLib.h , PlatformSecureLibNull.c
  • UserProfileCreate() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileCurrent() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileDelete() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileDeleteInfo() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileFind() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileGetInfo() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileGetNext() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileGetNextInfo() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileIdentify() : UserIdentifyManager.h , UserIdentifyManager.c
  • UserProfileManagerCallback() : UserProfileManager.c
  • UserProfileManagerInit() : UserProfileManager.c
  • UserProfileNotify() : UserIdentifyManager.c , UserIdentifyManager.h
  • UserProfileSetInfo() : UserIdentifyManager.h , UserIdentifyManager.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- v -

  • VariableAddressChangeEvent() : VariableSmmRuntimeDxe.c
  • VariableClassAddressChangeEvent() : InitVariable.c , VariableDxe.c , Variable.h
  • VariableCommonInitialize() : Variable.h , Variable.c , Variable.h , Variable.c
  • VariableGetBestLanguage() : Variable.c
  • VariableServiceGetNextVariableName() : Variable.c , Variable.h
  • VariableServiceGetVariable() : Variable.c , Variable.h
  • VariableServiceInitialize() : Variable.h , VariableDxe.c , VariableSmm.c , InitVariable.c
  • VariableServiceQueryVariableInfo() : Variable.c , Variable.h
  • VariableServiceSetVariable() : Variable.c , Variable.h
  • VariableSmmRuntimeInitialize() : VariableSmmRuntimeDxe.c
  • VariableWriteServiceInitialize() : Variable.h , Variable.c
  • VerifyCounterBasedPayload() : AuthService.c
  • VerifyDataPayload() : AuthService.c
  • VerifyDevicePath() : DxeDeferImageLoadLib.c
  • VerifyTimeBasedPayload() : AuthService.c , AuthService.h
  • VerifyVariable() : AuthService.h , AuthService.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • CPL_KEY_INFO : SecureBootConfigImpl.h
  • DEV_PATH_FUNCTION : SecureBootConfigImpl.h
  • EFI_TCG_CLIENT_ACPI_TABLE : TcgDxe.c
  • EFI_TCG_SERVER_ACPI_TABLE : TcgDxe.c
  • FILE_EXPLORER_DISPLAY_CONTEXT : SecureBootConfigImpl.h
  • FILE_EXPLORER_STATE : SecureBootConfigImpl.h
  • HASH_FINAL : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASH_GET_CONTEXT_SIZE : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • HASH_INIT : DxeImageVerificationLib.h , SecureBootConfigImpl.h
  • HASH_UPDATE : SecureBootConfigImpl.h , DxeImageVerificationLib.h
  • PEI_LOCK_PHYSICAL_PRESENCE : LockPhysicalPresence.h
  • PEI_LOCK_PHYSICAL_PRESENCE_PPI : LockPhysicalPresence.h
  • TCG_DXE_DATA : TcgDxe.c
  • TIS_PC_REGISTERS_PTR : TpmCommLib.h
  • TIS_TPM_HANDLE : TpmCommLib.h
  • VARIABLE_INFO_ENTRY : AuthenticatedVariableFormat.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- c -

  • classguid : TcgConfig.vfr , SecureBootConfig.vfr , UserIdentifyManagerVfr.Vfr , PwdCredentialProviderVfr.Vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- k -

  • key : PwdCredentialProviderVfr.Vfr , SecureBootConfig.vfr , UserProfileManagerVfr.Vfr , UserIdentifyManagerVfr.Vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- l -

  • LABEL_AP_MOD_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_DB_DELETE : SecureBootConfig.vfr
  • LABEL_DBX_DELETE : SecureBootConfig.vfr
  • LABEL_END : TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • LABEL_IP_MOD_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_KEK_DELETE : SecureBootConfig.vfr
  • LABEL_PERMIT_LOAD_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_PROVIDER_NAME : UserIdentifyManagerVfr.Vfr
  • LABEL_TCG_CONFIGURATION_HIDETPM : TcgConfig.vfr
  • LABEL_USER_DEL_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_USER_INFO_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_USER_MANAGE_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_USER_MOD_FUNC : UserProfileManagerVfr.Vfr
  • LABEL_USER_NAME : UserIdentifyManagerVfr.Vfr
  • LABLE_FORBID_LOAD_FUNC : UserProfileManagerVfr.Vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- m -

  • mAccessInfo : UserProfileManager.c , UserProfileManager.h
  • mAtRuntime : VariableSmm.c
  • maxsize : SecureBootConfig.vfr
  • mBootAttempts : TcgDxe.c
  • mBootVarName : TcgDxe.c
  • mCacheMeasuredHandle : DxeTpmMeasureBootLib.c
  • mCallbackInfo : PwdCredentialProvider.c , UsbCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c , UserProfileManager.h
  • mCertDbStore : AuthService.c
  • mCertificate : SecureBootConfigImpl.c
  • mCertType : SecureBootConfigImpl.c , DxeImageVerificationLib.c
  • mConncetLogical : UserProfileManager.c , UserProfileManager.h
  • mCurrentUser : UserIdentifyManager.c
  • mDeferredImage : DxeDeferImageLoadLib.c
  • mDeferredImageHandle : DxeDeferImageLoadLib.c , LoadDeferredImage.c
  • mDerEncodedSuffix : SecureBootConfigImpl.c
  • mEfiVirtualNotifyEvent : InitVariable.c
  • mEndLabel : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • mEndOpCodeHandle : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h
  • mFileBuffer : DxeTpmMeasureBootLib.c
  • mFtwRegistration : VariableDxe.c
  • mHandle : VariableSmmRuntimeDxe.c , VariableDxe.c
  • mHash : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mHashCtx : AuthService.c , AuthService.h
  • mHashOidValue : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mHiiVendorDevicePath : PwdCredentialProvider.c , UserIdentifyManager.c , UserProfileManager.c
  • mIdentified : UserIdentifyManager.c
  • mImageBase : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mImageDigest : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mImageDigestSize : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mImageInMemory : TcgPei.c
  • mImageSize : DxeImageVerificationLib.c , DxeTpmMeasureBootLib.c , SecureBootConfigImpl.c
  • mImageType : SecureBootConfigImpl.c
  • minsize : SecureBootConfig.vfr
  • mIsProtocolInstalled : DxeDeferImageLoadLib.c
  • mLockPhysicalPresencePpi : PhysicalPresencePei.c
  • mLockPhysicalPresencePpiList : PhysicalPresencePei.c
  • mMeasuredBaseFvIndex : TcgPei.c
  • mMeasuredBaseFvInfo : TcgPei.c
  • mMeasuredChildFvIndex : TcgPei.c
  • mMeasuredChildFvInfo : TcgPei.c
  • mMeasuredHobData : DxeTpmMeasureBootLib.c
  • mMeasureGptCount : DxeTpmMeasureBootLib.c
  • mMeasureGptTableFlag : DxeTpmMeasureBootLib.c
  • mModifyUser : UserProfileManager.h , UserProfileModify.c
  • mMorControl : TcgMor.c
  • mNotifyList : TcgPei.c
  • mNotifyString1 : DxeImageVerificationLib.c
  • mNotifyString2 : DxeImageVerificationLib.c
  • mNtHeader : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mNvVariableCache : Variable.c , VariableDxe.c
  • mPeCoffHeaderOffset : DxeImageVerificationLib.c , SecureBootConfigImpl.c
  • mPlatformMode : AuthService.c
  • mPpiListVariable : Variable.c
  • mPpStringPackHandle : DxeTcgPhysicalPresenceLib.c
  • mProviderChoice : UserProfileManager.c , UserProfileManager.h
  • mProviderDb : UserIdentifyManager.c
  • mProviderInfo : UserProfileManager.c , UserProfileManager.h
  • mPubKeyNumber : AuthService.c , AuthService.h
  • mPubKeyStore : AuthService.c , AuthService.h
  • mPwdInfoHandle : PwdCredentialProvider.c
  • mPwdTable : PwdCredentialProvider.c
  • mRsaE : DxeImageVerificationLib.c , AuthService.c
  • mSecDataDir : SecureBootConfigImpl.c
  • mSecureBootConfigPrivateDateTemplate : SecureBootConfigImpl.c , SecureBootConfigImpl.h
  • mSecureBootHiiVendorDevicePath : SecureBootConfigImpl.c
  • mSecureBootStorageName : SecureBootConfigImpl.c
  • mSerializationRuntimeBuffer : AuthService.c , AuthService.h
  • mSignatureSupport : AuthService.c
  • mSmmCommunication : VariableInfo.c , VariableSmmRuntimeDxe.c
  • mSmmVariable : VariableSmmRuntimeDxe.c , TcgSmm.c
  • mSmmVariableHandle : VariableSmm.c
  • mSmramRangeCount : VariableSmm.c
  • mSmramRanges : VariableSmm.c
  • mStartLabel : SecureBootConfigImpl.h , SecureBootConfigFileExplorer.c
  • mStartOpCodeHandle : SecureBootConfigImpl.h , SecureBootConfigFileExplorer.c
  • mStorageArea : AuthService.h , AuthService.c
  • mSupportSigItem : AuthService.c
  • mSupportX509Suffix : SecureBootConfigImpl.c
  • mTcgClientAcpiTemplate : TcgDxe.c
  • mTcgConfigPrivateDateTemplate : TcgConfigImpl.c , TcgConfigImpl.h
  • mTcgDxeData : TcgDxe.c
  • mTcgHiiVendorDevicePath : TcgConfigImpl.c
  • mTcgNvs : TcgSmm.c
  • mTcgServerAcpiTemplate : TcgDxe.c
  • mTcgStorageName : TcgConfigImpl.c
  • mTpmInitializedPpiList : TcgPei.c
  • mUsbInfoHandle : UsbCredentialProvider.c
  • mUsbTable : UsbCredentialProvider.c
  • mUserInfo : UserProfileManager.h , UserProfileManager.c
  • mUserManager : UserProfileManager.h , UserProfileManager.c , DxeDeferImageLoadLib.c
  • mUserName : UserIdentifyManager.c
  • mUserProfileDb : UserIdentifyManager.c
  • mVariableBuffer : VariableSmmRuntimeDxe.c
  • mVariableBufferPayload : VariableSmm.c
  • mVariableBufferPayloadSize : VariableSmmRuntimeDxe.c , VariableSmm.c
  • mVariableBufferPhysical : VariableSmmRuntimeDxe.c
  • mVariableBufferSize : VariableSmmRuntimeDxe.c
  • mVariableCache : Variable.c
  • mVariableHandle : VariableSmm.c
  • mVariableModuleGlobal : Variable.h , Variable.c , Variable.h , Variable.c
  • mVariableName : Variable.c
  • mVariablePpi : Variable.c
  • mVariableServicesLock : VariableSmmRuntimeDxe.c
  • mVirtualAddressChangeEvent : VariableSmmRuntimeDxe.c , VariableDxe.c
  • mZeroGuid : DxeTpmMeasureBootLib.c , VariableSmm.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- n -

  • name : TcgConfig.vfr , SecureBootConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- o -

  • OriginalHideTpm : TcgConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- d -

  • DevPathTable : SecureBootConfigDevicePath.c
  • DirectoryMenu : SecureBootConfigImpl.h , SecureBootConfigFileExplorer.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- e -

  • endcheckbox : TcgConfig.vfr , SecureBootConfig.vfr
  • endform : PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , TcgConfig.vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • endformset : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • endif : TcgConfig.vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr , UserIdentifyManagerVfr.Vfr
  • endoneof : TcgConfig.vfr , SecureBootConfig.vfr
  • endstring : SecureBootConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- f -

  • flags : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr , UserIdentifyManagerVfr.Vfr
  • FORM_FILE_EXPLORER_ID : SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_DB : SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_DBX : SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_KEK : SecureBootConfig.vfr
  • FORM_FILE_EXPLORER_ID_PK : SecureBootConfig.vfr
  • formid : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr
  • FORMID_CONNECT_DP : UserProfileManagerVfr.Vfr
  • FORMID_DELETE_KEK_FORM : SecureBootConfig.vfr
  • FORMID_ENROLL_KEK_FORM : SecureBootConfig.vfr
  • FORMID_ENROLL_PK_FORM : SecureBootConfig.vfr
  • FORMID_FORBID_CONNECT_DP : UserProfileManagerVfr.Vfr
  • FORMID_FORBID_LOAD_DP : UserProfileManagerVfr.Vfr
  • FORMID_LOAD_DP : UserProfileManagerVfr.Vfr
  • FORMID_PERMIT_CONNECT_DP : UserProfileManagerVfr.Vfr
  • FORMID_PERMIT_LOAD_DP : UserProfileManagerVfr.Vfr
  • FORMID_SECURE_BOOT_DB_OPTION_FORM : SecureBootConfig.vfr
  • FORMID_SECURE_BOOT_DBX_OPTION_FORM : SecureBootConfig.vfr
  • FORMID_SECURE_BOOT_KEK_OPTION_FORM : SecureBootConfig.vfr
  • FORMID_SECURE_BOOT_OPTION_FORM : SecureBootConfig.vfr
  • FORMID_SECURE_BOOT_PK_OPTION_FORM : SecureBootConfig.vfr
  • FsOptionMenu : SecureBootConfigFileExplorer.c , SecureBootConfigImpl.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- g -

  • gDeferredImageLoad : DxeDeferImageLoadLib.c
  • gEfiAuthenticatedVariableGuid : AuthenticatedVariableFormat.h
  • gEfiCertDbGuid : AuthenticatedVariableFormat.h
  • gEfiCustomModeEnableGuid : AuthenticatedVariableFormat.h
  • gEfiPhysicalPresenceGuid : PhysicalPresenceData.h
  • gEfiSecureBootEnableDisableGuid : AuthenticatedVariableFormat.h
  • gEfiSecurityPkgTokenSpaceGuid : SecurityPkgTokenSpace.h
  • gEfiVariableGuid : VariableInfo.c
  • gMeasuredFvHobGuid : MeasuredFvHob.h
  • gPeiLockPhysicalPresencePpiGuid : LockPhysicalPresence.h
  • gPeiTpmInitializedPpiGuid : TpmInitialized.h
  • gPwdCredentialProviderDriver : PwdCredentialProvider.c
  • gPwdCredentialProviderGuid : PwdCredentialProviderHii.h
  • gSecureBootConfigFormSetGuid : SecureBootConfigHii.h
  • gSmmVariable : VariableSmm.c
  • gTcgConfigFormSetGuid : TcgConfigHii.h
  • gTcgEventEntryHobGuid : TcgEventHob.h
  • guid : TcgConfig.vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr , SecureBootConfig.vfr , PwdCredentialProviderVfr.Vfr
  • gUsbCredentialProviderDriver : UsbCredentialProvider.c
  • gUsbCredentialProviderGuid : UsbCredentialProviderHii.h
  • gUserIdentifyManager : UserIdentifyManager.c
  • gUserIdentifyManagerGuid : UserIdentifyManagerHii.h
  • gUserProfileManagerGuid : UserProfileManagerHii.h
  • gVariableInfo : VariableSmm.c , VariableDxe.c , Variable.c


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- h -

  • HasPk : SecureBootConfig.vfr
  • help : TcgConfig.vfr , SecureBootConfig.vfr , UserProfileManagerVfr.Vfr , UserIdentifyManagerVfr.Vfr , PwdCredentialProviderVfr.Vfr
  • HideSecureBoot : SecureBootConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- p -

  • PhysicalPresent : SecureBootConfig.vfr
  • prompt : TcgConfig.vfr , SecureBootConfig.vfr , UserProfileManagerVfr.Vfr
  • PwdCredentialProviderStrings : PwdCredentialProvider.h
  • PwdCredentialProviderVfrBin : PwdCredentialProvider.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- q -

  • questionid : TcgConfig.vfr , SecureBootConfig.vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- s -

  • SECUREBOOT_ADD_PK_FILE_FORM_ID : SecureBootConfig.vfr
  • SECUREBOOT_CONFIGURATION : SecureBootConfig.vfr
  • SECUREBOOT_DELETE_SIGNATURE_FROM_DB : SecureBootConfig.vfr
  • SECUREBOOT_DELETE_SIGNATURE_FROM_DBX : SecureBootConfig.vfr
  • SECUREBOOT_ENROLL_SIGNATURE_TO_DB : SecureBootConfig.vfr
  • SECUREBOOT_ENROLL_SIGNATURE_TO_DBX : SecureBootConfig.vfr
  • SecureBootConfigBin : SecureBootConfigImpl.h
  • SecureBootConfigDxeStrings : SecureBootConfigImpl.h
  • SecureBootMode : SecureBootConfig.vfr
  • subclass : UserProfileManagerVfr.Vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- t -

  • TCG_CONFIGURATION : TcgConfig.vfr
  • TcgConfigBin : TcgConfigImpl.h
  • TcgConfigDxeStrings : TcgConfigImpl.h
  • text : TcgConfig.vfr , SecureBootConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , UserProfileManagerVfr.Vfr
  • title : TcgConfig.vfr , PwdCredentialProviderVfr.Vfr , UserIdentifyManagerVfr.Vfr , SecureBootConfig.vfr , UserProfileManagerVfr.Vfr
  • TpmCommandBuf : TisDxe.c
  • TpmEnable : TcgConfig.vfr
  • TRUE : UserProfileManagerVfr.Vfr , TcgConfig.vfr , SecureBootConfig.vfr , UserIdentifyManagerVfr.Vfr


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- u -

  • UsbCredentialProviderStrings : UsbCredentialProvider.h
  • UserIdentifyManagerStrings : UserIdentifyManager.h
  • UserIdentifyManagerVfrBin : UserIdentifyManager.h
  • UserProfileManagerStrings : UserProfileManager.h
  • UserProfileManagerVfrBin : UserProfileManager.h


SecurityPkg[ALL]: Data Fields

  • File List
  • Globals
  • All
  • Functions
  • Variables
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • c
  • d
  • e
  • f
  • g
  • h
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • s
  • t
  • u
  • v

- v -

  • value : TcgConfig.vfr , SecureBootConfig.vfr
  • varid : TcgConfig.vfr , SecureBootConfig.vfr


SecurityPkg[ALL]: SecurityPkg/Tcg/TcgConfigDxe/TcgConfigStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/Tcg/TcgConfigDxe/TcgConfigStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r T C G c o n f i g u r a t i o n f o r m .

C o p y r i g h t ( c ) 2 0 1 1 - 2 0 1 2 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# s t r i n g S T R _ T P M _ T I T L E # l a n g u a g e e n - U S " T C G C o n f i g u r a t i o n "

# s t r i n g S T R _ T P M _ H E L P # l a n g u a g e e n - U S " P r e s s < E n t e r > t o s e l e c t T C G S e t u p o p t i o n s . "

# s t r i n g S T R _ T P M _ S T A T E _ P R O M P T # l a n g u a g e e n - U S " C u r r e n t T P M S t a t e "

# s t r i n g S T R _ T P M _ S T A T E _ H E L P # l a n g u a g e e n - U S " C u r r e n t T P M d e v i c e s t a t e : e n a b l e d o r d i s a b l e d ; a c t i v a t e d o r d e a c t i v a t e d . "

# s t r i n g S T R _ T P M _ S T A T E _ C O N T E N T # l a n g u a g e e n - U S " "

# s t r i n g S T R _ T P M _ O P E R A T I O N # l a n g u a g e e n - U S " T P M O p e r a t i o n "

# s t r i n g S T R _ T P M _ O P E R A T I O N _ H E L P # l a n g u a g e e n - U S " S e l e c t o n e o f t h e s u p p o r t e d o p e r a t i o n t o c h a n g e T P M s t a t e . "

# s t r i n g S T R _ E N A B L E # l a n g u a g e e n - U S " E n a b l e "

# s t r i n g S T R _ D I S A B L E # l a n g u a g e e n - U S " D i s a b l e "

# s t r i n g S T R _ T P M _ A C T I V A T E # l a n g u a g e e n - U S " A c t i v a t e "

# s t r i n g S T R _ T P M _ D E A C T I V A T E # l a n g u a g e e n - U S " D e a c t i v a t e "

# s t r i n g S T R _ T P M _ C L E A R # l a n g u a g e e n - U S " F o r c e T P M C l e a r "

# s t r i n g S T R _ T P M _ E N A B L E _ A C T I V A T E # l a n g u a g e e n - U S " E n a b l e a n d A c t i v a t e "

# s t r i n g S T R _ T P M _ D E A C T I V A T E _ D I S A B L E # l a n g u a g e e n - U S " D e a c t i v a t e a n d D i s a b l e "

# s t r i n g S T R _ T P M _ E N A B L E _ A C T I V A T E _ C L E A R # l a n g u a g e e n - U S " E n a b l e , A c t i v a t e , a n d F o r c e T P M C l e a r "

# s t r i n g S T R _ T P M _ C L E A R _ E N A B L E _ A C T I V A T E # l a n g u a g e e n - U S " F o r c e T P M C l e a r , E n a b l e , a n d A c t i v a t e "

# s t r i n g S T R _ T P M _ E N A B L E _ A C T I V A T E _ C L E A R _ E _ A # l a n g u a g e e n - U S " E n a b l e , A c t i v a t e , F o r c e T P M C l e a r , E n a b l e , a n d A c t i v a t e "

# s t r i n g S T R _ N U L L # l a n g u a g e e n - U S " "

# s t r i n g S T R _ H I D E _ T P M _ P R O M P T # l a n g u a g e e n - U S " H i d e T P M "

# s t r i n g S T R _ H I D E _ T P M _ H E L P # l a n g u a g e e n - U S " C h e c k t o h i d e T P M i n O S "

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r S e c u r e B o o t C o n f i g u r a t i o n f o r m .

C o p y r i g h t ( c ) 2 0 1 1 - 2 0 1 2 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# s t r i n g S T R _ S E C U R E B O O T _ T I T L E # l a n g u a g e e n - U S " S e c u r e B o o t C o n f i g u r a t i o n "

# s t r i n g S T R _ S E C U R E B O O T _ H E L P # l a n g u a g e e n - U S " P r e s s < E n t e r > t o s e l e c t S e c u r e B o o t o p t i o n s . "

# s t r i n g S T R _ N U L L # l a n g u a g e e n - U S " "

# s t r i n g S T R _ S E C U R E _ B O O T _ S T A T E _ P R O M P T # l a n g u a g e e n - U S " C u r r e n t S e c u r e B o o t S t a t e "

# s t r i n g S T R _ S E C U R E _ B O O T _ S T A T E _ H E L P # l a n g u a g e e n - U S " C u r r e n t S e c u r e B o o t s t a t e : e n a b l e d o r d i s a b l e d . "

# s t r i n g S T R _ S E C U R E _ B O O T _ S T A T E _ C O N T E N T # l a n g u a g e e n - U S " "

# s t r i n g S T R _ S E C U R E _ B O O T _ P R O M P T # l a n g u a g e e n - U S " A t t e m p t S e c u r e B o o t "

# s t r i n g S T R _ S E C U R E _ B O O T _ H E L P # l a n g u a g e e n - U S " E n a b l e / D i s a b l e t h e S e c u r e B o o t f e a t u r e a f t e r p l a t f o r m r e s e t "

# s t r i n g S T R _ S E C U R E _ B O O T _ E N R O L L _ S I G N A T U R E # l a n g u a g e e n - U S " E n r o l l S i g n a t u r e "

# s t r i n g S T R _ S E C U R E _ B O O T _ D E L E T E _ S I G N A T U R E # l a n g u a g e e n - U S " D e l e t e S i g n a t u r e "

# s t r i n g S T R _ S E C U R E _ B O O T _ S I G N A T U R E _ G U I D # l a n g u a g e e n - U S " S i g n a t u r e G U I D "

# s t r i n g S T R _ S E C U R E _ B O O T _ S I G N A T U R E _ G U I D _ H E L P # l a n g u a g e e n - U S " I n p u t d i g i t c h a r a c t e r i n 1 1 1 1 1 1 1 1 - 2 2 2 2 - 3 3 3 3 - 4 4 4 4 - 1 2 3 4 5 6 7 8 9 0 a b f o r m a t . "

# s t r i n g S T R _ S E C U R E _ B O O T _ A D D _ S I G N A T U R E _ F I L E # l a n g u a g e e n - U S " E n r o l l S i g n a t u r e U s i n g F i l e "

# s t r i n g S T R _ S A V E _ S I G N A T U R E _ F I L E # l a n g u a g e e n - U S " S a v e S i g n a t u r e F i l e "

# s t r i n g S T R _ S A V E _ A N D _ E X I T # l a n g u a g e e n - U S " C o m m i t C h a n g e s a n d E x i t "

# s t r i n g S T R _ N O _ S A V E _ A N D _ E X I T # l a n g u a g e e n - U S " D i s c a r d C h a n g e s a n d E x i t "

# s t r i n g S T R _ F I L E _ E X P L O R E R _ T I T L E # l a n g u a g e e n - U S " F i l e E x p l o r e r "

# s t r i n g S T R _ S E C U R E _ B O O T _ M O D E _ P R O M P T # l a n g u a g e e n - U S " S e c u r e B o o t M o d e "

# s t r i n g S T R _ S E C U R E _ B O O T _ M O D E _ H E L P # l a n g u a g e e n - U S " S e c u r e B o o t M o d e : C u s t o m M o d e o r S t a n d a r d M o d e "

# s t r i n g S T R _ S T A N D A R D _ M O D E # l a n g u a g e e n - U S " S t a n d a r d M o d e "

# s t r i n g S T R _ C U S T O M _ M O D E # l a n g u a g e e n - U S " C u s t o m M o d e "

# s t r i n g S T R _ S E C U R E _ B O O T _ O P T I O N # l a n g u a g e e n - U S " C u s t o m S e c u r e B o o t O p t i o n s "

# s t r i n g S T R _ S E C U R E _ B O O T _ O P T I O N _ H E L P # l a n g u a g e e n - U S " E n t e r i n t o C u s t o m S e c u r e B o o t O p t i o n s F o r m "

# s t r i n g S T R _ S E C U R E _ B O O T _ O P T I O N _ T I T L E # l a n g u a g e e n - U S " C u s t o m S e c u r e B o o t O p t i o n s "

# s t r i n g S T R _ S E C U R E _ B O O T _ P K _ O P T I O N # l a n g u a g e e n - U S " P K O p t i o n s "

# s t r i n g S T R _ S E C U R E _ B O O T _ P K _ O P T I O N _ H E L P # l a n g u a g e e n - U S " E n r o l l / D e l e t e P K "

# s t r i n g S T R _ S E C U R E _ B O O T _ K E K _ O P T I O N # l a n g u a g e e n - U S " K E K O p t i o n s "

# s t r i n g S T R _ S E C U R E _ B O O T _ K E K _ O P T I O N _ H E L P # l a n g u a g e e n - U S " E n r o l l / D e l e t e K E K "

# s t r i n g S T R _ S E C U R E _ B O O T _ D B _ O P T I O N # l a n g u a g e e n - U S " D B O p t i o n s "

# s t r i n g S T R _ S E C U R E _ B O O T _ D B _ O P T I O N _ H E L P # l a n g u a g e e n - U S " E n r o l l / D e l e t e S i g n a t u r e "

# s t r i n g S T R _ S E C U R E _ B O O T _ D B X _ O P T I O N # l a n g u a g e e n - U S " D B X O p t i o n s "

# s t r i n g S T R _ S E C U R E _ B O O T _ D B X _ O P T I O N _ H E L P # l a n g u a g e e n - U S " E n r o l l / D e l e t e D B X "

# s t r i n g S T R _ E N R O L L _ P K # l a n g u a g e e n - U S " E n r o l l P K "

# s t r i n g S T R _ E N R O L L _ P K _ H E L P # l a n g u a g e e n - U S " E n t e r i n t o E n r o l l P K F o r m "

# s t r i n g S T R _ S A V E _ P K _ F I L E # l a n g u a g e e n - U S " S a v e P K f i l e "

# s t r i n g S T R _ S E C U R E _ B O O T _ E N R O L L _ P K _ F I L E # l a n g u a g e e n - U S " E n r o l l P K U s i n g F i l e "

# s t r i n g S T R _ D E L E T E _ P K # l a n g u a g e e n - U S " D e l e t e P k "

# s t r i n g S T R _ D E L E T E _ P K _ H E L P # l a n g u a g e e n - U S " C h o o s e t o D e l e t e P K , O t h e r w i s e k e e p t h e P K "

# s t r i n g S T R _ E N R O L L _ P K _ T I T L E # l a n g u a g e e n - U S " E n r o l l P K "

# s t r i n g S T R _ E N R O L L _ K E K # l a n g u a g e e n - U S " E n r o l l K E K "

# s t r i n g S T R _ E N R O L L _ K E K _ H E L P # l a n g u a g e e n - U S " E n t e r i n t o E n r o l l K E K F o r m "

# s t r i n g S T R _ D E L E T E _ K E K # l a n g u a g e e n - U S " D e l e t e K E K "

# s t r i n g S T R _ D E L E T E _ K E K _ H E L P # l a n g u a g e e n - U S " E n t e r i n t o D e l e t e K E K F o r m "

# s t r i n g S T R _ E N R O L L _ K E K _ T I T L E # l a n g u a g e e n - U S " E n r o l l K E K "

# s t r i n g S T R _ D E L E T E _ K E K _ T I T L E # l a n g u a g e e n - U S " D e l e t e K E K "

# s t r i n g S T R _ F O R M _ E N R O L L _ K E K _ F R O M _ F I L E _ T I T L E # l a n g u a g e e n - U S " E n r o l l K E K u s i n g F i l e "

# s t r i n g S T R _ F O R M _ E N R O L L _ K E K _ F R O M _ F I L E _ T I T L E _ H E L P # l a n g u a g e e n - U S " R e a d t h e p u b l i c k e y o f K E K f r o m f i l e "

# s t r i n g S T R _ F I L E _ E X P L O R E R _ T I T L E # l a n g u a g e e n - U S " F i l e E x p l o r e r "

# s t r i n g S T R _ C E R T _ T Y P E _ R S A 2 0 4 8 _ S H A 2 5 6 _ G U I D # l a n g u a g e e n - U S " R S A 2 0 4 8 _ S H A 2 5 6 _ G U I D "

# s t r i n g S T R _ C E R T _ T Y P E _ P C K S 7 _ G U I D # l a n g u a g e e n - U S " P K C S 7 _ G U I D "

# s t r i n g S T R _ C E R T _ T Y P E _ S H A 1 _ G U I D # l a n g u a g e e n - U S " S H A 1 _ G U I D "

# s t r i n g S T R _ C E R T _ T Y P E _ S H A 2 5 6 _ G U I D # l a n g u a g e e n - U S " S H A 2 5 6 _ G U I D "


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProviderStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UsbCredentialProviderDxe/UsbCredentialProviderStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r t h e U S B C r e d e n t i a l P r o v i d e r .

C o p y r i g h t ( c ) 2 0 0 9 - 2 0 1 0 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p .

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# l a n g d e f f r - F R " F r a n c a i s "

# s t r i n g S T R _ C R E D E N T I A L _ T I T L E # l a n g u a g e e n - U S " U S B C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " U S B C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ N U L L _ S T R I N G # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ P R O V I D E R _ N A M E # l a n g u a g e e n - U S " I N T E L U S B C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " I N T E L U S B C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ P R O V I D E R _ T Y P E _ N A M E # l a n g u a g e e n - U S " S e c u r e C a r d C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " S e c u r e C a r d C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ R E A D _ U S B _ T O K E N _ E R R O R # l a n g u a g e e n - U S " R e a d U s b T o k e n F i l e E r r o r ! "

# l a n g u a g e f r - F R " R e a d U s b T o k e n F i l e E r r o r ! ( F r e n c h ) "

# s t r i n g S T R _ I N S E R T _ U S B _ T O K E N # l a n g u a g e e n - U S " P l e a s e i n s e r t U s b k e y w i t h T o k e n "

# l a n g u a g e f r - F R " P l e a s e i n s e r t U s b k e y w i t h T o k e n ( F r e n c h ) "

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserIdentifyManagerDxe/UserIdentifyManagerStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r t h e U s e r I d e n t i f y M a n a g e r d r i v e r .

C o p y r i g h t ( c ) 2 0 0 9 - 2 0 1 0 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p .

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# l a n g d e f f r - F R " F r a n c a i s "

# s t r i n g S T R _ T I T L E # l a n g u a g e e n - U S " U s e r I d e n t i t y M a n a g e r "

# l a n g u a g e f r - F R " U s e r I d e n t i t y M a n a g e r ( F r e n c h ) "

# s t r i n g S T R _ U S E R _ S E L E C T # l a n g u a g e e n - U S " U s e r S e l e c t i o n "

# l a n g u a g e f r - F R " U s e r S e l e c t i o n ( F r e n c h ) "

# s t r i n g S T R _ P R O V I D E R _ S E L E C T # l a n g u a g e e n - U S " P r o v i d e r S e l e c t i o n "

# l a n g u a g e f r - F R " U s e r S e l e c t i o n ( F r e n c h ) "

# s t r i n g S T R _ N U L L _ S T R I N G # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManagerStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r U s e r P r o f i l e M a n a g e r d r i v e r .

C o p y r i g h t ( c ) 2 0 0 9 - 2 0 1 0 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# l a n g d e f f r - F R " F r a n ç a i s "

# s t r i n g S T R _ N U L L _ S T R I N G # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ F O R M S E T _ T I T L E # l a n g u a g e e n - U S " U s e r M a n a g e r "

# l a n g u a g e f r - F R " U s e r M a n a g e r ( F r e n c h ) "

# s t r i n g S T R _ T I T L E _ H E L P # l a n g u a g e e n - U S " T h i s s e l e c t i o n w i l l t a k e y o u t o t h e U s e r M a n a g e r "

# l a n g u a g e f r - F R " T h i s s e l e c t i o n w i l l t a k e y o u t o t h e U s e r M a n a g e r ( F r e n c h ) "

# s t r i n g S T R _ U S E R M A N _ T I T L E # l a n g u a g e e n - U S " U s e r M a n a g e r "

# l a n g u a g e f r - F R " U s e r M a n a g e r ( F r e n c h ) "

# s t r i n g S T R _ A D D _ U S E R _ T I T L E # l a n g u a g e e n - U S " A d d U s e r P r o f i l e "

# l a n g u a g e f r - F R " A d d U s e r P r o f i l e ( F r e n c h ) "

# s t r i n g S T R _ A D D _ U S E R _ H E L P # l a n g u a g e e n - U S " A d d U s e r P r o f i l e t o U s e r D a t a b a s e "

# l a n g u a g e f r - F R " A d d U s e r P r o f i l e t o U s e r D a t a b a s e ( F r e n c h ) "

# s t r i n g S T R _ M O D I F Y _ U S E R _ T I T L E # l a n g u a g e e n - U S " M o d i f y U s e r P r o f i l e "

# l a n g u a g e f r - F R " M o d i f y U s e r P r o f i l e ( F r e n c h ) "

# s t r i n g S T R _ M O D I F Y _ U S E R _ H E L P # l a n g u a g e e n - U S " M o d i f y U s e r P r o f i l e I n f o r m a t i o n "

# l a n g u a g e f r - F R " M o d i f y U s e r P r o f i l e I n f o r m a t i o n ( F r e n c h ) "

# s t r i n g S T R _ D E L E T E _ U S E R _ T I T L E # l a n g u a g e e n - U S " D e l e t e U s e r P r o f i l e "

# l a n g u a g e f r - F R " D e l e t e U s e r P r o f i l e ( F r e n c h ) "

# s t r i n g S T R _ D E L E T E _ U S E R _ H E L P # l a n g u a g e e n - U S " D e l e t e U s e r P r o f i l e f r o m U s e r D a t a b a s e "

# l a n g u a g e f r - F R " D e l e t e U s e r P r o f i l e f r o m U s e r D a t a b a s e ( F r e n c h ) "

# s t r i n g S T R _ U S E R _ I N F O # l a n g u a g e e n - U S " U s e r P r o f i l e I n f o r m a t i o n "

# l a n g u a g e f r - F R " U s e r P r o f i l e I n f o r m a t i o n ( F r e n c h ) "

# s t r i n g S T R _ U S E R _ N A M E # l a n g u a g e e n - U S " U s e r N a m e "

# l a n g u a g e f r - F R " U s e r N a m e ( F r e n c h ) "

# s t r i n g S T R _ U S E R _ N A M E _ V A L # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ C R E A T E _ D A T E # l a n g u a g e e n - U S " C r e a t e D a t e "

# l a n g u a g e f r - F R " C r e a t e D a t e ( F r e n c h ) "

# s t r i n g S T R _ C R E A T E _ D A T E _ V A L # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ U S A G E _ D A T E # l a n g u a g e e n - U S " U s a g e D a t e "

# l a n g u a g e f r - F R " U s a g e D a t e ( F r e n c h ) "

# s t r i n g S T R _ U S A G E _ D A T E _ V A L # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ U S A G E _ C O U N T # l a n g u a g e e n - U S " U s a g e C o u n t "

# l a n g u a g e f r - F R " U s a g e C o u n t ( F r e n c h ) "

# s t r i n g S T R _ U S A G E _ C O U N T _ V A L # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ I D E N T I F Y _ P O L I C Y # l a n g u a g e e n - U S " I d e n t i f y P o l i c y "

# l a n g u a g e f r - F R " I d e n t i f y P o l i c y ( F r e n c h ) "

# s t r i n g S T R _ I D E N T I F Y _ P O L I C Y _ V A L # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ A C C E S S _ P O L I C Y # l a n g u a g e e n - U S " A c c e s s P o l i c y "

# l a n g u a g e f r - F R " A c c e s s P o l i c y ( F r e n c h ) "

# s t r i n g S T R _ S A V E # l a n g u a g e e n - U S " S a v e & E x i t "

# l a n g u a g e f r - F R " S a v e & E x i t ( F r e n c h ) "

# s t r i n g S T R _ I D E N T I F Y _ S A V E _ H E L P # l a n g u a g e e n - U S " S a v e I d e n t i f y P o l i c y a n d E x i t "

# l a n g u a g e f r - F R " S a v e I d e n t i f y P o l i c y a n d E x i t ( F r e n c h ) "

# s t r i n g S T R _ P R O V I D E R # l a n g u a g e e n - U S " C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ P R O V I D E R _ H E L P # l a n g u a g e e n - U S " S e l e c t C r e d e n t i a l P r o v i d e r O p t i o n "

# l a n g u a g e f r - F R " S e l e c t C r e d e n t i a l P r o v i d e r O p t i o n ( F r e n c h ) "

# s t r i n g S T R _ O R _ C O N # l a n g u a g e e n - U S " O r "

# l a n g u a g e f r - F R " O r ( F r e n c h ) "

# s t r i n g S T R _ A N D _ C O N # l a n g u a g e e n - U S " A n d "

# l a n g u a g e f r - F R " A n d ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T O R # l a n g u a g e e n - U S " L o g i c a l C o n n e c t o r "

# l a n g u a g e f r - F R " L o g i c a l C o n n e c t o r ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T O R _ H E L P # l a n g u a g e e n - U S " S e l e c t L o g i c a l C o n n e c t o r O p t i o n "

# l a n g u a g e f r - F R " S e l e c t L o g i c a l C o n n e c t o r O p t i o n ( F r e n c h ) "

# s t r i n g S T R _ I D E N T I F Y _ P O L I C Y _ V A L U E # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ I D E N T I F Y _ P O L I C Y _ H E L P # l a n g u a g e e n - U S " C u r r e n t I d e n t i f y P o l i c y "

# l a n g u a g e f r - F R " C u r r e n t I d e n t i f y P o l i c y ( F r e n c h ) "

# s t r i n g S T R _ A D D _ O P T I O N # l a n g u a g e e n - U S " A d d O p t i o n "

# l a n g u a g e f r - F R " A d d O p t i o n ( F r e n c h ) "

# s t r i n g S T R _ A D D _ O P T I O N _ H E L P # l a n g u a g e e n - U S " A d d T h i s O p t i o n t o I d e n t i f y P o l i c y "

# l a n g u a g e f r - F R " A d d T h i s O p t i o n t o I d e n t i f y P o l i c y ( F r e n c h ) "

# s t r i n g S T R _ A C C E S S _ S A V E _ H E L P # l a n g u a g e e n - U S " S a v e A c c e s s P o l i c y a n d E x i t "

# l a n g u a g e f r - F R " S a v e A c c e s s P o l i c y a n d E x i t ( F r e n c h ) "

# s t r i n g S T R _ A C C E S S _ R I G H T # l a n g u a g e e n - U S " A c c e s s R i g h t "

# l a n g u a g e f r - F R " A c c e s s R i g h t ( F r e n c h ) "

# s t r i n g S T R _ A C C E S S _ R I G H T _ H E L P # l a n g u a g e e n - U S " S e l e c t A c c e s s R i g h t O p t i o n "

# l a n g u a g e f r - F R " S e l e c t A c c e s s R i g h t O p t i o n ( F r e n c h ) "

# s t r i n g S T R _ N O R M A L # l a n g u a g e e n - U S " N o r m a l "

# l a n g u a g e f r - F R " N o r m a l ( F r e n c h ) "

# s t r i n g S T R _ E N R O L L # l a n g u a g e e n - U S " E n r o l l "

# l a n g u a g e f r - F R " E n r o l l ( F r e n c h ) "

# s t r i n g S T R _ M A N A G E # l a n g u a g e e n - U S " M a n a g e "

# l a n g u a g e f r - F R " M a n a g e ( F r e n c h ) "

# s t r i n g S T R _ A C C E S S _ S E T U P # l a n g u a g e e n - U S " A c c e s s S e t u p "

# l a n g u a g e f r - F R " A c c e s s S e t u p ( F r e n c h ) "

# s t r i n g S T R _ A C C E S S _ S E T U P _ H E L P # l a n g u a g e e n - U S " S e l e c t A c c e s s S e t u p O p t i o n "

# l a n g u a g e f r - F R " S e l e l c t A c c e s s S e t u p O p t i o n ( F r e n c h ) "

# s t r i n g S T R _ R E S T R I C T E D # l a n g u a g e e n - U S " R e s t r i c t e d "

# l a n g u a g e f r - F R " R e s t r i c t e d ( F r e n c h ) "

# s t r i n g S T R _ A D M I N # l a n g u a g e e n - U S " A d m i n "

# l a n g u a g e f r - F R " A d m i n ( F r e n c h ) "

# s t r i n g S T R _ B O O R _ O R D E R # l a n g u a g e e n - U S " A c c e s s B o o t O r d e r "

# l a n g u a g e f r - F R " A c c e s s B o o t O r d e r ( F r e n c h ) "

# s t r i n g S T R _ B O O T _ O R D E R _ H E L P # l a n g u a g e e n - U S " S e l e c t A c c e s s B o o t O r d e r O p t i o n "

# l a n g u a g e f r - F R " S e l e c t A c c e s s B o o t O r d e r O p t i o n ( F r e n c h ) "

# s t r i n g S T R _ I N S E R T # l a n g u a g e e n - U S " I n s e r t "

# l a n g u a g e f r - F R " I n s e r t ( F r e n c h ) "

# s t r i n g S T R _ A P P E N D # l a n g u a g e e n - U S " A p p e n d "

# l a n g u a g e f r - F R " A p p e n d ( F r e n c h ) "

# s t r i n g S T R _ R E P L A C E # l a n g u a g e e n - U S " R e p l a c e "

# l a n g u a g e f r - F R " R e p l a c e ( F r e n c h ) "

# s t r i n g S T R _ N O D E F A U L T # l a n g u a g e e n - U S " N o d e f a u l t "

# l a n g u a g e f r - F R " N o d e f a u l t ( F r e n c h ) "

# s t r i n g S T R _ L O A D # l a n g u a g e e n - U S " L o a d D e v i c e P a t h "

# l a n g u a g e f r - F R " L o a d D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ L O A D _ H E L P # l a n g u a g e e n - U S " S e l e c t P e r m i t / F o r b i d L o a d D e v i c e P a t h "

# l a n g u a g e f r - F R " S e l e c t P e r m i t / F o r b i d L o a d D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T # l a n g u a g e e n - U S " C o n n e c t D e v i c e P a t h "

# l a n g u a g e f r - F R " C o n n e c t D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T _ H E L P # l a n g u a g e e n - U S " S e l e c t P e r m i t / F o r b i d C o n n e c t D e v i c e P a t h "

# l a n g u a g e f r - F R " S e l e c t P e r m i t / F o r b i d C o n n e c t D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ L O A D _ P E R M I T # l a n g u a g e e n - U S " P e r m i t L o a d D e v i c e P a t h "

# l a n g u a g e f r - F R " P e r m i t L o a d D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ L O A D _ P E R M I T _ H E L P # l a n g u a g e e n - U S " C h a n g e P e r m i t L o a d D e v i c e P a t h t o F o r b i d "

# l a n g u a g e f r - F R " C h a n g e P e r m i t L o a d D e v i c e P a t h t o F o r b i d ( F r e n c h ) "

# s t r i n g S T R _ L O A D _ F O R B I D # l a n g u a g e e n - U S " F o r b i d L o a d D e v i c e P a t h "

# l a n g u a g e f r - F R " F o r b i d L o a d D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ L O A D _ F O R B I D _ H E L P # l a n g u a g e e n - U S " C h a n g e F o r b i d L o a d D e v i c e P a t h t o P e r m i t "

# l a n g u a g e f r - F R " C h a n g e F o r b i d L o a d D e v i c e P a t h t o P e r m i t ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T _ P E R M I T # l a n g u a g e e n - U S " P e r m i t C o n n e c t D e v i c e P a t h "

# l a n g u a g e f r - F R " P e r m i t C o n n e c t D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T _ P E R M I T _ H E L P # l a n g u a g e e n - U S " C h a n g e P e r m i t C o n n e c t D e v i c e P a t h t o F o r b i d "

# l a n g u a g e f r - F R " C h a n g e P e r m i t C o n n e c t D e v i c e P a t h t o F o r b i d ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T _ F O R B I D # l a n g u a g e e n - U S " F o r b i d C o n n e c t D e v i c e P a t h "

# l a n g u a g e f r - F R " F o r b i d C o n n e c t D e v i c e P a t h ( F r e n c h ) "

# s t r i n g S T R _ C O N N E C T _ F O R B I D _ H E L P # l a n g u a g e e n - U S " C h a n g e F o r b i d C o n n e c t D e v i c e P a t h t o P e r m i t "

# l a n g u a g e f r - F R " C h a n g e F o r b i d C o n n e c t D e v i c e P a t h t o P e r m i t ( F r e n c h ) "

# s t r i n g S T R _ P R E S S _ K E Y _ C O N T I N U E # l a n g u a g e e n - U S " P r e s s E N T E R t o C o n t i n u e , O t h e r K e y t o C a n c e l . . . "

# l a n g u a g e f r - F R " P r e s s E N T E R t o C o n t i n u e , O t h e r K e y t o C a n c e l . . . ( F r e n c h ) "

# s t r i n g S T R _ M O V E _ T O _ F O R B I D _ L I S T # l a n g u a g e e n - U S " A r e Y o u S u r e t o M o v e I t t o F o r b i d L i s t ? "

# l a n g u a g e f r - F R " A r e Y o u S u r e t o M o v e I t t o F o r b i d L i s t ? ( F r e n c h ) "

# s t r i n g S T R _ M O V E _ T O _ P E R M I T _ L I S T # l a n g u a g e e n - U S " A r e Y o u S u r e t o M o v e I t t o P e r m i t L i s t ? "

# l a n g u a g e f r - F R " A r e Y o u S u r e t o M o v e I t t o P e r m i t L i s t ? ( F r e n c h ) "

# s t r i n g S T R _ S T R O K E _ K E Y _ C O N T I N U E # l a n g u a g e e n - U S " P l e a s e P r e s s A n y K e y t o C o n t i n u e . . . "

# l a n g u a g e f r - F R " P l e a s e P r e s s A n y K e y t o C o n t i n u e . . . ( F r e n c h ) "

# s t r i n g S T R _ C R E A T E _ P R O F I L E _ F A I L E D # l a n g u a g e e n - U S " C r e a t e N e w U s e r P r o f i l e F a i l e d ! "

# l a n g u a g e f r - F R " C r e a t e N e w U s e r P r o f i l e F a i l e d ! ( F r e n c h ) "

# s t r i n g S T R _ C R E A T E _ P R O F I L E _ S U C C E S S # l a n g u a g e e n - U S " C r e a t e N e w U s e r P r o f i l e S u c c e e d ! "

# l a n g u a g e f r - F R " C r e a t e N e w U s e r P r o f i l e S u c c e e d ! ( F r e n c h ) "

# s t r i n g S T R _ U S E R _ A L R E A D Y _ E X I S T E D # l a n g u a g e e n - U S " U s e r N a m e H a d A l r e a d y E x i s t e d . "

# l a n g u a g e f r - F R " U s e r N a m e H a d A l r e a d y E x i s t e d . ( F r e n c h ) "

# s t r i n g S T R _ G E T _ U S E R N A M E _ F A I L E D # l a n g u a g e e n - U S " F a i l e d T o G e t U s e r N a m e . "

# l a n g u a g e f r - F R " F a i l e d T o G e t U s e r N a m e . ( F r e n c h ) "

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/Library/DxeTcgPhysicalPresenceLib/PhysicalPresenceStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/Library/DxeTcgPhysicalPresenceLib/PhysicalPresenceStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r p h y s i c a l p r e s e n c e c o n f i r m t e x t .

C o p y r i g h t ( c ) 2 0 0 6 - 2 0 1 1 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# s t r i n g T P M _ H E A D _ S T R # l a n g u a g e e n - U S " A c o n f i g u r a t i o n c h a n g e w a s r e q u e s t e d t o % s t h i s c o m p u t e r ' s T P M ( T r u s t e d P l a t f o r m M o d u l e ) \ n \ n "

# s t r i n g T P M _ P P I _ H E A D _ S T R # l a n g u a g e e n - U S " A c o n f i g u r a t i o n c h a n g e w a s r e q u e s t e d t o a l l o w t h e O p e r a t i n g S y s t e m t o % s t h e c o m p u t e r ' s T P M ( T r u s t e d P l a t f o r m M o d u l e ) w i t h o u t a s k i n g f o r u s e r c o n f i r m a t i o n i n t h e f u t u r e . \ n \ n "

# s t r i n g T P M _ U P G R A D E _ H E A D _ S T R # l a n g u a g e e n - U S " A c o n f i g u r a t i o n c h a n g e w a s r e q u e s t e d t o % s t o t h e T P M ' s ( T r u s t e d P l a t f o r m M o d u l e ) f i r m w a r e . \ n \ n "

# s t r i n g T P M _ A C C E P T _ K E Y # l a n g u a g e e n - U S " P r e s s F 1 0 "

# s t r i n g T P M _ C A U T I O N _ K E Y # l a n g u a g e e n - U S " P r e s s F 1 2 "

# s t r i n g T P M _ R E J E C T _ K E Y # l a n g u a g e e n - U S " t o % s t h e T P M \ n P r e s s E S C t o r e j e c t t h i s c h a n g e r e q u e s t a n d c o n t i n u e \ n "

# s t r i n g T P M _ E N A B L E # l a n g u a g e e n - U S " e n a b l e "

# s t r i n g T P M _ D I S A B L E # l a n g u a g e e n - U S " d i s a b l e "

# s t r i n g T P M _ A C T I V A T E # l a n g u a g e e n - U S " a c t i v a t e "

# s t r i n g T P M _ D E A C T I V A T E # l a n g u a g e e n - U S " d e a c t i v a t e "

# s t r i n g T P M _ C L E A R # l a n g u a g e e n - U S " c l e a r "

# s t r i n g T P M _ E N A B L E _ A C T I V A T E # l a n g u a g e e n - U S " e n a b l e a n d a c t i v a t e "

# s t r i n g T P M _ D E A C T I V A T E _ D I S A B L E # l a n g u a g e e n - U S " d e a c t i v a t e a n d d i s a b l e "

# s t r i n g T P M _ A L L O W _ T A K E _ O W N E R S H I P # l a n g u a g e e n - U S " a l l o w a u s e r t o t a k e o w n e r s h i p o f "

# s t r i n g T P M _ D I S A L L O W _ T A K E _ O W N E R S H I P # l a n g u a g e e n - U S " d i s a l l o w a u s e r t o t a k e o w n e r s h i p o f "

# s t r i n g T P M _ T U R N _ O N # l a n g u a g e e n - U S " e n a b l e , a c t i v a t e , a n d a l l o w a u s e r t o t a k e o w n e r s h i p o f "

# s t r i n g T P M _ T U R N _ O F F # l a n g u a g e e n - U S " d e a c t i v a t e , d i s a b l e , a n d d i s a l l o w a u s e r t o t a k e o w n e r s h i p o f "

# s t r i n g T P M _ C L E A R _ T U R N _ O N # l a n g u a g e e n - U S " c l e a r , e n a b l e , a n d a c t i v a t e "

# s t r i n g T P M _ E N A B L E _ A C T I V A T E _ C L E A R # l a n g u a g e e n - U S " e n a b l e , a c t i v a t e a n d c l e a r "

# s t r i n g T P M _ E N A B L E _ A C T I V A T E _ C L E A R _ E N A B L E _ A C T I V A T E # l a n g u a g e e n - U S " e n a b l e , a c t i v a t e , c l e a r , e n a b l e , a n d a c t i v a t e "

# s t r i n g T P M _ U N O W N E D _ F I E L D _ U P G R A D E # l a n g u a g e e n - U S " a l l o w f i e l d u p g r a d e "

# s t r i n g T P M _ N O _ P P I _ P R O V I S I O N # l a n g u a g e e n - U S " p r o v i s i o n "

# s t r i n g T P M _ N O _ P P I _ M A I N T A I N # l a n g u a g e e n - U S " m a i n t a i n "

# s t r i n g T P M _ N O _ P P I _ I N F O # l a n g u a g e e n - U S " t o a p p r o v e f u t u r e O p e r a t i n g S y s t e m r e q u e s t s "

# s t r i n g T P M _ W A R N I N G _ M A I N T A I N # l a n g u a g e e n - U S " W A R N I N G : A l l o w i n g c h a n g e s t o t h e T P M  s f i r m w a r e m a y a f f e c t t h e o p e r a t i o n o f t h e T P M a n d m a y e r a s e i n f o r m a t i o n s t o r e d o n t h e T P M . \ n Y o u m a y l o s e a l l c r e a t e d k e y s a n d a c c e s s t o d a t a e n c r y p t e d b y t h e s e k e y s . \ n \ n "

# s t r i n g T P M _ W A R N I N G # l a n g u a g e e n - U S " W A R N I N G : D o i n g s o m i g h t p r e v e n t s e c u r i t y a p p l i c a t i o n s t h a t r e l y o n t h e T P M f r o m f u n c t i o n i n g a s e x p e c t e d \ n \ n "

# s t r i n g T P M _ W A R N I N G _ C L E A R # l a n g u a g e e n - U S " W A R N I N G : C l e a r i n g e r a s e s i n f o m a t i o n s t o r e d o n t h e T P M . Y o u w i l l l o s e a l l c r e a t e d k e y s a n d a c c e s s t o d a t a e n c r y p t e d b y t h e s e k e y s . "

# s t r i n g T P M _ W A R N I N G _ C L E A R _ C O N T # l a n g u a g e e n - U S " T a k e o w n e r s h i p a s s o o n a s p o s s i b l e a f t e r t h i s s t e p . \ n \ n "

# s t r i n g T P M _ N O T E _ O F F # l a n g u a g e e n - U S " N O T E : T h i s a c t i o n w i l l t u r n o f f t h e T P M \ n \ n "

# s t r i n g T P M _ N O T E _ O N # l a n g u a g e e n - U S " N O T E : T h i s a c t i o n w i l l t u r n o n t h e T P M \ n \ n "

# s t r i n g T P M _ N O T E _ C L E A R # l a n g u a g e e n - U S " N O T E : T h i s a c t i o n d o e s n o t c l e a r t h e T P M , b u t b y a p p r o v i n g t h i s c o n f i g u r a t i o n c h a n g e , f u t u r e a c t i o n s t o c l e a r t h e T P M w i l l n o t r e q u i r e u s e r c o n f i r m a t i o n . \ n \ n "

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/SecurityPkg.dec.decdoxygen File Reference

  • File List
  • Globals

SecurityPkg/SecurityPkg.dec.decdoxygen File Reference

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1


SecurityPkg[ALL]: SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderStrings.uni File Reference

  • File List
  • Globals

SecurityPkg/UserIdentification/PwdCredentialProviderDxe/PwdCredentialProviderStrings.uni File Reference

Detailed Description

ÿþ/ * * @ f i l e

S t r i n g d e f i n i t i o n s f o r t h e P a s s w o r d C r e d e n t i a l P r o v i d e r .

C o p y r i g h t ( c ) 2 0 0 9 - 2 0 1 0 , I n t e l C o r p o r a t i o n . A l l r i g h t s r e s e r v e d . < B R >

T h i s p r o g r a m a n d t h e a c c o m p a n y i n g m a t e r i a l s

a r e l i c e n s e d a n d m a d e a v a i l a b l e u n d e r t h e t e r m s a n d c o n d i t i o n s o f t h e B S D L i c e n s e

w h i c h a c c o m p a n i e s t h i s d i s t r i b u t i o n . T h e f u l l t e x t o f t h e l i c e n s e m a y b e f o u n d a t

h t t p : / / o p e n s o u r c e . o r g / l i c e n s e s / b s d - l i c e n s e . p h p .

T H E P R O G R A M I S D I S T R I B U T E D U N D E R T H E B S D L I C E N S E O N A N " A S I S " B A S I S ,

W I T H O U T W A R R A N T I E S O R R E P R E S E N T A T I O N S O F A N Y K I N D , E I T H E R E X P R E S S O R I M P L I E D .

* /

# l a n g d e f e n - U S " E n g l i s h "

# l a n g d e f f r - F R " F r a n c a i s "

# s t r i n g S T R _ C R E D E N T I A L _ T I T L E # l a n g u a g e e n - U S " P a s s w o r d C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " P a s s w o r d C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ F O R M _ T I T L E # l a n g u a g e e n - U S " G e t P a s s w o r d "

# l a n g u a g e f r - F R " G e t P a s s w o r d ( F r e n c h ) "

# s t r i n g S T R _ N U L L _ S T R I N G # l a n g u a g e e n - U S " "

# l a n g u a g e f r - F R " "

# s t r i n g S T R _ I N P U T _ P A S S W O R D # l a n g u a g e e n - U S " P l e a s e I n p u t P a s s w o r d "

# l a n g u a g e f r - F R " P l e a s e I n p u t P a s s w o r d ( F r e n c h ) "

# s t r i n g S T R _ P R O V I D E R _ N A M E # l a n g u a g e e n - U S " I N T E L P a s s w o r d C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " I N T E L P a s s w o r d C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ P R O V I D E R _ T Y P E _ N A M E # l a n g u a g e e n - U S " P a s s w o r d C r e d e n t i a l P r o v i d e r "

# l a n g u a g e f r - F R " P a s s w o r d C r e d e n t i a l P r o v i d e r ( F r e n c h ) "

# s t r i n g S T R _ I N P U T _ P A S S W O R D _ A G A I N # l a n g u a g e e n - U S " I n p u t P a s s w o r d A g a i n "

# l a n g u a g e f r - F R " I n p u t P a s s w o r d A g a i n ( F r e n c h ) "

# s t r i n g S T R _ D R A W _ A _ L I N E # l a n g u a g e e n - U S " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "

# l a n g u a g e f r - F R " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "

# s t r i n g S T R _ P A S S W O R D _ I N C O R R E C T # l a n g u a g e e n - U S " I n c o r r e c t P a s s w o r d ! "

# l a n g u a g e f r - F R " I n c o r r e c t P a s s w o r d ! ( F r e n c h ) "

# s t r i n g S T R _ P A S S W O R D _ M I S M A T C H # l a n g u a g e e n - U S " T h e P a s s w o r d M i s m a t c h ! "

# l a n g u a g e f r - F R " T h e P a s s w o r d M i s m a t c h ! ( F r e n c h ) "

Generated on Wed Jul 3 14:35:38 2013 for SecurityPkg[ALL] by doxygen 1.5.7.1