summaryrefslogtreecommitdiffstats
path: root/SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c
diff options
context:
space:
mode:
Diffstat (limited to 'SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c')
-rw-r--r--SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c166
1 files changed, 87 insertions, 79 deletions
diff --git a/SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c b/SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c
index c1c0470be9..1498d5e9eb 100644
--- a/SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c
+++ b/SecurityPkg/Hash2DxeCrypto/Hash2DxeCrypto.c
@@ -29,7 +29,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
typedef
UINTN
-(EFIAPI *EFI_HASH_GET_CONTEXT_SIZE) (
+(EFIAPI *EFI_HASH_GET_CONTEXT_SIZE)(
VOID
);
@@ -49,7 +49,7 @@ UINTN
**/
typedef
BOOLEAN
-(EFIAPI *EFI_HASH_INIT) (
+(EFIAPI *EFI_HASH_INIT)(
OUT VOID *HashContext
);
@@ -75,7 +75,7 @@ BOOLEAN
**/
typedef
BOOLEAN
-(EFIAPI *EFI_HASH_UPDATE) (
+(EFIAPI *EFI_HASH_UPDATE)(
IN OUT VOID *HashContext,
IN CONST VOID *Data,
IN UINTN DataSize
@@ -105,24 +105,24 @@ BOOLEAN
**/
typedef
BOOLEAN
-(EFIAPI *EFI_HASH_FINAL) (
+(EFIAPI *EFI_HASH_FINAL)(
IN OUT VOID *HashContext,
OUT UINT8 *HashValue
);
typedef struct {
- EFI_GUID *Guid;
- UINT32 HashSize;
- EFI_HASH_GET_CONTEXT_SIZE GetContextSize;
- EFI_HASH_INIT Init;
- EFI_HASH_UPDATE Update;
- EFI_HASH_FINAL Final;
+ EFI_GUID *Guid;
+ UINT32 HashSize;
+ EFI_HASH_GET_CONTEXT_SIZE GetContextSize;
+ EFI_HASH_INIT Init;
+ EFI_HASH_UPDATE Update;
+ EFI_HASH_FINAL Final;
} EFI_HASH_INFO;
EFI_HASH_INFO mHashInfo[] = {
- {&gEfiHashAlgorithmSha256Guid, sizeof(EFI_SHA256_HASH2), Sha256GetContextSize, Sha256Init, Sha256Update, Sha256Final },
- {&gEfiHashAlgorithmSha384Guid, sizeof(EFI_SHA384_HASH2), Sha384GetContextSize, Sha384Init, Sha384Update, Sha384Final },
- {&gEfiHashAlgorithmSha512Guid, sizeof(EFI_SHA512_HASH2), Sha512GetContextSize, Sha512Init, Sha512Update, Sha512Final },
+ { &gEfiHashAlgorithmSha256Guid, sizeof (EFI_SHA256_HASH2), Sha256GetContextSize, Sha256Init, Sha256Update, Sha256Final },
+ { &gEfiHashAlgorithmSha384Guid, sizeof (EFI_SHA384_HASH2), Sha384GetContextSize, Sha384Init, Sha384Update, Sha384Final },
+ { &gEfiHashAlgorithmSha512Guid, sizeof (EFI_SHA512_HASH2), Sha512GetContextSize, Sha512Init, Sha512Update, Sha512Final },
};
/**
@@ -141,9 +141,9 @@ EFI_HASH_INFO mHashInfo[] = {
EFI_STATUS
EFIAPI
BaseCrypto2GetHashSize (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST EFI_GUID *HashAlgorithm,
- OUT UINTN *HashSize
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST EFI_GUID *HashAlgorithm,
+ OUT UINTN *HashSize
);
/**
@@ -169,11 +169,11 @@ BaseCrypto2GetHashSize (
EFI_STATUS
EFIAPI
BaseCrypto2Hash (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST EFI_GUID *HashAlgorithm,
- IN CONST UINT8 *Message,
- IN UINTN MessageSize,
- IN OUT EFI_HASH2_OUTPUT *Hash
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST EFI_GUID *HashAlgorithm,
+ IN CONST UINT8 *Message,
+ IN UINTN MessageSize,
+ IN OUT EFI_HASH2_OUTPUT *Hash
);
/**
@@ -195,8 +195,8 @@ BaseCrypto2Hash (
EFI_STATUS
EFIAPI
BaseCrypto2HashInit (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST EFI_GUID *HashAlgorithm
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST EFI_GUID *HashAlgorithm
);
/**
@@ -217,9 +217,9 @@ BaseCrypto2HashInit (
EFI_STATUS
EFIAPI
BaseCrypto2HashUpdate (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST UINT8 *Message,
- IN UINTN MessageSize
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST UINT8 *Message,
+ IN UINTN MessageSize
);
/**
@@ -241,11 +241,11 @@ BaseCrypto2HashUpdate (
EFI_STATUS
EFIAPI
BaseCrypto2HashFinal (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN OUT EFI_HASH2_OUTPUT *Hash
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN OUT EFI_HASH2_OUTPUT *Hash
);
-EFI_HASH2_PROTOCOL mHash2Protocol = {
+EFI_HASH2_PROTOCOL mHash2Protocol = {
BaseCrypto2GetHashSize,
BaseCrypto2Hash,
BaseCrypto2HashInit,
@@ -262,16 +262,17 @@ EFI_HASH2_PROTOCOL mHash2Protocol = {
**/
EFI_HASH_INFO *
GetHashInfo (
- IN CONST EFI_GUID *HashAlgorithm
+ IN CONST EFI_GUID *HashAlgorithm
)
{
- UINTN Index;
+ UINTN Index;
- for (Index = 0; Index < sizeof(mHashInfo)/sizeof(mHashInfo[0]); Index++) {
+ for (Index = 0; Index < sizeof (mHashInfo)/sizeof (mHashInfo[0]); Index++) {
if (CompareGuid (HashAlgorithm, mHashInfo[Index].Guid)) {
return &mHashInfo[Index];
}
}
+
return NULL;
}
@@ -291,12 +292,12 @@ GetHashInfo (
EFI_STATUS
EFIAPI
BaseCrypto2GetHashSize (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST EFI_GUID *HashAlgorithm,
- OUT UINTN *HashSize
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST EFI_GUID *HashAlgorithm,
+ OUT UINTN *HashSize
)
{
- EFI_HASH_INFO *HashInfo;
+ EFI_HASH_INFO *HashInfo;
if ((This == NULL) || (HashSize == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -338,19 +339,19 @@ BaseCrypto2GetHashSize (
EFI_STATUS
EFIAPI
BaseCrypto2Hash (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST EFI_GUID *HashAlgorithm,
- IN CONST UINT8 *Message,
- IN UINTN MessageSize,
- IN OUT EFI_HASH2_OUTPUT *Hash
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST EFI_GUID *HashAlgorithm,
+ IN CONST UINT8 *Message,
+ IN UINTN MessageSize,
+ IN OUT EFI_HASH2_OUTPUT *Hash
)
{
- EFI_HASH_INFO *HashInfo;
- VOID *HashCtx;
- UINTN CtxSize;
- BOOLEAN Ret;
- EFI_STATUS Status;
- HASH2_INSTANCE_DATA *Instance;
+ EFI_HASH_INFO *HashInfo;
+ VOID *HashCtx;
+ UINTN CtxSize;
+ BOOLEAN Ret;
+ EFI_STATUS Status;
+ HASH2_INSTANCE_DATA *Instance;
Status = EFI_SUCCESS;
@@ -367,12 +368,13 @@ BaseCrypto2Hash (
return EFI_UNSUPPORTED;
}
- Instance = HASH2_INSTANCE_DATA_FROM_THIS(This);
+ Instance = HASH2_INSTANCE_DATA_FROM_THIS (This);
if (Instance->HashContext != NULL) {
FreePool (Instance->HashContext);
}
+
Instance->HashInfoContext = NULL;
- Instance->HashContext = NULL;
+ Instance->HashContext = NULL;
//
// Start hash sequence
@@ -381,6 +383,7 @@ BaseCrypto2Hash (
if (CtxSize == 0) {
return EFI_UNSUPPORTED;
}
+
HashCtx = AllocatePool (CtxSize);
if (HashCtx == NULL) {
return EFI_OUT_OF_RESOURCES;
@@ -395,7 +398,7 @@ BaseCrypto2Hash (
//
// Setup the context
//
- Instance->HashContext = HashCtx;
+ Instance->HashContext = HashCtx;
Instance->HashInfoContext = HashInfo;
Ret = HashInfo->Update (HashCtx, Message, MessageSize);
@@ -409,13 +412,14 @@ BaseCrypto2Hash (
Status = EFI_OUT_OF_RESOURCES;
goto Done;
}
+
Done:
//
// Cleanup the context
//
FreePool (HashCtx);
Instance->HashInfoContext = NULL;
- Instance->HashContext = NULL;
+ Instance->HashContext = NULL;
return Status;
}
@@ -438,15 +442,15 @@ Done:
EFI_STATUS
EFIAPI
BaseCrypto2HashInit (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST EFI_GUID *HashAlgorithm
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST EFI_GUID *HashAlgorithm
)
{
- EFI_HASH_INFO *HashInfo;
- VOID *HashCtx;
- UINTN CtxSize;
- BOOLEAN Ret;
- HASH2_INSTANCE_DATA *Instance;
+ EFI_HASH_INFO *HashInfo;
+ VOID *HashCtx;
+ UINTN CtxSize;
+ BOOLEAN Ret;
+ HASH2_INSTANCE_DATA *Instance;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
@@ -464,7 +468,7 @@ BaseCrypto2HashInit (
//
// Consistency Check
//
- Instance = HASH2_INSTANCE_DATA_FROM_THIS(This);
+ Instance = HASH2_INSTANCE_DATA_FROM_THIS (This);
if ((Instance->HashContext != NULL) || (Instance->HashInfoContext != NULL)) {
return EFI_ALREADY_STARTED;
}
@@ -476,6 +480,7 @@ BaseCrypto2HashInit (
if (CtxSize == 0) {
return EFI_UNSUPPORTED;
}
+
HashCtx = AllocatePool (CtxSize);
if (HashCtx == NULL) {
return EFI_OUT_OF_RESOURCES;
@@ -490,9 +495,9 @@ BaseCrypto2HashInit (
//
// Setup the context
//
- Instance->HashContext = HashCtx;
+ Instance->HashContext = HashCtx;
Instance->HashInfoContext = HashInfo;
- Instance->Updated = FALSE;
+ Instance->Updated = FALSE;
return EFI_SUCCESS;
}
@@ -515,15 +520,15 @@ BaseCrypto2HashInit (
EFI_STATUS
EFIAPI
BaseCrypto2HashUpdate (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN CONST UINT8 *Message,
- IN UINTN MessageSize
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN CONST UINT8 *Message,
+ IN UINTN MessageSize
)
{
- EFI_HASH_INFO *HashInfo;
- VOID *HashCtx;
- BOOLEAN Ret;
- HASH2_INSTANCE_DATA *Instance;
+ EFI_HASH_INFO *HashInfo;
+ VOID *HashCtx;
+ BOOLEAN Ret;
+ HASH2_INSTANCE_DATA *Instance;
if (This == NULL) {
return EFI_INVALID_PARAMETER;
@@ -532,10 +537,11 @@ BaseCrypto2HashUpdate (
//
// Consistency Check
//
- Instance = HASH2_INSTANCE_DATA_FROM_THIS(This);
+ Instance = HASH2_INSTANCE_DATA_FROM_THIS (This);
if ((Instance->HashContext == NULL) || (Instance->HashInfoContext == NULL)) {
return EFI_NOT_READY;
}
+
HashInfo = Instance->HashInfoContext;
HashCtx = Instance->HashContext;
@@ -568,14 +574,14 @@ BaseCrypto2HashUpdate (
EFI_STATUS
EFIAPI
BaseCrypto2HashFinal (
- IN CONST EFI_HASH2_PROTOCOL *This,
- IN OUT EFI_HASH2_OUTPUT *Hash
+ IN CONST EFI_HASH2_PROTOCOL *This,
+ IN OUT EFI_HASH2_OUTPUT *Hash
)
{
- EFI_HASH_INFO *HashInfo;
- VOID *HashCtx;
- BOOLEAN Ret;
- HASH2_INSTANCE_DATA *Instance;
+ EFI_HASH_INFO *HashInfo;
+ VOID *HashCtx;
+ BOOLEAN Ret;
+ HASH2_INSTANCE_DATA *Instance;
if ((This == NULL) || (Hash == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -584,11 +590,13 @@ BaseCrypto2HashFinal (
//
// Consistency Check
//
- Instance = HASH2_INSTANCE_DATA_FROM_THIS(This);
+ Instance = HASH2_INSTANCE_DATA_FROM_THIS (This);
if ((Instance->HashContext == NULL) || (Instance->HashInfoContext == NULL) ||
- (!Instance->Updated)) {
+ (!Instance->Updated))
+ {
return EFI_NOT_READY;
}
+
HashInfo = Instance->HashInfoContext;
HashCtx = Instance->HashContext;
@@ -599,8 +607,8 @@ BaseCrypto2HashFinal (
//
FreePool (HashCtx);
Instance->HashInfoContext = NULL;
- Instance->HashContext = NULL;
- Instance->Updated = FALSE;
+ Instance->HashContext = NULL;
+ Instance->Updated = FALSE;
if (!Ret) {
return EFI_OUT_OF_RESOURCES;