SecurityPkg/Library/DxeRsa2048Sha256GuidedSectionExtractLib/DxeRsa2048Sha256GuidedSectionExtractLib.c File Reference


Functions

EFI_STATUS EFIAPI Rsa2048Sha256GuidedSectionGetInfo (IN CONST VOID *InputSection, OUT UINT32 *OutputBufferSize, OUT UINT32 *ScratchBufferSize, OUT UINT16 *SectionAttribute)
EFI_STATUS EFIAPI Rsa2048Sha256GuidedSectionHandler (IN CONST VOID *InputSection, OUT VOID **OutputBuffer, IN VOID *ScratchBuffer, OUT UINT32 *AuthenticationStatus)
EFI_STATUS EFIAPI DxeRsa2048Sha256GuidedSectionExtractLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)

Variables

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

Detailed Description

This library registers RSA 2048 SHA 256 guided section handler to parse RSA 2048 SHA 256 encapsulation section and extract raw data. It uses the BaseCrypyLib based on OpenSSL to authenticate the signature.

Copyright (c) 2013 - 2015, 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 DxeRsa2048Sha256GuidedSectionExtractLibConstructor ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE *  SystemTable 
)

Register the handler to extract RSA 2048 SHA 256 guided section.

Parameters:
ImageHandle ImageHandle of the loaded driver.
SystemTable Pointer to the EFI System Table.
Return values:
EFI_SUCCESS Register successfully.
EFI_OUT_OF_RESOURCES Not enough memory to register this handler.

References Rsa2048Sha256GuidedSectionGetInfo(), and Rsa2048Sha256GuidedSectionHandler().

EFI_STATUS EFIAPI Rsa2048Sha256GuidedSectionGetInfo ( IN CONST VOID *  InputSection,
OUT UINT32 *  OutputBufferSize,
OUT UINT32 *  ScratchBufferSize,
OUT UINT16 *  SectionAttribute 
)

GetInfo gets raw data size and attribute of the input guided section. It first checks whether the input guid section is supported. If not, EFI_INVALID_PARAMETER will return.

Parameters:
InputSection Buffer containing the input GUIDed section to be processed.
OutputBufferSize The size of OutputBuffer.
ScratchBufferSize The size of ScratchBuffer.
SectionAttribute The attribute of the input guided section.
Return values:
EFI_SUCCESS The size of destination buffer, the size of scratch buffer and the attribute of the input section are successull retrieved.
EFI_INVALID_PARAMETER The GUID in InputSection does not match this instance guid.

Referenced by DxeRsa2048Sha256GuidedSectionExtractLibConstructor(), and PeiRsa2048Sha256GuidedSectionExtractLibConstructor().

EFI_STATUS EFIAPI Rsa2048Sha256GuidedSectionHandler ( IN CONST VOID *  InputSection,
OUT VOID **  OutputBuffer,
IN VOID *  ScratchBuffer,
OUT UINT32 *  AuthenticationStatus 
)

Extraction handler tries to extract raw data from the input guided section. It also does authentication check for RSA 2048 SHA 256 signature in the input guided section. It first checks whether the input guid section is supported. If not, EFI_INVALID_PARAMETER will return.

Parameters:
InputSection Buffer containing the input GUIDed section to be processed.
OutputBuffer Buffer to contain the output raw data allocated by the caller.
ScratchBuffer A pointer to a caller-allocated buffer for function internal use.
AuthenticationStatus A pointer to a caller-allocated UINT32 that indicates the authentication status of the output buffer.
Return values:
EFI_SUCCESS Section Data and Auth Status is extracted successfully.
EFI_INVALID_PARAMETER The GUID in InputSection does not match this instance guid.

References BOOLEAN(), EFI_STATUS(), mRsaE, SHA256_DIGEST_SIZE, TRUE, and UINTN().

Referenced by DxeRsa2048Sha256GuidedSectionExtractLibConstructor(), and PeiRsa2048Sha256GuidedSectionExtractLibConstructor().


Variable Documentation

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

Public Exponent of RSA Key.


Generated on Thu Sep 24 23:44:24 2015 for SecurityPkg[ALL] by  doxygen 1.5.7.1